基于ARM 的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計(jì)
本文引用地址:http://m.butianyuan.cn/article/151001.htm
( 5) 管道寫操作
一旦管道創(chuàng)建完成,用戶就可以通過調(diào)用管道寫函數(shù)來寫數(shù)據(jù)。用于必須調(diào)用和初始化一致的寫函數(shù)。
如網(wǎng)絡(luò)模塊調(diào)用pipe_init_ netw o rk 函數(shù)初始化管道,必須通過調(diào)pipe_w rite_netw ork 來寫,若調(diào)用其他函數(shù)寫入將失敗,如表4 所示。
表4 管道寫函數(shù)
表4 中目的模塊ID 和控制字在conf ig . h 文件中定義。msg 是要發(fā)送數(shù)據(jù)的首地址,必須注意的是msg所指向的數(shù)據(jù)必須是字符串類型,必須以“ 0”結(jié)束,否則發(fā)送函數(shù)無法確定msg 數(shù)據(jù)包的長(zhǎng)度。對(duì)于不是以msg 結(jié)尾的數(shù)據(jù)包,必須字符串化,否則發(fā)送函數(shù)的行為未定義。
( 6) 管道讀操作管道讀操作從管道讀取一個(gè)固定長(zhǎng)度的數(shù)據(jù)包,并解析數(shù)據(jù)包,從數(shù)據(jù)包中分離信息。管道的讀操作可以是阻塞模式和非阻塞模式。在阻塞模式下,讀操作將阻塞直到有數(shù)據(jù)返回。用戶通過設(shè)置讀操作中的參數(shù)f lag 可以實(shí)現(xiàn)模式選擇。當(dāng)f lag= 0 時(shí),表示為阻塞模式; 當(dāng)f lag= 1 時(shí),表示為非阻塞模式。管道讀操作也要求管道必須正確的初始化,否則讀失敗,同時(shí)也要求必須選擇正確的管道讀函數(shù),如表5 所示。
表5
表5 中,src 是unsigned shor t * 類型,如果不要求獲取源地址,可以傳遞NU LL。msg 用于存放接收數(shù)據(jù)的內(nèi)存首地址,msg 必須大于或等于251 B??臻g必須由用戶分配。函數(shù)假定msg 的空間已分配且空間足夠大 。
( 7) 基于TCP/ IP 的網(wǎng)絡(luò)通信
裝置采用串口采集消防主機(jī)上的數(shù)據(jù),并且把數(shù)據(jù)轉(zhuǎn)換成TCP/ IP 協(xié)議能識(shí)別的數(shù)據(jù)包,因此串口采集的數(shù)據(jù)源要作為以太網(wǎng)幀的一部分。為了向設(shè)備提供透明的接口并區(qū)分?jǐn)?shù)據(jù)源,需要制定統(tǒng)一的幀格式。幀格式如下:
其中,串*字段用來區(qū)分?jǐn)?shù)據(jù)源; 幀頭、幀尾作為一個(gè)串口幀的起始分界( 可自定義) ; 數(shù)據(jù)部分是來自串口的原始數(shù)據(jù)流。
以太網(wǎng)方面采用面向連接的網(wǎng)絡(luò)通信,采用TCP/ IP網(wǎng)絡(luò)通信協(xié)議。數(shù)據(jù)包結(jié)構(gòu)描述中控制單元格式如下:
應(yīng)用數(shù)據(jù)單元基本格式如下:
消防主機(jī)發(fā)送的信息一般在10~ 100 B 之間,若選擇T CP 協(xié)議,會(huì)使協(xié)議開銷在網(wǎng)絡(luò)的吞吐量中占有很大的比例。U DP 協(xié)議支持實(shí)時(shí)多播通信,保證了網(wǎng)關(guān)向監(jiān)控中心實(shí)時(shí)發(fā)送火警情報(bào),并能有效地減少用戶信息傳輸裝置的開銷和網(wǎng)絡(luò)資源。UDP 協(xié)議的數(shù)據(jù)可靠性和完整性問題由應(yīng)用程序來解決,因此在該系統(tǒng)中使用UDP 更合理。
TCP/ IP 通信模塊采用SOCKET 套接字編程實(shí)現(xiàn)。本系統(tǒng)采用服務(wù)器/ 客戶端編程模型,服務(wù)器和客戶端分別對(duì)應(yīng)監(jiān)控中心工作站服務(wù)器和用戶信息傳輸裝置。
4 結(jié) 語(yǔ)
本文詳細(xì)剖析了利用Internet 實(shí)現(xiàn)火災(zāi)自動(dòng)報(bào)警系統(tǒng)與城市遠(yuǎn)程消防監(jiān)控中心的連接及相關(guān)信息的交互,并設(shè)計(jì)了該系統(tǒng)的關(guān)鍵設(shè)備——嵌入式信息傳輸網(wǎng)關(guān),采用已經(jīng)移植有Linux 2. 6 內(nèi)核操作系統(tǒng)的ARM9單片機(jī),在此基礎(chǔ)上進(jìn)行了應(yīng)用程序的開發(fā),實(shí)現(xiàn)了火災(zāi)探測(cè)信息的處理轉(zhuǎn)發(fā)功能和上位機(jī)與嵌入式網(wǎng)關(guān)的信息交互功能。設(shè)備在實(shí)際環(huán)境中安裝后的測(cè)試結(jié)果表明,該嵌入式系統(tǒng)對(duì)火災(zāi)探測(cè)數(shù)據(jù)及交互信息的處理和轉(zhuǎn)發(fā)穩(wěn)定可靠、實(shí)時(shí)性好,不僅適用于基于IP 的火災(zāi)信息傳輸網(wǎng)絡(luò)中,同時(shí)還可應(yīng)用于其串口和以太網(wǎng)通信的場(chǎng)合中,應(yīng)用前景廣闊。
評(píng)論