顧愷琦,韓建峰,徐福敬,葉鎵愷
(內(nèi)蒙古工業(yè)大學(xué) 信息工程學(xué)院,內(nèi)蒙古 呼和浩特 010051)
嵌入式技術(shù)是計算機、電子、通信等多學(xué)科的交叉領(lǐng)域,在社會生產(chǎn)與生活領(lǐng)域應(yīng)用十分廣泛。隨著市場需求的增長,嵌入式系統(tǒng)已逐漸滲透到日常生活的各個領(lǐng)域。文獻[1]中作者根據(jù)近30年嵌入式教學(xué)和研究經(jīng)驗指出,嵌入式人才的缺乏是阻礙我國嵌入式發(fā)展的首要因素。為彌補這一缺陷,很多高等院校的相關(guān)專業(yè)都開設(shè)了嵌入式技術(shù)類課程。然而,嵌入式技術(shù)涉及面廣、程度深、難度大。當(dāng)前,對于嵌入式技術(shù)的教學(xué)仍停留在處理器體系結(jié)構(gòu)和操作系統(tǒng)原理等方面,涉及工程應(yīng)用、實例編程等實踐的知識較少[2]。如何建立一套面向應(yīng)用領(lǐng)域的嵌入式技術(shù)教學(xué)體系成為當(dāng)前本科院校教學(xué)中一個十分重要的課題。本文從嵌入式技術(shù)學(xué)習(xí)的特點入手,針對當(dāng)前嵌入式技術(shù)教學(xué)普遍應(yīng)用性不強的問題,提出一種嵌入式課程設(shè)置與教學(xué)方案。
(1)綜合性強:嵌入式技術(shù)的基礎(chǔ)知識涉及面廣,橫跨眾多領(lǐng)域,需要技術(shù)人員同時具備軟硬件知識,既包括各種編程語言,如C語言、匯編語言等,又涉及各種硬件知識,如微機原理與接口技術(shù)、單片機原理等,需要了解微處理器、存儲器,外圍設(shè)備和接口,能夠自行設(shè)計電子電路[3]。
(2)實踐性強:嵌入式技術(shù)在通信、智能終端、汽車電子、航天航空等諸多領(lǐng)域的應(yīng)用越來越廣泛,因此嵌入式技術(shù)教學(xué)的基本特征應(yīng)以實踐為主。
(3)社會市場應(yīng)用性強:嵌入式技術(shù)的發(fā)展離不開社會市場,高校嵌入式技術(shù)課程的興起與市場需求有著密不可分的關(guān)系,倘若課程的應(yīng)用性不強,很難培養(yǎng)市場需要的專業(yè)人才,這將會嚴重制約高校對嵌入式技術(shù)人員的培養(yǎng)[4]。
(1)嵌入式技術(shù)課程定位:嵌入式技術(shù)這門課程的特色和學(xué)生的興趣點在于嵌入式操作系統(tǒng)和嵌入式技術(shù)的工程應(yīng)用開發(fā),根據(jù)電子信息工程和通信工程本科教學(xué)計劃,《微機原理與接口技術(shù)》《單片機原理與應(yīng)用》作為專業(yè)必修課程,而《嵌入式操作系統(tǒng)》卻做為專業(yè)限選課程,總學(xué)時偏少,導(dǎo)致學(xué)生積極性不高[5]。
(2)實驗課時較少:嵌入式技術(shù)是時下新開的課程,優(yōu)秀的嵌入式課程教材較為匱乏。教材過于理論化,沒有相應(yīng)的實驗和案例與之匹配,導(dǎo)致教學(xué)實踐性差、學(xué)習(xí)內(nèi)容較淺薄。
(3)課程實驗太過注重驗證性,缺乏設(shè)計性:課程實驗往往過于注重基礎(chǔ)實驗,缺乏設(shè)計和創(chuàng)新,影響了學(xué)生的積極性和主動性。且嵌入式是一門對實踐性需求很強的技術(shù),沒有與實際工程應(yīng)用相結(jié)合的課程設(shè)計,培養(yǎng)出的學(xué)生將難以適應(yīng)當(dāng)前社會的嵌入式工作發(fā)展需求[6-7]。
針對嵌入式技術(shù)學(xué)習(xí)的特點,本文提出了一種適合嵌入式技術(shù)實驗教學(xué)的嵌入式系統(tǒng)設(shè)計及應(yīng)用課程教學(xué)方案,包括硬件平臺的選取、操作系統(tǒng)的選擇、專業(yè)課程的培養(yǎng)與實驗、綜合創(chuàng)新性項目的開發(fā)。本教學(xué)從基礎(chǔ)課程到專業(yè)課程,再從基礎(chǔ)實驗到最后完成綜合創(chuàng)新性項目,教學(xué)內(nèi)容從理論到實驗,直至完成項目開發(fā),循序漸進,層次清晰,使學(xué)生明確學(xué)習(xí)任務(wù),培養(yǎng)學(xué)生的編程能力與嵌入式技術(shù)開發(fā)能力。
實踐教學(xué)的開展是一個系統(tǒng)工程,需要選擇合適的實驗設(shè)備來開展實踐教學(xué)活動,單靠課堂上的仿真軟件和編程軟件難以達到預(yù)期效果,選擇合適的硬件平臺是嵌入式教學(xué)的關(guān)鍵。目前,ARM(Advanced RISC Machines,ARM)系列微處理器在嵌入式領(lǐng)域中被廣泛應(yīng)用,基于 ARM 技術(shù)的微處理器應(yīng)用約占32位RISC微處理器市場份額的75%。ARM系列微處理器提供多種型號來滿足不同應(yīng)用領(lǐng)域的需求[8]。Cortex-M系列內(nèi)核相對簡單,市場運用廣泛,且可移植小型操作系統(tǒng),如μC/OS-II。而ARM9系列性能優(yōu)越,適合作為高端產(chǎn)品的開發(fā)平臺,符合本嵌入式教學(xué)方案硬件平臺需求。因此本教學(xué)方案實驗部分采用搭載Cortex-M3內(nèi)核的STM32單片機及搭載ARM9內(nèi)核的32位S3C2440芯片的開發(fā)板做為課程實踐部分的硬件平臺[9-11]。
嵌入式操作系統(tǒng)是一種用途廣泛的系統(tǒng)軟件,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、通信協(xié)議等。嵌入式操作系統(tǒng)負責(zé)嵌入式系統(tǒng)的全部軟硬件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動。目前在嵌入式領(lǐng)域廣泛使用的操作系統(tǒng)包括嵌入式實時操作系統(tǒng)μC/OS-II、嵌入式Linux、VxWorks等,本嵌入式開發(fā)教學(xué)根據(jù)嵌入式教學(xué)特點以及當(dāng)前社會嵌入式現(xiàn)狀選擇下述兩種操作系統(tǒng)進行教學(xué)。
μC/OS-II(Micro-Controller Operating System Two)是一個可基于ROM運行、可裁剪、搶占式、實時多任務(wù)的內(nèi)核,具有高度的可移植性與廣泛的擴展性。文獻[12]指出了嵌入式系統(tǒng)教學(xué)中開展μC/OS-II教學(xué)的必然性,本教學(xué)方案引入μC/OS-II的目的是使學(xué)生初步了解操作系統(tǒng),認知操作系統(tǒng)及其原理。
Linux是一套基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程的操作系統(tǒng)。目前正在開發(fā)的嵌入式系統(tǒng)中,約50%的項目選擇Linux作為嵌入式操作系統(tǒng)。本教學(xué)方案引入新興熱點Linux,使學(xué)生們在嵌入式技術(shù)的學(xué)習(xí)方面走在時代前沿、貼近時代熱點[13-14]。
嵌入式技術(shù)專業(yè)培養(yǎng)目標(biāo)偏向嵌入式軟件設(shè)計開發(fā)。其課程體系的設(shè)置應(yīng)該體現(xiàn)“注重工程能力培養(yǎng)的嵌入式系統(tǒng)人才知識體系”。根據(jù)學(xué)生的接受能力,嵌入式知識的學(xué)習(xí)應(yīng)體現(xiàn)層次性、由易到難的漸進性、注重實踐性[15]。其知識結(jié)構(gòu)由基礎(chǔ)知識、專業(yè)基礎(chǔ)知識、專業(yè)知識這樣一個層次結(jié)構(gòu)組成,本課程與實驗結(jié)構(gòu)框圖如圖1 所示。
圖1 課程與實驗結(jié)構(gòu)框圖
(1)基礎(chǔ)知識及專業(yè)基礎(chǔ)知識:基礎(chǔ)課程階段主要學(xué)習(xí)理工科的基礎(chǔ)課程,程序設(shè)計語言(C語言)、模擬電子技術(shù)、數(shù)字電子技術(shù)。專業(yè)基礎(chǔ)課包括微機原理與接口技術(shù)、單片機原理。
(2)專業(yè)知識:專業(yè)課開設(shè)方案包括操作系統(tǒng)μC/OS-II原理、Linux基礎(chǔ)知識、ARM開發(fā)基礎(chǔ),該課程體系的目標(biāo)是培養(yǎng)嵌入式系統(tǒng)軟件設(shè)計師。嵌入式基礎(chǔ)實驗有固定的課時安排,主要采取先講解再實驗,現(xiàn)場輔導(dǎo)的方法,目的是讓學(xué)生了解操作系統(tǒng)原理以及ARM的體系結(jié)構(gòu),掌握 ARM指令編程、I/O 端口的調(diào)用及編寫等,為后續(xù)實驗打基礎(chǔ)。
(3)實驗部分:該部分主要由 6 個實驗組成,實驗過程中向?qū)W生提供詳細的實驗指導(dǎo)書。指導(dǎo)書內(nèi)容包括實驗內(nèi)容、實驗?zāi)康摹嶒炘?、實驗步驟和實驗源代碼,要求學(xué)生根據(jù)實驗指導(dǎo)書內(nèi)容進行實驗調(diào)試,并讀懂實驗源程序。詳細的實驗內(nèi)容見表1所列。為培養(yǎng)學(xué)生嵌入式開發(fā)應(yīng)用的能力,提高學(xué)生在嵌入式領(lǐng)域的創(chuàng)造性思維,實驗內(nèi)容分為三部分,即μC/OS-II實驗、Linux實驗及S3C2440基礎(chǔ)實驗。
該部分提倡學(xué)生按實驗題目自主選擇、自主設(shè)計完成方案。詳細綜合性拓展項目見表2所列。整個開發(fā)過程中,要求綜合所學(xué)到的基礎(chǔ)知識和基礎(chǔ)實驗所給的經(jīng)驗、明確功能、程序處理流程、任務(wù)的定義及實現(xiàn)、熟練調(diào)試與排錯、撰寫實驗結(jié)果與心得。該部分可有效調(diào)動學(xué)生學(xué)習(xí)的積極性、主動性和創(chuàng)造性,提高學(xué)生獨立思考的能力。本教學(xué)拓展實驗為學(xué)生進行嵌入式開發(fā)積攢了豐富的項目經(jīng)驗,能夠使學(xué)生盡快融入將來的嵌入式開發(fā)工作。
表1 實驗部分內(nèi)容
表2 綜合性拓展項目
通過基于嵌入式項目的綜合性、設(shè)計性及創(chuàng)新性實驗,培養(yǎng)學(xué)生通過本教學(xué)方案前期掌握相關(guān)基礎(chǔ)課程,并自主完成實驗任務(wù)的能力,同時還能依靠穩(wěn)固的基礎(chǔ)知識大膽創(chuàng)新,根據(jù)實驗過程中遇到的問題提出具體實施辦法。在與教師的探討中提煉出設(shè)計題目與所需的流程和方法,達到擁有能自主開發(fā)嵌入式項目的能力。
“基于μC/OS-II的多任務(wù)定時鬧鐘實驗”的重點在于精確計時、多任務(wù)并行和任務(wù)間消息傳遞。由于初步學(xué)習(xí)了μC/OS-II基本原理,學(xué)生們很快定制了以SysTick定時器計數(shù)為核心、采用“消息”進行多任務(wù)間信息傳遞的項目方案。在SysTick定時器初始化代碼編寫的實驗過程中,學(xué)生們依靠本教學(xué)方案基礎(chǔ)知識和專業(yè)基礎(chǔ)知識部分所掌握的基礎(chǔ)知識課程,以72 MHz系統(tǒng)時鐘頻率確定其中斷時間間隔,并配置相關(guān)寄存器,輕松解決了鬧鐘實驗的核心難點問題。
在本教學(xué)方案最后的綜合性拓展實驗中,學(xué)生們在實驗中的表現(xiàn)與項目成果極佳。本教學(xué)改革方案的實踐中選取的部分完成開發(fā)的項目成果如圖2和圖3所示。
其中,部分學(xué)生選擇了遠程監(jiān)控移動機器人的設(shè)計項目,該項目以S3C2440處理器為控制核心,涉及的知識包括ARM體系結(jié)構(gòu)、程序流程、調(diào)試等。學(xué)生依靠前期所掌握的嵌入式課程基礎(chǔ)知識,明確了嵌入式項目開發(fā)的核心本質(zhì)。有了前期所積累的基礎(chǔ)知識,在項目開發(fā)過程中,學(xué)生們思路清晰,目標(biāo)明確,分析了現(xiàn)有操作系統(tǒng)的優(yōu)劣,選擇了植入μC/OS-II作為機器人下位機驅(qū)動部分的操作系統(tǒng)。大膽創(chuàng)新,結(jié)合當(dāng)前社會環(huán)境所需,將項目方向定義為災(zāi)區(qū)搜救機器人,為此添加多種氣體檢測傳感器,通過Linux操作系統(tǒng)下的SER2NET軟件將串口數(shù)據(jù)轉(zhuǎn)化成網(wǎng)絡(luò)傳輸傳感器檢測的數(shù)據(jù)。經(jīng)過后期改進、調(diào)試,最終設(shè)計出一款基于μC/OS-II操作系統(tǒng)與 Linux系統(tǒng)相結(jié)合的災(zāi)區(qū)搜救機器人,圖3所示為學(xué)生們由遠程監(jiān)控移動機器人項目拓展完成開發(fā)的災(zāi)區(qū)搜救機器人項目,該機器人所具備的主要功能如下:
(1)用戶可通過上位機遠程實時觀看機器人現(xiàn)場采集的圖像;
(2)用戶可通過電腦發(fā)送控制指令,調(diào)控機器人運動;
(3)機器人配備多種傳感器,可檢驗環(huán)境氣體如一氧化碳、甲烷等濃度,數(shù)據(jù)通過網(wǎng)絡(luò)傳輸。
項目已初步具備多種面向災(zāi)區(qū)救援的相關(guān)功能,若加以改良,對項目進行策劃包裝,可投入到相應(yīng)社會領(lǐng)域。
圖2 基于S3C2440的移動機器人的設(shè)計項目
圖3 監(jiān)控移動機器人的設(shè)計項目
通過上述一系列課程教學(xué)改革,包括嵌入式系統(tǒng)設(shè)計及應(yīng)用課程教學(xué)體系,解決了嵌入式實驗中偏重基礎(chǔ)驗證性且實驗課程較少的問題,有效調(diào)動了學(xué)生學(xué)習(xí)的積極性、主動性和創(chuàng)造性,提高了學(xué)生分析解決問題和獨立思考的能力,取得了良好的教學(xué)效果。本教學(xué)改革方案中的實踐活動加深了學(xué)生對專業(yè)基礎(chǔ)知識的理解與掌握,提升了學(xué)生嵌入式系統(tǒng)方向的工程素質(zhì),培養(yǎng)了學(xué)生嵌入式系統(tǒng)軟硬件開發(fā)的工程實踐能力、工程設(shè)計能力和工程創(chuàng)新能力。實踐教學(xué)為學(xué)生從事嵌入式開發(fā)領(lǐng)域打開了視角、創(chuàng)造了平臺、積累了經(jīng)驗,為學(xué)生未來從事嵌入式相關(guān)工作打下一定的基礎(chǔ)。