历史上的今天
返回首页

历史上的今天

今天是:2025年02月04日(星期二)

2018年02月04日 | 基于嵌入式Linux系统的3G/4G路由器

2018-02-04 来源:eefocus

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.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


在Linux系统中执行脚本文件。/net-share,即完成了无线局域网至3G/4G网络的连通,从而实现了3G/4G路由器的设计。



在嵌人式Linux系统中完成了3G/4G路由器的设计功能之后,利用智能终端等设备对该无线路由器进行功能测试。该路由器的工作环境如图5所示,分别使用该无线路由器上的无线上网卡接人到TD-SCDMA、WCDMA和TD-LTE实验网中,然后再使用智能终端等设备自带的WiFi功能接人到该路由器所组建的无线局域网中。经实际测试,在TD-SCDMA网中,单个智能终端设备的最高下行速率可以达到2.45 Mbps;在WCDMA网中,单个智能终端设备的最高下行速率可以达到7.02 Mbps;而在TD-LTE实验网中


结语


本文基于嵌入式Linux系统设计并实现了3G/4G路由器,经实际测试,该路由器工作稳定,系统可靠性高,可以实现对3G/4G网络带宽的共享,而且随着3G/4G技术的不断发展,所提供的带宽也会越来越大,因此该路由器必将有着广阔的应用市场。


推荐阅读

史海拾趣

AMD(超微)公司的发展小趣事
  1. 公司成立与早期发展:AMD(Advanced Micro Devices)公司成立于1969年,由Jerry Sanders在美国加利福尼亚州圣克拉拉创立。最初,AMD致力于生产挑战Intel在x86处理器市场的产品,但起初面临着市场份额不足和技术挑战等问题。然而,随着时间的推移,AMD逐渐在市场上获得了一席之地,并推出了一系列创新产品。

  2. x86处理器市场竞争:AMD在x86处理器市场与Intel展开了激烈的竞争。1991年,AMD推出了第一款x86兼容处理器386DX-40,开始了与Intel的竞争。此后,AMD不断推出更快、更强大的处理器,如K6系列、Athlon系列等,一度取得了一定的市场份额。

  3. ATI收购与图形处理器发展:为了拓展业务,AMD于2006年收购了图形处理器制造商ATI Technologies。这一收购使AMD进入了图形处理器市场,并推出了一系列创新的图形处理器产品,如Radeon系列。AMD通过不断推出高性能、高度集成的图形处理器,赢得了广大用户的青睐。

  4. 全球Foundry战略:为了降低制造成本并提高生产效率,AMD实施了全球Foundry战略。2008年,AMD成立了GlobalFoundries,将自己的制造业务转移给这家独立的半导体制造公司。这一举措使AMD得以专注于设计和研发,提升了公司的竞争力。

  5. 技术创新与新市场拓展:除了在x86处理器和图形处理器市场取得成功外,AMD还不断进行技术创新,拓展新的市场。例如,AMD在数据中心领域推出了EPYC系列服务器处理器,致力于满足云计算和大数据处理的需求。此外,AMD还在游戏主机市场与Sony和Microsoft等公司合作,提供高性能的处理器和图形处理器。

这些故事展示了AMD在其创立以来的发展历程,包括在x86处理器市场的竞争、图形处理器领域的扩展、全球Foundry战略的实施以及在新兴市场的技术创新和市场拓展等方面取得的成就。

Amphenol RF公司的发展小趣事

Amphenol RF 是 Amphenol 公司的一个子公司,专注于设计、制造和销售射频连接器和组件,在电子行业中占据重要地位。以下是关于 Amphenol RF 公司发展的五个相关故事:

  1. 创立与早期发展:Amphenol RF 公司的历史可以追溯到20世纪40年代,当时被称为RF Connector Division。最初,公司主要致力于生产射频连接器和组件,为通信、航空航天、军事和工业市场提供射频连接解决方案。随着射频技术的发展和市场需求的增长,Amphenol RF 逐渐壮大成为射频连接器领域的重要参与者。

  2. 技术创新与产品多样化:Amphenol RF 公司在射频领域持续进行技术创新,并不断推出新型的射频连接器和组件产品。公司致力于提升产品的性能、可靠性和适应性,满足客户对高频射频应用的需求。除了传统的射频连接器,Amphenol RF 还推出了一系列新型产品,如微波连接器、同轴连接器、板对板连接器等,拓展了产品线的多样性。

  3. 客户合作与定制化解决方案:Amphenol RF 公司与客户建立了紧密的合作关系,共同开发定制化的射频连接器和组件解决方案。公司的工程团队与客户密切合作,根据客户的需求和应用场景,设计和制造符合特定要求的产品。这种定制化解决方案能够满足客户个性化的需求,为客户提供更加专业和完善的服务。

  4. 质量控制与认证标准:Amphenol RF 公司高度重视产品质量控制,并严格遵循国际质量管理体系标准。公司的生产工艺和质量管理体系符合ISO 9001质量管理体系认证标准,以确保产品质量的稳定性和可靠性。此外,Amphenol RF 公司的产品还通过了各种行业和应用领域的认证标准,如航空航天领域的MIL-SPEC标准等,确保产品符合行业标准和规定。

  5. 全球市场拓展与合作伙伴关系:除了在美国的生产基地外,Amphenol RF 公司还在全球范围内设有多个销售办事处和代理商网络,拓展了国际市场份额。公司与全球各种行业领先企业建立了长期稳定的合作关系,共同推动产品的创新和市场拓展。通过全球市场拓展和合作伙伴关系,Amphenol RF 公司不断扩大业务规模,增强了在射频连接器领域的市场竞争力。

