單芯片嵌入式網(wǎng)關在煤井下人員定位中的應用
3 軟件實現(xiàn)
嵌入式網(wǎng)關的軟件系統(tǒng)完成系統(tǒng)的協(xié)議轉換以及wEB服務器的構建,基于TCP/IP的網(wǎng)絡協(xié)議棧有很多,但是針對嵌入式系統(tǒng),必須考慮到硬件和軟件資源,從而需對其進行精簡使之應用于嵌入式系統(tǒng)。考慮到硬件資源和軟件的開發(fā),本文選用了源碼開放的OpenTCP協(xié)議棧,該協(xié)議棧由芬蘭的Viola Systems公司開發(fā),實現(xiàn)了大多數(shù)的基于vIP4的網(wǎng)絡協(xié)議,如HTTP,DHCP,SMTP,TFTP,TCP/IP,DNS,ARP,ICMP等協(xié)議,并由美國的SourceForge公司根據(jù)NE64的硬件資源將其移植過來,實現(xiàn)了在16位低成本嵌入式系統(tǒng)上的網(wǎng)絡化。本文根據(jù)項目的需要,只移植了HTTP,TCPUDP,IP,ARP,ICMP協(xié)議,程序的流程如圖5所示。
3.1 基于TCP服務端和客戶端的建立
基于TCP服務器端和客戶端程序是本設計的主要應用程序,負責整個定位數(shù)據(jù)的傳輸??紤]到上位機主監(jiān)控軟件的設計,本文采用OpenTCP協(xié)議棧提供的API函數(shù)來建立TCP服務程序。在程序中,遠程主控端可以通過客戶端程序主動撥號與本網(wǎng)關設備的服務器端建立連接,并獲取基站人員定位信息;如果該網(wǎng)關設備中已存放有大量數(shù)據(jù)(取決于本地存儲器),那么它將通過本地客戶端主動撥號與遠程主控端服務器建立連接,并上傳數(shù)據(jù)。
服務器端程序包括初始化函數(shù)void tcps_init(void)、主回調(diào)函數(shù)void tcps_run(void)以及事件監(jiān)聽函數(shù)INT32 tcps_eventlistener(INT8,UINT8,UINT32,UINT32)??蛻舳顺绦蝾愃朴诜掌鞫顺绦?,由于篇幅所限,本文僅列舉了服務器端的初始化函數(shù):
3.2 其他網(wǎng)絡協(xié)議的實現(xiàn)
其他網(wǎng)絡協(xié)議包括嵌入式WEB服務器、UDP、ARP協(xié)議、DNS協(xié)議以及ICMP協(xié)議。WEB服務器是基于HTTP網(wǎng)絡協(xié)議而構建的,在本文主要用來實現(xiàn)系統(tǒng)參數(shù)的查詢和設置,包括TCP的套接字的初始化、HTTP的初始化以及HTTP回調(diào)函數(shù)?;赨DP的數(shù)據(jù)傳輸是該網(wǎng)關的擴展功能,運用于大量數(shù)據(jù)傳輸,并且某些數(shù)據(jù)可以被丟掉的,如將該網(wǎng)關運用在井下人員的語音傳輸系統(tǒng)中。由于篇幅所限,對于ARP協(xié)議、DNS協(xié)議以及ICMP協(xié)議本文不再詳細討論。
3.3 RS 485以及RS 232數(shù)據(jù)傳輸
RS 485和RS 232是該網(wǎng)關設備與井下人員定位基站通信的主渠道,軟件設計主要包括兩部分:初始化和數(shù)據(jù)通信。初始化程序主要設置通信波特率以及有關的狀態(tài),數(shù)據(jù)通信主要包括串口中斷處理(發(fā)送和接收)以及對收到的基站數(shù)據(jù)處理(轉發(fā)遠程主機某些命令、通過以太網(wǎng)發(fā)送人員信息等)。
在現(xiàn)場安裝了5個網(wǎng)關設備,每個網(wǎng)關分別連接6臺基站,安裝距離最遠為600 m。PC機端的主控軟件用VC++6.0設計,主界面包括簡單服務器和客戶端撥號程序。以太網(wǎng)采用自動協(xié)商協(xié)議,網(wǎng)速為100 Mb/s。以太網(wǎng)數(shù)據(jù)緩沖區(qū)設置為1 kB,實際上有用的字節(jié)數(shù)為804 B,除去數(shù)據(jù)長度、校驗和一些特殊信息,最后可用的最大字節(jié)數(shù)為796 B,即一次傳送的最大數(shù)據(jù)量為796 B。經(jīng)驗證該網(wǎng)關可以同時滿足6臺基站波特率在9 600 b/s的滿負載情況下工作。
5 結 語
基于單芯片的MC9S12NE64的嵌入式以太網(wǎng)網(wǎng)關,完成了光纖環(huán)網(wǎng)到井下基站的數(shù)據(jù)轉換,實現(xiàn)了低成本、高速率的嵌入式WEB服務器、簡化的基于TCP服務器和客戶端用戶應用程序以及UDP的數(shù)據(jù)傳輸?shù)南到y(tǒng)。該網(wǎng)關可以廣泛應用于工業(yè)生產(chǎn)和其他控制領域,實現(xiàn)小型工業(yè)網(wǎng)絡監(jiān)測系統(tǒng),具有良好的應用前景。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論