首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于ATmegal6的GPRS数据终端设计
来源:本站整理  作者:佚名  2009-12-29 10:30:16




    (2)通过指令“at+mipopen=<Socket ID>,<Source Port>,<"Destination IP">,<DestinationPort2>,<Protocol2>”打开一个端口(Socket),如“at+mipopen=l,2000,“219.222.73.240”,6800,1”。其中,<Socket ID2>是本地端口号,G20模块一共可以打开4个端口,端口序号分别是1~4;<Source Port>是G20模块本机的端口号,其数值可以是0~65 535;<“Destination IP”>是目标IP地址,可以是直接连接到Internet公网的某台PC的IP地址。<DestinationPort>是目标的端口号,其数值可以是0~65535。<Protocol>是协议栈类型,其数值可以为0或1,0代表是TCP协议栈,1代表UDP协议栈;如果端口打开成功将返回“<CR><LF>OK<CR><LF><CR><LF>+MIPOPEN:<Socket ID>,<State><CR><LF>”,如“<CR><LF>OK<CR><LF><CR><LF>+MIPOPEN:1,1<CR><LF>”。如果端口打开不成功,将会返回错误信息“<CR><LF>ERROR<CR><LF>”。
    (3)通过指令“at+mipsend=<Socket ID>,<Data>”将需要发送的数据压入G20模块的发送堆栈。如“at+mipsend=1,4142434445”。这里的<Socket ID>是前面已经打开的端口序号,<Data>是所要发送的数据,数据格式必须是用十六进制表示的数据(数值或者字符)的双字节ASCII值。如要发送的数据为“ABCDE”(A、B、C、D和E的ASCII数值分别为0x41,0x42,0x43,0x44和0x45),则要将“4142434445”作为<Data>压入发送堆栈。指令操作成功时,G20模块返回信息“<CR><LF>+MIPSEND:<Socket ID>,<Free Size><CR><LF><CR><LF>OK<CR><LF>”,如“<CR><LF>+MIPSEND:1,1367<CR><LF><CR><LF>OK<CR><LF>”,其中<Socket ID>是端口序号,<Free Size>是指堆栈中的剩余空间,其数值可为O~1372。如操作不成功,G20模块将会返回错误信息“<CR><LF>ERROR<CR><LF>”。
    (4)通过指令“at+mippush=<Socket ID>[,<“Destination IP”>,<Destination Port>]”将特定序号发送堆栈中的数据出栈,如“at+mippush=1”执行这条指令之后,堆栈中的数据就被发送出去了。这里所说的堆栈序号是和前面所述的端口序号一一对应的。方括号中的内容是可选项,不需要时可以省去。数据发送成功时,G20模块返回信息“<CR><LF>+MIPPUSH:<Socket ID><CR><LF><CR><LF>OK<CR><LF>”,如“<CR><LF>+MIPPUSH:1<CR><LF><CR><LF>OK<CR><LF>”。如数据发送失败,G20模块将会返回错误信息“<CR><LF>ERROR<CR><LF>”。
    (5)反复进行上述步骤(3)和(4),直至所有数据发送完毕为止。
    (6)通过指令“at+mipclose=<Socket ID>”关闭已打开的端口,如“at+mipclose=1”。端口关闭成功时,G20模块会返回信息“<CR><LF>OK<CR><LF><CR><LF>+MIPCLOSE:<Socket ID><CR><LF>”,如“<CR><LF>OK<CR><LF><CR><LF>+MIPCLOSE:1 ID><CR><LF>”。如果端口关闭不成功,G20模块将会返回错误信息“<CR><LF>ERROR<CR><LF>”。
    (7)通过指令“at+mipcall=0”关闭GPRS网络连接。如果网络连接关闭成功,G20模块将会返回信息“<CR><LF>OK<CR><LF><CR><LF>NOCARRIER<CR><LF><CR><LF>+MIPCALL:0<CR><LF>”。如果网络连接关闭不成功,G20模块将会返回错误信息“<CR><LF>ERROR<CR><LF>”。
    另外,G20模块接收到远程终端通过GPRS网络发送过来的数据时会自动从其串口输出该数据。如果接收到的是UDP协议的数据,G20模块会以以下数据格式输出:
    <CR><LF>+M1PRUDP:<Source IP>,<Source Port>,<Socket ID>,<Left>,<Data>
    其中,<Source IP>是发送方的IP地址,<Source Port>是发送方的端口号,<Socket ID>是本机端口序号,<Left>留在堆栈中的接收数据字节数,<Data>是所接收到的数据。如果接收到的是TCP协议的数据,G20模块会以以下数据格式输出:
    <CR><LF>+MIPRTCP:<Socket ID>,<Left>,<Data>
    各部分含义如前述。编程使ATmegal6不断查询串口接收缓冲区即可实现数据接收,也可以采用接收中断的方式提高运行效率。


3 结 语
    GPRS数据传输链路中GGSN(网关GPRS支持节点)占用的端El的存活时间是有限的,如果链路空闲超时,连接就会断开,可通过定时发送数据短帧的方式来维持链路。经测定,本地(广州)的GPRS数传链路维持时间为60 s。基于ATmegal6的GPRS数据终端成本低,易于推广普及,可用于远程数据采集、系统监测和Internet远程接入等领域。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:166,980.50000 毫秒