摘 要:介紹一種基于Atmel公司AT91M40800芯片的嵌入式一體化工業(yè)控制機(jī)硬件系統(tǒng)的設(shè)計(jì)。該系統(tǒng)提供了32位高速數(shù)據(jù)處理能力,并配有CPLD、LCD、PS/2鍵盤、CF卡、USB及串行接口等多項(xiàng)功能,并留有16路輸入/輸出擴(kuò)展口,體積小巧,便于攜帶,操作方便,可通用于許多工業(yè)控制領(lǐng)域,特別是需要用步進(jìn)電機(jī)控制二維和準(zhǔn)三維運(yùn)動控制的場合。
關(guān)鍵詞:ARM;嵌入式系統(tǒng);一體化;工業(yè)控制
1 引言
嵌入式微機(jī)工業(yè)控制技術(shù)是20世紀(jì)以來在計(jì)算機(jī)應(yīng)用實(shí)踐中產(chǎn)生和發(fā)展起來的非常經(jīng)濟(jì)實(shí)用的一種自動化技術(shù),它集電氣、機(jī)械、計(jì)算機(jī)、通信等技術(shù)于一體,具有速度快、工作方式靈活、可靠性高、信息處理能力強(qiáng)、成本低、適用范圍廣等特點(diǎn),在工業(yè)領(lǐng)域中已得到廣泛的應(yīng)用。目前國內(nèi)工業(yè)控制場合中用的嵌入式工控設(shè)備大多采用的是以8位單片機(jī)(MCS-51)為內(nèi)核,有價格低廉、設(shè)計(jì)較容易、能達(dá)到一般要求的優(yōu)點(diǎn),但也存在著存儲容量小,獨(dú)立工作時功能較弱,較強(qiáng)功能要與PC機(jī)聯(lián)機(jī)才能實(shí)現(xiàn),實(shí)時性能不強(qiáng),定位精度不高,人機(jī)交互復(fù)雜,操作不方便等。我們選用功能強(qiáng)大的32位嵌入式微處理器ARM來代替8位單片機(jī),并將控制板與電源、步進(jìn)電機(jī)和被控制設(shè)備集成于一體,形成一種新的機(jī)型--嵌入式一體化工業(yè)控制機(jī)。
嵌入式一體化工業(yè)控制機(jī)是一套與工控工作臺集成在一起的單片機(jī)控制系統(tǒng),配備了合適尺寸的液晶顯示屏以顯示工作菜單;可接入PS/2標(biāo)準(zhǔn)鍵盤;顯示內(nèi)容包括文字、流水號、日期和圖形;可通過RS232串行口或USB接口與PC機(jī)和其它設(shè)備連接;CF卡接口可以接入8M~2G的CF卡;NAND flash用作穩(wěn)定存儲;有JTAG接口用于調(diào)試;另有三個面板按鍵(確認(rèn)鍵、下移鍵、返回鍵)以及一個急停鍵單獨(dú)控制操作;支持多國語言菜單等。由于采用較高性能的處理器及相關(guān)外圍硬件設(shè)備,該系統(tǒng)數(shù)據(jù)通信協(xié)議更加可靠、合理、易于擴(kuò)展;人機(jī)交互操作更加友好、方便;系統(tǒng)集成度更高、體積更小。該系統(tǒng)既可作為嵌入式系統(tǒng)獨(dú)立工作,也可作為從屬功能設(shè)備由PC 機(jī)進(jìn)行控制,以完成更復(fù)雜的工作。該系統(tǒng)有三種工作模式:獨(dú)立工作模式、聯(lián)機(jī)工作模式和維護(hù)工作模式。
在機(jī)電一體化項(xiàng)目中,經(jīng)常會遇到工件需做往返運(yùn)動或需精確定位等場合,這些項(xiàng)目采用步進(jìn)電機(jī)控制簡單易行。因此內(nèi)含步進(jìn)電機(jī)的嵌入式一體化工業(yè)控制機(jī)應(yīng)用廣泛,可用作氣動加工、激光加工、自動焊接等設(shè)備的控制系統(tǒng)。例如,能在各種金屬或非金屬物體上打出文字圖形的機(jī)電一體化設(shè)備--打標(biāo)機(jī),應(yīng)用該系統(tǒng)可較大幅度地提高打標(biāo)的速度和精度。又如激光加工機(jī)床,它通過控制激光束和工件之間的相對位置來切割、打孔和熱處理各種零器件,采用該系統(tǒng)能充分發(fā)揮ARM處理器的性能,可在提高精度的同時降低生產(chǎn)成本,是新式機(jī)床設(shè)計(jì)和老式機(jī)床改造的一條有效途徑。
2 ARM芯片簡介
2.1 芯片基本組成及內(nèi)部結(jié)構(gòu)
AT91M40800是Atmel公司推出的AT91系列32位ARM微處理器中一款高性價比的工業(yè)級芯片,具有如下資源[1]:
32位ARM7TDMI內(nèi)核
100引腳,32個可編程I/O口,大部分與其它功能復(fù)用
8KB片內(nèi)SRAM
可編程外部總線(EBI)接口,可以編程配置其寬度(8位或16位)、訪問方式、等待周期等
3個IRQ外部中斷和1個FIQ外部中斷,并且其I/O口也可用于產(chǎn)生中斷
3通道16位計(jì)數(shù)器/定時器
2通道通用同步/異步串行接口(USART)
可編程看門狗定時器
可支持JTAG調(diào)試,主頻可達(dá)到40MHz
4路低電平有效的片選,4路高電平有效的片選(與地址線的A20~A23復(fù)用),可尋址64MB空間。
2.2 芯片的總體特性
AT91M40800的ARM7TDMI內(nèi)核集成了嵌入式ICE接口[2],片內(nèi)含兩大類總線:系統(tǒng)總線和外圍總線。系統(tǒng)總線連接ARM7DTMI內(nèi)核和片內(nèi)存儲器、外圍總線接口以及AMBA橋電路來驅(qū)動。大量的堆寄存器使其處理中斷的速度非??焖伲院苓m合于實(shí)時系統(tǒng)。通過可編程外部總線接口,可與片外存儲器(如Flash、ROM等)直接連接進(jìn)行數(shù)據(jù)交換。具有8級優(yōu)先級別的先進(jìn)中斷控制器,以及與其相連的外圍部據(jù)控制器使其用于實(shí)時系統(tǒng)的性能更佳。該芯片使用Atmel公司的高密度CMOS工藝制造,集ARM7TDMI處理核、片內(nèi)高速存儲器、多功能外圍設(shè)備于一體,使其成為許多控制系統(tǒng)的一個靈活的,高性價比的解決方案。
3 嵌入式一體化工控系統(tǒng)組成及工作原理
3.1 系統(tǒng)結(jié)構(gòu)及工作原理
本系統(tǒng)的通用結(jié)構(gòu)示意圖如圖1所示,主要由電源、執(zhí)行機(jī)構(gòu)(電機(jī)驅(qū)動器、繼電器、工作臺以及主控板)、顯示屏、PS/2鍵盤和CF卡組成。其中電源提供5V、24V、36V三種電壓輸出,5V給控制板供電,24V給繼電器供電,36V給電機(jī)驅(qū)動器供電。電機(jī)驅(qū)動器控制步進(jìn)電機(jī)移動,液晶顯示屏用于人機(jī)交互顯示,PS/2鍵盤用于編輯內(nèi)容,CF卡是本系統(tǒng)采用的一種大容量存儲器,用于移動存儲數(shù)據(jù)對文件、字庫文件等。而主控板則用于控制液晶顯示屏、PS/2鍵盤、CF卡、電機(jī)驅(qū)動器這些外圍設(shè)備。
圖1 系統(tǒng)結(jié)構(gòu)示意圖
在系統(tǒng)中,單片機(jī)控制部分主要完成程序的運(yùn)行、鍵盤管理、文字?jǐn)?shù)據(jù)對文件的生成及編輯以及與上位機(jī)PC機(jī)間的通信,同時完成對X、Y軸電機(jī)的驅(qū)動。PC機(jī)主要完成菜單生成,字庫生成,圖形數(shù)據(jù)對文件的生成,可以進(jìn)行中西文及各種圖形的圖文混排,具有很強(qiáng)的商標(biāo)設(shè)計(jì)及產(chǎn)品流水號編輯能力。文字?jǐn)?shù)據(jù)對文件是在獨(dú)立工作模式下直接由下位機(jī)生成、編輯、輸出。圖形數(shù)據(jù)文件、菜單文件、字庫文件則是在PC機(jī)生成、編輯后通過RS232串行口或USB接口下載或通過CF卡拷貝到下位機(jī)。
如圖2給出了主控板的硬件原理框圖。系統(tǒng)工作的主時鐘頻率為32MHz,能夠滿足系統(tǒng)所需的實(shí)時性要求。2MB的NOR Flash用于存儲軟件代碼和保存系統(tǒng)設(shè)置參數(shù);512KB的SRAM則提供軟件運(yùn)行所需的存儲空間,CF卡接口可以接入8M~2G的CF卡;JTAG接口用于調(diào)試;液晶顯示屏用來顯示控制菜單;PS2接口可接入鍵盤控制;16MB的NAND Flash用于穩(wěn)定存儲菜單點(diǎn)陣數(shù)據(jù)、字庫數(shù)據(jù)和數(shù)據(jù)對文件等,另有3個面板按鍵單獨(dú)控制操作,并有串口、USB接口與主機(jī)通信且聯(lián)合控制操作。驅(qū)動器接口需要加入光電隔離器,使功率驅(qū)動部分與控制部分在電氣上隔離,消除驅(qū)動電路對單片機(jī)電路的干擾,提高系統(tǒng)的可靠性。硬件設(shè)計(jì)上采用將弱電和強(qiáng)電部分分開、在每個集成芯片上都加上濾波電容、關(guān)鍵地方加入穩(wěn)壓管等措施提供系統(tǒng)抗干擾性。軟件設(shè)計(jì)上主要采用看門狗監(jiān)視軟件運(yùn)行狀態(tài)。
圖2 主控板硬件原理框圖
3.2 系統(tǒng)各模塊及芯片選型
本系統(tǒng)由以下幾大部分組成:
?。?)顯示部分:顯示控制菜單,選用香港信利公司的VPG12864-SC-HT-LED03液晶顯示模塊。該模塊采用128×64點(diǎn)陣的液晶顯示屏,可顯示每行16個普通字符共8行,或顯示每行8個漢字共4行,內(nèi)置T6963C控制器。該模塊內(nèi)置DC-DC轉(zhuǎn)換單元以及溫度補(bǔ)償單元,以單電源(+5V)工作。
?。?)存儲部分:由SRAM、NOR Flash、NAND Flash、CF卡組成。由于ARM芯片內(nèi)置的SRAM僅為8KB,無法運(yùn)行大型程序,故需要外擴(kuò)SRAM,采用的是ISSI公司的IS61LV25616AL,容量為512KB,其在系統(tǒng)程序運(yùn)行的時候作為中間程序、數(shù)據(jù)的緩存。NOR Flash采用的是Atmel公司的AT49BV1614A,容量為2MB,存儲軟件代碼、菜單以及系統(tǒng)設(shè)置參數(shù)。NAND Flash采用的是三星公司的k9F2808U0C,容量為16MB,作為板上的大容量穩(wěn)定存儲器件,存儲文字及圖形數(shù)據(jù)文件、字庫文件。CF卡采用的是Sandisk公司的64MB CF卡,存儲的內(nèi)容與NAND Flash相同,可插拔,主要用于移動存儲,專用于PC機(jī)與主控板之間的文件交換,
(3)嵌入式數(shù)據(jù)處理部分:以AT91M40800為嵌入式核心芯片,主要進(jìn)行系統(tǒng)控制與數(shù)據(jù)處理。
(4)控制部分和人機(jī)交互部分:由可編程邏輯器件CPLD進(jìn)行邏輯和時序控制。CPLD是一種具有豐富的可編程I/O引腳的可編程邏輯器件,具有在系統(tǒng)可編程、使用方便靈活的特點(diǎn)[3]。不但可實(shí)現(xiàn)常規(guī)的邏輯器件功能,還可實(shí)現(xiàn)復(fù)雜的時序邏輯功能。CPLD同單片機(jī)接口,可以作為單片機(jī)的一個外設(shè),實(shí)現(xiàn)單片機(jī)所要求的功能。例如,實(shí)現(xiàn)常用的地址譯碼、鎖存器、8255等功能。
本系統(tǒng)中采用CPLD及外圍電路來實(shí)現(xiàn)以下5個子模塊的功能:PS/2接口模塊、3個面板按鍵(確認(rèn)鍵、下移鍵、返回鍵)模塊、電機(jī)驅(qū)動器接口模塊、3個工作狀態(tài)(電源、工作、故障)指示燈模塊、2個8路I/O模塊。CPLD選用的是Altera公司的EPM7128STC100,具有高阻抗、電可擦等特點(diǎn),可用門單元為2500個,管腳間延遲為5ns,工作電壓為+5V。
(5)通信部分:PC機(jī)通過RS232串行口和USB接口與主控板通信。ARM本身支持串行通信,但由于電平不同不能直接與計(jì)算機(jī)串口相連(ARM為0~+5V,而PC的串行通信為±10V),需接電平轉(zhuǎn)換芯片MAX232。USB模塊的控制芯片采用philips公司的PDIUSBD12,一個帶并行總線的USB接口器件,可以把串行數(shù)據(jù)轉(zhuǎn)換為8位的并行數(shù)據(jù)。符合USB1.1版的規(guī)范,同時集成了SIE(串行接口引擎)、FIFO存儲器、收發(fā)器以及電壓調(diào)整器。實(shí)現(xiàn)高速并行接口2M 字節(jié)/秒,完全自治的直接內(nèi)存存取DMA 操作,集成320字節(jié)多結(jié)構(gòu)FIFO 存儲器,主端點(diǎn)的雙緩沖配置增加了數(shù)據(jù)吞吐量并輕松實(shí)現(xiàn)實(shí)時數(shù)據(jù)傳輸,在批量模式和同步模式下均可實(shí)現(xiàn)1M 字節(jié)/秒的數(shù)據(jù)傳輸速率。
?。?)其余部分:包括實(shí)時時鐘部分和JTAG調(diào)試部分。實(shí)時時鐘模塊給系統(tǒng)實(shí)時提供年、月、日、時、分、秒這些時間信息。其采用DS1302串行時鐘日歷芯片,內(nèi)置31字節(jié)的靜態(tài)RAM,外接備用鋰電池,在主控板掉電的情況下仍正常工作,給系統(tǒng)提供記錄數(shù)據(jù)的實(shí)時時間。ARM和CPLD均可通過各自的JTAG接口接上JTAG下載板(PC機(jī)并口與JTAG接口的轉(zhuǎn)接板)與PC機(jī)相連。PC機(jī)通過ARM的JTAG接口一方面可進(jìn)行程序的板上調(diào)試,另一方面可將可執(zhí)行的程序代碼下載到板上的NOR Flash中。PC機(jī)通過CPLD的JTAG接口將程序下載到CPLD中,控制其引腳分配以及功能設(shè)置。
3.3 系統(tǒng)運(yùn)行流程
整個系統(tǒng)設(shè)計(jì)成程序順序執(zhí)行加上中斷調(diào)用,由用戶的鍵盤/按鍵輸入來決定程序的運(yùn)行流程。
本系統(tǒng)設(shè)計(jì)為具有三種工作模式:獨(dú)立工作模式、聯(lián)機(jī)工作模式和維護(hù)工作模式。工作模式在系統(tǒng)復(fù)位后通過菜單進(jìn)行選擇。
?。?)獨(dú)立工作模式:選擇文件,選擇特定文件以便輸出和編輯;內(nèi)容編輯,編輯文字?jǐn)?shù)據(jù)對文件的內(nèi)容;功能測試,測試電機(jī)功能是否良好,測量工控平臺的幅面以便進(jìn)行輸出范圍判斷;系統(tǒng)設(shè)置,設(shè)置操作起始位置、電機(jī)速度等;下載文件,可以通過RS232串行接口或USB接口將圖形數(shù)據(jù)對文件、字庫文件從PC機(jī)下載到CF卡。
?。?)聯(lián)機(jī)工作模式:PC機(jī)通過RS232串行接口或USB接口直接控制設(shè)備工作,實(shí)現(xiàn)的功能主要有:使電機(jī)在任意方向走任意長度,設(shè)置電機(jī)工作速度以及空移速度,讀取到位信號等。
?。?)維護(hù)工作模式:用于進(jìn)行菜單更新下載等維護(hù)性系統(tǒng)操作。
4 硬件設(shè)計(jì)中需要注意的事項(xiàng)
?。?)液晶顯示屏背光問題:選用的液晶顯示模塊的邏輯電源為+5V,但背光電源供電范圍為+3.8~4.3V直流電源,嚴(yán)格限制+5V電源直接供電,否則不僅會增加功耗,更會增加損壞背光燈的可能性和縮短液晶模塊的使用壽命,而背光電流約為100mA,故液晶顯示模塊的背光電源引腳設(shè)計(jì)為接10歐姆的電阻上拉到+5V電源。
(2)PS/2鍵盤、面板按鍵的消抖處理:采取硬件防抖的方法,先是在按鍵引腳旁接上濾波電容,又發(fā)現(xiàn)經(jīng)電容濾波后雖然無抖動但"1"處的電平變化會比較緩慢,則輸入到CPLD內(nèi)部后CPLD對電平的判決會發(fā)生混亂。故再接上施密特觸發(fā)器,使變化緩慢的波形變陡峭。
?。?)將本系統(tǒng)應(yīng)用于氣動加工時,氣閥的感應(yīng)電動勢的處理:在電路圖中氣閥與固態(tài)繼電器串聯(lián),固態(tài)繼電器一端接+24V電源,氣閥一端接地。氣閥是感性元件,當(dāng)輸入電流突然截止時,反向的感應(yīng)電動勢產(chǎn)生的感應(yīng)電流過大,會燒毀與氣閥串聯(lián)的固態(tài)繼電器,因此要在氣閥兩端并聯(lián)一個反向的肖特基二極管(正極與地相連),它有快的恢復(fù)時間及低的正向壓降,在輸入電流突然截止時,通過氣閥與肖特基二極管的回路釋放電流(此時肖特基二極管導(dǎo)通),又由于氣閥內(nèi)阻以及肖特基二極管正向阻抗很小,造成釋放電流很大,因此需在肖特基二極管一端串聯(lián)一個100歐姆的限流電阻。
(4)燒寫次序:整板焊完后應(yīng)步燒寫CPLD的程序,這是因?yàn)镃PLD在未燒寫程序的情況下,引腳電平狀態(tài)未定,而CPLD的數(shù)據(jù)線、地址線引腳均掛在總線上,會影響其他存儲器件。
(5)在硬件調(diào)試階段,板子不應(yīng)一次焊完,要焊一部分,調(diào)一部分,步步為營,這樣也好發(fā)現(xiàn)問題出現(xiàn)在哪一個環(huán)節(jié),比拿一塊整板調(diào)試時不知道錯誤出處要好。
?。?)散熱問題:由于主控板、2個電機(jī)以及電機(jī)驅(qū)動器均集成在執(zhí)行機(jī)構(gòu)內(nèi),要注意通風(fēng)散熱。
5 結(jié)語
該嵌入式一體化工業(yè)控制機(jī)具有數(shù)據(jù)處理速度快,精度高,產(chǎn)品成本低,系統(tǒng)的可靠性高等優(yōu)點(diǎn)。整個系統(tǒng)性價比高,體積小,便攜,用戶界面友好,操作簡單,維護(hù)方便,可在惡劣環(huán)境下作業(yè),功能大大優(yōu)于傳統(tǒng)的基于51單片控制系統(tǒng)的工控設(shè)備。
參考文獻(xiàn):
[1] 馬忠梅,徐英慧,葉勇建,林明.AT91系列ARM核微控制器結(jié)構(gòu)與開發(fā).北京:北京航空航天大學(xué)出版社,2003.1
[2] 杜春雷.ARM體系結(jié)構(gòu)與編程.北京:清華大學(xué)出版社,2003.2
[3] 周立功,夏宇聞.單片機(jī)與CPLD綜合應(yīng)用技術(shù).北京:北京航空航天大學(xué)出版社,2003.9