單片機(jī)進(jìn)行復(fù)雜的數(shù)學(xué)函數(shù)計(jì)算特別是控制系統(tǒng)中常用的三角函數(shù)計(jì)算,在有精度要求的情況下,我們經(jīng)驗(yàn)上往往會(huì)選用帶有DSP模塊的MCU或者專用的DSP芯片去實(shí)現(xiàn)。但由于帶有DSP模塊的芯片往往內(nèi)核等級(jí)較高,比如ARM的M4、M4F內(nèi)核,因而價(jià)格也比較貴,導(dǎo)致在很多應(yīng)用場(chǎng)景中,開(kāi)發(fā)者往往還要為芯片上附帶的但卻不需要的功能進(jìn)行買單,或者為過(guò)剩的性能買單。
于是工程師就研究了一個(gè)新的算法,即坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)算法(CORDIC),在硬件上,對(duì)于三角函數(shù)的計(jì)算僅需要加減法和移位,不再依賴于乘除法運(yùn)算,并且和DSP模塊一樣,基本上是純硬件完成,不再占用CPU計(jì)算資源。允許MCU以較低的工作頻率或釋放處理器周期以執(zhí)行其他任務(wù)。

為了探究CORDIC模塊究竟能有有多實(shí)用,我們做了一個(gè)實(shí)驗(yàn):我們找來(lái)了四款芯片:分別是經(jīng)典的ARM M3內(nèi)核的STM32F103C8T6、性能更好的M4內(nèi)核的STM32F411CEU6、更新的M4F內(nèi)核的模數(shù)混合信號(hào)MCU STM32G431CBT6、以及國(guó)產(chǎn)芯片廠商武漢芯源半導(dǎo)體最新推出的ARM Cortex-M0+內(nèi)核的模數(shù)混合信號(hào)MCU: CW32L012C8T6芯片。
【幾款常見(jiàn)MCU計(jì)算能力大比拼】 https://www.bilibili.com/video/BV1pkqZB8Eig/?share_source=copy_web&vd_source=588a165eaf56e9ab73a1d5235c3e9835
我們讓這四款芯片各自對(duì) sin30°和cos30°做100萬(wàn)次運(yùn)算,并計(jì)算運(yùn)算時(shí)長(zhǎng),把時(shí)長(zhǎng)結(jié)果打印在顯示屏上。由于這四款MCU在內(nèi)核、性能、價(jià)格、產(chǎn)品定位上均有差異,很難做到嚴(yán)格的對(duì)照實(shí)驗(yàn),所以我們分多個(gè)條件多次試驗(yàn),最終測(cè)試結(jié)果記錄成表格:

在表中可以看出,STM32F103C8由于沒(méi)有相關(guān)的數(shù)學(xué)運(yùn)算加速器模塊,所以只能在最高主頻72M的情況下,利用match.h 使用CPU硬算,最終計(jì)算時(shí)長(zhǎng)接近兩分鐘,而其他有相關(guān)的數(shù)學(xué)運(yùn)算加速器模塊的MCU,均可以達(dá)到秒級(jí)的計(jì)算時(shí)長(zhǎng)。
從測(cè)試結(jié)果上也可以分析出,在幾款主流MCU上,CORDIC的運(yùn)算速度略低于DSP,像CW32L012與M4/F基本上僅僅相差1~2個(gè)uS(除以100萬(wàn)次)。基本上可以滿足絕大部分的應(yīng)用對(duì)于高精度計(jì)算的需求,這個(gè)我下文舉例分享。
CW32L012本身所屬的M0+內(nèi)核陣營(yíng),在我看來(lái)是屬于國(guó)產(chǎn)芯片中競(jìng)爭(zhēng)最卷的內(nèi)核系列,或許很多客戶依舊認(rèn)為,涉及復(fù)雜運(yùn)算的芯片選型是不包含這個(gè)系列的,但今天多了一個(gè)更具性價(jià)比的選擇,如果我剛剛大學(xué)畢業(yè),我是不敢相信的。因?yàn)槲覀兒芏嗯笥褜?duì)于芯片性能的認(rèn)知,依然停留在內(nèi)核優(yōu)先的狀況。畢竟我在大學(xué)的時(shí)候還沒(méi)接觸過(guò)這些。
站在舊有的認(rèn)知上,我又對(duì)比了CW32L012與STM32F103C8使用CPU硬算的差異,從這個(gè)角度上看,M0+內(nèi)核確實(shí)不如M3。但CORDIC的存在,又讓結(jié)果有了驚人的差異。

CORDIC不僅僅能算SIN/COS:

CW32L012除了擁有CORDIC模塊外,廠商又對(duì)其增加了EAU(擴(kuò)展算術(shù)運(yùn)算單元),彌補(bǔ)了M0+內(nèi)核天生的計(jì)算性能劣勢(shì):

做過(guò)FOC電機(jī)控制的朋友應(yīng)該知道,M0/M0+內(nèi)核的芯片一般在使用到三角函數(shù)進(jìn)行變換計(jì)算時(shí),多用查表法或者定點(diǎn)數(shù)計(jì)算。但這樣的弊端就是無(wú)法做到精確控制。如果想要精確控制,往往還是選用含有DSP模塊的芯片,比如經(jīng)典的F4/G4。

