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