首页 > 编程知识 正文

AT模式,linux中at命令

时间:2023-05-04 06:41:19 阅读:39284 作者:177

一、AT命令简介AT是AtTEntion,其中AT指令集来自终端设备(终端设备,te )或数据终端设备(数据终端设备)数据终端设备,DTE TE通过发送AT命令来控制移动站(MS )的功能并与GSM网络服务交互。 用户可以通过AT命令调用,控制邮件、电话簿、数据服务、传真等。 90年代初,AT命令仅用于Modem操作。 没有先例控制手机短信,只开发了一种叫SMS BlockMode的协议,用终端装置(TE )和电脑完全控制了SMS。 几年后,主要手机制造商诺基亚、爱立信、摩托罗拉和惠普共同为GSM开发了一系列AT指令,其中包括短信的控制。 AT指令在此基础上发展起来,加入了GSM 07.05标准和目前的GSM07.07标准,是完全标准化、比较健全的标准。 例如,短信的控制有三种实现途径。 第一个块模式; 基于AT命令的文本模式; 基于AT指令的PDU模式。 现在,PDU Mode取代了BlockMode,后者已淡出。 GSM模块与计算机之间的通信协议是若干AT指令集,其中AT指令是以AT开头且以字母结尾的字符串,AT指令的响应包位于中。 根据命令执行是否成功返回。 对应信息被呈现给其他意想不到的信息,例如,有人拨打的、线路上没有信号等,并且接收方可以执行对应处理。

GSM模块是将GSMRF芯片、基带处理芯片、存储器、放大器设备等集成在一块基板上,具有独立的操作系统、GSMRF处理、基带处理,并提供标准接口的功能模块根据提供的数据速率,GSM模块可以分为GPRS模块、EDGE模块和平面消息收发模块。 短信模块仅支持语音和短信服务。 GPRS可以说是GSM的延续。 经常被画成“2.5G”。 也就是说,该技术位于第二代(2G )和第三代(2G )移动通信技术之间。 GRS的传输速度从56K到114Kbps不等,理论速度最大为171k。 相对于GSM 9.6 kbps的接入速度,GPRS具有更快的接入数据通信速度,GPRS技术还具有随时随地连接、永远在线、按存储容量使用计费等特点。 EDGE技术将数据传输速度进一步提高到384K-473K (称为“2.75G”),数据传输速度是GPRS的两倍。 目前,国内GSM网络普遍具有GPRS通信功能,移动和联通网络均支持GPRS,EDGE在部分省市实现了网络覆盖。

AT的优点:命令简单易懂,通过使用标准串行端口发送和接收AT命令,大大简化了设备的控制,并转换为简单的串行端口编程。

AT命令提供了名为串行端口的标准硬件接口。 这种简化的硬件设计.较新的通信网络模块几乎都采用了串行硬件接口。

AT命令功能齐全,可以通过一系列命令完成设备的控制,完成调用、邮件、电话簿、数据业务、传真

通过AT命令与ppp协议的关系数据通信的APP应用,例如无线拨号上网。 除了AT命令外,我们还经常听到另一个网络协议PPP (点对点协议)。 可以看到,应用串行通信时,从硬件上可以分为两大块。DTE(Data Terminal Equipment)数据终端设备通常在PC、嵌入式主机等智能设备上,用于发送AT命令和PPP命令,用于建立与DCE(Data Circuit Terminal )数据电路终端外部的链路通信DTE和DCE之间通过串行端口连接。 例如,如果PC通过串行端口访问拨号调制解调器,则PC是DTE,而拨号调制解调器是DCE。

AT和PPP的共同点是DTE发送到DCE的协议。 区别在于,AT仅用于DTE,并控制DCE。 例如,用于初始化设备,发送呼叫和发送短消息。 AT有规范,但大多数DTE制造商都在扩展AT命令。

另一方面,PPP是用于数据通讯是用于DTE与远程接入服务器(Access Server )进行通信的协议。 是网络通信的数据链路层协会

会议,DCE自己接收

到PPP包时,除了将其调制到物理层上发送到远端服务器外,本身并不处理PPP的内容。

DCE的状态切换与AT的命令拨号流程

这两个协议都是DTE通过串口发往DCE。那DCE是如何区别是AT命令,如何区别PPP协议包。大部分DCE是采用分时段传送的,两个协议并不同时发送。但是可以通过AT命令两个专用命令来用切换是AT命令时段,还是PPP协议时段。

