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