基于ATmegal6的GPRS数据终端设计

发布时间:2010-8-18 16:26    发布者:lavida
关键词: ATmegal6 , GPRS , 数据终端
目前,在由GPRS承载业务支持的标准化网络协议的基础上,可提供点对点无连接型网络业务(PTP—CLNS)、点对点面向连接的数据业务(PTP-C*)和点对多点业务(PTM),还能支持用户终端业务、补充业务、GSM短消息业务和各种GPRS电信业务。GPRS可提供Internet、多媒体、电子商务等业务,可应用于运输业、金融、证券、商业和公共安全业;PTM业务支持股市动态、天气预报、交通信息等实时发布;另外,还能提供种类繁多、功能强大的以GPRS承载业务为基础的网络应用业务和基于WAP的各种应用。其中,GPRS的数据业务在行业应用中越来越广泛。该业务已被应用于远程抄表、电力系统远程监控、交通远程监控、车辆监控和GPS导航等诸多方面。  

在GPRS数据业务的行业应用中,数据终端是最基本的设备。目前的数据终端具有智能化和可扩展性不断增强的发展趋势,性能越来越强大,接口越来越丰富,但成本一直居高不下。本文介绍一种以基于AVR单片机ATmegal6和Motorola G20模块的低成本GPRS数据终端的设计。  

1 终端的硬件设计  

终端由ATmegal6和G20模块及一些外围器件组成,系统的硬件结构如图1所示。ATmega16具有1个功能完整的异步串行通信接口(UART),在直流5V供电时,其I/O操作电压范围约为O~5V;G20模块提供一个用于接收控制命令和传输数据的异步串行通信接口,在直流3.3V供电时,其I/O操作电压范围为0~3.3 V,因此,可以将ATmegal6串行接口经电平转换电路转接后与G20模块的串行口相连,进行异步串行数据交换。终端采用一块16×2字符型LCD显示GPRS网络连接及数据传输状况信息。ATmegal6和LCD采用直流5 V供电,5 V电源经过由低压差线性稳压集成电路LM1117—3.3组成的稳压电路将电压转换成3.3 V后给G20模块供电。  


  
1.1 ATmegal6与G20模块的硬件接口  

由于ATmegal6和G20模块的I/O操作电压范围不相同,所以两者的串行口之间需经过电平转换才能确保稳定通信,其电平转换电路如图2所示。  


  
这里采用光电耦合器件TLP521进行5 V和3.3 V之间的电平转换。ATmegal6的I/O驱动能力较强(最大输出40 mA电流),可以直接驱动TLP521。G20模块的I/O驱动能力较弱,需加一级驱动缓冲器才能驱动TLP521,这里使用7406反相驱动缓冲器。  

1.2 ATmegal6与LCD的硬件接口  

系统中采用基于HD44780液晶控制芯片的16×2字符型LCD,该器件内置了字符产生器,能显示192个常用字符(包括阿拉伯数字和大小写英文字母)和16个用户自定义字符,它与ATmegal6的接口如图3所示。HD44780的数据总线DB7~DB0与ATmegal6的PA7~PA0相接,RS、R/W和EN分别与单片机的PD3、PD4和PD5相连。利用ATmega16的I/O口控制LCD进行指令和数据输入,正确地显示出经纬度数据。  


  
2 ATmega16与G20模块的接口程序设计  

利用GPRS网络进行数据传输一般有多种组网方案,这里以其中一种方案进行说明,其他方案的数据终端实现方式类似。该方案采用数据中心公网固定IP,由监测点直接向中心发起连接。  

G20模块自身内嵌了TCP/IP和UDP/IP协议栈,大大简化了接口程序的编写。G20模块串口通信默认在57 600 b/s的速率下进行,数据格式为:8位数据位、1位停止位、无奇偶校验和硬件流控制。  

G20模块只能接受由ASCII字符代码组成的标准格式的AT指令。根据Developer′S Guide-Motorola G20 AT Commands所讲述的内容,一行G20模块的AT指令可以包含一条或者多条命令,这些命令必须由分隔符相隔,每个AT指令行不得超过140个字符。G20模块具体的AT命令行结构如图4所示。  


  
每个AT命令行均以字符串“AT”为前缀,以回车符“”为后缀。命令行中各指令之间的分隔符可以为分号“;”或者空格。命令行中的英文字母可以是大写格式,也可以是小写格式。  

