新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 手把手教你如何選擇合適的微控制器?

        手把手教你如何選擇合適的微控制器?

        作者: 時間:2017-10-20 來源:網(wǎng)絡 收藏

          

        本文引用地址:http://www.104case.com/article/201710/366722.htm

          系統(tǒng)性能并不等價于計算能力。較低的功耗、豐富的片內(nèi)外設以及實時的信號處理能力對于大部分嵌入式應用來說是最為重要的。傳統(tǒng)的8位、16位單片機已經(jīng)很好的處理了這類問題,但是隨著當今嵌入式設計不斷增長的功能需求和特殊要求,許多廠商開始拋棄他們傳統(tǒng)的8位、16位單片機。但是選擇32位處理器對于某些任務來可能并不是最適宜的。下面我們就討論一下單片機的選型問題。

          理解系統(tǒng)性能

          (million instructions per second),是計算能力的表征。但是,所有的嵌入式應用不僅僅是需要計算能力,所以應用的多樣化決定了系統(tǒng)性能衡量方式的多樣化,大部分參數(shù)都同等重要并且難于用一個參數(shù)來表示,我們并不應該僅僅從就判定系統(tǒng)的好壞。也許某一應用由于成本的限制,需要一款高集成度的,該控制器需要多個定時器和多種接口。但是另一個應用需要高的精度和快速的模擬轉換能力。兩者的共同點可能僅僅是供電部分,比如采用電池供電。對于一個實時的順序處理應用來說,通信的失敗可能會導致災難性后果。這樣的場合下就需要一個靈巧的控制器。這個控制器應當能夠以正確的順序處理任務,并且響應時間必須均衡。所有上述應用的共同問題可能就是定期的現(xiàn)場升級能力。

          除了與具體的產(chǎn)品要求有關外,系統(tǒng)性能的衡量也可以考慮是否有容易上手、容易使用的開發(fā)工具、應用示例、齊全的文檔和高效的支持網(wǎng)絡。

          系統(tǒng)性能的相關問題

          1.傳統(tǒng)8位單片機的局限

          大多數(shù)工程師十分關注系統(tǒng)性能,因為越來越多的8位和16位單片機家族已經(jīng)無法滿足當今日益增長的需求。陳舊和低效的架構限制了處理能力、存儲器容量、外設處理和低功耗要求。8位的處理器架構,比如8051、PIC14、PIC16、PIC18、78K0和HC08是在高級語言(比如C語言)出現(xiàn)之前開發(fā)的,其指令集僅用于匯編開發(fā)環(huán)境。并且這類架構的中央處理單元(CPUs)缺乏一些關鍵功能,比如16位的算數(shù)運算支持、條件跳轉和存儲器指針。

          許多CPU架構執(zhí)行一條指令需要若干時鐘周期。Microchip的8位PIC家族執(zhí)行一條最簡單的指令需要4個時鐘周期,這導致使用20M的時鐘僅能達到5.對于其他CPU架構,比如8051內(nèi)核。其執(zhí)行一條指令至少需要6個時鐘周期,這就使得實際的MIPS要比給定的時鐘頻率低很多。

          int max(int *array)

          {

          char a;

          int maximum=-32768;

          for (a=0;amaximum)

          maximum=array[a];

          return (maximum);

          }

          上述代碼是一個簡單的C語言函數(shù),表1列出了在三種不同CPU架構上編譯這段代碼的相應結果。8051內(nèi)核的執(zhí)行時間幾乎是PIC16內(nèi)核的4倍,對于AVR架構更是達到了28倍。

          表1不同CPU架構的代碼容量和執(zhí)行時間

          

          一些半導體廠商解決了時鐘分配問題,使得微控制器實現(xiàn)了單時鐘周期指令。當時鐘頻率為100MHz時,Silicon Labs聲稱他們基于8位8051架構的微控制器能夠達到100MIPS的峰值。但是,這里有幾個問題:

          第一,由于大部分指令需要兩個時鐘周期甚至更多,所以其實際能力接近于50MIPS;

          第二,8051是基于累加器的CPU,所有需要計算的數(shù)據(jù)必須拷貝到累加器。查看8051處理器的匯編代碼,可以發(fā)現(xiàn)65%-70%的指令用來移動數(shù)據(jù)。由于現(xiàn)代8位和16位單片機架構中有一系列和算術邏輯單元(ALU)相連的寄存器。因此,8051內(nèi)核的50MIPS僅相當于現(xiàn)代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、寄存器、指令集以及程序存儲器和數(shù)據(jù)存儲器的數(shù)據(jù)總線始終受此限制。

          第四,在2006年,約有9%的8位嵌入式應用使用了64KB甚至更多的程序存儲空間,這代表了8位MCU市場26%的收益。推測2009年,14%的8位嵌入式應用會代表36%的收益。而這14%的應用會使用64KB甚至更多的程序存儲空間。

          從系統(tǒng)性能的角度來看,所有這些使得較舊的8位MCU逐漸失去競爭力。

          2.不適宜32位處理器的場合

          舊式CPU架構無法滿足當今的市場需求,為了解決這個問題,許多廠商升級至32位的處理平臺。對于需要32位處理能力的應用來說這無疑是最棒的選擇,但是許多設計師轉換到32位平臺并非最正確的選擇。使用32位MCU來解決8位和16位單片機的自身限制將會導致過高的成本。

          大部分32位微控制器無法提供高速、高分辨率的模數(shù)(ADC)轉換,EMC性能通常較低,且ESD保護較弱。而8位和16位單片機在這些方面優(yōu)勢明顯。另外,強的IO驅動能力,可供選擇的多種內(nèi)部、外部振蕩器,無需外部器件的片內(nèi)電壓調(diào)整器等是8位和16位單片機的另一些優(yōu)點。

          顯然,32位CPU包含比任何8位和16位CPU都要多的數(shù)字邏輯單元,這導致了高的制造成本。雖然使用一些特殊的半導體工藝可以降低成本,但是弊端是會導致較高的漏電流和靜態(tài)功耗。某些應用,像水表、燃氣表、收費公路電子標簽、安全系統(tǒng)等,在他們生命期中的大部分時間,CPU處于睡眠模式,即為停止狀態(tài)。這類應用的電池壽命必須在5-10年,所以這情況中,不可能將CPU從8位或者16位升級至32位處理器。如果想要提升系統(tǒng)性能只有采用別的方法。

          保持采用統(tǒng)一產(chǎn)品線

          生產(chǎn)商會定期生產(chǎn)新的嵌入式產(chǎn)品擴展產(chǎn)品線以保持競爭力。這些新產(chǎn)品通常是完善需求、升級性能或者降低成本。其他因素還包括制造工藝升級、提升競爭力和市場發(fā)展趨勢。獨立于最先的設想,新產(chǎn)品總是基于一些核心思想。因此,新的產(chǎn)品或者升級版本會依賴于已經(jīng)存在的平臺和源代碼。

          研究表明,半數(shù)公司潛在重用已有硬件和軟件以減少開發(fā)時間。工程師對特定MCU產(chǎn)品家族的了解程度、相關MCU的開發(fā)文檔是否詳細以及是否具有高效的開發(fā)工具也是降低開發(fā)時間和成本的重要因素。

          保護知識產(chǎn)權和處理保密信息

          一些嵌入式應用用來處理個人信息。另一些授權訪問受限區(qū)域或者金融領域。幾乎所有的微控制器都在運行具有產(chǎn)權的程序。如果相關軟件被破解,甚至克隆產(chǎn)品在市場流通,知識產(chǎn)權的所有人可能會失去未來的收益。正是由于這個原因,大部分微控制器都有保護機制。這種機制可以阻止黑客或者第三方使用編程器、調(diào)試器或者測試接口來讀出程序存儲器。

          當今,越來越多的應用采用層次設計或者功能模塊設計。不同功能模塊或者部件之間的有線通信或者無線通信成為一個越發(fā)困難和值得注意的問題。為了阻止第三方的非法訪問,必須進行加密。這方面的一個例子就是遙控車門開關(Remote Keyless Entry, RKE)或者家庭無線網(wǎng)絡。如果傳輸?shù)臄?shù)據(jù)沒有加密,那任何人都有可能使用您的車或使用您的無線互聯(lián)網(wǎng)連接。傳統(tǒng)的解決方法是使用封閉算法或者加密算法,這樣只有知道算法的人可以使用。這樣的方法被稱為通過隱匿來實現(xiàn)安全(security by obscurity),這是一種非常危險的做法。最佳的解決方法是使用諸如AES或者DES這類的公開算法,這類算法既允許公眾查閱又可以保障他們的安全。如果你使用私密加密算法或者匿名加密算法,則無法*估安全級別或者發(fā)現(xiàn)關鍵的設計缺陷。

          使用公開加密協(xié)議的問題是需要強大的運算能力和可靠的算法設計。在現(xiàn)代8位MCU上使用DES算法加密或者解密一個8字節(jié)的塊所需時間的典型值是大約10 萬個時鐘周期。這相當于使用全部的15MIPS來支持9600Kbps的通信速度。而32位CPU進行同樣的運算通常會快50%-60%.在32MHz系統(tǒng)時鐘下,使用45000周期或1.4毫秒只能以45 kbps的速度進行安全數(shù)據(jù)通信,因為所有的CPU時間都用于加密和解密。顯然,系統(tǒng)沒有多少時間可以留給實際的應用程序。其次,大多數(shù)的無線應用是電池驅動的,如果大多數(shù)處理能力都用在安全方面,將縮短電池壽命。

          高集成度與中斷延時和安全

          現(xiàn)在的微控制器在其片內(nèi)集成了越來越多的外設。通常來說,外設對微控制器高效的完成工作起著至關重要的作用。外設起著連接傳感器、系統(tǒng)控制、數(shù)據(jù)通信、故障控制和計時等多種作用。傳統(tǒng)方法是使用中斷來與片內(nèi)外設通信。這樣的優(yōu)勢很明顯,大大的節(jié)約CPU時間,使得軟件不必循環(huán)檢測外設狀態(tài),從而本質(zhì)上提高了CPU的效率。即使如此,中斷方式仍然有一些劣勢,其中一個就是中斷例程中的上下文切換要花費一些處理周期。對于現(xiàn)代的CPU架構來說,中斷的上下文切換需要20-100個時鐘周期。假設有一個簡單的任務,它獲取發(fā)來的SPI數(shù)據(jù)。如果SPI的速率是1Mbps,則SPI接收中斷的頻率可達 125KHz.如果SPI中斷處理需要25時鐘周期(包括上下文切換),那對于20MIPS的CPU時間來說,僅處理SPI中斷就需要花費15%的CPU 時間。如果同時還有其他一系列中斷,則意味著CPU必須處理巨大的任務。

          使用中斷方式的另一個劣勢就是中斷響應時間對關鍵系統(tǒng)事件的影響。某些中斷源可能要求在觸發(fā)后CPU必須立即響應。比如汽車的安全氣囊、動力設備的急停等危機情況以及緊急情況的應用。所有這些都要求立即相應,或者立即關閉控制系統(tǒng)以防止發(fā)生永久性災難事件。如果CPU需要首先完成其他的中斷服務程序或者需要花費較長的時間進行上下文切換,結果將無法預知。

          目前,已經(jīng)有些半導體廠商開發(fā)了一些新的技術。這些技術用來取代傳統(tǒng)的中斷方式或者DMA方式,使用這類技術進行外設通信可以節(jié)省大量的CPU時間。



        關鍵詞: MIPS 微控制器

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 沙河市| 济阳县| 孟连| 微山县| 双桥区| 南康市| 五大连池市| 德保县| 青河县| 昆山市| 五指山市| 孟村| 车险| 海晏县| 海原县| 卓尼县| 共和县| 陕西省| 成都市| 临朐县| 分宜县| 乡宁县| 乌鲁木齐市| 阿勒泰市| 铜梁县| 焦作市| 金秀| 年辖:市辖区| 龙门县| 肃北| 东阳市| 榆林市| 新建县| 施甸县| 保定市| 明光市| 信丰县| 郸城县| 平南县| 乐都县| 永登县|