基于ARM/GPRS的无线数据传输系统设计
- 格式:doc
- 大小:23.00 KB
- 文档页数:6
基于ARM/GPRS的无线数据传输系统设计作者:侯国成杨宏业冯家鹏曹俊琴来源:《现代电子技术》2008年第19期摘要:随着单片机及ARM技术的广泛应用,以及芯片技术的不断发展,GPRS通用分组无线业务在当前远程无线数据传输、遥测遥控中越来越受到人们的重视,所以,由此而开发设计的二次设备和产品得到极大的推广和应用。
论述了基于WAVECOM Q2406B无线通讯模块、ARM7 LPC2138微处理器的数据传输终端设计方案,并提供了部分硬件电路图、软件流程图及程序代码。
关键词:GPRS模块;RS 232;LPC2138;AT命令;ARM中图分类号:文献标识码:B文章编号:1004373X(2008)1903903Design of Wireless Data Transmission System Engineering Based on ARM/GPRSHOU Guocheng1,YANG Hongye2,FENG Jiapeng3,CAO Junqin4(1.Dalian Meteorological Bureau,Dalian,116001,China;2.Inner Mongolia University of Technology,Hohhot,010051,China;3.Taiyuan Institute of China Coal Research Institute,Taiyuan,030001,China;4.Taiyuan University of Science and Technology,Taiyuan,030024,China)Abstract:Along with the wide application of single chip computer and ARM technique as well as the development of integrated chip technique,GPRS general grouping wireless service is attached with more importance by people in the current teledata transmission,telemetering and remote control.Therefore,secondary product and quality goods developed and designed according to the techniques mentioned are obtaining enormous promotion and application.The data transmission terminal design based on WAVECOM Q2406B Module and ARM7 LPC2138 are elaborated,and partial hardware electric diagram,software flowchart and program code are provided.Keywords:GPRS module;RS 232;LPC2138;AT command;ARM随着无线通讯技术的发展,依托移动运营商提供的无线网络实现远程监控和数据传输已被广泛应用于各个领域。
通用分组无线业务(General Packet Radio Service,GPRS)是在现有GSM系统上发展出来的一种分组数据承载业务。
因此,GPS车载终端、自动抄表系统等远程遥测遥控系统利用GPRS实现数据传输将成为今后发展的趋势。
本文以ARM7 LPC2138与WAVECOM 的Q2406B无线通信模块为例具体介绍实现GPRS数据传输的方法以及关键技术。
1 GPRS数据传输的协议分析和实现GPRS无线数据传输终端利用GPRS网络实现与上位机的全双工数据通信。
终端需附着GPRS网络,登陆Internet与连接其上的任意一台普通PC机建立数据链路并随时进行数据传输。
完成这一过程必须实现GPRS的附着和PDP(Packet Data Protocol,分组数据协议)上下文的激活。
通过GPRS的附着登记用户信息,对用户进行移动性管理;激活过程用于激活IP协议,保证数据能以IP报的形式进行传送,使移动台与GGSN(Gateway GPRS Support Node,网关GPRS节点)建立一条逻辑通路,进行数据传输。
可见,激活过程是系统实现的关键,它由中央控制器软件来实现。
分组数据协议的激活涉及到网络的多个协议,如PPP协议、LCP(Link Control Protocol,链路控制协议)、NCP(Network Control Protocol,网络控制协议)、PAP(Password Authentication Protocol,密码认证协议) 和IPCP( Internet Protocol Control Protocol,Internet 协议控制协议)等。
协议实现过程如下:系统设计的主要思路是微处理器通过发送AT指令控制GPRS模块建立无线信道、完成数据传输。
用AT指令实现以上协议并完成数据传输的步骤如下:(1) 设置接入网关:AT#CGDCONT=1,“IP”,“CMNET”;(2) GPRS 网络附着: AT+CGATT=1;(3) 激活GPRS模式:AT+GPRSMODE=1;(4) 设置网络接入点名称:AT#APNSERV= “CMNET”;(5) 请求网络连接:AT#CONNECTIONSTART;(6) 设置上位机的IP地址:AT#TCPSERV=“*”;(7) 设置上位机侦听的端口准备与客户端通信:AT#TCPPORT=“6800”;(8) 打开与上位机的连接:AT#OTCP;(9) 断开GPRS网络连接:AT#CONNECTIONSTOP;(10) 取消GPRS附着:AT+CGATT=0。
在完成GPRS数据传输过程中,以上AT命令均必须设置,但相邻AT命令间要有一定延时,经验证,约3 s即可。
2 数据传输终端的硬件设计2.1 系统硬件框图系统硬件框图如图1所示。
2.2 系统硬件组成2.2.1 微控制器系统中,微控制器选用PHILIPS公司的LPC2138。
LPC2138的典型特性如下(仅列举与本终端设计密切相关的部分,如图2所示):多个串行接口,包括2个16C550工业标准UART、2个高速I2C接口(400 kb/s)、SPI和SSP(具有缓冲功能,数据长度可变)。
支持ISP(通过UART0实现)和IAP,扇区擦除或整片擦除的时间为400 ms,1 ms可编程256 B。
2个32位定时器/计数器,内置看门狗。
CPU操作电压范围:3.0~3.6 V(3.3 V±10%),I/O口可承受5 V的最大电压。
2.2.2 串口电平转换LPC2138串口通过SP3232E完成TTL/CMOS电平转换后与GPRS模块相连接,实现模块初始化和数据收发。
同时可扩展串口与其他嵌入式系统或PC机进行数据交换,如图3所示。
2.2.3 GPRS模块WAVECOM Q2406BGPRS模块选用法国WAVECOM的Q2406B,该模块内置TCP/IP协议并提供了9针的标准RS 232接口。
模块大致原理图及其与SIM卡的连接如图4所示。
3 数据传输终端的软件实现系统软件设计的核心部分是微控制器LPC2138与GPRS模块的通信,两者间需定义通信协议、规定帧格式,通过AT指令实现GPRS网络的附着、PDP激活、Internet的接入及数据传输。
3.1 AT指令调试及波特率的设置微控制器以一定的协议向模块发送AT指令,接收模块执行指令后的返回值,并进行相应校验。
在Windows自带的超级终端中利用AT+IPR=“波特率”指令设置无线通信模块的波特率,并通过命令后加“;&W”将所设值存储在模块E2PROM中,掉电后不会丢失(如:AT+IPR=“115200”;&W)。
系统设计过程中通信的不畅通常是由于波特率不匹配造成。
3.2 建立连接为了方便程序设计,增强程序可读性,将建立连接所需的AT命令以字符串形式存放于AT命令缓存区,所需多条AT指令长度不一且发送顺序不可改变,为了有效控制每条AT指令、提高CPU利用率需将AT指令缓存区设置为指针数组形式,在建立连接时通过循环调用字符串发送函数将这些AT命令发送,相邻AT命令间要有2~3 s的延时,所以每发送完一条AT命令都要调用一个3 s的延时子程序,然后通过串口中断接收函数接收AT命令返回值来判断连接是否成功。
需要注意的是AT命令均以回车符作为结束标志,并以字符串形式传送,因此在定义AT命令缓存区时一定要注意转义字符的使用。
3.3 数据传输在与上位机连接成功后,通过字符串发送函数发送数据缓存区中的数据,数据缓存区仍需设置为指针数组形式,发送数据的原理与建立连接时的基本相同,图5是系统程序流程图。
下面是用串口中断发送字符串的函数举例。
********************函数名称:UART0SendStr()函数功能:向串口发送字符串入口参数:str要发送的字符串的首地址指针********************void UART0_SendStr( char const *str){Str_Send_P = str;U0THR = *Str_Send_P++;U0IER|=0x02;//开启THRE中断}在中断发送程序中的处理为:switch(IIR & 0x0e){case0x02: //利用THRE中断,发送字符串if((*Str_Send_P)!=′\\0′)U0THR = *Str_Send_P++;elseU0IER&=(~0x02);//关发送中断break;…}3.4 断开连接数据链路的释放可通过发送数据传输结束标志“+++”实现,但必须延时一定时间后再发送断开连接指令:AT#CONNECTIONSTOPAT+CGATT=04 结语本文在介绍GPRS网络应用技术的基础上,为LPC2138实现GPRS数据传输提供了一种通用的解决方案,通过以上的软硬件设计,可以实时地发送和接收数据。
此方案稍做修改便可移植到GPS车载终端、自动抄表等实际应用工程中。
参考文献[1]周立功.深入浅出ARM7-LPC213X/214X[M].北京:北京航空航天大学出版社,2006.[2]谭浩强.C语言程序设计[M].2版.北京:清华大学出版社,2001.[3]刘旭,张其善.一种基于GPRS的车辆监控系统[J].遥测遥控,2003,24(1):42-45,49.[4]赵茂泰.智能仪器原理及应用[M].2版.北京:电子工业出版社,2004.[5]陈忠平,曹巧媛,曹琳琳,等.单片机原理及接口[M].北京:清华大学出版社,2007.[6]童诗白,华成英.模拟电子技术基础[M].3版.北京:高等教育出版社,2001.[7]姜立东,姜雪松.Protel DXP原理图与PCB设计[M].北京:北京邮电大学出版社,2004.[8]WAVECOM company.Q2406 and Q2426 Product Specification.Version001[Z].2002.[9]WAVECOM company.AT Commands Interface Guide.Version1.00[Z].2001.[10]WAVECOM company.AT commands for GPRS.Version 1.8[Z].2002.作者简介侯国成男,1962年出生,天津蓟县人,工程硕士,大连市气象局处长、高级工程师。