随着科技的发展,人类生活节奏的加快,信息在生活中的地位日益重要,如何方便快捷并及时有效地获取信息成为现代信息处理中的关键问题。在这种需求下,中国移动GPRS业务及时地投人运营,无线数据通信的应用越来越广泛。相对原来GSM的拨号方式的电路交换数据传送方式.GPRS是分组交换技术,具有实时在线、按量计费、快捷登录,高速传输、自如切换的优点。GPRS采用分组交换的技术,数据传输速率最高理论值能达171.2 kb/s。电路交换数据业务速率为9.6 kb/s,因此GPRS在传输速度方面具有无与伦比的优势。更由于其本身就是一个分组数据网,支持TCP/IP协议,无需经过PSTN等网络的转接,可直接与Internet网络连接,因此GPRS在信息处理方面的优势是不可比拟的。
为了满足GPRS数据终端的低成本、小型化和移动灵活等要求,采用ARM9芯片S3c2410a对GPRS数据终端进行控制。本文在S3C2410a中移植的是Linux操作系统,通过Linux操作系统可方便快捷地进行数据的传输和网络终端的控制;同时改善了系统性能,提高了系统可靠性,并使系统的扩展和开发性能进一步得到提高。
1 GPRS技术
1.1 GPRS工作原理
GPRS的英文全称是General Packet Radio Service,译作“通用分组无线服务”,它是利用“包交换”(Packet-Switched)的概念发展起来的一套无线传输方式。所谓“包交换”就是将Data封装成许多独立的封包,再将这些封包一一传送出去,形式上有点类似邮局中的寄包裹。其作用在于只有当有资料需要传送时才会占用频宽,而且可以以传输的资料量计价,这对广大用户来说是较合理的计费方式,因为像Interact这类的数据传输大多数的时间频宽是闲置的。
GPRS网络是基于现有的GSM网络来实现的,在现有的GSM网络中需增加一些节点,如GGSN(Gateway GPRS Supporting Node,GPBS网关支持节点)和SGS(Serving GSN,GPRS服务支持节点),GSN是GPRS网络中最重要的网络节点。GSN具有移动路由管理功能,它可以连接各种类型的数据网络,并可以连到GPRS寄存器。GSN可以完成移动终端和各种数据网络之间的数据传送和格式转换。GSN可以是一种类似于路由器的独立设备,也可以与GSM中的MSC集成在一起。
GSN有两种类型:一种为SGSN(Serving GSN,服务GSN),另一种为GGSN(Gateway GSN,网关GSN)。SGSN的主要作用是记录移动终端的当前位置信息,并且在移动终端和GGSN之间完成移动分组数据的发送和接收。GGSN主要是起网关作用,它可以和多种不同的数据网络连接。如ISDN。PSPDN和LAN等。GGSN可以把GSM网中的GPRS分组数据包进行协议转换,从而可以把这些分组数据包传送到远端的TCP/IP或X.25网络。GPRS工作时,通过路由管理来进行寻址和建立数据连接,而GPRS的路由管理表现在以下3个方面:一是移动终端发送数据的路由建立;二是移动终端接收数据的路由建立;三是移动终端处于漫游时数据路由的建立。对于第一种情况,当移动终端产生了一个PDU分组数据单元,这个PDU经过SNDC层处理,称为SNDC数据单元,然后经过LLC层处理为LLC帧,并通过空中接口送到GSM网络中移动终端所处的SGSN,SGSN把数据送到GGSN,GGSN把收到的消息进行解装处理,转换为可在公用数据网中传送的格式(如PSPDN的PDU),最终送给公用数据网的用户。为了提高传输效率,并保证数据传输的安全,可以对空中接口上的数据做压缩和加密处理。在第二种情况中,一个公用数据网用户传送数据到移动终端时,首先通过数据网的标准协议建立数据网和GGSN之间的路由。数据网用户发出的数据单元(如PSPDN中的PDU),通过建立好的路由把数据单元PDU送给GGSN。而GGSN再把PDU送给移动终端所在的SGSN上,GSN把PDU封装成SNDC数据单元,再经过LLC层处理为LLC帧单元,最终通过空中接口送给移动终端。第三种情况是一个数据网用户传送数据给一个正在漫游的移动用户。这种情况下的数据传送必须要经过归属地的GGSN,然后送到用户A端。
1.2 GPRS的协议模型
Um接口是GSM的空中接口。Um接口上的通信协议有5层,自下而上依次为物理层、MAC (Media Access Control)层、LLG(Logical LinkControl)层、SNDC层和网络层。Um接口的物理层为射频接口部分,而物理链路层则负责提供空中接口的各种逻辑信道。GSM空中接口的载频带宽为200 kHz,一个载频分为8个物理信道。如果8个物理信道都分配为传送GPRS数据,则原始数据速率可达200 kb/s。考虑前向纠错码的开销,则最终的数据速率可达164 kb/s左右。MAC为媒质访问控制层。MAC的主要作用是定义和分配空中接口的GPRS逻辑信道,使得这些信道能被不同的移动终端共享。LLG层为逻辑链路控制层。它是一种基于高速数据链路规程HDLG的无线链路协议。SNDC被称为子网依赖结合层。它的主要作用是完成传送数据的分组、打包,确定TCP/IP地址和加密方式。网络层的协议目前主要是Phasel阶段提供的TCP/IP和L25协议。TCP/IP和X.25协议对于传统的GSM网络设备(如:BSS,NSS等设备)是透明的。
2 嵌入式系统设计
2.1 系统硬件结构
2.1.1ARM9系统硬件结构
ARM9系统硬件结构见图1。
2.1.2 GPRS传输设备
本文使用的GPRS传输设备是北京华荣汇通信设备有限公司开发的GR100型GPRS MODEM,采用了高性能内嵌TCP/IP协议栈GPRS模块。
2.2 系统运作过程
(1)物理过程。ARM利用AT指令通过GPRSModem拨号,正确反馈及应答后,一条物理通道即GPRS信道就在系统中的GPRS Modem和GPRS网络之间建立起来。
(2)数据过程。PPP协议将原始的GPRS物理层连接改造成无差错的数据链路,系统将远程登录Internet,并得到GPRS网关分配的IP地址。
(3)网络过程。采用IP协议作为网络层协议。IP协议将接人Internet的具有不同IP地址的终端都联系起来。经过IP路由选择,可以实现系统与连在Internet上的任一IP终端进行数据交互。
(4)传输过程。选择TCP作为传输层协议,为数据传输提供面向连接,可靠服务。
3 软件设计
3.1 嵌入式系统的引导代码Bootloader
Bootloader(引导加载程序)是嵌入式系统加电后运行的第一段代码,在PC中,引导加载程序由BIOS和位于硬盘MBR中的操作系统引导加载程序一起组成的。
Bootloader启动大多数分为2个阶段。第一阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段任务有:基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令,数据Cache等);为第二阶段准备RAM空间;如果是从某个固态存储媒质中,则复制Bootloader的第二阶段代码到RAM中;设置堆栈;跳转到第二阶段的C程序入口点。
第二阶段通常用c语言完成,以便实现更复杂的功能。这个阶段任务有:初始化本阶段要使用到的硬件设备;检测系统内存映射;将内核映像和根文件系统映像从Flash读到RAM 为内核设置启动参数;调用内核。
在U-BOOT(在PPC-BOOT的基础上进化而来的一个开放源码的嵌入式BOOTROM程序)中通过下面两行代码进行两个阶段的工作交换:
Ldr pc,_start_armboot
_start_armboot:.word staxt_armboot
Bootloader调用Linux内核的方法是直接跳转到内核的第一指令处,在跳转时必须满足下列条件:CPU寄存器设置。R0为O;R1为机器类型ID;R2为启动参数,标记列表在RAM中的起始基地址,CPU模式。必须禁止中断(IRQs和VlQs);CPU必须设置为SVC模式。Cache和MMU的设置。MMU必须关闭;指令Cache可以打开也可以关闭;数据Cache必须关闭。在编写完Bootloader后,利用JTAG下载电缆.烧写到Nor Flash中即可。
3.2 配置和编译Linux内核
Linux内核主要由5个子系统组成:进程调度、内存管理、虚拟文件系统、网络接口、进程间通信。
3.2.1 配置内核
配置内核的命令有make config;make oldcoafig;make menucoafig;make xconfig。无论哪个命令都将产生config文件,并在每一个c源文件中加上
3.2.2 编译内核
编译内核需要3个步骤,分别是创建内核依赖关系、创建内核镜像文件和创建内核模块。执行make up命令进行编译。
生成内核以后,接下来要做的是安装它。对每一个内核配置来说。要复制4个丈件:没有压缩的内核镜像(zlmage和bzlmage)、压缩的内核镜像(vmlinux)、内核符号映射文件(System.map)以及配置文件(config)。
最后用loader.exe烧写zlmage 或bzImage 到Nor Flash 的0x00010000地址。
4 GPRS数据终端实现
GR100通过RS232接口与ARM9系统连接,最终实现了基于ARM9芯片S3c2410a的GPRS数据终端。该终端内部已移植了Linux操作系统,可在该系统下自主开发软件,使其功能更加强大,例如连接LCD,实现可视化操作等。