單芯片嵌入式網(wǎng)關(guān)在煤井下人員定位中的應用
隨著Internet技術(shù)的飛速發(fā)展,煤礦井下光纖環(huán)網(wǎng)是近年來研究與應用的熱點,它在煤礦井下安全監(jiān)控中起著越來越重要的作用。本文在煤礦井下光纖環(huán)網(wǎng)的框架下,設(shè)計了光纖以太網(wǎng)轉(zhuǎn)工業(yè)RS 485總線的網(wǎng)關(guān),該網(wǎng)關(guān)可將井下人員定位基站入網(wǎng),實現(xiàn)人員定位信息的網(wǎng)絡查詢、跟蹤以及安全檢測與監(jiān)控等功能。
由于單芯片嵌入式網(wǎng)關(guān)具有成本低、體積小、可靠性高、功耗低、環(huán)境適應能力強等諸多優(yōu)點,在通信和工業(yè)控制等領(lǐng)域得到了日益廣泛的應用。
1 嵌入式網(wǎng)關(guān)構(gòu)架
基于以太網(wǎng)的TCP/IP轉(zhuǎn)換為工業(yè)RS 485和RS 232協(xié)議的基本構(gòu)架如圖1所示。根據(jù)嵌入式網(wǎng)關(guān)的功能,本設(shè)計實現(xiàn)了以下協(xié)議:HTTP,TCP,UDP,IP,ICMP,ARP。
(1)HTTP是嵌入式WEB服務器的主要構(gòu)架,屬于應用層協(xié)議,本文主要實現(xiàn)網(wǎng)關(guān)系統(tǒng)參數(shù)設(shè)置與查詢、基站系統(tǒng)參數(shù)的設(shè)置與查詢。
(2)TCP協(xié)議是面對連接的,在本文中實現(xiàn)井下基站與遠程以太網(wǎng)終端數(shù)據(jù)的通信:提供TCP Server功能,負責終端電腦主動連接網(wǎng)關(guān),實現(xiàn)數(shù)據(jù)通信;實現(xiàn)TCP Client功能,提供網(wǎng)關(guān)主動發(fā)起的數(shù)據(jù)傳輸,比如網(wǎng)關(guān)中有數(shù)據(jù)需要通信的時候(注:圖1中的TCP S/C代表用戶基于TCP Server以及TCP Client的應用程序,下同)。
(3)UDP協(xié)議是面對連接的網(wǎng)絡數(shù)據(jù)傳輸,數(shù)據(jù)傳輸不可靠,但是在某些場合,比如數(shù)據(jù)的鏈路比較少,那么可以采用基于UDP的數(shù)據(jù)傳輸協(xié)議。在本設(shè)計中保留了基于UDP的數(shù)據(jù)傳輸協(xié)議。
(4)IP協(xié)議是網(wǎng)絡通信協(xié)議的主要協(xié)議,由圖1可知,UDP和TCP協(xié)議就是在此層之上實現(xiàn)的。
(5)ICMP和ARP協(xié)議實現(xiàn)網(wǎng)絡的一些基本配置,ARP為地址解析協(xié)議,是將IP地址轉(zhuǎn)換到硬件地址的協(xié)議,ICMP是IP的附件,用于實現(xiàn)網(wǎng)絡上節(jié)點的診斷,并返回錯誤消息,也就是我們最常用的ping協(xié)議。
2 硬件結(jié)構(gòu)設(shè)計
硬件的系統(tǒng)框圖如圖2所示,光纖轉(zhuǎn)電模塊實現(xiàn)光纖到電的RJ45轉(zhuǎn)換,RJ45實現(xiàn)光纖轉(zhuǎn)換模塊和MC9S12NE64(以下簡稱NE64)的連接,4個SPE485實現(xiàn)該網(wǎng)關(guān)與基站的RS 485連接,MAX232實現(xiàn)調(diào)試輸出或基站的RS 232連接。本系統(tǒng)的光纖轉(zhuǎn)電模塊采用netLINK公司的HTB-1100S-25,該轉(zhuǎn)換器為自適應光纖收發(fā)器,用于將100 Mb/s的光網(wǎng)轉(zhuǎn)換為速度為:10/100 Mb/s的雙絞線RJ45接口。
2.1 MC9S12NE64以太網(wǎng)單芯片簡介
NE64是Freescale公司于2004年9月推出的高性價比、業(yè)內(nèi)首個嵌入式單芯片以太網(wǎng)微控制器,內(nèi)核為HCS12。由標準的內(nèi)置外設(shè)構(gòu)成,主要包括一個16 b的中央處理器單元(HCS12 CPU),64 kB的FLASHE2PROM,8 kB的RAM(EMAC共享),集成了10/100 Mb/s以太網(wǎng)物理層收發(fā)器(EPHY)的以太網(wǎng)媒體訪問控制器(EMAC),2個異步串行通訊接口模塊(SCI),1個4通道16 b定時器模塊(TIM)以及多達21個管腳可用于鍵盤喚醒輸入(KWU)等。內(nèi)置的PLL電路允許對功耗和性能進行調(diào)節(jié)來滿足運行要求。此外,內(nèi)置的帶隙基準穩(wěn)壓器,用于將3.15~3.45 V的外部工作電壓轉(zhuǎn)換成2.5 V的內(nèi)部數(shù)字電源電壓(VDD)。
2.2 網(wǎng)絡接口設(shè)計
NE64內(nèi)部集成了用于連接以太網(wǎng)的EMAC和EPHY協(xié)議層,因此省了外接的PHY,只需連接少許的外部電阻和電容以及一個RJ45接口就可以實現(xiàn)網(wǎng)絡的物理連接,接口電路如圖3所示。
2.3 RS 485和RS 232接口設(shè)計
NE64本身具有雙串口,因此本文將串口0(SCI0) 設(shè)計為RS 485通信,將串口1(SCIl)設(shè)計為RS 232通信。
在煤礦井下人員定位系統(tǒng)中,該網(wǎng)關(guān)通過RS 485(串口0)與本地基站相連以獲取人員信息。為增加系統(tǒng)中RS 485的驅(qū)動能力,設(shè)計了4路接口,原理圖如圖4所示。
在圖4(a)中,只畫了一路的RS 485接口電路,其他的3路基本一樣。在接收腳RXD00串聯(lián)電阻和LED指示燈,用于指示電路的接收狀態(tài),發(fā)送狀態(tài)的LED指示燈沒有在圖中畫出,原理同接收電路。WD1~WD3及串聯(lián)的20 Ω小電阻,具有防雷擊功能。圖4(b)中的RXD01~RXD03是另外3路RS 485的接收端,要注意的是圖中74HC09是集電極開路輸出,因此在輸出時需接一個上拉電阻,RXD0直接連接NE64的串口0的接收端,而4路RS 485的發(fā)送端TXD0連接在一起并和NE64的串口0的發(fā)送端相連。[!--empirenews.page--]
3 軟件實現(xiàn)
嵌入式網(wǎng)關(guān)的軟件系統(tǒng)完成系統(tǒng)的協(xié)議轉(zhuǎn)換以及wEB服務器的構(gòu)建,基于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è)計的主要應用程序,負責整個定位數(shù)據(jù)的傳輸??紤]到上位機主監(jiān)控軟件的設(shè)計,本文采用OpenTCP協(xié)議棧提供的API函數(shù)來建立TCP服務程序。在程序中,遠程主控端可以通過客戶端程序主動撥號與本網(wǎng)關(guān)設(shè)備的服務器端建立連接,并獲取基站人員定位信息;如果該網(wǎng)關(guān)設(shè)備中已存放有大量數(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)??蛻舳顺绦蝾愃朴诜掌鞫顺绦颍捎谄蓿疚膬H列舉了服務器端的初始化函數(shù):
3.2 其他網(wǎng)絡協(xié)議的實現(xiàn)
其他網(wǎng)絡協(xié)議包括嵌入式WEB服務器、UDP、ARP協(xié)議、DNS協(xié)議以及ICMP協(xié)議。WEB服務器是基于HTTP網(wǎng)絡協(xié)議而構(gòu)建的,在本文主要用來實現(xiàn)系統(tǒng)參數(shù)的查詢和設(shè)置,包括TCP的套接字的初始化、HTTP的初始化以及HTTP回調(diào)函數(shù)。基于UDP的數(shù)據(jù)傳輸是該網(wǎng)關(guān)的擴展功能,運用于大量數(shù)據(jù)傳輸,并且某些數(shù)據(jù)可以被丟掉的,如將該網(wǎng)關(guān)運用在井下人員的語音傳輸系統(tǒng)中。由于篇幅所限,對于ARP協(xié)議、DNS協(xié)議以及ICMP協(xié)議本文不再詳細討論。
3.3 RS 485以及RS 232數(shù)據(jù)傳輸
RS 485和RS 232是該網(wǎng)關(guān)設(shè)備與井下人員定位基站通信的主渠道,軟件設(shè)計主要包括兩部分:初始化和數(shù)據(jù)通信。初始化程序主要設(shè)置通信波特率以及有關(guān)的狀態(tài),數(shù)據(jù)通信主要包括串口中斷處理(發(fā)送和接收)以及對收到的基站數(shù)據(jù)處理(轉(zhuǎn)發(fā)遠程主機某些命令、通過以太網(wǎng)發(fā)送人員信息等)。
4 單芯片嵌入式網(wǎng)關(guān)在煤礦井下人員定位中的應用
在現(xiàn)場安裝了5個網(wǎng)關(guān)設(shè)備,每個網(wǎng)關(guān)分別連接6臺基站,安裝距離最遠為600 m。PC機端的主控軟件用VC++6.0設(shè)計,主界面包括簡單服務器和客戶端撥號程序。以太網(wǎng)采用自動協(xié)商協(xié)議,網(wǎng)速為100 Mb/s。以太網(wǎng)數(shù)據(jù)緩沖區(qū)設(shè)置為1 kB,實際上有用的字節(jié)數(shù)為804 B,除去數(shù)據(jù)長度、校驗和一些特殊信息,最后可用的最大字節(jié)數(shù)為796 B,即一次傳送的最大數(shù)據(jù)量為796 B。經(jīng)驗證該網(wǎng)關(guān)可以同時滿足6臺基站波特率在9 600 b/s的滿負載情況下工作。
5 結(jié) 語
基于單芯片的MC9S12NE64的嵌入式以太網(wǎng)網(wǎng)關(guān),完成了光纖環(huán)網(wǎng)到井下基站的數(shù)據(jù)轉(zhuǎn)換,實現(xiàn)了低成本、高速率的嵌入式WEB服務器、簡化的基于TCP服務器和客戶端用戶應用程序以及UDP的數(shù)據(jù)傳輸?shù)南到y(tǒng)。該網(wǎng)關(guān)可以廣泛應用于工業(yè)生產(chǎn)和其他控制領(lǐng)域,實現(xiàn)小型工業(yè)網(wǎng)絡監(jiān)測系統(tǒng),具有良好的應用前景。