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