基于ARM 的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計-設(shè)計應(yīng)用_第1頁
基于ARM 的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計-設(shè)計應(yīng)用_第2頁
基于ARM 的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計-設(shè)計應(yīng)用_第3頁
基于ARM 的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計-設(shè)計應(yīng)用_第4頁
基于ARM 的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計-設(shè)計應(yīng)用_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯基于ARM的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計-設(shè)計應(yīng)用摘要:針對城市消防遠(yuǎn)程監(jiān)控系統(tǒng)中火災(zāi)自動報警系統(tǒng)的聯(lián)網(wǎng)問題,提出一種利用Internet實現(xiàn)火災(zāi)自動報警系統(tǒng)與城市監(jiān)控中心的聯(lián)接方案,設(shè)計了系統(tǒng)的關(guān)鍵設(shè)備——基于ARM的嵌入式網(wǎng)關(guān)。設(shè)備中采用經(jīng)過剪裁、內(nèi)核版本2.6的linux系統(tǒng),提高了信息處理和傳輸?shù)膶崟r性和可靠性,并在嵌入式操作系統(tǒng)的基礎(chǔ)上,利用多線程及管道編程,實現(xiàn)了火災(zāi)探測信息的處理傳輸及上層監(jiān)控中心和下層網(wǎng)關(guān)的信息交互。設(shè)備實際運行后的結(jié)果表明,該火災(zāi)信息傳輸網(wǎng)關(guān)能夠順利地對相關(guān)信息進行處理和轉(zhuǎn)發(fā),在廣域網(wǎng)內(nèi)實現(xiàn)了數(shù)據(jù)的實時、高速、可靠傳輸,滿足基于互聯(lián)網(wǎng)的城市消防遠(yuǎn)程監(jiān)控系統(tǒng)要求。

0引言

火災(zāi)是城市災(zāi)害中的一種主要形式,它已經(jīng)日益成為影響社會經(jīng)濟發(fā)展和人民生活的一個重要災(zāi)害,而目前城市在預(yù)防火災(zāi)方面主要采用的就是在建筑物內(nèi)安裝火災(zāi)自動報警系統(tǒng)及其聯(lián)動消防裝置,雖然這種裝置在及早發(fā)現(xiàn)火情和控制火勢方面發(fā)揮了重要作用,但是在目前這種消防設(shè)備管理和監(jiān)督體系下,很多建筑物的所有方不能夠及時地對建筑物內(nèi)的消防設(shè)施進行檢查維修,導(dǎo)致很多火災(zāi)自動報警系統(tǒng)故障誤報頻發(fā),極大地影響了建筑物內(nèi)的人員的工作和生活;同時,大部分消防主控室主要通過人工值班、電話報警方式,因受到電話線路、報警方式方法以及報警人情緒的影響,往往造成接警調(diào)度處理速度較慢;消防部門在接警時也是依靠電話來傳遞信息的,極易受到報警人或值班員聽覺的影響而導(dǎo)致接傳火警信息有誤,造成不應(yīng)有的錯誤和無法估量的損失,所以建立基于互聯(lián)網(wǎng)的城市消防監(jiān)控系統(tǒng)具有很重要的實踐意義。在這項工程中,關(guān)鍵的就是處于網(wǎng)絡(luò)與自動報警聯(lián)動裝置之間的接入網(wǎng)關(guān)的設(shè)計和研制。利用這種專門的硬件設(shè)備以及在這之中的程序,可以把各個建筑物的消防自動化及其聯(lián)動裝置接入Internet,通過互聯(lián)網(wǎng)連接到城市中的監(jiān)控中心。

1基于互聯(lián)網(wǎng)的城市消防遠(yuǎn)程監(jiān)控系統(tǒng)結(jié)構(gòu)

該系統(tǒng)由三層組成,系統(tǒng)框圖如圖1所示。層是建筑物內(nèi)的消防自動報警及其聯(lián)動裝置以及其他一些用戶的消防設(shè)施,它們由很多不同廠家和類型的火災(zāi)探頭、消防主機、手動消防設(shè)備組成;第二層是火災(zāi)信息收集管理處置中心、政府消防部門信息接口、互聯(lián)網(wǎng)普通用戶查詢接口等信息使用單位。

2火災(zāi)信息傳輸網(wǎng)關(guān)的硬件設(shè)計

該嵌入式網(wǎng)關(guān)的中央處理單元采用三星公司的16/32位RISC處理器S3C2440A,它基于ARM920T內(nèi)核,運算速度高達(dá)400MHz,適用于需要聯(lián)網(wǎng)應(yīng)用的嵌入式電子設(shè)備。其中的NORFLASH用于存儲bootloader啟動代碼,NANDFLASH用于存儲操作系統(tǒng)的內(nèi)核映像和根文件系統(tǒng)映像,SDRAM用于加載操作系統(tǒng)內(nèi)核及應(yīng)用程序等可執(zhí)行代碼和數(shù)據(jù),為其運行提供空間。外圍電路包括以太網(wǎng)模塊、串口模塊、人機接口模塊等,如圖2所示。

