一種基于嵌入式Linux系統(tǒng)的的無(wú)線路由器設(shè)計(jì)方案
3G的接人技術(shù)已經(jīng)從WCDMA/TD- SCDMA/CD-MA2000發(fā)展到HSDPA、HSUPA 以及HSPA+ ,并開(kāi)始由3G 網(wǎng)絡(luò)向4G網(wǎng)絡(luò)過(guò)渡。目前HSDPA的接入帶寬可以達(dá)到7.2 Mbps,HSPA+ 的接人帶寬可以達(dá)到21 Mbps,而即將部署的LTE的網(wǎng)絡(luò)帶寬甚至達(dá)到了100 Mbps 。同時(shí),由于接人移動(dòng)互聯(lián)網(wǎng) 的智能終端的數(shù)量快速增長(zhǎng),人們對(duì)移動(dòng)互聯(lián)網(wǎng)的應(yīng)用需求也日益增長(zhǎng)。當(dāng)人們面對(duì)幾十兆帶寬甚至是上百兆帶寬時(shí),必定存在帶寬的過(guò)剩問(wèn)題,即人們不需要在任何時(shí)刻都需要這么大的帶寬,因而可以將過(guò)剩的用戶帶寬分配給更多的用戶。
本文引用地址:http://www.ex-cimer.com/article/262484.htmlinux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
目前,WiFi技術(shù)能夠支持IEEE的802.11b、802.11g和802.1ln標(biāo)準(zhǔn),分別支持10 Mbps、54 Mbps和300 Mbps的無(wú)線傳輸速率。而在傳輸距離上,WiFi能夠在幾米到100m范圍內(nèi)實(shí)現(xiàn)完全覆蓋。
本文正是基于3G/4G 不斷增長(zhǎng)的接入帶寬以及WiFi技術(shù)的各項(xiàng)優(yōu)點(diǎn),提出了一種共享3G/4G 網(wǎng)絡(luò)帶寬的無(wú)線路由器設(shè)計(jì)方案。該方案首先利用嵌入式Linux系統(tǒng),構(gòu)建一個(gè)基于WiFi技術(shù)的無(wú)線局域網(wǎng),智能終端等用戶可以利用自帶的WiFi功能接入該無(wú)線局域網(wǎng),然后再將該無(wú)線局域網(wǎng)橋接至3G/4G網(wǎng)絡(luò)中,從而實(shí)現(xiàn)各個(gè)智能終端設(shè)備對(duì)3G/4G網(wǎng)絡(luò)帶寬的共享。
1. 3G/4G路由器設(shè)計(jì)方案
本路由器的設(shè)計(jì)是基于三個(gè)模塊來(lái)實(shí)現(xiàn)的,分別為3G模塊、WiFi模塊和Linux硬件平臺(tái),如圖1所示。3G模塊的功能是利用運(yùn)營(yíng)商的無(wú)線數(shù)據(jù)卡進(jìn)行PPP撥號(hào),使得路由器能通過(guò)運(yùn)營(yíng)商網(wǎng)絡(luò)連接至互聯(lián)網(wǎng)。WiFi模塊的功能是使得無(wú)線網(wǎng)卡工作在AP(Access Point)模式,并配置動(dòng)態(tài)主機(jī)配置協(xié)議的腳本文件,來(lái)建立一個(gè)2.4 GHz的WiFi無(wú)線局域網(wǎng)。Linux硬件平臺(tái)模塊的功能主要有兩個(gè)方面,一方面要支持無(wú)線網(wǎng)卡和無(wú)線數(shù)據(jù)卡的驅(qū)動(dòng),另一方面要通過(guò)嵌入式Linux系統(tǒng)中的iptables數(shù)據(jù)包過(guò)濾系統(tǒng)將無(wú)線局域網(wǎng)和3G/4G網(wǎng)絡(luò)連通。智能終端等設(shè)備通過(guò)WiFi信道接人到該路由器所提供的無(wú)線局域網(wǎng)中,分配到一個(gè)IP地址之后,則通過(guò)該無(wú)線局域網(wǎng)的網(wǎng)關(guān)進(jìn)行數(shù)據(jù)包的接收和發(fā)送,而該網(wǎng)關(guān)則通過(guò)3G/4G模塊上的網(wǎng)絡(luò)撥號(hào)接口來(lái)接收和發(fā)送數(shù)據(jù)包至3G/4G 網(wǎng)絡(luò),從而實(shí)現(xiàn)了該路由器的設(shè)計(jì)方案。
圖1 3G/4G路由器設(shè)計(jì)方案圖
2. 3G/4G路由器硬件結(jié)構(gòu)
根據(jù)3G/4G路由器設(shè)計(jì)方案,其硬件結(jié)構(gòu)的三大模塊分別采用深圳天謨公司生產(chǎn)的Devkit8500D評(píng)估板、華為公司的E392型無(wú)線上網(wǎng)卡和TP-Link公司的TL-WN821N型無(wú)線網(wǎng)卡。
Devkit8500D評(píng)估板的基本結(jié)構(gòu)如圖2所示。該硬件平臺(tái)采用的是TI公司的DM3730微處理器。
圖2 終端硬件結(jié)構(gòu)圖
E392型無(wú)線上網(wǎng)卡采用高通公司的MDM9x00多模芯片組,同時(shí)支持TD-SCDMA/WCDMA 的3G 網(wǎng)絡(luò)標(biāo)準(zhǔn)和LTE-TDD/FDD 的4G 網(wǎng)絡(luò)標(biāo)準(zhǔn)。目前,利用3G網(wǎng)絡(luò)中已經(jīng)部署升級(jí)的HSPA+技術(shù),下行峰值速率可以達(dá)到21 Mbps,上行峰值速率可以達(dá)到5.76 Mbps;部分地區(qū)采用64QAM 調(diào)制技術(shù)和MIMO技術(shù)對(duì)HsPA+進(jìn)行再次升級(jí),下行峰值速率可以達(dá)到42 Mbps左右;而即將部署的4G網(wǎng)絡(luò),下行峰值速率可以達(dá)到i00 Mbps,上行峰值速率可以達(dá)到50 Mbps。
TL-WN821N 型無(wú)線網(wǎng)卡是基于Realtek公司的RTL8192cu芯片設(shè)計(jì)的,采用MIMO技術(shù)和空頻道檢測(cè)技術(shù),支持802.11n/b/g,性能穩(wěn)定且能夠提供最大300 Mbps的無(wú)線傳輸速率,完全滿足智能終端等設(shè)備的帶寬需求。
3. 3G/4G路由器關(guān)鍵技術(shù)
3G/4G路由器是指利用WiFi的2.4GHz頻段,組建一個(gè)無(wú)線局域網(wǎng),并配置無(wú)線局域網(wǎng)的基本信息,通過(guò)Linux系統(tǒng)的iptables將無(wú)線局域網(wǎng)接人到3G/4G網(wǎng)絡(luò)中。其關(guān)鍵技術(shù)具體分為3G/4G 網(wǎng)絡(luò)的接入、無(wú)線局域網(wǎng)的組建以及iptables的連通三個(gè)部分。
3.1 3G/4G網(wǎng)絡(luò)的接入
該無(wú)線路由器利用E392型多模無(wú)線上網(wǎng)卡在嵌入式Linux系統(tǒng)中進(jìn)行PPP撥號(hào),分別接入到TD-SCDMA,WCDMA以及TD-LTE實(shí)驗(yàn)網(wǎng)中。其具體實(shí)現(xiàn)流程如圖3所示。
圖3 3G/4G網(wǎng)絡(luò)接入流程圖
3.1.1 多模無(wú)線上網(wǎng)卡驅(qū)動(dòng)加載
當(dāng)一個(gè)新的USB設(shè)備接入到Linux主機(jī)中,主機(jī)首先會(huì)通過(guò)控制端點(diǎn)讀入此設(shè)備的配置,接口和端點(diǎn)等信息,利用控制管道完成控制型傳輸,然后主機(jī)再對(duì)該設(shè)備進(jìn)行枚舉。枚舉即讀取該 設(shè)備的許多重要信息,其中最重要的是讀取該設(shè)備的生產(chǎn)商識(shí)別碼(VID)以及產(chǎn)品識(shí)別碼(PID),將這兩個(gè)識(shí)別碼分別與USB內(nèi)核中意存在的各個(gè)識(shí)別碼進(jìn)行匹配。若匹配成功,即的利用Linux系統(tǒng)的USB內(nèi)核成功實(shí)現(xiàn)了 該設(shè)備的USB驅(qū)動(dòng)的加載。
本設(shè)計(jì)方案中采用的嵌入式Linux系統(tǒng)的內(nèi)核版本號(hào)為2.6.32,該內(nèi)核中與USB設(shè)備的VID和PID號(hào)相關(guān)的源碼存在kernel/drivers/usb/serial/option.c中,修改該文件并添加本 終端設(shè)計(jì)方案中所采用的華為E392無(wú)線上網(wǎng)卡的VID和PID,過(guò)程如下:
# define HUAWEI_VENDOR_ID 0x12D1
# define HUAWEI_PRODUCT_E1446 0x1446
{USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID,
HUAWEI_PRODUCT_E1446,0xff,0xff,0xff)}
然后配置嵌入式Linux系統(tǒng)內(nèi)核中的Devices driver→usb support→usb Serial Converter Support選項(xiàng),使得Linux系統(tǒng)內(nèi)核支持USB串口轉(zhuǎn)換,然后選擇按模塊重新編譯內(nèi)核,生成option.ko和usbserial.ko 驅(qū)動(dòng)文件。最后加載這兩個(gè)驅(qū)動(dòng)文件并插上該多模無(wú)線上網(wǎng)卡,完成驅(qū)動(dòng)加載。
3.1.2 終端模式轉(zhuǎn)換
在3.1.1節(jié)中實(shí)現(xiàn)的是USB設(shè)備的加載,即Linux系統(tǒng)識(shí)別出無(wú)線上網(wǎng)卡為USB設(shè)備并能與之通信。而一般 USB無(wú)線上網(wǎng)卡設(shè)備都具有兩個(gè)USB子設(shè)備模式,即usb-storage子設(shè)備模式和modern子設(shè)備模式。此時(shí) Linux系統(tǒng)默認(rèn)會(huì)將該設(shè)備識(shí)別為usb-storage子設(shè)備模式,需要通過(guò)USB設(shè)備的模式轉(zhuǎn)換工具usb- modeswitch將USB設(shè)備的工作模式轉(zhuǎn)換為modem模式,這樣才能使得無(wú)線上網(wǎng)卡能夠正常工作。
首先需要將usb- modeswitch工具移植至開(kāi)發(fā)板,移植過(guò)程如下:
?、?下載并解壓usb-modeswitch一1.2.5.tar.bz2。
?、?進(jìn)入usb-modeswitch目錄,修改Makefile,指定交叉編譯器:
CC = arm-none-linux-gnueabi - gcc
$(PROG):&(OBJS)&(CC) - o $(PROG)&(OBJS)
& (CFLAGS)… . - I/home/libusb- 0.1.12/instal1/inc1ude
&(LIB) … . - L/home/libusb- 0.1.12/install/lib
?、?make。
將生成的usb_modeswitch二進(jìn)制執(zhí)行文件拷人Linux系統(tǒng)中,并修改usb_modeswitch目錄下usb_mode-switch.conf配置文件,在該文件末添加該無(wú)線上網(wǎng)卡的VID設(shè)備號(hào)和其usb-storage子設(shè)備PID設(shè)備號(hào),然后指定其modern子設(shè)備號(hào)。具體配置信息如下:
Default Vendor = 12D1
Default Product = 1446
Target Vendor = 12D1
Target Product = 1506
CheckSuccess = 20
HuaweiMode = O
通過(guò)命令usb_modeswitch - W - c usb_modeswitch.conf對(duì)無(wú)線上網(wǎng)卡進(jìn)行USB設(shè)備的模式轉(zhuǎn)換,轉(zhuǎn)換成功后無(wú)線上網(wǎng)卡即工作在調(diào)制解調(diào)器模式下,同時(shí)可通過(guò)命令ls/dev可以查看到Linux系統(tǒng)生成4個(gè)虛擬USB轉(zhuǎn)串口設(shè)備,即ttyUSB0,ttyUSB1,ttyUSB2和ttyUSB3,可以通過(guò)這幾個(gè)串口進(jìn)行PPP撥號(hào),使得3G/4G路由器可以接至TD-SCDMA、WCDMA以及TD-LTE實(shí)驗(yàn)網(wǎng)中。
pid控制相關(guān)文章:pid控制原理
linux相關(guān)文章:linux教程
路由器相關(guān)文章:路由器工作原理
路由器相關(guān)文章:路由器工作原理
評(píng)論