劉碧貞 黃 華 祝詩平
(西南大學(xué)工程技術(shù)學(xué)院,重慶 北碚 400716)
北斗在遠(yuǎn)程人防警報(bào)系統(tǒng)中的應(yīng)用
劉碧貞 黃 華 祝詩平
(西南大學(xué)工程技術(shù)學(xué)院,重慶 北碚 400716)
針對(duì)傳統(tǒng)的人防警報(bào)系統(tǒng)受地域限制的缺點(diǎn),提出利用北斗的報(bào)文通信功能,設(shè)計(jì)了一套全天候、無通信盲區(qū)的遠(yuǎn)程人防警報(bào)系統(tǒng)。系統(tǒng)的上位機(jī)人機(jī)界面是在Visual Basic環(huán)境下開發(fā)的,以單片機(jī)為主控制器完成警報(bào)終端軟件和硬件設(shè)計(jì)。系統(tǒng)可實(shí)現(xiàn)單個(gè)或群發(fā)警報(bào)指令的發(fā)放與反饋的功能,同時(shí)系統(tǒng)的警報(bào)終端還可將警報(bào)的文本內(nèi)容轉(zhuǎn)換成語音廣播報(bào)警的功能。試驗(yàn)測(cè)試結(jié)果表明該系統(tǒng)實(shí)現(xiàn)了遠(yuǎn)程警報(bào)功能,且運(yùn)行可靠、穩(wěn)定。
北斗衛(wèi)星 人防警報(bào)系統(tǒng) 報(bào)文通信 單片機(jī) 文語轉(zhuǎn)換
目前,在遠(yuǎn)程通信技術(shù)中一般采用的方式主要有全球移動(dòng)通信(global system for mobile communication,GSM)和Internet等。GSM技術(shù)雖然具有快捷高效、傳輸質(zhì)量良好、成本低等優(yōu)點(diǎn)[1],但受地域限制,在GSM沒有覆蓋的區(qū)域就無法使用[2]。Internet能實(shí)現(xiàn)資源共享,傳輸速度快,但在偏遠(yuǎn)地區(qū)使用Internet,其建設(shè)周期長(zhǎng)、實(shí)現(xiàn)難度大、運(yùn)行成本高。
北斗衛(wèi)星導(dǎo)航系統(tǒng)由我國自行研制,擁有自主知識(shí)產(chǎn)權(quán),具有測(cè)速、定位、雙向授時(shí)及短信息通信功能[3-4]。其安全可靠穩(wěn)定,覆蓋范圍大,24 h全天候服務(wù),無通信盲區(qū),架設(shè)與維護(hù)簡(jiǎn)便,是遠(yuǎn)程數(shù)據(jù)傳輸?shù)睦硐胪ㄐ畔到y(tǒng)[4]。本文采用北斗設(shè)計(jì)了一套遠(yuǎn)程人防警報(bào)系統(tǒng)。用戶只需連接客戶端與服務(wù)器,在客戶端設(shè)置所需警報(bào)指令,就可以很方便地進(jìn)行警報(bào)通信。該系統(tǒng)可廣泛地應(yīng)用于抗災(zāi)救災(zāi)、軍區(qū)通信、應(yīng)急通信等各個(gè)領(lǐng)域[5]。
遠(yuǎn)程人防警報(bào)系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)圖
遠(yuǎn)程人防警報(bào)系統(tǒng)由客戶端、服務(wù)器和警報(bào)終端三個(gè)部分組成。客戶端、服務(wù)器構(gòu)成上位機(jī),警報(bào)終端構(gòu)成下位機(jī)。上位機(jī)與下位機(jī)之間采用北斗收/發(fā)模塊進(jìn)行雙向通信。客戶端i(i=1,2,3,…,n)發(fā)送單個(gè)或群發(fā)警報(bào)控制指令到服務(wù)器,服務(wù)器根據(jù)報(bào)警器ID,通過北斗收/發(fā)模塊將警報(bào)信息轉(zhuǎn)發(fā)給目的地警報(bào)終端的北斗收/發(fā)模塊k(k=1,2,3,…,m)。警報(bào)終端處理相應(yīng)警報(bào)事件后將警報(bào)信息的執(zhí)行結(jié)果反饋給服務(wù)器,服務(wù)器回傳反饋指令給對(duì)應(yīng)的客戶端。
由于系統(tǒng)的服務(wù)器與客戶端之間的通信方式采用TCP/IP協(xié)議,服務(wù)器與北斗收/發(fā)模塊之間的通信方式采用串口協(xié)議,而VB軟件里面同時(shí)提供了服從TCP/IP協(xié)議的Winsock控件和串口協(xié)議的Mscomm控件,因此用戶可以很方便地通過對(duì)控件屬性的設(shè)置,實(shí)現(xiàn)TCP/IP通信和串行通信[6]。服務(wù)器和客戶端的上位機(jī)均選擇VB軟件進(jìn)行人機(jī)界面設(shè)計(jì)。
2.1 客戶端軟件設(shè)計(jì)
客戶端發(fā)出各種警報(bào)指令,如警報(bào)鳴放、巡檢、授時(shí)、語音廣播等。客戶端軟件設(shè)計(jì)調(diào)用VB里面的Winsock控件,將Winsock控件的Protocol屬性設(shè)為“0-sckTCPProtocol”。客戶端要與服務(wù)器獲得連接,必須先知道服務(wù)器所在的IP地址(RemoteHost)和端口號(hào)(RemotePort),然后調(diào)用Connet方法發(fā)送握手請(qǐng)求[7]。
2.2 服務(wù)器軟件設(shè)計(jì)
2.2.1 服務(wù)器與客戶端的通信
在服務(wù)器設(shè)計(jì)界面中添加Winsock控件,將Winsock控件的Protocol屬性設(shè)為“0-sckTCPProtocol”,設(shè)置一個(gè)LocalPort作為監(jiān)聽端口,并調(diào)用listen,使服務(wù)器處于監(jiān)聽狀態(tài)。當(dāng)收到客戶端握手請(qǐng)求時(shí)就會(huì)觸發(fā)ConnectionRequest事件,調(diào)用其內(nèi)部的Accept方法接受客戶端的連接請(qǐng)求。客戶端與服務(wù)器建立連接后,任何一方的計(jì)算機(jī)都可以發(fā)送或接收數(shù)據(jù)。可通過調(diào)用SendData來發(fā)送數(shù)據(jù),當(dāng)接收到數(shù)據(jù)時(shí)就會(huì)觸發(fā)DataArrival 事件,通過調(diào)用GetData就可獲取數(shù)據(jù)[8]。每接入一個(gè)客戶端到服務(wù)器,服務(wù)器就會(huì)記錄該客戶端IP地址的索引號(hào)。當(dāng)服務(wù)器接收到來自客戶端發(fā)送過來的警報(bào)消息時(shí),服務(wù)器提取數(shù)據(jù)中的任務(wù)ID并存到與其索引號(hào)對(duì)應(yīng)的數(shù)組里面,以便將通信結(jié)果反饋給對(duì)應(yīng)的客戶端。
2.2.2 服務(wù)器與北斗收/發(fā)模塊的通信
服務(wù)器是客戶端與警報(bào)終端之間通信的橋梁。服務(wù)器匯總各個(gè)客戶端的警報(bào)指令,然后通過北斗衛(wèi)星轉(zhuǎn)發(fā)給相應(yīng)的警報(bào)終端。服務(wù)器與北斗收/發(fā)模塊之間通過串口通信,使用VB中的Mscomm控件[9]。對(duì)其屬性進(jìn)行設(shè)置,初始設(shè)置打開串口COM1,波特率為19 200 bit/s,用戶可根據(jù)需要在界面上進(jìn)行修改。當(dāng)收到來自北斗收/發(fā)模塊的數(shù)據(jù)時(shí)會(huì)觸發(fā)comEvReceive事件,可調(diào)用InBufferCount獲得數(shù)據(jù)長(zhǎng)度,調(diào)用Input獲得收到的數(shù)據(jù)。發(fā)送數(shù)據(jù)可調(diào)用Output[10]。
2.2.3 數(shù)據(jù)庫管理
調(diào)用VB中的Adodc控件,實(shí)現(xiàn)服務(wù)器與Access數(shù)據(jù)庫的鏈接。數(shù)據(jù)庫中保存各地區(qū)對(duì)應(yīng)的代碼、報(bào)警器ID和北斗卡號(hào)。在界面上可通過相關(guān)操作對(duì)數(shù)據(jù)庫進(jìn)行查詢、修改更新。
3.1 遠(yuǎn)程人防警報(bào)系統(tǒng)下位機(jī)硬件設(shè)計(jì)
中央控制器采用單片機(jī),單片機(jī)與北斗收/發(fā)模塊、TTS語音輸出模塊以及仲裁模塊之間的通信均采用串口通信,因此要求其單片機(jī)至少具有三個(gè)串口。STC15F1K60XW單片機(jī)的異步串行口UART分時(shí)復(fù)用可當(dāng)三組使用,同時(shí)其價(jià)格低廉,因此單片機(jī)選用STC15F1K60XW。本系統(tǒng)的北斗收/發(fā)模塊選用CDT-441H(M)型一體式北斗/GPS雙模用戶機(jī)。單片機(jī)串口經(jīng)RS-232電平轉(zhuǎn)換后分別與北斗收/發(fā)模塊和仲裁模塊進(jìn)行通信。TTS語音輸出模塊使用中文語音合成芯片OSYN06188實(shí)現(xiàn)。該芯片可以通過異步串口接收待合成的文本,可直接通過脈寬調(diào)制(PWM)輸出方式驅(qū)動(dòng)揚(yáng)聲器,也可外接單只三極管驅(qū)動(dòng)揚(yáng)聲器來實(shí)現(xiàn)文本到語音(TTS)的轉(zhuǎn)換。本系統(tǒng)采用PWM直接驅(qū)動(dòng)揚(yáng)聲器[11]。
系統(tǒng)下位機(jī)的硬件連接圖如圖2 所示。

