基于AT89S52單片機的以太網(wǎng)遠程監(jiān)控系統(tǒng)的設(shè)計
計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,引發(fā)了遠程監(jiān)測、監(jiān)控領(lǐng)域深刻的技術(shù)變革。系統(tǒng)結(jié)構(gòu)向網(wǎng)絡(luò)化、開放性方向發(fā)展將是技術(shù)發(fā)展的主要潮流。以太網(wǎng)作為目前應(yīng)用最廣泛的局域網(wǎng)技術(shù),憑借其開放性好、成本低廉、數(shù)據(jù)傳輸率高等諸多優(yōu)勢,在工業(yè)自動化和過程控制領(lǐng)域得到了越來越多的應(yīng)用。依靠以太網(wǎng)技術(shù)實現(xiàn)信息共享,給辦公自動化帶來很大的變革,對系統(tǒng)設(shè)計產(chǎn)生了深遠的影響。本文以溫度控制為研究對象,以AT89S52單片機為核心,以ZNE-100T模塊為以太網(wǎng)接口,設(shè)計了一個基于以太網(wǎng)的遠程溫度控制系統(tǒng)。
2 系統(tǒng)組成及原理
基于AT89S52單片機的以太網(wǎng)遠程溫度監(jiān)控系統(tǒng)的硬件電路如圖l所示。
系統(tǒng)工作原理:先由DSl8820單線數(shù)字溫度傳感器負責(zé)實時采集現(xiàn)場溫度信號,并把溫度信號直接以數(shù)字形式傳送給AT89S52單片機。AT89S52單片機取得相應(yīng)的數(shù)值后經(jīng)主程序分析與設(shè)定值比較,根據(jù)實際情況輸出信號控制輸出電路各端口的電平,以驅(qū)動外圍的控制電路工作,實現(xiàn)對被控制對象的控制。同時單片機通過UART0串口連接到ZNE-100T,通過以太網(wǎng)與上位機連接,實現(xiàn)基于以太網(wǎng)的遠程通信。
3 系統(tǒng)硬件設(shè)計
本系統(tǒng)硬件主要包括單片機的最小系統(tǒng)、溫度采集電路、顯示電路、告警電路、外圍控制電路和以太網(wǎng)接口模塊等。本系統(tǒng)AT89S52作為核心處理器。AT89S52是Atmel公司生產(chǎn)的低功耗、高性能CMOS8位單片機,片內(nèi)含有8k字節(jié)的EPROM和256字節(jié)的RAM。具有ISP(在系統(tǒng)編程)功能。它具有靈活性高、使用方便、價格低廉等優(yōu)點。因此,該芯片在嵌入式控制系統(tǒng)中得到了廣泛應(yīng)用。本系統(tǒng)采用Dallas單線數(shù)字溫度傳感器DSl8820現(xiàn)場采集溫度數(shù)據(jù),打破了傳統(tǒng)的熱電阻、熱電偶再通過A/D轉(zhuǎn)換采集溫度的思路,用Atmel公司的Flash單片機AT89S52對數(shù)字進行處理和控制,通過RS-232串口,經(jīng)過以太網(wǎng)傳到PC機實現(xiàn)遠程控制。利用AT89S52的ISP(在系統(tǒng)編程)功能,很方便地把編好的程序?qū)懙絾纹瑱C中,并且調(diào)試、修改和升級很容易。本系統(tǒng)監(jiān)控的溫度范圍為0℃~+90℃,溫度值顯示的精度為0.0l,不但可以利用十進制實時顯示溫度值,還可根據(jù)需要設(shè)置控制溫度的上、下限,當(dāng)溫度超過設(shè)定值時,系統(tǒng)自動產(chǎn)生告警指示。以下是各部分的電路功能:
(1)AT89S52單片機
AT89S52是整個系統(tǒng)的核心處理器,單片機首先把通過傳感器測到的現(xiàn)場溫度與預(yù)先設(shè)置的溫度進行比較,如果大于或小于預(yù)先設(shè)置值,就輸出信號去控制加熱器的工作,從而實現(xiàn)溫度控制。AT89S52還負責(zé)液晶顯示、告警,同時通過以太網(wǎng)與上位機進行通信等工作。
(2)溫度傳感器
溫度傳感器是該系統(tǒng)的關(guān)鍵器件,本文選用的是美國Dallas半導(dǎo)體公司生產(chǎn)的數(shù)字化溫度傳感器DSl8820,它支持單總線接口,其內(nèi)部使用了在板(ON-BOARD)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。其測量溫度范圍為-55℃~+125℃,在一10℃~+85℃范圍內(nèi),精度為±0.5C。溫度傳感器DSl8820采集到的現(xiàn)場溫度直接以單總線的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量。如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。與前一代產(chǎn)品(世界上第一片支持單總線接口的DSl820溫度傳感器)不同,它支持3.0V~5.5V的電壓范圍,使系統(tǒng)設(shè)計更靈活、方便,而且DSl8820價格更便宜,體積更小。DSl8820的內(nèi)部結(jié)構(gòu)主要有4部分:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。其溫度檢測電路圖如圖2所示。DSl8820管腳GND為電源地,DQ為數(shù)字信號輸入/輸出端,VDO為外接供電電源接入端(用寄生電源方式時接地)。在本系統(tǒng)中用外接電源,DQ接到AT89852的P2.0端,Rl為信號和5V電源之間的上拉電阻。在實際中,若需要多點檢測時,可在單總線上掛多個DSl8820。
本系統(tǒng)是以爐溫作為溫度檢測對象,電阻爐的溫度變化范圍為30℃~150℃。系統(tǒng)設(shè)定溫度為35℃~80℃,溫度越限時產(chǎn)生告警。由于溫度變化慣性大,因此,系統(tǒng)選用固態(tài)繼電器作為溫控元件。固態(tài)繼電器是由固體元件組成的無觸點開關(guān)元件,利用電子元件的開關(guān)特點來控制電路的斷開與接通,工作可靠、壽命長,開關(guān)速度快,能實現(xiàn)較為理想的控溫較果。系統(tǒng)采用的固態(tài)繼電器是TOSHIBA的TSSl6J4lS。系統(tǒng)選用了PID調(diào)節(jié)器。當(dāng)電阻爐的溫度一旦越限,PID調(diào)節(jié)器使固態(tài)繼電器TSSl6J4lS接通或斷開,從而實現(xiàn)控制加熱器,使電阻爐溫度被控制在設(shè)定的溫度范圍內(nèi)。
(3)以太網(wǎng)接口電路設(shè)計
系統(tǒng)的以太網(wǎng)功能是通過ZNE-100T模塊實現(xiàn)的。ZNE-100T是周立功公司開發(fā)的一款嵌入式以太網(wǎng)轉(zhuǎn)串口模塊,它內(nèi)部集成了TCP/IP協(xié)議,配有32位ARM7CPU、16KB RAM、128KB FLASH和10M以太網(wǎng)接口,支持RS-232和RS-485接口,支持動態(tài)或靜態(tài)獲取IP地址,有TCP Server,TCP Client,UDP,Real COM driver,Group Mode等多種工作方式,可使用網(wǎng)頁瀏覽器進行配置,提供通用配置函數(shù)庫,方便用戶使用VC、VB、Delphi和C++Builder開發(fā)應(yīng)用程序。由于ZNE一100T以太網(wǎng)模塊能夠?qū)崿F(xiàn)串口設(shè)備和以太網(wǎng)設(shè)備之間數(shù)據(jù)的透明傳輸,利用它可以輕松完成嵌入式設(shè)備的網(wǎng)絡(luò)功能。ZNE-100T以太網(wǎng)模塊的波特率、開始位、停止位以及工作方式通過配置軟件來設(shè)計。在本系統(tǒng)中,設(shè)置其波特率為9600b/s,開始位為1位,停止位為1位,工作方式為TCP Sever。
由于AT89S52單片機本身提供了一組全雙工串行傳輸口,由TXD引腳來傳送串行數(shù)據(jù),而由RXD引腳來接收數(shù)據(jù),可是其工作邏輯電平皆為TTL電平(0V,5V)。而ZNE-100T模塊配置的是RS-232標(biāo)準(zhǔn)串行接口,電平為(+12V,-12V),二者的電氣規(guī)范不一致,因此要完成單片機與PC機的數(shù)據(jù)通信,必須對單片機輸出的TTL電平進行電平轉(zhuǎn)換。本系統(tǒng)采用MAXIM公司生產(chǎn)的MAX232電平轉(zhuǎn)換芯片來實現(xiàn)RS-232標(biāo)準(zhǔn)接口通信。
(4)控制電路
驅(qū)動電路采用繼電器驅(qū)動方式。通過控制繼電器在控制周期內(nèi)通斷的時間,實現(xiàn)對加熱器的開關(guān)控制。從而實現(xiàn)控制溫度。由單片機I/O口輸出的控制信號,經(jīng)NPN晶體管放大,驅(qū)動繼電器工作。
(5)告警電路
本設(shè)計采用蜂鳴器告警電路,它由晶體管和蜂鳴器組成。由單片機I/O口輸出信號控制晶體管的導(dǎo)通或截止,晶體管導(dǎo)通,則蜂鳴器告警。
4 溫度監(jiān)控的實現(xiàn)
系統(tǒng)工作時先由使用者設(shè)定預(yù)期達到的兩位溫度值(該值為十進制,單位為攝氏度,范圍35℃~80℃),溫度值輸入后,打開電源,單片機自動復(fù)位,進行初始化,這時LED顯示器顯示設(shè)定溫度,以便操作人員核對設(shè)定溫度,然后溫度檢測電路將測點的溫度輸入單片機,經(jīng)軟件濾波后作為實測溫度,此后顯示器將一直顯示實測溫度。本系統(tǒng)的溫度設(shè)置也可通過遠程監(jiān)控端的上位PC機設(shè)定,上位PC機通過ZNE一100T模塊,將給定量和各設(shè)定參數(shù)傳遞給AT89S52單片機,DSl8820溫度傳感器也將現(xiàn)場實時檢測得到的電阻爐的溫度傳遞給AT89S52單片機,AT89S52單片機獲得DSl8820溫度傳感器傳送的溫度后經(jīng)主程序分析,并把它與設(shè)定值比較,若實測溫度高于設(shè)定溫度時,則通過驅(qū)動電路關(guān)上加熱器并告警;若實測溫度低于設(shè)定溫度時,則通過驅(qū)動電路打開加熱器并告警;若在設(shè)定溫度范圍內(nèi),則加熱器狀態(tài)不變。
5 系統(tǒng)軟件設(shè)計
系統(tǒng)采用AT89S52作為核心處理器件,把經(jīng)過DSl8820現(xiàn)場實時采集到的溫度數(shù)據(jù),存入AT89S52的內(nèi)部數(shù)據(jù)存儲器,送液晶顯示,并與預(yù)先設(shè)定值進行比較,然后由單片機輸出信號去控制加熱器。進行溫度控制程序的設(shè)計應(yīng)考慮如下幾個問題:·實時采集溫度;·溫度顯示;·與上位PC機通信程序;·越限告警和處理。軟件設(shè)計主要有:主程序、初值設(shè)定子程序、溫度讀取子程序、液晶顯示子程序和輸出控制子程序等。初值設(shè)定子程序完成對溫度初值的設(shè)定及數(shù)據(jù)保存;溫度讀取子程序完成對溫度傳感器數(shù)據(jù)的讀取,并通過液晶顯示子程序顯示溫度值;輸出控制子程序則根據(jù)溫度的數(shù)值完成對輸出口的控制。AT89S52的具體軟件主程序和串口通信中斷程序分別如圖3和圖4所示。
在以太網(wǎng)通信中,PC機為主機,單片機為從機。單片機與ZNE-100T模塊之間采用RS-232串行接口,通信波特率為9600b/s,數(shù)據(jù)幀格式為l位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗位。
6 遠程監(jiān)控端的軟件設(shè)計
遠程監(jiān)控端的管理軟件是采用Visual Basic 6.0V為開發(fā)設(shè)計語言,進行程序編寫,以Microsoft Access數(shù)據(jù)庫格式存儲數(shù)據(jù)。該系統(tǒng)可運行于Windows操作系統(tǒng)平臺上,方便以后的修改和使用。主要由通信控制部分、串口參數(shù)設(shè)定部分、采集數(shù)據(jù)寫入數(shù)據(jù)庫部分、采集數(shù)據(jù)顯示及告警顯示部分和數(shù)據(jù)庫維護部分等組成。遠程監(jiān)控端數(shù)據(jù)庫是由Access軟件生成的,包括三個表:表1是保存采集數(shù)據(jù)表,表2是保存操作人員及密碼表,表3是保存各監(jiān)測地址。遠程監(jiān)控端的應(yīng)用軟件提供了一個良好的界面,使維護人員能通過界面上的數(shù)據(jù)表方便地觀測各遠程監(jiān)測點的工作狀態(tài),通過菜單對全系統(tǒng)進行有效的維護,其組成框圖如圖5所示。
遠程監(jiān)控端的部分軟件功能如下:
(1)通信控制部分軟件主要負責(zé)監(jiān)視串口,接收來自單片機的字符或向單片機發(fā)送字符。
(2)采集溫度顯示及告警顯示部分軟件主要是在主界面上顯示接收的監(jiān)視溫度數(shù)據(jù)。當(dāng)監(jiān)視現(xiàn)場的采集溫度超過告警界限時,在主界面告警面板上顯示告警地點及告警內(nèi)容。
(3)采集溫度寫入數(shù)據(jù)庫部分軟件負責(zé)將接收的信息字符解碼,提取出時間、地點及采集的溫度數(shù)據(jù),并分析上述數(shù)據(jù)的合法性,如果合法則存入數(shù)據(jù)庫的表。
(4)串口參數(shù)設(shè)定部分軟件負責(zé)設(shè)定使用哪個串口,串口的波特率、校驗位、停止位。
7 結(jié)語
本文以AT89S52單片機為核心,利用ZNE-100T以太網(wǎng)模塊,設(shè)計了一個簡單實用的以太網(wǎng)遠程監(jiān)控系統(tǒng),經(jīng)實驗驗證,數(shù)據(jù)通信正常,檢測數(shù)據(jù)完全符合系統(tǒng)設(shè)計的要求。由于該系統(tǒng),硬件簡單、成本低、集成度高、穩(wěn)定性好、調(diào)試方便以及抗干擾能力強,并且能實現(xiàn)溫度的遠程自動控制,具有一定的實用價值。