徐 偉
(青海師范大學(xué),西寧 810001)
從上世紀(jì)90年代開(kāi)始到現(xiàn)在,嵌入式系統(tǒng)廣泛應(yīng)用在航空航天、車載電子、科研教學(xué)、交通管理、環(huán)境工程與工業(yè)控制等領(lǐng)域。2018年國(guó)家重大科技專項(xiàng)中提到“攻克智能終端嵌入式CPU 和操作系統(tǒng)的高性能低功耗等核心關(guān)鍵技術(shù)”的發(fā)展規(guī)劃,深度地推進(jìn)嵌入式系統(tǒng)產(chǎn)業(yè)結(jié)構(gòu)戰(zhàn)略性調(diào)整和優(yōu)化升級(jí),推進(jìn)行業(yè)技術(shù)創(chuàng)新和技術(shù)進(jìn)步,促進(jìn)嵌入式系統(tǒng)行業(yè)的重大發(fā)展。嵌入式系統(tǒng)行業(yè)重大發(fā)展背后是行業(yè)的相關(guān)企業(yè)對(duì)人才巨大的需求。因此高校對(duì)嵌入式系統(tǒng)應(yīng)用型人才的培養(yǎng)也日益重視,許多院校紛紛開(kāi)設(shè)了嵌入式系統(tǒng)課程。但是目前高校輸送的人才與企業(yè)需要的人才相差甚遠(yuǎn),甚至相當(dāng)數(shù)目的相關(guān)專業(yè)畢業(yè)生連嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境都難以順利搭建。因此我們急需在嵌入式系統(tǒng)的課程設(shè)計(jì)上做出修改,夯實(shí)學(xué)生基礎(chǔ)知識(shí),提高學(xué)生的工程能力和創(chuàng)新能力,使畢業(yè)生能夠滿足行業(yè)企業(yè)技術(shù)發(fā)展需求。
(1)學(xué)生在理論方面學(xué)習(xí)困難。由于該課程涉及的知識(shí)點(diǎn)較多,許多概念抽象,學(xué)生學(xué)習(xí)難度大。教學(xué)中存在理論環(huán)節(jié)和實(shí)驗(yàn)環(huán)節(jié)脫節(jié),達(dá)不到的理論與實(shí)踐相輔相成的教學(xué)效果。比如一些學(xué)校在此課程教學(xué)中使用的理論教材幾乎每章節(jié)都是針對(duì)ARM 芯片開(kāi)展的,但是學(xué)生的動(dòng)手實(shí)驗(yàn)卻幾乎只針對(duì)的操作系統(tǒng)層面以及應(yīng)用程序方面,顯出嚴(yán)重的脫節(jié)。在學(xué)習(xí)中,學(xué)生難以將理論和實(shí)踐聯(lián)系起來(lái),而且在教學(xué)中等于變相增加學(xué)習(xí)難度,學(xué)習(xí)興趣也被打擊。
(2)雖然許多高校的實(shí)驗(yàn)設(shè)備配置較高,但實(shí)驗(yàn)課程的設(shè)計(jì)主要是驗(yàn)證性實(shí)驗(yàn),缺乏自主動(dòng)手設(shè)計(jì)性實(shí)驗(yàn),綜合性開(kāi)發(fā)實(shí)驗(yàn)則更少。學(xué)生在實(shí)驗(yàn)課上難以自己動(dòng)手設(shè)計(jì)和制作實(shí)驗(yàn)項(xiàng)目,缺乏主動(dòng)參與的環(huán)節(jié),無(wú)法調(diào)動(dòng)其積極性,難以真正熟悉和掌握嵌入式系統(tǒng)的開(kāi)發(fā)過(guò)程[1、2]。
(3)雖然實(shí)驗(yàn)教學(xué)涉及面較廣,但單個(gè)實(shí)驗(yàn)內(nèi)容的設(shè)計(jì)卻彼此孤立,實(shí)驗(yàn)項(xiàng)目單一,沒(méi)有系統(tǒng)性地設(shè)計(jì)出一套實(shí)驗(yàn)教學(xué)課程,來(lái)幫助學(xué)生逐步深入地進(jìn)行實(shí)驗(yàn)。
(4)多數(shù)高校本課程開(kāi)設(shè)時(shí)間不長(zhǎng),課程建設(shè)不完善,多數(shù)教師無(wú)項(xiàng)目經(jīng)驗(yàn),教師的項(xiàng)目培訓(xùn)機(jī)會(huì)也很少。目前僅有的培訓(xùn)幾乎都來(lái)自實(shí)驗(yàn)設(shè)備廠家的短期培訓(xùn),并且培訓(xùn)內(nèi)容也只針對(duì)學(xué)校已購(gòu)買設(shè)備的使用而不是項(xiàng)目開(kāi)發(fā)。教師自己動(dòng)手開(kāi)發(fā)項(xiàng)目經(jīng)驗(yàn)主要依賴教師自己摸索實(shí)踐[3]。
(5)在結(jié)束實(shí)驗(yàn)教學(xué)環(huán)節(jié)后,教師通過(guò)對(duì)學(xué)生的調(diào)查發(fā)現(xiàn),大多數(shù)學(xué)生在實(shí)驗(yàn)過(guò)程中僅驗(yàn)證實(shí)驗(yàn)指導(dǎo)書上的步驟以及代碼,并沒(méi)有深入理解底層硬件(包括外圍設(shè)備)、驅(qū)動(dòng)程序、操作系統(tǒng)和軟件編程之間的關(guān)聯(lián)性,沒(méi)有真正掌握嵌入式系統(tǒng)的設(shè)計(jì)方法,甚至整個(gè)教學(xué)結(jié)束后也無(wú)法進(jìn)行軟硬件結(jié)合的嵌入式系統(tǒng)完整開(kāi)發(fā)[4]。學(xué)生也不能明白企業(yè)項(xiàng)目開(kāi)發(fā)原則和方法。有相當(dāng)數(shù)量的學(xué)生經(jīng)過(guò)一學(xué)期的嵌入式系統(tǒng)課程學(xué)習(xí)后,既不能清楚地說(shuō)出實(shí)驗(yàn)環(huán)境的主要軟硬件設(shè)備和工具,也不能獨(dú)立搭建一個(gè)完整的開(kāi)發(fā)環(huán)境。
因此目前多數(shù)高校的嵌入式系統(tǒng)在實(shí)驗(yàn)教學(xué)中未能取得明顯的教學(xué)效果。
本教學(xué)方案是以實(shí)驗(yàn)教學(xué)為主,理論教學(xué)是實(shí)驗(yàn)教學(xué)的基礎(chǔ)。理論課程設(shè)計(jì)與實(shí)驗(yàn)教學(xué)課程設(shè)計(jì)相配合,并為實(shí)驗(yàn)教學(xué)服務(wù)。到本課程開(kāi)課時(shí),學(xué)生已完成一系列軟硬件課程的學(xué)習(xí)。本課程需要的許多理論知識(shí)早已在前期課程中有不同程度的學(xué)習(xí)。因此理論教學(xué)環(huán)節(jié)中,教師針對(duì)學(xué)生的基礎(chǔ)以及此課程所需要的深度合理分配課時(shí)。筆者按照我校的教學(xué)安排(整個(gè)嵌入式系統(tǒng)的教學(xué)共計(jì)72學(xué)時(shí)),以24課時(shí)講授嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境、交叉編譯工具、BootLoader 以及內(nèi)核移植、編程語(yǔ)言(我們使用C 語(yǔ)言)驅(qū)動(dòng)開(kāi)發(fā)、以及Android 圖形設(shè)計(jì)簡(jiǎn)介理論知識(shí)環(huán)節(jié),剩下48課時(shí)集中于實(shí)驗(yàn)教學(xué)。許多理論知識(shí)對(duì)于學(xué)生來(lái)說(shuō)需要在實(shí)驗(yàn)課上將其深入吸收。
實(shí)驗(yàn)教學(xué)是嵌入式系統(tǒng)教學(xué)的重點(diǎn)。實(shí)驗(yàn)教學(xué)的目的不是停留在驗(yàn)證性實(shí)驗(yàn)上,而是學(xué)生能夠自己設(shè)計(jì)并完成一些創(chuàng)新性實(shí)驗(yàn)。實(shí)驗(yàn)教學(xué)的平臺(tái)是億創(chuàng)宏達(dá)公司的Cortex-A9綜合實(shí)驗(yàn)實(shí)訓(xùn)系統(tǒng)。嵌入式系統(tǒng)是一門綜合性較高的課程,它涉及的知識(shí)較廣。若學(xué)生在本門課程學(xué)習(xí)結(jié)束后能夠達(dá)到上述的教學(xué)目的,那么學(xué)生不但借助本門課程將本專業(yè)的基礎(chǔ)知識(shí)深入地復(fù)習(xí)和深刻地領(lǐng)會(huì),增強(qiáng)了本專業(yè)的學(xué)習(xí)興趣,而且提升了個(gè)人的工程項(xiàng)目開(kāi)發(fā)能力和綜合“實(shí)戰(zhàn)”能力。
實(shí)驗(yàn)教學(xué)分為三部分,第一部分是嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境的搭建和驗(yàn)證性實(shí)驗(yàn)教學(xué)部分。此實(shí)驗(yàn)教學(xué)部分共計(jì)26課時(shí),重視理論和實(shí)踐的結(jié)合。第二部分是教師進(jìn)行案例實(shí)驗(yàn)教學(xué),共12課時(shí)。教師通過(guò)一個(gè)綜合案例進(jìn)行教學(xué)演示,學(xué)生跟著教師一步一步動(dòng)手學(xué)習(xí)。第三部分是綜合設(shè)計(jì)性實(shí)驗(yàn)教學(xué),此部分共計(jì)10課時(shí),由學(xué)生自主完成,教師對(duì)其指導(dǎo)。
(1)在驗(yàn)證性的實(shí)驗(yàn)教學(xué)中,每?jī)蓚€(gè)學(xué)生為一組共同完成。教師指導(dǎo)學(xué)生在Cortex-A9綜合實(shí)驗(yàn)實(shí)訓(xùn)系統(tǒng)上快速搭建并熟悉嵌入式開(kāi)發(fā)環(huán)境,此后進(jìn)入具體的驗(yàn)證性實(shí)驗(yàn)項(xiàng)目。此部分的驗(yàn)證性實(shí)驗(yàn)?zāi)軌蚓C合認(rèn)識(shí)嵌入式系統(tǒng),產(chǎn)生學(xué)習(xí)興趣。驗(yàn)證性實(shí)驗(yàn)在已有的實(shí)驗(yàn)框架下幫助學(xué)生掌握實(shí)驗(yàn)原理和操作要領(lǐng),讓學(xué)生學(xué)習(xí)實(shí)驗(yàn)操作中的一些基本技能和實(shí)驗(yàn)步驟,為后續(xù)的設(shè)計(jì)性實(shí)驗(yàn)奠定基礎(chǔ)。教師針對(duì)每個(gè)驗(yàn)證性實(shí)驗(yàn)的關(guān)鍵點(diǎn)突出講解,引導(dǎo)學(xué)生掌握實(shí)驗(yàn)的重難點(diǎn)。本階段實(shí)驗(yàn)教學(xué)的考核方式是教師根據(jù)每組實(shí)驗(yàn)結(jié)果和回答老師提出的針對(duì)性問(wèn)題進(jìn)行評(píng)判,以檢驗(yàn)學(xué)生對(duì)實(shí)驗(yàn)的掌握程度[2]。表1羅列了具體驗(yàn)證性實(shí)驗(yàn)和每個(gè)實(shí)驗(yàn)的教學(xué)課時(shí)安排。
表1 驗(yàn)證性實(shí)驗(yàn)表
?
(2)案例教學(xué)。案例教學(xué)是以實(shí)際案例代替純理論講解,是引導(dǎo)學(xué)生對(duì)特定工程背景的教學(xué)內(nèi)容進(jìn)行分析、討論并找出問(wèn)題解決途徑的一種教學(xué)方式,它是培養(yǎng)學(xué)生獨(dú)立分析及處理問(wèn)題的一種有效手段[5]。
在案例教學(xué)中,筆者使用一個(gè)自己設(shè)計(jì)的溫度和距離檢測(cè)系統(tǒng)來(lái)進(jìn)行教學(xué)。此案例分為Android Studio 開(kāi)發(fā)的顯示與控制APP 客戶端軟件,以及由溫度檢測(cè)模塊、Wi-Fi 通信模塊、超聲波測(cè)距模塊以及蜂鳴器模塊組成的嵌入式系統(tǒng)服務(wù)器??蛻舳塑浖到y(tǒng)與服務(wù)器通過(guò)Wi-Fi 模塊連接通信。服務(wù)器上的溫度檢測(cè)模塊與測(cè)距模塊只要有數(shù)據(jù)變動(dòng),在手機(jī)上的客戶端軟件上立即有數(shù)據(jù)顯示出來(lái),這樣可以做到實(shí)時(shí)監(jiān)控。如果溫度檢測(cè)或者距離檢測(cè)超出設(shè)定的范圍,客戶端立即會(huì)有提示,觀測(cè)人員可以通過(guò)客戶端報(bào)警按鍵給服務(wù)發(fā)送報(bào)警信號(hào),嵌入式服務(wù)器的蜂鳴器模塊將立即報(bào)警。圖1是案例教學(xué)的功能示意圖。
圖1 溫度距離檢測(cè)系統(tǒng)功能示意圖
此部分教學(xué)中客戶端APP 軟件的開(kāi)發(fā)是重點(diǎn)也是難點(diǎn),筆者使用7個(gè)課時(shí)來(lái)完成Android studio 軟件環(huán)境的搭建,客戶端界面的設(shè)計(jì),以及界面底層程序的開(kāi)發(fā)和調(diào)試。界面一(圖2)為實(shí)時(shí)顯示和控制。界面二(圖3)為后臺(tái)連接,設(shè)置服務(wù)器的ip 地址和端口號(hào)??蛻舳耸剐枰?jiǎng)?chuàng)建Socket 套接字,使用多線程來(lái)讀取服務(wù)器端的TCP 通信數(shù)據(jù),使用handler 機(jī)制對(duì)讀取到的溫度和距離數(shù)據(jù)做處理。
圖2 軟件顯示控制界面
圖3 后臺(tái)連接界面
服務(wù)器端的教學(xué)使用5課時(shí)來(lái)完成。服務(wù)器的四個(gè)模塊在驗(yàn)證性實(shí)驗(yàn)中已經(jīng)讓學(xué)生掌握了,因此本部分教學(xué)重點(diǎn)不再是各模塊的原理和基本步驟,而是各模塊與手機(jī)客戶端的通信。筆者使用TcpReceiveCmd()來(lái)實(shí)現(xiàn)監(jiān)控解析APP 端發(fā)出的請(qǐng)求溫度值或測(cè)距值;使用TCP 服務(wù)器發(fā)送數(shù)據(jù)函數(shù)TcpSendData()實(shí)現(xiàn)打包上傳溫度值和距離值;使用getUltrasonicDistance()實(shí)現(xiàn)對(duì)超聲波數(shù)據(jù)計(jì)算;使用get18B20Temperature()獲取DS18B20溫度傳感器的溫度值。服務(wù)器底層程序中的設(shè)計(jì)關(guān)鍵點(diǎn)有:創(chuàng)建socket 套接字,組裝數(shù)據(jù)包,發(fā)送請(qǐng)求幀,接受客戶端TCP 數(shù)據(jù)請(qǐng)求并解析以及處理數(shù)據(jù)并處理客戶端的界面顯示。以上部分都是在教學(xué)中的關(guān)鍵點(diǎn)。圖4是實(shí)驗(yàn)箱在案例教學(xué)中的展示,圖5顯示教學(xué)中使用的超聲波測(cè)距模塊和溫度模塊。
(3)綜合設(shè)計(jì)性實(shí)驗(yàn)是在已有的驗(yàn)證性實(shí)驗(yàn)和實(shí)驗(yàn)案例教學(xué)的基礎(chǔ)上,結(jié)合學(xué)生以前所學(xué)的理論知識(shí)和實(shí)驗(yàn)經(jīng)驗(yàn)進(jìn)行拓展。此部分實(shí)驗(yàn)中規(guī)定3-5學(xué)生為一組,每組單獨(dú)完成一個(gè)實(shí)驗(yàn)項(xiàng)目。學(xué)生們?cè)诟鱾€(gè)小組自己動(dòng)手設(shè)計(jì)實(shí)驗(yàn)中,獨(dú)立設(shè)計(jì)系統(tǒng)方案,編程程序,集成調(diào)試,并編寫文檔[2、6、7]。表2是教學(xué)中給每個(gè)小組可參考的動(dòng)手實(shí)現(xiàn)項(xiàng)目。
圖4 實(shí)驗(yàn)箱
圖5 超聲波模塊和溫度模塊
表2 綜合設(shè)計(jì)性實(shí)驗(yàn)列表
綜合設(shè)計(jì)性實(shí)驗(yàn)的設(shè)計(jì)導(dǎo)向是工程實(shí)踐。在教學(xué)中,教師對(duì)每個(gè)實(shí)驗(yàn)小組的項(xiàng)目及時(shí)指導(dǎo),鼓勵(lì)各小組使用課程中沒(méi)有講解過(guò)的軟硬件模塊。
此部分實(shí)驗(yàn)的考核也是重點(diǎn)。考核結(jié)果根據(jù)基本設(shè)計(jì)要求、實(shí)驗(yàn)結(jié)果以及各個(gè)拓展部分來(lái)進(jìn)行評(píng)判。考核中鼓勵(lì)學(xué)生實(shí)現(xiàn)多線程功能、開(kāi)發(fā)手機(jī)端App 或者QT 圖形界面、集成更多的功能模塊等等。每個(gè)實(shí)驗(yàn)小組的考核分?jǐn)?shù)由指導(dǎo)老師和其他各組同學(xué)打分組成,比例各占50%。每個(gè)小組錄制一段演示視頻,說(shuō)明自己項(xiàng)目的功能和特點(diǎn)作為考核的材料[6]。
完成自主設(shè)計(jì)實(shí)驗(yàn)是學(xué)生學(xué)習(xí)此門課程教學(xué)的目的。自主設(shè)計(jì)實(shí)驗(yàn)?zāi)軌驅(qū)⑺鶎W(xué)到的理論知識(shí)、基礎(chǔ)實(shí)驗(yàn)知識(shí)綜合應(yīng)用。自主設(shè)計(jì)實(shí)驗(yàn)不但是教學(xué)內(nèi)容,其結(jié)果也作為學(xué)生此課程學(xué)籍成績(jī)的一部分,如此更加調(diào)動(dòng)學(xué)生的積極性。
學(xué)生進(jìn)行自主設(shè)計(jì)實(shí)驗(yàn)可以體現(xiàn)其創(chuàng)新能力和實(shí)踐能力。鼓勵(lì)優(yōu)秀的設(shè)計(jì)性實(shí)驗(yàn)項(xiàng)目小組繼續(xù)完善,積極申請(qǐng)大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目,參加各級(jí)別的嵌入式設(shè)計(jì)大賽,甚至可以朝畢業(yè)設(shè)計(jì)的方向去開(kāi)發(fā)。借助各種項(xiàng)目和比賽的拉動(dòng)作用,學(xué)生的嵌入式動(dòng)手設(shè)計(jì)能力能夠得到持續(xù)的提高[2]。筆者在教學(xué)中動(dòng)員一些學(xué)生積極參加“博創(chuàng)杯”等嵌入式設(shè)計(jì)大賽,得到很好的鍛煉。
注重實(shí)驗(yàn)教學(xué),帶領(lǐng)學(xué)生完成綜合性設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目為目標(biāo)的教學(xué),有助于提升嵌入式系統(tǒng)教學(xué)的效果。注重設(shè)計(jì)性實(shí)驗(yàn)的教學(xué)對(duì)于教師的教以及學(xué)生的學(xué)都有明顯的幫助,讓教師的教不再是課堂呆板的“滿堂灌”,學(xué)生被動(dòng)聽(tīng);也改變了學(xué)生雖然在上機(jī)做實(shí)驗(yàn)但仍然懵懵懂懂的教學(xué)效果。學(xué)生不但將本課程的理論知識(shí)熟練掌握,而且能借助此門課程完成本專業(yè)一系列知識(shí)集中復(fù)習(xí)和實(shí)踐,培養(yǎng)項(xiàng)目開(kāi)發(fā)的能力。