李 敏,陈 文,王宝勤 (长江大学计算机科学学院,湖北 荆州 434023)
嵌入式GPRS无线通讯系统设计
李 敏,陈 文,王宝勤 (长江大学计算机科学学院,湖北 荆州 434023)
主要针对GPRS在无线数据传输方面的应用,介绍了一种基于GPRS网络的嵌入式系统的设计方法。方案以Samsung公司S3C2410X微控制器,通过S3C2410的 RS232接口与SIMENS的MC35I GPRS模块连接,移植了嵌入式操作系统uC/OS-Ⅱ,实现无线通讯。
无线通讯;ARM;GPRS
随着嵌入式操作系统的进一步发展,以及无线通信技术的进一步普及,以嵌入式操作系统为平台,依赖于无线网络数据传输的移动终端逐渐成为IT新的发展趋势。GPRS(General Packet Radio Service)是通用分组无线业务的简称,它是2.5代移动通信系统,其不但具有覆盖范围广、数据传输速度快,还有通信质量高、永远在线和按流量计费等优点,支持 TCP/ IP协议,可以直接与 Internet互通;结合嵌入式技术和GPRS的优点,开发的具有无线通讯功能的模块,在诸如环境监测便携型、交通监控、移动办公等行业中具有无可比拟的性价比优势。
该系统主要由GPRS通讯模块和控制模块2部分组成,采用了嵌入式系统设计GPRS终端。嵌入式系统由硬件和应用软件组成,其架构可分为微处理器、内存、输入输出、操作系统和应用软件等5个部分[1]。
图1 系统通讯原理图
系统的硬件由微处理器、GPRS模块、SIM卡座、外部接口和扩展数据存储器等部分组成。微处理器控制 GPRS 模块接收和发送信息,通过标准 RS232 串口和外部控制器进行数据通讯,其原理系统结构如图1所示。
2.1系统硬件芯片选型
该系统选用的微处理器是Samsung公司的S3C2410X[2],是ARM9系列的一款芯片。它面向于要求高性能,低功耗等重要特点的嵌入式应用,内核采用5阶段管道化,同时配备Thumb扩展、调试和Harvard总线。主要面向手持设备以及高性能比低功耗的应用。
GPRS无线通讯模块选用的是SIMENS的MC35I,它是 Siemens公司推出的新一代无线通信 GPRS模块,可以快速安全可靠地实现系统方案中的数据、语音传输、短消息服务和传真,支持文本和 PDU 模式的短消息、第3组的2类传真、以及2.4k,4.8k,9.6k的非透明模式。
2.2硬件电路设计
GPRS无线传输系统装置共分2部分:无线传输模块和数据中心。无线传输模块将数据通过GSM网络传到数据中心后,进行协议转换还原用户数据,同时对用户端进行管理。
GPRS用户终端一开机就自动附着在GPRS网络上,并与数据中心建立通信链路,随时收发用户数据。当GPRS模块收到用户的数据后,经过微处理器的协议转换后,在通过AT命令将数据发送到数据中心。
在无线数据终端的硬件结构中,以处理器为核心,主要有以下几个模块组成:①CPU中央处理器单元。包括S3C2410X处理器的最小系统、时钟电路、复位电路等部分。②FLASH存储单元。可存放用户应用程序、操作系统或其他在系统调电后需要保存的用户数据等,该系统采用了2片16位的FE28F128。③RS-232串行接口。在S3C2410X系统与用户端进行串行通信时使用。如图2所示,通过串行口接口芯片SP3232ECA,实现TTL电平和EIA电平之间的相互转换,并实现硬件流控功能,从而使S3C2410 X嵌入式系统能进行串行数据通信。
图2 串行接口电路
根据系统的需求,系统软件主要包括嵌入式实时操作系统的uC/OS-Ⅱ的移植和基于uC/OS-Ⅱ操作系统的应用程序设计。
3.1uC/OS-Ⅱ在S3C2410X的移植
uC/OS-Ⅱ[3]是一个简单、高效的嵌入式实时操作系统内核,已经被应用到各种嵌入式系统中。它的内核都具有可抢占的实时多任务调度功能,另外它还提供了许多系统服务,如信号量、消息队列、邮箱、内存管理、时间函数等,这些功能可以根据不同的需求进行裁减。
将uC/OS-Ⅱ 移植到S3C2410X处理器上,需要完成的工作非常简单,修改3个和体系结构相关的文件即可,代码量大约是500行。这3个文件是OS_CPU_C .C、OS_CPU_C.H和OS_CPU_A.S。下面将分别说明:
1)设置OS-CPU.H中与处理器和编译器相关的代码。
2)在OS-CPU-C.C中用c语言实现与处理器任务相关的6个函数:OSTaskStkinit()、OSTaskCreateHOOK()、OSTaskDelHook()、OSTaskSwHOOK()、OSTaskStatHook()、OSTimeTickHook()。
3)在OS-CPU-A.ASM文件中编写4个处理器相关部分汇编的函数:OSStartHighrdy()、OSCtxsw()、OSIntExit()、OSTickIST()。
在完成以上工作之后,嵌入式实时操作系统uC/OS-Ⅱ就可以在S3C2410X上工作了。
3.2应用程序设计
根据该系统的需求,在操作系统uC/OS-Ⅱ启动前,首先应该对微处理器、GPRS模块在内的系统内外部硬件进行初始化,在硬件初始化就绪后,按系统要求划分并创建系统任务,最后启动uC/OS-Ⅱ 进行各任务的调度。应用程序共分为5个任务:初始化任务、配置任务、数据发送任务、数据处理任务和用户串口中断服务任务。
初始化主要作用就是完成系统的启动和测试MC35I与网络的链路,并初始化串口,其执行完毕后,自动撤消;配置任务优先级最高,负责系统任务的调用。
图3 应用程序流程图
开机后首先请求GPRS服务并进行PPP协商,成功后从串口接收测量数据,在GPRS发出数据之前数据要经过封装,封装后的数据由MC35I经过GSM网络传输到用户,再根据数据的传输格式进行层层解析,便可得到用户数据。
在串口数据不足一整包或者暂时没有数据时,系统将对其分别进行处理。对于较少的数据,系统会按照一整包发送;当没有数据时,系统也将产生一个没有用户信息的信号,向网络发送来保持网络链路的畅通,该系统设置当串口超过30s没有数据发送时,系统将执行一次这样的任务,应用程序流程如图3所示。
系统的数据处理要求内存能够动态分配和释放, uC/OS-Ⅱ虽然提供了这个功能,但不能指示内存块里有用数据的起始地址和长度,这对应用而言是一个不足之处。因为应用层的数据在经过每层协议时都会被加上报头,如果数据前面没有可用的内存空间,就必须把数据向后移动,给报头让出空间, 这样会影响效率。为避免这种情况,在写入应用层数据时应事先给报头让出空间,即有用数据要能出现在内存块的任何位置。为此,设计了一个内存管理的结构体数组,记录每个内存块里有用数据的起始地址和长度,协议模块在处理数据前要首先查看这个结构体数组,以确定有用数据的位置。
在实验室环境下,使用S3C2410X芯片、GPRS、MC35I[5]和移动SIM卡等模块实现了样机,进行了测试试验,其结果如表1所示。
表1 测试试验结果
在测试中,由于开发时间和测试条件的限制,无法完成稳定性的测试。但是通过对测试方案的完整设计,实现了对GPRS无线通信系统软、硬件功能的测试。通过使用串口监测程序,检测在串口上传输的数据,GPRS驱动程序工作正常,能够很好的支持数据/命令复合协议传输,其协议的丢包率和吞吐量等性能指标与无线模块规定的指标无实质性差别。在GPRS驱动程序之上,其他模块都能够工作良好,更准确的测试数据分析需要专业的仪器的支持,现有条件尚不具备专业测试能力。
试验表明,样机实现了数据的远距离的无线通讯,通讯质量较好;在数据传输测试中,反复与数据中心进行数据交互,数据正确,延时少。因此,此系统具有一定的实用价值。
随着无线通信技术和嵌入式操作系统的发展,类似于GPRS的软、硬件系统会得到更加广泛的应用,无线通信技术正在向3G无线通信系统迈进,GSM/GPRS虽然是作为3G的过渡技术而产生的,但是在无线通信技术中的地位是不可忽略的。该系统将无线通信技术与嵌入式技术有机的融合在一起,使用户终端以低廉、快速、可靠的方式连入GPRS网络和互联网,使用户终端数据信息可以简洁、实时的进行传送,为用户终端安全稳定的运行提供了可靠的保证。同时,考虑到有移植的需要,在设计时将驱动程序和应用程序分离开来,便于系统的移植和修改。
[1]孙德辉.基于GPRS的无线传输系统的设计与实现[J].微计算机信息,2007,23(7):104~106.
[2]何加铭. 嵌入式32位微处理器系统设计与应用[M]. 北京:电子工业出版社,2006.
[3]王田苗.嵌入式系统设计与实例——基于ARM微处理器与uC/OS-Ⅱ实时操作系统[M]. 北京:清华大学出版社,2002.
[编辑] 易国华
TP393
B
1673-1409(2009)02-N091-03
2009-02-24
湖北省教育厅(A类)重点项目(D200712001)。
李敏(1972-),女,1993年大学毕业,博士,教授,现主要从事嵌入式系统方面的教学与研究工作。