基于嵌入式平台的3G无线联网方案设计

时间:2011-07-15

  0 引言

  嵌入式技术近年来得到了飞速的发展,涉及的领域非常广泛,如手机、PDA、车载导航、工控、军工、多媒体终端、网关、数字电视……3G无线网络的高速性让嵌入式技术有着更加好的发展前景。本文将介绍中兴的AC580无线网卡在以S3C2410微处理器为的嵌入式系统上的应用。

  1 终端系统的硬件平台

  1.1 系统体系结构

  S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器,集成了许多重要功能模块。本系统主要用到以下部分:NandFlash控制器、SDRAM控制器、3个通道的UART、1个USB设备接口、2个USB主机接口、JTAG。NandFlash作为存储器,用于存储支撑整个系统软件的BootLoader、Kernel、文件系统。在开发调试时串口作为控制台起作用,USB设备接口起到与PC机连接并传输数据的作用,而USB主机接口用于连接3G无线网卡设备,Embedded-ICE(20脚标准JTAG)接口和并口式JTAG接口则支挣ADS软件的、调试以及Flash的烧写。系统结构图如下:

 


  1.2 USB主机接口硬件电路

  中兴的AC580无线宽带上网卡是基于CDMA20001X/EV-DO REVA网络的数据卡产品。它采用USB接口进行连接,支持Linux操作系统。其传输速率为上行(反向链路)到1.8Mb/s,下行(向前链路)3.1Mb/s,工作频段为CDMA800MHz。网卡可以直接通过S3C2410集成了的USB HOST控制器接入,不需要附加额外的芯片,非常方便。USB总线协议定义了四条信号线,其中两条负责供电,另外两条负责数据的传输。USB HOST接口硬件电路如图2所示。


  2 系统的3G无线网络接入功能实现

  系统软件组成为三部分:vivi作为BOOTLOADER(引导启动程序);Linux-2.6.24作为嵌入式操作系统;Cramfs作为系统的嵌入式文件系统。系统将采用PPP拨号的方式接入无线网络。

  2.1 BOOTLOADER、设备驱动与KERNEL

  vivi是韩国公司开发的bootloader, 适用于ARM9处理器。它的主要功能是硬件初始化,并引导启动内核。

  采用2.6.24的Linux内核,通过交叉编译移植到ARM平台。在配置内核时,可选择将设备驱动程序直接编译进内核镜像,也可以选择作为单独模块进行编译。

  USB驱动程序分为主机控制器驱动程序、主机端设备驱动程序和不同的USB设备的设备类驱动。USB的HCD是USB主机驱动程序中直接与硬件交互的软件模块,USBD是整个USB主机驱动程序的,而USB设备类驱动则是终与应用程序交互的软件模块。


USBD和HCD需在配置内核编译选项时选择编译进内核。对于USB设备类驱动,AC580使用的是高通公司的MSM6085芯片,这款芯片能在USB下仿真出串口,并通过它来完成拨号工作。将中兴的USB Serial驱动源码加入内核源码中,修改Makefile和Kconfig,将USB Serial驱动编译进内核。

  另外AC580是一个多合一设备,有CDROM、USBMASS Storage、USB Serial三部分,因此还需添加对SCCICDROM、USB MASS Storage的支持。同时为了实现拨号,编译的内核还应添加对PPP协议的支持。

  2.2 建立Cramfs文件系统

  CRAMFS文件系统是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3。cramfs文件系统并不需要性地将文件系统中的所有内容解压到ram中,而只是是系统需要访问某个位置的数据时,马上计算出该数据在cramfs中的位置,将其解压到ram中,然后通过内存访问来获取数据,cramfs中的解压缩之后的内存中的数据存放位置都是由cramfs文件系统本身来管理,用户并不需要实现过程,因此增加了透明度,给开发人员节约了时间。文件系统中的系统基本应用程序可以使用Busybox来定制。

  本系统中使用的AC580无线网卡连接到主机时,USB缺省工作方式是USB存储设备,在Linux下显示为CDROM和USB Storage两个设备,拨号需要找到USB Serial设备。首先需要安装好USB Serial驱动,其次使用eject/dev/srl命令弹出USB存储设备。这时AC580中的高通芯片将翻转为串口模式(在/dev目录下显示为/ttyUSB0、/ttyUSBl、/ttyUSB2、/ttyUSB3几个设备),可以用于拨号及无线网络数据传输。因此在配置编译BusyBOX时,除必须的系统基本应用程序外,还必须置eject命令。

  在/lib目录下添加共享链接库。添加内核模块和配置脚本,包括rt73.ko、/linuxrc、/etc目录下的配置文件等。在/dev目录下创建设备节点。字符设备的设备文件由字符“c”来识别,块设备由字符“b”来识别。通常而言,主设备号标识设备对应的驱动程序,大多数设备按照“一个主设备号对应一个驱动程序”的原则组织,次设备号由内核使用,用于正确确定设备文件所指的设备。以下几个节点是必须的


  2.3 PPP拨号接入CDMA2000 lx/EVDO无线网

  PPP协议是一种点--点串行通信协议。PPP具有处理错误检测、支持多个协议、允许在连接时刻协商IP地址、允许身份等功能,还有其他。PPP提供了3类功能:成帧;链路控制协议LCP;网络控制协议NCP。PPP是面向字符类型的协议。一个PPP会话分为四个步骤:连接建立、连接质量控制、网络层协议配置、连接终止。

  PPP拨号需要拨号程序及拨号脚本。拨号程序选择的是PPP-2.4.1,将交叉编译生成的chat、pppd、pppdump、pppstats程序文件添加至系统文件系统的/usr/sbin目录下。

  拨号脚本及所需文件存放在文件系统的/etc/ppp/目录下:pap-secrets、chap-secrets、PPP-off、resolv.conf、chat-connect、/peers/cdma3g。其pap-secrets、chap secrcts是chap和pap文件;resolv.conf是域名服务器配置文件;chat-connect是chat脚本;PPP-off是下线脚本;cdma3g是pppd脚本,里面配置了pppd程序参数。以下是主要的PPPd程序参数:

  /dev/ttyUSB0 Modem在ttyUSBO上;115200串口的速率;noipdefault不使用指定ip;defaultroute加入缺省路由;scr“vnet.mobi”用户名;connect‘/usr/sbin/chat-S-V-f/etc/ppp/cbat-connect’调用chat程序并使用chat-connect脚本。

  用mkcramfs工具生成Cramfs文件系统。至此,可以利用PPP拨号来实现3G无线网络接入功能了:#pppd calledma3g


 


  3 结束语

  本文详细介绍了利用三星S3C2410微处理器的嵌入式Linux系统接入3G无线网络的方法,并且详细介绍了硬件电路的实现和软件的设计。3G技术的蓬勃发展使得嵌入式技术有着更加广泛的应用空间。


  

参考文献:

[1]. ARM920T datasheet https://www.dzsc.com/datasheet/ARM920T_139814.html.
[2]. pap datasheet https://www.dzsc.com/datasheet/pap_2058949.html.


上一篇:一种列车真空集便监控系统的设计和实现
下一篇:基于ATmega128的16路遥控单元设计与实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料