天天看點

《stm32嵌入式系統開發實戰指南》一1.4 微控制器選型

在項目的最初階段,首先需要解決的問題是選擇适合工程需要的微控制器。通常,選擇一款适合工程需求的微控制器,不僅需要考慮成本、主頻、硬體接口,還需要考慮是否運作作業系統、配套的開發工具、仿真器,以及工程師對微控制器的經驗和軟體支援情況等。微控制器選型是否得當對項目開發的進度至關重要,甚至關系項目的成敗。

(1) 價格及供貨保證

晶片的價格和供貨是必須考慮的因素。由于許多晶片目前處于試用階段,其價格和供貨處于不穩定狀态,是以選型時盡量選擇有量産的晶片。

(2) 主頻(核心頻率)

晶片的主頻很大程度上決定了系統的實時性能,選擇合适的主頻既能保證産品的實時性能,又能将系統硬體成本控制在合理的範圍。

(3) 硬體接口

硬體接口通常包括片内外設和可擴充外設接口。晶片的片内外設越接近産品的需求,産品開發相對就越簡單。在片内資源無法滿足工程需求時,通常需要通過可擴充外設接口來滿足某種工程需求。常見的片内外設有以太網mac、i/o接口、線上仿真接口、外部存儲接口等。若硬體平台要支援功能較為齊備的作業系統,往往對ram和rom資源的要求就比較高。雖然晶片一般都内置ram和rom,但其容量都很小,這就要求晶片可擴充存儲器。

此外,若工程中存在浮點運算的需求,應盡量采用帶有浮點運算系列的産品來減少工程開發的工作量。處理器的算法分為兩大類别:浮點運算和定點運算。通常定點運算處理器運作速度更快,對功率和成本都更加敏感,而浮點運算處理器則可以在較寬的動态範圍内提供高精确度運算。動态範圍指的是數字格式所能表示的最大數與最小數的比值。而精确度指的是确定分度時的精細程度。

如今某些定點運算處理器能夠在極高的時鐘頻率下運作,如果架構選取恰當的話,它有可能模拟出浮點運算處理器的操作,甚至某些晶片制造商提供的定點運算處理器或控制器的外圍支援庫能夠模拟浮點運算。這種方法以犧牲浮點運算效率來保證低成本和低能耗工作。當然,對于需要進行密集浮點運算的應用來說這并不是最佳方案,但是在某種情況下也不失為一種低成本的好的解決方案。

(4) 作業系統

總體而言,對于需要運作作業系統的工程應用,往往需要更高的主頻及容量更大的存儲空間,以滿足作業系統實時性和編譯生成代碼空間的需求。通常,對于無需mmu(存儲器管理單元)支援的作業系統,其本身需要消耗一定的自身資源,是以工程師應根據作業系統編譯後生成代碼的大小選擇合适存儲空間的控制器即可滿足要求。而對于運作功能齊備的作業系統(如需要mmu和gui元件),通常片記憶體儲空間難以滿足其空間需求,必須選擇具有存儲擴充接口的控制器,并根據實際空間需求擴充其存儲空間。

作業系統的選擇應考慮如下因素:

1)支援的開發工具。某些實時作業系統(rtos)的開發工具相對封閉,往往由該作業系統供應商提供,開發者往往需要向供應商擷取編譯器、調試器等,因而帶來一些額外的費用;而某些作業系統的第三方工具相對廣泛,可供開發者根據個人偏好及項目開發費用進行篩選。

2)作業系統移植。作業系統的移植是一個重要的問題,是關系到整個系統能否按期完工的一個關鍵因素。是以,要選擇那些可移植性程度高的作業系統,最好作業系統供應商能夠提供一些工程執行個體,幫助開發者加速系統的開發進度。

3)記憶體需求。一般而言,在充分考慮工程需求的基礎上,作業系統需要均衡考慮不同作業系統的記憶體需求與擴充記憶體帶來的額外開銷。

4)開發人員對此作業系統及其api的熟悉程度。

5)硬體驅動及第三方工具或協定棧的支援,如網卡驅動、tcp/ip協定棧、ssl協定棧等。

6)可剪裁性。可剪裁的作業系統往往可根據工程的實際需求進行裁剪以最大程度地減小系統資源的額外開銷,常見的可裁剪作業系統有嵌入式vxworks、ucos、freertos等。

7)作業系統的實時性能。

(5) 應用領域

