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