AT命令和简单使用(转载)

  • Embed
  • 182 clicked

1. AT指令集简介

AT(Attention)指令集是从终端设备(Terminal Equipment, TE)或数据终端设备(Data Terminal Equipment, DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备 (Data Circuit Terminal Equipment,DCE)发送的,通过TA,TE发送的AT指令来控制移动台(Mobile Station,MS)的功能,与GSM 网络业务进行交互;用户可通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。早期,AT指令仅被用于modem操作,几年后主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研发了一整套AT指令,AT指令在此基础上演化并加入了GSM 07.05标准以及现在的GSM07.07标准,完全标准化和比较健全的标准。AT指令是以AT作首,字符结束的字符串,每个指令执行成功与否都有相应返回,针对其他的一些非预期信息模块会有对应的信息提示,接收端可做相应处理。

1.1. AT指令常用的应用场景

  一般智能手机都是主芯片控制一个通信模块,这个通信模块就是完整的,简单的手机,包括手机应有的射频,基带等部分,还有GSM协议栈完全可以独立打电话,发短信,用GPRS上网等,主芯片通过AT指令控制通信模块打电话、发短信等操作;还可做其他的通信模块,可接受其他通信模块发来的信息,例如控制中心通过车载台对车辆进行调度和定位。简单地说:无线通信就是将一个简单的手机做成半成品(无线模块),该模块可通过AT命令控制实现收发短信,打电话,GPRS上网等无线通信功能,然后将这个模块挂在集成产品上,受主芯片控制,这样就可做出不同应用的产品,其中AT指令就是主芯片和无线模块的协议接口。

1.2. AT指令集优点

  上面提到的主芯片可通过AT命令对无线模块进行控制,简化了设备控制;命令短小,简单易懂且可基本完成无线通信的所有功能(打电话、短信、传真等);提供了一组标准的硬件接口——串口简化了硬件设计。

1.3. AT指令和ppp协议区别

  上面介绍到AT指令主要是主芯片可通过其控制一些无线的通信模块,而在链路层有一个网络协议——PPP协议用来在一条建立好的物理链路上进行点对点的数据传输;两者的共同点都是由数据终端设备(DTE)发送数据给数据电路终端(DCE),但它们的区别在于AT指令只用于DTE控制DCE,初始化设备、呼叫,收发短信等;而PPP协议是用来数据通信,通常用作DTE接入服务器进行通信,如果DCE接收到PPP数据包时不会对其内中进行处理,而是直接转发到服务器端。

2. busybox的简介及其安装

2.1. busybox简介

busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器,而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分立式的电子元件,而busybox就好比是一个集成电路,把常用的工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数linux发行版的安装程序中都有busybox的身影。我们经常在树莓派中接接入的EC20 4G模块,4G模块的上网等其他功能,这就需要我们测试4G模块运行是否正常,我们就需要安装busybox这个软件。

2.2. busybox安装

2.3. busybox下AT指令集的使用方法

3. 4G模块检测

在使用busybox之前我们首先要检测4G模块是否通USB或其他方式接入系统;

在上述测试均正确完成后,开始使用busybox 的microcom来使用AT指令集。

3.1. busybox下AT指令集的使用

ttyUSBx中只有一个可做AT指令发送,剩下的为串口副本,例如我的AT指令需要在ttyUSB3下发送,光标闪烁出输入AT指令。

3.2. 检测通信模块的基本指令

 以移远的EC20 4G模块为例,拿到手后我需要测试这个模块是否可做通信,那我首先要使用下列几个基本的命令来做检查:

  • AT:检测AT指令功能是否正常:

  发送AT后实际发送的指令是:AT也就是“AT\r”,而我收到的OK其实是:,也就是“\r\nOK\r\n”,这里的“\r”表示回到行首(回车),“\n”表示到下一行,组合起来就是我们的Enter。

  • AT+CPIN? 查看SIM卡是否正常,返回ready则表示正常:

  • AT+CSQ查询信号强度,第一个值正常范围为16-31,99为不正常:

  • AT+CGMM 查询模块表示:

  • AT+CREG? 查询模块是否注册上GSM网络,返回+GREG:0,0表示未注册,终端在搜寻新的运营商,+GREG:0,1表示注册本地网(正常),+GREG:0,2表示未注册,终端正在搜寻基站,+GREG:0,3表示SIM卡注册被拒绝,+GREG:0,4未知错误,+GREG:0,5表示注册漫游网络(正常):

  • AT+CGREG? 查询模块是否注册上GPRS网络,同样返回+GREG:0,1和+GREG:0,5表示正常:

  • AT+COPS?** 查看运营商,在该命令可修改运营商和自动/手动连接等,详情请看AT命令交互之-COPS选择营运商:

4. 拨打电话和发送短信

4.1. 拨打电话:

  • 拨打电话:ATD电话号; 注意电话号结束要有一个分号:

  • 挂电话:ATH ;

  • 来电显示:AT+CLCC如果有电话会显示RING;

  • 接电话:ATA

4.2. 发送短信

短信的编码方式分为pdu模式和text模式:

  1. pdu:默认的手机编码,可用任意字符集:7bit(ASCII)、8bit(ASCII字符可以使用7位二进制表示)、UCS2(使用两个字节表示一个字符,可用来发送中文)。
  2. Text:纯文本模式,支持不同的字符集。
  • 发送英文短信
      需要设置:AT+CMGF=1 (AT+CMGF=1 为Text模式,AT+CMGF=0 为pdu模式)
      发送短信:AT+CMGS="电话号码"

  • 收到短信后提示:AT+CNMI=12
      存储区域为SM :AT+CPMS=”SM”
      读短信:AT+CMGR=index(index为读第几条短信)

————————————————
版权声明:本文为CSDN博主「XiaoCheng'Blog」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44045338/article/details/107217565

赞赏

微信赞赏支付宝赞赏

发表评论

邮箱地址不会被公开。 必填项已用*标注