基于S3C2410处理器的3G无线网卡接入无线网络的设计
本研究的目的是实现一个具有3G无线网络接入功能的嵌入式系统。系统硬件平台为基于ARM系列的S3C2410微处理器。简要介绍了该系统的体系结构,给出了USB主机接口的硬件电路。研究了基于USB接口的3G无线网卡无线网络接入功能的实现,包括研究Linux USB设备驱动程序、实现USB Serial设备驱动程序和定制Cramfs文件系统。最后移植配置PPP拨号程序,实现嵌入式系统通过3G无线网卡接入无线网络的功能。
目前,嵌入式技术已经广泛应用于工业控制、无线通信、网络应用、消费电子产品、成像和安防产品等产品中。随着3G牌照的发放,无线网络的带宽大大扩展,具有3G无线网络接入功能的嵌入式系统更有发展前景。本文将介绍中兴通讯的AC580无线网卡在以S3C2410微处理器为核心的嵌入式系统中的应用。
1终端系统硬件平台
1.1系统架构
S3C2410处理器作为核心芯片,集成了很多重要的功能模块。该系统主要使用了以下几个部分:南闪控制器、软件随机存取存储器控制器、三通道通用异步收发器、两个通用串行总线主机接口、一个通用串行总线设备接口和JTAG。NandFlash用作存储引导加载程序、内核和支持整个系统软件的文件系统的内存。在开发调试过程中,串口充当控制台,USB设备接口起到连接PC和下载传输数据的作用,USB主机接口用于连接3G无线网卡设备,Embedded-ICE(20针标准JTAG)接口和并行JTAG接口支持ADS软件下载、调试和Flash编写。系统结构图如下:
1.2 USB主机接口硬件电路
中兴通讯的AC580无线宽带网卡是基于CDMA20001X/EV-DO REVA网络的数据卡产品。使用USB接口连接,支持Linux操作系统。上行(反向链路)传输速率高达1.8 MB/s,下行(正向链路)传输速率高达3.1 MB/s,工作频段为CDMA800MHz。网卡可以通过S3C2410集成的USB HOST控制器直接访问,不需要额外的芯片,非常方便。USB总线协议定义了四条信号线,其中两条负责供电,另外两条负责数据传输。USB HOST接口的硬件电路如图2所示。
2系统3G无线网络接入功能的实现
系统软件包括以下三个部分:vivi as BOOTLOADERLinux-2.6.24作为嵌入式操作系统;Cramfs是系统的文件系统。系统将通过PPP拨号接入无线网络。
2.1设备驱动程序和内核
Linux内核是2.6.24版,需要移植到ARM平台。设备驱动程序可以被认为是操作系统的一部分。设备驱动程序可以交叉编译到内核映像中,或者以模块的形式存储在文件系统中,模块在运行时加载。这个系统的方式是编译成图像文件。
USB驱动程序分为主机控制器驱动程序(HCD)、主机设备驱动程序(USBD)和针对不同USB设备的驱动程序。USB的HCD是USB主机驱动中直接与硬件交互的软件模块,USBD是整个USB主机驱动的核心,USB设备类驱动是最终与应用程序交互的软件模块。
USBD和HCD在配置内核编译选项时应该选择编译成内核。对于USB设备类驱动,AC580使用高通的MSM6085芯片,可以模拟USB下的串口,通过它完成拨号工作。在内核源代码中加入中兴的USB串口驱动源代码,修改Makefile和Kconfig,将USB串口驱动编译到内核中。
另外,AC580是一款三位一体的设备:CDROM、USBMASS Storage、USB Serial,所以需要增加对SCCICDROM、USB MASS Storage的支持。同时,为了实现拨号,编译后的内核还应该增加对PPP协议的支持。
2.2建立Cramfs文件系统
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会话分为四个步骤:连接建立、连接质量控制、网络层协议配置、连接终止。PPP协议作为链路层协议,它是在Linux内核中实现的。
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无线宽带网接入功能使得嵌入式系统在无线通讯、网络应用、消费类电子等方面具备广阔的发展前景和强大的竞争力,给嵌入式系统带来更广泛的应用。
责任编辑:gt
延伸 · 阅读
- 2021-06-24 17:26晶圆探针测试技术及相关设备简介
- 2021-06-24 17:265G物联网时代,华为和小米谁将更胜一筹
- 2021-06-24 17:26虐心!上市半导体研发总和不及英特尔一家 中国集成电路
- 2021-06-24 17:26硬件设计之音频接口的知识详解
- 2021-06-24 17:26鸿蒙系统基于什么发展
- 2021-06-24 17:26英特尔或与台积电合作开发2nm工艺