常見的應用領域有航空航天、通信、計算機、工業控制、醫療系統、消費電子、汽車電子等。一般來講,産品的功能和性能對應用領域具有限制作用,産品的功能和性能的确定将縮小選型的範圍。同樣,應用領域的确定也将縮小選型的範圍。如工業控制領域和航空航天領域的産品通常要求工作溫度範圍較寬,一般應選擇工業級或軍工級的晶片。

(6) 功耗

手持裝置、pda、平闆電腦、智能手機、gps導航器、智能家電等消費類電子産品市場的快速增長使得對嵌入式微處理器的需求也不斷提高。這些産品通常采用電池供電,系統的電池供電帶來了一整套全新的應用需求。它們需要使用一個外形緊湊、節能的處理器解決方案。這種限制使得設計者必須在處理性能和功率或效率之間權衡利弊,做出折中。

低功耗的産品能減少對能源的消耗,進而減少環境污染。對個體而言,它能夠減少人們的經濟開銷、提高使用者體驗的舒适度,是以低功耗也成為晶片選型時的一個重要名額。

(7) 封裝

常見的微處理器晶片封裝主要有dip、qfn、qfp、bga幾大類型。bga類型的封裝焊接比較麻煩,焊接成本相對較高。但bga封裝的晶片體積相對較小,能有效減小産品的體積。開發人員應根據需求進行折中選擇。如果對産品體積無特殊要求,選型時盡量選擇dip、qfn或qfp封裝。

(8) 晶片的可延續性及技術的可繼承性

産品更新換代給産品的維護帶來一定的額外風險。是以,開發人員在選型時要考慮晶片在未來一段時間内供貨的可靠性。在晶片選型時,需要考察制造商對該系列核心晶片開發的延續性和繼承性。一般而言,首選知名半導體公司,并據上述原則對其産品進行考察,做出最終選擇。

(9) 仿真器

仿真器是硬體和底層軟體調試時要用到的工具,是開發工作賴以進行的必要工具,開發人員需要利用仿真器安裝固件,調試、驗證開發程式的正确性。選擇适合的仿真器,将為開發帶來諸多便利。對于已有仿真器,開發人員需要留意其對所選晶片的支援情況。

(10) 技術支援

若開發人員對待選的晶片或作業系統較為陌生,則應優選技術支援較為全面的制造商所提供的晶片。優質的技術支援能幫助開發人員快速開展開發工作,避免開發工作中的探索過程和意外的風險。是以選晶片時最好選擇知名的半導體公司。此外,選擇成熟度較高的晶片可以從網絡獲得較多的共享資源,在滿足工程需求的情況下,也是規避開發風險的一種方法。

(11) 開發工具

好的軟體開發工具是提高開發效率的必要條件,優秀的開發工具能有效提高開發人員的工作效率。不僅如此,選擇合适的軟體開發工具對系統的實作會起到很好的作用。

(12) 開發周期

如果工程的開發周期較為緊迫,開發人員應盡量選擇相對熟悉或技術支援相對完善的制造商所提供的晶片。

需求

1)工程需求:工業通信網關,實作網口和rs232通信接口封包的互發互收,封包長度不超過128b。

2)作業系統:freertos v7.1。

3)主頻:60 mhz以上。

4)接口:帶dma控制的以太網控制器、2個以上rs232序列槽、1個usb 2.0接口、1個spi接口、2個can總線接口。

5)時鐘:實時時鐘或實時定時器。

6)引腳封裝:qfp。

7)價格:不超過80元。

選型需求分析

需求1)将“應用領域”定位于工業通信領域。目前市場上生産較适合于工業控制的微處理器的半導體公司有 nxp、atmel、st公司。

需求2)所選作業系統是記憶體需求較小的freertos v7.1作業系統,其無需mmu的支援,是以把選型範圍縮小到arm7和cortex-m3系列,cortex-m3系列采用最新架構,其性能優勢較arm7明顯,也是未來發展的趨勢,是以暫将晶片定位在采用cortex-m3核心的晶片。

結合需求3)、需求4)及工程應用需求,晶片必須帶有dma控制的以太網接口和can總線接口,而且晶片主頻必須達到60mhz以上。在nxp、atmel、st公司生産的晶片中,具備此兩種接口的有:nxp公司的lpc系列、atmel公司的sam3系列和st公司的stm32fx07系列。

根據需求4)~7),綜合考慮選型因素,由于st公司是業内率先推出cortex-m3核心的廠家,其産品系列相對豐富,技術也相對成熟,是以在st公司的互聯型産品中優先選擇符合需求4)~7)的晶片。根據提供的選型表,可選擇stm32f107vct6。