引言
無線路由器是一款基于GPRS/CDMA1X公用移動網絡平臺,通過無線接入Internet或VPDN的網絡設備。它能提供可移動的、低成本的基于TCP/IP的數據傳輸通道。
無線路由器可廣泛應用于金融、保險、電力、監控、交通、氣象、水文監測等行業。利用穩定的GPRS/CDMA1X無線網絡,無線路由器可以代替部分有線以太網路由器、HUB、有線MODEM,實現數據的無線傳輸。在公用移動網絡覆蓋的條件下,原先采用以太網接口,依靠有線以太網通信系統的各種終端設備,如PC機、工控機、ATM機、POS機、網絡攝像機等,都可以很方便地通過無線路由器接入到GPRS/CDMA1X網絡中,利用移動互聯網提供的數據服務來進行數據通信。
與傳統有線網絡接入相比,無線路由器設備具有以下優點:
·不受線纜的約束,能迅速提供無線TCP/IP服務。
·具有移動性,可以安裝在輪船、火車、汽車等移動載體上。
·靈活可變,根據需要隨時增減設備。
無線路由器硬件設計
無線路由器由無線通信模塊、以太網接口、嵌入式處理器及存儲器、電源模塊等四部分組成,如圖1所示,它一端通過無線通信模塊經天線接入GPRS/CDMA1X網絡,另一端通過以太網接口連接網絡終端設備,如PC、網絡攝像機、多媒體終端等,無線路由器相當于在網絡終端設備和互聯網之間搭起了一座橋梁。無線通信模塊部分完成接入GPRS/CDMA1X網絡的工作,相當于一部可以撥號上網的移動調制解調器。
無線路由器通過無線通信模塊連接GPRS或CDMA1X移動互聯網絡,通過以太網接口連接內部網絡設備或者內部局域網。無線路由器具備網絡路由功能,能夠在兩個網絡之間轉發數據。各種終端設備發出的數據通過以太網口被處理器接收,處理器對數據進行相應處理后再通過串行口1發送給無線通信模塊,由它轉發到GPRS或CDMA網絡中。同理,從無線網絡來的反向數據經過相反的路徑最終送回網絡終端設備。
無線路由器硬件包括嵌入式處理器、存儲器、無線通信模塊、接口和電源等幾部分,如圖2所示。
圖2無線路由器硬件設計框圖
處理器
無線路由器的嵌入式處理器采用ARM處理器S3C4510B,內核為ARM7TDMI,主頻為50MHz,它提供2個UART串行口、1個I2C總線控制器、1個實時時鐘和1個10/100Mbps以太網控制器。
存儲器
FLASH存儲器為1片1M×16位數據寬度的HY29LV160,它的容量為16M位(2M字節),工作電壓為2.7V~3.6V。
SDRAM存儲器為1片16位數據寬度的HY57V641620,它的容量為4組×16M位(8M字節),工作電壓為3.3V。
I2C存儲器為1片AT24C01,它提供了128字節的EEPROM存儲空間,可用于存放少量在系統掉電時需要保存的數據。
無線通信模塊
采用Wavecom公司生產的GPRS模塊Q2406B或CDMA1X模塊Q2358C,嵌入式處理器通過串行口1與無線通信模塊的相連,模塊通過外接天線與公用移動網絡的蜂窩小區基站通信,收發無線數據。
對外接口
路由器對外有三個接口:一個SMA座的天線接口,50Ω阻抗;一個RJ45座的10M以太網口接口,連接各種網絡終端設備;一個DB9座的RS232串行口,既可以配置成控制臺接口,用來設置參數和設備運行監控,也可配置成串口數據轉換接口,用于將串口數據轉換成網口數據。
電源
考慮到車載電瓶電壓大都為+12V,為了方便連接汽車的點煙器或車載電瓶,無線路由器電源模塊采用直流電源+12輸入,輸出4V、2.8V、3.3V,分別供給無線通信模塊、S3C4510、FLASH等數字電路部分。
無線路由器的軟件設計
操作系統軟件
mClinux是一個完全符合GNU/GPL(通用公共許可證)公約的項目和完全開放代碼,它是標準Linux的一個分支,現在由Lineo公司支持維護。它專門針對沒有MMU的CPU,并且為嵌放式系統做了許多小型化的工作。
無線路由器的操作系統軟件采用mClinux,它是基于Linux內核公開源代碼的一種嵌入式操作系統。由于無線路由器的硬件電路是針對此應用專門設計的,mClinux并不能直接使用,所以重新修改mClinux操作系統軟件中與硬件電路相關的部分源代碼,使得mClinux操作系統能夠在無線路由器電路板上正常運行,針對mClinux進行的改動主要有:
·ARMS3C4510B和存儲器芯片的初始化程序;
·mClinux內核的引導程序bootloader;
·無線路由器各種網絡應用軟件的配置文件;
·針對ARMS3C4510B處理器,選擇合適的編譯工具和參數選項,重新編譯整個操作系統。
無線路由器支持的網絡協議
無線路由器支持的網絡協議示于表1。
表1無線路由器支持的網絡協議
應用軟件
無線路由器的網絡接口包括有線以太網接口和無線撥號上網接口,無線路由器的作用就是在這兩個接口之間轉發數據,提供靜態路由功能。TCP/IP網絡協議的實現代碼已經內嵌在mClinux操作系統中,在內核中設置“IP轉發”和“IP偽裝”就能實現靜態路由功能。應用軟件設計主要包括兩個網絡應用程序:PPP應用程序和iptables應用程序。
PPP應用程序
PPP應用程序用來通過無線通信模塊撥號登錄GPRS/CDMA1X移動網絡,登錄過程遵循PPP點到點通信協議。mClinux操作系統代碼中包含有一個實現PPP協議的程序pppd,但是需要根據GPRS/CDMA1X移動網絡通信的要求,修改pppd源代碼中的部分配置參數,如撥號號碼、登錄用戶名、登錄密碼,就能夠得到需要的PPP應用程序,實現撥號登錄移動網絡。
iptables應用程序
iptables軟件包支持數據處理包偽裝和過濾功能,這種功能被稱為網絡過濾器(netfilter)。在無線路由器中我們使用了“IP轉發”和“IP偽裝”功能。
“IP轉發”功能:
#echo1》 /proc/sys/net/ipv4/ipforward
“IP偽裝”功能:
#iptables-t nat -A POSTROUTING -o ppp0 -j MASQUERADE
“IP偽裝”的工作原理是:當路由器撥號上網后,它擁有的兩個網絡接口,它倆分別擁有兩個IP地址:
a.撥號網絡接口ppp0是一個動態的合法公網IP地址,假定為a.b.c.d;
b.以太網口接口eth0是一個固定的私網的IP地址,假定為192.168.1.1
假如以太網口連接的是一個局域網192.168.1.x,通常這個局域網內的設備是不能訪問到公網IP的。局域網終端設備(假定它的ip地址為192.168.1.22)將無線路由器以太網口的IP地址192.168.1.1設定為默認網關,當無線路由器收到局域網設備訪問公網的請求數據包時,通過上面的“IP轉發”命令對其進行轉發,再通過的“IP偽裝”命令對其進行改寫,將數據包的源地址192.168.1.22替換為自己的合法IP地址a.b.c.d,將源端口號port1換成一個新的端口號port2,并且對該過程進行記錄。
當無線路由器收到Internet主機的響應包時,如果目的端口號正是先前改動后的端口號port2,則再對該包進行反向改寫,將響應包的目的IP(a.b.c.d)及目的端口號(port2)替換為原來記錄的局域網設備的IP地址192.168.1.22和端口號port1,然后再發送給局域網設備。
將私網地址轉化為公網地址,是由存儲在基于iptable的無線路由器上的數據庫完成的。無線路由器的iptable軟件維護這個數據庫,因此它知道如何進行“逆轉換”,所以從公網返回的數據就能正確的送到源訪問設備。
終端設備接入無線網絡方式
無線路由器對終端設備提供兩個接口,分別是以太接口和無線ppp接口。無線路由器中的路由軟件將來自以太口的有線網絡設備的數據自動轉發到GPRS/CDMA網絡,或者接收來自GPRS/CDMA網絡的數據并轉發給以太口的有線網絡設備。這種由無線路由器的自動轉發能力提供了以下三種功能:
·網絡終端設備的數據轉發
網絡終端設備只要通過以太網口連接到無線路由器,并將默認網關設置成無線路由器的IP地址,就可以接入到GPRS/CDMA網絡。終端設備本身的通信軟件無需作任何的改變。
·網絡終端設備的即插即用
無線路由器內置DHCP服務器。終端設備只要設置成自動獲取IP地址,通過以太口連接到無線路由器,就可以通過DHCP協議自動獲取動態的IP地址、網關地址、子網掩碼、DNS等網絡參數,然后可以接入到GPRS/CDMA網絡。終端設備本身的通信軟件無需作任何的改變,真正做到了即插即用。
·移動網絡自適應
無線路由器內置軟件能自動識別路由器硬件配置的無線通信模塊類型,然后采用不同的撥號參數,登錄GPRS或者CDMA1X移動網絡。
圖3無線路由器的設備外形圖
結語
有線網絡終端設備可以利用已有的GPRS/CDMA1X網絡,無需鋪設網線便可通過無線路由器完成網絡無線接入。CDMA1X無線路由器設備可在高速公路監控、防汛指揮、山區防火、地質災害等場合作為應急通信手段。在偏遠地區,島嶼、汽車、三峽游輪、火車等架設通信線路困難或架線不經濟的地方,使用GPRS/CDMA1X無線路由器接入互聯網或者專用VPDN是一種迅速、廉價的解決方法。本設備已經應用在太湖流域管理局的太湖水文數據監控系統中。
總之,在GPRS/CDMA1X蜂窩網覆蓋的范圍內,無線路由器設備能快速經濟地提供無線網絡通信業務。本文所提供方法實現的無線路由器設備通用性強,能夠高效率地運行。
評論
查看更多