系統性能并不等價于計算能力。較低的功耗、豐富的片內外設以及實時的信號處理能力對于大部分嵌入式應用來說是最為重要的。傳統的8位、16位單片機已經很好的處理了這類問題,但是隨著當今嵌入式設計不斷增長的功能需求和特殊要求,許多微控制器廠商開始拋棄他們傳統的8位、16位單片機。但是選擇32位處理器對于某些任務來可能并不是最適宜的。下面我們就討論一下單片機的選型問題。
理解系統性能
MIPS(million instructions per second),是微控制器計算能力的表征。但是,所有的嵌入式應用不僅僅是需要計算能力,所以應用的多樣化決定了系統性能衡量方式的多樣化,大部分參數都同等重要并且難于用一個參數來表示,我們并不應該僅僅從MIPS就判定系統的好壞。也許某一應用由于成本的限制,需要一款高集成度的微控制器,該控制器需要多個定時器和多種接口。但是另一個應用需要高的精度和快速的模擬轉換能力。兩者的共同點可能僅僅是供電部分,比如采用電池供電。對于一個實時的順序處理應用來說,通信的失敗可能會導致災難性后果。這樣的場合下就需要一個靈巧的控制器。這個控制器應當能夠以正確的順序處理任務,并且響應時間必須均衡。所有上述應用的共同問題可能就是定期的現場升級能力。
除了與具體的產品要求有關外,系統性能的衡量也可以考慮是否有容易上手、容易使用的開發工具、應用示例、齊全的文檔和高效的支持網絡。
系統性能的相關問題
1.傳統8位單片機的局限
大多數工程師十分關注系統性能,因為越來越多的8位和16位單片機家族已經無法滿足當今日益增長的需求。陳舊和低效的架構限制了處理能力、存儲器容量、外設處理和低功耗要求。8位的處理器架構,比如8051、PIC14、PIC16、PIC18、78K0和HC08是在高級語言(比如C語言)出現之前開發的,其指令集僅用于匯編開發環境。并且這類架構的中央處理單元(CPUs)缺乏一些關鍵功能,比如16位的算數運算支持、條件跳轉和存儲器指針。
許多CPU架構執行一條指令需要若干時鐘周期。Microchip的8位PIC家族執行一條最簡單的指令需要4個時鐘周期,這導致使用20M的時鐘僅能達到5MIPS.對于其他CPU架構,比如8051內核。其執行一條指令至少需要6個時鐘周期,這就使得實際的MIPS要比給定的時鐘頻率低很多。
int max(int *array)
{
char a;
int maximum=-32768;
for (a=0;amaximum)
maximum=array[a];
return (maximum);
}
上述代碼是一個簡單的C語言函數,表1列出了在三種不同CPU架構上編譯這段代碼的相應結果。8051內核的執行時間幾乎是PIC16內核的4倍,對于AVR架構更是達到了28倍。
表1不同CPU架構的代碼容量和執行時間
CPU架構代碼容量(字節)執行時間(周期)
8051 112 9384
PIC16 87 2492
AVR 46 335
一些半導體廠商解決了時鐘分配問題,使得微控制器實現了單時鐘周期指令。當時鐘頻率為100MHz時,Silicon Labs聲稱他們基于8位8051架構的微控制器能夠達到100MIPS的峰值。但是,這里有幾個問題:
第一,由于大部分指令需要兩個時鐘周期甚至更多,所以其實際能力接近于50MIPS;
第二,8051是基于累加器的CPU,所有需要計算的數據必須拷貝到累加器。查看8051處理器的匯編代碼,可以發現65%-70%的指令用來移動數據。由于現代8位和16位單片機架構中有一系列和算術邏輯單元(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架構缺乏對大容量存儲器的支持。早在七十年代,很難想象需要超過64KB存儲器的嵌入式應用,這使得許多CPU設計師選擇16位的地址總線。因此,CPU、寄存器、指令集以及程序存儲器和數據存儲器的數據總線始終受此限制。
第四,在2006年,約有9%的8位嵌入式應用使用了64KB甚至更多的程序存儲空間,這代表了8位MCU市場26%的收益。推測2009年,14%的8位嵌入式應用會代表36%的收益。而這14%的應用會使用64KB甚至更多的程序存儲空間。
從系統性能的角度來看,所有這些使得較舊的8位MCU逐漸失去競爭力。
2.不適宜32位處理器的場合
舊式CPU架構無法滿足當今的市場需求,為了解決這個問題,許多廠商升級至32位的處理平臺。對于需要32位處理能力的應用來說這無疑是最棒的選擇,但是許多設計師轉換到32位平臺并非最正確的選擇。使用32位MCU來解決8位和16位單片機的自身限制將會導致過高的成本。
大部分32位微控制器無法提供高速、高分辨率的模數(ADC)轉換,EMC性能通常較低,且ESD保護較弱。而8位和16位單片機在這些方面優勢明顯。另外,強的IO驅動能力,可供選擇的多種內部、外部振蕩器,無需外部器件的片內電壓調整器等是8位和16位單片機的另一些優點。
顯然,32位CPU包含比任何8位和16位CPU都要多的數字邏輯單元,這導致了高的制造成本。雖然使用一些特殊的半導體工藝可以降低成本,但是弊端是會導致較高的漏電流和靜態功耗。某些應用,像水表、燃氣表、收費公路電子標簽、安全系統等,在他們生命期中的大部分時間,CPU處于睡眠模式,即為停止狀態。這類應用的電池壽命必須在5-10年,所以這情況中,不可能將CPU從8位或者16位升級至32位處理器。如果想要提升系統性能只有采用別的方法。
保持采用統一產品線
生產商會定期生產新的嵌入式產品擴展產品線以保持競爭力。這些新產品通常是完善需求、升級性能或者降低成本。其他因素還包括制造工藝升級、提升競爭力和市場發展趨勢。獨立于最先的設想,新產品總是基于一些核心思想。因此,新的產品或者升級版本會依賴于已經存在的平臺和源代碼。
研究表明,半數公司潛在重用已有硬件和軟件以減少開發時間。工程師對特定MCU產品家族的了解程度、相關MCU的開發文檔是否詳細以及是否具有高效的開發工具也是降低開發時間和成本的重要因素。
保護知識產權和處理保密信息
一些嵌入式應用用來處理個人信息。另一些授權訪問受限區域或者金融領域。幾乎所有的微控制器都在運行具有產權的程序。如果相關軟件被破解,甚至克隆產品在市場流通,知識產權的所有人可能會失去未來的收益。正是由于這個原因,大部分微控制器都有保護機制。這種機制可以阻止黑客或者第三方使用編程器、調試器或者測試接口來讀出程序存儲器。
當今,越來越多的應用采用層次設計或者功能模塊設計。不同功能模塊或者部件之間的有線通信或者無線通信成為一個越發困難和值得注意的問題。為了阻止第三方的非法訪問,必須進行加密。這方面的一個例子就是遙控車門開關(Remote Keyless Entry, RKE)或者家庭無線網絡。如果傳輸的數據沒有加密,那任何人都有可能使用您的車或使用您的無線互聯網連接。傳統的解決方法是使用封閉算法或者加密算法,這樣只有知道算法的人可以使用。這樣的方法被稱為通過隱匿來實現安全(security by obscurity),這是一種非常危險的做法。最佳的解決方法是使用諸如AES或者DES這類的公開算法,這類算法既允許公眾查閱又可以保障他們的安全。如果你使用私密加密算法或者匿名加密算法,則無法*估安全級別或者發現關鍵的設計缺陷。
使用公開加密協議的問題是需要強大的運算能力和可靠的算法設計。在現代8位MCU上使用DES算法加密或者解密一個8字節的塊所需時間的典型值是大約10 萬個時鐘周期。這相當于使用全部的15MIPS來支持9600Kbps的通信速度。而32位CPU進行同樣的運算通常會快50%-60%.在32MHz系統時鐘下,使用45000周期或1.4毫秒只能以45 kbps的速度進行安全數據通信,因為所有的CPU時間都用于加密和解密。顯然,系統沒有多少時間可以留給實際的應用程序。其次,大多數的無線應用是電池驅動的,如果大多數處理能力都用在安全方面,將縮短電池壽命。
高集成度與中斷延時和安全
現在的微控制器在其片內集成了越來越多的外設。通常來說,外設對微控制器高效的完成工作起著至關重要的作用。外設起著連接傳感器、系統控制、數據通信、故障控制和計時等多種作用。傳統方法是使用中斷來與片內外設通信。這樣的優勢很明顯,大大的節約CPU時間,使得軟件不必循環檢測外設狀態,從而本質上提高了CPU的效率。即使如此,中斷方式仍然有一些劣勢,其中一個就是中斷例程中的上下文切換要花費一些處理周期。對于現代的CPU架構來說,中斷的上下文切換需要20-100個時鐘周期。假設有一個簡單的任務,它獲取發來的SPI數據。如果SPI的速率是1Mbps,則SPI接收中斷的頻率可達 125KHz.如果SPI中斷處理需要25時鐘周期(包括上下文切換),那對于20MIPS的CPU時間來說,僅處理SPI中斷就需要花費15%的CPU 時間。如果同時還有其他一系列中斷,則意味著CPU必須處理巨大的任務。
使用中斷方式的另一個劣勢就是中斷響應時間對關鍵系統事件的影響。某些中斷源可能要求在觸發后CPU必須立即響應。比如汽車的安全氣囊、動力設備的急停等危機情況以及緊急情況的應用。所有這些都要求立即相應,或者立即關閉控制系統以防止發生永久性災難事件。如果CPU需要首先完成其他的中斷服務程序或者需要花費較長的時間進行上下文切換,結果將無法預知。
目前,已經有些半導體廠商開發了一些新的技術。這些技術用來取代傳統的中斷方式或者DMA方式,使用這類技術進行外設通信可以節省大量的CPU時間。
評論
查看更多