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