楊昕欣 姚 遠(yuǎn) 刁為民 劉榮科 李 松
北京航空航天大學(xué)電子信息工程學(xué)院 北京 100191
嵌入式系統(tǒng)是以應(yīng)用為中心的計算機(jī)系統(tǒng)。隨著各類應(yīng)用系統(tǒng)更加智能化和更多功能的需求增長,嵌入式系統(tǒng)技術(shù)的發(fā)展也面臨著更加復(fù)雜和多樣化需求的挑戰(zhàn)。綠色低功耗、個性化、小型化設(shè)計、快速升級等則是嵌入式系統(tǒng)技術(shù)目前最具有代表性的發(fā)展需求。通過單片集成、可重配置、現(xiàn)場可編程、異構(gòu)計算等方式應(yīng)對這些挑戰(zhàn)的可編程片上系統(tǒng)技術(shù),則是嵌入式系統(tǒng)技術(shù)未來的重要發(fā)展趨勢[1]。
嵌入式系統(tǒng)技術(shù)的快速發(fā)展,使得嵌入式系統(tǒng)的教學(xué)面臨挑戰(zhàn),尤其是面向工程認(rèn)證的實驗教學(xué)具有很強(qiáng)的時效性,必須及時融入最新的技術(shù)。具有可重構(gòu)特性的可編程片上系統(tǒng)技術(shù),仍然是以嵌入式處理器為核心的架構(gòu),繼承了大量的傳統(tǒng)軟硬件開發(fā)技術(shù),但同時也產(chǎn)生了異構(gòu)計算、I/O重配置、片上互聯(lián)、軟硬件協(xié)同設(shè)計等新的設(shè)計對象[2],以及新的設(shè)計工具和新的設(shè)計方法學(xué),需及時設(shè)計新的適用實驗平臺,以便更好地執(zhí)行工程教育認(rèn)證對實驗教學(xué)所提出的標(biāo)準(zhǔn)。
Xilinx 的zynq-7000系列全可編程SoC將可編程邏輯、外設(shè)和處理器集成在一起,創(chuàng)造出了可擴(kuò)展處理平臺EPP(Extensible Processing Platform)。EPP以處理器為核心,F(xiàn)PGA充當(dāng)協(xié)處理器引擎及可定制子系統(tǒng),可快速構(gòu)建具有特定應(yīng)用I/O和異構(gòu)處理內(nèi)核的應(yīng)用系統(tǒng)[3]。
本文基于Xilinx EPP實現(xiàn)了一種全新的教學(xué)實驗平臺,為學(xué)生展現(xiàn)了一系列全新的軟硬件技術(shù)。以工程教育認(rèn)證畢業(yè)標(biāo)準(zhǔn)為導(dǎo)向,精心設(shè)計了相關(guān)實驗,一方面反映了經(jīng)典技術(shù)在全新平臺中的應(yīng)用和發(fā)展;另一方面則使學(xué)生有機(jī)會接觸和實踐可編程片上系統(tǒng)開發(fā)等新方法和技術(shù),力圖達(dá)到訓(xùn)練工程實踐和創(chuàng)新能力、了解技術(shù)前沿的培養(yǎng)目標(biāo)。
平臺設(shè)計基于Zynq?-7000 全可編程SoC架構(gòu),借助其硬件、軟件和 I/O 可編程性,實現(xiàn)了系統(tǒng)級多樣性、高集成度和靈活性,實驗平臺硬件由核心芯片、外圍存儲和接口芯片等構(gòu)成,平臺的組成框圖如圖1所示。
圖1 實驗平臺組成框圖
核心芯片:核心芯片采用Xilinx Zynq-7000 EPP系列芯片,集成了基于雙核ARM Cortex-A9 MPCore的處理系統(tǒng)(Processing System PS)和Xilinx 可編程邏輯器件(Programmable Logic PL),既提供了FPGA的靈活性和可擴(kuò)展性,同時也兼顧了通常ASIC和ASSPs才具有的高性能和易用性特點。
DDR3內(nèi)存:DDR3內(nèi)存由2片容量256 MB的顆粒組成,組合總線寬度為32 bit,最高運行速度可達(dá)533 MHz,為開展內(nèi)容豐富的實驗設(shè)計提供必要性能支撐。
啟動設(shè)備:實驗板有兩種啟動設(shè)備,一個是NAND Flash,另外一種是TF卡,具備便捷的升級調(diào)試工具,從而為學(xué)生進(jìn)行系統(tǒng)定制實驗提供了高效機(jī)制。
USB接口:實驗板提供一路USB接口,由外部24 MHz晶振提供參考時鐘,可以工作在Host,Device和OTG共3種模式,支持USB Host 2.0,USB Device2.0 和USB OTG1.3標(biāo)準(zhǔn)。
以太網(wǎng)接口:提供一路10M/100M/1000M以太網(wǎng)接口,3種速度均可工作在全雙工或半雙工模式,千兆網(wǎng)收發(fā)器為MARVELL88E1111。
USB-UART接口:USB-UART橋接收發(fā)器選用Silicon Labs的CP2013-GM,將其與XC7Z020的Bank501 UART0控制器管腳連接;利用USB電纜連接將實驗板,安裝Silicon Labs提供的虛擬COM端口驅(qū)動程序,就可使用超級終端等軟件建立主機(jī)與目標(biāo)機(jī)的連接,為系統(tǒng)開發(fā)和調(diào)試提供了方便。
嵌入式系統(tǒng)課程在面向工程教育認(rèn)證的電子信息工程專業(yè)培養(yǎng)課程體系中屬于專業(yè)必選課程,具有承上啟下的課程定位性質(zhì),強(qiáng)調(diào)對先行的編程語言、計算機(jī)基礎(chǔ)、軟件技術(shù)基礎(chǔ)、微機(jī)原理等課程知識的綜合運用,特點是涉及知識面廣、實踐性強(qiáng),實驗環(huán)節(jié)極其重要[4]。
從工程教育認(rèn)證畢業(yè)12條要求的角度看,嵌入式系統(tǒng)實驗教學(xué)可以體現(xiàn)對工程知識、設(shè)計/開發(fā)解決方案、使用現(xiàn)代工具以及承擔(dān)團(tuán)隊角色等畢業(yè)要求的支撐。例如,操作系統(tǒng)的編譯和移植實驗,就可以設(shè)計成需要學(xué)生綜合運用軟件工程、微機(jī)原理、接口技術(shù)、編程語言等工程和專業(yè)知識去解決的問題;另外,嵌入式系統(tǒng)的軟硬件開發(fā)工具五花八門,這就要求學(xué)生,不僅會使用工具還要會通過閱讀資料、動手實驗等方式學(xué)會從這些工具中做出選擇。
基礎(chǔ)實驗的設(shè)計就是要以工程教育培養(yǎng)的基本要求為參考,結(jié)合學(xué)校和專業(yè)的定位,面向應(yīng)用,合理設(shè)計實驗的內(nèi)容與難度,精心設(shè)計實驗步驟,使得學(xué)生通過體驗和適量的編程開發(fā),了解相關(guān)知識、激發(fā)學(xué)習(xí)興趣。
基于全可定制SoC嵌入式系統(tǒng)平臺設(shè)計基礎(chǔ)實驗,其內(nèi)容應(yīng)以經(jīng)典嵌入式系統(tǒng)開發(fā)技術(shù)為基礎(chǔ)并展示相關(guān)技術(shù)、工具的最新發(fā)展趨勢。本課程團(tuán)隊在教學(xué)實踐中設(shè)計了4個基礎(chǔ)實驗,從不同的側(cè)面形成對工程教育畢業(yè)基本要求的支撐。
平臺匯編程序?qū)嶒灮谳^新的ARMv7-A指令集,通過調(diào)試中斷向量設(shè)置、CPU初始化、內(nèi)存初始化、串口控制、匯編和高級編程語言混合編程等例程,使學(xué)生理解復(fù)雜處理器系統(tǒng)的初始化過程,學(xué)習(xí)和對比主流的匯編IDE或者工具鏈。
通過對U-Boot進(jìn)行裁剪編譯和源碼分析等方式,使學(xué)生掌握嵌入式系統(tǒng)的引導(dǎo)啟動原理,體會理解可移植性、可維護(hù)性、易使用、可擴(kuò)展等優(yōu)秀的編程思想,了解復(fù)雜軟件系統(tǒng)的組織方式和開發(fā)工具。
Linux內(nèi)核的實驗教學(xué)主要從兩方面著手。一方面是從內(nèi)核工作原理角度,通過分析內(nèi)核啟動過程、加載內(nèi)核模塊、觀察進(jìn)程信息、分析少量關(guān)鍵源代碼等方法,了解內(nèi)核的主要功能和部分工作原理;另一方面,從大型軟件的源碼的組織和編譯角度,通過分析源碼樹結(jié)構(gòu)、編譯配置方式、裁剪內(nèi)核、編譯內(nèi)核、分析編譯配置工具工作原理等,了解大型軟件開發(fā)面臨的挑戰(zhàn)和常用開發(fā)方法和工具。
編譯和移植文件系統(tǒng)實際就是定制應(yīng)用系統(tǒng)的過程,其中涉及各種開源軟件和工具,學(xué)生可以根據(jù)需要獲取開源軟件,編譯文件系統(tǒng),從而了解定制開發(fā)應(yīng)用系統(tǒng)的過程。此外,文件系統(tǒng)的管理也是內(nèi)核的重要部分,文件系統(tǒng)實驗展示了文件的組織方式,而內(nèi)核源碼中文件系統(tǒng)部分則用于實現(xiàn)交互,將兩部分適當(dāng)結(jié)合可加深對文件系統(tǒng)的理解。
工程教育畢業(yè)標(biāo)準(zhǔn)既重視對工程知識和技能的掌握,更重視創(chuàng)新能力的養(yǎng)成。基礎(chǔ)實驗為課內(nèi)實驗,由于學(xué)時有限,所以多采用體驗和少量自主編程的形式,在運用工程和專業(yè)知識解決復(fù)雜問題方面的訓(xùn)練尚顯不足[5]。高級主題實驗多為綜合性實驗,涉及大量課外閱讀,需要自主編程和解決問題,可以較好地彌補(bǔ)上述不足,還可以對承擔(dān)團(tuán)隊角色、終生學(xué)習(xí)等工程教育認(rèn)證標(biāo)準(zhǔn)中的畢業(yè)要求形成支撐。另外,一些高級主題實驗還可以使學(xué)生有機(jī)會了解或掌握可編程SoC等新興主流技術(shù)。
本課程教學(xué)團(tuán)隊已經(jīng)基于平臺設(shè)計了若干綜合性實驗:視頻播放器移植實驗完成復(fù)雜軟件的移植,鍛煉學(xué)生進(jìn)行嵌入式系統(tǒng)應(yīng)用軟件定制開發(fā)的能力;內(nèi)核調(diào)度實驗,分別基于模擬器和實驗平臺,完成簡單的調(diào)度和進(jìn)程管理,可以加深和提升對指令、內(nèi)核、體系結(jié)構(gòu)等知識的理解;Qt移植與編程實驗完成簡單界面程序設(shè)計,鍛煉學(xué)生進(jìn)行嵌入式系統(tǒng)應(yīng)用軟件GUI開發(fā)的能力;擴(kuò)展存儲實驗基于AXI總線技術(shù)實現(xiàn)地址空間擴(kuò)展,培養(yǎng)學(xué)生進(jìn)行深度可編程SoC開發(fā)的能力。
使用可重用IP技術(shù)和軟硬件協(xié)同設(shè)計技術(shù),采用系統(tǒng)化的方法以及開發(fā)工具,快速可靠地設(shè)計并實現(xiàn)應(yīng)用系統(tǒng),成為未來電子系統(tǒng)工程師需要具備的重要能力?;谄脚_的SoC設(shè)計實驗使學(xué)生通過學(xué)習(xí)Xilinx EDK設(shè)計流程、設(shè)計簡單IP、定制外設(shè)、配置IP資源、定制AXI總線等實踐過程,了解復(fù)雜的嵌入式系統(tǒng)的定制技術(shù)、SoC系統(tǒng)片上互連技術(shù)、外設(shè)定制技術(shù)、了解可編程SoC開發(fā)技術(shù)、認(rèn)識軟硬件協(xié)同設(shè)計的流程和工具以及集成系統(tǒng)的調(diào)試驗證技術(shù)等。
實驗安排與課堂教學(xué)密切關(guān)聯(lián),一般在課堂教學(xué)之后的1周進(jìn)行相關(guān)實驗,實驗采用小組方式,每個小組2名學(xué)生,基礎(chǔ)實驗每單元2個學(xué)時,高級主題實驗每單元4個學(xué)時。
實驗教學(xué)的目的,一方面是幫助學(xué)生加深對課堂知識的理解;另一方面則是為了提高學(xué)生分析解決實際工程問題的實踐能力,而合理有效的考核方式則是達(dá)成上述目標(biāo)的重要保障。設(shè)計考核方式時需要考慮的問題主要有以下幾方面。
目前課時普遍壓縮,課堂教學(xué)無法完全覆蓋實驗內(nèi)容,需要學(xué)生完成大量課外閱讀,復(fù)習(xí)課堂教學(xué)內(nèi)容并預(yù)習(xí)實驗手冊,甚至有一部分基礎(chǔ)練習(xí)要在學(xué)生的個人計算機(jī)上完成。
嵌入式系統(tǒng)實驗的形式包括軟件編程和軟硬件聯(lián)調(diào),其中軟件編程程序占據(jù)較大比重,程序容易復(fù)制抄襲,需要采取手段加以遏制。
實際教學(xué)過程中還必須以工程教育認(rèn)證畢業(yè)標(biāo)準(zhǔn)為導(dǎo)向,正確認(rèn)識嵌入式系統(tǒng)課程教學(xué)目標(biāo)與整個專業(yè)培養(yǎng)目標(biāo)之間的關(guān)系,即正確認(rèn)識整體與局部的關(guān)系,正確認(rèn)識學(xué)生對待本課程的興趣差異。專業(yè)培養(yǎng)計劃中有不少課程在素質(zhì)養(yǎng)成方面有著相同的作用,但是學(xué)生不一定對每一門課都有充足的興趣,對部分學(xué)生一些素質(zhì)的養(yǎng)成可以在其他更感興趣的課程中實現(xiàn)。因此,在考核成績評定方面需考慮以上因素。
綜合以上考慮,考核設(shè)置4個環(huán)節(jié)依次進(jìn)行:第一環(huán)節(jié)考核實驗出勤情況,占20%;第二環(huán)節(jié),采用口試或答卷的方式檢查課外閱讀和預(yù)習(xí)情況,占20%;第三環(huán)節(jié),檢查實驗完成效果占40%;第四環(huán)節(jié),采用提問方式檢查學(xué)生所寫程序的真實性和編程質(zhì)量,占20%。其中在課外閱讀、實驗完成情況、程序檢查等環(huán)節(jié),均考慮到學(xué)生興趣差異,采用約束與激勵并行的方式,一方面設(shè)定基本要求作為所有學(xué)生在本門課程必須達(dá)到的水準(zhǔn),另一方面也設(shè)置了難度較大的實驗環(huán)節(jié),完成這些環(huán)節(jié)就可以獲得加分,為對本課程興趣強(qiáng)烈的學(xué)生提供發(fā)揮空間。
嵌入式系統(tǒng)領(lǐng)域的不斷創(chuàng)新給實驗教學(xué)帶來了挑戰(zhàn),需要實驗平臺具有可擴(kuò)展性,因此,本實驗平臺采用全可編程SoC架構(gòu),使得實驗平臺可以承載更多教學(xué)需求,實際上在對實驗內(nèi)容進(jìn)行一定擴(kuò)展后,該平臺已成為本研一體化教學(xué)平臺,在本教學(xué)團(tuán)隊負(fù)責(zé)的嵌入式系統(tǒng)原理與應(yīng)用本科課程和通信與信息技術(shù)綜合實驗碩士課程中已應(yīng)用兩年,師生反映效果良好,本教學(xué)團(tuán)隊所在電子信息工程專業(yè)于2016年順利通過了工程教育專業(yè)認(rèn)證。
實驗平臺的建設(shè)不可能一勞永逸,面對嵌入式系統(tǒng)技術(shù)的快速更新,需要堅持OBE工程教育理念,始終面向工程實際,持續(xù)調(diào)整和建設(shè)實驗內(nèi)容、探索虛擬化等新實驗手段、不斷設(shè)計開發(fā)多樣化實驗平臺,做到對實驗教學(xué)的持續(xù)改進(jìn)。
[1]何賓. xilinx all programmable zynq-7000 soc設(shè)計指南[M].北京:清華大學(xué)出版社, 2013.
[2]陸佳華.嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計實戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2014.
[3]Xilinx Inc. Zynq-7000 all programmableSoC technical reference manual[M]. USA:Xilinx Inc, 2013.
[4]陳凱,魏文博,鄧明.嵌入式系統(tǒng)教學(xué)實驗板開發(fā)[J].實驗技術(shù)與管理.2016,33(1):82-85,95.
[5]吳立鋒,張亞平.依托嵌入式系統(tǒng)實驗平臺培養(yǎng)學(xué)生創(chuàng)新能力[J].中國現(xiàn)代教育裝備,2017(7):57-59.