單芯片嵌入式網關在煤井下人員定位中的應用
3 軟件實現
嵌入式網關的軟件系統完成系統的協議轉換以及wEB服務器的構建,基于TCP/IP的網絡協議棧有很多,但是針對嵌入式系統,必須考慮到硬件和軟件資源,從而需對其進行精簡使之應用于嵌入式系統。考慮到硬件資源和軟件的開發,本文選用了源碼開放的OpenTCP協議棧,該協議棧由芬蘭的Viola Systems公司開發,實現了大多數的基于vIP4的網絡協議,如HTTP,DHCP,SMTP,TFTP,TCP/IP,DNS,ARP,ICMP等協議,并由美國的SourceForge公司根據NE64的硬件資源將其移植過來,實現了在16位低成本嵌入式系統上的網絡化。本文根據項目的需要,只移植了HTTP,TCPUDP,IP,ARP,ICMP協議,程序的流程如圖5所示。

3.1 基于TCP服務端和客戶端的建立
基于TCP服務器端和客戶端程序是本設計的主要應用程序,負責整個定位數據的傳輸??紤]到上位機主監控軟件的設計,本文采用OpenTCP協議棧提供的API函數來建立TCP服務程序。在程序中,遠程主控端可以通過客戶端程序主動撥號與本網關設備的服務器端建立連接,并獲取基站人員定位信息;如果該網關設備中已存放有大量數據(取決于本地存儲器),那么它將通過本地客戶端主動撥號與遠程主控端服務器建立連接,并上傳數據。
服務器端程序包括初始化函數void tcps_init(void)、主回調函數void tcps_run(void)以及事件監聽函數INT32 tcps_eventlistener(INT8,UINT8,UINT32,UINT32)??蛻舳顺绦蝾愃朴诜掌鞫顺绦?,由于篇幅所限,本文僅列舉了服務器端的初始化函數:

3.2 其他網絡協議的實現
其他網絡協議包括嵌入式WEB服務器、UDP、ARP協議、DNS協議以及ICMP協議。WEB服務器是基于HTTP網絡協議而構建的,在本文主要用來實現系統參數的查詢和設置,包括TCP的套接字的初始化、HTTP的初始化以及HTTP回調函數?;赨DP的數據傳輸是該網關的擴展功能,運用于大量數據傳輸,并且某些數據可以被丟掉的,如將該網關運用在井下人員的語音傳輸系統中。由于篇幅所限,對于ARP協議、DNS協議以及ICMP協議本文不再詳細討論。
3.3 RS 485以及RS 232數據傳輸
RS 485和RS 232是該網關設備與井下人員定位基站通信的主渠道,軟件設計主要包括兩部分:初始化和數據通信。初始化程序主要設置通信波特率以及有關的狀態,數據通信主要包括串口中斷處理(發送和接收)以及對收到的基站數據處理(轉發遠程主機某些命令、通過以太網發送人員信息等)。
在現場安裝了5個網關設備,每個網關分別連接6臺基站,安裝距離最遠為600 m。PC機端的主控軟件用VC++6.0設計,主界面包括簡單服務器和客戶端撥號程序。以太網采用自動協商協議,網速為100 Mb/s。以太網數據緩沖區設置為1 kB,實際上有用的字節數為804 B,除去數據長度、校驗和一些特殊信息,最后可用的最大字節數為796 B,即一次傳送的最大數據量為796 B。經驗證該網關可以同時滿足6臺基站波特率在9 600 b/s的滿負載情況下工作。
5 結 語
基于單芯片的MC9S12NE64的嵌入式以太網網關,完成了光纖環網到井下基站的數據轉換,實現了低成本、高速率的嵌入式WEB服務器、簡化的基于TCP服務器和客戶端用戶應用程序以及UDP的數據傳輸的系統。該網關可以廣泛應用于工業生產和其他控制領域,實現小型工業網絡監測系統,具有良好的應用前景。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論