CORDIC模块——提高计算能力的性价比神器 电子说
单片机进行复杂的数学函数计算特别是控制系统中常用的三角函数计算,在有精度要求的情况下,我们经验上往往会选用带有DSP模块的MCU或者专用的DSP芯片去实现。但由于带有DSP模块的芯片往往内核等级较高,比如ARM的M4、M4F内核,因而价格也比较贵,导致在很多应用场景中,开发者往往还要为芯片上附带的但却不需要的功能进行买单,或者为过剩的性能买单。
于是工程师就研究了一个新的算法,即坐标旋转数字计算机算法(CORDIC),在硬件上,对于三角函数的计算仅需要加减法和移位,不再依赖于乘除法运算,并且和DSP模块一样,基本上是纯硬件完成,不再占用CPU计算资源。允许MCU以较低的工作频率或释放处理器周期以执行其他任务。

为了探究CORDIC模块究竟能有有多实用,我们做了一个实验:我们找来了四款芯片:分别是经典的ARM M3内核的STM32F103C8T6、性能更好的M4内核的STM32F411CEU6、更新的M4F内核的模数混合信号MCU STM32G431CBT6、以及国产芯片厂商武汉芯源半导体最新推出的ARM Cortex-M0+内核的模数混合信号MCU: CW32L012C8T6芯片。
【几款常见MCU计算能力大比拼】 https://www.bilibili.com/video/BV1pkqZB8Eig/?share_source=copy_web&vd_source=588a165eaf56e9ab73a1d5235c3e9835
我们让这四款芯片各自对 sin30°和cos30°做100万次运算,并计算运算时长,把时长结果打印在显示屏上。由于这四款MCU在内核、性能、价格、产品定位上均有差异,很难做到严格的对照实验,所以我们分多个条件多次试验,最终测试结果记录成表格:

在表中可以看出,STM32F103C8由于没有相关的数学运算加速器模块,所以只能在最高主频72M的情况下,利用match.h 使用CPU硬算,最终计算时长接近两分钟,而其他有相关的数学运算加速器模块的MCU,均可以达到秒级的计算时长。
从测试结果上也可以分析出,在几款主流MCU上,CORDIC的运算速度略低于DSP,像CW32L012与M4/F基本上仅仅相差1~2个uS(除以100万次)。基本上可以满足绝大部分的应用对于高精度计算的需求,这个我下文举例分享。
CW32L012本身所属的M0+内核阵营,在我看来是属于国产芯片中竞争最卷的内核系列,或许很多客户依旧认为,涉及复杂运算的芯片选型是不包含这个系列的,但今天多了一个更具性价比的选择,如果我刚刚大学毕业,我是不敢相信的。因为我们很多朋友对于芯片性能的认知,依然停留在内核优先的状况。毕竟我在大学的时候还没接触过这些。
站在旧有的认知上,我又对比了CW32L012与STM32F103C8使用CPU硬算的差异,从这个角度上看,M0+内核确实不如M3。但CORDIC的存在,又让结果有了惊人的差异。

CORDIC不仅仅能算SIN/COS:

CW32L012除了拥有CORDIC模块外,厂商又对其增加了EAU(扩展算术运算单元),弥补了M0+内核天生的计算性能劣势:

做过FOC电机控制的朋友应该知道,M0/M0+内核的芯片一般在使用到三角函数进行变换计算时,多用查表法或者定点数计算。但这样的弊端就是无法做到精确控制。如果想要精确控制,往往还是选用含有DSP模块的芯片,比如经典的F4/G4。

而CORDIC在M0+内核上的结合,使得可以实现高精度FOC控制的芯片有了更高性价比选择。不单单是FOC电机控制应用,涉及信号处理、计量、功率变换(MPPT、电源)等应用也有了更多高性价比选择,或者也为一些低端产品提供加量不加价的升级可能。毕竟M0+内核对比其他内核芯片的价格差距是数倍的。
我们找到了测试的四款芯片在立创商城上的零售价格:

在全球MCU市场竞争加剧、国产替代加速的背景下,嵌入式设备对核心控制芯片的性能、功耗、可靠性及性价比提出了前所未有的严苛需求。国产芯片卷出来的好产品也越来越多,如果你有功率变换、计量、电机控制、信号处理、超低功耗等应用,不妨看一下武汉芯源半导体有限公司最新推出的CW32L012系列芯片。

高性能内核,丰富外设,满足多样化需求
CW32L012 集成了主频高达96MHz 的 ARM® Cortex®-M0+ 内核,能提供更高效的运算能力,同时还集成了如下外设资源:
● 存储资源:64KB Flash + 8KB SRAM;
● 高性能模拟外设:双12位ADC、双12位DAC、双运算放大器(OPA Rail-to-Rail)、模拟比较器(VC)、电压检测(LVD)等;
● 丰富的定时器资源:1组16 位高级控制定时器、4 组 16 位通用定时器、3 组 16 位基本定时器、1 组 16 位低功耗定时器、1 组 24 位霍尔传感器专用定时器、窗口看门狗定时器、独立看门狗定时器,非常适合电机控制等复杂应用;
● 多样化通信接口:3 路低功耗 UART、3 路 SPI 接口、2 路 I2C 接口,方便连接各类外设模组;
● 硬件加速:4通道DMA、CRC硬件计算单元、坐标旋转数字计算算法(CORDIC)、扩展算术运算单元(EAU),提升数据处理效率,减小算力开销;
● 丰富GPIO:最多支持40个GPIO,扩展性强;
工业级可靠性,适应严苛环境
CW32L012 具备出色的抗干扰能力和宽温度、宽电压工作范围、低功耗操作模式:
● 工作温度:-40℃ ~ +85℃,工作电压:1.7V~5.5V;
● ESD防护高达±8KV(HBM),增强系统可靠性;
该特性使其成为工业传感器、智能表计、户外设备等场景的理想选择。
————————————————
来源:csdn
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !