云服务之AT指令的详细讲解

今日头条

1097人已加入

描述

云服务之AT指令

AT 命令(AT Commands)最早是由美国Hayes公司为了控制 MODEM 发明的控制协议。因为指令是以「AT」为开头,故以此称之。AT指令是应用于终端设备与PC应用之间的连接与通信的指令。AT 即Attention。每个AT命令行中只能包含一条AT指令;对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。其对所传输的数据包大小有定义:即对于AT指令的发送,每个AT命令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。随后的 3G、4G、NB-IoT 模块等,均采用 AT 命令来控制,AT 命令逐渐在产品开发中成为实际标准。AT 命令广泛的应用于嵌入式开发领域,AT 命令作为MCU芯片和通讯模块的协议接口,透过硬件串口,主控MCU可以通过简单的AT命令和通讯模块连结完成多种通讯操作。

AT命令与ppp协议的关系

在数据通讯的应用中,比如说无线拨号上网。除了AT命令,还会常听到另外一个网络协议ppp(Point to Point Protocol)。在应用串口通讯的场合,我们可以从硬件上明确看到分为两大块。

DTE(Data Terminal Equipment)数据终端设备。通常是一个智能设备,如PC机,嵌入式主机等,用于发送AT命令和PPP命令,还有用于链路通讯的DCE(Data Circuit Terminal )数据电路终端。用于与外界建立通讯的链路。DTE与DCE之间用串口相连。比如PC机用串口接入拨号MODEM时,PC机是DTE,拨号MODEM是DCE。

AT和PPP的相同点都是由DTE发送给DCE的协议。不同点是AT只用于DTE来控制DCE。比如初始化设备,用于发送呼叫,发送短消息等,虽然AT有规范,但是大部分DTE产商都扩展了一些AT命令。而PPP是用于数据通讯,是DTE与远程的接入服务器(Access Server)进行通讯的协议。是属于网络通讯的数据链路层协议,DCE本身收到PPP包时,除了将其调制到物理层上发送到远端服务器外,本身并不处理PPP的内容。

 

AT 命令集是一組指令集合,应用于 AT 服务器(AT Server)与 AT 客户端(AT Client)间的设备连接与数据通信的方式。其结构如下所示:

 

● 一般 AT 命令由三个部分组成,分别是:前缀、主体和结束符。其中前缀由字符 AT 构成;主体由命令、参数和可能用到的数据组成;结束符一般为  ("\r\n")。

● AT 功能的实现需要 AT Server 和 AT Client 两个部分共同完成。

● AT Server 主要用于接收 AT Client 发送的命令,判断接收的命令及参数格式,并下发对应的响应数据,或者主动下发数据。

● AT Client 主要用于发送命令、等待 AT Server 响应,并对 AT Server 响应数据或主动发送的数据进行解析处理,获取相关信息。

● AT Server 和 AT Client 之间支持多种数据通讯的方式,目前最常用的是串口 UART 通讯方式。

● AT Server 向 AT Client 发送的数据分成两种:响应数据和 URC 数据。

● 响应数据:AT Client 发送命令之后收到的 AT Server 响应状态和信息。

●URC (Unsolicited Result Code))数据:AT Server 主动发送给 AT Client 的数据,一般出现在一些特殊的情况,比如 WIFI 连接断开、TCP 接收数据等,这些情况往往需要用户做出相应操作。

AT Client 数据收发方式

AT Client 主要功能是发送 AT 命令、接收数据并解析数据。下面是对 AT Client 数据接收和发送相关流程与函数介绍。相关结构体定义:

 

该结构体用于定义一个 AT 命令响应数据的控制块,用于存放或者限制 AT 命令响应数据的数据格式。其中 buf 用于存放接收到的响应数据,注意的是 buf 中存放的数据并不是原始响应数据,而是原始响应数据去除结束符("\r\n")的数据,buf 中每行数据以 '\0' 分割,方便按行获取数据。buf_size 为用户自定义本次响应最大支持的接收数据的长度,由用户根据自己命令返回值长度定义。line_num 为用户自定义的本次响应数据需要接收的行数,如果没有响应行数限定需求,可以置为 0。line_counts 用于记录本次响应数据总行数。timeout 为用户自定义的本次响应数据最大响应时间。该结构体中 buf_size、line_num、timeout 三个参数为限制条件,在结构体创建时设置,其他参数为存放数据参数,用于后面数据解析。

NuMaker-IoT-M487 开发板,以 NuMicro M487 系列微控制器为主控核心,内建 RJ45 以太网络与 Wi-Fi 模块,让用户可以有线或无线的方式连接云端,亦可透过不同的无线子板提供 NB-IoT、6LoWPAN 等联机能力,以符合各种应用场景需求;配合 NuMicro M487 系列微控制器内建的加解密加速器,提高加密网络联机的效率。

NuMaker-IoT-M487 开发板支持 Arm® Mbed™ OS,整合常用组件,内建多轴传感器,提供兼容 Arduino UNO 与 mikroBUS™ 接口,不论是 GPIO、UART、ADC、PWM、SPI 或 I2C 等等都能连接;内建新唐积木式概念的传感器模块 NuMaker Brick I2C 接口;提供独特的仿真影像传感器接口,连接 CMOS 影像传感器,可用于截取影像进行分析;并结合 NAU88L25 音频编译码器,提供高音质的录放音功能;外挂 SPI Flash 及提供 microSD 卡插槽,增加额外的数据存取空间。

NuMaker-IoT-M487 提供多元连网方式与多种接口,并提供影像感测与录放音功能以及弹性扩充数据存取空间,不论使用者需要的是端点装置或轻量型的网关应用,NuMaker-IoT-M487 是踏入物联网应用的最好选择。

NuMaker-IoT-M487 开发板透过AT命令,可连接支持多種无线通讯模块,並整合常用组件,内建多轴传感器,提供兼容 Arduino UNO 与 mikroBUS™ 接口,不论是 GPIO、UART、ADC、PWM、SPI 或 I2C 等等都能连接;外挂 SPI Flash 及提供 microSD 卡插槽。

NuMicro® M487 以太网系列以Arm® Cortex®-M4F为核心,是带有DSP指令集的高效能低功耗微控制器。其系统最高可运行至192 MHz ,动态运作下的功耗仅175 µA/ MHz 。 内建高达 2.5 MB 快闪记忆体 ( Flash ) 及 160 KB SRAM ,包含32 KB 快取 ( Cache ) 用于加速外部 SPI Flash就地执行 ( eXecute-In-Place ) 。出厂前预先烧录bootloader,提供安全启动 ( Secure Boot ) 功能,可对存放于内建快闪记忆体内的程式码进行完整性检查,并整合安全保护区块 ( Secure Protection ROM ) ,提供一个用于保存机密程序或资料的安全空间。内建一次性可烧录 ( One-Time Programmable ROM ) 区块,可用于产品生命周期的管理。

NuMicro® M487 以太网系列支持1.8V至3.6V操作电压,以及 - 40°C至105°C的工业级工作温度。本系列额外配置10/100 Mbps以太网MAC、RMII介面与硬件加密引擎,封装型式包含LQFP64、LQFP128与LQFP144。

fqj

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分