基于89C51單片機(jī)的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計
工業(yè)生產(chǎn)過程中常常需要對溫度、濕度、壓力、流量等各種工藝參數(shù)隨時進(jìn)行檢測和監(jiān)控,同時還要將檢測到的數(shù)據(jù)及時傳遞給上位機(jī),以實現(xiàn)對參數(shù)的隨機(jī)查詢,對信息的存儲與處理,及時調(diào)整控制方案,提高生產(chǎn)效率和產(chǎn)品質(zhì)量。為此,筆者以89C51單片機(jī)作為主控制器設(shè)計了一種簡單易行的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)。
1 系統(tǒng)硬件電路的設(shè)計
遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)框圖,由兩部分組成:一是基于89C51實現(xiàn)的現(xiàn)場數(shù)據(jù)采集電路,二是PC機(jī)與89C51之間的遠(yuǎn)程通訊電路。
1.1 89C51數(shù)據(jù)采集系統(tǒng)
數(shù)據(jù)采集系統(tǒng)的硬件原理如圖1所示。
該系統(tǒng)選用89C51單片機(jī)作為主控制器,此芯片與8051完全兼容,且內(nèi)部帶有4 KB閃速可編程、可擦除PEROM,工作時鐘可高達(dá)24 MHz。
MAX691主要用來實現(xiàn)掉電保護(hù),同時起到“看門狗”的作用。系統(tǒng)電源突然斷電時,MAX691PF0端及時向89C51INT0申請中斷,保護(hù)采集的數(shù)據(jù)不丟失。若軟件執(zhí)行中出現(xiàn)故障,89C51P3.2經(jīng)一定時間間隔沒有脈沖輸出時,MAX691將起“看門狗”的作用,使RST復(fù)位有效,重新啟動系統(tǒng)。
數(shù)據(jù)存儲器6116主要作為數(shù)據(jù)傳輸?shù)木彌_,顯示電路由8155完成,PA口作鍵盤輸入,PB口作字形顯示,PC口作控制線用。8155內(nèi)部256 BRAM用于存放8通道采集到的原始數(shù)據(jù)。
數(shù)據(jù)采集與轉(zhuǎn)換由12位A/D轉(zhuǎn)換器ICL7109來完成。7109是高精度、低噪聲、低漂移的雙積分模數(shù)轉(zhuǎn)換器,其內(nèi)部帶14位鎖存器和14位三態(tài)輸出寄存器,具有較強(qiáng)的接口處理能力。設(shè)定7109為直接接口方式。這種工作方式下,7109可連續(xù)進(jìn)行數(shù)據(jù)的轉(zhuǎn)換,轉(zhuǎn)換結(jié)束時由STATUS發(fā)出轉(zhuǎn)換結(jié)束信號送至單片機(jī)INT0請求中斷。89C51將轉(zhuǎn)換后的數(shù)據(jù)分兩次先低8位后高4位讀取。為了實現(xiàn)對8個通道的參數(shù)測量,同時盡量降低成本,簡化系統(tǒng)配置,設(shè)計了利用模擬多路開關(guān)CD4051進(jìn)行通道的切換,共用一片7109由89C51控制,分時完成所有通道的采樣與轉(zhuǎn)換。
1.2 遠(yuǎn)程通訊電路
由于是遠(yuǎn)程數(shù)據(jù)采集系統(tǒng),對數(shù)據(jù)傳輸?shù)木嚯x提出了較高的要求。PC機(jī)與單片機(jī)232C串行口直接相連,傳輸距離只有十幾米,無法滿足系統(tǒng)要求。為此采用了一個RS232C到RS422A的轉(zhuǎn)換裝置,PC機(jī)與89C51間接相連,以RS422A方式進(jìn)行通訊,大大增加了傳輸距離。
PC機(jī)與89C51串行通訊電路框圖如圖2所示。
RS422A是一種以平衡方式傳輸?shù)臉?biāo)準(zhǔn),可雙端發(fā)送、雙端接收。發(fā)送端和接收端分別采用平衡發(fā)送及差動接收。通過前者把邏輯電平變成電位差,完成始端信息傳送;通過后者把電位差變成邏輯電平,完成終端信息接收。并且RS422A采用雙線傳輸,大大提高了抗干擾能力。最大傳輸速率可達(dá)10 Mb/s(傳輸距離15 m時),傳輸速率降至90 kb/s時,最大傳輸距離可達(dá)1200 m,這能充分滿足系統(tǒng)的“遠(yuǎn)程”要求。
2 軟件設(shè)計
軟件設(shè)計采用模塊化程序設(shè)計方法,按功能分為4個模塊,其中數(shù)據(jù)通信模塊又分為單片機(jī)串行通信程序和PC機(jī)通信程序,除與PC機(jī)通信程序使用VC++編程,其余均采用匯編語言編制。
2.1 主程序模塊
主程序主要完成對系統(tǒng)硬件電路的初始化,設(shè)置堆棧指針、串行口、T0、T1工作方式、8155顯示指示符,掃描鍵盤獲取鍵值并進(jìn)行散轉(zhuǎn)處理。主程序模塊負(fù)責(zé)管理和調(diào)用各子模塊?! ?/P>
2.2 數(shù)據(jù)采集模塊
該模塊完成對數(shù)據(jù)的采集及處理,中間調(diào)用了數(shù)字濾波子程序、數(shù)據(jù)轉(zhuǎn)換子程序、字形轉(zhuǎn)換及顯示子程序等。
系統(tǒng)數(shù)據(jù)采樣模塊框圖如圖3所示。
評論