<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于無線通信芯片的多路消防栓無水監(jiān)測系統(tǒng)設(shè)計(jì)

          基于無線通信芯片的多路消防栓無水監(jiān)測系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2011-10-14 來源:網(wǎng)絡(luò) 收藏

          消防給水系統(tǒng)是火災(zāi)控制重要設(shè)備,它能否正常發(fā)揮作用關(guān)系著人們的生命財(cái)產(chǎn)安全。但在實(shí)際應(yīng)用中,常出現(xiàn)消防栓被遮掩、水壓低等情況,更嚴(yán)重的是閥門誤操作或管道漏水造成消防栓無水。一旦發(fā)生火災(zāi),打開消防栓龍頭無水,消防人員和群眾無法及時(shí)撲滅火災(zāi),會(huì)使火災(zāi)嚴(yán)重程度升級(jí),造成生命財(cái)產(chǎn)重大損失。為此,不但要建設(shè)一個(gè)完善的消防給水系統(tǒng),更重要是要確保該系統(tǒng)的正常運(yùn)行,有一個(gè)正常的給水壓力。針對(duì)這種情況,本文設(shè)計(jì)介紹一種消防給水系統(tǒng)水壓是否正常的檢測系統(tǒng),用于檢測消防給水系統(tǒng)水壓是否正常,并給出顯示和報(bào)警。

          1 系統(tǒng)組成

          該系統(tǒng)由微機(jī)、通信處理模塊、單片機(jī)消防栓信息采集模塊等三大部分組成。系統(tǒng)的組成如圖1所示。

          上位機(jī)由PC機(jī)構(gòu)成,位于整個(gè)系統(tǒng)的最上層,主要負(fù)責(zé)控制和管理整個(gè)系統(tǒng)中的所有通信及對(duì)收集到的各個(gè)模塊的數(shù)據(jù)進(jìn)行處理。

          通信處理模塊由控制W77E58單片機(jī)構(gòu)成。一方面通過RS 232接口總線與上位機(jī)通信;另一方面利用nRF401與消防栓信息采集模塊通信。

          單片機(jī)消防栓信息采集模塊,用單片機(jī)AT89S51實(shí)現(xiàn)對(duì)消防栓信息采集和對(duì)nRF401收發(fā)功能的控制。

          2 系統(tǒng)的硬件設(shè)計(jì)

          2.1 通信處理模塊

          通信處理模塊電路如圖2所示。該模塊由于要使用兩個(gè)串口分別對(duì)上層和下層通信,因此主控制器使用華邦公司的W77E58單片機(jī)。

          W77E58單片機(jī)內(nèi)含兩個(gè)增強(qiáng)型串口和32 KB大容量FLASH存儲(chǔ)器。指令集與51系列單片機(jī)完全兼容,非常適合在智能化監(jiān)控系統(tǒng)中使用。W77E58的連線非常方便。電路所需要的外部元件僅僅是一個(gè)晶振加兩個(gè)電容驅(qū)動(dòng)片內(nèi)振蕩器、一個(gè)連接到復(fù)位腳的電阻、電容。使用片內(nèi)上電復(fù)位電路,XTAL1,XTAL2是參考振蕩器端,晶振頻率為11.059 MHz。其中串口0通過RS 232總線接口與PC機(jī)相連,串口1則負(fù)責(zé)連接nRF401。W77E58自帶有看門狗定時(shí)器,此定時(shí)器是一個(gè)獨(dú)立于CPU自行運(yùn)行的定時(shí)器,系統(tǒng)可通過編程將其設(shè)置為系統(tǒng)監(jiān)控器,時(shí)基發(fā)生器或事件定時(shí)器。因?yàn)閱纹瑱C(jī)的信號(hào)電平符合TTL/CMOS標(biāo)準(zhǔn),PC機(jī)的串口典型的RS 232信號(hào)在正負(fù)電平之間擺動(dòng),因此需要MAX202芯片實(shí)現(xiàn)電平的轉(zhuǎn)換。

          nRF401無線通信芯片是Nordic公司生產(chǎn),該芯片使用了433 MHz IGM頻段,集成了高頻發(fā)射、高頻接收、PLL合成、FSK調(diào)制、FSK解調(diào)、多頻道切換等功能,具有性能優(yōu)異、功耗低、使用方便等特點(diǎn)。通過其外部引腳,可以使芯片隨時(shí)在發(fā)送模式和接收模式之間切換,無需進(jìn)行任何初始化設(shè)置。nRF401通過單片機(jī)串口直接與MCU通信,無需對(duì)數(shù)據(jù)進(jìn)行曼徹斯特編碼。

          在nRF40l與W77E58單片機(jī)接口中。nRF401電路的工作模式由19腳TXEN控制,19腳為高電平時(shí)發(fā)送數(shù)據(jù)、為低電平時(shí)接收數(shù)據(jù)。發(fā)送時(shí),信號(hào)從單片機(jī)串口TXD(P1.3)輸送給nRF401的9腳DIN端口的二進(jìn)制串行數(shù)據(jù)被調(diào)制后通過天線發(fā)射出去;接收時(shí),信號(hào)從天線接收轉(zhuǎn)換為二進(jìn)制串行數(shù)后,通過10腳DOUT輸送給單片機(jī)串口RXD(P1.2)。該芯片12腳CS=0工作于433.92 MHz頻段,CS=1工作頻段為434.33 MHz。18腳PWR_UP低功耗控制,為高電平時(shí),處于工作狀態(tài);為低電平時(shí),處于待機(jī)狀態(tài)。

          2.2 單片機(jī)消防栓信息采集模塊

          消防栓信息采集模塊如圖3所示。需要完成兩個(gè)方面的工作,一方面通過I/O接口讀取外部設(shè)備的消防栓信息,另一方面通過無線通信芯片nRF401響應(yīng)主控機(jī)發(fā)送的查詢請(qǐng)求,回送當(dāng)前消防栓信息。消防栓信息采集模塊由從控AT89S51單片機(jī)、水壓采集部分、A/D轉(zhuǎn)換電路、無線收發(fā)電路等組成。


          水壓采集和轉(zhuǎn)換部分是將壓力信號(hào)轉(zhuǎn)換為單片機(jī)能夠處理的數(shù)字信號(hào),由CYGl512型傳感器和模數(shù)轉(zhuǎn)換ADC0832組成。CYG512的壓力敏感元件采用當(dāng)代最先進(jìn)的MEMS技術(shù)設(shè)計(jì)與制造。三維集成、雙面加工的硅壓阻壓力敏感元件具有優(yōu)秀的線性精度。離子注入、精細(xì)光刻技術(shù)制作的惠斯頓應(yīng)變電橋的高度一致性使其具有很小的溫度漂移。采用硅硅直接鍵合技術(shù)使得硅薄膜力敏結(jié)構(gòu)具有很高靈敏度、優(yōu)良的穩(wěn)定性、優(yōu)良的動(dòng)態(tài)性能的同時(shí)具有超薄的厚度。它綜合力敏結(jié)構(gòu)與襯底加固結(jié)構(gòu)的總厚度僅為O.6 mm,更有利于獲得更薄最終尺寸的薄形傳感器。CYGl512傳感器,是將CYG512系列產(chǎn)品和信號(hào)放大調(diào)理部分分體裝在一個(gè)與電線相連的儀表小盒內(nèi),它可以提供O~5 V的輸出、方便與ADC0832接口。CYG512的標(biāo)準(zhǔn)量程在100 kPa,160 kPa,250 kPa,400 kPa,600 kPa,1 000 kPa,1 600 kPa,2 500 kPa,4 000 kPa。

          ADC使用ADC0832是帶有串行輸入輸出8位逐次逼近式模數(shù)轉(zhuǎn)換器,其轉(zhuǎn)換時(shí)間為80μs。它的兩個(gè)模擬量輸入通道是可編程的,可以由串行輸入口DI的3位控制字指定通道。CYGl512傳感器將壓力信號(hào)以電壓信號(hào)的形式提供給ADC0832。選擇ADC0832的CHl為單端輸入工作方式,CHO為不工作。所以,由DI端輸入的控制字為“111”,可將DI固定接高電平。當(dāng)單片機(jī)的P1.2口將ADC0832的CS腳置低電平時(shí),CLK的前3個(gè)脈沖上升從DI端輸入控制字“111”,接下來的8個(gè)脈沖完成轉(zhuǎn)換過程,轉(zhuǎn)換后的8位數(shù)據(jù)就從P1.O口讀入到單片機(jī)中。

          狀態(tài)指示部分是一個(gè)發(fā)光二極管,指示系統(tǒng)工作狀態(tài)。滅狀態(tài)表示水管水壓正常,當(dāng)發(fā)光二極管亮?xí)r表明水管沒水,當(dāng)二極管閃爍時(shí)表明水管水壓偏低。

          3 系統(tǒng)的軟件設(shè)計(jì)

          系統(tǒng)的軟件設(shè)計(jì)其主要部分為通信處理模塊和消防栓信息采集模塊兩大部分的設(shè)計(jì)。

          通信處理模塊的軟件設(shè)計(jì)主要有程序初始化部分、RS 232通信部分和無線通信部分。串口初始化。W77E58的串口O工作在工作方式1,通過RS 232與PC機(jī)通信。串口1工作在工作方式1,控制nRF401通信。兩個(gè)串口均使用定時(shí)器1控制通信波特率,波特率定為9 600 b/s。

          由于無線通信的特殊性,外部干擾使得誤碼率較高。因此,軟件設(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)。

          (3)接收方檢測到連續(xù)的0x550xAA字節(jié),表示接收到有效的數(shù)據(jù)幀,如果幀校驗(yàn)通過,接收方根據(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)沒有收到相應(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é) 語

          本系統(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ì)。由于采用無線通信芯片nRF401,進(jìn)行多點(diǎn)數(shù)據(jù)采集十分方便、快捷。尤其適合對(duì)廠房、倉庫等復(fù)雜場所控制。

          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理


          全息投影相關(guān)文章:全息投影原理


          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();