AT指令
AT 即 Attention,AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备 (Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备 (Data Circuit Terminal Equipment,DCE)发送的。通过TA,TE发送AT指令来控制移动台 (mobiles Station,MS)的功能,与GSM 网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。
90年代初,AT指令仅被用于Modem操作。 没有控制移动电话文本消息的先例,只开发了一种叫SMS BlockMode的协议,通过终端设备(TE)或电脑来完全控制SMS。几年后,主要的移动电 话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM 研制了一整套AT指令,其中就包括对SMS的控制。AT指令在此基础上演化并被加入GSM 07.05标准以及现在GSM07.07标准,完全标准化和比较健全的标准。如:对SMS的控制共有3种实现途径:最初的 Block Mode;基于AT指令的Text Mode;基于AT指令的PDU Mode。到现在PDU Mode已经取代BlockMode,后者逐渐淡出。
GSM 模块与计算机之间的通信协议是一些 AT指令集,AT指令是以AT作首, 字符结束的字符串,AT指令的响应数据包在 中。每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如 通博TBET拨号进来、线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。
示例:CDMA modem DTE
输入:AT< CR>
返回:< LF> OK < LF>
输入:ATTEST< CR>
返回:< CR> ERROR < LF>
如果AT指令执行成功,“OK”字符串返回;如果AT 指令语法错误或AT 指令执行失败,“ERROR”字符串返回。<CR><LF>是控制字符,分别是回车和换行。
每个公司提供的设备的AT指令集并不相同,AT指令允许用户定制自己的AT指令,一般使^字符表示是自己定制的。
我也只是用过一些比较基础的指令,没什么好些的。以后慢慢增加内容吧。真正理解需要看3GPP的英文文档吧。还没看过。
用自己编的串口程序发送AT指令时有个问题要注意,发送AT命令的字符串到串口,可能会发现根本根本没有响应传回来。这当然可能是串口没有打开或是没有设置 好波特率等。这些都可以检查。但有个比较容易被忽略的问题就是AT命令的格式问题。发送的AT命令字符串必须是在命令尾部加上回车和换行两个字符,并且要注意顺序,即‘\r' \n’。这是个很搞的问题,你可能查了很久也没发现别的错误,而想到是否是AT命令格式的问题的时候,查相关的文档却也看不到这样的说明。
这里顺便也讲一下超级终端的一个问题。设备安装好后从设备管理器中查看有哪些串口。不能确定用哪个com口通信,就挨个试。检验是否能通信就在连接之后输入AT后回车。但是有的时候 看不见自己输入的内容,这是因为关闭了设备的命令回显功能(ATE0命令)。这时在连接的属性中选择显示输入的字符,就可以了。有的时候输入一个A显示 AA,这是因为命令回显功能打开,而且连接属性中显示输入字符也勾选了。