微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于嵌入式Linux系统的3G/4G路由器设计

基于嵌入式Linux系统的3G/4G路由器设计

时间:10-13 来源:21ic 点击:

终端设计方案中所采用的华为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)、支持的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top