基于nRF401芯片的多路消防栓無(wú)水監測系統設計
由于無(wú)線(xiàn)通信的特殊性,外部干擾使得誤碼率較高。因此,軟件設計首先要保證能夠識別噪聲和有效數據,通信協(xié)議的設計就顯得十分重要。設計中采用如下通信協(xié)議:
(1)數據發(fā)送使用查詢(xún)方式,接收使用中斷方式。
(2)數據幀包含幀首、幀尾、地址、數據及校驗部分,數據幀的格式如圖4所示。幀首采用雙字節0x55和0xAA,幀尾使用0x01結束;地址是用雙字節地址,共16b,地址分配上,各個(gè)電流采集模塊地址不相連,使其保持一定的容錯性;數據部分為一個(gè)字節;地址部分和數據部分使用16進(jìn)制ASCII送;幀的校驗部分使用CRC4校驗。本文引用地址:http://dyxdggzs.com/article/157709.htm
(3)接收方檢測到連續的0x550xAA字節,表示接收到有效的數據幀,如果幀校驗通過(guò),接收方根據命令請求后發(fā)送相應數據,若該幀結構非法,則丟棄該幀,不做任何處理。
(4)發(fā)送方在發(fā)送查詢(xún)請求后,將啟動(dòng)監控定時(shí)器并等待接收應答,如果在規定的時(shí)間內沒(méi)有收到相應的數據應答,發(fā)送方將重新發(fā)送請求,并進(jìn)行錯誤計數,以免數據丟失。如果錯誤計數達到一定值,發(fā)送方停止發(fā)送請求,進(jìn)入錯誤處理。
消防栓信息采集模塊軟件設計,當從機收到自己的地址并向主機應答后,轉為接收模式。如隨后一段時(shí)間內再沒(méi)有收到主機的查詢(xún)信號,則認為主機已經(jīng)正確接收到該從機發(fā)送回的應答信號,完成一次正確通信,從機轉為接收模式。消防栓信息采集模塊部分流程圖如圖5所示。
4 結 語(yǔ)
本系統充分考慮了環(huán)境對通信的干擾,在調試中發(fā)送數據時(shí),應首先嘗試不斷發(fā)送0X55AA,以檢驗數據收發(fā)的誤碼率,如果誤碼率校大,應對電路進(jìn)行重新設計。由于采用無(wú)線(xiàn)通信芯片nRF401,進(jìn)行多點(diǎn)數據采集十分方便、快捷。尤其適合對廠(chǎng)房、倉庫等復雜場(chǎng)所控制。
評論