基于zigbee 的電磁流量計(jì)監(jiān)測(cè)方案系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)基于zigbee 的電磁流量計(jì)監(jiān)測(cè)方案系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
摘要: 以cc2430 單片機(jī)作為無(wú)線節(jié)點(diǎn)的核心設(shè)計(jì), 介紹一種基于zigbee 技術(shù)的無(wú)線電磁流量計(jì)采集數(shù)據(jù)的監(jiān)控方法. 重點(diǎn)介紹了電磁流量計(jì)的監(jiān)測(cè)系統(tǒng)設(shè)計(jì), zigbee 與電磁流量計(jì)的通信及網(wǎng)絡(luò)通信服務(wù).
關(guān).. 鍵.. 詞: 電磁流量計(jì); zigbee; 智能監(jiān)控; 低功耗
電磁流量計(jì)在測(cè)量過(guò)程中不受被測(cè)介質(zhì)溫度、黏度、密度等因素影響, 具有測(cè)量速度快、精度高、測(cè)量口徑寬、輸出線性度好, 與被測(cè)介質(zhì)不接觸、耐腐蝕、抗磨損, 流體壓力損失小等優(yōu)點(diǎn), 因而廣泛應(yīng)用于造紙廠紙漿、助劑、水等流體的測(cè)量. 傳統(tǒng)的電磁流量計(jì)的數(shù)據(jù)是通過(guò)有線的方式傳送, 具有布線麻煩、設(shè)備隨意移動(dòng)性不強(qiáng)等缺點(diǎn). 隨著射頻技術(shù)、集成電路技術(shù)的發(fā)展, 無(wú)線通信功
能的實(shí)現(xiàn)越來(lái)越容易, 數(shù)據(jù)傳輸速率也越來(lái)越快. 并且逐漸達(dá)到可與有線網(wǎng)絡(luò)相媲美的水平. 本研究中提出的基于zigbee 技術(shù)的電磁流量計(jì)的監(jiān)測(cè)方案, 不必鋪設(shè)電纜, 可以節(jié)省費(fèi)用和時(shí)間. 數(shù)據(jù)經(jīng)采集后由監(jiān)測(cè)中心對(duì)網(wǎng)絡(luò)采集的數(shù)據(jù)統(tǒng)一管理和分析. 該無(wú)線傳感器網(wǎng)絡(luò)將采集數(shù)據(jù)傳輸?shù)絲ig.. bee 網(wǎng)關(guān), 再通過(guò)以太網(wǎng)發(fā)送到監(jiān)測(cè)中心主機(jī), 也可傳送數(shù)據(jù)到手抄器進(jìn)行顯示, 并可與上位機(jī)或手抄器進(jìn)行參數(shù)設(shè)置.
1 .. 系統(tǒng)組成
整個(gè)系統(tǒng)按照功能可以分為3 部分: 人機(jī)操作部分, 網(wǎng)關(guān)和終端設(shè)備. 人機(jī)操作部分指的是操作員在pc 機(jī)上通過(guò)組態(tài)軟件進(jìn)行操作的部分; 網(wǎng)關(guān)包括了zigbee 無(wú)線模塊中的協(xié)調(diào)器, 作為無(wú)線協(xié)議與有線協(xié)議的轉(zhuǎn)換部分, 并承擔(dān)系統(tǒng)管理的部分功能; 終端設(shè)備部分指的是連接了電磁流量計(jì)的無(wú)線zigbee 模塊, 起到通信卡的作用, 負(fù)責(zé)與現(xiàn)場(chǎng)電磁流量計(jì)進(jìn)行數(shù)據(jù)交換, zigbee 數(shù)據(jù)的打包、解包、數(shù)據(jù)傳輸, 以及與時(shí)間同步等. 與現(xiàn)場(chǎng)電磁流量計(jì)的cpu 通過(guò)串口協(xié)議進(jìn)行數(shù)據(jù)交換, 與協(xié)調(diào)器采用確認(rèn)機(jī)制保證可靠的數(shù)據(jù)傳輸. 監(jiān)測(cè)中心主機(jī)通過(guò)以太網(wǎng)與zigbee 網(wǎng)關(guān)通信, 實(shí)時(shí)顯示每個(gè)流量節(jié)點(diǎn)的信息. 手持設(shè)備作為可選的配置工具, 主要是便攜操作, 方便隨時(shí)讀取數(shù)據(jù)和參數(shù)整定. 圖1 為系統(tǒng)結(jié)構(gòu). 圖1.. 系統(tǒng)結(jié)構(gòu)
1. 1 .. 人機(jī)操作部分
根據(jù)工業(yè)現(xiàn)場(chǎng)中對(duì)監(jiān)控對(duì)象的需求, 操作員在pc 機(jī)上通過(guò)組態(tài)軟件建立的工程, 可以模擬工業(yè)環(huán)境中的基本操作對(duì)象, 比如溫度監(jiān)測(cè), 報(bào)警和控制等. 在一個(gè)自動(dòng)監(jiān)控系統(tǒng)中, 投入運(yùn)行的組態(tài)軟件是系統(tǒng)的數(shù)據(jù)收集/ 處理中心、遠(yuǎn)程監(jiān)視中心和數(shù)據(jù)轉(zhuǎn)發(fā)中心, 處于運(yùn)行狀態(tài)的組態(tài)軟件與各種控制、檢測(cè)設(shè)備共同構(gòu)成快速響應(yīng)/ 控制中心. 本研究中采用的組態(tài)軟件是項(xiàng)目組自主研發(fā)的無(wú)線組態(tài)軟件, 它的使用對(duì)象是自動(dòng)化設(shè)計(jì)人員和現(xiàn)場(chǎng)操作工程師. 自動(dòng)化設(shè)計(jì)人員完成開(kāi)發(fā)環(huán)境的相關(guān)操作, 包括工程管理、功能塊組態(tài)、調(diào)度組態(tài)和下載組態(tài)信息到現(xiàn)場(chǎng)設(shè)備等. 現(xiàn)場(chǎng)工程師完成圖形開(kāi)發(fā)環(huán)境界面的設(shè)計(jì), 對(duì)無(wú)線控制網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)監(jiān)控. 圖
2 為組態(tài)軟件用例. 圖2 .. 組態(tài)軟件用例
1. 2 .. 網(wǎng)關(guān)部分
網(wǎng)關(guān)由下列部分組成: 內(nèi)部集成符合ieee 802. 15. 4 標(biāo)準(zhǔn)的2. 4ghz 的射頻( rf) 收發(fā)器的cc2430 無(wú)線單片機(jī); 采用arm7 核的at91r4008 微控制器; ax88796 以太網(wǎng)控制器芯片等. at91r4008 微控制器沒(méi)有內(nèi)嵌入flash 存儲(chǔ)器, 所以在外部擴(kuò)展一個(gè)flash 存儲(chǔ)器sst39vf160, 網(wǎng)關(guān)設(shè)計(jì)電路如圖3 所示. 圖3.. zigbee 網(wǎng)關(guān)設(shè)計(jì)框圖
1. 3 .. 終端設(shè)備部分
智能電磁流量計(jì)是該系統(tǒng)中的終端部分, 即放置在現(xiàn)場(chǎng)環(huán)境中, 負(fù)責(zé)流量相關(guān)數(shù)據(jù)的獲取, 經(jīng)cc2430 處理及發(fā)送到網(wǎng)關(guān).
1. 3. 1 .. 硬件組成
cc2430 單片機(jī)是作為通信卡部分, cc2430 芯片整合了zigbee 射頻前端、內(nèi)存和微控制器. 它使用增強(qiáng)的8051mcu 核的性能是工業(yè)標(biāo)準(zhǔn)8051 核性能的8 倍, 運(yùn)算速度*可以達(dá)到數(shù)據(jù)處理要求, 具有128 kb 可編程閃存和8 kb 的ram 滿(mǎn)足這個(gè)系統(tǒng)對(duì)flash 存儲(chǔ)容量的要求. 芯片采用0. 18 ..m cmos 工藝生產(chǎn), 工作時(shí)的電流損耗為27 ma; 在接收和發(fā)射模式下, 電流損耗分別低于27 ma 或25 ma. cc2430 的休眠模式和轉(zhuǎn)換到主動(dòng)模式的超短時(shí)間特性, 具有極低的功耗. cc2430 的高集程度, 其外圍電路非常簡(jiǎn)單, 只需要數(shù)量很少而且廉價(jià)的外圍元件, 即可完成無(wú)線傳感器節(jié)點(diǎn)的數(shù)據(jù)傳輸和處理功能, 因而大大降低了成本. 所以其與電磁流量計(jì)的通信也非常簡(jiǎn)單, 只是串口連接, 自身的外圍電路也很少. 節(jié)點(diǎn)的cc2430 采集到電磁流量計(jì)的數(shù)據(jù)后, 利用zigbee 協(xié)議, 對(duì)數(shù)據(jù)進(jìn)行打包發(fā)送到zigbee 網(wǎng)絡(luò)上, 網(wǎng)關(guān)部分負(fù)責(zé)與節(jié)點(diǎn)進(jìn)行交互式的數(shù)據(jù)傳輸, 實(shí)現(xiàn)對(duì)流量計(jì)的可靠、實(shí)時(shí)監(jiān)測(cè).
1. 3. 2 .. 通信部分
圖4.. cc2430 與電磁流量計(jì)的通信連接.. .. cc2430 與電磁流量計(jì)間運(yùn)用串口進(jìn)行通信. 串口程序的設(shè)計(jì)應(yīng)根據(jù)實(shí)際的需要進(jìn)行設(shè)計(jì), 電磁流量計(jì)原本采取的是協(xié)議, 如在先建立連接后再發(fā)送命令讀取相應(yīng)數(shù)據(jù), 正向流量累積、反向流量累積及凈流量、流速等, 串口收發(fā)程序?yàn)? / / 串口接收程序interrupt- func urx0- service- irq( void) { byte x, y; hal- enter- interrupt( ) ; / / 關(guān)中斷serio- rxhead+ + ; if ( serio- rxhead = = lrwpan- async- rxbufsize) serio- rxhead= 0; .. .. if(famendatahead = = 15)famendatahead = 0; x = serio- rxhead; y = u0dbuf; g- liuliang[ liuliang- head] = y; usrreciflag = 1; count3flag = 1; liuliang- head + + ; hal- exit- interrupt( ) ; / / 開(kāi)中斷}/ / 發(fā)送連接命令void liuliangsendlinkcmd( void) { uint16 crc; crc = crccheck(&famenlinkcmd[ 0] , 1) ; liulianglinkcmd[ 1] = crc > > 8; liulianglinkcmd[ 2] = crc& 0xff; sendcmd(&famenlinkcmd[ 0] , 3) ; / / 串口發(fā)送數(shù)據(jù)}/ / 讀取相應(yīng)數(shù)據(jù)void liuliangreadcmd(uint16 addr- object, byte length) { uint16 crc; diandongreadcmd[ 0] = 0x01; diandongreadcmd[ 1] = addr- object > > 8; diandongreadcmd[ 2] = addr- object&0xff; if (addr- object = = a- liuliang- liuliang) {usrtxdata[ 7] = 0x01; / / 流量, 標(biāo)志數(shù)據(jù)類(lèi)型字段}else if ( addr- object = = a- liuliang- paliu.. liang){usrtxdata[ 7] = 0x02; / / 正向累計(jì)流量}else if ( addr- object = = a- liuliang- naliu..
liang){usrtxdata[ 7] = 0x03; / / 反向累計(jì)流量}diandongreadcmd[ 3] = length; crc = crccheck(&diandongreadcmd[ 0] , 4) ; diandongreadcmd[ 4] = crc> > 8; diandongreadcmd[ 5] = crc&0xff; sendcmd(&diandongreadcmd[ 0] , 6) ; }
2 .. 系統(tǒng)實(shí)施
控制主機(jī)通過(guò)以太網(wǎng)發(fā)送命令到網(wǎng)關(guān), 網(wǎng)關(guān)經(jīng)過(guò)解析包, 再發(fā)送命令到網(wǎng)關(guān)內(nèi)的協(xié)調(diào)器上( 數(shù)據(jù)格式采用zigbee) , 協(xié)調(diào)器接收到數(shù)據(jù)后, 經(jīng)zig.. bee 無(wú)線網(wǎng)絡(luò), 通過(guò)相應(yīng)的短地址, 發(fā)送到終端設(shè)備; 終端設(shè)備進(jìn)行解包, 然后根據(jù)命令進(jìn)行相應(yīng)的動(dòng)作, 發(fā)送相應(yīng)的響應(yīng)數(shù)據(jù)到網(wǎng)關(guān); 網(wǎng)關(guān)解析包, 進(jìn)行處理后, 再發(fā)送到上位機(jī); 數(shù)據(jù)通過(guò)上位機(jī)的界面顯示出來(lái). 這就是整個(gè)系統(tǒng)操作時(shí)的流程. 系統(tǒng)設(shè)計(jì)的程序部分大致分為: 設(shè)備聲明, 讀寫(xiě)設(shè)備屬性, 讀取數(shù)據(jù)和控制校正數(shù)據(jù).
2. 1 .. 設(shè)備聲明
為獲取所需要的數(shù)據(jù), 首先由現(xiàn)場(chǎng)操作員在pc 機(jī)上建立工程以監(jiān)測(cè)需要監(jiān)測(cè)的設(shè)備; 然后攜帶有協(xié)調(diào)器的網(wǎng)關(guān)發(fā)出設(shè)備聲明到pc 機(jī), 表示網(wǎng)關(guān)上線; 然后終端設(shè)備開(kāi)啟, 發(fā)出設(shè)備聲明到網(wǎng)關(guān), 進(jìn)而轉(zhuǎn)發(fā)到pc 機(jī)的工程上, 表明終端設(shè)備上線.
2. 2 .. 讀寫(xiě)設(shè)備屬性為獲