江蘇省郵電規(guī)劃設(shè)計院有限公司 張德景
西安創(chuàng)聯(lián)電氣科技有限公司 錢 璐
江蘇省郵電規(guī)劃設(shè)計院有限公司 朱明明 顧 晨
隨著“互聯(lián)網(wǎng)+”口號的提出,必將迎來通信機房大規(guī)模的新建和升級。如果通信機房中溫度過高,將導(dǎo)致設(shè)備故障引起通信中斷,嚴(yán)重時設(shè)備可能損毀。為了保證通信網(wǎng)絡(luò)安全穩(wěn)定地運行,設(shè)計一種實時溫度監(jiān)測系統(tǒng)顯得尤為重要。
本文提出一種串口數(shù)據(jù)通信協(xié)議[1],無論下位機何種方式采集數(shù)據(jù),只要遵循文中的通信協(xié)議,將采集到的數(shù)據(jù)進行打包并通過串口傳遞給上位機PC,上位機PC采用圖形化編程軟件LabVIEW開發(fā)系統(tǒng)[2]完成對數(shù)據(jù)包的處理,實現(xiàn)了對溫度數(shù)據(jù)的波形實時顯示、存儲和報警等功能,降低了溫度監(jiān)測系統(tǒng)的開發(fā)成本,提高了該系統(tǒng)的智能化。
本系統(tǒng)主要包含下位機數(shù)據(jù)采集部分和上位機溫度數(shù)據(jù)監(jiān)測部分。下位機又包含溫度傳感器和數(shù)據(jù)轉(zhuǎn)換處理部分,溫度傳感器主要完成各個點實時溫度數(shù)據(jù)的采集;數(shù)據(jù)轉(zhuǎn)換處理部分使用STC89C51單片機及外圍電路組成[3-5],主要完成對溫度傳感器采集到的數(shù)據(jù)進行初步的轉(zhuǎn)換,并對數(shù)據(jù)按照規(guī)定的串口協(xié)議進行打包處理和串口輸出到上位機;上位機對下位機傳遞的數(shù)據(jù)包根據(jù)規(guī)定的數(shù)據(jù)協(xié)議進行解析,分離出溫度數(shù)據(jù),并對數(shù)據(jù)進行實時波形顯示、上下限告警、儲存及基本溫度數(shù)據(jù)處理,如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
軟件設(shè)計主要涉及上位機界面的編程和下位機從控CPU采集數(shù)據(jù)的編程兩部分,下位機采集數(shù)據(jù)的打包部分按照文中規(guī)定的協(xié)議進行,其他初始化與初始數(shù)據(jù)的處理根據(jù)不同的傳感器和從控CPU進行編程實現(xiàn)。文中采用LabVIEW圖形化編程語言編寫上位機主控界面和數(shù)據(jù)處理界面系統(tǒng)[6-7],主要包括串口配置、串口數(shù)據(jù)讀取、數(shù)據(jù)包解析、數(shù)據(jù)存儲、數(shù)據(jù)顯示五個模塊,這五個模塊相互之間協(xié)作完成實時溫度的監(jiān)測;如圖2所示。
通信協(xié)議是通信的雙方所達成的一種約定,其中統(tǒng)一規(guī)定數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等問題,且在雙方的通信中必須共同遵守[7]。為實現(xiàn)下位機采集的實時數(shù)據(jù)能夠快速準(zhǔn)確的傳送到上位機主控PC上,并且為使得該監(jiān)測系統(tǒng)達到通用性的目的,因此規(guī)定一種簡單有效的串口通信協(xié)議就必不可少。文中串口通信協(xié)議的制定是基于面向連接的服務(wù)的,可以按層次方式進行組織,串口通信協(xié)議體系結(jié)構(gòu)如圖3所示。
圖2 監(jiān)測軟件結(jié)構(gòu)圖
圖3 串口通信協(xié)議體系結(jié)構(gòu)圖
握手幀用于驗證上位機主控PC與下位機設(shè)備間是否正常通信。上位機串行通信接口定時向下位機設(shè)備發(fā)送詢問幀,若上位機與下位機設(shè)備硬件連接正常,且下位機設(shè)備正常工作,則下位機設(shè)備在收到詢問幀后,向上位機主控PC發(fā)送應(yīng)答幀,上位機收到應(yīng)答幀,通過和校驗正確后,雙方握手成功,即可以進行下一步的數(shù)據(jù)采集控制及數(shù)據(jù)傳輸。握手幀格式格式為:
幀頭 設(shè)備地址 詢問標(biāo)識 和校驗 幀尾FFH 00H—FFH ABH 1字節(jié) FEH
設(shè)備地址占用一個字節(jié),用于區(qū)分多個下位機設(shè)備,一個設(shè)備一個固定的地址,地址范圍為00H~FFH,和校驗是為了防止數(shù)據(jù)包在傳輸過程受到干擾,使得某些位改變,造成數(shù)據(jù)錯誤,經(jīng)過和校驗就可驗證傳送的數(shù)據(jù)包是否正確,若不正確下位機請求上位機重新發(fā)送查詢幀,直到接收到正確的查詢幀,下位機向上位機發(fā)送應(yīng)答幀,格式與查詢幀格式相同。
控制幀是為了完成相應(yīng)的控制功能而制定的,控制幀可以實現(xiàn)上位機對設(shè)備的控制,如讀寫數(shù)據(jù)、發(fā)送請求等。上位機向下位機設(shè)備發(fā)送控制幀,下位機執(zhí)行控制幀中的命令,并向上位機發(fā)送響應(yīng)幀,上位機接收到響應(yīng)幀才可以進行下一步操作。文中控制幀主要用于上位機主控PC對下位機設(shè)備數(shù)據(jù)采集的控制,用戶在應(yīng)用中可以根據(jù)幀格式,增加其他的控制指令??刂茙袷綖椋?/p>
幀頭 幀長度 設(shè)備地址 控制命令標(biāo)識 和校驗 幀尾FFH 00H~FFH 00H~FFH 2字節(jié) 1字節(jié) FEH
響應(yīng)幀格式為:
幀頭 設(shè)備地址 幀尾FFH 00H~FFH FEH
這里以采集數(shù)據(jù)為例來說明控制幀,上位機向地址為01H的下位機設(shè)備發(fā)送采集數(shù)據(jù)的控制幀“FF 05 01 CJ 11 FE”,下位機接收到控制幀,開始控制傳感器采集溫度數(shù)據(jù),同時向上位機發(fā)送響應(yīng)幀“FF 01 FE”,上位機接收到響應(yīng)幀,即可進行下面的操作。
在上位機主控PC與下位機設(shè)備握手成功,且上位機已向下位機設(shè)備發(fā)送控制采集數(shù)據(jù)幀,并接收到響應(yīng)幀后,上位機即可向下位機設(shè)備發(fā)送數(shù)據(jù)請求,下位機收到請求后,將傳感器采集到的溫度數(shù)據(jù)初步處理,然后按照數(shù)據(jù)幀格式打包,并發(fā)送給上位機主控PC。數(shù)據(jù)幀包含幀頭、設(shè)備地址、數(shù)據(jù)區(qū)長度、數(shù)據(jù)區(qū)、檢驗和及幀尾六個部分,幀頭、幀尾和設(shè)備地址與前面的控制幀保持一致,與前面兩類幀格式比較,數(shù)據(jù)幀增加了數(shù)據(jù)區(qū)長度和數(shù)據(jù)區(qū),增加數(shù)據(jù)區(qū)長度主要目的是在上位機數(shù)據(jù)包解析過程中防止數(shù)據(jù)與其他字符混淆,造成數(shù)據(jù)錯誤。數(shù)據(jù)區(qū)長度為1個字節(jié),數(shù)據(jù)區(qū)最多可以占用256個字節(jié)。數(shù)據(jù)幀格式為:
幀頭 設(shè)備地址 數(shù)據(jù)區(qū)長度 數(shù)據(jù)區(qū) 校驗和 幀尾FFH 00H~FFH 00H~FFH n個字節(jié) 1字節(jié) FEH
為了驗證設(shè)計溫度監(jiān)測系統(tǒng)的可行性,文中選擇數(shù)字溫度濕度傳感器SHT1x作為終端現(xiàn)場溫度數(shù)據(jù)的采集,采集到的溫度數(shù)據(jù)經(jīng)點到點Zigbee無線通信系統(tǒng)[8-10]CC2530模塊作簡單處理并通過串口傳給上位機主控PC。下位機無線溫度數(shù)據(jù)采集部分由多個Zigbee模塊CC2530[11]組成,其中一個將其配置成協(xié)調(diào)器,其余的配置成終端節(jié)點。協(xié)調(diào)器用于完成上電啟動、配置網(wǎng)絡(luò)、控制終端采集數(shù)據(jù)及接收終端數(shù)據(jù)并將其通過串口傳遞給上位機PC等功能,終端節(jié)點上帶有溫度濕度傳感器SHT1x,完成現(xiàn)場溫度數(shù)據(jù)的采集及數(shù)據(jù)的打包傳送。測試系統(tǒng)構(gòu)成如圖4所示。
圖4 測試系統(tǒng)圖
圖5 溫度監(jiān)測軟件界面
數(shù)據(jù)接收處理功能是是測試中最重要的環(huán)節(jié),主要包括數(shù)據(jù)包解析、溫度數(shù)據(jù)的實時顯示、儲存與告警功能,檢測流程為,上位機收到下位機回傳的控制響應(yīng)幀后,發(fā)送數(shù)據(jù)幀到協(xié)調(diào)器,協(xié)調(diào)器控制對應(yīng)的目標(biāo)地址終端器將采集數(shù)據(jù)按照數(shù)據(jù)幀格式打包,以無線形式傳送給協(xié)調(diào)器,協(xié)調(diào)器再經(jīng)串口將數(shù)據(jù)包傳輸?shù)缴衔粰C,上位機接收到數(shù)據(jù)包,并對其進行解析,從中截取出數(shù)據(jù)段,并對數(shù)據(jù)進行計算轉(zhuǎn)換,然后輸送到界面的波形圖表中顯示,并判斷是否超出限定溫度值,若超出,則界面報警燈點亮,提示溫度超標(biāo),如圖5所示。同時還可應(yīng)用LABVIEW中的文件讀寫函數(shù),可將數(shù)據(jù)保存成文件格式,以便事后查看并分析數(shù)據(jù)。
本文設(shè)計了基于LabVIEW的遠(yuǎn)程通信機房溫度監(jiān)測系統(tǒng),監(jiān)測界面美觀、操作便捷。規(guī)定一種簡單有效地串口通信協(xié)議,使得下位機設(shè)備與上位機進行準(zhǔn)確可靠的信息傳輸。經(jīng)測試,該系統(tǒng)既可進行多點和單點溫度測試,還可進行有線和無線連接溫度測試,且系統(tǒng)具有操作簡便、控制靈活[10]和易于擴展等優(yōu)點,因此可以廣泛適用于通信機房溫度的監(jiān)測,可以直觀得看到溫度變化趨勢圖,還可以對已保存溫度值進行事后數(shù)據(jù)分析。
[1]陳傳波,杜娟,張智杰.WIN32下基于RS232C協(xié)議的串口通信方法及應(yīng)用研究[J].南昌大學(xué)學(xué)報,2005,27(3):71-75.
[2]唐麗嬋,齊亮,王慶東,等.基于LabVIEW的無線遠(yuǎn)程溫度監(jiān)控系統(tǒng)[J].上海電氣技術(shù),2009,2(1):21-24.
[3]薛玲,孫曼,張志會,等.基于單片機AT 89S51的溫濕度控制儀[J].化工自動化及儀表,2010,37(7):66-69.
[4]邢睦紳.基于單片機的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].信息通信,2014,12:56-57.
[5]朱芳.基于單片機的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].重慶科技學(xué)院學(xué)報(自然科學(xué)版),2009,11(2):95-97.
[6]韓英,李景濤.基于LabVIEW的溫度監(jiān)控系統(tǒng)設(shè)計[J].機械工程與自動化,2010,2(2):175-177.
[7]宋振龍,于海磊,陳鋒,等.基于LabVIEW的地源熱泵機組設(shè)備遠(yuǎn)程監(jiān)控系統(tǒng)[J].電子測試,2008,3(3):43-46.
[8]焦尚彬,宋丹,張青,等.基于ZigBee無線傳感器網(wǎng)絡(luò)的煤礦監(jiān)測系統(tǒng)[J].電子測量與儀器學(xué)報,2013,27(5):436-441.
[9]韓華峰,杜克明,孫忠富,等.基于ZigBee網(wǎng)絡(luò)的溫室環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計與應(yīng)用[J].農(nóng)業(yè)工程學(xué)報,2009,25(7):158-163.
[10]梁光勝,劉丹娟,郝福珍,等.基于CC2430的ZigBee無線網(wǎng)絡(luò)節(jié)點設(shè)計[J].電子設(shè)計工程,2010,18(2):15-18.
[11]章偉聰,俞新武,李忠成,等.基于CC2530及ZigBee協(xié)議棧設(shè)計無線網(wǎng)絡(luò)傳感器節(jié)點[J].計算機系統(tǒng)應(yīng)用,2011,20(7):184-187.