圖1基于網(wǎng)絡(luò)的城市火災(zāi)信息傳輸系統(tǒng)

圖2嵌入式網(wǎng)關(guān)的硬件結(jié)構(gòu)

3火災(zāi)信息傳輸網(wǎng)關(guān)的軟件設(shè)計

3.1軟件總體設(shè)計

軟件總體設(shè)計如圖3所示。

圖3軟件基本框架

3.2總體概述

網(wǎng)關(guān)軟件系統(tǒng)按照功能分為4個模塊。

(1)網(wǎng)絡(luò)通信模塊

主要負(fù)責(zé)信息往網(wǎng)絡(luò)上的傳遞,將該網(wǎng)關(guān)獲取的火警,故障等信息依照特定的網(wǎng)絡(luò)協(xié)議準(zhǔn)確無誤地傳遞給上層的應(yīng)用服務(wù)器,同時還要負(fù)責(zé)接收來自服務(wù)器的數(shù)據(jù),如配置信息,控制指令等。具體來說,網(wǎng)絡(luò)通信模塊又可以分為兩個子模塊:數(shù)據(jù)通信和數(shù)據(jù)處理。數(shù)據(jù)通信的工作只是負(fù)責(zé)從網(wǎng)絡(luò)上獲取數(shù)據(jù)或者將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)。數(shù)據(jù)處理主要負(fù)責(zé)組包和解包,涉及到通信協(xié)議。當(dāng)數(shù)據(jù)區(qū)有數(shù)據(jù)需要網(wǎng)絡(luò)通信模塊處理時,數(shù)據(jù)處理子模塊會首先從數(shù)據(jù)區(qū)取出數(shù)據(jù),并分析、判斷數(shù)據(jù)類型,根據(jù)數(shù)據(jù)類型組包,然后將包交給數(shù)據(jù)通信子模塊發(fā)送。

(2)串口采集模塊

主要負(fù)責(zé)通過串口獲取消防主機的狀態(tài),并進行分析,分離出有用信息,并將其寫入數(shù)據(jù)區(qū),供其他模塊使用,它是信息傳輸網(wǎng)關(guān)的。

由于消防主機眾多,而且協(xié)議又各不相同,因此串口采集模塊需要根據(jù)消防主機定制。在此,同樣將串口采集模塊分為兩個子模塊:數(shù)據(jù)采集和數(shù)據(jù)加工。數(shù)據(jù)采集通過特定的對話方式(和具體的消防主機有關(guān))從消防主機獲取數(shù)據(jù),數(shù)據(jù)加工讀取這些數(shù)據(jù),并按照消防主機協(xié)議進行解析,提取初步的信息,如消息類型(火警還是故障),探頭地址(內(nèi)部編碼地址)。然后依照內(nèi)部協(xié)議組包,并寫入數(shù)據(jù)區(qū),以后的工作就交由網(wǎng)絡(luò)通信模塊。

(3)系統(tǒng)控制模塊

主要用于控制信息傳輸網(wǎng)關(guān)的硬件設(shè)備,如指示燈、按鍵、燈等。它從數(shù)據(jù)區(qū)讀取控制指令,根據(jù)控制指令執(zhí)行特定的硬件控制??刂浦噶羁赡苡删W(wǎng)絡(luò)通信模塊產(chǎn)生,如上層服務(wù)器發(fā)送查崗請求,網(wǎng)絡(luò)通信模塊經(jīng)過數(shù)據(jù)處理轉(zhuǎn)化為響喇叭指令,寫入數(shù)據(jù)區(qū)。當(dāng)然,控制指令可以由任何模塊產(chǎn)生。系統(tǒng)控制模塊可以返回硬件狀態(tài)信息,也是通過寫狀態(tài)信息到數(shù)據(jù)區(qū)來實現(xiàn)信息傳遞的。

(4)系統(tǒng)維護模塊

主要負(fù)責(zé)確保系統(tǒng)各個模塊的正常運行,同時記錄及上傳工作日志,供系統(tǒng)維護人員參考,同時收集上來的數(shù)據(jù)經(jīng)過分析和挖掘,可以作為產(chǎn)品性能指標(biāo)制定的依據(jù)。各模塊在建立之初將會在數(shù)據(jù)區(qū)注冊,維護模塊通過這個注冊信息實現(xiàn)心跳應(yīng)答機制來判斷各個模塊的工作狀態(tài)。同時,還將數(shù)據(jù)區(qū)中的日志信息提取出來寫入日志文件,并提出發(fā)送日志文件請求給網(wǎng)絡(luò)通信模塊。

