王一光
摘要:嵌入式系統是各大高校廣泛開設的一門實用性很強的專業課程,該課程對于學生未來從事嵌入式行業的職業發展非常重要。傳統的嵌入式教學方法通常把教學的重點集中在嵌入式操作系統本身,也就是更傾向于軟件層的講解和介紹。而在中間層和硬件層方面涉及的內容相對較少,這使得學生容易在學習的過程中脫離實際并將嵌入式系統課程學成一門純粹的理論課或C語言編程課。因此,文章在分析嵌入式系統課程特點的基礎上,提出在教學過程中可以采用軟硬件結合或理論聯系實際的嵌入式系統教學方法。
關鍵詞:嵌入式系統;教學方法;軟硬件結合;理論聯系實際
近年來,為了適應信息技術、物聯網以及互聯網等行業高速發展的需要,大部分高等院校都開設了嵌入式系統、嵌入式單片機或者嵌入式操作系統等課程。開設此類嵌入式相關課程的目的主要是使學生能夠在本科階段對該領域及相關技術有一個預先的了解,為將來從事該行業打下良好的理論及實踐基礎。但隨著嵌入式系統相關課程的開展也逐漸暴露了一些在教學方法方面存在的問題,比如課程內容過于偏重原理介紹,忽視了理論與實際的結合、以軟件編程(操作系統方面)作為主導使嵌入式教學變成了典型的編程語言教學等。因此,本文在上述問題的基礎上歸納總結了如下幾個關于嵌入式系統教學的改進方法和措施。
一、注重對于嵌入式系統硬件的講解
眾所周知,嵌入式系統不是一個簡單的軟件系統或者操作系統,無論是單片機、DSP還是FPGA等都是嵌入式系統的承載媒體或介質。脫離了承載的硬件進行嵌入式系統教學容易使學生脫離實際進行理論學習,而且可能使學生產生諸如“嵌入式系統開發就是C語言編程嗎?”“嵌入式系統和Windows系統有什么區別?”“嵌入式系統的硬件就是一塊電路板嗎?”等疑問。因此,本課程在教學過程中應有意識地在每堂課中穿插加入關于嵌入式系統硬件設計的內容,包括GPIO(LED燈、按鍵、PWM)、串行通信接口(RS232、RS485、SPI、I2C)、溫度傳感器、USB、WDG(看門狗)、定時器、液晶顯示、數模/模數轉換、Flash存儲和網絡通信等功能模塊。學生可以在學習嵌入式系統原理的同時更清楚、直觀地認識嵌入式系統的各個硬件組成部分及其功能。這樣,一方面對于已經完成的如“數字邏輯電路”“C語言程序設計”“模擬電路技術基礎”和“單片機原理”等課程是一種鞏固和加強;另一方面可以使學生對嵌入式系統產生更加真切的認識,避免出現“學完不知道學的是什么、也不知道用于何處”等諸如此類的問題。
二、在開展嵌入式系統試驗的過程中注重各功能模塊的試驗教學
在嵌入式系統教學的過程中試驗環節是必不可少的,學生不僅可以通過試驗對所學的理論知識進行鞏固,而且可以將理論知識運用到實際中去,更真切地理解嵌入式系統的原理。但在以往的教學過程中,試驗的重點更側重于軟件環境的搭建、開發板環境的搭建、應用程序的移植、內核的裁剪移植和根文件系統的制作等。在實際中缺乏對前述的GPIO、串行通信接口、溫度傳感器、USB、WDG、定時器、液晶顯示、數模/模數轉換、Flash存儲和網絡通信等功能模塊進行單獨的、有針對性的試驗訓練和練習,而所缺失的功能訓練環節對激發學生的學習興趣是非常有益的。并且,單個功能模塊的功能調試相對于整個嵌入式系統的調試來說相對比較簡單,學生很容易通過簡單操作看到實際效果,比如LED小燈閃爍、液晶屏顯示溫度以及與電腦進行簡單串行通信等。每實現一個新的功能都會給予學生新的興趣點,這樣可以在一定程度上提高學生學習嵌入式系統的積極性和效果。因此,在嵌入式系統試驗教學的過程中,增加一定的針對嵌入式系統硬件功能模塊的試驗環節對于提高教學效果和學生興趣是非常必要的。
三、采用理論授課與實際操作同時進行的方式
作為一類學生比較陌生的操作系統,嵌入式操作系統在學習初期上手的難度較大。特別是其采用命令行操作式的交互方式,與傳統的Windows圖形操作方式有較大的差別。全新的用戶、文件系統、進程、線程的概念以及網絡管理、內存管理、進程調度、進程間通信、網絡接口和虛擬文件系統等內核相關內容對于大多數學生來說理解起來都存在一定的困難。因此,為了實現更好的教學效果,在條件允許的情況下可以選擇在機房授課的方式,通過多媒體教學系統和虛擬機軟件(VMware),在講解的同時進行演示操作并可以隨時方便快捷地解決學生在學習過程中出現的問題。
四、采用課程設計的方式使學生完整地參與一個嵌入式項目的開發過程
僅有理論教學的嵌入式系統課程很難獲得良好的效果。一個完整的嵌入式項目開發過程(從設計、編程到調試、實現的全過程)可以使學生將之前所學的相關知識綜合運用、融會貫通。美國加州大學伯克利分校從事嵌入式系統教學多年的Edward A. Lee教授認為“在六周的嵌入式相關教學課程之后,學生須要利用九周甚至更長的時間參與一個課程設計項目,從列表中選擇一個他們感興趣的項目進行研究。而且,在這個研究過程中對學生進行指導的不是講授嵌入式系統課程的教師,而是一些真正從事實際嵌入式項目的技術人員”。由此可以看出,歐美發達國家的高等院校在進行嵌入式教學的過程中會利用較長的時間(嵌入式課程理論教學時間的1.5倍)來引導學生參與完整的嵌入式課程設計并接受具有豐富實踐經驗的嵌入式專業技術人員的指導,這對學生形成完整的知識體系、提高實際動手能力都是很有幫助的。同時,可以采用分組的方式使學生進行團隊合作,充分培養他們的團隊協作能力和團隊合作精神。因此,我們通過采用更偏重實際的嵌入式課程設計使學生獲得更多的相關知識和實際經驗。
下面以本人在課程設計中采用的嵌入式基站控制系統項目為例進行說明:該系統以實現大量移動通信基站的安保、安防以及遠距離自動無人值守監控功能為目的進行設計,可以利用視頻和傳感探測單元等對本地的異常報警事件進行儲存或通過3G無線網絡將實時信息上傳控制中心,從而實現遠程集中監控的設計目標。該系統軟件環境采用Linux嵌入式實時操作系統,硬件采用飛思卡爾IMX.53X系列微處理器作為核心控制單元,通過與多通道視頻控制器(TW2835)相結合構成一個集視頻監控、任務調度、網絡通信和數據采集為一體的多功能操控平臺。
考慮到培養學生的動手能力和團隊合作精神,此課程設計以六人為一個小組,每個小組推選一名負責人,負責進行分工和協調。根據嵌入式系統教材的內容和教學大綱的要求,將整個嵌入式基站控制系統課程設計分為如下6個部分:1)人機界面:通過LED指示燈和音頻對系統的工作狀態、報警和故障進行指示以及實現遠程呼叫、對講功能;2)視頻監控:采用420線NTSC制式的CCD球式或槍式攝像機CATV型視頻接入,將視頻錄像數據進行本地保存并采用覆蓋方式存儲;3)有線網絡數據通信:通過有線網絡與遠程上位機系統進行視頻數據、語音數據、業務數據以及指令的交互通信;4)無線網絡數據通信:采用支持CDMA標準的3G通信模塊實現無線網絡通信功能;5)RS-485/RS-232通信:與球式攝像機的云臺、空調監控模塊和UPS等動力環境監控模塊進行通信;6)報警事件本地存儲:將報警事件信息及相應的視頻錄像數據保存在本地的Flash或SD卡中,隨時可以遠程對本地存儲的報警數據進行管理。
五、采用多種方式對學生的嵌入式系統學習過程進行評價
與傳統的理論教學為主的專業課程不同,嵌入式系統課程本身更偏重于實踐操作。因此,采用傳統的期末“一張考卷”的成績評定方式對學生的學習效果和能力進行評價并不盡合理,同時也容易影響學生參與嵌入式系統教學、試驗和課程設計的積極性。因此,可以考慮適當降低理論部分在學生嵌入式系統學習成績中的比重,甚至可以考慮取消理論考試,取而代之以試驗考試或者課程設計的表現作為決定學生期末成績的主要依據。比如,可以將最終評定方式的比例選擇為理論考試占20%、試驗成績占40%、課程設計成績占40%。當然,也可以對上述比例進行適當的調整,但主要的原則應該是鼓勵學生主動地提高自身的動手和試驗操作能力,使其在畢業后能夠較快地融入到嵌入式領域的工作中。
參考文獻:
[1]賀丹丹,張帆,劉峰.嵌入式 Linux 系統開發教程[M].清華大學出版社, 2010.
[2]楊霞.嵌入式系統及應用課程教學研究與實踐 [J].計算機教育, 2008, 5: 71-74.
[3]Lee E A, Seshia S A, Jensen J C. Teaching embedded systems the Berkeley way[C].Proceedings of the Workshop on Embedded and Cyber-Physical Systems Education. ACM, 2012: 1.