劉小虎 熊義勇



摘要:口袋式實驗系統具有便攜性和擴展性,首先進行了口袋式實驗系統的硬件方案設計。由于口袋實驗的教學模塊有限,如何利用有限的實驗模塊來提升學生的實際動手能力,給出了教學設計方案,采用了問題式、層次推進的教學實施方案,教學效果表明,口袋實驗教學方案能夠取得較好的教學效果。
關鍵詞:口袋實驗;便攜性;擴展性;軟件;層次推進
中圖分類號:TP368 文獻標識碼:A 文章編號:1007-9416(2020)05-0206-03
嵌入式系統的教學核心目的是讓學生掌握嵌入式的硬件和軟件設計方法。顯然,僅僅通過有限的課內實驗學時,是不能滿足要求的。采用口袋式實驗系統,學生可以將口袋實驗系統帶到圖書館或者宿舍來完成軟件調試的學習,從而擴展了學生的課堂學習實踐活動。由于口袋式實驗系統,硬件的尺寸和功率消耗都必須受到約束,所以,首先必須對常用的嵌入式實驗系統進行有效的裁剪,盡量保留嵌入式最基礎和最核心的模塊嘲。其次,如何基于最精簡的口袋實驗系統,如何開展有效的教學活動,顯然非常關鍵,筆者根據多年的授課體會,總結出來一種層次推進的教學實施方案。同時口袋式實驗還用于學員的課外學科競賽,取得了不錯的教學效果。
1硬件設計方案
嵌入式系統的特點是,它是一種積木式的組合方式,嵌入式課程所涉及的主要模塊包括,GPIO模塊,定時器模塊,中斷模塊,PWM模塊,UART模塊、CAN模塊,以太網模塊。傳統的嵌入式實驗平臺,實驗內容非常多,同時也非常全面,以STM32單片機的實驗箱為例,包括了接近50個實驗,涵蓋內容從基本的GPIO、通用定時器到高級的DMA、ESMC等高級模塊。模塊越多,試驗箱的尺寸不可避免的變大。即便是同一個模塊,傳統的實驗箱所設計的實驗項目也偏多偏全,如12C模塊的應用實驗,—般的實驗系統會包括12C存儲器實驗,12C擴展實驗,及12C液晶顯示實驗,顯然過多的實驗模塊增大了實驗平臺的尺寸,同時對實驗平臺的供電也提高了要求??诖角度胧綄嶒炂脚_,立足于嵌入式的基本模塊,方便學生在課后自主時間進行實驗操作,為此,對嵌入式實驗教學內容進行了優化,實驗教學內容包括:(1)GPIO輸出基本實驗;(2)基于定時器的GPl0輸出實驗;(3)基于查詢的GPIO輸入實驗;(4)基于中斷的GPIO輸入實驗;(5)PWM控制實驗;(6)ADC采集實驗;(7)12C實驗;(8)uART實驗;(9)CAN通訊實驗;(10)以太網通訊實驗。
針對上述實驗內容,進行了硬件電路設計,硬件模塊除了最小系統外,還包括流水燈模塊、按鍵模塊、電位器、液晶屏、CAN模塊和以太網模塊??诖角度胧较到y的結構框圖如圖1所示。
1.1CPU模塊
ARM教學用芯片非常多,我們采用STM32F103系列,采用該芯片作為教學對象,主要是該芯片的教學范例非常多,其復雜程度適合于初學者,同時該芯片的價格比較便宜,適合初學者購買。為了方便學生學習,將教學主要涉及的引腳包括GPIO/PWM/12C/ADC/UART,對于其他引腳,僅僅在CPU的四周引出,方便學生課堂外的科研活動的擴展。擴展的引腳如圖2所示。
1.2電源模塊
電源模塊對于口袋式系統非常關鍵,首先功耗不能太高,一般按照500毫安設計,其次,口袋實驗都是基于3.3VTTL電平,因此只需要輸出3.3V即可。其次要考慮供電的方便性和安全性,因此考慮采用USB供電,由于仿真器也可以輸出3.3V,為了兼顧仿真器的供電,采用了簡單的跳線方案,具體的電源模塊供電如圖3所示。
1.3流水燈模塊
GPIO的學習是嵌入式學習的基礎,通過該模塊可以讓學生快速走人嵌入式的大門,但是,傳統的嵌入式GPIO實驗室進行單個LED的閃爍實驗,實驗過于簡單,對學生沒有一定的吸引力,為此設計8個LED的流水燈實驗,依次點亮相應的LED即可以產生流水燈的效果。流水燈模塊的電路如圖4所示。
1.4通訊模塊
為了方便學生掌握串口通訊,同時還得考慮串口調試的便利性,拋棄了傳統的MAX3232和DB9的接口電路方案,采用了CH341的串口芯片,電路如圖5所示。
2教學方案設計
嵌入式教學,涉及的知識點多,如此多的教學模塊,到底按照一個什么樣的一個思路開展呢,基于口袋實驗實驗,筆者采用層次推進的措施,首先通過流水燈模塊的實驗,來學生掌握基本的GPO操作,對于GPIO的學習,建議將GPIO分解為兩步,即首先學習簡單的通用輸出的操作,而且為了增加學生學習的興趣,對8個LED依次點亮,稍微增加學生完成任務的難度。并且借助流水燈模塊的學習,還可以讓學生熟悉開發軟件的操作,并且重點是開發軟件的調試方法。然后,進行按鍵的查詢編程,按鍵的響應則用LED來指示。由于按鍵的查詢編程比較簡單,增加2個按鍵的查詢編程,并增加查詢的時間長度,通過該實驗可以提現查詢編程的缺點,就是不能快速響應,因此推進到中斷的編程,通過中斷來陜速響應按鍵的電平變化,由于中斷是嵌入式學習的重點,也是學習的難點,因此后面的實驗還要重復練習中斷。掌握了GPIO和中斷后,增加定時器模塊,還是用流水燈模塊,但是要求使用通用定時器,可以讓學生體會通用定時器的優點。通過以上學習,學生就可以進行基本的嵌入式開發了。以此為基礎,再增加一些難度,編寫呼吸燈的實驗,通過定時器來完成燈的亮度控制,由于該編程非常繁瑣,所以,采用PWM模塊再次進行呼吸燈的實驗,讓學生對定時器和PWM兩種編程進行比對。PWM是嵌入式的高階應用,在掌握了這個模塊以后,就可以進行模擬量采集的實驗,這里僅僅是采集電位器的電壓,為了增加難度,用這個電位器的值控制PwM的占空比,進行控制呼吸燈,增加了學生學習采樣的興趣。然后進行12C模塊的學習,為了提升學生的獲得感,采用了液晶屏模塊,讓學生體會12c模塊的強大功能。所有這些掌握了以后,開始進行通訊模塊的學習,包括uART通訊,CAN通訊和以太網通訊,由于通訊協議很枯燥,因此通訊模塊的測試可以結合前面采樣模塊的學習進行,將采集的結果通過通訊發送到電腦,可以讓學生更加直觀的體會通訊模塊。
3口袋嵌入式系統的課外應用
嵌入式應用技術課程,重點是如何應用嵌入式技術進行自主開發,把它應用到各種實際裝置中。由于口袋式系統在設計時,雖然僅僅提供了很少的開發模塊,但是卻將芯片的絕大部分引腳進行了外擴,它除了完成教學和實驗功能外,還可以作為工程原型機,進行工程開發及驗證微控制的各種功能。學生可以利用該系統參與教研室的各項科研項目中,同時還可以利用該平臺進行畢業設計,以及各類學科競賽,包括電子設計競賽和大學生智能汽車競賽等活動中。我校學生利用該系統作為核心板,參加2018年大學生智能汽車競賽獲取了賽區二等獎。如圖6所示為智能汽車的圖片。
4結語
嵌入式的學習,重點是動手實踐,采用口袋實驗方案,可以在課外繼續進行相關是實驗,采用層次遞進的教學方式,先簡單在復雜,適合學生迅速掌握嵌入式的開發方法。同時,口袋式教學系統還可以服務于學生的學科競賽活動,因此,它是一種比較好的教學實踐活動。