寧波開放大學(xué) 周敏維
嵌入式系統(tǒng)技術(shù)是應(yīng)用型高校電子信息相關(guān)專業(yè)一門重要的軟硬件緊密結(jié)合的課程。與單片機(jī)接口課程相比,嵌入式系統(tǒng)課程具有更強(qiáng)的實(shí)踐性,需要適合能力培養(yǎng)的嵌入式實(shí)驗(yàn)平臺。市面上在售的大多數(shù)嵌入式實(shí)驗(yàn)系統(tǒng)雖然具有功能很強(qiáng)的高級操作系統(tǒng)移植,但是這些高級操作系統(tǒng)往往不開源,實(shí)驗(yàn)系統(tǒng)硬件設(shè)置大多也不夠靈活,學(xué)生在這樣的實(shí)驗(yàn)系統(tǒng)上訓(xùn)練,很難接觸到嵌入式系統(tǒng)底層硬件,從而導(dǎo)致實(shí)際實(shí)驗(yàn)效果不盡如意。自制實(shí)驗(yàn)設(shè)備顯然是解決以上問題的行之有效方法,通過自行研制實(shí)驗(yàn)設(shè)備,可起到改進(jìn)實(shí)驗(yàn)設(shè)備功能、優(yōu)化實(shí)驗(yàn)教學(xué)內(nèi)容、促進(jìn)實(shí)驗(yàn)項(xiàng)目創(chuàng)新、實(shí)行“項(xiàng)目化”實(shí)驗(yàn)?zāi)J?、激發(fā)學(xué)生對實(shí)驗(yàn)的探究興趣、提高學(xué)生綜合實(shí)踐與創(chuàng)新能力的效果。
為了使嵌入式實(shí)驗(yàn)系統(tǒng)具有豐富外圍接口,滿足學(xué)生接觸系統(tǒng)底層硬件以及高級操作系統(tǒng)開源等要求,有利于學(xué)生掌握嵌入式系統(tǒng)的設(shè)計(jì)方法,我們自主開發(fā)了一種適合于應(yīng)用型高校的嵌入式實(shí)驗(yàn)系統(tǒng),對實(shí)驗(yàn)系統(tǒng)的核心電路與接口電路實(shí)行模塊化設(shè)計(jì),學(xué)生可根據(jù)實(shí)驗(yàn)需求搭建嵌入式實(shí)驗(yàn)平臺,掌握實(shí)際應(yīng)用場景硬件搭建方法,自主學(xué)習(xí)嵌入式系統(tǒng)開發(fā)流程。利用以太網(wǎng)與USB接口,學(xué)生可深入到嵌入式實(shí)際應(yīng)用系統(tǒng)。自制的嵌入式實(shí)驗(yàn)系統(tǒng)采用完全開源的實(shí)時操作系統(tǒng)uC/OS II,學(xué)生不僅可以接觸到實(shí)時操作系統(tǒng)內(nèi)核文件,也可以對內(nèi)核文件進(jìn)行修改,完成嵌入式系統(tǒng)的個性化定制。除了完成規(guī)定的課程實(shí)驗(yàn),學(xué)生也可以自主選擇實(shí)驗(yàn)內(nèi)容,嘗試完成設(shè)計(jì)性、綜合性、創(chuàng)新性的實(shí)驗(yàn)。
圖1 自制嵌入式系統(tǒng)結(jié)構(gòu)框圖
嵌入式實(shí)驗(yàn)系統(tǒng)包括母板和核心板兩部分。將LPC2148制成核心板,核心板上只有最基本的供電、JTAG調(diào)試、晶振、復(fù)位、USB從機(jī)接口等電路。其余接口全部引出至核心板的插槽中,可根據(jù)不同的實(shí)驗(yàn)需要制作相應(yīng)的接口板。在實(shí)驗(yàn)系統(tǒng)母板上,將LPC2148幾乎所有I/O口,如USB主控芯片CH375B、10M以太網(wǎng)接口ENC28J60、獨(dú)立按鍵、紅外接收頭、DS18B20溫度傳感器、2.4in觸摸彩屏TFT、獨(dú)立LED、數(shù)碼管、SD卡、內(nèi)嵌十位A/D與D/A、RS232/RS485串口、2.4G無線通信模塊nRF24L01、GPS、GSM等全部引出,這些I/O口可以掛接任何傳感器,基本上涵蓋了課程實(shí)驗(yàn)所需的硬件及接口電路,大部分實(shí)驗(yàn)不再需要跳線設(shè)置,免去了實(shí)驗(yàn)時的繁瑣跳線設(shè)置,實(shí)驗(yàn)設(shè)計(jì)與開發(fā)變得更加簡便。如圖1所示是基于LPC2148的自制嵌入式實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu)框圖。
LPC2148是一款自帶512kB嵌入高速Flash程序存儲器的微控制器,支持嵌入式跟蹤和實(shí)時仿真的32位ARM7TDMI-STMCPU,LPC2148的封裝體積很小,功耗也非常低,十分適用于POS機(jī)與訪問控制等應(yīng)用場景。LPC2148自帶從UART、USB、SPI、SSP到I2C總線的串行通信接口,以及32kB+8kB的片內(nèi)SRAM,可為通信網(wǎng)關(guān)、語音識別、低分辨成像等應(yīng)用場景提供足夠強(qiáng)的處理功能和足夠大的緩沖區(qū)。多個32位定時器、十位DAC、十位ADC、高速GPIO、PWM通道以及邊沿/電平觸發(fā)的外部中斷管腳,使得LPC2148尤其適用于醫(yī)療系統(tǒng)和工業(yè)控制等領(lǐng)域。
如圖2所示為LPC2148最小系統(tǒng)框圖。由于LPC2148具有片內(nèi)Flash程序存儲器和片內(nèi)靜態(tài)RAM,并沒有開放地址總線與數(shù)據(jù)總線,因此存儲器系統(tǒng)是可選的。另外,JTAG調(diào)試接口雖然是可選的,卻是程序調(diào)試必不可少的,所以實(shí)驗(yàn)系統(tǒng)也設(shè)置了JTAG調(diào)試接口。
圖2 LPC2148最小系統(tǒng)框圖
自制的嵌入式實(shí)驗(yàn)系統(tǒng)基礎(chǔ)實(shí)驗(yàn)?zāi)K主要包括GPIO操作、RS232/RS485電平轉(zhuǎn)換、74HC595擴(kuò)展、74HC165擴(kuò)展結(jié)合中斷、SPI控制器、串口通信、定時器與PWM、AD/DA轉(zhuǎn)換、獨(dú)立按鍵等。學(xué)生通過這些入門級的基礎(chǔ)實(shí)驗(yàn),可掌握LPC2148單片機(jī)的基本配置與操作、開發(fā)環(huán)境的搭建與使用方法;通過SCI串行接口實(shí)驗(yàn),可掌握與PC機(jī)的通訊方法;學(xué)生通過SPI串行接口實(shí)驗(yàn),可掌握SD卡等串行總線的使用方法;通過PWM接口實(shí)驗(yàn),可掌握電機(jī)控制、D/A等使用技術(shù);通過A/D接口實(shí)驗(yàn),同時配合各種傳感器,可擴(kuò)展系統(tǒng)的應(yīng)用領(lǐng)域,進(jìn)一步拓展學(xué)生的學(xué)習(xí)興趣。
自制的嵌入式實(shí)驗(yàn)系統(tǒng)進(jìn)階實(shí)驗(yàn)?zāi)K主要包括以太網(wǎng)接口、USB從機(jī)接口、USB主機(jī)接口、SD卡接口、nRF24L01無線數(shù)據(jù)傳輸、2.4in觸摸彩屏TFT等。
通用接口芯片CH375,支持USB-DEVICE/SLAVE設(shè)備方式與USB-HOST主機(jī)方式。CH375廠商已將文件系統(tǒng)管理層封包成庫。USB接口可實(shí)現(xiàn)主機(jī)、從機(jī)的雙重通訊。
嵌入式實(shí)驗(yàn)系統(tǒng)預(yù)留了SPI接口,SD卡支持SPI總線,通過SPI接接口可操作SD卡(Secure Digital Memory Card)。SPI總線模式具有傳輸協(xié)議簡單的特點(diǎn)。
LPC2148具有獨(dú)特加速結(jié)構(gòu)和128位存儲器接口,在最大時鐘速率情況下,能保證32位代碼能順暢運(yùn)行,非常適合于低分辨率成像。觸摸彩屏作為人機(jī)交互工具,目前已廣泛應(yīng)用于電子產(chǎn)品。嵌入式實(shí)驗(yàn)系統(tǒng)因此也配置了觸摸彩屏,學(xué)生通過實(shí)驗(yàn)可掌握觸摸彩屏的驅(qū)動原理。
嵌入式實(shí)驗(yàn)系統(tǒng)開發(fā)需要集成開發(fā)環(huán)境(IDE)及硬件設(shè)備的支持。 其中JTAG 仿真器在調(diào)試軟件時可以完成很大部分的仿真調(diào)試工作,還有萬用表、示波器,邏輯分析儀等的使用。自制的嵌入式實(shí)驗(yàn)系統(tǒng)的開發(fā)工具,有很多ARM開發(fā)軟件可供選用,如ADS、RealView、IAR、Keil都是常用的嵌入式集成開發(fā)環(huán)境(IDE)。嵌入式實(shí)驗(yàn)系統(tǒng)采用IAR開發(fā)工具,全部實(shí)驗(yàn)的軟件開發(fā)(含軟件編譯與仿真)都可以在IAR開發(fā)環(huán)境下完成。嵌入式系統(tǒng)開發(fā)使用C語言,也可使用C語言與匯編的混合編程。
IAR提供了應(yīng)用程序和庫程序的項(xiàng)目模板,按項(xiàng)目進(jìn)行管理,允許為每個項(xiàng)目定義一個或多個編譯連接配置(build),項(xiàng)目可以分類或分級管理源文件。在新項(xiàng)目生成之前,應(yīng)建立一個新的工作區(qū)(Workspace)。為了存放項(xiàng)目工程文件夾,必須建立一個專用目錄。譬如對于一個閃爍的LED程序,就要新建一個文件夾,其步驟為:
(1)選擇主菜單“Project > Create New Project”,會彈出生成新項(xiàng)目窗口。
(2)在“Tool chain”欄中選擇“ARM”,之后點(diǎn)擊“OK”按鈕。
(3)在彈出的“另存為”窗口中,瀏覽與選擇新建的LED目錄,輸入文件名“LED”,點(diǎn)擊“保存”,這時在“Workspace”窗口中將顯示新建的項(xiàng)目名。
胰腺實(shí)性假乳頭狀瘤(solid pseudopapillary tumor,SPT)是一種少見的良性或低度惡性腫瘤,在所有胰腺外分泌腫瘤中占比不超過1%~2%,占全部胰腺囊性腫瘤的5%[1]。這一類腫瘤有低度惡性潛能,手術(shù)可完全切除且預(yù)后良好[2],若腫瘤較大或囊變壞死明顯容易誤診為胰腺惡性腫瘤。本研究回顧性分析SPT的多層螺旋CT及3.0 T MRI影像學(xué)表現(xiàn),探討不同影像學(xué)檢查的優(yōu)勢和局限性,指導(dǎo)臨床合理應(yīng)用影像學(xué)檢查方法。
IAR EWARM提供“Debug”和“Release”這兩種缺省的項(xiàng)目生成配置。
(4)保存工作區(qū)。先選擇主菜單“File > Save Workspace”,瀏覽并選擇LED目錄。將工作區(qū)取名為“LED”,按“保存”按鈕退出。這時在LED目錄下將生成一個文件“LED.eww”,“LED.eww”文件中保存了用戶添加到LED工作區(qū)中的全部項(xiàng)目。
項(xiàng)目文件可添加之前寫好文件,比如已經(jīng)封裝好的驅(qū)動函數(shù)庫。若要臨時創(chuàng)建編輯,則點(diǎn)擊“New document”,之后會出現(xiàn)空白編輯窗,將它另存至之前創(chuàng)建的目錄中即可。
在“General Options”中“Device”選擇“NXP -> LPC2148”。若使用了中斷,那么在“C/C++ Compiler -> Code -> Generate mode”選項(xiàng)要打勾。
在“Linker -> Config -> Override default”選項(xiàng)打勾,并添加調(diào)試配置文件路徑:
在“Debugger -> Setup -> Driver”中選擇“J-Link/J-Trace”,“Debugger-> Download”中勾選“Verifg download”和“Use flash loader”選項(xiàng)。
點(diǎn)擊工具欄中的“make”按鈕,在“Messages”窗口會出現(xiàn)調(diào)試信息,若沒有錯誤,就可以點(diǎn)擊“Download and Debug”,開始下載調(diào)試程序。在實(shí)際實(shí)驗(yàn)過程中,一般來說會不可避免發(fā)生一些錯誤,這就需要學(xué)生根據(jù)實(shí)際情況,尋找錯誤所在并予以糾正。
系統(tǒng)采用JTAG方式的IAR J-LinK仿真器,支持ARM7/ARM9/Cortex-M3內(nèi)核芯片仿真,可與集成開發(fā)環(huán)境IAR EWARM無縫連接,無需安裝任何驅(qū)動程序。J-Link是學(xué)習(xí)開發(fā)ARM的理想開發(fā)工具,具有操作方便、連接方便、簡單易學(xué)特點(diǎn)。
如圖3所示為嵌入式系統(tǒng)實(shí)驗(yàn)流程圖。實(shí)驗(yàn)流程主要包括實(shí)驗(yàn)系統(tǒng)硬件準(zhǔn)備、IAR工程創(chuàng)建、實(shí)驗(yàn)例程學(xué)習(xí)、編譯下載仿真、例程功能拓展、編寫實(shí)驗(yàn)報(bào)告等。實(shí)踐能力強(qiáng)的學(xué)生還可以依托自制嵌入式實(shí)驗(yàn)系統(tǒng)的I/O擴(kuò)展接口,自主選擇與拓展實(shí)驗(yàn)內(nèi)容,完成綜合性、設(shè)計(jì)性、創(chuàng)新性實(shí)驗(yàn),也可完成與嵌入式技術(shù)相關(guān)的課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)。
圖3 嵌入式系統(tǒng)實(shí)驗(yàn)流程圖
利用自制的嵌入式實(shí)驗(yàn)系統(tǒng)可以完成許多實(shí)驗(yàn),以太網(wǎng)實(shí)驗(yàn)便是一個典型的嵌入式實(shí)驗(yàn)應(yīng)用案例。以太網(wǎng)實(shí)驗(yàn)通過PC端的瀏覽器打開網(wǎng)頁并控制實(shí)驗(yàn)系統(tǒng)上的LED硬件。以太網(wǎng)實(shí)驗(yàn)的網(wǎng)絡(luò)連接拓?fù)涫疽鈭D如圖4所示。
圖4 以太網(wǎng)實(shí)驗(yàn)的網(wǎng)絡(luò)拓?fù)溥B接示意圖
以太網(wǎng)數(shù)據(jù)解析流程圖如圖5所示。通過以太網(wǎng)實(shí)驗(yàn),學(xué)生可掌握以太網(wǎng)數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)拓?fù)渑c硬件組成,熟悉在以太網(wǎng)之上的軟件協(xié)議,例如ICMP、UDP、TCP/IP、Http等。ENC28J60接收以太網(wǎng)數(shù)據(jù),輸出最原始的以太網(wǎng)數(shù)據(jù)幀,利用LPC2148對這些數(shù)據(jù)進(jìn)行解析,其中Http協(xié)議是基于TCP鏈接完成的。
圖5 以太網(wǎng)數(shù)據(jù)解析流程圖
結(jié)束語:自制教學(xué)實(shí)驗(yàn)儀器設(shè)備是應(yīng)用型高校實(shí)驗(yàn)室建設(shè)的重要內(nèi)容,是推動實(shí)驗(yàn)教學(xué)改革、優(yōu)化實(shí)驗(yàn)教學(xué)內(nèi)容、促進(jìn)實(shí)驗(yàn)項(xiàng)目創(chuàng)新、激發(fā)學(xué)生實(shí)驗(yàn)興趣、提升學(xué)生實(shí)踐能力、激發(fā)學(xué)生創(chuàng)新能力、提高實(shí)驗(yàn)教學(xué)質(zhì)量的重要手段,在促進(jìn)實(shí)驗(yàn)技術(shù)人員水平提升、促進(jìn)實(shí)驗(yàn)室開放共享、推動高校實(shí)驗(yàn)室建設(shè)、節(jié)約實(shí)驗(yàn)室建設(shè)經(jīng)費(fèi)等方面發(fā)揮積極作用。
自制的基于LPC4148的嵌入式實(shí)驗(yàn)系統(tǒng),結(jié)構(gòu)框架清楚、開發(fā)環(huán)境友好、實(shí)驗(yàn)流程明晰,具有內(nèi)容貼近實(shí)際、接口豐富、擴(kuò)展性好、實(shí)用性強(qiáng)、開放性好等特點(diǎn),為應(yīng)用型高校培養(yǎng)應(yīng)用型人才提供了良好的自主學(xué)習(xí)實(shí)驗(yàn)平臺。實(shí)驗(yàn)教學(xué)表明,以項(xiàng)目例程為驅(qū)動,以工程應(yīng)用為內(nèi)容,在模塊化實(shí)驗(yàn)系統(tǒng)上,按項(xiàng)目化實(shí)驗(yàn)?zāi)J?,引?dǎo)學(xué)生由淺入深、循序漸進(jìn)學(xué)習(xí)嵌入式開發(fā)流程,學(xué)生嵌入式應(yīng)用與開發(fā)能力明顯增強(qiáng),從而提高了學(xué)生的實(shí)踐應(yīng)用和科技創(chuàng)新能力。