李寧,宋薇,庫(kù)少平
(武漢理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢430070)
李寧(副教授),主要研究方向?yàn)榍度胧较到y(tǒng)、智能控制;宋薇(碩士研究生),主要研究方向?yàn)榍度胧较到y(tǒng)工具開(kāi)發(fā)、軟件測(cè)試;庫(kù)少平(副教授)主要研究方向?yàn)榍度胧较到y(tǒng)。
隨著嵌入式技術(shù)的快速發(fā)展和普及,社會(huì)對(duì)嵌入式人才的需求猛增[1],80%的相關(guān)企業(yè)都表示急缺嵌入式開(kāi)發(fā)方面的人才[2]。近幾年來(lái)國(guó)內(nèi)理工科高等院校的計(jì)算機(jī)、電子信息和自動(dòng)化等專業(yè)已普遍開(kāi)設(shè)嵌入式技術(shù)的相關(guān)課程,有些院系還開(kāi)設(shè)了嵌入式專業(yè)。但是由于嵌入式技術(shù)涉及計(jì)算機(jī)、電子技術(shù)、微電子技術(shù)等領(lǐng)域的多門(mén)課程,因此在課程內(nèi)容、教師培養(yǎng)、教學(xué)方法、實(shí)踐方式上,很多院校的方案還不是很成熟,處于摸索階段。本文將筆者近幾年所采用的項(xiàng)目化教學(xué)方法進(jìn)行了一些總結(jié),以供各位嵌入式教學(xué)方面的同行參考。
嵌入式系統(tǒng)的基本結(jié)構(gòu)如圖1所示。設(shè)計(jì)與實(shí)現(xiàn)一個(gè)嵌入式系統(tǒng),需要微電子技術(shù)、電子技術(shù)、計(jì)算機(jī)技術(shù)和應(yīng)用領(lǐng)域四個(gè)方面的知識(shí)。在嵌入式系統(tǒng)設(shè)計(jì)中,應(yīng)用領(lǐng)域知識(shí)是千變?nèi)f化的,這些不是嵌入式設(shè)計(jì)者能完全掌握的,往往需要相關(guān)領(lǐng)域工程師的密切配合。嵌入式領(lǐng)域?qū)θ瞬诺男枨笕鐖D2所示。微電子技術(shù)專業(yè)主要從事微處理器和各種IC的設(shè)計(jì),為嵌入式應(yīng)用設(shè)計(jì)提供最基礎(chǔ)的支持,其知識(shí)與嵌入式應(yīng)用設(shè)計(jì)領(lǐng)域的關(guān)系并不大,社會(huì)需求也不是很大。電子技術(shù)專業(yè)主要從事嵌入式系統(tǒng)的硬件設(shè)計(jì),是嵌入式系統(tǒng)設(shè)計(jì)必不可少的部分。由于很多IC廠家已經(jīng)提供了相關(guān)處理器的項(xiàng)目解決方案,因此現(xiàn)在硬件原理圖設(shè)計(jì)的工作量和復(fù)雜程度并不很大,而PCB板設(shè)計(jì)、調(diào)試以及生產(chǎn)管理的工作量相對(duì)而言更大一些。計(jì)算機(jī)技術(shù)專業(yè)主要從事嵌入式系統(tǒng)的軟件設(shè)計(jì),目前嵌入式系統(tǒng)軟件的復(fù)雜程度正在快速增長(zhǎng),各種軟件設(shè)計(jì)已占到了嵌入式應(yīng)用系統(tǒng)設(shè)計(jì)工作量的80%以上。
綜上所述,目前社會(huì)所需求的嵌入式人才是掌握電子設(shè)計(jì)和/或計(jì)算機(jī)相關(guān)知識(shí)的人才,也就是通常所說(shuō)的硬件工程師和軟件工程師,而其中軟件設(shè)計(jì)人才應(yīng)占80%左右。由于嵌入式的硬件和軟件都具有定制性,軟件工程需要掌握足夠的硬件知識(shí),硬件工程師也應(yīng)有相應(yīng)的軟件知識(shí)。
圖1 嵌入式系統(tǒng)基本結(jié)構(gòu)
圖2 嵌入式人才需求結(jié)構(gòu)
另外,嵌入式系統(tǒng)設(shè)計(jì)是一個(gè)對(duì)實(shí)踐能力要求非常高的工作,相關(guān)領(lǐng)域知識(shí)更新速度非???如果沒(méi)有足夠的實(shí)踐經(jīng)歷很難掌握和了解嵌入式的相關(guān)知識(shí)。調(diào)查顯示,企業(yè)對(duì)相關(guān)人才要素關(guān)注程度從高到低分別是:技術(shù)、經(jīng)驗(yàn)、敬業(yè)、學(xué)歷、其他[3]。
因此,如何培養(yǎng)具備合理軟硬件知識(shí)結(jié)構(gòu)、具有一定實(shí)踐經(jīng)驗(yàn)的嵌入式人才,是當(dāng)前嵌入式教學(xué)所面臨的重要問(wèn)題,尤其是對(duì)于那些開(kāi)設(shè)了嵌入式專業(yè)的院系。
目前國(guó)內(nèi)高校的嵌入式系統(tǒng)教學(xué),普遍存在著以下問(wèn)題,尤其是一些剛剛開(kāi)設(shè)嵌入式系統(tǒng)課程的二本、三本和高職高專院校。
現(xiàn)有的高校嵌入式系統(tǒng)教材已經(jīng)很多了,但基本上可以分為兩類。一類教材是泛泛而談的:ARM、MIPS、x86、PowerPC等各種體系結(jié)構(gòu)處理器均作了基本介紹;μ C/OS、Linux、WinCE等各種操作系統(tǒng)也是一一羅列其特色。閱讀這種嵌入式教材,學(xué)生的感覺(jué)是走馬觀花,除了能記住幾個(gè)名詞之外,很難掌握嵌入式的基礎(chǔ)知識(shí),更無(wú)法了解某一款處理器的基本開(kāi)發(fā)過(guò)程。另一類教材通常是由嵌入式系統(tǒng)實(shí)驗(yàn)設(shè)備廠商提供的,基本就是數(shù)據(jù)手冊(cè)加實(shí)驗(yàn)手冊(cè),學(xué)生使用這種教材往往只見(jiàn)樹(shù)木不見(jiàn)森林,很難系統(tǒng)掌握嵌入式系統(tǒng)的基本理論和概念。
目前非常缺乏一本以嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程為主線,以某種常見(jiàn)處理器和某種操作系統(tǒng)為主體,同時(shí)對(duì)其他體系結(jié)構(gòu)和操作系統(tǒng)作概要性介紹的教材。這也表明目前國(guó)內(nèi)嵌入式教學(xué)的積淀還不夠。
對(duì)于沒(méi)有開(kāi)設(shè)嵌入式專業(yè)方向的學(xué)校,嵌入式系統(tǒng)課程通常是選修課,一般是32~48學(xué)時(shí)。老師需要全面介紹處理器、匯編語(yǔ)言、接口、操作系統(tǒng)、驅(qū)動(dòng)程序開(kāi)發(fā)、應(yīng)用程序開(kāi)發(fā)等知識(shí);如果學(xué)生沒(méi)有足夠好的基礎(chǔ)和自學(xué)能力,基本是如墜云霧之中,沒(méi)有太大收獲。在開(kāi)設(shè)了嵌入式專業(yè)方向的一些院校,通常開(kāi)設(shè)多門(mén)嵌入式的課程:《嵌入式系統(tǒng)基礎(chǔ)》、《嵌入式操作系統(tǒng)》、《嵌入式應(yīng)用軟件設(shè)計(jì)》等。這些課程基本覆蓋了嵌入式應(yīng)用系統(tǒng)開(kāi)發(fā)的全過(guò)程。目前,這些院系也存在缺乏合適教材、各門(mén)課程之間銜接不夠、部分具體知識(shí)相互重疊等情況。
盡管現(xiàn)在國(guó)內(nèi)多數(shù)計(jì)算機(jī)、電子、自動(dòng)化院系基本都已配備了嵌入式實(shí)驗(yàn)系統(tǒng),硬件上也都能完全滿足學(xué)生動(dòng)手實(shí)踐的基本要求;但是在實(shí)際的實(shí)踐教學(xué)組織中,卻存在非常大的問(wèn)題。首先是嵌入式系統(tǒng)一般比較復(fù)雜,很難像8051單片機(jī)系統(tǒng)那樣讓學(xué)生自己DIY一個(gè)最小硬件系統(tǒng)和軟件系統(tǒng);其次是實(shí)踐教學(xué)基本都是驗(yàn)證性實(shí)驗(yàn),缺乏學(xué)生主動(dòng)參與的環(huán)節(jié),無(wú)法調(diào)動(dòng)學(xué)生積極性;最重要的是實(shí)踐動(dòng)手學(xué)時(shí)嚴(yán)重不足,僅僅8~12小時(shí)的實(shí)驗(yàn)很難讓學(xué)生真正了解和熟悉嵌入式開(kāi)發(fā)過(guò)程。
現(xiàn)在少部分開(kāi)設(shè)嵌入式課程較早的院系,其師資已比較強(qiáng)大,有些教師有從事嵌入式項(xiàng)目開(kāi)發(fā)的經(jīng)歷,教學(xué)設(shè)備可以自制。但是還有相當(dāng)多的院系,尤其是新開(kāi)設(shè)嵌入式課程的院系都存在著師資嚴(yán)重缺乏的現(xiàn)象。主要存在以下問(wèn)題:課程建設(shè)過(guò)程比較匆忙,多數(shù)以青年教師為主;由于企業(yè)對(duì)嵌入式人才需求旺盛,愿意進(jìn)入高校的嵌入式人才非常少;多數(shù)教師無(wú)項(xiàng)目經(jīng)驗(yàn),動(dòng)手能力比較差;教師培訓(xùn)機(jī)會(huì)不多,且多數(shù)培訓(xùn)也是實(shí)驗(yàn)設(shè)備廠商的短期培訓(xùn)。
目前從一本到高職高專的眾多高校都在開(kāi)設(shè)嵌入式課程和嵌入式專業(yè)方向,但是這些學(xué)校的學(xué)生素質(zhì)、師資力量、硬件設(shè)備都存在著巨大的差異,所在專業(yè)和院系也不同,因此如何給老師和學(xué)生定位很重要。現(xiàn)在很多不同層次的學(xué)校所開(kāi)設(shè)的嵌入式課程都是一樣的學(xué)時(shí)、一樣的教材、一樣的設(shè)備,其效果則大相徑庭。嵌入式領(lǐng)域的工作分類很多,是從事軟件開(kāi)發(fā)還是硬件開(kāi)發(fā),是從事開(kāi)發(fā)還是測(cè)試,是從事研發(fā)還是從事生產(chǎn),是了解整個(gè)研發(fā)過(guò)程還是集中關(guān)注其中某一個(gè)環(huán)節(jié)的工作,都需要根據(jù)具體情況進(jìn)行分析和定位。
筆者近幾年一直從事嵌入式課程教學(xué)工作,組織過(guò)嵌入式興趣小組培訓(xùn),所帶研究生也從事嵌入式方向的研究。根據(jù)這幾年的經(jīng)驗(yàn),總結(jié)出一套項(xiàng)目化教學(xué)方法。
在進(jìn)入大學(xué)二年級(jí),完成基礎(chǔ)課程之后,給嵌入式方向的學(xué)生或?qū)η度胧接信d趣學(xué)生設(shè)定明確的項(xiàng)目目標(biāo),例如設(shè)計(jì)一個(gè)MP3、專用PDA等;并組建團(tuán)隊(duì),團(tuán)隊(duì)規(guī)模一般在3~6人。采用導(dǎo)師制。導(dǎo)師先用4~6小時(shí)介紹嵌入式的概念以及嵌入式項(xiàng)目開(kāi)發(fā)的一般過(guò)程,如圖3所示,并簡(jiǎn)要介紹各階段所需要的知識(shí)以及分工合作關(guān)系。
圖3 嵌入式系統(tǒng)開(kāi)發(fā)一般過(guò)程
通過(guò)設(shè)定項(xiàng)目,可以激發(fā)學(xué)生的興趣和積極性,明確目標(biāo);也對(duì)后期一些理論課程的重要性有了一些基本認(rèn)識(shí)。團(tuán)隊(duì)建設(shè)有利于學(xué)生之間形成良好的學(xué)習(xí)氛圍和環(huán)境,并能提高學(xué)生的溝通和交流能力;在后期學(xué)習(xí)的課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)中都盡可能以這個(gè)團(tuán)隊(duì)為基礎(chǔ)來(lái)安排任務(wù);其團(tuán)隊(duì)的技術(shù)領(lǐng)袖會(huì)在后期學(xué)習(xí)中逐步突現(xiàn)出來(lái)。
在項(xiàng)目確定之后,鼓勵(lì)學(xué)生主動(dòng)去探索,搜索資料學(xué)習(xí)相關(guān)知識(shí),自主發(fā)現(xiàn)所需要的理論知識(shí)。在每門(mén)理論課程開(kāi)展之前,導(dǎo)師應(yīng)將項(xiàng)目中所對(duì)應(yīng)的需求擺在學(xué)生面前,提倡提前學(xué)習(xí)和主動(dòng)自學(xué)。帶著需求和問(wèn)題去學(xué)習(xí),通常比被動(dòng)學(xué)習(xí)的效率高很多。
在每門(mén)相應(yīng)理論課程學(xué)習(xí)之后,要求學(xué)生完成一些與項(xiàng)目相關(guān)的工作。例如,學(xué)習(xí)《微型計(jì)算機(jī)原理》之后,應(yīng)閱讀項(xiàng)目所用處理器的數(shù)據(jù)手冊(cè);學(xué)習(xí)《匯編語(yǔ)言》之后,應(yīng)了解所用處理器的匯編語(yǔ)言指令集,并盡可能閱讀和編寫(xiě)相應(yīng)處理器的啟動(dòng)代碼;學(xué)習(xí)《計(jì)算機(jī)接口技術(shù)》之后,應(yīng)去了解項(xiàng)目相關(guān)的外設(shè)接口,并盡可能完成一個(gè)接口的無(wú)操作系統(tǒng)驅(qū)動(dòng)程序的設(shè)計(jì);學(xué)習(xí)《模擬電子學(xué)》、《數(shù)字電子學(xué)》之后,應(yīng)去閱讀所用開(kāi)發(fā)板的原理圖;學(xué)習(xí)《操作系統(tǒng)》之后,應(yīng)去閱讀μ C/OS這樣小的操作系統(tǒng)源碼,并嘗試編寫(xiě)多任務(wù)應(yīng)用程序的例子;學(xué)習(xí)《計(jì)算機(jī)網(wǎng)絡(luò)》之后,應(yīng)去了解項(xiàng)目所需要的計(jì)算機(jī)通信協(xié)議,能力較強(qiáng)的學(xué)生最好能實(shí)現(xiàn)其中一個(gè)較為簡(jiǎn)單的通信模塊。
這些相關(guān)的工作并不要求學(xué)生完全完成或掌握,但是這個(gè)過(guò)程能讓學(xué)生感覺(jué)到理論課程的意義和價(jià)值,并學(xué)會(huì)利用理論課程的知識(shí)去解決問(wèn)題、發(fā)現(xiàn)問(wèn)題、觸類旁通,而且還可以激發(fā)其學(xué)習(xí)積極性和探索未知領(lǐng)域的熱情。對(duì)于學(xué)有余力的學(xué)生而言,可以提前掌握很多項(xiàng)目相關(guān)知識(shí),并成為項(xiàng)目團(tuán)隊(duì)的技術(shù)領(lǐng)袖。
對(duì)設(shè)有嵌入式專業(yè)方向的院系,可以用項(xiàng)目統(tǒng)一多種實(shí)踐環(huán)節(jié),教師以導(dǎo)師形式全程跟蹤。在相應(yīng)的課程設(shè)計(jì)過(guò)程中完成某些功能驗(yàn)證,例如《匯編語(yǔ)言》的課程設(shè)計(jì)是實(shí)現(xiàn)啟動(dòng)代碼,《計(jì)算機(jī)接口技術(shù)》的課程設(shè)計(jì)是團(tuán)隊(duì)成員分工完成相關(guān)外設(shè)的驅(qū)動(dòng)程序。在大學(xué)三年級(jí)暑期實(shí)訓(xùn)時(shí),團(tuán)隊(duì)可以集中完成部分功能設(shè)計(jì);在畢業(yè)設(shè)計(jì)時(shí)則完成整個(gè)項(xiàng)目的原型設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試工作。課程設(shè)計(jì)報(bào)告、畢業(yè)設(shè)計(jì)都需要按照項(xiàng)目設(shè)計(jì)說(shuō)明書(shū)、項(xiàng)目測(cè)試說(shuō)明書(shū)、設(shè)備使用說(shuō)明書(shū)的格式進(jìn)行撰寫(xiě)。
對(duì)于沒(méi)有開(kāi)設(shè)嵌入式專業(yè)方向的院系,組織嵌入式興趣小組,以參加競(jìng)賽的形式來(lái)組織和引導(dǎo)學(xué)生的實(shí)踐過(guò)程更為合適一些。
項(xiàng)目團(tuán)隊(duì)合作的時(shí)間大約為2年。在這個(gè)過(guò)程中,應(yīng)提倡團(tuán)隊(duì)自我管理,導(dǎo)師的責(zé)任是幫助學(xué)生建立團(tuán)隊(duì)討論溝通機(jī)制、給出一些方向性的建議。團(tuán)隊(duì)內(nèi)部自然會(huì)出現(xiàn)分工合作,有些同學(xué)會(huì)成為技術(shù)領(lǐng)袖,有些同學(xué)可能更擅長(zhǎng)底層軟件開(kāi)發(fā),有些同學(xué)則可能更適合測(cè)試。這對(duì)于學(xué)生自我定位非常有好處,并可以在就業(yè)前得到適當(dāng)?shù)腻憻挋C(jī)會(huì)。
項(xiàng)目化教學(xué)方法的優(yōu)點(diǎn)是顯而易見(jiàn)的,但是在實(shí)施過(guò)程中困難也不少。主要有以下幾點(diǎn)是必須解決的。
由于很多老師沒(méi)有項(xiàng)目經(jīng)驗(yàn),因此無(wú)法組織項(xiàng)目。這就需要在項(xiàng)目化教學(xué)實(shí)施的最初階段,引進(jìn)企業(yè)的工程師參與;或者派教師去企業(yè)參與項(xiàng)目,而不僅僅是參加簡(jiǎn)單的培訓(xùn)。另外,高校教師在組織項(xiàng)目化教學(xué)時(shí)也可借鑒嵌入式就業(yè)培訓(xùn)機(jī)構(gòu)的一些教學(xué)方法,這些培訓(xùn)機(jī)構(gòu)通常是采用完全項(xiàng)目化的方法教學(xué)。
項(xiàng)目化教學(xué)方法將會(huì)改變過(guò)去的課程安排。對(duì)于設(shè)有嵌入式方向?qū)I(yè)的院系,可以重新制定理論課程體系、實(shí)踐教學(xué)體系,比較容易安排較完整的課程體系;而無(wú)嵌入式方向?qū)I(yè)的院系,培養(yǎng)興趣小組和組織競(jìng)賽團(tuán)隊(duì)是比較可行的方式。
剛開(kāi)始進(jìn)行項(xiàng)目化教學(xué)時(shí),尤其是學(xué)生能力不強(qiáng)的學(xué)校,應(yīng)穩(wěn)定2~3個(gè)項(xiàng)目,便于老師掌握。項(xiàng)目也可從老師的科研項(xiàng)目中分解,某些優(yōu)秀的學(xué)生有時(shí)可以取得意想不到的成果,對(duì)于導(dǎo)師選拔研究生也非常有價(jià)值。另外,要鼓勵(lì)學(xué)生創(chuàng)新,讓學(xué)生提議項(xiàng)目,并注意項(xiàng)目積累。例如,筆者的第一個(gè)項(xiàng)目就是學(xué)生提議實(shí)現(xiàn)一個(gè)MP3播放器,最初是無(wú)操作系統(tǒng)、無(wú)人機(jī)界面、硬件解碼的MP3播放器;后續(xù)幾屆學(xué)生不斷提高,逐步實(shí)現(xiàn)了軟件解碼、多任務(wù)操作系統(tǒng)、UI界面、歌詞滾動(dòng)等功能。要多鼓勵(lì)學(xué)生突破和創(chuàng)新,一旦成功,學(xué)生的成就感會(huì)非常大,積極性、創(chuàng)造性和熱情會(huì)被大大激發(fā)。
傳統(tǒng)的驗(yàn)證性實(shí)驗(yàn)顯然無(wú)法滿足項(xiàng)目化教學(xué)的要求。可以采用兩種方式:一是開(kāi)放實(shí)驗(yàn)室,每個(gè)團(tuán)隊(duì)有自己專用的設(shè)備和場(chǎng)地;二是學(xué)生租用學(xué)校的實(shí)驗(yàn)設(shè)備,在寢室中開(kāi)展學(xué)習(xí)和實(shí)踐活動(dòng)。很多學(xué)校的嵌入式實(shí)驗(yàn)設(shè)備基本處于半閑置狀態(tài),浪費(fèi)了資源。采取上述兩種方式,將大大提高設(shè)備的利用率,做到物盡其用。
不同層次學(xué)校的學(xué)生素質(zhì)差異比較大。對(duì)于一本、二本的學(xué)生,教師的主要工作是引導(dǎo)、鼓勵(lì)創(chuàng)新,并注意培養(yǎng)團(tuán)隊(duì)領(lǐng)袖。對(duì)于三本、高職的學(xué)生,則要著重于某幾個(gè)固定的項(xiàng)目和幾個(gè)適合的技術(shù)點(diǎn),教師必須起一定的主導(dǎo)作用;項(xiàng)目的難度應(yīng)適當(dāng)降低,可由老師提供一些解決方案,以幫助學(xué)生順利完成整個(gè)項(xiàng)目。
項(xiàng)目化嵌入式教學(xué)方法,通過(guò)項(xiàng)目引導(dǎo)來(lái)給學(xué)生確立目標(biāo),激發(fā)熱情;利用項(xiàng)目需求來(lái)引導(dǎo)和增強(qiáng)學(xué)生對(duì)理論學(xué)習(xí)的熱情和主動(dòng)性;通過(guò)項(xiàng)目實(shí)踐來(lái)提高學(xué)生的動(dòng)手能力。這些經(jīng)歷將可能改變一個(gè)人的學(xué)習(xí)和工作習(xí)慣,也許是受益終身的經(jīng)歷。另外,由于學(xué)生在大學(xué)期間已經(jīng)有了一些基本的項(xiàng)目開(kāi)發(fā)經(jīng)歷,而且從文檔寫(xiě)作到項(xiàng)目研發(fā)測(cè)試的整個(gè)過(guò)程都得到了訓(xùn)練,因此學(xué)生很容易就業(yè)。學(xué)生就業(yè)之后,也能非常順利地實(shí)現(xiàn)過(guò)渡。
[1]嵌入式在線.我國(guó)嵌入式行業(yè)人才需求預(yù)測(cè)和培訓(xùn)瓶頸[EB/OL].(2008-08-02)[2009-10-01].http://www.mcuol.com/Edu/222/28218.htm.
[2]北京華清遠(yuǎn)見(jiàn)科技有限公司.2008-2009年中國(guó)嵌入式開(kāi)發(fā)從業(yè)人員調(diào)查報(bào)告[EB/OL].(2009-04-03)[2009-10-01].http://www.farsight.com.cn/survey/report.htm.
[3]中華嵌入式人才庫(kù).嵌入式企業(yè)研發(fā)人才需求報(bào)告[EB/OL].(2008-04-22)[2009-10-01].http://blog.mcuol.com/User/cesiu/Article/4607_1.htm.
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2010年2期