煤炭是我國重要的能源資源,我國的煤炭工業(yè)多數(shù)還靠人工開采,安全隱患多,因?yàn)槊旱V開采的特殊環(huán)境,容易發(fā)生事故,煤礦行業(yè)也被稱為高危險(xiǎn)的行業(yè)。利用遠(yuǎn)程視頻監(jiān)控系統(tǒng),地面或中心監(jiān)控人員可以直接對(duì)井下情況進(jìn)行實(shí)時(shí)監(jiān)控,不僅能直觀地監(jiān)視和記錄井下工作現(xiàn)場的安全生產(chǎn)情況,并能通過在井下安裝溫濕傳感器瓦、斯探測器等,及時(shí)地發(fā)現(xiàn)事故苗頭,防患于未然。我們的研究課題是,將無線傳感器網(wǎng)絡(luò)技術(shù)[1]融入視頻監(jiān)控系統(tǒng)中,取代原來的有線網(wǎng)絡(luò)。隨著礦井延深,無線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)可以很方便的增加,形成新的自組網(wǎng)絡(luò),通過無線通信節(jié)點(diǎn)將數(shù)據(jù)經(jīng)多跳傳送到基站。
節(jié)點(diǎn)的硬件設(shè)計(jì)
傳感器節(jié)點(diǎn)的硬件結(jié)構(gòu)主要由傳感模塊、處理模塊、通信模塊和電源模塊組成。傳感器節(jié)點(diǎn)一般采用電池供電,節(jié)能成為設(shè)計(jì)的關(guān)鍵技術(shù),一般要保證節(jié)點(diǎn)電池壽命在一年一上。此外,還要控制成本和體積。設(shè)計(jì)的節(jié)點(diǎn)硬件框圖如圖1所示。
微處理器模塊
微處理器選用ATMEL公司的ATMELGAl28L。該芯片功耗低,且有多種睡眠模式;多個(gè)中斷源,53個(gè)I/O口,可以連接多個(gè)傳感器擴(kuò)展口;內(nèi)帶8路10位A/D轉(zhuǎn)換器,可以將傳感器送來的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào);雙向I2C串行總線接口;主/從SPI串行接口;可編 程串行通信接口;JTAG和SPI在線編程方式等。該芯片的豐富資源可以滿足節(jié)點(diǎn)數(shù)據(jù)處理和傳輸?shù)囊?,尤其是六種不同的睡眠模式,特別適合有能量限制的應(yīng)用。
存儲(chǔ)器存放待處理或接收的數(shù)據(jù).選用Mierochip公司的25AAl024。該芯片的存儲(chǔ)量為1024KB,功耗低,讀寫方式為SPI,占用I/O口少。節(jié)點(diǎn)索引號(hào)產(chǎn)生器選用MAXIM公司的DS2411,用來產(chǎn)生48位隨機(jī)數(shù),作為節(jié)點(diǎn)的惟一標(biāo)識(shí)號(hào)。
[nextpage]
射頻模塊
射頻芯片的選取直接影響節(jié)點(diǎn)的功耗,因?yàn)楣?jié)點(diǎn)消耗能量的近2/3都用于無線收發(fā)。選用的射頻芯片為NORDIC公司的nRF24L01。該芯片功耗低,在相同工作模式下,比Chipcon公司的CC2420芯片節(jié)省近l/3的能量;工作于2.4G~2.5GHzISM頻段;支持高速跳頻;體積很小;外圍器件少,配置簡單,且使用兩層PCB板,節(jié)省成本。nRF24L0l配置框圖如圖2所示。nRF24L01與微處理器相連只需6根信號(hào)線,其中4根是SPI信號(hào)線,與ATMELGAl28L的SPI口相連;其余一根為片選,另一根用于中斷請(qǐng)求。
射頻電路要取得好的RF性能,PCB設(shè)計(jì)必須合理。nRF24L01的供電電源必須經(jīng)過良好的濾波,并且與數(shù)字電路分開;避免長距離走線;在射頻信號(hào)輸出部分,根據(jù)發(fā)送功率設(shè)置濾波網(wǎng)絡(luò),以實(shí)現(xiàn)阻抗匹配,使到達(dá)天線的信號(hào)最強(qiáng)。要防止高頻信號(hào)泄漏,否則會(huì)對(duì)發(fā)射信號(hào)造成很大干擾。由于天線要散播電磁能量,需選用Q值較小的器件。制作PCB板時(shí),在器件周圍覆銅,以提高抗干擾性能。
傳患器模塊和擴(kuò)展口
板上設(shè)有tp-1.1a非加熱低功耗甲烷氣體傳感器[2],由于是模擬信號(hào),需接入ATMELGAl28L的AD引腳進(jìn)行AD轉(zhuǎn)換后才可處理。板上還裝有數(shù)字型溫濕度傳感芯片SHT15,可感知溫度和濕度,精確度較高,且功耗低,采用I2C讀寫,占有I/O口很少。為了讓節(jié)點(diǎn)具有更廣泛的應(yīng)用,節(jié)點(diǎn)板上接有擴(kuò)展口,其中有I2C口、AD口和中斷口等,用來連接其他傳感器。
電源摸塊和電能消耗
節(jié)點(diǎn)有兩種供電方式,在實(shí)驗(yàn)室調(diào)試和測試時(shí)通過開發(fā)板供電,在外界環(huán)境中工作時(shí),用2個(gè)AA電池供電。為了防止2個(gè)電源之間的干擾,在板上加有一個(gè)手動(dòng)開關(guān)。因?yàn)殡娔艿南臎Q定了傳感器節(jié)點(diǎn)的使用壽命,在節(jié)點(diǎn)的軟、硬件設(shè)計(jì)時(shí),必須充分考慮能源的有效性。節(jié)點(diǎn)在各種運(yùn)行模式下,必須關(guān)閉不必要的模塊以節(jié)省能量。我們采用節(jié)點(diǎn)定時(shí)關(guān)閉和打開的協(xié)議[3,4]且關(guān)閉與打開的時(shí)間比為1:99,使用2節(jié)1000毫安時(shí)(mAhr)的AA電池供電,節(jié)點(diǎn)耗能如表1所示。
[nextpage]
在上述工作模式下,如果用2節(jié)1000mA-hr的AA電池供電,則節(jié)點(diǎn)壽命為12.55個(gè)月。此值是在最大發(fā)送功率情況下計(jì)算的。當(dāng)發(fā)送功率和收發(fā)速率變小時(shí),耗能更少,傳感器的壽命會(huì)更長[5]。
開發(fā)板的硬件設(shè)計(jì)
為了完成節(jié)點(diǎn)的開發(fā),我們?cè)O(shè)計(jì)了開發(fā)板,其硬件系統(tǒng)框圖如圖3所示。節(jié)點(diǎn)CPU的JTAG口接在開發(fā)板上。如果使用JTAG口下載和調(diào)試程序,則需要JTAG下載器。為 此,設(shè)計(jì)了另一種下載方式,即串行下載。CPU通過USB口接收上位機(jī)的代碼,然后通過SPI口下載到節(jié)點(diǎn)CPU的FLASH。CPU為中心控制模塊,接收上位機(jī)的各種命令并進(jìn)行相應(yīng)處理。CPU芯片選用ATMEL公司的ATMELGAl6L,該芯片帶有可編程UART口和工作于主機(jī)、從機(jī)模式的SPI口。
USB轉(zhuǎn)換芯片實(shí)現(xiàn)上位機(jī)端的USB數(shù)據(jù)與下位機(jī)端的UART數(shù)據(jù)之間的轉(zhuǎn)換。選用芯片為FT232BM。由于編程板CPU、ATMELGAl28都要通過USB口與上位機(jī)通信,為了防止不同輸入輸出信號(hào)間的干擾,設(shè)計(jì)時(shí)用了兩個(gè)帶有使能控制的BUFFER來控制不同CPU串口通信的通斷。
為了更方便地配置傳感器節(jié)點(diǎn),在板上集成了一塊E2PROM。目標(biāo)代碼可以先存儲(chǔ)在EZPROM中。當(dāng)需要向節(jié)點(diǎn)下載時(shí),通過按鈕激發(fā)外部中斷即可將E2PROM的代碼通過SPI口寫入節(jié)點(diǎn)CPU。操作方便簡單,擺脫了上位機(jī)的限制。
節(jié)點(diǎn)連接器是17針的節(jié)點(diǎn)與開發(fā)板和擴(kuò)展傳感器之間的接口,除了編程口和串口,還有連接傳感器的擴(kuò)展口,包括I2C口、中斷口和AD口等。節(jié)點(diǎn)CPUSPI編程共需4根信號(hào)線,其中3根SPI通信線與開發(fā)板CPU的SPI口相連,節(jié)點(diǎn)CPU的RESET信號(hào)由開發(fā)板CPU的IO口控制即可。
上位機(jī)程序設(shè)計(jì)
用C++Builder6.0編寫上位機(jī)程序,制作了用戶操作界面,并將不同編譯系統(tǒng)生成的多種目標(biāo)文件格式轉(zhuǎn)換成上、下位機(jī)約定的文件格式,傳送給下位機(jī)。為提高向ATMELGAl28L的FLASH和E2PROM寫代碼的效率和便于從E2PROM向FLASH寫代碼,上位機(jī)傳送給下位機(jī)的代碼采用圖4所示的格式。
圖4中,地址指該段代碼要寫入FLASH的初始地址,包括2字節(jié)的頁地址和l字節(jié)的頁內(nèi)地址;序列號(hào)表示該段代碼是全部代碼中的第幾段;長度指該段代碼的字節(jié)數(shù),不包括地址和序列號(hào)。每一地址段代碼都采用圖4的格式。www.51kaifa.com/ 上位機(jī)程序支持的目標(biāo)文件格式有:TinyOS、AVRGCC和IAR生成的Intelhex文件。Intelhex是Intel公司提出的一種文件標(biāo)準(zhǔn),是最常用的目標(biāo)文件格式之一。
[nextpage]
上位機(jī)程序?qū)⒉煌幾g系統(tǒng)生成的不同格式的目標(biāo)文件轉(zhuǎn)換成圖4所示的格式,再發(fā)給下位機(jī)。上位機(jī)操作界面提供了各種命令按鈕,用戶點(diǎn)擊命令按鈕后,上位機(jī)即按制定的該命令模式處理協(xié)議發(fā)送命令和數(shù)據(jù)。在傳送文件時(shí),為確保數(shù)據(jù)傳送不出差錯(cuò),采用了停止-等待傳輸協(xié)議[6]。上位機(jī)發(fā)送約定長度的數(shù)據(jù)后停止發(fā)送,等接收到下位機(jī)發(fā)來的確認(rèn)標(biāo)志后再開始發(fā)送。
下位機(jī)程序設(shè)計(jì)
下位機(jī)接收上位機(jī)的命令,完成讀寫FLASH、E2PROM、鎖定位、熔絲位和USB口使用權(quán)的切換等功能。由于實(shí)現(xiàn)的功能較多,采用了模塊化、自下向上的結(jié)構(gòu)化設(shè)計(jì)方法。首先按照ATMELCAl28L數(shù)據(jù)手冊(cè)提供的SPI編程算法,用C語言實(shí)現(xiàn)了讀寫FLASH、鎖定位和熔絲位等模塊。
程序設(shè)計(jì)的一個(gè)難點(diǎn)是將接收的上位機(jī)發(fā)送的文件寫入FLASH或E2PROM,因?yàn)樯婕暗浇邮諗?shù)據(jù)和寫FLASH或EZPROM的交互。解決方法是采用停止——等待傳輸協(xié)議進(jìn)行數(shù)據(jù)傳送[7]。下位機(jī)開辟約定數(shù)量的緩沖區(qū),利用中斷接收上位機(jī)數(shù)據(jù)至緩沖區(qū)滿,處理完緩沖區(qū)數(shù)據(jù)后發(fā)送確認(rèn)標(biāo)志,上位機(jī)收到確認(rèn)后再開始下一次發(fā)送。
寫EZPROM與寫FLASH類似,只是要將接收的地址、序列號(hào)、長度也寫入E2PROM。代碼在E2PROM中存放時(shí)仍保持表2所示的格式,即段初始地址、序列號(hào)、該段長度、數(shù)據(jù)的格式,以便將E2PROM中存儲(chǔ)的代碼寫入FLASH。編寫下位機(jī)程序時(shí),依據(jù)各模塊分別用子函數(shù)實(shí)現(xiàn)、模塊間接口清晰、主程序簡單的原則,實(shí)現(xiàn)了讀寫FLASH和E2PROM、讀寫鎖定位、從E2PROM寫FLASH等幾大模塊,主函數(shù)接收到命令調(diào)用相應(yīng)模塊即可。當(dāng)按下中斷按鈕時(shí),中斷程序先檢測FLASH連接,如果檢測成功,則調(diào)用從E2PROM寫FLASH模塊;否則紅燈閃爍指示操作失敗。
結(jié)論
本文提出了將無線傳感器網(wǎng)絡(luò)技術(shù)融入煤礦視頻監(jiān)控系統(tǒng)中,給出了無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的組成和設(shè)計(jì)環(huán)境。研究了延長無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)生命周期的方法。在目前電池安時(shí)數(shù)還很有限的情況下采用節(jié)點(diǎn)定時(shí)開關(guān)協(xié)議,在滿足煤礦安全要求的情況下,確定開關(guān)時(shí)間比為1:99,從而使節(jié)點(diǎn)電池的更換周期在一年以上。無線傳感器網(wǎng)絡(luò)其節(jié)點(diǎn)擴(kuò)展的方便性,滿足了煤礦生產(chǎn)中礦井不斷延深的實(shí)際要求。本文創(chuàng)新點(diǎn)有三:1.將無線傳感器網(wǎng)絡(luò)技術(shù)引入煤礦視頻監(jiān)控系統(tǒng)中;2.給出無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)的技術(shù)要點(diǎn);3.推出了節(jié)點(diǎn)最短壽命。
注:將無線傳感器網(wǎng)絡(luò)技術(shù)融入煤礦視頻監(jiān)控系統(tǒng),此技術(shù)目前我們還處于研究試制階段,未形成實(shí)用產(chǎn)品,歡迎相關(guān)企業(yè)與我們合作開發(fā)。