汪 建,楊風(fēng)開,曹 江
(華中科技大學(xué)電氣與電子工程學(xué)院,湖北武漢 430074)
由于嵌入式開發(fā)技術(shù)的發(fā)展日新月異,這一領(lǐng)域入門門檻高,不僅要懂得硬件原理還要有較高的軟件編程的水平,導(dǎo)致現(xiàn)在嵌入式人才較為稀缺。在這種情況之下,如何開展單片機(jī)、ARM及DSP的實(shí)踐教學(xué),成為各高校電子、控制類相關(guān)專業(yè)在實(shí)驗(yàn)教學(xué)過(guò)程中必須解決的一個(gè)重要問(wèn)題。
在現(xiàn)今嵌入式實(shí)驗(yàn)教學(xué)儀器市場(chǎng)中,幾乎沒(méi)有公司會(huì)給出全面的技術(shù)文檔以及設(shè)計(jì)細(xì)節(jié),更不用說(shuō)有針對(duì)特定電類專業(yè)進(jìn)行的特有設(shè)計(jì)。鑒于上述這種狀況,開發(fā)出一套能夠用于各種實(shí)踐教學(xué),如課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)和電子競(jìng)賽等環(huán)節(jié),新型單片機(jī)/ARM/DSP實(shí)驗(yàn)教學(xué)裝置,顯得十分必要。我們針對(duì)電氣類專業(yè)的培養(yǎng)目標(biāo)和教學(xué)要求,設(shè)計(jì)開發(fā)了一套實(shí)驗(yàn)教學(xué)裝置。
1)實(shí)現(xiàn)多種單片機(jī)/ARM/DSP芯片的擴(kuò)展
該裝置采用以核心板為基礎(chǔ),加上通用板及擴(kuò)展板的方式進(jìn)行研制。我們開發(fā)了51和96單片機(jī)、ARM以及DSP等核心板,用戶可以根據(jù)教學(xué)內(nèi)容的需要選擇在裝置上插用不同的核心板。我們可以選用的芯片類型包括:MCS51系列、MCS96系列(80C196)單片機(jī)、ARM系列微處理器和TMS320LF240X系列DSP。通用板上設(shè)置了20多個(gè)實(shí)驗(yàn)電路,均可配套用于不同的核心板。擴(kuò)展板則為學(xué)生在各自專業(yè)領(lǐng)域進(jìn)行綜合性實(shí)驗(yàn)提供了硬件基礎(chǔ),學(xué)生可以在擴(kuò)展板上按照所選用的CPU,根據(jù)自己的思路和設(shè)計(jì)搭建電路,構(gòu)成系統(tǒng)。
2)基礎(chǔ)性實(shí)驗(yàn)和提高性實(shí)驗(yàn)兼顧
實(shí)驗(yàn)裝置既安排了基礎(chǔ)性實(shí)驗(yàn)又設(shè)計(jì)了提高性實(shí)驗(yàn)?;A(chǔ)實(shí)驗(yàn)包括基本I/O(如開關(guān)、指示燈、鍵盤、LED、LCD顯示器和中斷控制等)、A/D和D/A等,以鞏固學(xué)生對(duì)基本知識(shí)點(diǎn)等理解和掌握;提高性實(shí)驗(yàn)主要為設(shè)計(jì)性和綜合性實(shí)驗(yàn)(如串行通訊、頻率計(jì)、數(shù)字電子鐘、溫度計(jì)、交通燈控制等)。鑒于本院主要教學(xué)對(duì)象為電氣專業(yè)學(xué)生,在實(shí)驗(yàn)內(nèi)容上特別安排了一定數(shù)量的電氣類提高性實(shí)驗(yàn)(如電壓表、電流表、功率表、電機(jī)控制、電阻電感電容參數(shù)測(cè)量和數(shù)字函數(shù)信號(hào)發(fā)生器等)。通過(guò)這些實(shí)際電氣測(cè)量應(yīng)用系統(tǒng)的設(shè)計(jì),使學(xué)生了解和掌握嵌入式技術(shù)在電氣工程中的應(yīng)用。
3)功耗低,可靠性高
本裝置采用了多種措施降低功耗,同時(shí)電磁兼容性設(shè)計(jì)有效提高了抗干擾能力。裝置的可靠性在教學(xué)實(shí)踐中得到了檢驗(yàn),基本沒(méi)有故障的情況發(fā)生。
4)裝置整體設(shè)計(jì)緊湊美觀
本裝置可插用多種型號(hào)的CPU芯片,設(shè)置的實(shí)驗(yàn)數(shù)量亦較多,裝置上還設(shè)置了一些專用的或通用的顯示模塊??梢允拐麄€(gè)實(shí)驗(yàn)裝置的外觀顯得十分緊湊美觀。
本裝置的設(shè)計(jì)在初始階段遇到了許多困難,主要難點(diǎn)包括三個(gè)方面:①如何能在同一臺(tái)裝置上插用多種CPU芯片做不同機(jī)型的實(shí)驗(yàn)?②如何使裝置在滿足基本實(shí)驗(yàn)的前提下,能夠設(shè)置更多的綜合設(shè)計(jì)性實(shí)驗(yàn),以達(dá)到有效提高學(xué)生實(shí)際運(yùn)用單片機(jī)技術(shù)的能力,特別是硬件電路的設(shè)計(jì)和調(diào)試能力;③裝置的電磁兼容設(shè)計(jì),如何采取有效措施提高系統(tǒng)的抗干擾能力,使裝置具有較高的可靠性。針對(duì)上述難點(diǎn),我們借鑒其他單片機(jī)實(shí)驗(yàn)裝置的設(shè)計(jì)方法,在硬件接口電路設(shè)計(jì)上,采用了新型兼容性接口技術(shù)。使上述難點(diǎn)得到了較好地解決。
本裝置ARM核心板的設(shè)計(jì)基于體積小、功耗低和性能高的ARM微處理器S3C2410A芯片。該芯片基于ARM920T內(nèi)核,采用0.18μmCMOS標(biāo)準(zhǔn)單元結(jié)構(gòu)[1],其內(nèi)核結(jié)構(gòu)如圖1所示。
圖1 ARM920內(nèi)核結(jié)構(gòu)
S3C2410A內(nèi)部結(jié)構(gòu)提供的可擴(kuò)展的功能模塊較多,主要有ARM920T內(nèi)核(16/32bit RSIC CPU)、獨(dú)立的16KB指令緩存和16KB數(shù)據(jù)緩存、MMU虛擬內(nèi)存管理單元、LCD控制器(支持STN和TFT)、NAND flash boot loader、系統(tǒng)管理單元(SDRAM控制器等)、3通道UART、4通道DMA、4通道具備PWM功能的定時(shí)器、I/O口、RTC(實(shí)時(shí)時(shí)鐘)、8通道10bit精度的ADC和觸摸屏控制器、IIC總線接口、IIS數(shù)字音頻總線接口、USB主機(jī)、USB設(shè)備、SD/MMC卡控制器、2通道SPI和PPL數(shù)字鎖相環(huán)等。
S3C2410A還提供了一套較完整的通用系統(tǒng)外圍設(shè)備,使得整個(gè)系統(tǒng)消耗最小。正是因?yàn)樗哂泻芏喑S玫墓δ苣K,所以免去了添加配置及附加設(shè)備的麻煩。但S3C2410A芯片的引腳數(shù)達(dá)到272個(gè),采用FBGA封裝,對(duì)實(shí)際的制板工藝要求較高。
ARM核心實(shí)驗(yàn)板的電路結(jié)構(gòu)框圖如圖2所示,包括S3C2410A ARM微處理器,發(fā)光二極管、LED數(shù)碼管、按鍵和JTAG接口等。為減小印刷電路板面積,核心實(shí)驗(yàn)板上的數(shù)碼管采用動(dòng)態(tài)顯示方式。
圖2 S3C2410A核心實(shí)驗(yàn)板電路結(jié)構(gòu)
根據(jù)電氣工程專業(yè)的教學(xué)要求,ARM實(shí)驗(yàn)內(nèi)容主要有三個(gè)部分:①集成開發(fā)環(huán)境及仿真器應(yīng)用;②ARM芯片的片上各功能模塊的原理及應(yīng)用;③基于電力測(cè)控的嵌入式系統(tǒng)應(yīng)用設(shè)計(jì),例如數(shù)據(jù)采集存儲(chǔ)及處理、參數(shù)控制、開關(guān)量采集和處理、開關(guān)量控制、數(shù)據(jù)通信和人機(jī)接口等[2-3]。
基于上述硬件電路,配合Keil for ARM開發(fā)環(huán)境,為該核心實(shí)驗(yàn)板設(shè)置了約20個(gè)實(shí)驗(yàn)項(xiàng)目。
由英國(guó)Labcenter electronics公司開發(fā)的Proteus嵌入式系統(tǒng)仿真與開發(fā)平臺(tái),具有獨(dú)一無(wú)二的支持外圍電路與處理器協(xié)同仿真的特點(diǎn),從而真正實(shí)現(xiàn)了虛擬物理原型的功能。眾所周知,軟硬件測(cè)試環(huán)節(jié)是正式投產(chǎn)之前最重要的環(huán)節(jié),而在測(cè)試過(guò)程中,一旦出現(xiàn)了錯(cuò)誤,最令開發(fā)人員困擾的就是很難去判斷錯(cuò)誤是來(lái)自軟件還是硬件。使用虛擬仿真測(cè)試,可以在目標(biāo)板正式投產(chǎn)前,對(duì)設(shè)計(jì)的硬件系統(tǒng)的功能、合理性和性能指標(biāo)進(jìn)行充分調(diào)整,并可在沒(méi)有物理目標(biāo)板的情況下,進(jìn)行相應(yīng)軟件的開發(fā)和調(diào)試以及完全的虛擬開發(fā),可以降低開發(fā)風(fēng)險(xiǎn)[4]。由于本實(shí)驗(yàn)裝置ARM核心板使用的S3C2410A處理器芯片尚未被Protues虛擬仿真軟件支持,在進(jìn)行軟件仿真的時(shí)候,我們選擇另一款處理器芯片LPC2124。因?yàn)闇y(cè)試的目的是為了驗(yàn)證軟件程序的正確性,從而減少實(shí)際測(cè)試時(shí)軟件出現(xiàn)錯(cuò)誤的可能性,所以采用這種折衷的辦法是可行的。
搭建完硬件平臺(tái)之后,只需要手動(dòng)載入實(shí)驗(yàn)軟件,就可以利用Proteus驗(yàn)證實(shí)驗(yàn)程序的正確性。但是,每一次都需要把使用Keil for ARM生成的.hex實(shí)驗(yàn)程序手動(dòng)載入Proteus的芯片中,才能進(jìn)行電路仿真,這樣十分不利于程序的調(diào)時(shí)、修改和觀察仿真效果[5]。我們采用了適當(dāng)?shù)姆椒ń?Proteus與Keil for ARM的聯(lián)調(diào),其具體做法如下:①安裝Keil聯(lián)調(diào)插件;②打開Proteus仿真平臺(tái),選擇菜單欄:Debug-Use Remote Debug Monitor選項(xiàng),完成Proteus的聯(lián)調(diào)設(shè)置;③打開Keil uVision3,打開Options for Target LPC2124,選擇Debug選項(xiàng),選擇ST-LINK III Debugger,點(diǎn)擊setting設(shè)置完成;④完成聯(lián)調(diào)。打開Keil聯(lián)調(diào)安裝目錄下的 tools.ini文件,把 Keil/ARM/BIN中的VDMARM.dll復(fù)制到ini文件中,并把其命名為 ST-LINK III-KEIL.dll。
在2008年底,我們開發(fā)出本實(shí)驗(yàn)裝置的第一臺(tái)樣機(jī)。2009年生產(chǎn)裝配了10臺(tái),由一個(gè)學(xué)生班在“單片機(jī)原理及應(yīng)用”實(shí)驗(yàn)課程中試用。通過(guò)試用并修改設(shè)計(jì)方案,2010年又生產(chǎn)了20臺(tái),并由七個(gè)學(xué)生班繼續(xù)試用。在進(jìn)一步完善的基礎(chǔ)上,2011年批量生產(chǎn)65臺(tái),全部裝備我院?jiǎn)纹瑱C(jī)與DSP實(shí)驗(yàn)室,并用于全院“單片機(jī)原理及應(yīng)用”和“DSP及ARM”實(shí)驗(yàn)課程的教學(xué)及課程設(shè)計(jì)。
新型實(shí)驗(yàn)裝置在教學(xué)實(shí)踐中的應(yīng)用,大大增加了實(shí)驗(yàn)的靈活性。對(duì)于基礎(chǔ)性實(shí)驗(yàn),例如LED數(shù)碼管顯示器的控制實(shí)驗(yàn),學(xué)生在裝置上既可以選擇采用靜態(tài)顯示方式,或者動(dòng)態(tài)顯示方式;也可以采用串行接口控制,或者并行接口控制。對(duì)于設(shè)計(jì)性實(shí)驗(yàn),例如按鍵的接口電路設(shè)計(jì)實(shí)驗(yàn),他們既能選擇獨(dú)立式按鍵方式,又能選擇編碼式小鍵盤方式。學(xué)生可以較為自主地設(shè)計(jì)鍵盤的接口電路,并根據(jù)所設(shè)計(jì)的接口電路,靈活編程實(shí)現(xiàn)按鍵功能。對(duì)于面向綜合應(yīng)用性實(shí)驗(yàn),例如如溫濕度的測(cè)量,交流電參數(shù)的綜合測(cè)量,電動(dòng)機(jī)、步進(jìn)電機(jī)的控制等實(shí)驗(yàn),裝置上都提供了充分的接口功能。
本套新型單片機(jī)/ARM/DSP實(shí)驗(yàn)裝置可以根據(jù)實(shí)驗(yàn)的具體要求選擇更換插有不同CPU的核心板,其中既包括傳統(tǒng)的51和96單片機(jī)核心板,還包括有DSP系列核心板以及ARM系列核心板,因此有效地?cái)U(kuò)充了本實(shí)驗(yàn)裝置的應(yīng)用范圍。本套新型實(shí)驗(yàn)裝置的另一重要特色是通用板和擴(kuò)展板上設(shè)置了許多需要由學(xué)生自己進(jìn)行連接的端口,以方便他們開展自主性設(shè)計(jì)。
[1]S3C2410 Data Sheet.http://www.samsung.com
[2]周維,陳默.基于S3C2410的ARM開發(fā)平臺(tái)[J].上海:《電子技術(shù)》2004年第7期,2004
[3]嚴(yán)國(guó)志.基于電氣工程專業(yè)的ARM嵌入式系統(tǒng)教學(xué)研究[J].南京:《電氣電子教學(xué)學(xué)報(bào)》,第32卷第2期,2010
[4]李寧.ARM開發(fā)工具Realviw MDK使用入門[M].北京:北京航空航天大學(xué)出版社,2008
[5]周潤(rùn)景,袁偉亭.基于PROTEUS的ARM虛擬開發(fā)技術(shù)[M].北京:北京航天航空大學(xué)出版社,2007