陳昕 劉中晅 韓兆福
中國人民解放軍裝甲兵工程學院 北京 100072
城市電力,熱力,氣象,以及河流污染管理等行業(yè),因監(jiān)控站點之間距離遠、分布分散,往往需要布置大量的人力、物力用于管理、監(jiān)控及與中心管理站的聯(lián)絡,少數(shù)實現(xiàn)自動化管理的城市多基于電話線、MODEM,或是無線電臺辦法,成本高、效率低,而且對于無法鋪設電話線的苛刻環(huán)境,又需要定時監(jiān)控上報數(shù)據(jù)的單位,依靠已往的辦法難以實現(xiàn)。GPRS無線數(shù)據(jù)通信網(wǎng)絡的出現(xiàn),為上述實現(xiàn)提供了可能。
通用分組無線業(yè)務(General Packet Radio Service,GPRS)。GSM網(wǎng)絡覆蓋范圍廣并且通信可靠,GPRS網(wǎng)絡在現(xiàn)有的GSM網(wǎng)絡的基礎上引入分組交換功能,支持TCP/IP協(xié)議,可以與分組數(shù)據(jù)網(wǎng)(Internet等)直接互通,隨時在線,而且計費采用比較合理的按流量計費方式,特別適合于需頻繁傳送小流量數(shù)據(jù)的應用場合。如城市電力,熱力,氣象,以及河流污染管理等行業(yè)。
本文設計的遠程監(jiān)控系統(tǒng),是以89C58單片機和PIML GPRS-MODEM(GPRS模塊)為核心的,能夠?qū)崿F(xiàn)了傳感器數(shù)據(jù)采集,本地實時顯示,基于Internet的遠程監(jiān)控等功能。本文側(cè)重論述系統(tǒng)的總體設計,分系統(tǒng)的組成功能。
系統(tǒng)總體由四部分組成:一是基于89C58單片機為核心的嵌入式前端采集系統(tǒng)、二是基于GPRS模塊的通信系統(tǒng)、三是基于Internet的監(jiān)控中心、四是遠程執(zhí)行單元。
圖1 遠程監(jiān)控系統(tǒng)框圖
系統(tǒng)結(jié)構(gòu)如圖1,整體工作過程是:以嵌入式微控器為核心的采集前端對分布式站點多路傳感器信息(輻射度、污染、報警信號、光、磁、溫度、氣壓、流量、速度等)實時采集,編碼;通過GPRS信道將實時監(jiān)測數(shù)據(jù)編碼,然后發(fā)送到WEB服務器(固定IP地址或有固定域名的網(wǎng)站),監(jiān)控中心接收包含時間、站點編碼、數(shù)據(jù)等信息;同時嵌入式微控采集前端實時接收監(jiān)控中心發(fā)送來的前端重啟、立即上傳數(shù)據(jù)、更改上傳周期、時間校準、控制執(zhí)行某種動作等命令,根據(jù)命令做出響應。例如:前端接收到更改數(shù)據(jù)上傳周期命令,由原來的一小時,改為3分鐘,則嵌入式微控采集前端將按照新的周期時間每隔3分鐘上傳一次采集數(shù)據(jù)。
前端采集系統(tǒng)的設計是整個系統(tǒng)的核心,單片機采用ST89C58,擴展了8路數(shù)碼管顯示,A/D轉(zhuǎn)換,D/A輸出的接口電路,日歷時鐘芯片,SRAM,與GPRS模塊通信的RS232接口等功能(如圖2)。
圖2 前端采集系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)采用多量程、8通道、12位高精度A/D轉(zhuǎn)換器MAX197芯片,實現(xiàn)對對傳感器電壓信號的采集。單片機將采集到的各路數(shù)據(jù)按固定格式編碼,編碼數(shù)據(jù)再加上由日歷時鐘芯片DS12C887提供年、月、日、時、分、秒數(shù)據(jù),和站點序號標識進一步混合編碼,形成固定格式的上傳數(shù)據(jù)。根據(jù)監(jiān)控中心的命令要求,定時上傳數(shù)據(jù)。SRAM用于存儲遠程監(jiān)控中心的IP地址,用于掉線重播。
GPRS通信模塊選用PIML GPRS-MODEM模塊,雙頻GSM/GPRS引擎,支持數(shù)據(jù)、語音、SMS和傳真?zhèn)鬏敚W(wǎng)絡通信支持基于TCP協(xié)議或UDP協(xié)議的數(shù)據(jù)傳輸。本系統(tǒng)采用TCP協(xié)議通信。單片機通過MAX232接口芯片實現(xiàn)與GPRS-MODEM模塊的電氣連接,使用AT命令實現(xiàn)與GPRS模塊的通信,實現(xiàn)將混合編碼傳向監(jiān)控中心,或是接收監(jiān)控中心的命令數(shù)據(jù)。圖3為單片機與GPRS模塊接口的電路圖,接口采用MAX232芯片,實現(xiàn)單片機與GPRS模塊串口的電平轉(zhuǎn)換。
圖3 單片機與GPRS的RS-232接口電路
基于WEB的監(jiān)控中心,實現(xiàn)對數(shù)據(jù)的接收,并向前端采集系統(tǒng)發(fā)布控制命令。監(jiān)控中心的服務程序是基于VC++6.0編程環(huán)境的,采用Socket套接字編程技術實現(xiàn)對遠程數(shù)據(jù)的收發(fā)處理。Socket網(wǎng)絡編程要重點處理好套接字的建立(Socket())、綁定(Bind())、監(jiān)聽(Listen())、接收(Accept())和讀(Recv())寫(Send())等幾個函數(shù)的使用。監(jiān)控中心發(fā)送自定義的8條命令,控制遠程前端采集。這8條命令為:①系統(tǒng)重新啟動命令;②數(shù)據(jù)立即上傳命令;③系統(tǒng)時間校準命令;④數(shù)據(jù)上傳頻率更改命令;⑤停止上傳數(shù)據(jù)命令;⑥繼續(xù)上傳數(shù)據(jù)命令;⑦改變輸出電壓值命令;⑧強制關閉GPRS—MODEN模塊命令。
如:③系統(tǒng)時間校準命令
命令格式:CMD+TIME 2007/05/08,19:24:30
命令作用:校準DS12C887實時時鐘芯片的時間后,上傳加有準確時間的數(shù)據(jù)串。
其他命令格式與上述類似,實現(xiàn)不同的功能。
圖4為監(jiān)控中心測試遠程數(shù)據(jù)收發(fā)的試驗程序。
圖4 監(jiān)控中心試驗服務程序界面
遠程執(zhí)行單元一般為電機,電動閥門等執(zhí)行單元,前端采集系統(tǒng)接收到監(jiān)控中心的執(zhí)行命令處理后,經(jīng)D/A單元輸出相應的電壓或電流信號,控制執(zhí)行單元工作。
本文側(cè)重論述了基于GPRS的遠程監(jiān)控系統(tǒng)的總體設計,與各分系統(tǒng)的結(jié)構(gòu)功能,對于單片機與GPRS模塊通信實現(xiàn)、前端采集系統(tǒng)軟硬件設計、監(jiān)控中心服務程序?qū)崿F(xiàn)、采用軟硬件濾波技術實現(xiàn)抗干擾、數(shù)據(jù)編碼、掉線重撥、前端采集數(shù)碼顯示等詳細技術解決方案,將在后續(xù)的文章中加以論述。
基于GPRS的遠程監(jiān)控系統(tǒng),充分的發(fā)揮了GSM網(wǎng)絡覆蓋廣的優(yōu)勢與GPRS數(shù)據(jù)傳輸服務的優(yōu)勢,可以廣泛的應用到城市電力,熱力,氣象,以及河流污染管理等行業(yè)當中,提高相應的自動化管理水平,大大降低運行成本,具有廣闊的應用前景。
[1]鐘章隊等.GPRS通用分組無線業(yè)務.北京:人民郵電出版社.2001.
[2]朱洪波等.通用分組無線業(yè)務(GPRS)技術與應用.人民郵電出版社.2004.
[3]戴佳等.51單片機C語言應用程序設計.電子工業(yè)出版社.2007.