沈陽航空航天大學 杜 航 王 旭
伴隨著經濟的快速發展,小康社會的建設和城鎮化的不斷推進,城市越來越朝著人口密集、資源與財富集中的趨勢發展。這導致城市所面臨的火災風險不斷加大,火災監控與防治環境日趨復雜。在此背景下,智慧消防的建設逐步提上日程。智慧消防是以大數據、云計算、物聯網等多種先進技術為一體的綜合性預警與決策平臺,其核心就是對海量數據的智能分析與決策。數據的完整性和規范性對于智慧消防系統數據分析和決策起到至關重要的作用。消防物聯網作為智慧消防體系的重要組成部分,是各類消防數據信息的重要來源之一。消防物聯網異構網絡之間數據的整合對于智慧消防系統大數據分析決策有著重要意義。消防物聯網各類火災自動報警與滅火系統傳輸通信協議不一致,系統與系統之間數據信息交互與共享存在障礙,是消防物聯網異構網絡之中最為突出的問題,也是大系統數據融合存在難點。本文將介紹一種基于嵌入式linux的消防系統協議采集與傳輸裝置,實現數據的采集和各類報警與滅火系統之間協議數據的轉換與傳輸,為各類報警與滅火系統之間傳輸數據的整合提供參考與幫助。
數據采集與傳輸以S3C2440為主控芯片,外部拓展有RAM和Flash存儲器。同時設計實現了RS232/CAN數據采集接口、調試接口和以太網輸出接口。其功能結構圖如圖1所示。
為了滿足采集傳輸系統的高性能設計,節點設備的主控芯片采用工民兩用的高性能ARM-Cortex-M3內核的處理器S3C2440芯片。內部包含16/32位ARM920T RISC處理內核,片內帶有MMU 內存管理單元,16KB的指令Cache和16KB的數據Cache,55個中斷源,3個異步串行口,其中一個可設置成紅外口,SPI串行口,可編程看門狗定時器等,支持包括Windows CE、嵌入式Linux和EPOC32在內的多種嵌入式操作系統。

圖1 采集與傳輸裝置功能結構框圖
為了將所有數據采集和解析的實時信息上傳至監控中心,信息采集與傳輸裝置必須與監控中心建立網絡連接。網絡傳輸主控芯片為DM9000A以太網控制芯片。內嵌以太網控制器,采用10/100Mbps的快速、低功耗物理層芯片DM9000A作為以太網收發器,通過媒體獨立接口連接到媒體訪問控制層,可確保不同產品間的高兼容性。通過RJ45網絡接口可實現完整的以太網功能。同時與3G數據透傳模塊相連,實現了無線網絡的硬件構成.
本文存儲模塊電路的設計,采取NAND Flash、SDRAM和 NOR Flash配合使用。為了適應系統高帶寬、高性能存儲要求,存儲芯片選取K4S561632N芯片作為SDRAM的存儲芯片。K4S561632N采用高性能CMOS工藝制造,54腳TSOP2封裝,是一款268,435,456bits高速SDRAM。其同步設計在配合系統時鐘I/O,使得每個時鐘周期里的精細周期控制成為可能。NAND Flash采用Samsung公司生產的512 Mb(64M×8位)NAND Flash存儲器。該存儲器的工作電壓為2.7~3.6V,內部存儲結構為528字節×32頁×4 096塊,頁大小為528字節,塊大小為(16KB+512字節);可實現程序自動擦寫、頁程序、塊擦除、智能的讀寫和擦除操作,一次可以讀寫或者擦除4頁或者塊的內容。
其他接口如RS-232、RS-485、CAN接口的設計比較簡單,限于篇幅不再贅述。
協議轉換與傳輸裝置的軟件是基于嵌入式Linux操作系統開發設計的應用程序。按照軟件功能和多線程設計思想在初始化程序主界面后分別建立多個線程。各自完成各自的功能并相互通信。程序主要功能包括協議數據的采集、解析、存儲與傳輸。當設備啟動后,程序會不斷掃描數據輸入端并采集數據,并按照一定的規約進行數據的解析。解析成功之后,程序會返回一個與之對應的標示符。程序會根據這個特定的標示符到指定的內存地址找到相應的解包封包函數,將其協議數據封包成標準協議(GB/T 26875.3-2011《城市消防遠程監控系統第3部分:報警傳輸網絡通信協議》)類型進行存儲與發送。程序流程圖如圖2所示。

