kaiyun官方注册
您所在的位置: 首页> 通信与网络> 业界动态> 采用GPRS的无线数据终端的设计

采用GPRS的无线数据终端的设计

2009-07-13
作者:胡绍忠,程 健

摘 要:介绍了基于GPRS的无线数据终端的总体结构,阐述了采用S3C2410作为微控制器的硬件平台设计方案,移植了Linux操作系统,最后对应用程序的设计进行了介绍。运行结果表明,数据终端工作稳定,数据传输安全可靠,有实际参考价值。
关键词:GPRS;S3C2410;Linux

无线通信技术的飞速发展,促进了无线通信技术在工业监视、控制、检测中的应用。无线通信包括短距离无线通信和无线移动通信。其中短距离无线通信的通信距离一般在几十米,而无线移动通信则没有距离限制,只要在移动网络的覆盖范围之内都可以。目前的移动网络主要有GPRS/GSM和CDMA 2种,虽然CDMA网络采用的是码分多址技术,在理论上比GPRS更为先进,但考虑到信号覆盖范围和成本等因素,在许多实际工业应用中,仍然选择了GPRS网络[1]。数据终端是一种通过GPRS接入Internet的设备,它为客户提供稳定、高速、永远在线、成本低廉的数据传输通道,因此广泛应用于各种远程数据传输与监控系统。
控制领域中,传统无线数据终端一般采用单片机与GPRS模块的系统结构,受硬件运算能力的限制,其整体功能较弱,尤其是在网络协议的开发与支持上都有相当的难度。而近年来,以ARM为代表的嵌入式32位微处理器技术得到了飞速发展,无论是在功耗还是在硬件成本上,许多高性能的ARM芯片已经与单片机相差无几,因此在许多工业应用中,使用ARM芯片取代传统的8/16位单片机已经是一个非常经济、理想的选择。本文以ARM和GPRS模块的系统架构取代传统的无线数据终端设计方案。
1 系统硬件设计
采用三星公司的S3C2410为控制器,和西门子的GPRS模块MC39I组成的系统架构取代传统的无线数据终端设计方案,不仅可以利用ARM芯片丰富的片内、片外资源简化系统硬件结构,而且可以通过移植Linux等嵌入式操作系统来利用其丰富的协议接口[2],减小实际应用的开发难度,便于向高端系统应用升级。系统结构如图1所示。


系统通过GPRS模块连接到GSM/GPRS网络,实现数据的无线传输;且通过UART接口和S3C2410连接,实现与S3C2410的通信并接受S3C2410的控制,图中的其他功能模块实现系统所需的基本功能。
本文设计的无线数据终端选用S3C2410处理器作为系统的核心处理单元,外接GPRS模块,作为整个系统的硬件平台。S3C2410是三星公司的一款基于ARM920T核的32位微处理器。主频最高可达266 MHz,在本系统中工作于200 MHz。
GPRS模块采用西门子的MC39I模块,它支持900/1 800 MHz的双频,通过一个40针对接口与外接连接,包括电源接口、SIM卡接口、音频接口、串口接口和其他的一些控制接口[3]
1.1 电源部分
MC39I在突发传输过程中电流高达2 A,当天线不匹配时电流可能更大,并且要保证在大电流的情况下,电压VBATT+不能低于3.3 V,当低于3.3 V时MC39I自动关闭。
基于上述考虑,采用了开关电源芯片。当负载电流在0~3V之间时,可以确保输出电压不超过150 mV。电源部分原理图如图2所示。


1.2 S3C2410和MC39I的通信接口设计
S3C2410和MC39I通过标准的RS-232串行接口进行通信,用户可以使用AT指令通过串口对MC39I进行操作。S3C2410和MC39I的通信连接如图3所示。


当S3C2410与MC39I模块通信时,可以只使用TXD、RXD引脚。但是若要通过模块上网,则应该尽量使用全部的串口信号线引脚,包括TXD、RXD、RTS、CTS、DTR、DSR、DCD、RING。另外,可以将MC39I的RI信号线与S3C2410的中断引脚相连,表示来电呼入[4]
1.3 SIM卡接口设计
在40针的接口中有6个接口是SIM卡接口:CCVCC为SIM卡提供电源;CCRST为SIM卡复位引脚;CCLK为SIM卡时钟信号线;CCGDN为地线;CCIN,利用此信号线,MC39I可以检测SIM的一些状态,比如SIM卡是否在SIM卡座之中;CCIO为I/O串行数据线。这6个接口可以直接与SIM卡座相连,另外,在CCVCC和CCGND处都使用一个100 pF的电容,并且尽量靠近引脚,在布线时采用低阻抗走线。MC39I与SIM卡的接口如图4所示。


