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