圖2 系統(tǒng)下位機(jī)硬件連接圖
3.2 遠(yuǎn)程人防警報(bào)系統(tǒng)下位機(jī)軟件設(shè)計(jì)
下位機(jī)主要實(shí)現(xiàn)讀取北斗收/發(fā)模塊的數(shù)據(jù)、TTS語音輸出、仲裁通信和返回警報(bào)狀態(tài)等功能。單片機(jī)通過串口讀取警報(bào)終端北斗收/發(fā)模塊接收到的數(shù)據(jù),北斗的數(shù)據(jù)傳輸基本格式如圖3所示。

圖3 北斗的數(shù)據(jù)傳輸基本格式
Fig.3 The basic format of the data transmission of Beidou
在單片機(jī)內(nèi)部預(yù)留一個(gè)1 024字節(jié)的緩存單元,存儲(chǔ)從北斗收/發(fā)模塊獲得的數(shù)據(jù)。在緩存數(shù)據(jù)中找到警報(bào)數(shù)據(jù)的起始符“$”和數(shù)據(jù)長(zhǎng)度字節(jié),然后根據(jù)數(shù)據(jù)長(zhǎng)度從消息起始符“$”開始到校驗(yàn)和結(jié)束讀取完整的警報(bào)數(shù)據(jù),并將所有數(shù)據(jù)逐字節(jié)異或。如果得到的異或值為零,說明該數(shù)據(jù)正確,否則數(shù)據(jù)有誤。若數(shù)據(jù)有誤,則丟棄該數(shù)據(jù)。若數(shù)據(jù)正確且警報(bào)文本內(nèi)容需要通過語音廣播,則單片機(jī)將警報(bào)文本內(nèi)容轉(zhuǎn)換成TTS語音文本輸出格式,然后通過TTS模塊廣播相應(yīng)的語音警報(bào)內(nèi)容;否則通過串口轉(zhuǎn)發(fā)給仲裁模塊,由仲裁模塊處理相關(guān)事件。下位機(jī)處理完警報(bào)信息后,需要向客戶端回傳處理結(jié)果。報(bào)警系統(tǒng)接收端主程序流程圖如圖4所示。