在发送AT命令时称为命令状态,在发送PPP包时或者语音通讯时称为数据状态。在modem设备启动时,默认进入AT命令接收状态,用ATDn ;命令拨出电话号码n(语音拨号);ATDn 拨出电话号码n(数据拨号),两者区别在于前者有一个分号。用数据拨号拨通后,将进入PPP交互状态。当需要切回接收AT命令状态,DTE 需要发送+++命令给DCE.让其保持在线的状态时,但接收是AT命令.如果此时需要切断链接,此时发送ATH挂断命令.注意发送+++需要前后各一秒的时间。否则会当成数据发送出去。

回顾一下之前3g拨号上网的wcdma-chat-connect脚本

ABORT 'NO CARRIER'

ABORT 'ERROR'

ABORT 'NO DIALTONE'

ABORT 'BUSY'

ABORT 'NO ANSWER'

'' rAT   #发送AT命令

OK rATZ   #等待接收OK,接收到OK发送ATZ命令

OK rAT+CGDCONT=1,"IP","3gnet",,0,0  #接收到OK,发送AT+CGDCONT=1...命令

#下面一行是联通的拨号设置,不同的运营商拨号方式有所不同

OK-AT-OK ATDT*99#

CONNECT dc

上次做3G模块拨号上网时候没太搞懂现在看了之后又理解了一些,chat-是调制解调器的自动对话脚本,chat程序定义了一个计算机与调制解调器之间的对话交流,主要目的是用来在本地pppd与远端pppd程序之间建立连接,PPPD是用户态应用程序,负责PPP协议的具体配置,如MTU、拨号模式、认证方式、认证所需用户名/密码等。PPPD定义PPPD:PPPD(point-to-point protocol daemon)点对点协定隐形程式。这里就不去细说了,再说就跑偏了哈哈哈,有兴趣可以自己去了解,chat拨号的使用详解:https://wenku.baidu.com/view/7b53ac3102020740be1e9ba7.html

二、AT命令的使用

不同产商的AT命令大同小异,但是还是有所区别,如果有不同的就需要看产品手册

先做准备测试

检测Module与串口是否连通,能否接收AT命令: AT

查看SIM卡是否到位: AT+CPIN?

测试信号: AT+CSQ

查看运营商: AT+COPS?

获取模块标识: AT+CGMM

获取模块厂商标识: AT+CGMI

查看SIM卡是否到位: AT+CPIN?

网络注册。获得手机的注册状态: AT+CREG?

拨打电话

拨打电话: ATD电话号码;

来电显示: AT+CLCC(有电话打过来串口会打印RING提示。)

接电话: ATA

挂电话: ATH

挂电话尚未接通的来电: AT+CHUP

发短信

短信的编码方式有两种:text模式,pdu模式。因此短信的AT指令执行格式也有两种,分别对应text模式和pdu模式。

1 . Text模式

纯文本模式,支持不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。

2 . Pdu模式

这个是手机默认的编码方式,可以使用任何字符集,其包括三种编码方式:7bit编码,8bit编码,UCS2编码。

7bit编码:ASCⅡ码就是7bit编码。

8bit编码:ASCⅡ字符可以使用7位二进制表示,但是由于计算机的基本处理单位是字节(1byte=8bit),所以一般在高位补0,用一个字节表示一个ASCⅡ字符。这就是8bit编码。

UCS2编码:处理Unicode字符,使用2个字节来表示一个字符,可以表示世界上所有的字符。发送中文就是使用此编码方式。

发英文短信
设置信息格式: AT+CMGF=1 (格式有TEXT方式和PDU方式。AT+CMGF=1时是TEXT方式,AT+CMGF=0是PDU方式)
发送短信: AT+CMGS="电话号码"
>data       //下一行出现>后面跟的data 为发送内容(以ctrl+z(0x1A)结束)

设置收到短消息提示: AT+CNMI=1,1,2

设置存储区域为SM: AT+CPMS=”SM”

读取短信: AT+CMGR=index(index为读第几条短信)

发中文短信:

设置信息格式: AT+CMGF=0

发中文短信这里暂时也不去了解,发中文短信可以参考:https://blog.csdn.net/a_tu_/article/details/47808017

AT命令详解:https://blog.csdn.net/bytxl/article/details/25614491

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。