在嵌入式开发中,尤其是控制系统,经常需要进行复杂的数学函数计算,例如三角函数。当对计算精度有要求时,开发者通常会选择带有DSP(数字信号处理)模块的微控制器(MCU)或专用DSP芯片。然而,这类芯片通常基于性能较高的内核(如ARM Cortex-M4/M4F),价格也相对昂贵。这导致在许多应用场景中,开发者可能不得不为芯片上并不需要的附加功能或过剩的性能买单。
为了解决这一矛盾,工程师们研究并应用了一种名为坐标旋转数字计算机(CORDIC)的算法。该算法的优势在于,其硬件实现仅需加减法和移位操作,无需依赖乘除法。与DSP模块类似,CORDIC计算主要由硬件单元完成,几乎不占用CPU核心的计算资源,从而允许MCU以更低的工作频率运行,或将释放的处理器周期用于执行其他任务。

为了评估CORDIC模块的实际效能,我们设计了一个对比实验。选取了四款不同内核和定位的MCU:
- 经典ARM Cortex-M3内核的STM32F103C8T6
- 性能更强的ARM Cortex-M4内核的STM32F411CEU6
- 较新的ARM Cortex-M4F内核模数混合MCU STM32G431CBT6
- 国产芯片厂商武汉芯源半导体推出的ARM Cortex-M0+内核模数混合MCU CW32L012C8T6
实验内容为让每款芯片执行100万次sin30°和cos30°计算,并统计总耗时。考虑到芯片在内核、性能、价格上的差异,我们进行了多条件测试,最终结果记录如下:

从测试结果可以看出,STM32F103C8由于不具备任何数学运算加速硬件,只能在72MHz最高主频下,通过标准math.h库由CPU进行软件计算,耗时接近两分钟。而其他搭载了数学加速硬件(DSP或CORDIC)的MCU,均将耗时缩短至秒级。
进一步分析表明,在主流MCU上,CORDIC的运算速度略低于专用的DSP模块,例如CW32L012与M4/M4F内核芯片的单次计算耗时仅相差1~2微秒(除以100万次)。这个性能差距在绝大多数高精度计算应用中是可以接受的,具体应用场景将在下文举例说明。
CW32L012所采用的ARM Cortex-M0+内核长期以来被视为入门级选择,许多开发者认为复杂数学运算的场景不应考虑此系列。然而,CORDIC模块的引入提供了一个极具性价比的新选项。如果仅从传统认知出发,对比CW32L012与STM32F103C8的纯软件计算能力,M0+内核确实逊于M3。但CORDIC硬件模块的加入,彻底改变了这一局面。

需要指出的是,CORDIC的功能不仅限于计算正弦和余弦。

此外,CW32L012除了集成CORDIC模块,厂商还为其增加了扩展算术运算单元(EAU),进一步弥补了M0+内核在基础运算性能上的先天不足。

对于从事FOC(磁场定向控制)电机控制的开发者而言,在使用M0/M0+内核芯片时,处理三角函数变换多采用查表法或定点数计算。这些方法的弊端在于难以实现精确控制。若追求高精度,通常仍需选择内置DSP模块的芯片,如经典的STM32F4或G4系列。

CORDIC模块与M0+内核的结合,使得实现高精度FOC控制的芯片有了更高性价比的选择。这不仅适用于电机控制,在信号处理、计量仪表、功率变换(如MPPT、数字电源)等应用中,也提供了更多可能性,甚至能为一些成本敏感的产品提供“加量不加价”的升级方案。毕竟,M0+内核芯片与其他高阶内核芯片之间存在数倍的价格差距。
以下是测试所用四款芯片在立创商城上的参考零售价对比:

在全球MCU市场竞争加剧、国产化替代加速的背景下,嵌入式设备对核心芯片的性能、功耗、可靠性及性价比提出了更高要求。国产芯片也涌现出越来越多优秀产品。如果您有功率变换、计量、电机控制、信号处理或超低功耗等相关应用需求,可以关注武汉芯源半导体有限公司最新推出的CW32L012系列芯片。


高性能内核与丰富外设
CW32L012 集成了主频高达96MHz的ARM® Cortex®-M0+内核,并配备了丰富的外设资源,以满足多样化应用需求:
- 存储资源:64KB Flash + 8KB SRAM。
- 高性能模拟外设:双12位ADC、双12位DAC、双轨到轨运算放大器(OPA)、模拟比较器(VC)、电压检测器(LVD)等。
- 丰富的定时器:1组16位高级控制定时器、4组16位通用定时器、3组16位基本定时器、1组16位低功耗定时器、1组24位霍尔传感器专用定时器,以及看门狗定时器,非常适合于电机控制等复杂时序应用。
- 通信接口:3路低功耗UART、3路SPI、2路I2C,便于连接各种外设模块。
- 硬件加速单元:4通道DMA、CRC硬件计算单元、坐标旋转数字计算(CORDIC)模块、扩展算术运算单元(EAU),显著提升数据处理效率,降低CPU负载。
- 通用IO:最多支持40个GPIO,扩展性强。
工业级可靠性与低功耗
CW32L012 具备出色的可靠性,适应严苛的工作环境,并支持低功耗运行:
- 工作温度范围:-40℃ ~ +85℃,工作电压范围:1.7V ~ 5.5V。
- ESD防护能力高达±8KV(HBM),增强了系统在恶劣环境下的鲁棒性。
这些特性使其成为工业传感器、智能表计、户外设备等场景的理想选择。
|