目录

  • AT指令介绍
  • 常用AT指令
    • 检测通信模块的基本指令
    • 拨打电话和发送短信

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作首,字符结束的字符串,每个指令执行成功与否都有相应返回,针对其他的一些非预期信息模块会有对应的信息提示,接收端可做相应处理。
AT指令常用的应用场景
  一般智能手机都是主芯片控制一个通信模块,这个通信模块就是完整的,简单的手机,包括手机应有的射频,基带等部分,还有GSM协议栈完全可以独立打电话,发短信,用GPRS上网等,主芯片通过AT指令控制通信模块打电话、发短信等操作;还可做其他的通信模块,可接受其他通信模块发来的信息,例如控制中心通过车载台对车辆进行调度和定位。简单地说:无线通信就是将一个简单的手机做成半成品(无线模块),该模块可通过AT命令控制实现收发短信,打电话,GPRS上网等无线通信功能,然后将这个模块挂在集成产品上,受主芯片控制,这样就可做出不同应用的产品,其中AT指令就是主芯片和无线模块的协议接口
AT指令集优点
  上面提到的主芯片可通过AT命令对无线模块进行控制,简化了设备控制;命令短小,简单易懂且可基本完成无线通信的所有功能(打电话、短信、传真等);提供了一组标准的硬件接口——串口简化了硬件设计。
AT指令和ppp协议区别
  上面介绍到AT指令主要是主芯片可通过其控制一些无线的通信模块,而在链路层有一个网络协议——PPP协议用来在一条建立好的物理链路上进行点对点的数据传输;两者的共同点都是由数据终端设备DTE)发送数据给数据电路终端DCE),但它们的区别在于AT指令只用于DTE控制DCE,初始化设备、呼叫,收发短信等;而PPP协议是用来数据通信,通常用作DTE接入服务器进行通信,如果DCE接收到PPP数据包时不会对其内中进行处理,而是直接转发到服务器端。

常用AT指令

  假设在Linux系统下我们接入的EC20 4G模块,要先进入AT命令输入行。我们可通过busybox——一个集成了三百多常用Linux命令和工具的软件,当然如果系统没有可通过sudo apt-get install busybox安装这个大工具箱。在这里面有一个microcom命令用来测试串口的通信:

  当我们在做串口通信时不光要怀疑代码的软件问题,还要考虑硬件接线有没有问题,microcom命令使用:

microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] TTY
-d 表示延时时间,一般不设置。
-t 表示超时时间,超多少时间就自动退出。单位为ms
-s 表示传输速度,波特率的意思,这个根据自己的情况而定。
-X 不加

  最后在指定串口设备,通常在Linux下插入USB转串口时会在/dev目录下有一些ttyUSBx就是我们的串口设备:

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

检测通信模块的基本指令

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

pi@raspberrypi:/dev $ busybox microcom -s 115200 ttyUSB3
at
OK

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

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

AT+CPIN?
+CPIN: READYOK

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

AT+CSQ
+CSQ: 24,99OK

AT+CGMM 查询模块表示:

AT+CGMM
EC20FOK

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

AT+CREG?
+CREG: 0,1OK

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

AT+CGREG?
+CGREG: 0,1OK

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

AT+COPS?
+COPS: 0,0,"CHINA MOBILE",7OK
//表示自动连接的移动网络

  此外可查看AT命令详解或者该模块的AT指令集。

拨打电话和发送短信

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

ATD18186439924;
OK
ATH
OK

  挂电话:ATH 如上;
  来电显示:AT+CLCC如果有电话会显示RING;

AT+CLCC
+CLCC: 2,1,0,1,0,"",128
+CLCC: 1,1,0,1,0,"",128OK

  接电话:ATA
短信
  短信的编码方式分为pdu模式和text模式:
  pdu:默认的手机编码,可用任意字符集:7bit(ASCII)、8bit(ASCII字符可以使用7位二进制表示)、UCS2(使用两个字节表示一个字符,可用来发送中文)。
  Text:纯文本模式,支持不同的字符集。

  1. 发送英文短信:
      需要设置:AT+CMGF=1 (AT+CMGF=1 为Text模式,AT+CMGF=0 为pdu模式)
      发送短信:AT+CMGS="电话号码"
AT+CMGF=1
OK
AT+CMGS="181xxxx9924"
> hello
>
//ctrl+z结束
+CMGS: 190OK

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

  1. 中文短信请参考:AT指令发送短信流程及接听、拨打电话

  巨人的肩膀:https://blog.csdn.net/caijiwyj/article/details/90769663

