嵌入式系統(tǒng)的知識體系、學習誤區(qū)及學習建議
1 嵌入式系統(tǒng)的知識體系
嵌入式系統(tǒng)的應用范圍可以粗略分為兩大類:電子系統(tǒng)的智能化(工業(yè)控制、現(xiàn)代農業(yè)、家用電器、汽車電子、測控系統(tǒng)、數(shù)據(jù)采集等),計算機應用的延伸(MP3、手機、通信、網(wǎng)絡、計算機外圍設備等)。從這些應用可以看出,要完成一個以MCU為核心的嵌入式系統(tǒng)應用產品設計,需要硬件、軟件及行業(yè)領域相關知識。硬件主要有MCU的硬件最小系統(tǒng)、輸入/輸出外圍電路、人機接口設計。軟件設計有固化軟件的設計,也可能含PC機軟件的設計。行業(yè)知識需要通過協(xié)作、交流與總結獲得。
概括地說,學習以MCU為核心的嵌入式系統(tǒng),需要以下軟硬件基礎知識與實踐訓練:
①硬件最小系統(tǒng)(電源、晶振、復位、寫入調試接口);
②通用I/O(開關量輸入/輸出,涉及各種二值量檢測與控制);
③模/數(shù)轉換(各種傳感器信號的采集與處理,如紅外、溫度、光敏、超聲波、方向等);
④數(shù)/模轉換(對模擬量設備利用數(shù)字進行控制);
⑤通信(串行通信接口SCI、串行外設接口SPI、集成電路互聯(lián)總線I2C、CAN、USB、嵌入式以太網(wǎng)、ZigBee技術等);
⑥顯示(LED、LCD等);
⑦控制(控制各種設備,包括PWM等控制技術);
⑧數(shù)據(jù)處理(圖形、圖像、語音、視頻等的處理或識別);
⑨各種具體應用。
萬變不離其宗,任何應用都可以歸入這幾類。而應用中的硬件設計、軟件設計、測試等都必須遵循嵌入式軟件工程的方法、原理與基本原則。所以,嵌入式軟件工程也是嵌入式系統(tǒng)知識體系的有機組成部分,只不過它融于具體項目的開發(fā)過程之中。
以上實踐訓練涉及硬件基礎、軟件基礎及相關領域知識。計算機語言、操作系統(tǒng)、開發(fā)環(huán)境等均是達到這些目的的工具。有些初學者,容易把工具的使用與所要達到的真正目的相混淆。例如,有的學習者學了很長時間的嵌入式操作系統(tǒng)移植,而不進行實際嵌入式系統(tǒng)產品的開發(fā),到最后也做不好一個嵌入式系統(tǒng)小產品,偏離了學習目標,甚至放棄嵌入式系統(tǒng)領域。這就是進入了嵌入式系統(tǒng)學習誤區(qū),下面對此作一些分析。
2 嵌入式系統(tǒng)的學習誤區(qū)
關于嵌入式系統(tǒng)的學習方法,因學習經(jīng)歷、學習環(huán)境、學習目的、已有的知識基礎等不同,可能在學習順序、內容選擇、實踐方式等方面有所不同。但是,應該明確哪些是必備的基礎知識,哪些應該先學,哪些應該后學;哪些必須通過實踐才能獲得;哪些是與具體芯片無關的通用知識,哪些是與具體芯片或開發(fā)環(huán)境相關的知識。
由于微處理器與微控制器種類繁多,也可能由于不同公司、機構出于自身的利益,給出一些誤導性宣傳,特別是我國嵌入式微控制器制造技術落后,使得人們對微控制器的發(fā)展,在認識與理解上存在差異,導致一些初學者進入嵌入式系統(tǒng)的學習誤區(qū),浪費了寶貴的學習時間。下面分析可能存在的幾個誤區(qū)。
2.1 操作系統(tǒng)的困惑
如果說,學習嵌入式系統(tǒng)不是為了開發(fā)其應用產品,那就沒有具體目標,諸如學習方法這樣的問題也就不必談了。實際上,這正是許多人想學,又不知從何開始學習的關鍵問題所在,不知道自己學習的具體目標。于是,看了一些培訓廣告,看了書店中種類繁多的嵌入式系統(tǒng)書籍,或上網(wǎng)以“嵌入式系統(tǒng)”為關鍵詞進行查詢,就參加培訓或看書,開始“學習起來”。對于有計算機閱歷的人,往往選擇一個嵌入式操作系統(tǒng)就開始學習了。這有點像“瞎子摸大象”,只了解其一個側面。這樣如何能對嵌入式產品的開發(fā)過程有全面了解呢?針對許多初學者選擇“XXX嵌入式操作系統(tǒng)+XXX處理器”的嵌入式系統(tǒng)入門學習模式,筆者認為是不合適的。筆者的建議是:首先把嵌入式系統(tǒng)軟件與硬件基礎打好了,再根據(jù)實際需要,選擇一種實時操作系統(tǒng)(RTOS)進行學習實踐。要記?。篟TOS是開發(fā)某些類嵌入式產品的輔助工具,是手段,不是目的;許多類嵌入式產品,并不需要RTOS。所以,一開始就學習RTOS,并不符合“由淺入深、循序漸進”的學習規(guī)律。
評論