基于嵌入式系統(tǒng)的新型無紙記錄儀摘 要:在分析了基于8 位單片機的無紙記錄儀的功能和結(jié)構(gòu)的基礎(chǔ)上,提出了一種新型的基于ATMEL 公司的32 位嵌入式系統(tǒng)ARM芯片AT91M55800A 的無紙記錄儀的軟件設(shè)計和硬件設(shè)計方案,完整地解決了基于8 位單片機的無紙記錄儀無法實現(xiàn)的難點,而且大大增強了儀表的實時性和穩(wěn)定性,并在工業(yè)控制中得到證實。
關(guān)鍵詞:無紙記錄儀;單片機;實時性
The NEW Paperless2Recorder Based on Embedded System
Abstract : The Author introduces a kind of Paperless2Recorder designing based on AT91M55800A , compared with that of based on MCS251 microcontroller. This New Paperless2Recorder not only has the basic function of ordinary Paperless - Recorder ,
but also add the function of control. The Display of color LCD makes the interface more friendly.Moreover ,the instrument has good real time. The fact proves that the design is successful.
Key words : paperless2recorder ; single chip microcomputer ; realtime
1 引 言
隨著工業(yè)過程自動化的高速發(fā)展,企業(yè)對無紙記錄儀提出了越來越高的要求�;�8 位單片機的無紙記錄儀的功能已遠遠達不到用戶的要求,儀表開發(fā)人員面臨著重新設(shè)計無紙記錄儀的軟硬件結(jié)構(gòu)的挑戰(zhàn),以滿足市場對色彩豐富的LCD 顯示畫面、超大記錄容量、增強的控制功能等等方面的需求。
開發(fā)人員一致將目光投向了嵌入式ARM 微處理核的32 位RISC 處理器,它強大的性能、豐富的接口以及優(yōu)異的性價比,為無紙記錄儀的發(fā)展提供了無限的空間,也是無紙記錄儀發(fā)展的必然趨勢。
2 基于8 位單片機的無紙記錄儀結(jié)構(gòu)和功能的分析
工業(yè)現(xiàn)場的無紙記錄儀常采用MCS251 系列單片機,該系列的處理器工作頻率一般不大于24MHz ,而且可擴展的資源相當有限,最大能夠擴展的程序空間和內(nèi)存空間都只有64KB ,很難實時完成具有一定復(fù)雜度的算法和需要大批量傳送數(shù)據(jù)的彩色LCD畫面的顯示,因此該類無紙記錄儀一般采用單色LCD 顯示畫面,不提供復(fù)雜的算法。
其外圍電路一般包括: (1) 外部RAM,用于數(shù)據(jù)的緩存; (2) ROM,作為系統(tǒng)程序的存儲; (3) 操作鍵盤,可以進行歷史數(shù)據(jù)的查詢和組態(tài)信息的修改,多采用查詢方式讀取鍵值; (4) 單色LCD 圖形液晶,為用戶提供了人機界面,但顯示畫面不好; (5) 實時時鐘芯片,為儀表提供標準的實時時間; (6) FLASH 芯片,為歷史數(shù)據(jù)的存儲提供空間,但由于CPU 的尋址空間為64KB ,數(shù)據(jù)總線寬度為8 位,因此對該芯片的操作不方便,而且讀寫數(shù)據(jù)時間較長; (7) 電源,由于擴展的外部芯片較多,所以功耗較大; (8) 采樣模塊,對外部信號進行AD 轉(zhuǎn)換和必要的數(shù)據(jù)處理。
3 基于嵌入式系統(tǒng)的無紙記錄儀的外部特性該系統(tǒng)以嵌入式芯片AT91M55800A 為核心,并輔以大容量的FLASH存儲技術(shù)、信號智能調(diào)理和高分辨率的圖形液晶顯示器,具有體積小、通道數(shù)多、功耗低、實時性強、精度高、運行穩(wěn)定等特點。其優(yōu)勢在于:
(1) 采用320 ×240 點陣的高清晰度圖形液晶控制器,具有豐富的圖形和文字顯示畫面,最大程度地反應(yīng)記錄儀工作的現(xiàn)場工業(yè)信息。
(2) 采用超大容量的FLASH 存儲技術(shù),無需后備電池,斷電時能夠保存記錄的數(shù)據(jù),而且存儲容量高達128Mbit ,最長記錄時間可達30 年之久。
(3) 記錄方式多樣化。可分為等間隔記錄和事件記錄。
(4) 采樣模塊為萬能輸入模塊。即在不必更換任何器件或進行任何硬件設(shè)置下,就可以實現(xiàn)對熱電阻、熱電偶、II/ III 型標準信號的采樣。
(5) 豐富的軟件算法。具有多種溫壓補償算法,實現(xiàn)對各種氣體的開放和線性補償算法。
(6) 開發(fā)投入少。由于AT91M55800A 具有在線仿真單元( ICE) ,因此,只需一條并口的JTAG線,便可實現(xiàn)對系統(tǒng)的仿真、調(diào)試和程序的燒錄,從而減少了購買仿真器和編程器的費用。
4 基于AT91M55800A 無紙記錄儀的硬件設(shè)計AT91M55800A 是ATMEL 公司基于ARM7TDMI微處理核的32 位嵌入式RISC 處理器,具有體積小、功耗低、成本低、性能高等優(yōu)點,并具備16 位與32位雙指令集。芯片支持在片ICE( In - Circuit Emula2tion) 功能,可直接通過芯片上的JTAG口與PC 機通信,從而實現(xiàn)JTAG仿真功能和FLASH 程序存儲器的燒寫。AT91M55800A 具有完全可編程的EBI ( Ex2ternal Bus Interface) 接口,提供與外部存儲器和外圍器件的擴展接口,配置極為方便。具有8 級優(yōu)先級的中斷,中斷源極為豐富, PDC( Peripheral Data Con2troller) 功能使得串行口在大塊數(shù)據(jù)傳送時,不需要處理器的干預(yù), 從而保證了系統(tǒng)的實時性。AT91M55800A 提供30MIPS 的處理能力,這使得它相對于8 位MCS251 系列處理器在速度上有很大的
優(yōu)勢。58 根可編程的IO 引腳提供豐富IO 資源。另外,AT91M55800A 還具有SPI 接口、8 路10 位的AD轉(zhuǎn)換器、2 路10 位的DA 轉(zhuǎn)換器、RTC 功能、WDT 功能和高級電源管理功能(APMC) 。利用AT91M55800A 豐富的接口資源和靈活的擴展功能,設(shè)計出如圖1 所示的硬件結(jié)構(gòu)框圖。4. 1 AT91M55800A與外部存儲器的接口無紙記錄儀的外部存儲器包括:用于數(shù)據(jù)緩存的外部SRAM、存放程序的ROM、存放實時數(shù)據(jù)的外部FLASH 以及保存組態(tài)信息的非易失性NvRAM。其與AT91M55800A 的接口電路基本相同,而且CPU芯片具有8 個片選線和24 位地址線,每片最大尋址可達16M,因此外部擴展空間可達128M,可以滿足系統(tǒng)外圍器件的要求。圖2 描述了AT91M55800 與外部SRAM的接口。圖2 AT91M55800A與SRAM的接口由于程序仿真時需要下載到外部SRAM 運行,以及該芯片對外部芯片速度的要求, 所以選用UTRON 公司高速16 位數(shù)據(jù)總線的靜態(tài)大容量SRAM:UT61L25616 ,其讀取速度達10ns ,完全滿足此高速CPU 的要求,而且存儲空間為512KB ,也可以滿足程序仿真的要求。程序存儲器選用ATMEL 公司的FLASH:AT29LV1024 ,存儲容量為128KB。當系統(tǒng)上電后,CPU 從與NCS0 相連的存儲器開始執(zhí)行指令,因此程序FLASH 的片選線必須與NCS0 相接。存放數(shù)據(jù)的FLASH選用Intel 公司的28F640j3 ,存取空間為64Mbit ,其存取速度為120ns ,通過配置EBI的等待周期為5 ,就可以實現(xiàn)CPU 與它的時序匹配。存放無紙記錄儀的通道組態(tài)信息,選用非易失性RAM:HK1225 ,其容量為8KB ,同樣通過配置EBI 的等待周期,就可以實現(xiàn)CPU 和它的時序匹配。
4. 2 AT91M55800A與LCD 接口選用16 色的彩色圖形液晶,其點陣為320 ×240 ,考慮到LCD 控制器的工作電壓為5V ,而主CPU的工作電壓為3. 3V ,因此采用74HCT164245 對數(shù)據(jù)總線進行電平轉(zhuǎn)換。LCD 控制器與主CPU 的接口包括8 位數(shù)據(jù)總線和WR、RD、A0、CS、RST等控制線,為了與LCD 控制器的總線存取速度匹配,需要設(shè)定EBI 的等待周期為5 ,硬件接口如圖3 所示。液晶的操作主要包括寫命令和寫數(shù)據(jù)兩個函數(shù),下面是這兩個函數(shù)的源代碼,其中0x04000000是LCD 控制器緩沖區(qū)地址空間的首地址。
# define LCDCOM ( (uchar 3 ) 0x04000000 )
# define LCDDATA ( (uchar 3 ) 0x04000001 )
/ / 寫命令函數(shù)
void wcom(uchar com)
{
uchar 3 p - lcdc ,temp ;
p - lcdc =LCDCOM;
temp = com;
3 p - lcdc = temp ;
}
/ / 寫數(shù)據(jù)函數(shù)
void wdata (uchar dat)
{ uchar 3 p - lcdd ,temp ;
p - lcdd =LCDDATA ;
temp = dat ;
3 p - lcdd = temp ;
}
4. 3 AT91M55800A與鍵盤接口
由于用戶對無紙記錄儀的操作比較簡單,鍵盤設(shè)置了5 個鍵,分別為左鍵、右鍵、上鍵、下鍵和確任鍵,與AT91M55800A 的PA 口直接相接,接口電路,如圖4 所示。主CPU 通過定時掃描PA 口來讀取鍵值,為了消除按鍵抖動造成的鍵值錯判,不僅開啟了PA 口的濾波功能,而且在軟件上采取延時判別來保證鍵值的準確性。圖4 鍵盤與AT91M55800 的接口電路記錄儀的許多參數(shù)需要用戶通過鍵盤操作來設(shè)置,為了加快用戶對參數(shù)的設(shè)置,軟件設(shè)計上進行了加速處理,鍵被按下的時間越長,單位時間內(nèi)參數(shù)變化量就越大。因此如果需要設(shè)置的參數(shù)比較大,用戶可以首先按下鍵不松,使參數(shù)值迅速接近設(shè)定值,然后再小步距調(diào)整。
4. 4 與采樣模塊的通信
信號的采樣和調(diào)理功能集成在一個采樣模塊上,主CPU 通過與采樣模塊通信來讀取信號采樣值以及對采樣模塊進行設(shè)置,這樣不僅降低了硬件設(shè)計的復(fù)雜度,而且使得采樣通道配置十分靈活。同時在串行通信中使用了PDC 功能,只需告訴CPU 數(shù)據(jù)包的首地址和長度,就可以在不需CPU 的干預(yù)下實現(xiàn)數(shù)據(jù)的通信,從而增強了整個儀表的實時性,接口如圖5 所示。
4. 5 實時時鐘( RTC)
AT91M55800A 具有片上實時時鐘,通過專用的32. 768kHz 晶振電路和外接電池,使得系統(tǒng)在斷電的情況下,仍然保持準確的實時時間,這樣就為記錄儀的數(shù)據(jù)記錄提供了精確的時間基準,保證了記錄的準確性和數(shù)據(jù)處理的可靠性。同時省去了外部時鐘芯片,減小了PCB 板的面積,降低了成本。
4. 6 儀表安全性設(shè)計
為了保證記錄數(shù)據(jù)的正確性和完整性,以及整個儀表運行的可靠性,采用MAX706 實現(xiàn)對電源的監(jiān)控、硬件WDT和系統(tǒng)的復(fù)位功能。通過調(diào)節(jié)電源的監(jiān)控電壓, 使系統(tǒng)電壓在低于2. 7V 時進入AT91M55800 的快中斷(Fast Interrupt) ,迅速對重要數(shù)據(jù)進行保護。其次,AT91M558000 具有自帶的WDT功能,在程序初始化時將WDT 初始化,主循環(huán)中不斷清除WDT的溢出寄存器,從而在軟件和硬件上雙重保證了整個儀表運行的可靠性。
5 基于AT91M55800A 的無紙記錄儀的軟件設(shè)計
5. 1 引導(dǎo)程序與MCS251 系列單片機不同的是,AT91M55800A上電后要先執(zhí)行一段BOOT 程序,用于對各個外部接口進行配置。AT91M55800A 上電時的工作頻率為32. 768kHz ,即實時時鐘作為系統(tǒng)的工作時鐘。為此,在BOOT 程序中,首先應(yīng)開啟系統(tǒng)主振,然后根據(jù)需要是否進行倍頻,最后將系統(tǒng)工作時鐘切換到主時鐘上使ARM核到達正常工作頻率。接著,完成初始化EBI ,存儲中斷向量到內(nèi)部的RAM,初始化變量和分配系統(tǒng)堆棧。最后,通過跳轉(zhuǎn)指令轉(zhuǎn)向主程序。由于BOOT 程序要對AT91M55800 中的寄存器操作以及分配堆棧,這樣很難用C 語言直接操作,因此BOOT 程序一般用匯編語言編寫。
5. 2 主程序
主程序用C 語言編寫,使得程序有較強的可讀性和可移植性。程序結(jié)構(gòu)上按功能模塊編寫,大致分為以下幾個模塊: (1) 系統(tǒng)的自檢,每次上電時對儀表的所有芯片進行測試,保證儀表的正常工作。(2) 系統(tǒng)初始化,主要完成對串口、定時器、IO 口、鍵盤以及液晶的初始化。(3) 通信處理,與采樣模塊通信,實現(xiàn)對各個采樣通道的數(shù)據(jù)采集并對相應(yīng)的輸出通道發(fā)送控制信號。(4) 數(shù)據(jù)處理,由于從采樣通道獲取的采樣數(shù)據(jù)是AD 采樣的數(shù)值,并非工程值,因此還要對通信處理后的數(shù)據(jù)進行工程量化和算法處理。(5) 鍵盤處理,實現(xiàn)菜單操作,界面切換以及參數(shù)設(shè)置。(6) 液晶顯示程序,將采樣通道的數(shù)據(jù)實時顯示在LCD 屏上。(7) 數(shù)據(jù)存儲,將數(shù)據(jù)處理后的各個通道的數(shù)據(jù)存儲到超大容量flash 中。整個程序的流程圖,如圖6 所示。
圖6 主程序流程圖
6 結(jié)束語
基于AT91M55800A 的無紙記錄儀已經(jīng)研制成功,并且已經(jīng)在工業(yè)現(xiàn)場使用,證明了其硬件設(shè)計和軟件設(shè)計的合理性和正確性。相信隨著嵌入式系統(tǒng)的發(fā)展和嵌入式ARM 芯片在工業(yè)現(xiàn)場儀表上的不斷應(yīng)用,功能更加強大的新型工業(yè)智能儀表將層出不窮。
參考文獻:
[1 ] Atmel Corporation. AT91 ARM THUMB Microcontroller
AT91M55800A , 2002.
[2 ] 馬忠梅,徐英慧,等. ARM 嵌入式處理器結(jié)構(gòu)與應(yīng)用處
理[M] . 北京:北京航空航天大學(xué)出版社, 2002.
[3 ] 譚浩強. C 程序設(shè)計(第二版) [M] . 北京:清華大學(xué)出
版社,1999.
[4 ] Arm Corporation Arm Software Development Toolkit (version
2. 5) User Guide , 1997. (責任編輯:admin) |