<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種基于嵌入式Linux系統(tǒng)的的無線路由器設(shè)計方案

          一種基于嵌入式Linux系統(tǒng)的的無線路由器設(shè)計方案

          作者: 時間:2014-09-02 來源:網(wǎng)絡(luò) 收藏

            3G的接人技術(shù)已經(jīng)從WCDMA/TD- SCDMA/CD-MA2000發(fā)展到HSDPA、HSUPA 以及HSPA+ ,并開始由3G 網(wǎng)絡(luò)向4G網(wǎng)絡(luò)過渡。目前HSDPA的接入帶寬可以達(dá)到7.2 Mbps,HSPA+ 的接人帶寬可以達(dá)到21 Mbps,而即將部署的LTE的網(wǎng)絡(luò)帶寬甚至達(dá)到了100 Mbps 。同時,由于接人移動互聯(lián)網(wǎng) 的智能終端的數(shù)量快速增長,人們對移動互聯(lián)網(wǎng)的應(yīng)用需求也日益增長。當(dāng)人們面對幾十兆帶寬甚至是上百兆帶寬時,必定存在帶寬的過剩問題,即人們不需要在任何時刻都需要這么大的帶寬,因而可以將過剩的用戶帶寬分配給更多的用戶。

          本文引用地址:http://www.ex-cimer.com/article/262484.htm

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            目前,技術(shù)能夠支持IEEE的802.11b、802.11g和802.1ln標(biāo)準(zhǔn),分別支持10 Mbps、54 Mbps和300 Mbps的無線傳輸速率。而在傳輸距離上,能夠在幾米到100m范圍內(nèi)實現(xiàn)完全覆蓋。

            本文正是基于3G/4G 不斷增長的接入帶寬以及技術(shù)的各項優(yōu)點,提出了一種共享3G/4G 網(wǎng)絡(luò)帶寬的無線設(shè)計方案。該方案首先利用系統(tǒng),構(gòu)建一個基于WiFi技術(shù)的無線局域網(wǎng),智能終端等用戶可以利用自帶的WiFi功能接入該無線局域網(wǎng),然后再將該無線局域網(wǎng)橋接至3G/4G網(wǎng)絡(luò)中,從而實現(xiàn)各個智能終端設(shè)備對3G/4G網(wǎng)絡(luò)帶寬的共享。

            1. 3G/4G設(shè)計方案

            本的設(shè)計是基于三個模塊來實現(xiàn)的,分別為3G模塊、WiFi模塊和Linux硬件平臺,如圖1所示。3G模塊的功能是利用運營商的無線數(shù)據(jù)卡進(jìn)行PPP撥號,使得路由器能通過運營商網(wǎng)絡(luò)連接至互聯(lián)網(wǎng)。WiFi模塊的功能是使得無線網(wǎng)卡工作在AP(Access Point)模式,并配置動態(tài)主機配置協(xié)議的腳本文件,來建立一個2.4 GHz的WiFi無線局域網(wǎng)。Linux硬件平臺模塊的功能主要有兩個方面,一方面要支持無線網(wǎng)卡和無線數(shù)據(jù)卡的驅(qū)動,另一方面要通過系統(tǒng)中的iptables數(shù)據(jù)包過濾系統(tǒng)將無線局域網(wǎng)和3G/4G網(wǎng)絡(luò)連通。智能終端等設(shè)備通過WiFi信道接人到該路由器所提供的無線局域網(wǎng)中,分配到一個IP地址之后,則通過該無線局域網(wǎng)的網(wǎng)關(guān)進(jìn)行數(shù)據(jù)包的接收和發(fā)送,而該網(wǎng)關(guān)則通過3G/4G模塊上的網(wǎng)絡(luò)撥號接口來接收和發(fā)送數(shù)據(jù)包至3G/4G 網(wǎng)絡(luò),從而實現(xiàn)了該路由器的設(shè)計方案。



            圖1 3G/4G路由器設(shè)計方案圖

            2. 3G/4G路由器硬件結(jié)構(gòu)

            根據(jù)3G/4G路由器設(shè)計方案,其硬件結(jié)構(gòu)的三大模塊分別采用深圳天謨公司生產(chǎn)的Devkit8500D評估板、華為公司的E392型無線上網(wǎng)卡和TP-Link公司的TL-WN821N型無線網(wǎng)卡。

            Devkit8500D評估板的基本結(jié)構(gòu)如圖2所示。該硬件平臺采用的是TI公司的DM3730微處理器。



            圖2 終端硬件結(jié)構(gòu)圖

            E392型無線上網(wǎng)卡采用高通公司的MDM9x00多模芯片組,同時支持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)部署升級的HSPA+技術(shù),下行峰值速率可以達(dá)到21 Mbps,上行峰值速率可以達(dá)到5.76 Mbps;部分地區(qū)采用64QAM 調(diào)制技術(shù)和MIMO技術(shù)對HsPA+進(jìn)行再次升級,下行峰值速率可以達(dá)到42 Mbps左右;而即將部署的4G網(wǎng)絡(luò),下行峰值速率可以達(dá)到i00 Mbps,上行峰值速率可以達(dá)到50 Mbps。

            TL-WN821N 型無線網(wǎng)卡是基于Realtek公司的RTL8192cu芯片設(shè)計的,采用MIMO技術(shù)和空頻道檢測技術(shù),支持802.11n/b/g,性能穩(wěn)定且能夠提供最大300 Mbps的無線傳輸速率,完全滿足智能終端等設(shè)備的帶寬需求。

            3. 3G/4G路由器關(guān)鍵技術(shù)

            3G/4G路由器是指利用WiFi的2.4GHz頻段,組建一個無線局域網(wǎng),并配置無線局域網(wǎng)的基本信息,通過Linux系統(tǒng)的iptables將無線局域網(wǎng)接人到3G/4G網(wǎng)絡(luò)中。其關(guān)鍵技術(shù)具體分為3G/4G 網(wǎng)絡(luò)的接入、無線局域網(wǎng)的組建以及iptables的連通三個部分。

            3.1 3G/4G網(wǎng)絡(luò)的接入

            該無線路由器利用E392型多模無線上網(wǎng)卡在系統(tǒng)中進(jìn)行PPP撥號,分別接入到TD-SCDMA,WCDMA以及TD-LTE實驗網(wǎng)中。其具體實現(xiàn)流程如圖3所示。



            圖3 3G/4G網(wǎng)絡(luò)接入流程圖

            3.1.1 多模無線上網(wǎng)卡驅(qū)動加載

            當(dāng)一個新的USB設(shè)備接入到Linux主機中,主機首先會通過控制端點讀入此設(shè)備的配置,接口和端點等信息,利用控制管道完成控制型傳輸,然后主機再對該設(shè)備進(jìn)行枚舉。枚舉即讀取該 設(shè)備的許多重要信息,其中最重要的是讀取該設(shè)備的生產(chǎn)商識別碼(VID)以及產(chǎn)品識別碼(PID),將這兩個識別碼分別與USB內(nèi)核中意存在的各個識別碼進(jìn)行匹配。若匹配成功,即的利用Linux系統(tǒng)的USB內(nèi)核成功實現(xiàn)了 該設(shè)備的USB驅(qū)動的加載。

            本設(shè)計方案中采用的嵌入式Linux系統(tǒng)的內(nèi)核版本號為2.6.32,該內(nèi)核中與USB設(shè)備的VID和PID號相關(guān)的源碼存在kernel/drivers/usb/serial/option.c中,修改該文件并添加本 終端設(shè)計方案中所采用的華為E392無線上網(wǎng)卡的VID和PID,過程如下:

            # 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選項,使得Linux系統(tǒng)內(nèi)核支持USB串口轉(zhuǎn)換,然后選擇按模塊重新編譯內(nèi)核,生成option.ko和usbserial.ko 驅(qū)動文件。最后加載這兩個驅(qū)動文件并插上該多模無線上網(wǎng)卡,完成驅(qū)動加載。

            3.1.2 終端模式轉(zhuǎn)換

            在3.1.1節(jié)中實現(xiàn)的是USB設(shè)備的加載,即Linux系統(tǒng)識別出無線上網(wǎng)卡為USB設(shè)備并能與之通信。而一般 USB無線上網(wǎng)卡設(shè)備都具有兩個USB子設(shè)備模式,即usb-storage子設(shè)備模式和modern子設(shè)備模式。此時 Linux系統(tǒng)默認(rèn)會將該設(shè)備識別為usb-storage子設(shè)備模式,需要通過USB設(shè)備的模式轉(zhuǎn)換工具usb- modeswitch將USB設(shè)備的工作模式轉(zhuǎn)換為modem模式,這樣才能使得無線上網(wǎng)卡能夠正常工作。

            首先需要將usb- modeswitch工具移植至開發(fā)板,移植過程如下:

            ① 下載并解壓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ǎng)卡的VID設(shè)備號和其usb-storage子設(shè)備PID設(shè)備號,然后指定其modern子設(shè)備號。具體配置信息如下:

            Default Vendor = 12D1

            Default Product = 1446

            Target Vendor = 12D1

            Target Product = 1506

            CheckSuccess = 20

            HuaweiMode = O

            通過命令usb_modeswitch - W - c usb_modeswitch.conf對無線上網(wǎng)卡進(jìn)行USB設(shè)備的模式轉(zhuǎn)換,轉(zhuǎn)換成功后無線上網(wǎng)卡即工作在調(diào)制解調(diào)器模式下,同時可通過命令ls/dev可以查看到Linux系統(tǒng)生成4個虛擬USB轉(zhuǎn)串口設(shè)備,即ttyUSB0,ttyUSB1,ttyUSB2和ttyUSB3,可以通過這幾個串口進(jìn)行PPP撥號,使得3G/4G路由器可以接至TD-SCDMA、WCDMA以及TD-LTE實驗網(wǎng)中。

          pid控制相關(guān)文章:pid控制原理


          linux相關(guān)文章:linux教程


          路由器相關(guān)文章:路由器工作原理


          路由器相關(guān)文章:路由器工作原理



          上一頁 1 2 下一頁

          關(guān)鍵詞: 嵌入式Linux 路由器 WiFi

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();