微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于嵌入式Linux的3G无线视频终端的设计与实现

基于嵌入式Linux的3G无线视频终端的设计与实现

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

  3G模块与ARM是通过USB相连的。无线终端到3G网络的连接是通过PPP协议实现的,PPP协议是一种点对点串行通信协议,为在点对点连接上传输多协议数据包提供了一个标准方法。由于目前嵌入式市场上的3G模块基本上都是提供Windows CE操作系统下的驱动程序,但对于嵌入式Linux下面的目前还没有驱动支持,所以为本系统开发了3G模块的驱动程序。要完成3G模块的拨号上网功能,需要3个层面的支持:1)是内核层面;2)驱动层面;3)应用程序层面的支持。内核层面主要是通过对内核的重新配置来完成,由于3G模块与ARM通过USB线连接,而上层的PPP通信采用的是串行协议,所以要在内核中加入USB转串口的支持,通过makemenuconfig命令进入内核配置界面,依次选择Device Drivers->USB support->USB Serial Converter Support选择USB Generic Serial Driver按两次空格键使项目前加『*』将其编译入内核,其中加*为编译成内核模块,加M为编译为模块。由于采用的是PPP协议,故要在内核中加入PPP的支持。进入内核配置界面以后,依次选择DeviceDrivers->Network device support->3G模块与ARM是通过USB相连的。无线终端到3G网络的连接是通过PPP协议实现的,PPP协议是一种点对点串行通信协议,为在点对点连接上传输多协议数据包提供了一个标准方法。由于目前嵌入式市场上的3G模块基本上都是提供Windows CE操作系统下的驱动程序,但对于嵌入式Linux下面的目前还没有驱动支持,所以为本系统开发了3G模块的驱动程序。要完成3G模块的拨号上网功能,需要3个层面的支持:1)是内核层面;2)驱动层面;3)应用程序层面的支持。内核层面主要是通过对内核的重新配置来完成,由于3G模块与ARM通过USB线连接,而上层的PPP通信采用的是串行协议,所以要在内核中加入USB转串口的支持,通过makemenuconfig命令进入内核配置界面,依次选择Device Drivers->USB support->USB Serial Converter Support选择USB Generic Serial Driver按两次空格键使项目前加『*』将其编译入内核,其中加*为编译成内核模块,加M为编译为模块。由于采用的是PPP协议,故要在内核中加入PPP的支持。进入内核配置界面以后,依次选择DeviceDrivers->Network device support->PPP(point-to-point)protocol support选中,将PPP编译入内核,同时选择PPP展开项,将其全部编译入内核,保存退出。对于驱动层面,3G模块的驱动开发主要是通过修改两个文件generic.c以及usb-serial.c,其中generic.c为USB通用程序,usb-serial.c为USB转串口程序。通过在其中加入一些网络层的hook函数来达到对上层协议的支持。将修改过后的文件复制到/linux2.6.29/drivers/usb/serial,重新编译内核,生成zImage镜像,然后下载到板子上。完成3G模块驱动的设计以及内核对PPP协议的支持,对于拨号上网应用程序的支持,主要是通过PPP提供的两个工具pppd和chat来实现的,其中PPP提供了一种点对串行线路上传输数据流的方法,chat主要用于拨号并等待提示。可从网上下载PPP源码,在本系统中采用的版本为PPP-2.4.0,下载后要解压并且根据目标板的类型来进行交叉编译得到拨号程序。

  3 结束语

  本文在一块ARM开发板上实现了多种功能,包括无线数据视频终端,通过外接视频服务器实现了现有视频服务器的3G功能扩展,通过采用了Netfilter与socket结合的方法,将数据包获取功能从用户态载入Linux内核态,避免了数据的内存拷贝,提高了处理效率,同时引入内核缓冲机制。解决了3G拨号延时而造成的视频服务器丢包问题,配合Netfilter用户工具iptables的使用,可以在本系统上实现NAT,包过滤防火墙等功能。方便对流经系统数据包的管理。

  针对目前市场上的3G模块大多只提供Windows CE下驱动这一问题,开发了3G模块驱动,使得现有3G模块可使用与嵌入式Linux系统下,用户可直接在此基础上通过socket进行编程,而无需考虑底层的硬件通信问题。在软件设计上充分发挥开源软件的优势,采用Xvideore进行视频编码,以及PPP源码编译拨号软件等,缩短了系统开发周期,系统在软件的整体设计上提出了一套相对通用的软件架构,可方便实现功能的扩展及升级。

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

网站地图

Top