圖4 報(bào)警系統(tǒng)接收端主程序流程圖
4.1 客戶端與服務(wù)器連接
當(dāng)客戶端與服務(wù)器握手成功后,在服務(wù)器界面上將客戶端的IP地址提取并顯示出來。若有多個(gè)客戶端同時(shí)連接上服務(wù)器,則每一個(gè)客戶端的IP地址和總的連接數(shù)都會(huì)顯示出來。
4.2 通信測(cè)試
客戶端與服務(wù)器握手成功后,在客戶端設(shè)置相應(yīng)任務(wù)ID和報(bào)警器ID,并點(diǎn)擊報(bào)警類型,即可將數(shù)據(jù)發(fā)送到服務(wù)器。服務(wù)器提取該數(shù)據(jù)中的報(bào)警器ID,在數(shù)據(jù)庫中查詢?cè)搱?bào)警器ID對(duì)應(yīng)的北斗卡號(hào)后,將數(shù)據(jù)轉(zhuǎn)化為北斗數(shù)據(jù)格式并轉(zhuǎn)發(fā)到目的地警報(bào)終端的北斗收/發(fā)模塊。若服務(wù)器在5 min內(nèi)收到反饋信息,說明此次警報(bào)通信成功;反之,若超過5 min未收到反饋信息,說明此次警報(bào)通信失敗。在報(bào)警器工作狀態(tài)欄中顯示該報(bào)警器的通信狀態(tài)(正在通信/通信失敗/通信成功),最后將通信狀態(tài)反饋給發(fā)出此次警報(bào)的客戶端,同時(shí)在客戶端界面上顯示此次警報(bào)成功與否。
以單個(gè)警報(bào)測(cè)試為例,在客戶端設(shè)置任務(wù)ID和報(bào)警器ID,發(fā)送“警報(bào)鳴放”的控制指令后,與報(bào)警器ID對(duì)應(yīng)的卡號(hào)的北斗收/發(fā)模塊的警報(bào)終端響起了警報(bào)聲。其他幾種警報(bào)(警報(bào)停止、巡檢、授時(shí)、語音廣播開啟、語音廣播停止、報(bào)文)測(cè)試結(jié)果類似。不同的是,當(dāng)發(fā)送“授時(shí)”警報(bào)時(shí),整個(gè)系統(tǒng)的時(shí)間將會(huì)被更新為與衛(wèi)星同步的時(shí)間;當(dāng)發(fā)送報(bào)文警報(bào)時(shí),警報(bào)終端的TTS模塊輸出的語音信號(hào)為“信息內(nèi)容”里面的報(bào)文內(nèi)容。群發(fā)警報(bào)測(cè)試結(jié)果與單個(gè)警報(bào)測(cè)試類似,區(qū)別就是客戶端可以將警報(bào)指令同時(shí)發(fā)送到多個(gè)警報(bào)終端。
4.3 功率檢測(cè)
當(dāng)用戶需要檢測(cè)北斗功率時(shí),點(diǎn)擊服務(wù)器界面上的“功率檢測(cè)”按鈕或選擇“自動(dòng)檢測(cè)”選項(xiàng)設(shè)置時(shí)間間隔,服務(wù)器就會(huì)發(fā)送功率檢測(cè)信息給北斗衛(wèi)星,北斗衛(wèi)星返回功率狀況給服務(wù)器。服務(wù)器以直方圖形式直觀地顯示接收到的北斗衛(wèi)星1#~6#波束的信號(hào)功率。
經(jīng)試驗(yàn)測(cè)試表明,系統(tǒng)實(shí)現(xiàn)了遠(yuǎn)程人防警報(bào)通信,運(yùn)行穩(wěn)定,操作簡(jiǎn)單,人機(jī)界面友好,達(dá)到預(yù)期效果。
人防是國防的重要組成部分,直接關(guān)系到國家的利益和人民的安危,利用各種新技術(shù)和新方法保障人防通信和警報(bào)的暢通是一個(gè)重要的研究課題。北斗以其24 h全天候服務(wù)、無通信盲區(qū)的優(yōu)勢(shì),具有廣闊的應(yīng)用前景。
本文設(shè)計(jì)了基于北斗的遠(yuǎn)程人防警報(bào)系統(tǒng),解決了GSM和Internet在遠(yuǎn)程通信受地域限制的缺點(diǎn)。系統(tǒng)可廣泛地應(yīng)用于抗災(zāi)救災(zāi)、應(yīng)急通信等各個(gè)領(lǐng)域。
[1] 顧昕元,高磊,李傳莉.基于GSM短信的醫(yī)院制氧設(shè)備遠(yuǎn)程報(bào)警系統(tǒng)設(shè)計(jì)[J].中國醫(yī)療設(shè)備,2013,28(6):49-51.
[2] 徐曉晗.基于北斗的車輛遠(yuǎn)程監(jiān)控報(bào)警系統(tǒng)[J].現(xiàn)代電子技術(shù),2008,31(19):21-24.
[3] Jin S G.Recent progresses on Beidou/COMPASS and other global navigation satellite systems(GNSS)-I[J].Advances in Space Research,2013,51(6):941-941.
[4] 溫靜,汪大明,孟月玥,等.北斗衛(wèi)星導(dǎo)航系統(tǒng)在地質(zhì)調(diào)查領(lǐng)域應(yīng)用綜述[J].地質(zhì)力學(xué)學(xué)報(bào),2012,18(3):213-223.
[5] 郭景全.基于3G網(wǎng)絡(luò)的人防應(yīng)急指揮系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.
[6] 袁小平,顏文俊.基于VB的監(jiān)控器遠(yuǎn)程監(jiān)控軟件設(shè)計(jì)[J].機(jī)電工程,2001(6):15-19.
[7] 胡大輝,杜治國,肖興江.VB6中用Winsock控件實(shí)現(xiàn)多臺(tái)計(jì)算機(jī)之間的通信[J].四川畜牧獸醫(yī)學(xué)院學(xué)報(bào),2002(4):80-84.
[8] 何廣龍.用VB編程實(shí)現(xiàn)計(jì)算機(jī)通訊[J].河南科技,2013(2):5-64.
[9] 上官勝剛.VB串口編程基礎(chǔ)及實(shí)現(xiàn)[J].科技廣場(chǎng),2012(5):49-52.
[10]杜睿攀.基于VB6.0MSComm控件的串口通信方法研究與應(yīng)用[J].河南科技,2012(20):19-32.
[11]黃華,仲元昌.TTS在智能公交報(bào)站系統(tǒng)中的應(yīng)用[J].自動(dòng)化儀表,2012,33(8):24-26.
Application of Beidou Satellite in Remote Civil Air Defense Alarm System
To against the shortcoming in geographical limitation of traditional alarm systems for civil air defense, the weather-proof remote civil air defense alarm system without communication blackout has been designed by adopting the message communication function of Beidou satellite. The man machine interface of the host computer is developed under Visual Basic environment, with the single chip computer as the main controller to achieve the design of alarm terminal software and hardware. The system can realize the functions of sending single or group alarm commands and feeding back the results, in addition, the alarm terminal can also convert the text content into speech broadcast. The results of experimental test indicate that the system implements remote alarm function and runs stably and reliably.
Beidou satellite Alarm system for civil air defense Message communication Single chip machine Text-to-speech conversion
中央高校基本科研業(yè)務(wù)費(fèi)專項(xiàng)基金資助項(xiàng)目(編號(hào):XDJK2013C107)。
劉碧貞(1990-),女,現(xiàn)為西南大學(xué)農(nóng)業(yè)電氣化與自動(dòng)化專業(yè)在讀碩士研究生;主要從事智能檢測(cè)與控制方面的研究。
TP311
A
10.16086/j.cnki.issn1000-0380.201504006
修改稿收到日期:2014-08-28.