STMCU小助手
发布时间:2021-12-28 21:00
|
1.1 初学者重要提示 关于学习方法问题,可以看附件章节A。 这几年单片机的性能越来越强劲,DSP芯片的中低端应用基本都可以用单片机来做。 当前单片机AI也是有一定前景的,ARM一直在大力推进,很多软件厂商和研究机构也在不断的努力。通过此贴可以了解下:单片机AI的春天真的来了,ARM最新DSP库已经支持NEON 1.2 STM32H7的DSP功能介绍2 ]; k2 ]1 ~/ U2 P) j; B0 C7 F0 s* m" c# p STM32H7是采用的Cortex-M7内核,而DSP功能是内核自带的,下面我们通过M7内核框图来了解下:
重点看如下两个设计单元:: e# d# `( y% a" R c$ [ U* ?& v/ X# _ DSP DSP单元集成了一批专用的指令集(主要是SMID指令和快速MAC乘积累加指令),可以加速数字信号处理的执行速度。4 M* u% ^- x2 r 6 N1 l; F! S( G5 q FPU' F! j! ]4 |- j6 @ P* {" Y Cortex-M7内核支持双精度浮点,可以大大加速浮点运算的处理速度。 r/ w: v, G# l# p; t' }2 S 下面是Cortex-M3,M4和M7的指令集爆炸图:6 d1 R) {* s& e , O/ F R. n: V: ^1 ~! ~
通过这个图,我们可以了解到以下几点: 4 `" M, `% s; n$ |9 o* G8 S M4和M7系列有相同的DSP指令集。 M7相比M4系列要多一些浮点指令集。 同时这里要注意一个小细节,浮点指令都是以字符V开头的。通过这点,我们可以方便的验证是否正确开启了FPU(MDK或者IAR调试状态查看浮点运算对应的反汇编是否有这种指令)。0 O2 ~% l$ l+ H4 F; {# f2 X 不同M内核的DSP性能比较: / C2 ^" w$ Z+ D
Cortex-M7内核的DSP性能最强。8 Q: a$ E, V. v% b& h0 b/ K Cortex-M3,M4和M33是中等性能,其中M3最弱。 Cortex-M0,M0+和M23性能最弱。4 ^# E& D p" p2 t/ L, H' r n5 m5 }7 K9 |! i9 b& I 1.3 Cortex-M7内核的DSP和专业DSP的区别2 n; }' R2 r7 T% k* l2 f: ] M核的DSP处理单元与专业DSP的区别:! K- F% ]8 l& r" j# e& W
1 I/ `0 ?9 J/ \/ x 1.4 ARM提供的CMSIS-DSP库 为了方便用户实现DSP功能,ARM专门做了一个DSP库CMSIS-DSP,主要包含以下数字信号处理算法:4 b. y) v, Y2 j ' `# L- h8 \" t7 g7 x2 h3 \ BasicMathFunctions 提供了基本的数据运算,如加减乘除等基本运算,以_f32结尾的函数是浮点运算,以_q8, _q15, _q31,结尾的函数是定点运算,下面是部分API截图: 7 Z! x& |0 @: E+ j' }$ _
FastMathFunctions* N; @/ m/ b. G) I* q( E5 Y1 e 主要提供SIN,COS以及平方根SQRT的运算。 2 ?" W P+ N/ k5 C
ComplexMathFunctions 复杂数学运算,主要是向量,求模等运算。下面是部分API截图:0 [/ V1 q- S2 T: J, ?! I % d" ?- v% u( j, L" K0 K; O
FilteringFunctions 主要是滤波函数,如IIR,FIR,LMS等,下面是部分API截图: 4 @. |8 l4 g# R g5 K
MatrixFunctions 主要是矩阵运算。# L* S# R6 g/ A; T : E! C; @4 ^1 e
TransformFunctions 变换功能。 包括复数FFT(CFFT),复数FFT逆运算(CIFFT),实数FFT(RFFT),实数 FFT 逆运算,下面是部分API截图: 1 N7 r. ]5 ~" D( F
, [2 O# W. Y: E; v ControllerFunctions' s# N0 Q- `7 @! u' C3 W4 i 控制功能,主要是PID控制函数和正余弦函数。
. y' N w; ^# o, K StatisticsFunctions 统计功能函数,如求平均值,最大值,最小值,功率,RMS等,下面是部分API截图。; h" E+ C- w3 U$ Z$ i- ]; | , z! Q- o8 q2 b1 e6 |
SupportFunctions 支持功能函数,如数据拷贝,Q格式和浮点格式相互转换。4 g5 c, Q% h1 B2 _5 L
CommonTables arm_common_tables.c 文件提供位翻转或相关参数表。
0 n6 N& N% i! ?3 @( L$ Z 1.5 TI提供的32位定点DSP库IQmath! ^% q0 I1 `0 y( t 初次使用这个定点库,感觉在各种Q格式的互转、Q格式数值和浮点数的互转处理上更专业些,让人一目了然。( A1 p6 b" B! [5 W) S 所以本次教程也会对IQmath做个介绍并配套一个例子。 + r/ P4 e3 U* q7 M7 O' D! h2 O 1.6 ARM DSP软件替代模拟器件的优势 我们日常生活中用到DSP的地方很多,以生活中的设备为例:4 A: U) t( H) R2 k' t1 U
& a# E9 r; e: T% E 通过ARM DSP软件替换模拟组件可以降低成本,PCB的面积和设计时间,同时提高灵活性和适应性。 降低BOM成本 将模拟电路转换为软件的最明显的好处是材料清单成本(BOM)减少。 3 A' T1 h- b) P; a. |1 }& H 提高设计灵活性 使用模拟滤波器来不断调节电路以获得最佳性能时,这种情况并不少见。较小的电路板修改会导致新的电气特性突然改变寄生电容或电感,从而导致模拟电路达不到预期。将模拟电路转换为DSP算法不仅可以消除这种风险,还可以根据软件的需要进行调整,且更具灵活性。 减少产品尺寸 降低BOM成本具有额外的好处,也允许开发人员减少其产品的尺寸。 缩短设计周期时间# L9 Z: r; ~! \1 R3 @' N4 ~' y6 J, _ 将模拟电路转换为软件有助于缩短设计周期。这有几个原因:' Z0 S+ R7 N! L' B' } 9 S2 z7 e4 s# V3 |* J$ A% _ 首先,有很多工具可供软件设计人员模拟和生成替换模拟电路所需的DSP算法。这通常比通过电路仿真和测试调整电路所需的时间快得多。 其次,如果需要进行更改,可以在软件中进行更改,这可以在几分钟内完成,而不必重新调整电路板或进行硬件修改。 现场适应性 在某些产品中,设计者很难预料用户在现场所遇到的各种情况。使用DSP算法,设计者甚至用户都可以进行实时调整,以适应现场条件,而无需进行大量硬件修改。 用数字信号处理算法替换模拟电路有很多好处。需要设计者在实际应用中权衡利益,选择最合适的方案。 - w9 r. `: V5 R Z5 h, p- y M5 P0 ~ 1.7 Matlab安装 Matlab是学习DSP过程中非常重要的辅助工具,也是需要熟练掌握的,本教程的第2章到第5章进行了入门介绍。 # U9 l5 z) o" m; ~( f 1.8 总结 本期教程主要是做一些入门性的介绍,下期教程将开始实战。+ z6 G9 m' J: w; |3 r 0 R; p# u9 ?4 o* l ' J+ q1 M7 P9 j |
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
【福利三:逢7发帖赢大礼】成功利用STM32H743VI片内SRAM12和DTCM空间(完全胜利)
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
【福利三:逢7发帖赢大礼】使用惠勤致远STM32H743VI开发板+ST7796并口彩屏移植LVGL9.5并分享一些额外内容
【 逢7发帖赢大礼】7、TouchGFX中实现云彩流动效果
微信公众号
手机版