作者:e絡(luò)盟 Ankur Tomar,,飛思卡爾 Anthony Huereca
e絡(luò)盟社區(qū)致力于服務(wù)設(shè)計工程師已有8年時間,。在這段時間內(nèi),,技術(shù)不斷發(fā)展,32位架構(gòu)上市,,使得工程師能夠前所未有地推進其設(shè)計,我們也得以親眼見證了微控制器市場的發(fā)展變化,。
在全世界每天使用的數(shù)十億件嵌入式設(shè)備中,,許多仍然采用傳統(tǒng)的8位和16位微控制器。很多嵌入工程師是跟著這些較老的架構(gòu)一起成長起來的,,這些架構(gòu)成本低,、功耗低而且十分簡單,即使32位設(shè)備發(fā)展迅猛也沒有妨礙它們的受歡迎程度,。但是,,32位設(shè)備聲望漸隆,我們有必要對這個新架構(gòu)的差異,、優(yōu)勢和機遇進行詳細說明,。
現(xiàn)在,,每個新項目都需要先回答下列問題:繼續(xù)采用8位架構(gòu)會錯過什么?32位架構(gòu)能夠提供什么,?32位設(shè)備目前占據(jù)著嵌入式MCU銷售的領(lǐng)先地位,,我們是否應(yīng)該立即采取行動以避免落后?
幸運的是,,我們的行業(yè)創(chuàng)新永無止境,。有了Freescale®(飛思卡爾)、Atmel®,、NXP®及其它設(shè)備所采用的ARM® Cortex®- M0+等內(nèi)核,,32位處理器就能夠媲美傳統(tǒng)8/16位MCU的實力,同時還能夠提供眾多的優(yōu)勢,,讓升級變得極具吸引力,。Cortex-M0+內(nèi)核為轉(zhuǎn)換而生,它的32位功能可將項目提升到一個全新的高度,。
為什么要向32位轉(zhuǎn)換,?
如果你問學(xué)工程的新生為什么要從8位向32位轉(zhuǎn)換,那么你可能會得到這么一個明確的答案:32位是8位的4倍,,位越高當(dāng)然越好,!實際上事情并非那么簡單,不過32位MCU十分重要自有其很多令人信服的理由,,即使對于“傳統(tǒng)的”8位和16位項目來說也是如此,。
- 提高性能:向32位內(nèi)核轉(zhuǎn)換之后,相對于目前使用的8位和16位架構(gòu)來說,,每MHz性能可以提高2-40倍,。你可以獲得更快的32位數(shù)學(xué)運算處理速度,以及單周期32位乘法運算,。而且,,你還可以獲得單周期IO,用于位拆裂和軟件協(xié)議仿真,。
所有這些功能開啟了全新的可能性,,涉及軟件堆棧(USB、藍牙等),、RTOS,、高級UI等等,而且還剩余充足的處理能力用于應(yīng)用軟件的自定義功能,。
- 提高能源效率:Cortex-M0+內(nèi)核效率極高,,其Coremark/mA較8位或16位競爭性產(chǎn)品高達2倍。嵌入式系統(tǒng)結(jié)合這種強大的Cortex-M0+內(nèi)核,可以更快地完成任務(wù)并返回睡眠模式,,從而節(jié)省能源,。
即使睡眠模式也能夠很好地節(jié)省功耗:在飛思卡爾Kinetis® L 系列產(chǎn)品上進入9種模式中的最深度睡眠模式時,其功耗低至<1uA,。而且,,由于Kinetis系列產(chǎn)品上的外圍模塊采用智能設(shè)計,因此你可以在不喚醒內(nèi)核的情況下做更多的事情,,從而進一步節(jié)省功耗,。
- 提高代碼密度:似乎違反直覺的是,使用32位處理器將導(dǎo)致代碼長度減小,。不過,,Cortex-M0+內(nèi)核使用Thumb-2指令,其中許多指令僅占用16位閃存,。而且請記住,,8位處理器上的許多指令實際長于8位。此外,,視具體應(yīng)用而定,,8位指令的多個字節(jié)可以用32位MCU的一個指令取代,就像下面的16位乘法運算一樣,。
結(jié)果顯示,,向使用Thumb-2指令的32位架構(gòu)轉(zhuǎn)換,可以極大地提高代碼密度,。
-
可擴展:當(dāng)項目和性能需要提升時,捆綁于某個制造商提供的某個8位架構(gòu)的裝置不再是妨礙,。32位設(shè)備注重C碼而非裝置,,因此減少了開發(fā)和調(diào)試的時間,并且可以更加簡便地將代碼移植至新的設(shè)備,。隨著32位ARM MCU在全世界廣泛普及,,軟件生態(tài)系統(tǒng)將變得十分龐大,并且還將不斷擴展,。
但是……
你覺得這一切聽起來真不錯,,但我仍然需要8/16位MCU為我的應(yīng)用提供較小的尺寸、較低的成本和易于使用的特點,。幸運的是,,32位MCU也能夠做到這些:
-
尺寸:正如飛思卡爾Kinetis KL03系列產(chǎn)品上所見,32位MCU的尺寸小至1.6x2.0毫米,,是世界上最小的ARM MCU,,所以非常小的尺寸也能夠提供卓越的32位性能。
- 成本:設(shè)備起步價低至0.49美分,所以32位MCU甚至可以用于此前望成本興嘆的各種應(yīng)用,。而且因為代碼密度提高,,所以需要的閃存也比較少。
- 復(fù)雜性:令人稱奇的是,,32位架構(gòu)在某些方面實際上更為簡單,。有了32位地址空間,便無需對內(nèi)存地址進行分頁,,所以可以直接訪問,。Cortex-M0+內(nèi)核架構(gòu)擁有一個全功能干擾控制器,可簡化干擾處理,。此外,,32位架構(gòu)還附帶一個追蹤緩存,可以方便調(diào)試,,并給希望繼續(xù)使用裝置的用戶僅提供56條指令,,這樣一來,向32位“跨躍”的一大步從復(fù)雜性的角度來說更像是一小步,。
利用32位開展開發(fā)工作:
使用32位ARM內(nèi)核的主要優(yōu)勢之一,,在于海量的可用軟件和硬件,其中包括大量兼容的編譯器和調(diào)試器,。當(dāng)項目在Cortex-M0+和更為強大的Cortex-M4等內(nèi)核之間進行調(diào)整時,,我們可以十分簡便地重復(fù)使用各種硬件和軟件。此外,,因為飛思卡爾Kinetis MCU引腳和模塊具備兼容性,,并且該系列的設(shè)備數(shù)以百計,所以沿著性能/閃存曲線上下移動非常簡便,。
飛思卡爾進一步促進了32位的開發(fā)工作,,推出了Processor Expert®軟件建模工具和MQX™-Lite實時操作系統(tǒng)(RTOS),有助于迅速啟動和推進全新的32位項目,。Processor Expert軟件建模工具是一種GUI補充工具,,用于代碼生成,可創(chuàng)建客戶化的驅(qū)動程序,,從而極大地縮短開發(fā)時間,。
MQX-Lite RTOS是MQX RTOS的簡化版,專門針對內(nèi)存低于4KB的微控制器設(shè)計,。RTOS驅(qū)動程序來自于Processor Expert軟件建模工具,,MQX-Lite RTOS是MQX RTOS的子集,因此未來可輕松升級至更為強大的設(shè)備,。它很好地補充了Processor Expert軟件建模工具,,而且對于帶有USB功能的設(shè)備,它還提供一個USB補充堆棧。
下一步
現(xiàn)在你想嘗試一下32位架構(gòu),,但是應(yīng)該從哪里著手呢,?
幸好,有許多主板提供很好的32位評估平臺,,你花不到一個匹薩的錢就能夠買到,。FRDM-KL05Z非常適合你初涉32位領(lǐng)域,它引腳兼容飛思卡爾的8位S08設(shè)備,。FRDM-KL26Z增加了USB和更多先進的外圍模塊,,而FRDM-KL46Z還進一步支持USB和segment LCD?;蛘?,如果5V IO和電氣可靠性對于你的應(yīng)用至關(guān)重要,那么FRDM-KE02就是你要找的主板,。
所有這4個薄荷錫盒大小的主板均為Cortex-M0+內(nèi)核,,并采用了Processor Expert軟件建模工具、MQX-Lite RTOS,、USB補充堆棧等,。此外,這些主板還內(nèi)置了一個稱為OpenSDA的調(diào)試電路,,所以一條簡單的USB電纜便可提供你所需要的全部調(diào)試,、串行通信和閃存編程功能。
而且,,這些主板以及整個飛思卡爾Freedom開發(fā)平臺系列均兼容Arduino™擴展板,,并可提供數(shù)字與模擬IO引腳。MEMS傳感器評估套件很好地說明了其中的各種可能性,,它將FRDM-KL25Z飛思卡爾Freedom開發(fā)平臺和MEMS傳感器評估擴展板相結(jié)合,,使Kinetis L MCU能夠獲得各種先進的傳感器,以便探索周圍的世界,。
在整個學(xué)習(xí)過程中,,務(wù)必和其他工程師保持密切聯(lián)系,,e絡(luò)盟社區(qū)可以提供這方面的支持,。通常,你所面臨的問題,,其他工程師已經(jīng)有了解決方案,,從這一點上來講,網(wǎng)絡(luò)社區(qū)是一個不錯的資源,。
32位的未來
科技從未停止進步,,越來越多的嵌入式應(yīng)用將采用32位MCU,這種趨勢只會加速。從開發(fā)套件到原型機和制造的每個設(shè)計流程階段,,e絡(luò)盟均為工程師提供支持,,確保他們在選擇遷移至32位架構(gòu)時胸有成竹。較高的性能,、卓越的功率效率以及更好的代碼密度,,現(xiàn)在就邁開腳步,走向更加美好的32位未來吧,。