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