STM32 AT 和 GPRS/GSM之间的关系梳理
来源:互联网 发布:php过滤sql注入函数 编辑:程序博客网 时间:2024/05/20 19:18
详细AT命令可以参考 WAVECOM_AT_V90指令集:
1) AT指令
很多手机都带有数据线,同时提供软件可以与手机进行交互,控制之手机的行为;市场上也有很多GSM、GPRS模块,用这些模块加上简单的电路,就可以制作成所谓的短信群发器,在加上一个软件,就可以狂发短信了。不管是手机还是这些短信短发模块,安装在电脑上的软件一般都是通过AT指令来控制手机或模块的行为。
通过AT指令能够控制手机的许多行为,包括拨叫号码、按键控制、传真、GPRS等。随便搜索以下,就可以搜索很多各种手机或模块其AT指令的文档,其多数指令都是相同的,各个常见一般会根据自身的情况对指令进行扩展,这里不必细说。
通过串口线连接计算机的串口与手机或者GSM/GPRS模块,打开超级终端,设置好相关参数,然后就可以在电脑使用AT指令了。手机一般通过USB与计算机连接,可以找一个USB转串口的软件。
2) GSM/GPRS模块
市场有很多这种模块,提供不同的功能。比如,有的GPRS模块内置了TCP/IP协议栈,就可以很方便的通过厂家扩展的AT指令直接进行TCP或UDP通信。如果没有提供TCP/IP协议栈,那么就需要编写相关的程序,在软件中实现网络访问功能。
GSM/GPRS模块通常不能直接使用,其通常用于嵌入式系统中,需要扩展外围电路。厂家一般也都提供了详细的扩展电路图,如果加上一个嵌入式CPU,弄一个Linux或Windows CE作为操作系统,那么就俨然一个高端智能手机。
用于发送短信的扩展电路一般比较简单,仅仅添加一个基本的电路,提供一个电源接口和一个用于连接计算机的串口。
3) 常用的AT指令
4) 通过串口发送AT的过程
(1)设置串口参数
(2)打开串口
(3)发送AT指令,然后等待模块响应
(4)接收相应,然后处理
(5)通讯完成,关闭串口
5) 编程技巧
发送完AT指令后,一般需要等待模块做出响应。串口通讯是一种流式通讯,通讯另一方可能正常相应,也有可能不能正常响应,这是就需要对这种情况进行处理。
(1)可以设置读超时,如果对方不能正常响应,则系统会认为与对方通讯失败
(2)如果对方成功响应,那么还需要对对方相应的信息进行判断,确定串口数据流中的那些是相应自己AT指令的数据。一般地,期望的响应都有一定的特征信息,可以通过判断相应的数据是否包含特征信息来判断。
例如,一般当发送一个AT指令后,通常会有一个OK作为相应的结尾,那么就可以通过相应数据是否包含OK判断针对自己的响应是否结束。
例如,如果GSM/GPRS模块认为指令有问题,或者执行指令出错,会返回ERROR,那么程序就不能一直等待自己期望的特征数据出现,如遇到ERROR,就应该返回报错。
(3)即使对方能够成功响应,有时候对方对指令的处理需要一定的时间,这时候并不能通过一个read函数将所有的相应数据都读回。因此就需要将每次读回的数据缓存起来,然后不断的读取数据,直到期望的特征数据出现为止。
(4)在不断的读取数据时,应该在每次读取之间sleep一小会,以保证下次尽量能够读到数据。
- STM32 AT 和 GPRS/GSM之间的关系梳理
- GSM和GPRS的区别
- AT命令和multiplexer protocol && Linux和android平台的GSM/GPRS模块测试
- GSM/GPRS AT编程常见问题与错误代码的意义
- GPRS模块和GSM模块的差别
- GSM和GPRS网络原理的基本思路
- GSM,GPRS和3G
- GSM CDMA GPRS WAP等简单梳理
- STM32 DMA和内存之间的关系
- GSM、GPRS、EDGE、2G、3G与WAP的关系
- GSM、GPRS、EDGE、2G、3G与WAP的关系
- AT 指令控制GSM/GPRS 模块
- 浅析GSM和GPRS概念
- GSM、CDMA、GPRS和WAP
- GSM与GPRS的区别
- GSM与GPRS的区别
- GSM与GPRS的区别
- GSM与GPRS的区别
- hashmap遍历所有元素
- highchart小结
- 浅析Java与C#的事件处理机制
- xbmc安卓编译环境搭建
- 向量X的归一化及其Matlab简单示例
- STM32 AT 和 GPRS/GSM之间的关系梳理
- Swift视频教程:Swift入门教程
- asp.net mvc4
- const and not const
- 黑马程序员————集合框架小结(第一篇)
- 远程登陆cisco防火墙
- GNU介绍
- svn操作说明
- SLF4J全拼