嵌入式硬件開發主要編寫嵌入式系統硬件總體方案和詳細方案,進行硬件選型(單片機、DSP或者其他處理器)及系統分析;負責硬件詳細設計及實現,包含原理設計、PCB layout、硬件調試;參與系統移植以及驅動的開發調試;這些都是嵌入式硬件開發的工作內容,而在嵌入式硬件開發過程中,很多人都會在這些地方犯糊涂,總結了一些嵌入式硬件開發中需要留意的一些問題,這是嵌入式硬件開發中最重要的,必須了解。
在嵌入式硬件開發中,你做了需求分析,但是往往到后面問題的考慮上還是會出現很多問題,在這里一個不漏的告訴你:
1.MCU的選擇
選擇 MCU 時要考慮 MCU 所能夠完成的功能、MCU 的價格、功耗、供電電壓、I/O 口電平、管腳數目以及 MCU 的封裝等因素。MCU 的功耗可以從其電氣性能參數中查到。供電電壓有 5V、3.3V 以及 1.8V 超低電壓供電模式。為了能合理分配 MCU 的I/O資源,在 MCU 選型時可繪制一張引腳分配表,供以后的設計使用。
2. 晶振確定
晶振相當于嵌入式系統的心臟,其穩定與否直接關系其運行狀態和通訊性能。常見的振有無源晶振,有源晶振,首先要確定其振蕩頻率,其次要確定晶振類型。
a、無源晶振
其匹配電容和匹配電阻的選擇,這部分一般依據參考手冊。在單片機設計中,經常使用插件晶振配合瓷片電容。在ARM中,為了減少空間和便于布線,經常使用四角無源晶振配合貼片電容。雖然我們對于固定晶振的匹配電路比較熟悉,但是為了達到萬無一失,還是要看參考手冊確定電容大小,是否需要匹配電阻等細節。
b、有源晶振
具有更好的更準確的時鐘信號,但是相比之下,比無緣晶振價格高,因此這也是在硬件電路設計中需要關注的成本。
在做電路板設計時需要注意晶振走線盡量靠近芯片,關鍵信號遠離時鐘走線。在條件允許的情況下增加接地保護環。如果是多層板,也要講關鍵信號遠離晶振的走線。
3.普通I/O口
(1)上拉、下拉電阻:考慮用內部或者外部上/下拉電阻,內部上/下拉阻值一般在 700Ω 左右,低功耗模式不宜使用。外部上/下拉電阻根據需要可選 10KΩ~1MΩ 之間。
(2)開關量輸入:一定要保證高低電壓分明。理想情況下高電平就是電源電壓,低電平就是地的電平。如果外部電路無法正確區分高低電平,但高低仍有較大壓差,可考慮用 A/D 采集的方式設計處理。對分壓方式中的采樣點,要考慮分壓電阻的選擇,使該點通過采樣端口的電流不小于采樣最小輸入電流,否則無法進行采樣。
(3)開關量輸出:基本原則是保證輸出高電平接近電源電壓,低電平接近地電平。I/O 口的吸納電流一般大于放出電流。對小功率元器件控制最好是采用低電平控制的方式。一般情況下,若負載要求小于10mA,則可用芯片引腳直接控制;電流在 10~100mA 時可用三極管控制,在 100mA~1A 時用 IC 控制;更大的電流則適合用繼電器控制,同時建議使用光電隔離芯片。
4.電源
(1)考慮系統對電源的需求,例如系統需要幾種電源,如24V、12V、5V或者3.3V等,估計各需要多少功率或最大電流(mA)。在計算電源總功率時要考慮一定的余量,可按公式“電源總功率=2×器件總功率”來計算。
(2)考慮芯片與器件對電源波動性的需求。一般允許電源波動幅度在 ±5% 以內。對于A/D轉換芯片的參考電壓一般要求 ±1% 以內。
(3)考慮工作電源是使用電源模塊還是使用外接電源。
5.控制電路
對外控制電路要注意設計的冗余與反測,要有合適的信號隔離措施等。在評估設計的布板時,一定要在構件的輸入輸出端引出檢測孔,以方便排查錯誤時測量。
6.A/D電路與D/A電路
(1)A/D電路:要清楚前端采樣基本原理,對電阻型、電流型和電壓型傳感器采用不同的采集電路。如果采集的信號微弱,還要考慮如何進行信號放大。
(2)D/A電路:考慮 MCU 的引腳通過何種輸出電路控制實際對象。
7. 考慮低功耗
低功耗設計并不僅僅是為了省電,更多的好處在于降低了電源模塊及散熱系統的成本。由于電流的減小也減少了電磁輻射和熱噪聲的干擾。隨著設備溫度的降低,器件壽命則相應延長,要做到低功耗一般需要注意以下幾點:
(1)并不是所有的總線信號都要上拉。上下拉電阻也有功耗問題需要考慮。上下拉電阻拉一個單純的輸入信號,電流也就幾十微安以下。但拉一個被驅動了的信號,其電流將達毫安級。所以需要考慮上下拉電阻對系統總功耗的影響。
(2)不用的I/O口不要懸空,如果懸空的話,受外界的一點點干擾就可能成為反復振蕩的輸入信號,而MOS器件的功耗基本取決于門電路的翻轉次數。
(3)對一些外圍小芯片的功耗也需要考慮。對于內部不太復雜的芯片功耗是很難確定的,它主要由引腳上的電流確定。例如有的芯片引腳在沒有負載時,耗電大概不到1毫安,但負載增大以后,可能功耗很大。
8.考慮低成本
(1)正確選擇電阻值與電容值。比如一個上拉電阻,可以使用4.5K-5.3K的電阻,你覺得就選個整數5K,事實上市場上不存在5K的阻值,最接近的是4.99K(精度1%),其次是5.1K(精度5%),其成本分別比精度為20%的4.7K高4倍和2倍。20%精度的電阻阻值只有1、1.5、2.2、3.3、4.7、6.8幾個類別(含10的整數倍);類似地,20%精度的電容也只有以上幾種值,如果選了其它的值就必須使用更高的精度,成本就翻了幾倍,卻不能帶來任何好處。
(2)指示燈的選擇。面板上的指示燈選什么顏色呢?有些人按顏色選,比如自己喜歡藍色就選藍色。但是其它紅綠黃橙等顏色的不管大小(5mm以下)封裝如何,都已成熟了幾十年,價格一般都在5毛錢以下,而藍色卻是近三四年才發明的,技術成熟度和供貨穩定度都較差,價格卻要貴四五倍。 (注: 這一已經是幾年前的看法了.)
(3)不要什么都選最好的。在一個高速系統中并不是每一部分都工作在高速狀態,而器件速度每提高一個等級,價格差不多要翻倍,另外還給信號完整性問題帶來極大的負面影響.
這些是不是你都掌握了呢,在嵌入式硬件開發中這是很重要的,不要忽視這些,這都是你成為真正的嵌入式硬件開發工程師需要掌握的。