沈陽航空航天大學(xué) 杜 航 王 旭
伴隨著經(jīng)濟(jì)的快速發(fā)展,小康社會(huì)的建設(shè)和城鎮(zhèn)化的不斷推進(jìn),城市越來越朝著人口密集、資源與財(cái)富集中的趨勢(shì)發(fā)展。這導(dǎo)致城市所面臨的火災(zāi)風(fēng)險(xiǎn)不斷加大,火災(zāi)監(jiān)控與防治環(huán)境日趨復(fù)雜。在此背景下,智慧消防的建設(shè)逐步提上日程。智慧消防是以大數(shù)據(jù)、云計(jì)算、物聯(lián)網(wǎng)等多種先進(jìn)技術(shù)為一體的綜合性預(yù)警與決策平臺(tái),其核心就是對(duì)海量數(shù)據(jù)的智能分析與決策。數(shù)據(jù)的完整性和規(guī)范性對(duì)于智慧消防系統(tǒng)數(shù)據(jù)分析和決策起到至關(guān)重要的作用。消防物聯(lián)網(wǎng)作為智慧消防體系的重要組成部分,是各類消防數(shù)據(jù)信息的重要來源之一。消防物聯(lián)網(wǎng)異構(gòu)網(wǎng)絡(luò)之間數(shù)據(jù)的整合對(duì)于智慧消防系統(tǒng)大數(shù)據(jù)分析決策有著重要意義。消防物聯(lián)網(wǎng)各類火災(zāi)自動(dòng)報(bào)警與滅火系統(tǒng)傳輸通信協(xié)議不一致,系統(tǒng)與系統(tǒng)之間數(shù)據(jù)信息交互與共享存在障礙,是消防物聯(lián)網(wǎng)異構(gòu)網(wǎng)絡(luò)之中最為突出的問題,也是大系統(tǒng)數(shù)據(jù)融合存在難點(diǎn)。本文將介紹一種基于嵌入式linux的消防系統(tǒng)協(xié)議采集與傳輸裝置,實(shí)現(xiàn)數(shù)據(jù)的采集和各類報(bào)警與滅火系統(tǒng)之間協(xié)議數(shù)據(jù)的轉(zhuǎn)換與傳輸,為各類報(bào)警與滅火系統(tǒng)之間傳輸數(shù)據(jù)的整合提供參考與幫助。
數(shù)據(jù)采集與傳輸以S3C2440為主控芯片,外部拓展有RAM和Flash存儲(chǔ)器。同時(shí)設(shè)計(jì)實(shí)現(xiàn)了RS232/CAN數(shù)據(jù)采集接口、調(diào)試接口和以太網(wǎng)輸出接口。其功能結(jié)構(gòu)圖如圖1所示。
為了滿足采集傳輸系統(tǒng)的高性能設(shè)計(jì),節(jié)點(diǎn)設(shè)備的主控芯片采用工民兩用的高性能ARM-Cortex-M3內(nèi)核的處理器S3C2440芯片。內(nèi)部包含16/32位ARM920T RISC處理內(nèi)核,片內(nèi)帶有MMU 內(nèi)存管理單元,16KB的指令Cache和16KB的數(shù)據(jù)Cache,55個(gè)中斷源,3個(gè)異步串行口,其中一個(gè)可設(shè)置成紅外口,SPI串行口,可編程看門狗定時(shí)器等,支持包括Windows CE、嵌入式Linux和EPOC32在內(nèi)的多種嵌入式操作系統(tǒng)。
圖1 采集與傳輸裝置功能結(jié)構(gòu)框圖
為了將所有數(shù)據(jù)采集和解析的實(shí)時(shí)信息上傳至監(jiān)控中心,信息采集與傳輸裝置必須與監(jiān)控中心建立網(wǎng)絡(luò)連接。網(wǎng)絡(luò)傳輸主控芯片為DM9000A以太網(wǎng)控制芯片。內(nèi)嵌以太網(wǎng)控制器,采用10/100Mbps的快速、低功耗物理層芯片DM9000A作為以太網(wǎng)收發(fā)器,通過媒體獨(dú)立接口連接到媒體訪問控制層,可確保不同產(chǎn)品間的高兼容性。通過RJ45網(wǎng)絡(luò)接口可實(shí)現(xiàn)完整的以太網(wǎng)功能。同時(shí)與3G數(shù)據(jù)透?jìng)髂K相連,實(shí)現(xiàn)了無線網(wǎng)絡(luò)的硬件構(gòu)成.
本文存儲(chǔ)模塊電路的設(shè)計(jì),采取NAND Flash、SDRAM和 NOR Flash配合使用。為了適應(yīng)系統(tǒng)高帶寬、高性能存儲(chǔ)要求,存儲(chǔ)芯片選取K4S561632N芯片作為SDRAM的存儲(chǔ)芯片。K4S561632N采用高性能CMOS工藝制造,54腳TSOP2封裝,是一款268,435,456bits高速SDRAM。其同步設(shè)計(jì)在配合系統(tǒng)時(shí)鐘I/O,使得每個(gè)時(shí)鐘周期里的精細(xì)周期控制成為可能。NAND Flash采用Samsung公司生產(chǎn)的512 Mb(64M×8位)NAND Flash存儲(chǔ)器。該存儲(chǔ)器的工作電壓為2.7~3.6V,內(nèi)部存儲(chǔ)結(jié)構(gòu)為528字節(jié)×32頁×4 096塊,頁大小為528字節(jié),塊大小為(16KB+512字節(jié));可實(shí)現(xiàn)程序自動(dòng)擦寫、頁程序、塊擦除、智能的讀寫和擦除操作,一次可以讀寫或者擦除4頁或者塊的內(nèi)容。
其他接口如RS-232、RS-485、CAN接口的設(shè)計(jì)比較簡單,限于篇幅不再贅述。
協(xié)議轉(zhuǎn)換與傳輸裝置的軟件是基于嵌入式Linux操作系統(tǒng)開發(fā)設(shè)計(jì)的應(yīng)用程序。按照軟件功能和多線程設(shè)計(jì)思想在初始化程序主界面后分別建立多個(gè)線程。各自完成各自的功能并相互通信。程序主要功能包括協(xié)議數(shù)據(jù)的采集、解析、存儲(chǔ)與傳輸。當(dāng)設(shè)備啟動(dòng)后,程序會(huì)不斷掃描數(shù)據(jù)輸入端并采集數(shù)據(jù),并按照一定的規(guī)約進(jìn)行數(shù)據(jù)的解析。解析成功之后,程序會(huì)返回一個(gè)與之對(duì)應(yīng)的標(biāo)示符。程序會(huì)根據(jù)這個(gè)特定的標(biāo)示符到指定的內(nèi)存地址找到相應(yīng)的解包封包函數(shù),將其協(xié)議數(shù)據(jù)封包成標(biāo)準(zhǔn)協(xié)議(GB/T 26875.3-2011《城市消防遠(yuǎn)程監(jiān)控系統(tǒng)第3部分:報(bào)警傳輸網(wǎng)絡(luò)通信協(xié)議》)類型進(jìn)行存儲(chǔ)與發(fā)送。程序流程圖如圖2所示。
圖2 數(shù)據(jù)解析流程圖
協(xié)議數(shù)據(jù)的解析就是從數(shù)據(jù)中甄別出哪些數(shù)據(jù)段組合在一起是個(gè)完整的協(xié)議數(shù)據(jù)。在解析協(xié)議數(shù)據(jù)時(shí),我們主要關(guān)注協(xié)議頭(起始幀)、協(xié)議長度、協(xié)議尾。在協(xié)議解析的過程中,主要是通過多次判斷驗(yàn)證來甄別數(shù)據(jù)真?zhèn)?。?shù)據(jù)被采集上來后,程序會(huì)逐字節(jié)的連續(xù)多次比較,判斷協(xié)議的起始數(shù)據(jù)幀,然后用同樣的方法判斷協(xié)議尾。完成這兩步之后,程序初步識(shí)別協(xié)議類型和型號(hào)。最后在根據(jù)協(xié)議長度等信息來判斷校驗(yàn)數(shù)據(jù)的真?zhèn)魏屯暾?。如果一切順利,那么解析函?shù)會(huì)返回一個(gè)標(biāo)識(shí)符(一個(gè)函數(shù)地址指針)并根據(jù)這個(gè)標(biāo)示符到內(nèi)存地址找到對(duì)應(yīng)的解包封包函數(shù),實(shí)現(xiàn)協(xié)議數(shù)據(jù)的轉(zhuǎn)換。
經(jīng)過處理好的數(shù)據(jù),程序會(huì)將它存放在內(nèi)存的指定位置,供給我們讀取和其他操作。經(jīng)過封包好的數(shù)據(jù),程序一方面進(jìn)行存儲(chǔ),另一方面會(huì)通過以太網(wǎng)發(fā)往上層應(yīng)用中心進(jìn)行數(shù)據(jù)的分析與決策。實(shí)現(xiàn)數(shù)據(jù)發(fā)送的過程主要包括:調(diào)用socket函數(shù)建立套接字、調(diào)用bind函數(shù)綁定指定IP地址,最后通過connect函數(shù)鏈接,用write函數(shù)將數(shù)據(jù)包寫到相應(yīng)的IP地址。
模擬測(cè)試以沈陽消防研究所某型火災(zāi)自動(dòng)報(bào)警控制系統(tǒng)前置機(jī)通信的協(xié)議為例進(jìn)行轉(zhuǎn)換測(cè)試,其協(xié)議結(jié)構(gòu)如下表1。經(jīng)處理轉(zhuǎn)換后,輸出數(shù)據(jù)將以GB/T 26875.3-2011《城市消防遠(yuǎn)程監(jiān)控系統(tǒng) 第3部分:報(bào)警傳輸網(wǎng)絡(luò)通信協(xié)議》所規(guī)定的協(xié)議結(jié)構(gòu)進(jìn)行傳輸。
表1 協(xié)議數(shù)據(jù)結(jié)構(gòu)
測(cè)試前置機(jī)的傳輸通信協(xié)議數(shù)據(jù)長度為30字節(jié),由上至下依次排列。起始標(biāo)志占三個(gè)字節(jié),內(nèi)容為FF FF FF,報(bào)警類型包括火警、故障和故障恢復(fù)。火警標(biāo)識(shí)碼為第4個(gè)字節(jié),內(nèi)容為0A。故障標(biāo)識(shí)碼為第4個(gè)字節(jié),內(nèi)容為0B。故障恢復(fù)標(biāo)識(shí)碼為第4個(gè)字節(jié)+第10個(gè)字節(jié),內(nèi)容為0B 01??刂破鞯刂诽?hào)數(shù)據(jù)位置為第11個(gè)字節(jié);回路號(hào)數(shù)據(jù)位置為第12個(gè)字節(jié);部件號(hào)數(shù)據(jù)位置為第13個(gè)字節(jié)。報(bào)警時(shí)間數(shù)據(jù)位置為第14~18個(gè)字節(jié)。第5~9字節(jié)和第19~30字節(jié)為預(yù)留空間。
當(dāng)前置機(jī)接入系統(tǒng)協(xié)議數(shù)據(jù)采集與傳輸裝置后,前置機(jī)會(huì)主動(dòng)向控制器發(fā)送正常巡檢命令數(shù)據(jù):FF FF FF 09 00 00 01 6E 01 0A 00 83,發(fā)送間隔1000ms。當(dāng)前置機(jī)發(fā)送非正常信號(hào)時(shí),傳輸終端會(huì)采集信號(hào)并處理。例如,當(dāng)發(fā)送信號(hào)為FF FF FF(起始標(biāo)識(shí))0A(火警標(biāo)識(shí))01 01 6E 04 13 00 04(主機(jī)號(hào)) 01(回路號(hào))03(部件號(hào))14 08 0B 11 0A 0A(日期時(shí)間)A3 00 00 00 00 00 00 00 00 01 88 時(shí),信號(hào)表示為:01回路003號(hào)部件位置發(fā)生火警,時(shí)間為2008/11/17 11:17。經(jīng)過傳輸終端的處理后,往監(jiān)控中心發(fā)送的信號(hào)為:02 01 01 01 19 01 01 6E 04 13 00 0400 01 00 03 00 73。
基于嵌入式linux的消防系統(tǒng)協(xié)議轉(zhuǎn)換與傳輸設(shè)備綜合運(yùn)用多種信息技術(shù),實(shí)現(xiàn)了對(duì)于火警、消防設(shè)備設(shè)施狀態(tài)數(shù)據(jù)信息的采集、協(xié)議轉(zhuǎn)換、傳輸。經(jīng)測(cè)試終端運(yùn)行穩(wěn)定,傳輸數(shù)據(jù)可靠,達(dá)到了預(yù)期。
[1]徐斌.當(dāng)前嵌入式LINUX分析與應(yīng)用[J].電子制作,2015,13:73.
[2]葉棽,謝捷如.基于SoC和嵌入式Linux的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,08:1-6.
[3]史小明.嵌入式系統(tǒng)關(guān)鍵技術(shù)分析與開發(fā)應(yīng)用[J].電子技術(shù)與軟件工程,2015,11:224.
[4]丁康.淺析物聯(lián)網(wǎng)技術(shù)在消防裝備管理方面的應(yīng)用[J].通訊世界,2015,09:42.
[5]王兆國,王輝,王坤.物聯(lián)網(wǎng)在消防領(lǐng)域的應(yīng)用前景分析[J].中國公共安全(學(xué)術(shù)版),2015,02:35-38.
[6]權(quán)向科.淺談物聯(lián)網(wǎng)技術(shù)在建筑火災(zāi)防控中的應(yīng)用[J].四川建材,2015,01:256-257.
[7]馬飛.談城市消防遠(yuǎn)程監(jiān)控系統(tǒng)應(yīng)用[J].消防技術(shù)與產(chǎn)品信息,2010,07:66-68.