作者:e絡(luò)盟 Ankur Tomar,飛思卡爾 Anthony Huereca
e絡(luò)盟社區(qū)致力于服務(wù)設(shè)計工程師已有8年時間。在這段時間內(nèi),技術(shù)不斷發(fā)展,32位架構(gòu)上市,使得工程師能夠前所未有地推進(jìn)其設(shè)計,我們也得以親眼見證了微控制器市場的發(fā)展變化。
在全世界每天使用的數(shù)十億件嵌入式設(shè)備中,許多仍然采用傳統(tǒng)的8位和16位微控制器。很多嵌入工程師是跟著這些較老的架構(gòu)一起成長起來的,這些架構(gòu)成本低、功耗低而且十分簡單,即使32位設(shè)備發(fā)展迅猛也沒有妨礙它們的受歡迎程度。但是,32位設(shè)備聲望漸隆,我們有必要對這個新架構(gòu)的差異、優(yōu)勢和機遇進(jìn)行詳細(xì)說明。
現(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、藍(lán)牙等)、RTOS、高級UI等等,而且還剩余充足的處理能力用于應(yīng)用軟件的自定義功能。
- 提高能源效率:Cortex-M0+內(nèi)核效率極高,其Coremark/mA較8位或16位競爭性產(chǎn)品高達(dá)2倍。嵌入式系統(tǒng)結(jié)合這種強大的Cortex-M0+內(nèi)核,可以更快地完成任務(wù)并返回睡眠模式,從而節(jié)省能源。
即使睡眠模式也能夠很好地節(jié)省功耗:在飛思卡爾Kinetis® L 系列產(chǎn)品上進(jìn)入9種模式中的最深度睡眠模式時,其功耗低至<1uA。而且,由于Kinetis系列產(chǎn)品上的外圍模塊采用智能設(shè)計,因此你可以在不喚醒內(nèi)核的情況下做更多的事情,從而進(jìn)一步節(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)存地址進(jìn)行分頁,所以可以直接訪問。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)核之間進(jìn)行調(diào)整時,我們可以十分簡便地重復(fù)使用各種硬件和軟件。此外,因為飛思卡爾Kinetis MCU引腳和模塊具備兼容性,并且該系列的設(shè)備數(shù)以百計,所以沿著性能/閃存曲線上下移動非常簡便。
飛思卡爾進(jìn)一步促進(jìn)了32位的開發(fā)工作,推出了Processor Expert®軟件建模工具和MQX™-Lite實時操作系統(tǒng)(RTOS),有助于迅速啟動和推進(jìn)全新的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和更多先進(jìn)的外圍模塊,而FRDM-KL46Z還進(jìn)一步支持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能夠獲得各種先進(jìn)的傳感器,以便探索周圍的世界。
在整個學(xué)習(xí)過程中,務(wù)必和其他工程師保持密切聯(lián)系,e絡(luò)盟社區(qū)可以提供這方面的支持。通常,你所面臨的問題,其他工程師已經(jīng)有了解決方案,從這一點上來講,網(wǎng)絡(luò)社區(qū)是一個不錯的資源。
32位的未來
科技從未停止進(jìn)步,越來越多的嵌入式應(yīng)用將采用32位MCU,這種趨勢只會加速。從開發(fā)套件到原型機和制造的每個設(shè)計流程階段,e絡(luò)盟均為工程師提供支持,確保他們在選擇遷移至32位架構(gòu)時胸有成竹。較高的性能、卓越的功率效率以及更好的代碼密度,現(xiàn)在就邁開腳步,走向更加美好的32位未來吧。