嵌入式系統(tǒng)知識(shí)系統(tǒng)講解
2.4 入門芯片選擇的困惑
嵌入式系統(tǒng)的大部分初學(xué)者需要選擇一個(gè)微控制器(MCU)進(jìn)行入門級學(xué)習(xí),面對眾多廠家生產(chǎn)的微控制器系列,往往不知如何是好。
首先是關(guān)于位數(shù)問題,目前主要有8位、16位和32位MCU。不同位數(shù)的MCU各有應(yīng)用領(lǐng)域,這一點(diǎn)與通用微機(jī)有很大不同。例如做一個(gè)遙控器,不需要使 用32位MCU,否則MCU芯片價(jià)格就已經(jīng)超過遙控器價(jià)格需求。對于首次接觸嵌入式系統(tǒng)的學(xué)習(xí)者,可以根據(jù)自己的知識(shí)基礎(chǔ)選擇入門芯片的位數(shù)。建議大多數(shù)初學(xué)者選擇8位MCU作為快速入門芯片,了解一些匯編與底層硬件知識(shí),之后再選16位或32位芯片進(jìn)行學(xué)習(xí)實(shí)踐。
關(guān)于芯片選擇的另一個(gè)誤區(qū)是認(rèn)為有“主流芯片”存在,嵌入式系統(tǒng)也可以形成芯片壟斷。這完全是一種誤解,是套用通用計(jì)算機(jī)系統(tǒng)的思維模式,而忽視了嵌入式系統(tǒng)應(yīng)用的多樣性。關(guān)于學(xué)習(xí)芯片選擇還有一個(gè)誤區(qū),即誤認(rèn)為選擇工作頻率高的芯片進(jìn)行入門學(xué)習(xí),更先進(jìn)。實(shí)際上,工作頻率高可能給初學(xué)者帶來不少困難。
實(shí)際嵌入式系統(tǒng)設(shè)計(jì)不是追求芯片位數(shù)、工作頻率、操作系統(tǒng)等因素,而是追求穩(wěn)定可靠、維護(hù)、升級、功耗、價(jià)格等指標(biāo)。初學(xué)者選擇入門芯片,是通過某 一:MCU作為藍(lán)本,獲得嵌入式系統(tǒng)知識(shí)體系的通用基礎(chǔ)。其基本原則是:入門時(shí)間較短、硬件成本較低,知識(shí)要素較多,學(xué)習(xí)難度較低。
3 基礎(chǔ)階段的學(xué)習(xí)建議
基于以上討論,下面對廣大渴望學(xué)習(xí)嵌入式系統(tǒng)的學(xué)子提出幾點(diǎn)基礎(chǔ)階段的學(xué)習(xí)建議:
①嵌入式系統(tǒng)軟件硬件密切相關(guān),一定要打好軟硬件基礎(chǔ)。其實(shí),只要找到正確的方法,加上努力,任何理工科學(xué)生,甚至非理工科學(xué)生,都能學(xué)好嵌入式系統(tǒng),可以看看朱有鵬的視頻。
②選擇一個(gè)芯片及硬件評估板(入門芯片最好簡單一點(diǎn),例如8位MCU)、選擇一本好書(最好有規(guī)范的例子)、找一位好老師(最好是有經(jīng)驗(yàn)且熱心的)。硬 件評估板的價(jià)格一定要在1000元以下,不要太貴,最好能有自己動(dòng)手的空間。不花一分硬件錢想要學(xué)好嵌入式系統(tǒng)不實(shí)際,因?yàn)檫@是實(shí)踐性很強(qiáng)的學(xué)科。好書,可以讓人少走彎路,不被誤導(dǎo)。有教師指導(dǎo),學(xué)習(xí)進(jìn)程會(huì)加快(人工智能學(xué)科里有個(gè)術(shù)語叫無教師指導(dǎo)學(xué)習(xí)模式與有教師指導(dǎo)學(xué)習(xí)模式,無教師指導(dǎo)學(xué)習(xí)模式比有教師指導(dǎo)學(xué)習(xí)模式復(fù)雜許多)。
③許多人怕硬件,其實(shí)嵌入式系統(tǒng)硬件比電子線路好學(xué)多了。只要深入理解:MCU的硬件最小系統(tǒng),對I/O口、串行通信、鍵盤、LED、LCD、 SPI、 I2C、PWM、A/D(包括一些傳感器)、D/A等逐個(gè)實(shí)驗(yàn)理解,逐步實(shí)踐,再通過動(dòng)手做一個(gè)實(shí)際的小系統(tǒng),底層硬件基礎(chǔ)就有了。各個(gè)硬件模塊驅(qū)動(dòng)程序的編寫是嵌入式系統(tǒng)的必備基礎(chǔ)。學(xué)習(xí)嵌入式系統(tǒng)的初期,這個(gè)過程是必須的。
④至于嵌入式實(shí)時(shí)操作系統(tǒng)RTOS,一定不要一開始就學(xué),這樣會(huì)走很多彎路,也會(huì)使你對嵌入式系統(tǒng)感到畏懼。等你軟件硬件基礎(chǔ)打好了,再學(xué)習(xí)就感到容易理解。實(shí)際上,許多嵌入式應(yīng)用并不需要操作系統(tǒng)。也可以根據(jù)實(shí)際項(xiàng)目需要,再學(xué)習(xí)特定的RTOS。不要被一些嵌入式實(shí)時(shí)操作系統(tǒng)培訓(xùn)班的宣傳所誤導(dǎo),而忽視實(shí)際嵌入式系統(tǒng)軟硬件基礎(chǔ)知識(shí)的學(xué)習(xí)。
⑤要避免片面地單純從“電子”或“計(jì)算機(jī)軟件”角度認(rèn)識(shí)嵌入式系統(tǒng)。前面說過,嵌入式系統(tǒng)是軟件與硬件的綜合體。因此,要逐步從MCU的最小系統(tǒng)開始, 一點(diǎn)一點(diǎn)理解硬件原理及底層硬件驅(qū)動(dòng)編程方法。要通過規(guī)范的例子,理解軟件工程封裝、可復(fù)用等思想。通過規(guī)范編程,積累底層構(gòu)件(component),也就是一個(gè)一個(gè)模塊;但是要封裝得比較好,可復(fù)用。
⑥注重實(shí)驗(yàn)與實(shí)踐。這里說的實(shí)驗(yàn)主要指通過重復(fù)來驗(yàn)證他人的工作,目的是學(xué)習(xí)基礎(chǔ)知識(shí),這個(gè)過程一定要經(jīng)歷。實(shí)踐是自己設(shè)計(jì),有具體的“產(chǎn)品”目標(biāo)。如果花500元左右,自己做一個(gè)具有一定功能的小產(chǎn)品,且能穩(wěn)定運(yùn)行1年以上,就可以說接近入門了。
⑦關(guān)于入門芯片的選擇。不要選太復(fù)雜的微控制器作為入門芯片,不能超越學(xué)習(xí)過程。不要一下子學(xué)習(xí)幾種芯片??梢酝ㄟ^一個(gè)芯片入門,并具有一個(gè)實(shí)踐經(jīng)驗(yàn)后,根據(jù)實(shí)際需要選擇芯片開發(fā)實(shí)際產(chǎn)品。注意,不要把微處理器(MPU與微控制器(MCU)概念相混淆,微處理器只是微控制器的內(nèi)核。
⑧關(guān)于嵌入式操作系統(tǒng)的選擇??梢缘鹊骄哂幸欢▽?shí)踐基礎(chǔ)后,選擇一個(gè)簡單、容易理解原理的嵌入式操作系統(tǒng)進(jìn)行學(xué)習(xí)。不要一開始就學(xué)習(xí)幾種操作系統(tǒng),理解了基本原理,實(shí)踐中確有實(shí)際需要再學(xué)習(xí)也不遲。人總是要不斷學(xué)習(xí)的。
⑨關(guān)于匯編語言與C語言的取舍。隨著:MCU對C編譯的優(yōu)化支持,對于匯編語言可以只了解幾個(gè)必要的語句,而直接使用C語言編程。但必須通過第一個(gè)程序理解芯片初始化過程、中斷機(jī)制、程序存儲(chǔ)情況等,區(qū)別于PC機(jī)程序的內(nèi)容。另外,為了測試的需要,最好掌握一門PC機(jī)編程語言。
⑩要明確自己的學(xué)習(xí)目的,并注意學(xué)習(xí)方法。要明確學(xué)習(xí)目的是打基礎(chǔ),還是為了適應(yīng)工作需要而進(jìn)行的短訓(xùn)。學(xué)習(xí)方法方面,要g學(xué)根據(jù)習(xí)目的選擇合適的學(xué)習(xí)途徑,注意理論學(xué)習(xí)與實(shí)踐、通用知識(shí)與芯片相關(guān)知識(shí)、硬件知識(shí)與軟件知識(shí)的平衡,要在理解軟件工程基本原理基礎(chǔ)上理解硬件構(gòu)件與軟件構(gòu)件等基本概念。
當(dāng)然,以上只是基礎(chǔ)階段的學(xué)習(xí)建議。要成為良好的嵌入式系統(tǒng)設(shè)計(jì)師,還需要在實(shí)際項(xiàng)目中鍛煉,并不斷學(xué)習(xí)與積累經(jīng)驗(yàn)。
評論