第一章 3G功能设计及实现
1.1 3G概述
3G即第三代移动通信技术,是指能够支持高速率的数据业务传输的蜂窝移动通信技术,3G系统是新一代的移动通信系统,它将无线数字通信跟等多媒体通信相结合。第三代移动通信技术增加了对图像、音乐等多媒体业务的处理,能够提供网页浏览、电子商务等多种信息的服务,而且能够支持多种数据传输速率。若数据需要通过网络来进行传输,有线方式传输速度高,但受到线路布置的限制,GPRS方式灵活方便但是传输速率慢,随着技术的进步,3G 越来越普及。3G可以很好的兼顾灵活方便与传输速率,将3G传输的技术运用在数据传输中,可以取得很好的效果。
1.2 3G网卡分析
3G网卡驱动是建立在驱动之上的设备驱动模块,驱动实现了网卡通过接口进行数据传输的细节。通信模型分为三层:功能层、设备层、总线接口层。功能层的作用是实现设备的功能,客户软件负责把客户请求转化为一个或多个事物处理并产生对设备的访问。设备层的系统软件具有完成一般操作的功能,驱动程序提供了客户软件和主控制器之间的接口。总线接口层为主机和设备提供物理连接。客户软件必须通过系统软件和总线接口问接访问设备硬件
(如图1.2-1)
图1.2-1
1.3 3G网卡驱动源码移植
(1)Libusb的安装及编译
Libusb实际上是一个语言开源库,它使得应用程序可以很容易的在不同的操作系统上与设备通信,同样它能够帮助用户在系统的用户空间层面上与设备进行数据通信。它设计了一系列外部共应用程序使用,的调用内核底层函数并与硬件接口进行互操作。Libusb是开源的,源代码遵循声明。
(2)USB ModeSwitch的安装及编译
USB ModeSwitch是一个模式转换工具,用于控制含有多个USB子设备的USB设备。现在一些新的设备(特别是一些高速WAN设备)都有MS Widdows系统的驱动程序,当第一次连接到系统时,它们是处于闪存模式的,并从中提取和安装驱动。在驱动程序完成安装之后,驱动马上转换模式,闪存模式消失,新的设备将会产生(如USB类型的Modem)。这种特征被无线设备的制造商称为“免CD”的设备.
但是,关于这些都没有任何形式的文档,当然也几乎没有Linux系统下的合适的驱动。然而在大部分设备存储中是带有内核模块的,比如“usbserial”或者“usb-storage”可以在Linux系统上运行的。至此,如何将存储模式切换至设备丄作所需的模式就称为关键点。
USB ModeSwitsh可以从配置文件中读取重要的参数并初始化以实现通信功能,当然这其中离不开的libusb重量级支持。USB ModeSwitsh从1.0.3以后的版本集成到udev(设备管理器)上,使得其工作完全自动化。可通过修改配置文件来设置的usb_modeswitch参数。
在Linux系统中分别安装编译Libusb和USB ModeSwitsh,然后把编译成功生成的可执行命令与相应的配置文件拷贝到pandaboard开发板上即可实现卡的接口模式切换到串口工作模式。
(3)3G网卡模式转换
仿真平台的3G端是利用可购买USB的口3G上网卡实现的,所以若使USB接口的上网卡能在Linux平台上可用,需要借助这之前的工作将USB转为串口,以实现后面的拨号联网等功能。因为目前前国内的3G分为WCDMA和CDMA2000以及TD-SCDMA三种制式。根据不同的生产厂商,不同制式的上网卡的厂商识别码(VID)和产品识别码(PID)是不同的,不同网卡相应的配置文件也会不同.
1.4 利用PPP实现3G拨号
3G上网卡若能正常工作,还需要能够拨号联网。在嵌入式Linux系统中实现拨号联网功能的工具是利用PPP模块实现的。
(1)PPP概述
PPP协议是一种标准方法,它能够在点对点的链路上提供对各种协议数据包的封装。与此同时,它还支持动态的对IP地址分配和管理;同步或异步的物理层传输;络层的协议复用;以及对各种链路配置信息的协商等功能。PPP协议由三个协议部分组成,分别是LCP链路控制协议、NCP网络控制协议和PPP扩展协议。
(2)内核对PPP协议的支持
要实现PPP协议的通信,还需要Linux的内核对PPP协议的支持。只需在内核配置条件下,将有关PPP协议的模块配置选上,再让PPP相关驱动即可直接编译进内核。
(3)进行PPP的交叉编译及拨号