3g的接人技术已经从wcdma/td- scdma/cd-ma2000发展到hsdpa、hsupa 以及hspa+ ,并开始由3g 网络向4g网络过渡。目前hsdpa的接入带宽可以达到7.2 mbps,hspa+ 的接人带宽可以达到21 mbps,而即将部署的lte的网络带宽甚至达到了100 mbps 。同时,由于接人移动互联网 的智能终端的数量快速增长,人们对移动互联网的应用需求也日益增长。当人们面对几十兆带宽甚至是上百兆带宽时,必定存在带宽的过剩问题,即人们不需要在任何时刻都需要这么大的带宽,因而可以将过剩的用户带宽分配给更多的用户。
目前,wifi技术能够支持ieee的802.11b、802.11g和802.1ln标准,分别支持10 mbps、54 mbps和300 mbps的无线传输速率。而在传输距离上,wifi能够在几米到100m范围内实现完全覆盖。
本文正是基于3g/4g 不断增长的接入带宽以及wifi技术的各项优点,提出了一种共享3g/4g 网络带宽的无线路由器设计方案。该方案首先利用嵌入式linux系统,构建一个基于wifi技术的无线局域网,智能终端等用户可以利用自带的wifi功能接入该无线局域网,然后再将该无线局域网桥接至3g/4g网络中,从而实现各个智能终端设备对3g/4g网络带宽的共享。
1. 3g/4g路由器设计方案
本路由器的设计是基于三个模块来实现的,分别为3g模块、wifi模块和linux硬件平台,如图1所示。3g模块的功能是利用运营商的无线数据卡进行ppp拨号,使得路由器能通过运营商网络连接至互联网。wifi模块的功能是使得无线网卡工作在ap(access point)模式,并配置动态主机配置协议的脚本文件,来建立一个2.4 ghz的wifi无线局域网。linux硬件平台模块的功能主要有两个方面,一方面要支持无线网卡和无线数据卡的驱动,另一方面要通过嵌入式linux系统中的iptables数据包过滤系统将无线局域网和3g/4g网络连通。智能终端等设备通过wifi信道接人到该路由器所提供的无线局域网中,分配到一个ip地址之后,则通过该无线局域网的网关进行数据包的接收和发送,而该网关则通过3g/4g模块上的网络拨号接口来接收和发送数据包至3g/4g 网络,从而实现了该路由器的设计方案。
图1 3g/4g路由器设计方案图
2. 3g/4g路由器硬件结构
根据3g/4g路由器设计方案,其硬件结构的三大模块分别采用深圳天谟公司生产的devkit8500d评估板、华为公司的e392型无线上网卡和tp-link公司的tl-wn821n型无线网卡。
devkit8500d评估板的基本结构如图2所示。该硬件平台采用的是ti公司的dm3730微处理器。
图2 终端硬件结构图
e392型无线上网卡采用高通公司的mdm9x00多模芯片组,同时支持td-scdma/wcdma 的3g 网络标准和lte-tdd/fdd 的4g 网络标准。目前,利用3g网络中已经部署升级的hspa+技术,下行峰值速率可以达到21 mbps,上行峰值速率可以达到5.76 mbps;部分地区采用64qam 调制技术和mimo技术对hspa+进行再次升级,下行峰值速率可以达到42 mbps左右;而即将部署的4g网络,下行峰值速率可以达到i00 mbps,上行峰值速率可以达到50 mbps。
tl-wn821n 型无线网卡是基于realtek公司的rtl8192cu芯片设计的,采用mimo技术和空频道检测技术,支持802.11n/b/g,性能稳定且能够提供最大300 mbps的无线传输速率,完全满足智能终端等设备的带宽需求。
3. 3g/4g路由器关键技术
3g/4g路由器是指利用wifi的2.4ghz频段,组建一个无线局域网,并配置无线局域网的基本信息,通过linux系统的 iptables将无线局域网接人到3g/4g网络中。其关键技术具体分为3g/4g 网络的接入、无线局域网的组建以及iptables的连通三个部分。
3.1 3g/4g网络的接入
该无线路由器利用e392型多模无线上网卡在嵌入式linux系统中进行ppp拨号,分别接入到td-scdma,wcdma以及td-lte实验网中。其具体实现流程如图3所示。
图3 3g/4g网络接入流程图
3.1.1 多模无线上网卡驱动加载
当一个新的usb设备接入到linux主机中,主机首先会通过控制端点读入此设备的配置,接口和端点等信息,利用控制管道完成控制型传输,然后主机再对该设备进行枚举。枚举即读取该 设备的许多重要信息,其中最重要的是读取该设备的生产商识别码(vid)以及产品识别码(pid),将这两个识别码分别与usb内核中意存在的各个识别码进行匹配。若匹配成功,即的利用linux系统的usb内核成功实现了 该设备的usb驱动的加载。
本设计方案中采用的嵌入式linux系统的内核版本号为2.6.32,该内核中与usb设备的vid和pid号相关的源码存在 kernel/drivers/usb/serial/option.c中,修改该文件并添加本 终端设计方案中所采用的华为e392无线上网卡的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系统内核中的devices driver→usb support→usb serial converter support选项,使得linux系统内核支持usb串口转换,然后选择按模块重新编译内核,生成option.ko和usbserial.ko 驱动文件。最后加载这两个驱动文件并插上该多模无线上网卡,完成驱动加载。
3.1.2 终端模式转换
在3.1.1节中实现的是usb设备的加载,即linux系统识别出无线上网卡为usb设备并能与之通信。而一般 usb无线上网卡设备都具有两个usb子设备模式,即usb-storage子设备模式和modern子设备模式。此时 linux系统默认会将该设备识别为usb-storage子设备模式,需要通过usb设备的模式转换工具usb- modeswitch将usb设备的工作模式转换为modem模式,这样才能使得无线上网卡能够正常工作。
首先需要将usb- modeswitch工具移植至开发板,移植过程如下:
① 下载并解压usb-modeswitch一1.2.5.tar.bz2。
② 进入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二进制执行文件拷人linux系统中,并修改usb_modeswitch目录下usb_mode- switch.conf配置文件,在该文件末添加该无线上网卡的vid设备号和其usb-storage子设备pid设备号,然后指定其modern子设备号。具体配置信息如下:
default vendor = 12d1
default product = 1446
target vendor = 12d1
target product = 1506
checksuccess = 20
huaweimode = o
通过命令usb_modeswitch - w - c usb_modeswitch.conf对无线上网卡进行usb设备的模式转换,转换成功后无线上网卡即工作在调制解调器模式下,同时可通过命令 ls/dev可以查看到linux系统生成4个虚拟usb转串口设备,即ttyusb0,ttyusb1,ttyusb2和ttyusb3,可以通过这几个串口进行ppp拨号,使得3g/4g路由器可以接至td-scdma、wcdma以及td-lte实验网中。
3.2 无线局域网的组建
该无线路由器利用无线网卡在嵌入式linux系统中组建一个小型的无线局域网,一方面提供给智能终端等设备接入,另一方面将无线局域网接入至3g/4g 网络。其基本流程如图4所示。
图4 无线局域网组建流程图
3.2.1 无线网卡驱动加载
tl-wn821n 型无线网卡采用的wlan芯片组为realtek公司的提供的rti 8192cu芯片,realtek公司提供了基于linux系统的该芯片组驱动源码,根据 编译环境及linux内核对驱动源码进行编译,即可生成该无线usb网卡的驱动。具体步骤如下:
① 下载驱动源码rtl8188c 8192c usb linux - v3.4.4- 4749.2.121105.tar.gz,并解压。
② 进入到驱动源码包中,修改makefile文件,指定编译环境及linux内核:
config_platform_new = y
ifeq($(config_platform_new ),y)
extra_cflags + = - dconfig_llttle_endian
arch :arm
cross_com pile := arm-none-linux-gnueabi-
ksrc=/home/linux-2.6.32-devkit8500
endif
③ make,生成该无线网卡的驱动8192cu.ko。
然后加载该驱动,再通过命令ifconfig wlan0 up,将无线网卡的网口wlan0挂载至linux系统中,可通过ifconfig命令查看该网口的基本配置信息。
3.2.2 ap模式转换
将无线网卡驱动加载成功之后,该无线网卡的默认工作模式为工作站模式,即作为客户端搜索周围的无线接人点,以接人到其他的无线局域网中,而 3g/4g路由器需要利用无线网卡的模式转换工具hostapd将该网卡的工作模式由工作站模式切换为ap模式,也称接入点模式,并利用该模式建立一个无线局域网。hostapd在linux系统中的移植过程如下:
① 下载并解压hostapd_0.8_rtw_20120803.zip。
② 进入主目录,修改makefile,指定交叉编译器:
cc = arm-none-linux-gnueabi-gcc
③ make。
生成hostapd、hostapd_cli,将这两个二进制文件和rtl_hostapd.conf复制到嵌入式linux系统中。在 rtl_hostapd.conf配置文件中,可以设置该无线网卡的服务集标识(ssid)、支持的802.11协议版本、工作频率、无线信道以及加密的方式等一系列该无线局域网的配置信息。通过执行命令hostapd rtl_hostapd.conf-b,完成该无线网卡的工作模式的切换。
3.2.3 dhcp配置
在无线网卡的ap模式切换完成之后,需要通过dh-cp协议配置该无线局域网的动态地址池及其网关,该无线局域网会根据dhcp协议从配置的地址池中,自动给接入到该无线局域网的智能终端等设备分配一个ip地址。其dhcp协议的配置文件dhcp.conf具体如下:
start 192.168.0.20
end 192.168.0.254
interface wlan0
opt dns 8.8.4.4
opt subnet 255.255.255.0
opt router 192.168.0.1
opt lease 864000
然后在linux系统中执行udhcp-fs dhcp.conf,启动dhcp协议。之后该无线网卡会建立一个无线局域网,并给接入到此无线局域网中的智能终端等设备自动分配一3.3 iptables连通
在实现3g/4g 网络的接人和无线局域网的组建之后,该路由器采用linux系统中的ip信息报过滤系统,即iptables,将3g/4g网络和组建好的无线局域网连通。iptables系统需要linux系统内核中的网络数据包过滤框架的支持,需要重新配置内核,选中内核中networking support → networking options → network packet filtering framework,将其框架编译进linux内核,然后需要对iptables进行移植,其移植过程如下:
① 下载并解压iptablesj.4.3.1.tar.gz。
② 进入主目录,配置编译选项:
。 /configure-prefix=/usr/local/iptables--host = arm-none-linux-gnueabi--with-curnel=/home/sd_tools/linux-2.6.32-devkit85o0
③ make并make install。
将生成的iptahles二进制执行文件复制到linux系统中,并编写iptables系统的运行脚本文件net-share,该运行脚本文件配置了ip数据包的流向、进入网络的接口等一系列规则,该路由器进入3g/4g 网络的接口为无线上网卡进行拨号后产生的pppo网络接口,其内容如下:
echo“1”》 /pr0c/sys/net/ipv4/ip- forward
iptables-f
iptables-p input accept
iptables-p output accept
iptables-p forw ard accept
iptables-t nat-a postrouting -o ppp0-j masquerade
在linux系统中执行脚本文件。/net-share,即完成了无线局域网至3g/4g网络的连通,从而实现了3g/4g路由器的设计。
4 实验结果
在嵌人式linux系统中完成了3g/4g路由器的设计功能之后,利用智能终端等设备对该无线路由器进行功能测试。该路由器的工作环境如图5所示,分别使用该无线路由器上的无线上网卡接人到td-scdma、wcdma和td-lte实验网中,然后再使用智能终端等设备自带的wifi功能接人到该路由器所组建的无线局域网中。经实际测试,在td-scdma网中,单个智能终端设备的最高下行速率可以达到2.45 mbps;在wcdma网中,单个智能终端设备的最高下行速率可以达到7.02 mbps;而在td-lte实验网中,单个智能终端设备的最高下行速率可以达到85.97 mbps。
5 结语
本文基于嵌入式linux系统设计并实现了3g/4g路由器,经实际测试,该路由器工作稳定,系统可靠性高,可以实现对3g/4g网络带宽的共享,而且随着3g/4g技术的不断发展,所提供的带宽也会越来越大,因此该路由器必将有着广阔的应用市场。
百度视觉团队在全球最大规模目标检测竞赛,中国团队从全球450多支参赛队伍中脱颖而出
液态金属基可拉伸封装材料的出色性能
中电器材喜获美信中国区代理权,本土分销更添优势
STM32 + MPU6050设计便携式Mini桌面时钟
沃尔沃汽车和吉利汽车的合并计划已暂时搁置
基于嵌入式Linux系统的3G/4G路由器设计
什么样的电源技术和迭代速度才能始终独步于市场?ADI电源专家为你详析
2022广州太阳能光伏产业博览会
闻泰科技智能手表业务发展迅猛与荣耀联合打造的荣耀手表4
【燃气安全】燃气泄漏可燃气体检测报警器中传感器如何选择?
什么是数据通信的传输损耗
MaxWiz编程器更新支持极海半导体APM32F415/417系列
内径百分表校准步骤_内径百分表怎么用_内径百分表的使用方法
智慧工地展厅颠覆了传统宣传片的静态汇报模式
中国制造2025的目标又进一步,支持金额突破百亿元大关
日本家用美容仪哪个品牌好?拒绝烂脸与败家!
微软HoloLens即将登陆日本市场 航空业已提前体验
工程师教你如何设计出优秀LED驱动
魅族魅蓝5S上手图赏 799元起却有精湛的工艺!
年终行业盘点 三元电池出货量占比近六成 比克领跑三元高镍