嵌入式单片机该如何选型?
嵌入式開發中的產品選型小知識
?作為一個嵌入式開發工作人員,當你在確定了一個項目的基本功能之后,那么你就要開始進行產品選型了,能否正確的選擇一款合適的MCU作為你的項目的核心是一位開發者所畢備的技能。要選好一款處理器,要考慮的因素很多,不單單是純粹的硬件接口,還需要考慮相關的操作系統、配套的開發工具、仿真器,以及工程師微處理器的經驗和軟件支持情況等。嵌入式微處理器選型的考慮因素在產品開發中,作為芯片的微處理器,其自身的功能、性能、可靠性被寄予厚望,因為它的資源越豐富、自帶功能越強大,產品開發周期就越短,項目成功率就越高。但是,任何一款微處理器都不可能盡善盡美,滿足每個用戶的需要,所以這就涉及選型的問題。今天咱們就來聊一聊嵌入式相關硬件的的選型。
硬件選型基本原則
a)普遍性原則:所選的元器件要是被廣泛使用驗證過的,盡量少使用冷門、偏門芯片,減少開發風險。
b)高性價比原則:在功能、性能、使用率都相近的情況下,盡量選擇價格比較好的元器件,降低成本。
c)采購方便原則:盡量選擇容易買到、供貨周期短的元器件。
d)持續發展原則:盡量選擇在可預見的時間內不會停產的元器件。
e)可替代原則:盡量選擇pin to pin兼容芯片品牌比較多的元器件。
f)向上兼容原則:盡量選擇以前老產品用過的元器件。
g)資源節約原則:盡量用上元器件的全部功能和管腳。
芯片的選型過程是對各個維度考量的折衷。
全流程關注芯片的屬性
1、我們在選型的時候,需要考慮試產的情況、同時需要考慮批量生產時的情況。
?小批量采購的價格、供貨周期、樣片申請;同時需要關注,大批量之后的價格和供貨周期。有可能批量變大之后,供貨的
價格沒有優勢、或者批量大了之后,產能不足。
?另外,根據自己的實際采購情況,找對應的量級的供應商。例如,原廠往往不直接供貨,需要通過代理商。有些代理商的
供貨量級都是有要求的。
?之前,有一個選型,選擇了ST的STM32F427IGT6,原廠很給力幫忙申請樣片。但是在采購的過程中碰到的困難,雖然我
們希望整盤采購,但是由于其代理商出貨量都有一定的要求,導致價格跟一開始通過原廠了解到的價格不一致。要高出很多。
同時由于整個行業使用該芯片的場景不是很多,所以導致淘寶價格非常貴,根本沒法接受。同時,有做芯片銷售的朋友說
是由于無人機廠家大量使用,導致有人在炒這顆芯片的價格,所以導致很難買到。
2、關注器件本身的生命周期與產品生命周期的匹配
?對于通信設備一般要求我們選用的器件要有5年以上的生命周期,并且有后續完整的產品發展路標。
?我們的當時的一個新硬件平臺,產品規劃的時候是用于替代發貨量在百萬級單板數量的成熟平臺。由于切換周期比較長。
新產品在完成開發后1~2年之后,才逐步上量。其中一個DSP電路板,外設存儲是SDRAM。正在產品準備鋪量的時候,鎂光
等幾大 內存芯片廠家,宣布停產。導致產品剛上量,就大量囤積庫存芯片,并且尋找臺灣的小廠進行器件替代。
所以在器件選型的時候,充分體現了“人無遠慮必有近憂”。
3、除了考慮功能和實驗室環境,還需要考慮整個生命周期的場景。
具體的芯片選型
(1)應用領域
?一個產品的功能、性能一旦定制下來,其所在的應用領域也隨之確定。應用領域的確定將縮小選型的范圍,例如:工業控
制領域產品的工作條件通常比較苛刻,因此對芯片的工作溫度通常是寬溫的,這樣就得選擇工業級的芯片,民用級的就被排除
在外。目前,比較常見的應用領域分類有航天航空、通信、計算機、工業控制、醫療系統、消費電子、汽車電子等。
(2)自帶資源
?經常會看到或聽到這樣的問題:主頻是多少?有無內置的以太網MAC?有多少個I/O口?自帶哪些接口?支持在線仿真嗎?是
否支持OS,能支持哪些OS?是否有外部存儲接口?……以上都涉及芯片資源的問題,微處理器自帶什么樣的資源是選型的一個
重要考慮因素。芯片自帶資源越接近產品的需求,產品開發相對就越簡單。
(3)可擴展資源
?硬件平臺要支持OS、RAM和ROM,對資源的要求就比較高。芯片一般都有內置RAM和ROM,但其容量一般都很小,內
置512KB就算很大了,但是運行OS一般都是兆級以上。這就要求芯片可擴展存儲器。
(4)功 耗
?單看“功耗”是一個較為抽象的名詞。低功耗的產品即節能又節財,甚至可以減少環境污染,還能增加可靠性,它有如此多
的優點,因此低功耗也成了芯片選型時的一個重要指標。
(5)封 裝
?常見的微處理器芯片封裝主要有QFP、BGA兩大類型。BGA類型的封裝焊接比較麻煩,一般的小公司都不會焊,但BGA
封裝的芯片體積會小很多。如果產品對芯片體積要求不嚴格,選型時選擇QFP封裝。
(6)芯片的可延續性及技術的可繼承性
?目前,產品更新換代的速度很快,所以在選型時要考慮芯片的可升級性。如果是同一廠家同一內核系列的芯片,其技術可
繼承性就較好。應該考慮知名半導體公司,然后查詢其相關產品,再作出判斷。
(7)價格及供貨保證
?芯片的價格和供貨也是必須考慮的因素。許多芯片目前處于試用階段(sampling),其價格和供貨就會處于不穩定狀態,所
以選型時盡量選擇有量產的芯片。
(8)仿真器
?仿真器是硬件和底層軟件調試時要用到的工具,開發初期如果沒有它基本上會寸步難行。選擇配套適合的仿真器,將會給
開發帶來許多便利。對于已經有仿真器的人們,在選型過程中要考慮它是否支持所選的芯片。
(9)OS及開發工具
?作為產品開發,在選型芯片時必須考慮其對軟件的支持情況,如支持什么樣的OS等。對于已有OS的人們,在選型過程中
要考慮所選的芯片是否支持該OS,也可以反過來說,即這種OS是否支持該芯片。
(10)技術支持
?現在的趨勢是買服務,也就是買技術支持。一個好的公司的技術支持能力相對比較有保證,所以選芯片時選擇知名的半導
體公司。
?另外,芯片的成熟度取決于用戶的使用規模及使用情況。選擇市面上使用較廣的芯片,將會有比較多的共享資源,給開發
帶來許多便利。
?這里再說一點,有些廠家善于做MCU的簡單應用,有的廠家善于做工控或者更復雜的MCU和CPU的應用,所以會各有優
劣。
?CPU按指令集架構體系分主流的有PowerPC、X86、MIPS、ARM四種,X86采用CISC指令集,POWERPC、MIPS、
ARM采用RISC指令集,RISC的CPU多應用于嵌入式。
?業界PowerPC主要用于網絡通信市場,X86重點在PC、服務器市場,MIPS的目標市場為網絡、通信等嵌入式應用以及數
字消費類應用,ARM的目標市場為便攜及手持計算設備、多媒體、數字消費類產品。
?高端處理器中x86架構雙核處理器和MIPS架構多核處理器業務定位不一樣,MIPS處理器容易實現多核和多線程運算,在
進行數據平面報文轉發時表現出色,但單個處理器內核結構簡單,進行復雜運算和報文深度處理時明顯不如x86和PowerPC。
數據處理選用多核MIPS或NP,控制應用選用PowerPC或嵌入式x86。
?ARM器件的業界生態環境比較好,有多家芯片供應商可以提供ARM器件,選型必須經過多家對比分析和競爭評性評估
STM32和GD32的區別
基本介紹
?目前市面上的32位芯片有很多,最常見的就意法半導體公司生產的STM32系列芯片,同樣國產芯片也在不斷崛起,常見的有海思,樂鑫,兆易等廠家,其中目前做的比較好的國內的芯片廠家在工業控制領域以兆易創新也就是常見的GD32為主,在無線通信領域則已樂鑫為主,常見的有esp8266和esp32等芯片,價格不高但是性能強大,其中GD32的芯片更是有部分能夠直接替換STM32的產品。下面兩張圖是兩個廠家的芯片選型手冊,可以看到ST的產品種類是遠比GD的多的,不過畢竟國內企業剛起步,還是有很潛力的。有朋友可能會覺得是不是GD抄襲之類的,據說GD的開發人員是來自于ST公司的,GD也確實是以ST為模板開發出來的,但是和芯片相關的的外圍設計是不能夠申請專利的,所以也不存在什么抄襲的說法。
區別之處
1 內核
?GD32采用二代的M3內核,STM32主要采用一代M3內核,下圖是ARM公司的M3內核勘誤表,GD使用的內核只有752419這一個BUG。
2 主頻
使用HSE(高速外部時鐘):GD32的主頻最大108M,STM32的主頻最大72M
使用HSI(高速內部時鐘):GD32的主頻最大108M,STM32的主頻最大64M
主頻大意味著單片機代碼運行的速度會更快,項目中如果需要進行刷屏,開方運算,電機控制等操作,GD是一個不錯的選擇。
3 供電
外部供電:GD32外部供電范圍是2.63.6V,STM32外部供電范圍是23.6V。GD的供電范圍比STM32相對要窄一點。
內核電壓:GD32內核電壓是1.2V,STM32內核電壓是1.8V。GD的內核電壓比STM32的內核電壓要低,所以GD的芯片在運行的時候運行功耗更低。
4 Flash差異
GD32的Flash是自主研發的,和STM32的不一樣。
GD Flash執行速度:GD32 Flash中程序執行為0等待周期。
STM32 Flash執行速度:ST系統頻率不訪問flash等待時間關系:0等待周期,當0<SYSCLK<24MHz,1等待周期,當24MHz<SYSCLK≤48MHz,2等待周期,當48MHz<SYSCLK≤72MHz。
Flash擦除時間:GD擦除的時間要久一點,官方給出的數據是這樣的:GD32F103/101系列Flash 128KB 及以下的型號, Page Erase 典型值100ms, 實際測量60ms 左右。對應的ST 產品Page Erase 典型值 20~40ms。
5 功耗
從下面的表可以看出GD的產品在相同主頻情況下,GD的運行功耗比STM32小,但是在相同的設置下GD的停機模式、待機模式、睡眠模式比STM32還是要高的。
6 串口
GD在連續發送數據的時候每兩個字節之間會有一個Bit的Idle,而STM32沒有,如下圖。
GD的串口在發送的時候停止位只有1/2兩種停止位模式。STM32有0.5/1/1.5/2四種停止位模式。
GD 和STM32 USART的這兩個差異對通信基本沒有影響,只是GD的通信時間會加長一點。
7 ADC差異
GD的輸入阻抗和采樣時間的設置和ST有一定差異,相同配置GD采樣的輸入阻抗相對來說要小。具體情況見下表這是跑在72M的主頻下,ADC的采樣時鐘為14M的輸入阻抗和采樣周期的關系:
8 FSMC
STM32只有100Pin以上的大容量(256K及以上)才有FSMC,GD32所有的100Pin或100Pin以上的都有FSMC。
9 103系列的RAM和FLASH大小不一樣
GD103系列和ST103系列的ram和flash對比如下圖:
10 抗干擾能力
?關于這一點,官方沒有給出,我也是在做項目的時候偶然發現的,項目原本是用STM32F103C8T6,后來換成GD F103C8T6,這兩個芯片的引腳完全一致,然后單片機用了的兩個鄰近的引腳作為SPI的時鐘引腳和數據輸出引腳,然后發現STM32的SPI能正常通訊,GD的不行,經過檢查發現PCB板SPI的銅線背面有兩根IIC的銅線經過,信號應該是受到影響了。
?用示波器看了一下引腳的電平,發現確實是,STM32和GD的數據引腳波形都不正常,但是STM32的波形要好很多,波形雖然差了點,但是SPI通訊依然正常。
?而GD則不能正常通訊了。然后我又把SPI的通訊速率減慢,發現STM32的數據引腳很快就恢復正常波形了,而GD的依然差,直到速率降到很低才恢復正常。初步懷疑是STM32內部對引腳有做一些濾波的電路,而GD則沒有。
?雖然我用的這個電路板本身布線有些不合理,但是在同樣惡劣的環境下,STM32依然保證了通訊的正常,而GD不行,這在一定程度上說明了GD的抗干擾能力不如STM32。
總結
以上是生活随笔為你收集整理的嵌入式单片机该如何选型?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql concat字符串拼接函数使
- 下一篇: job历史执行记录查询 oracle_o