選擇合適的微控制器策略
系統性能并不等價(jià)于計算能力。較低的功耗、豐富的片內外設以及實(shí)時(shí)的信號處理能力對于大部分嵌入式應用來(lái)說(shuō)是最為重要的。傳統的8位、16位單片機已經(jīng)很好的處理了這類(lèi)問(wèn)題,但是隨著(zhù)當今嵌入式設計不斷增長(cháng)的功能需求和特殊要求,許多微控制器廠(chǎng)商開(kāi)始拋棄他們傳統的8位、16位單片機。但是選擇32位處理器對于某些任務(wù)來(lái)可能并不是最適宜的。下面我們就討論一下單片機的選型問(wèn)題。
本文引用地址:http://dyxdggzs.com/article/274480.htm理解系統性能
MIPS(million instructions per second),是微控制器計算能力的表征。但是,所有的嵌入式應用不僅僅是需要計算能力,所以應用的多樣化決定了系統性能衡量方式的多樣化,大部分參數都同等重要并且難于用一個(gè)參數來(lái)表示,我們并不應該僅僅從MIPS就判定系統的好壞。也許某一應用由于成本的限制,需要一款高集成度的微控制器,該控制器需要多個(gè)定時(shí)器和多種接口。但是另一個(gè)應用需要高的精度和快速的模擬轉換能力。兩者的共同點(diǎn)可能僅僅是供電部分,比如采用電池供電。對于一個(gè)實(shí)時(shí)的順序處理應用來(lái)說(shuō),通信的失敗可能會(huì )導致災難性后果。這樣的場(chǎng)合下就需要一個(gè)靈巧的控制器。這個(gè)控制器應當能夠以正確的順序處理任務(wù),并且響應時(shí)間必須均衡。所有上述應用的共同問(wèn)題可能就是定期的現場(chǎng)升級能力。
除了與具體的產(chǎn)品要求有關(guān)外,系統性能的衡量也可以考慮是否有容易上手、容易使用的開(kāi)發(fā)工具、應用示例、齊全的文檔和高效的支持網(wǎng)絡(luò )。
系統性能的相關(guān)問(wèn)題
1.傳統8位單片機的局限
大多數工程師十分關(guān)注系統性能,因為越來(lái)越多的8位和16位單片機家族已經(jīng)無(wú)法滿(mǎn)足當今日益增長(cháng)的需求。陳舊和低效的架構限制了處理能力、存儲器容量、外設處理和低功耗要求。8位的處理器架構,比如8051、PIC14、PIC16、PIC18、78K0和HC08是在高級語(yǔ)言(比如C語(yǔ)言)出現之前開(kāi)發(fā)的,其指令集僅用于匯編開(kāi)發(fā)環(huán)境。并且這類(lèi)架構的中央處理單元(CPUs)缺乏一些關(guān)鍵功能,比如16位的算數運算支持、條件跳轉和存儲器指針。
許多CPU架構執行一條指令需要若干時(shí)鐘周期。Microchip的8位PIC家族執行一條最簡(jiǎn)單的指令需要4個(gè)時(shí)鐘周期,這導致使用20M的時(shí)鐘僅能達到5MIPS.對于其他CPU架構,比如8051內核。其執行一條指令至少需要6個(gè)時(shí)鐘周期,這就使得實(shí)際的MIPS要比給定的時(shí)鐘頻率低很多。
int max(int *array)
{
char a;
int maximum=-32768;
for (a=0;amaximum)
maximum=array[a];
return (maximum);
}
上述代碼是一個(gè)簡(jiǎn)單的C語(yǔ)言函數,表1列出了在三種不同CPU架構上編譯這段代碼的相應結果。8051內核的執行時(shí)間幾乎是PIC16內核的4倍,對于A(yíng)VR架構更是達到了28倍。
表1不同CPU架構的代碼容量和執行時(shí)間
CPU架構代碼容量(字節)執行時(shí)間(周期)
8051 112 9384
PIC16 87 2492
AVR 46 335
一些半導體廠(chǎng)商解決了時(shí)鐘分配問(wèn)題,使得微控制器實(shí)現了單時(shí)鐘周期指令。當時(shí)鐘頻率為100MHz時(shí),Silicon Labs聲稱(chēng)他們基于8位8051架構的微控制器能夠達到100MIPS的峰值。但是,這里有幾個(gè)問(wèn)題:
第一,由于大部分指令需要兩個(gè)時(shí)鐘周期甚至更多,所以其實(shí)際能力接近于50MIPS;
第二,8051是基于累加器的CPU,所有需要計算的數據必須拷貝到累加器。查看8051處理器的匯編代碼,可以發(fā)現65%-70%的指令用來(lái)移動(dòng)數據。由于現代8位和16位單片機架構中有一系列和算術(shù)邏輯單元(ALU)相連的寄存器。因此,8051內核的50MIPS僅相當于現代8位和16位單片機架構的15MIPS.
MOV A,0x82
ADD A,R1
MOV 0x82,A
MOV A,0x83
ADDC A,R2
MOV 0x83,A
MOVX A,@DPTR
MOV OxF0,A
INC DPTR
MOVX A,@DPTR
RET
第三,較老的CPU架構缺乏對大容量存儲器的支持。早在七十年代,很難想象需要超過(guò)64KB存儲器的嵌入式應用,這使得許多CPU設計師選擇16位的地址總線(xiàn)。因此,CPU、寄存器、指令集以及程序存儲器和數據存儲器的數據總線(xiàn)始終受此限制。
第四,在2006年,約有9%的8位嵌入式應用使用了64KB甚至更多的程序存儲空間,這代表了8位MCU市場(chǎng)26%的收益。推測2009年,14%的8位嵌入式應用會(huì )代表36%的收益。而這14%的應用會(huì )使用64KB甚至更多的程序存儲空間。
從系統性能的角度來(lái)看,所有這些使得較舊的8位MCU逐漸失去競爭力。
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論