每個模塊依照分工完成職能之內(nèi)的工作,不屬于職能內(nèi)的工作通過寫入數(shù)據(jù)區(qū)交由職能模塊去完成。數(shù)據(jù)區(qū)是各個模塊傳遞信息的媒介,通過格式化的數(shù)據(jù)寫入和讀取,實現(xiàn)模塊間的信息共享和職能分工。

3.3各模塊詳細(xì)設(shè)計

3.3.1流程分析

管理模塊是嵌入式網(wǎng)關(guān)入口,當(dāng)嵌入式網(wǎng)關(guān)加電啟動,嵌入式網(wǎng)關(guān)的操作系統(tǒng)負(fù)責(zé)啟動管理模塊。此時,其他模塊還未啟動。模塊首先為其他模塊啟動初始化系統(tǒng)環(huán)境,如創(chuàng)建管道,共享內(nèi)存等。接著,模塊啟動其他模塊。這時,系統(tǒng)將啟動完成。

接著,模塊建立定時器,創(chuàng)建定時器是為了定時地檢測其他模塊,以判斷其他模塊的狀態(tài),稱這個過程為“心跳”。

當(dāng)以上過程完成后,管理模塊開始監(jiān)視所有管道,當(dāng)管道有數(shù)據(jù)時,他讀取定長的數(shù)據(jù)并分析,找出源地址、目的地址及命令字。根據(jù)命令字類型的不同做不同的處理。程序流程圖如圖4所示。

圖4程序啟動過程

(1)初始化。初始化的主要工作是為模塊間的通信建立有名管道,每個與模塊通信的進程有一個管道。當(dāng)前系統(tǒng)需要創(chuàng)建四個管道。其他模塊如果想要使用管道,必須首先打開管道。所有與管道的通信都有API供其他用戶使用。

(2)啟動其他模塊。模塊通過子進程調(diào)用execl()來啟動其他模塊。每個其他模塊都是一個可執(zhí)行程序,通常位于一個固定的路徑及固定的文件名。每個模塊在啟動之后需要向模塊發(fā)送注冊信息,這些信息包括模塊標(biāo)識、進程ID、進程狀態(tài)等。登記信息由模塊保留,供以后使用。

(3)創(chuàng)建定時器。模塊需要定時地檢測其他模塊的生存狀況,通過注冊一個定時器,可以定時地觸發(fā)檢測功能。

(4)開始*。當(dāng)所有初始化工作完成以后,模塊開始進入工作狀態(tài)。它的主要工作就是負(fù)責(zé)處理管道信息。通過使用select()函數(shù)可以實現(xiàn)同時*多個管道。當(dāng)某個管道有數(shù)據(jù),模塊讀取數(shù)據(jù)包(格式詳見后文),并解析出包頭,得到包的源地址,目的地址,及控制字并加以分析,選擇處理流程。處理流程包括:數(shù)據(jù)中轉(zhuǎn),巡檢,系統(tǒng)維護等。當(dāng)該數(shù)據(jù)包處理完成以后,模塊返回繼續(xù)等待下一個數(shù)據(jù)包。

(5)處理數(shù)據(jù)中轉(zhuǎn)。其他模塊間無法直接通信,都必須通過模塊進行中轉(zhuǎn)。數(shù)據(jù)包中指明了包的源地址,目的地址及控制字。這里的控制字說明數(shù)據(jù)需要中轉(zhuǎn),模塊解析到數(shù)據(jù)包需要中轉(zhuǎn),就將包寫入到給定目的地址的模塊管道。

(6)處理巡檢。服務(wù)器需要定時地檢測前置機各個模塊的狀態(tài),于是發(fā)送巡檢請求給網(wǎng)絡(luò)模塊,網(wǎng)絡(luò)模塊解析后組包發(fā)送給模塊,模塊在分析包發(fā)現(xiàn)該包是巡檢請求,于是通過kill()函數(shù)及注冊記錄信息,判斷各個模塊的狀態(tài),并組包發(fā)送給服務(wù)器。

(7)處理系統(tǒng)維護。系統(tǒng)維護的主要任務(wù)是為了保證系統(tǒng)所有模塊的正常運行。前面初始化了一個定時器,通過定時器,可定時地查詢其他模塊的狀態(tài)。當(dāng)發(fā)現(xiàn)某個模塊異常,模塊將重啟該模塊。

3.3.2關(guān)鍵數(shù)據(jù)結(jié)構(gòu)

(1)包格式

(2)模塊ID定義

如表1所示:

表1模塊ID定義

#defineID_CORE0x0001

#defineID_NETWORK0x0002

#defineID_COM0x0004

#defineID_CTL0x0008

#defineID_LOG0x0010

(3)控制字定義

如表2所示:

表2控制字定義