1.4 其他信号线
IGT触发引脚在下降沿时触发MC39I,低电平需保持100 ms以上。利用S3C2410的GPIO口产生大于100 ms的低电平。引脚当低电平时间大于3.2 s时将关闭MC39I。同样可以利用S3C2410的GPIO口产生大于3.2 s的低电平。SYNC引脚用来控制一个LED灯,LED灯的状态反映系统当前的状态。
2 系统软件设计
系统的软件设计包括2部分:操作系统的移植和应用程序的设计。
2.1 Linux的移植
Linux内核采用模块化设计,具有良好的可移植性和可定制性,因此成为一种主流的嵌入式操作系统。Linux 2.6.10以后,Samsung S3C2410已经成为Linux的一个标准支持平台,不需要任何patch就可以在S3C2410的目标板上运行得很好。所以在系统中移植了Linux2.6.11版本。主要包括3项工作:(1)修改makefile文件,将ARCH设置为arm,CROSS_COMPILE设置为arm-Linux-;(2)进行Flash分区的设置;(3)进行Linux内核的配置,去掉一些系统不再需要的模块,使内核映像减小到最小,使系统更加稳定。另外,无线数据终端中采用了U-boot-1.1.4作为bootloader。最后,为了能够保存一些重要的数据,增加了YAFFS2文件系统,专门针对nandflash做了优化,可以充分利用nandflash的特点。
2.2 应用程序设计
系统应用程序是通过ARM模块对MC39I模块的控制实现快速的短信收发,ARM模块通过串口并使用AT指令来对MC39I模块进行控制[5]。例如,通过串口向MC39I写入AT+CMGS=“5955176621” ,然后再写入要发送的内容,紧接着是 ,就可以将要发送的内容发送到手机号为15955176621的手机。整个无线数据终端的应用程序主要由3个函数组成,包括主函数main.c,发送短信的函数SendSMS.c和接收短信的函数ReceiveSMS.c。
主函数main.c主要完成GPRS模块的初始化(包括设置短信中心号码、采用AT+CMEE=1来设置MC39I返回详细的错误信息、采用AT+CNMI=2,2,0,0,1来选择新消息的提示方式、采用AT+CMGF=1来设置消息为TEXT格式等)、串口的初始化(包括打开串口、设置串口的波特率、奇偶校验等),然后等待输入命令(是发送短信还是接收短信,比如接收到的命令是发送短信时将发送文件中的内容发送出去,接收到的命令是接收短信时再根据接收到的短信内容进行相应的操作)。主函数的流程如图5所示。


SendSMS.c主要用于发送文件内容。先打开串口;然后保存已经打开串口的各种属性值,设置ARM和MC39I模块通信时采用的各种串口属性值;以只读方式打开需要发送的文件,将文件内容读取到缓冲区;然后通过AT+CMGF=1设置消息为文本格式,通过AT+CMGS将文件内容发送到指定的手机中,在使用AT指令的过程中,要注意分析返回信息来判断发送是否成功。短信发送流程如图6所示。


ReceiveSMS.c主要完成短信的接收并且将接收到的内容写入文件中。与发送短信相同,先打开串口;然后保存已经打开串口的各种属性值,设置ARM和MC39I模块通信时采用的各种串口属性值;采用AT+CNMI=2,1,0,0,0将接收到的短信存储到SIM卡中;再采用AT+CMGR从SIM卡中读取短信内容到缓冲区;最后以读写方式打开文件并将短信内容写入文件。短信接收到流程如图7所示。


通过实验,无线数据终端与平时所用的手机能够进行很好的短信通信。作为实验通过手机对无线数据终端上的LED灯进行控制,为远程的无线控制打下了基础。同时,基于GPRS/GSM网络的无线数据终端采用ARM和Linux作为平台,使应用程序的设计和升级会比较容易一些。例如MC39I没有带TCP/IP协议,所以在以后的升级中可以使用Linux中的TCP/IP协议,从而很方便地实现GPRS的无线上网。
参考文献
[1] BATES R J.通用分组无线业务(GPRS)技术与应用 [M].朱洪波,译.北京:人民邮电出版社,2004.
[2] 刘淼.嵌入式系统接口设计与Linux 驱动程序开发[M].北京:北京航空航天大学出版,2006.
[3] MC39I Hardware Interface Description[Z] .Siemens mobile,2003.
[4] 管耀武,杨宗德.ARM嵌入式无线通信系统开发[M].北京:电子工业出版社,2006.
[5] MC39I AT Command Set[Z] .Siemens mobile,2003.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。
Baidu
map