这些故事展示了 Amphenol RF 公司从成立初期到如今在技术创新、产品多样化、客户合作与定制化解决方案、质量控制与认证标准以及全球市场拓展与合作伙伴关系等方面取得的重要进展。

Curtis Industries公司的发展小趣事

Curtis Industries公司在发展的同时,也积极承担社会责任。公司关注环保问题,采用环保材料和节能技术生产产品,减少对环境的影响。此外,公司还积极参与公益活动,支持教育事业和社会福利事业的发展。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

Akustica(Bosch)公司的发展小趣事

为了进一步扩大市场份额,Curtis Industries公司积极拓展市场布局。公司在全球范围内设立了多个生产基地和研发中心,以便更好地满足不同地区客户的需求。同时,公司还加强了与上下游企业的合作,形成了完整的产业链。这些举措不仅提升了公司的产能和研发实力,还为公司带来了更多的商业机会。

Holt Integrated Circuits公司的发展小趣事

自成立以来,Holt Integrated Circuits便专注于为航空电子行业提供高性能的集成电路解决方案。四十多年来,Holt始终站在技术前沿,为全球超过400家制造商提供模拟和混合信号IC数据总线解决方案。从F-16到A-350等先进飞行器,Holt的IC产品已成为飞行控制、导航、发动机管理、通信、安全系统及机上娱乐系统的核心部件。这种长期且稳定的合作关系,不仅奠定了Holt在航空电子领域的领导地位,也推动了整个行业的技术进步。

Barry Industries Inc公司的发展小趣事

随着电子行业的快速发展,Barry Industries Inc意识到只有不断创新才能在市场中立足。公司加大了对研发的投入,引进了一批高素质的研发人才,并建立了完善的研发体系。经过多年的努力,Barry成功突破了微波半导体封装技术的多项关键技术,推出了多款性能卓越、具有创新性的产品。这些产品不仅广泛应用于军事、航天、通信等领域,还为公司赢得了市场的广泛认可。

问答坊 | AI 解惑

网上挂单(开关电源高手请进)

本人由于某项产品开发试制,需要如下高频功率源,请有制作能力的高手帮忙制作一个,不甚感激!银子已经为您准备,具体请发邮件到obfyz@yahoo.com.cn详谈.一,输入:220V工频电压二,输出:  1.频率:1MHZ  2.波形:类正弦波  3. ...…

查看全部问答>

质量流量计原理

第一节 概 述 目前广泛应用的流量计,无论是差压式、靶式、涡轮、电磁或容积等型式,从原理上看都足测量容积流量的。由于流体的容积大小受其温度、压力等参数的影响,当被测流体的温度、压力坐化时,应把所测量的容积流量换算成标准状态 ...…

查看全部问答>

电子类问题,十万火急! 求高手解答!谢谢!

1.  电源变压器、短路线、电阻、晶体三极管等元器件装插顺序,大功率晶体管不能和()靠的太正。     A   大功率电阻  B  高压电容  C  热敏元件 2.   ...…

查看全部问答>

我也来玩玩多线程(终结篇)-LPC1114

前两个帖子里分别以不同的方式实现的LED的闪烁,今天再以信号量的方式来实现LED的闪烁。程序里一共用到了两个信号量,分别为io_sem和delay_sem,这两个信号量就类似一个互斥的变量,使得程序交替运行延时和IO反转的进程。下面上传源代码,同样附件 ...…

查看全部问答>

求cmos摄像头数据采集和视频压缩等方面的教程和资料~~~~~

我最近想用FPGA开发一个视频采集,需要查找cmos摄像头的采集的数据的格式,视频压缩算法,不知道哪位高人有这方面的开发经验或者有相关的资料或者教程,我的邮箱是xyg1985109@163.com。。。。 不胜感激!!…

查看全部问答>

SST Flash Sector 擦除问题(没多少分了)

为什么我的SST Flash的Block擦除都能够实现,但是不能实现Sector 擦除! 这是什么原因?我用的是SST 39VF6401B       我的代码:          Top[0x555] = 0x00aa;      &nbs ...…

查看全部问答>

高频开关电源电路组成及稳压原理

高频开关电源由以下几个部分组成: 一、主电路 从交流电网输入、直流输出的全过程,包括: 1、输入滤波器:其作用是将电网存在的杂波过滤,同时也阻碍本机产生的杂波反馈到公共电网。 2、整流与滤波:将电网交流电源直接整流为较平滑的直流电, ...…

查看全部问答>

NS2

谁有NS2的安装包,麻烦大家给我传一个吧,谢谢…

查看全部问答>

关于新唐cortex-m0 nano100系列的学习讨论

关于新唐cortex-m0 nano100系列的学习讨论 有哪位朋友在学习,我们可以共同学习哈,…

查看全部问答>

超声波测距程序,各位大神帮忙看看,谢谢了!

超声波程序       #include #define uint unsigned int #define uchar unsigned char uchar flag0 = 0;  //单片机发出10个脉冲标志位 uchar flag1 ;  //测量标志位 long time;     ...…

查看全部问答>