每当G20模块接收到指令时都会输出相关的响应信息,以显示指令的执行结果。响应信息的数据格式如图5所示。响应信息由3部分组成:前缀、响应代码和后缀。其中,前缀和后缀一样,均为回车和换行符,即“”;不同指令在不同情况下的响应代码也不一样。  


  
在实际应用中,可以通过程序控制ATmegal6由其异步串行口按照既定的通信速率、数据格式和指令形式向G20模块发出控制指令,然后监视G20模块的响应信息,根据响应信息判断命令的执行结果,进而控制G20模块进行远程无线数据发送。利用G20模块实现GPRS数据发送一般要按照以下控制步骤进行(这里使用的是UDP协议):  

(1)通过指令“at+mipcall=[,[,-]]”建立一个GPRS无线链接,如“at+mipcall=1,cmnet”。在这里,“cmnet”是中国移动的APN名称。其中可为0或1,0代表断开连接,1代表连接。[,[,]]是可选项,无需时省去。如果链接建立成功,G20模块将会返回本机的IP地址,如“0K+mipcall:10.103.201.135”,此时本机在移动内网的IP地址为:10.103.201.135。如果链接不成功,G20模块将会返回错误信息“ERROR”。  

(2)通过指令“at+mipopen=,,,,”打开一个端口(Socket),如“at+mipopen=l,2000,“219.222.73.240”,6800,1”。其中,是本地端口号,G20模块一共可以打开4个端口,端口序号分别是1~4;是G20模块本机的端口号,其数值可以是0~65 535;是目标IP地址,可以是直接连接到Internet公网的某台PC的IP地址。是目标的端口号,其数值可以是0~65535。是协议栈类型,其数值可以为0或1,0代表是TCP协议栈,1代表UDP协议栈;如果端口打开成功将返回“OK+MIPOPEN:,”,如“OK+MIPOPEN:1,1”。如果端口打开不成功,将会返回错误信息“ERROR”。  

(3)通过指令“at+mipsend=,”将需要发送的数据压入G20模块的发送堆栈。如“at+mipsend=1,4142434445”。这里的是前面已经打开的端口序号,是所要发送的数据,数据格式必须是用十六进制表示的数据(数值或者字符)的双字节ASCII值。如要发送的数据为“ABCDE”(A、B、C、D和E的ASCII数值分别为0x41,0x42,0x43,0x44和0x45),则要将“4142434445”作为压入发送堆栈。指令操作成功时,G20模块返回信息“+MIPSEND:,OK”,如“+MIPSEND:1,1367OK”,其中是端口序号,是指堆栈中的剩余空间,其数值可为O~1372。如操作不成功,G20模块将会返回错误信息“ERROR”。  

(4)通过指令“at+mippush=[,,]”将特定序号发送堆栈中的数据出栈,如“at+mippush=1”执行这条指令之后,堆栈中的数据就被发送出去了。这里所说的堆栈序号是和前面所述的端口序号一一对应的。方括号中的内容是可选项,不需要时可以省去。数据发送成功时,G20模块返回信息“+MIPPUSH:OK”,如“+MIPPUSH:1OK”。如数据发送失败,G20模块将会返回错误信息“ERROR”。  

(5)反复进行上述步骤(3)和(4),直至所有数据发送完毕为止。  

(6)通过指令“at+mipclose=”关闭已打开的端口,如“at+mipclose=1”。端口关闭成功时,G20模块会返回信息“OK+MIPCLOSE:”,如“OK+MIPCLOSE:1 ID>”。如果端口关闭不成功,G20模块将会返回错误信息“ERROR”。  

(7)通过指令“at+mipcall=0”关闭GPRS网络连接。如果网络连接关闭成功,G20模块将会返回信息“OKNOCARRIER+MIPCALL:0”。如果网络连接关闭不成功,G20模块将会返回错误信息“ERROR”。  

另外,G20模块接收到远程终端通过GPRS网络发送过来的数据时会自动从其串口输出该数据。如果接收到的是UDP协议的数据,G20模块会以以下数据格式输出:  

+M1PRUDP:,,,,  

其中,是发送方的IP地址,是发送方的端口号,是本机端口序号,留在堆栈中的接收数据字节数,是所接收到的数据。如果接收到的是TCP协议的数据,G20模块会以以下数据格式输出:  

+MIPRTCP:,,  

各部分含义如前述。编程使ATmegal6不断查询串口接收缓冲区即可实现数据接收,也可以采用接收中断的方式提高运行效率。  

3 结 语  

GPRS数据传输链路中GGSN(网关GPRS支持节点)占用的端El的存活时间是有限的,如果链路空闲超时,连接就会断开,可通过定时发送数据短帧的方式来维持链路。经测定,本地(广州)的GPRS数传链路维持时间为60 s。基于ATmegal6的GPRS数据终端成本低,易于推广普及,可用于远程数据采集、系统监测和Internet远程接入等领域。
本文地址:https://www.eechina.com/thread-22217-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表