而CORDIC在M0+內(nèi)核上的結(jié)合,使得可以實(shí)現(xiàn)高精度FOC控制的芯片有了更高性價(jià)比選擇。不單單是FOC電機(jī)控制應(yīng)用,涉及信號(hào)處理、計(jì)量、功率變換(MPPT、電源)等應(yīng)用也有了更多高性價(jià)比選擇,或者也為一些低端產(chǎn)品提供加量不加價(jià)的升級(jí)可能。畢竟M0+內(nèi)核對(duì)比其他內(nèi)核芯片的價(jià)格差距是數(shù)倍的。
我們找到了測(cè)試的四款芯片在立創(chuàng)商城上的零售價(jià)格:

在全球MCU市場(chǎng)競(jìng)爭(zhēng)加劇、國(guó)產(chǎn)替代加速的背景下,嵌入式設(shè)備對(duì)核心控制芯片的性能、功耗、可靠性及性價(jià)比提出了前所未有的嚴(yán)苛需求。國(guó)產(chǎn)芯片卷出來(lái)的好產(chǎn)品也越來(lái)越多,如果你有功率變換、計(jì)量、電機(jī)控制、信號(hào)處理、超低功耗等應(yīng)用,不妨看一下武漢芯源半導(dǎo)體有限公司最新推出的CW32L012系列芯片。

高性能內(nèi)核,豐富外設(shè),滿足多樣化需求
CW32L012 集成了主頻高達(dá)96MHz 的 ARM? Cortex?-M0+ 內(nèi)核,能提供更高效的運(yùn)算能力,同時(shí)還集成了如下外設(shè)資源:
● 存儲(chǔ)資源:64KB Flash + 8KB SRAM;
● 高性能模擬外設(shè):雙12位ADC、雙12位DAC、雙運(yùn)算放大器(OPA Rail-to-Rail)、模擬比較器(VC)、電壓檢測(cè)(LVD)等;
● 豐富的定時(shí)器資源:1組16 位高級(jí)控制定時(shí)器、4 組 16 位通用定時(shí)器、3 組 16 位基本定時(shí)器、1 組 16 位低功耗定時(shí)器、1 組 24 位霍爾傳感器專用定時(shí)器、窗口看門狗定時(shí)器、獨(dú)立看門狗定時(shí)器,非常適合電機(jī)控制等復(fù)雜應(yīng)用;
● 多樣化通信接口:3 路低功耗 UART、3 路 SPI 接口、2 路 I2C 接口,方便連接各類外設(shè)模組;
● 硬件加速:4通道DMA、CRC硬件計(jì)算單元、坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算算法(CORDIC)、擴(kuò)展算術(shù)運(yùn)算單元(EAU),提升數(shù)據(jù)處理效率,減小算力開(kāi)銷;
● 豐富GPIO:最多支持40個(gè)GPIO,擴(kuò)展性強(qiáng);
工業(yè)級(jí)可靠性,適應(yīng)嚴(yán)苛環(huán)境
CW32L012 具備出色的抗干擾能力和寬溫度、寬電壓工作范圍、低功耗操作模式:
● 工作溫度:-40℃ ~ +85℃,工作電壓:1.7V~5.5V;
● ESD防護(hù)高達(dá)±8KV(HBM),增強(qiáng)系統(tǒng)可靠性;
該特性使其成為工業(yè)傳感器、智能表計(jì)、戶外設(shè)備等場(chǎng)景的理想選擇。
————————————————
來(lái)源:csdn
審核編輯 黃宇
-
芯片
+關(guān)注
關(guān)注
463文章
54010瀏覽量
466041 -
mcu
+關(guān)注
關(guān)注
147文章
18925瀏覽量
398148 -
CORDIC
+關(guān)注
關(guān)注
0文章
41瀏覽量
20540
發(fā)布評(píng)論請(qǐng)先 登錄
MCU數(shù)據(jù)采集模塊的數(shù)據(jù)處理和分析能力如何?
龍架構(gòu)計(jì)算機(jī)系統(tǒng)能力核心課程教學(xué)研討會(huì)圓滿舉行
TCORDIC算法實(shí)現(xiàn)正余弦函數(shù)
如何挑選高性價(jià)比藍(lán)牙模塊?
提高RISC-V在Drystone測(cè)試中得分的方法
低配≠高性價(jià)比!揭秘服務(wù)器配置的真實(shí)含義與性價(jià)比公式
EG8200Lite:經(jīng)濟(jì)型邊緣計(jì)算網(wǎng)關(guān),性價(jià)比之選
【微五科技CF5010RBT60開(kāi)發(fā)板試用體驗(yàn)】Cordic數(shù)學(xué)計(jì)算測(cè)試
SiC MOSFET模塊的損耗計(jì)算
電源模塊的負(fù)載能力有什么用處?
vivado IP核cordic中sin和cos的計(jì)算
MDD肖特基二極管并聯(lián)與串聯(lián)設(shè)計(jì):如何提高電流承載能力?
CORDIC模塊——提高計(jì)算能力的性價(jià)比神器
評(píng)論