基于AT89S52的數(shù)據(jù)采集系統(tǒng)
數(shù)據(jù)采集是目前一種流行且實用的技術(shù)。經(jīng)調(diào)查,目前數(shù)據(jù)采集器的市場需求量大,以數(shù)據(jù)采集器為核心構(gòu)成的小系統(tǒng)應(yīng)用廣泛,因此開發(fā)高性能的數(shù)據(jù)采集器具有良好的市場前景。本文以實驗室數(shù)據(jù)采集、工業(yè)現(xiàn)場數(shù)據(jù)采集、野外數(shù)據(jù)采集為主要方向,設(shè)計一款結(jié)構(gòu)簡單、操作方便、高性價比、具有顯示、記錄存儲功能的數(shù)據(jù)采集系統(tǒng)。
2 數(shù)據(jù)采集系統(tǒng)設(shè)計
2.1 系統(tǒng)硬件設(shè)計
數(shù)據(jù)采集系統(tǒng)硬件電路包括單片機(jī)控制、監(jiān)控、A/D采樣、顯示驅(qū)動、數(shù)據(jù)存儲、數(shù)據(jù)傳輸?shù)饶K。圖1所示為數(shù)據(jù)采集系統(tǒng)組成框圖。
2.1.1 單片機(jī)控制模塊
本數(shù)據(jù)采集系統(tǒng)的單片機(jī)控制模塊選用AT89S52。AT89S52具有40個引腳,8 KB Flash片內(nèi)程序存儲器,1個全雙工串行通信口,內(nèi)置看門狗(WDT)電路。
2.1.2 監(jiān)控模塊
測控系統(tǒng)中存在電源開斷、瞬時電壓不穩(wěn)定等因素,造成系統(tǒng)死機(jī)、信息丟失、運(yùn)行不穩(wěn)定等故障。為實現(xiàn)系統(tǒng)安全可靠、穩(wěn)定、實時運(yùn)行,須在測控系統(tǒng)中加入監(jiān)控模塊。系統(tǒng)的監(jiān)控模塊采用X25045,該器件具有電壓監(jiān)控、看門狗定時器和E2pROM等功能,可以直接與微控制器的I/O端口串連。
2.1.3 A/D采樣模塊
A/D采樣模塊采用TLCl543。TLC1543是TI公司采用SPI技術(shù)的模數(shù)轉(zhuǎn)換器,具有輸入通道多、高速、高分辨率、高性價比,易與單片機(jī)接口等特點。TLC1543的控制端CS、I/O CLOCK、ADDRESS和數(shù)據(jù)輸出端DATAOUT遵循串行外設(shè)接口SPI協(xié)議。雖然51系列單片機(jī)未內(nèi)置SPI接口,但僅需通過軟件模擬SPI協(xié)議即可實現(xiàn)通信。TLC1543和微處理器的串行接口之間可通過一個4線接口高速傳輸數(shù)據(jù)。
2.1.4 顯示驅(qū)動模塊
系統(tǒng)顯示驅(qū)動模塊采用PS7219。PS7219是一種高性價比的多位LED顯示管理器,采用同步串行外設(shè)接口(SPI),可與任何單片機(jī)相連,并可同時驅(qū)動8位LED。
2.1.5 串行通訊接口電路
在工業(yè)測控系統(tǒng)中,常用于51系列單片機(jī)采集現(xiàn)場模擬量、開關(guān)量,而PC機(jī)用于監(jiān)控整個控制現(xiàn)場。這兩者間的數(shù)據(jù)傳輸或所構(gòu)成的局部網(wǎng)絡(luò)、多用戶系統(tǒng)和分布式控制系統(tǒng)一般采用串行通信,PC機(jī)為主機(jī),單片機(jī)為從機(jī)。本系統(tǒng)數(shù)據(jù)傳輸采用異步串行通訊,采用Maxim公司的典型串行通信接口器件MAX232ECP實現(xiàn)數(shù)據(jù)傳輸。
2.1.6 數(shù)據(jù)存儲模塊
為了實現(xiàn)系統(tǒng)數(shù)據(jù)定時采集和按日期保存數(shù)據(jù),擴(kuò)展一片實時時鐘日歷器件SD2001E。該器件具有I2C總線接口,內(nèi)置實時時鐘所需電池、晶體振蕩器、電源管理等電路。系統(tǒng)掉電時可保證時鐘正常運(yùn)行。SD2001E無需外圍元件,即可構(gòu)成高精度實時時鐘及具有256 KB非易失性SRAM的數(shù)據(jù)存儲電路。
SD2001E采用24引腳DIP封裝。SD2001E的主要特性:年、月、日、星期、時、分、秒的BCD碼輸入/輸出;I2C總線接口(包括實時時鐘部分和SRAM部分);自動日歷到2099年(包括閏年自動換算功能);內(nèi)置晶體振蕩器,出廠前已對時鐘校準(zhǔn),保證精度為410-6,即時鐘年誤差小于2 min;低功耗,典型值為1.0μA(VDD=3.5 V);工作電壓為3.0 V~5.5 V:可設(shè)置兩路鬧鐘輸出及1 Hz~32 768 Hz的方波信號輸出;可設(shè)置每分鐘固定中斷輸出或選定頻率固定中斷輸出;內(nèi)置充電電路和充電電池,電源管理電路以及穩(wěn)壓電路和電池掉電檢測電路;內(nèi)置256 KB的非易失性SRAM,其擦寫次數(shù)為100億次,且無內(nèi)部寫延時。
本采集系統(tǒng)設(shè)計利用SD2001E實現(xiàn)以下功能:
(1)實時時鐘日歷。SD2001E可提供高精度的時鐘及日歷功能,以滿足具有定時數(shù)據(jù)采集、輸出控制、數(shù)據(jù)保存以及定時報警等功能的嵌入式系統(tǒng)需要,同時也可以為系統(tǒng)提供時間以及日期顯示功能。
(2)數(shù)據(jù)保存。利用SD2001E片內(nèi)32 KB、擦寫數(shù)為100億次的高性能NVRAM,無需考慮存儲器的擦寫壽命及數(shù)據(jù)存儲的可靠性問題。因而,SD2001E為那些需要頻繁讀寫數(shù)據(jù)的應(yīng)用提供了解決方案。
(3)定時輸出。當(dāng)系統(tǒng)需要以分鐘為基本單位定時輸出時(如采集周期固定的多路數(shù)據(jù)采集、巡回檢測系統(tǒng)等),可將SD2001E狀態(tài)寄存器的INT1ME位置“1”,INT1FE位置“0”,以選擇為每分鐘邊沿中斷輸出或?qū)NT1ME、INT1FE同時置“1”選擇為每分鐘固定中斷輸出。通過單片機(jī)的計數(shù)器或中斷次數(shù)軟件計數(shù)的方法,可得到以分鐘為單位的任意時間輸出。
SD2001E與AT89S52單片機(jī)的硬件連接電路如圖2所示。由于AT89S52沒有I2C總線,因此采用P2.0和P2.1接口線模擬I2C總線。SD2001E內(nèi)部SRAM的I2C總線接口SDAE與SDA并聯(lián),SCLE與SCL并聯(lián)。
2.2 系統(tǒng)軟件設(shè)計
利用ASM51匯編語言編寫數(shù)據(jù)采集與數(shù)值計算、數(shù)據(jù)顯示、數(shù)據(jù)存儲和數(shù)據(jù)通訊軟件;采用可視化語言VB6.0設(shè)計上位機(jī)軟件,編寫上位計算機(jī)數(shù)據(jù)接收和處理軟件。
系統(tǒng)主程序為數(shù)據(jù)采集系統(tǒng)的主體部分,它由自檢與初始化、A/D轉(zhuǎn)換程序、顯示驅(qū)動、監(jiān)控程序、按鍵程序、數(shù)據(jù)上傳通訊、數(shù)據(jù)定時存儲等模塊組成。首先是系統(tǒng)初始化。當(dāng)系統(tǒng)運(yùn)行正常,則開始運(yùn)行數(shù)據(jù)采集軟件的主程序,使用默認(rèn)配置參數(shù)設(shè)定系統(tǒng)的采集通道數(shù),完成數(shù)據(jù)采集、數(shù)據(jù)顯示、數(shù)據(jù)傳輸及數(shù)據(jù)定時存儲等功能。系統(tǒng)軟件設(shè)計流程圖如圖3所示。
3 結(jié)束語
本數(shù)據(jù)采集系統(tǒng)選用了工業(yè)級器件,能夠適應(yīng)油田野外惡劣環(huán)境,保證系統(tǒng)在寬泛的電壓范圍內(nèi)正常工作,低功耗;實時時鐘日歷器件SD2001E能實現(xiàn)數(shù)據(jù)定時采集和按時間日期保存數(shù)據(jù)。該數(shù)據(jù)采集系統(tǒng)不僅能獨立工作,還可進(jìn)一步上傳處理數(shù)據(jù),擴(kuò)展系統(tǒng)。
評論