戚建宇 何松 鹿朋
摘 要:文章分析了計算機專業近幾年來嵌入式系統實驗教學的現狀,針對當前嵌入式系統教學中存在教學時間不足、實驗與教學不同步等問題,探討構建一個多功能嵌入式虛擬實驗平臺作為嵌入式系統課程實驗階段的基本要求。最后,文章給出了設計的實驗教學規劃。
關鍵詞:嵌入式;虛擬實驗平臺;實驗教學
嵌入式系統課程(ARM7)是一門多課程交叉與融合的課程,包含了計算機軟件基礎、數字電路基礎、ucos操作系統、微機接口、通信網絡技術等各個學科領域的許多相關知識點,教學內容多而雜。為了學生們能較好地學習課程的理論知識,掌握較強的實際動手能力,僅僅依靠課堂上教師的講授是不行的。我們必須設立實驗教學環節讓學生深刻了解嵌入式系統的實際硬件結構與相關的軟件知識,并由此來提高學生的實際動手能力。
虛擬實驗是傳統實物實驗的衍生,通過某幾種軟件對實際硬件平臺進行模擬。因此我們可以暫時離開硬件平臺來學習ARM嵌入式系統知識。僅僅依靠計算機,學生就能完成ARM實驗的設計與運行。實驗的效果與使用硬件實驗箱調試幾乎一樣。
1 現階段嵌入式系統教學分析
(1)教學內容繁多,但卓越工程師計劃的要求教學時間從48課時減少到 36課時。如果僅僅使用現有的上課的時間,理論與實驗的安排幾乎不能保證課程大綱的要求。
(2)現有的教學方法單一,學生反應遲鈍。教師教學嚴重依靠PPT,教學方法無引導、缺乏啟發式與項目式等具有活力的新教學方法。
(3)實驗環節與理論教學不同步。嵌入式系統課程本身具有較強的實踐性。實驗需要結合理論教學,教師需要給學生提供一個有針對性的實驗操作平臺,依托開設的實驗加深對理論的理解,獲得實際感性的認識,從而培養和鍛煉學生實際動手能力[1-3]。實驗教學環節是課程教學重要而不可缺少的一部分,尤其對于“嵌入式系統”這些實踐性強的課程。當前嵌入式系統課程為常州工學院一門新開設的課程,實驗室沒有購置相應實驗設備。在課堂理論教學時不能給學生直觀的感性認識,在進行實際設計時,學生往往不知所措,無從下手。
(4)教學進程脫節嚴重。老師使用傳統的教學方式使得教師的教與學生的學無法和諧地配合起來[4]:一方面,教師以課堂PPT教學為主,不能啟發學生進而引導學生自主學習和思考;另一方面,學生總是覺得老師講課沒意思,上課時間開小差、說話,特別是玩手機現象較多。學生課間幾乎不與老師進行交流,一般平時不學習、考前突擊。
2 嵌入式系統(ARM7)虛擬實驗教學改革與探索
2.1 實驗內容選擇與探索
嵌入式設計是實際應用與現有技術結合。嵌入式系統融合許多學科領域,涉及微電子、芯片設計和微機原理等,覆蓋知識范圍廣。為使學生較好地掌握嵌入式設計,培養他們學會系統性和理論性分析能力,較強解決問題的能力,所以課程實驗內容的選擇與設置上應當包含了嵌入式操作系統、嵌入式應用、集成開發環境以及嵌入處理器等4個方面的實訓。
(1)為了豐富實驗平臺的內容,增加實驗趣味性從而增強對學生的吸引,采取以問題為主的實驗教學手段,以引導學生自我思考和自我動手實踐技能培養。以探究式、啟發式實驗項目為主要手段,教師提出問題,學生結合已經學習過的相關課程知識,引導學生自我思考解決問題。
(2)在實驗內容選擇上,選用嵌入式系統硬件設計與軟件設計相結合的綜合實驗,培養學生運用與獲取知識的能動性。在硬件設計實驗中,從過去使用和依靠現有的嵌入式實驗平臺,到如今要求學生運用軟件工具自主設計并完成一個最小系統的設計與使用
(3)以優秀的現有項目、學科競賽要求的項目為典型實驗案例,引導學生進行分析和驗證。要求學生對實驗中具體問題進行具體的討論,討論分析各個實驗小組解決問題的實施方案,培養學生獨立思考解決問題的能力。
2.2 實驗平臺設計
Proteus軟件是Lab Center Electronics公司開發的電路分析與嵌入式仿真軟件,十分適合ARM嵌入式系統設計與模擬開發的EDA軟件[5]。虛擬實驗平臺設計遵循課程教學大綱的要求,讓學生掌握嵌入式系統的知識和熟悉系統設計方法,在設計虛擬實驗項目時采取了循序漸進的教學方法,遞進式,以適用不同能力的學生。主體設計思想應為簡單明了容易上手,既要能夠體現各個必要的知識點,又要引導學生真正踏入系統設計與開發的大門。
2.3 部分綜合虛擬實驗模塊
(1)GPIO程序設計與電路仿真如圖1所示。本實驗在輸出低電平時操控LED點亮。首先將PINSEL0,PINSEL1寄存器設置所有引腳連接GPIO,再通過IO0DIR寄存器設置P0.0~P0.7為控制輸出口,運用IO0SET寄存器進行置位操作,循環語句,同時調用延時程序,利用清零寄存器IO0CLR、置位寄存器IO0SET交替進行操作,驅動LED的亮滅。
圖1 GPIO電路仿真
(2)UART程序設計與電路仿真如圖2所示。使用UART1來輸出字符,首先根據要求初始化串口0,設置I/O連接到UART0就是運用了PINSEL0寄存器,對UART0的初始化接口P0.0,P0.1進行相關的設置,然后設置波特率,設置好分頻器等,接著開始設置向串口發送字節數據。
圖2 UART電路仿真
(3)A/D程序設計與電路仿真如圖3所示。設置需要顯示的數組、ADC模塊,轉換時鐘,利用軟件進行轉換操作,讀取ADC結果切換通道并進行第一次轉換,等待轉換結束,然后再次啟動轉換,讀取ADC的結果,從串口中輸出結果。外部電壓進行AD采樣,接著利用單個程序啟動(Single Program Initiation,SPI)接口對采樣回來的數據進行顯示,并將轉換結果通過UART發給上位機進行顯示。
圖3 A/D電路仿真
(4)I2C程序設計與電路仿真如圖4所示。定義器件的地址和LED輸出端口,設置包括從機地址、子地址、數據緩沖區指針、操作數據個數、操作結束標志、子地址使能控制在內的變量。PINSEL0,PINSEL1寄存器設置I/O口工作模式,LED控制口為輸出。初始化晶振頻率,使能I2C中斷,設置其中所有的通道為IRQ中斷,在初始地址讀出字節數據,讀出的數據不正確報警。
圖4 I2C電路仿真
3 實驗平臺的應用
經過一年半的實際教學,筆者發現教師編寫指導書越為詳細,學生實際學習的機會越少,所有的學生都會按照編寫的指導書的步驟按部就班地完成實驗。實驗的本質作用應該是培養學生的設計能力,而不是演示實驗本身。虛擬實驗平臺可以使得教師僅僅發揮引導作用,學生作為實驗設計主體,培養學生的創新和解決問題的能力[6-8]。針對大綱知識點可以在課堂上安排1~2學時演示性實驗,并且可以在課堂教學的電子課件中進行,這樣可以使學生對必要知識點有直觀感性的認識。實驗環節的實驗安排側重于設計性與設計性,實驗安排循序漸進,從零開始,易于上手。學生獲得成功,有了成就感,學生才會有信心,并樂于深入設計學習。第二課堂的課題可以多樣化、分級化,鼓勵學生采用過關式方法完成設計題目,一級一級地完成設計挑戰。對于競賽性的題目,要注意綜合性,鼓勵學生先設計實驗平臺的最小系統模塊,在此基礎上根據需要,自己設計所需的模塊電路,充分調動和培養學生的創新意識。
4 結語
嵌入式系統(ARM7)課程作為一門新開設的課程,該課程的改革與建設將是一項長期、痛并快樂的工作,教學上可以借鑒參考同行高校的經驗不多,因此需要學校和課程團隊不斷參考實際情況,在教學中勇于創新實踐,不斷調整和改革教學手段,完善課程培養大綱,及時吸收新技術,新思想,不斷完善課堂教學方法和實際實驗手段,從而培養出動手能力強,富有創新意識和能力的嵌入式系統設計人才。