(4)管道初始化

首先,用戶必須選擇正確地管道初始化函數(shù),通過初始化函數(shù),用戶正確的建立與管道的連接。初始化函數(shù)如表3所示。

表3初始化函數(shù)

(5)管道寫操作

一旦管道創(chuàng)建完成,用戶就可以通過調(diào)用管道寫函數(shù)來寫數(shù)據(jù)。用于必須調(diào)用和初始化一致的寫函數(shù)。

如網(wǎng)絡(luò)模塊調(diào)用pipe_init_network函數(shù)初始化管道,必須通過調(diào)pipe_write_network來寫,若調(diào)用其他函數(shù)寫入將失敗,如表4所示。

表4管道寫函數(shù)

表4中目的模塊ID和控制字在config.h文件中定義。msg是要發(fā)送數(shù)據(jù)的首地址,必須注意的是msg所指向的數(shù)據(jù)必須是字符串類型,必須以“\0”結(jié)束,否則發(fā)送函數(shù)無法確定msg數(shù)據(jù)包的長度。對于不是以msg結(jié)尾的數(shù)據(jù)包,必須字符串化,否則發(fā)送函數(shù)的行為未定義。

(6)管道讀操作管道讀操作從管道讀取一個固定長度的數(shù)據(jù)包,并解析數(shù)據(jù)包,從數(shù)據(jù)包中分離信息。管道的讀操作可以是阻塞模式和非阻塞模式。在阻塞模式下,讀操作將阻塞直到有數(shù)據(jù)返回。用戶通過設(shè)置讀操作中的參數(shù)flag可以實現(xiàn)模式選擇。當(dāng)flag=0時,表示為阻塞模式;當(dāng)flag=1時,表示為非阻塞模式。管道讀操作也要求管道必須正確的初始化,否則讀失敗,同時也要求必須選擇正確的管道讀函數(shù),如表5所示。

表5

表5中,src是unsignedshort*類型,如果不要求獲取源地址,可以傳遞NULL。msg用于存放接收數(shù)據(jù)的內(nèi)存首地址,msg必須大于或等于251B??臻g必須由用戶分配。函數(shù)假定msg的空間已分配且空間足夠大。

(7)基于TCP/IP的網(wǎng)絡(luò)通信

裝置采用串口采集消防主機上的數(shù)據(jù),并且把數(shù)據(jù)轉(zhuǎn)換成TCP/IP協(xié)議能識別的數(shù)據(jù)包,因此串口采集的數(shù)據(jù)源要作為以太網(wǎng)幀的一部分。為了向設(shè)備提供透明的接口并區(qū)分?jǐn)?shù)據(jù)源,需要制定統(tǒng)一的幀格式。幀格式如下:

其中,串*字段用來區(qū)分?jǐn)?shù)據(jù)源;幀頭、幀尾作為一個串口幀的起始分界(可自定義);數(shù)據(jù)部分是來自串口的原始數(shù)據(jù)流。

以太網(wǎng)方面采用面向連接的網(wǎng)絡(luò)通信,采用TCP/IP網(wǎng)絡(luò)通信協(xié)議。數(shù)據(jù)包結(jié)構(gòu)描述中控制單元格式如下:

應(yīng)用數(shù)據(jù)單元基本格式如下:

消防主機發(fā)送的信息一般在10~100B之間,若選擇TCP協(xié)議,會使協(xié)議開銷在網(wǎng)絡(luò)的吞吐量中占有很大的比例。UDP協(xié)議支持實時多播通信,保證了網(wǎng)關(guān)向監(jiān)控中心實時發(fā)送火警情報,并能有效地減少用戶信息傳輸裝置的開銷和網(wǎng)絡(luò)資源。UDP協(xié)議的數(shù)據(jù)可靠性和完整性問題由應(yīng)用程序來解決,因此在該系統(tǒng)中使用UDP更合理。

TCP/IP通信模塊采用SOCKET套接字編程實現(xiàn)。本系統(tǒng)采用服務(wù)器/客戶端編程模型,服務(wù)器和客戶端分別對應(yīng)監(jiān)控中心工作站服務(wù)器和用戶信息傳輸裝置。

4結(jié)語

本文詳細(xì)剖析了利用Internet實現(xiàn)火災(zāi)自動報警系統(tǒng)與城市遠(yuǎn)程消防監(jiān)控中心的連接及相關(guān)信息的交互,并設(shè)計了該系統(tǒng)的關(guān)鍵設(shè)備——嵌入式信息傳輸網(wǎng)關(guān),采用已經(jīng)移植有Linux2.6內(nèi)核操作系統(tǒng)的ARM9單片機,在此基礎(chǔ)上進行了應(yīng)用程序的開發(fā),實現(xiàn)了火災(zāi)探測信息的處理轉(zhuǎn)發(fā)功

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論