圖2 數據解析流程圖
協議數據的解析就是從數據中甄別出哪些數據段組合在一起是個完整的協議數據。在解析協議數據時,我們主要關注協議頭(起始幀)、協議長度、協議尾。在協議解析的過程中,主要是通過多次判斷驗證來甄別數據真偽。數據被采集上來后,程序會逐字節的連續多次比較,判斷協議的起始數據幀,然后用同樣的方法判斷協議尾。完成這兩步之后,程序初步識別協議類型和型號。最后在根據協議長度等信息來判斷校驗數據的真偽和完整性。如果一切順利,那么解析函數會返回一個標識符(一個函數地址指針)并根據這個標示符到內存地址找到對應的解包封包函數,實現協議數據的轉換。
經過處理好的數據,程序會將它存放在內存的指定位置,供給我們讀取和其他操作。經過封包好的數據,程序一方面進行存儲,另一方面會通過以太網發往上層應用中心進行數據的分析與決策。實現數據發送的過程主要包括:調用socket函數建立套接字、調用bind函數綁定指定IP地址,最后通過connect函數鏈接,用write函數將數據包寫到相應的IP地址。
模擬測試以沈陽消防研究所某型火災自動報警控制系統前置機通信的協議為例進行轉換測試,其協議結構如下表1。經處理轉換后,輸出數據將以GB/T 26875.3-2011《城市消防遠程監控系統 第3部分:報警傳輸網絡通信協議》所規定的協議結構進行傳輸。

表1 協議數據結構
測試前置機的傳輸通信協議數據長度為30字節,由上至下依次排列。起始標志占三個字節,內容為FF FF FF,報警類型包括火警、故障和故障恢復?;鹁瘶俗R碼為第4個字節,內容為0A。故障標識碼為第4個字節,內容為0B。故障恢復標識碼為第4個字節+第10個字節,內容為0B 01。控制器地址號數據位置為第11個字節;回路號數據位置為第12個字節;部件號數據位置為第13個字節。報警時間數據位置為第14~18個字節。第5~9字節和第19~30字節為預留空間。
當前置機接入系統協議數據采集與傳輸裝置后,前置機會主動向控制器發送正常巡檢命令數據:FF FF FF 09 00 00 01 6E 01 0A 00 83,發送間隔1000ms。當前置機發送非正常信號時,傳輸終端會采集信號并處理。例如,當發送信號為FF FF FF(起始標識)0A(火警標識)01 01 6E 04 13 00 04(主機號) 01(回路號)03(部件號)14 08 0B 11 0A 0A(日期時間)A3 00 00 00 00 00 00 00 00 01 88 時,信號表示為:01回路003號部件位置發生火警,時間為2008/11/17 11:17。經過傳輸終端的處理后,往監控中心發送的信號為:02 01 01 01 19 01 01 6E 04 13 00 0400 01 00 03 00 73。
基于嵌入式linux的消防系統協議轉換與傳輸設備綜合運用多種信息技術,實現了對于火警、消防設備設施狀態數據信息的采集、協議轉換、傳輸。經測試終端運行穩定,傳輸數據可靠,達到了預期。
[1]徐斌.當前嵌入式LINUX分析與應用[J].電子制作,2015,13:73.
[2]葉棽,謝捷如.基于SoC和嵌入式Linux的數據采集系統設計[J].計算機技術與發展,2015,08:1-6.
[3]史小明.嵌入式系統關鍵技術分析與開發應用[J].電子技術與軟件工程,2015,11:224.
[4]丁康.淺析物聯網技術在消防裝備管理方面的應用[J].通訊世界,2015,09:42.
[5]王兆國,王輝,王坤.物聯網在消防領域的應用前景分析[J].中國公共安全(學術版),2015,02:35-38.
[6]權向科.淺談物聯網技術在建筑火災防控中的應用[J].四川建材,2015,01:256-257.
[7]馬飛.談城市消防遠程監控系統應用[J].消防技術與產品信息,2010,07:66-68.