摘 要 論述了某智能測(cè)控系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì),給出了硬件結(jié)構(gòu)圖和軟件結(jié)構(gòu)。從電源和復(fù)位電路、時(shí)鐘電路、存儲(chǔ)器接口電路、以太網(wǎng)接口電路、調(diào)試與USB接口電路、AD/DA及PWM電路等方面,詳細(xì)說(shuō)明了硬件電路設(shè)計(jì),闡述了有關(guān)設(shè)計(jì)理由,為搭建智能控制器平臺(tái)的整體架構(gòu)奠定了堅(jiān)實(shí)基礎(chǔ)。
關(guān)鍵詞 AT91RM9200 智能控制器 Linux 硬件設(shè)計(jì)
在電子技術(shù)迅猛發(fā)展的今天,嵌入式系統(tǒng)已越來(lái)越多地應(yīng)用于消費(fèi)類電子產(chǎn)品、智能儀表、控制系統(tǒng)、航空航天等領(lǐng)域。本文論述基于ARM920T微控制器的AT91RM9200、采用嵌入式Linux操作系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)一種智能控制器平臺(tái),提供一具體被控對(duì)象,可供人員在其上驗(yàn)證各類控制算法的實(shí)際控制效用。主要是論述其硬件實(shí)現(xiàn)。
1 智能控制器總體結(jié)構(gòu)設(shè)計(jì)
智能控制器的整體方略是實(shí)現(xiàn)一閉環(huán)控制,提供一溫度被控對(duì)象,目的是控制對(duì)象溫度達(dá)到期望值,途徑是通過(guò)改變PWM占空比進(jìn)而改變加熱對(duì)象的電加熱膜的導(dǎo)通時(shí)間來(lái)實(shí)現(xiàn)。
1.1硬件結(jié)構(gòu)
系統(tǒng)的硬件機(jī)構(gòu)如圖1所示。嵌入式微處理器是系統(tǒng)的核心,采用ATMEL公司的AT91RM9200芯片,它負(fù)責(zé)處理ADC從對(duì)象那里采集來(lái)的溫度數(shù)據(jù),根據(jù)實(shí)際與期望值進(jìn)行控制算法運(yùn)算后,最終確定PWM波形的占空比,當(dāng)PWM輸出為高電平時(shí),加熱膜導(dǎo)通,反之截止。
SDRAM用于系統(tǒng)運(yùn)行時(shí)程序的存取,選用兩片HY57V561620,64MB空間足夠操作系統(tǒng)使用;引導(dǎo)程序Boot loader、嵌入式Linux操作系統(tǒng)、應(yīng)用程序及相關(guān)配置參數(shù)固化在NOR Flash內(nèi);物理層網(wǎng)絡(luò)芯片LXT971通過(guò)MII接口同AT91RM9200連接,用于系統(tǒng)與上位機(jī)的網(wǎng)絡(luò)通訊;為方便系統(tǒng)測(cè)試和應(yīng)用程序調(diào)試,還配備了標(biāo)準(zhǔn)JTAG接口、調(diào)試DBGU串口和USB HOST。
圖1 智能控制器硬件結(jié)構(gòu)
1.2軟件結(jié)構(gòu)
嵌入式操作系統(tǒng)是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺(tái),本智能控制器選用Linux操作系統(tǒng)?;贚inux的軟件結(jié)構(gòu)需要完成如下幾個(gè)方面的工作。
1.2.1 引導(dǎo)程序Boot loader的編譯,它是連接操作系統(tǒng)與硬件的紐帶,主要起初始化硬件設(shè)備、建立內(nèi)存空間的映射圖、為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確環(huán)境的作用。它的移植與硬件密切相關(guān),需根據(jù)實(shí)際硬件平臺(tái)進(jìn)行修改;
1.2.2 Linux內(nèi)核的裁剪和移植,文件系統(tǒng)ram disk的制作;
1.2.3 ADC、PWM驅(qū)動(dòng)程序的編寫。成功嵌入Linux后,就可以進(jìn)行應(yīng)用程序的開發(fā)了。被控量通過(guò)ADC采集,電加熱膜的導(dǎo)通時(shí)間由PWM占空比控制,所以還需編寫基于Linux內(nèi)核的驅(qū)動(dòng)程序。
2 智能控制器硬件電路設(shè)計(jì)
2.1電源與復(fù)位電路
本系統(tǒng)需要三種直流電源,一是給AT91RM9200內(nèi)核、鎖相環(huán)PLL和振蕩器供電的1.8V,一是器件I/O接口所需的3.3V,還有USB接口使用的5V。其中系統(tǒng)對(duì)1.8V核心電壓的品質(zhì)要求較高,再加之系統(tǒng)精密,所以需要有足夠的保護(hù)冗余設(shè)計(jì)。電源電路采用兩級(jí)電壓轉(zhuǎn)換的方式。第一級(jí)先降輸入電壓到5V,USB接口直接使用該電源;第二級(jí)分別使用低壓降穩(wěn)壓器LDO輸出噪聲較小的3.3V和1.8V。
系統(tǒng)復(fù)位電路如圖3所示。選用IMP706作系統(tǒng)μP監(jiān)控芯片,利用該電路可以實(shí)現(xiàn)上電、掉電、手動(dòng)復(fù)位、電源電壓監(jiān)控、看門狗等功能。PFI為電源故障電壓監(jiān)控輸入,當(dāng)PFI小于l.25V時(shí),電源故障輸出FPO變?yōu)榈碗娖?;WDI是看門狗輸入,
當(dāng)其保持高電平或低電平達(dá)1.6s時(shí)可使內(nèi)部定時(shí)器完成計(jì)數(shù),并置WDO為低;復(fù)位輸出RESET低電平有效;看門狗輸出WDO如果連接到MR將會(huì)觸發(fā)復(fù)位信號(hào);為了觸發(fā)復(fù)位,需將PFO接至MR端[1]。
圖2 電源電路
圖3 復(fù)位電路
2.2 時(shí)鐘電路
AT91RM9200的電源控制器PMC集成了兩個(gè)振蕩器和兩個(gè)PLL,可以提供系統(tǒng)所需的所有時(shí)鐘。圖4是本系統(tǒng)的時(shí)鐘電路,包括兩個(gè)外部晶振、兩個(gè)PLL的外部二階濾波器以及外部時(shí)鐘信號(hào)所必須的電源供給VDDPLL。
2.3存儲(chǔ)器接口電路
本系統(tǒng)SDRAM和NOR Flash的接口電路由于篇幅原因,這里不再給出。參考文獻(xiàn)[2],就可以知道EBI引腳同NOR Flash和SDRAM存儲(chǔ)控制器間的關(guān)系。需要說(shuō)明的是,AT91RM9200的外部總線接口EBI設(shè)計(jì)可以確保多個(gè)外設(shè)與基于ARM器件的內(nèi)置控制存儲(chǔ)器間進(jìn)行數(shù)據(jù)傳輸。EBI集成了靜態(tài)存儲(chǔ)、SDRAM和Burst Flash三個(gè)外部存儲(chǔ)控制器,并提供額外的SmartMedia和CompactFlash邏輯支持;數(shù)據(jù)通過(guò)16或32位數(shù)據(jù)總線進(jìn)行傳輸,高達(dá)26位的地址總線可對(duì)64M字節(jié)空間尋址;8個(gè)芯片選擇口NCS[7:0],優(yōu)化的引腳復(fù)用以減少外部存儲(chǔ)器的等待時(shí)間[2]。
圖4 系統(tǒng)時(shí)鐘電路
2.4以太網(wǎng)接口電路
本系統(tǒng)選用的PHY層收發(fā)芯片是Intel公司的全雙工網(wǎng)絡(luò)通信接口電路LXT971A,它符合IEEE標(biāo)準(zhǔn),支持100BASE-TX和10BASE-T應(yīng)用,并提供MII接口可以很好地同10/100MACs連接。圖3-9給出了LXT971A的接口電路。AT91RM9200的MAC可提供兩種與PHY互連的接口,獨(dú)立媒體接口MII和精簡(jiǎn)獨(dú)立媒體接口RMII。在我們的系統(tǒng)中,考慮MII多占用的IO口并未與其他外設(shè)沖突,再加之RMII所需的50MHz有源晶振多少會(huì)增加硬件設(shè)計(jì)中電源去耦和電磁兼容的難度,我們選擇使用MII接口。
圖4 以太網(wǎng)接口電路
2.5 調(diào)試與USB接口
本系統(tǒng)的標(biāo)準(zhǔn)JTAG接口電路如圖5所示。JTAG標(biāo)準(zhǔn)的目的是用測(cè)試數(shù)據(jù)輸入TDI、測(cè)試模式選擇TMS、測(cè)試時(shí)鐘輸入TCK和測(cè)試數(shù)據(jù)輸出TDO四個(gè)信號(hào)來(lái)測(cè)試芯片的內(nèi)部狀態(tài)并進(jìn)行故障檢測(cè),JTAGRST為測(cè)試復(fù)位,低電平有效,電路上上述五個(gè)信號(hào)端都需要上拉電阻。NRST是系統(tǒng)復(fù)位,調(diào)試完畢后可以通過(guò)復(fù)位鍵使其復(fù)位。
AT91RM9200的調(diào)試串口DBGU實(shí)現(xiàn)特性同標(biāo)準(zhǔn)USART串口100%兼容,為方便調(diào)試,達(dá)到將調(diào)試信息通過(guò)串口在PC超級(jí)終端打印出來(lái)的目的,DBGU必然需要保留,考慮可能要與其他開發(fā)板進(jìn)行串口連接,系統(tǒng)也設(shè)計(jì)了一通用串口。相關(guān)電路見圖5。
AT91RM9200(208引腳PQFP封裝)內(nèi)置兩個(gè)USB控制器,一個(gè)是USB 2.0全速主機(jī)端口USB Host,片上收發(fā)器,集成FIFO及專用的DMA通道;另一個(gè)是USB2.0全速設(shè)備端口USB Device,片上收發(fā)器,2K字節(jié)可配置的集成FIFO??刂菩盘?hào)分別為HDMA、HDRA、DDM、DDP。本系統(tǒng)設(shè)計(jì)中,兩個(gè)端口我們都占用,其中HOST接口主要用于應(yīng)用程序進(jìn)行U盤調(diào)試時(shí)插拔U盤,而系統(tǒng)與上位機(jī)進(jìn)行連接則采用Device接口。USB電路原理圖見圖5。
圖5 調(diào)試與USB接口電路
2.6 模擬量輸入輸出與PWM
本系統(tǒng)設(shè)計(jì)有兩個(gè)串行外設(shè),ADC和DAC,它們分別由片選線NPCS0、NPCS1控制。ADC部分的原理圖見圖6。選用的芯片是Analog Device公司推出的12位16通道逐次逼近式模數(shù)轉(zhuǎn)換器AD7490,高速,低功耗。5V電壓供電時(shí),數(shù)據(jù)傳輸率高達(dá)1MBPS,典型功耗9mW、最大僅有12.5 mW。DA轉(zhuǎn)換器AD420也是選擇的Analog Device公司的產(chǎn)品,高達(dá)16位的分辨率;靈活的串行數(shù)字接口,最大速率可達(dá)3.3 Mb/s,可通過(guò)3線制或異步制同MCU相連,我們采用的是三線制;轉(zhuǎn)換后的模擬輸出信號(hào)可以是0-5V電壓,也可以是4-20mA、0-20mA或0-24mA電流,可通過(guò)引腳進(jìn)行實(shí)際配置。
AT91RM9200的I/O引腳最大輸出電流僅8mA,這對(duì)于加熱來(lái)說(shuō)是完全不夠的,需要進(jìn)行電流放大。采用MOSFET場(chǎng)效應(yīng)管IRF620,6A漏極連續(xù)電流滿足需求,電子開關(guān)可以頻繁開關(guān)也非常適用于PWM控制方式下控制電熱膜的加熱。
圖6 AD、DA與PWM電路
三、結(jié)束語(yǔ)
詳細(xì)介紹了包括電源復(fù)位模塊、時(shí)鐘電路、存儲(chǔ)器單元、網(wǎng)絡(luò)接口、調(diào)試通訊接口以及ADC、PWM輸出在內(nèi)的智能控制器平臺(tái)的硬件電路設(shè)計(jì)。在移植完Linux系統(tǒng)后,開發(fā)完ADC及PWM驅(qū)動(dòng)程序,即可建出智能控制器平臺(tái)的整體架構(gòu)。接下來(lái)的主要工作還需辨識(shí)出被控對(duì)象的模型,編寫相應(yīng)控制算法,以在其上驗(yàn)證控制算法的實(shí)際控制效果。
參考文獻(xiàn):
[1]毛六平,羅文欽,汪魯才.多功能uP監(jiān)控芯片IMP706及其應(yīng)用[J].國(guó)外電子元器件,2000(12):38-39
[2]ATMEL corporation.AT91RM9200 datasheet[Z],2004.http://www.atmel.com/
[3]崔用明,李積英.基于嵌入式控制器的溫度控制系統(tǒng)設(shè)計(jì)[J].蘭州交通大學(xué)學(xué)報(bào),2008,27(6):127-129
作者簡(jiǎn)介:
李玉琴,(1983.2~)漢族。河南平頂山市葉縣人,廣西城市職業(yè)學(xué)院機(jī)電工程分院助教。