AT指令集及常用指令相关推荐

  1. MIPS指令集的常用指令分类和相关解释

    MIPS指令集的常用指令分类和相关解释 MIPS 一些基本概念 MIPS指令集的六种指令格式 R型指令: I型计算类指令 I型取数类指令: I型条件判断类指令: J型指令: MIPS指令集的常用指令 ...

  2. Debug常用指令和DOSBox使用步骤

    Debug是Dos系统中著名的调试程序,也可以运行在Windows系统实模下. 优点: 使用Debug程序,可以查看CPU各种寄存器的内容,内存的情况,并且在机器指令级跟踪程序的运行. DosBox: ...

  3. ubuntu中常用指令

    常用指令 清空命令行 Ctrl+L Conda 创建虚拟环境 conda create -n 虚拟环境名称 python=3.7.10 查看虚拟环境列表 conda info --envs 激活虚拟环 ...

  4. anaconda常用指令,更新查看添加下载源等

    记录一下anaconda命令行常用指令,方便查阅,会不定期更新~ 检查conda版本 conda --version Anaconda更新 # conda conda update conda # a ...

  5. Imagemagick常用指令

    https://www.imagemagick.org/script/index.php  Imagemagick常用指令 (ImageMagick--蓝天白云) (ImageMagick官网) (其 ...

  6. 【ZZ】Linux常用指令

    linux常用指令 - 个人文章 - SegmentFault 思否 https://segmentfault.com/a/1190000011068772 查看目录下有什么文件信息 ls //lis ...

  7. ImageMagick常用指令详解

    Imagemagick常用指令 (ImageMagick--蓝天白云) (ImageMagick官网) (其他比较有价值的IM参考) (图片自动旋转的前端实现方案) convert 转换图像格式和大小 ...

  8. docker 镜像基本操作、镜像与容器常用指令

    一,docker 镜像基本操作 导入镜像 导出镜像 启动镜像 # docker pull busybox //下载镜像# docker push busybox //上传镜像# docker imag ...

  9. linux入门与常用指令

    前言 在入门linux的时候感觉大部分很糟糕的,尤其是java开发者来说,对于非运维人员可能刚开始会对linux有很大的抵触性,可能还是更多喜欢桌面操作.或者在之前的学习中本来web的一堆东西就已经够 ...

  10. 学mysql是学指令吗_学习Mysql (二) 常用指令

    环境搭建OK.可视化查看看得我一脸懵逼,还是命令行学习下. 常用指令: 1. 登录: mysql -h 主机名 -u 用户名 -p 注:本机localhost的话,-h部分可以省略.-p后面不写密码的 ...

最新文章

  1. SQL SERVER 导入EXCEL的存储过程
  2. 常见的一些功能测试用例
  3. webservice 缓存机制
  4. LiveVideoStack线上交流分享 (十) —— 开源声码器WORLD在语音合成中的应用
  5. 全国计算机等级考试题库二级C操作题100套(第20套)
  6. 字符串转小写 c语言库函数,c++字符串大小写转换
  7. kettle etl 入门第一篇
  8. leetcode每日一题:406.queue-reconstruction-by-height(根据升高重建队列)
  9. 15.docker start / stop / restart / rm / pause / unpause
  10. IDEA 常用设置 与 常用操作(一)
  11. XML转换JSON格式
  12. Axure8.1破解码 注册码 授权码
  13. MySQL 读写分离配置实践
  14. Win7系统不能调整屏幕亮度
  15. sorted()排序详解
  16. 2021RSAC -- 网络韧性
  17. 测试人生 | 从外行到外包,从手工测试到知名互联大厂测开 这个90后是怎么腾飞的?
  18. sýnesis™ Lite for Snort provides basic analytics for Snort IDS/IPS alert logs using the Elastic Stac
  19. 树莓派系统安装-Raspberry Pi OS
  20. 前端模拟终端(三):文本显示与自动换行

热门文章

  1. DGIOT国内首家轻量级物联网开源平台——真实电表接入实战教程
  2. 关于ucgui3.98(显示部分)移植
  3. Git版本控制管理(一)--安装
  4. Uniapp使用GoEasy实现websocket实时通讯
  5. Win7下64位扫雷逆向以及辅助制作
  6. phpStudy JspStudy 2016 更新下载,新版支持php7.0
  7. ECharts类图表数据实时更新
  8. 北理工团队在不同注意力状态下肢体运动意图的鲁棒神经解码方面取得重要研究进展...
  9. aws篇12 搭建一个推流、读流、RTSP服务器
  10. 可以出题的答题小程序