工控智能終端的一個(gè)重要應(yīng)用就是GPRS無(wú)線數(shù)據(jù)業(yè)務(wù)。GPRS無(wú)線數(shù)據(jù)通信因其無(wú)需鋪設(shè)線路,組網(wǎng)方便,覆蓋面廣等特點(diǎn),在無(wú)人職守,遠(yuǎn)程監(jiān)控,電力調(diào)度等場(chǎng)合具有廣泛的應(yīng)用。因此,英創(chuàng)公司的嵌入式主板作為工控終端,除了具有至少一個(gè)以太網(wǎng)接口外,基本上都提供了對(duì)GPRS模塊的支持,以方便客戶通過(guò)GPRS進(jìn)行數(shù)據(jù)通訊。
GPRS數(shù)據(jù)通訊的應(yīng)用通常可分為兩類:一、客戶端/服務(wù)器應(yīng)用模式,二、無(wú)線網(wǎng)關(guān)應(yīng)用模式。英創(chuàng)公司網(wǎng)站文章《GPRS/CDMA應(yīng)用方案》對(duì)這兩種模式進(jìn)行了詳細(xì)的說(shuō)明,本文將討論一種特殊的應(yīng)用模式:工控終端作為客戶端,通過(guò)GPRS與互聯(lián)網(wǎng)上的遠(yuǎn)端服務(wù)器連接,同時(shí)通過(guò)企業(yè)內(nèi)部網(wǎng)與基于企業(yè)網(wǎng)的數(shù)據(jù)中心相連,如圖。
在上圖中工控終端為ARM9主板EM9160,EM9160通過(guò)以太網(wǎng)與基于企業(yè)網(wǎng)的數(shù)據(jù)中心相連接,通過(guò)GPRS與基于互聯(lián)網(wǎng)的數(shù)據(jù)中心相連,在此應(yīng)用中基于互聯(lián)網(wǎng)數(shù)據(jù)中心的IP和基于企業(yè)網(wǎng)的數(shù)據(jù)中心的IP相對(duì)于EM9160的網(wǎng)絡(luò)參數(shù)來(lái)說(shuō)均為外網(wǎng)的IP,要實(shí)現(xiàn)同時(shí)相連的目的就需要在ARM9 主板EM9160上實(shí)現(xiàn)自動(dòng)選路的功能,也就是說(shuō)根據(jù)不同的數(shù)據(jù)中心IP選擇走不同的網(wǎng)絡(luò):GPRS連接的互聯(lián)網(wǎng)或者以太網(wǎng)連接的企業(yè)網(wǎng)。以下介紹將詳細(xì)介紹實(shí)現(xiàn)自動(dòng)選路的方法。
為了讓數(shù)據(jù)缺省是通過(guò)GPRS發(fā)送到遠(yuǎn)端服務(wù)器,需要把EM9160以太網(wǎng)默認(rèn)的網(wǎng)關(guān)設(shè)為空,當(dāng)把該網(wǎng)關(guān)設(shè)為空時(shí),系統(tǒng)路由表中就沒(méi)有能夠到達(dá)遠(yuǎn)端網(wǎng)絡(luò)的路徑了,當(dāng)GPRS成功撥號(hào)上網(wǎng)后,操作系統(tǒng)會(huì)動(dòng)態(tài)的在路由表中增加一條路由記錄,此時(shí)通過(guò)telnet登錄到EM9160上,輸入route print命令將系統(tǒng)路由表打印出來(lái),如圖。
其中的Interface是EM9160通過(guò)GPRS連接到互聯(lián)網(wǎng)時(shí),分配給本地的IP地址, Interface與GatewayAddress相同,表示這是條直連網(wǎng)段路由記錄,Destination和Netmask為0.0.0.0,說(shuō)明這是系統(tǒng)缺省路由,這條路由記錄的意思是:當(dāng)要發(fā)送的數(shù)據(jù)包的IP地址不在系統(tǒng)的路由記錄中時(shí),系統(tǒng)會(huì)將該數(shù)據(jù)包通過(guò)10.14.71.10這個(gè)接口直接發(fā)送出去,這個(gè)接口會(huì)將數(shù)據(jù)交付到下一個(gè)路由器處理。圖2中所示的路由記錄作為系統(tǒng)缺省路由記錄,發(fā)往外網(wǎng)的數(shù)據(jù)都將通過(guò)10.14.71.10這個(gè)接口發(fā)送出去,即通過(guò)GPRS發(fā)送。
為了讓到指定IP的數(shù)據(jù)可以通過(guò)以太網(wǎng)傳輸,只需要在路由表中添加一條靜態(tài)路由記錄,比如想通過(guò)以太網(wǎng)連接的遠(yuǎn)端服務(wù)器IP為10.2.55.21,本地以太網(wǎng)網(wǎng)關(guān)為192.168.201.19,則只需要通過(guò)route命令增加一條路由記錄:
route -p ADD 10.2.55.21 MASK 255.255.255.255 192.168.201.19 if 2
從路由表可以看到,除了通過(guò)GPRS的缺省路由外,還多了一條目標(biāo)主機(jī)地址為10.2.55.21的路由記錄,這條路由記錄的意思是:當(dāng)要發(fā)送的數(shù)據(jù)包的IP地址為10.2.55.21時(shí),系統(tǒng)會(huì)將數(shù)據(jù)包通過(guò)192.168.201.210這個(gè)接口發(fā)送到192.168.201.19這個(gè)地址。其中192.168.201.210為本機(jī)以太網(wǎng)口IP,192.168.201.19為本地局域網(wǎng)與外網(wǎng)連接的網(wǎng)關(guān)。這樣客戶就能夠控制要發(fā)送的數(shù)據(jù)是通過(guò)以太,還是通過(guò)GPRS到達(dá)遠(yuǎn)端主機(jī)了,實(shí)現(xiàn)了雙網(wǎng)絡(luò)選路的方法。
在程序中可通過(guò)CreatProcess來(lái)調(diào)用route程序,如下:
PROCESS_INFORMATION procInfo;
TCHAR szCmdLine[100];
_stprintf( szCmdLine ,_T(‘-p ADD 10.2.55.21 MASK 255.255.255.255 192.168.201.19 if 2’) );
if( !CreateProcess( _T(‘route.exe’), szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &procInfo ) )
TRACE( _T(‘ \nCreateProcess failure!’ ));
另一種情況是EM9160在GPRS應(yīng)用上做客戶端,在以太網(wǎng)應(yīng)用上做服務(wù)器端,一遠(yuǎn)端客戶機(jī)通過(guò)以太網(wǎng)來(lái)訪問(wèn)EM9160。對(duì)于這種情況,當(dāng)EM9160作為服務(wù)器接收到遠(yuǎn)端客戶機(jī)的連接請(qǐng)求時(shí),將得到遠(yuǎn)端客戶機(jī)IP,此時(shí)仍需要通過(guò)route來(lái)增加一條路由記錄到本地路由表中,才能正確與遠(yuǎn)端客戶機(jī)建立連接,實(shí)現(xiàn)方法與前述相同。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35523
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論