【5G/4G】AT Command 详细教程(基于3GPP Spec 27.007)

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解

AT Command 使用指南 (针对3GPP Spec 27.007)

        同学们第一次看到AT Command 可能感觉这是什么指令,怎么还有问号和逗号。读完博主这篇博文,你不仅会明白AT Command 指令结构,还会构建AT Command 以及解析AT Command Response

缩写介绍
AT : ATtention
MT: Mobile Termination(可以理解为手机中的芯片)
TE: Terminal Equipment (手机芯片外的其他部分)
TA : Terminal Adaptor (TE与 MT的适配层)

AT 架构:
在这里插入图片描述


一、AT Command 结构

我们这里介绍的AT Command是使用扩展语法规则(syntax rules of extended)的命令,基础命令可以参考《ITUT Recommendation V.250》

在这里插入图片描述
具体解析如下:

  • 命令行前缀 “AT”:所有的AT Command都需要前置 “AT” 字符串,来标识这是一个 AT Command;

  • 基础命令:没有前置 “+”的命令就是 基础 AT Command

  • 子参数:就是AT Command 的参数,可以有零个、一个或者多个使用 “=”将子参数传递给 AT Commnad

  • 扩展命令:前置 “+” 的命令就是 扩展命令

  • 多个扩展指令之间,使用 “;” 分隔;

  • AT Command 的子参数可以是缺省值(即使有默认值),多个子参数之间使用 “,” 连接;

  • 读命令:读命令会在AT Command 末尾添加 “?”,它会根据一些状态值返回当前命令的一个或多个子参数值

  • 测试命令:测试命令会在AT Command 末尾添加 “=?”,它会返回当前命令所有子参数的可能值;
    (例如,我们忘记了这个参数应该怎样设置,可以先查询此参数可以设置哪些值,然后我们再进行设置)

  • 协议中提到,每个 Extended command都有测试命令(=?)
  • 对于参数形的命令(Parameter type commands)还有读命令(?);
  • 但是对于功能形的命令(Action type commands),没有读命令,因为它不会记录任何可能的子参数值;

二、AT Command Response 和 result code 结构

我们这里的Response 和 result 都是根据上面的图片进行分析(<CR><LF>等价于 \r\n)

2.1 command V1 格式

在这里插入图片描述
特别说明:

  • 上图中的 AT Command Response 和 result code 对应于 command V1格式(verbose response format)

2.2 command V0 格式

另一种数字格式(numeric forma)的AT Command Response 和 result code 称为 command V0,如果开启command V0,则:

  • AT Command Response前面将不会有 “<CR><LF>” 字符串;
  • result code 变成 “数字<CR>”,例如上图中的结果码变成 “0<CR>” ;

2.3 几类 Result codes

final result codeintermediate result codeunsolicited result code
通知命令执行的最终结果,是否执行成功反馈 TA Command 的执行进度(命令执行的中间状态)主动通知终端某个事件的发生,与具体的AT Command无关(例如,当终端注册状态发生变化,则会主动将这种状态的改变通知给上层应用)

三、AT Command 使用举例

AT Command 有非常多的指令,我们这里结合协议举一个例子。而且设备商还可以创建自己的指令。例如MTK就有自己的AT Command 指令,每次有新的芯片时MTK等芯片商就会来公司给博主介绍新的AT Command 的使用方法。
AT Command 协议下载传送门:点击下载链接

我们以 “+C5GREG” 命令为例进行讲解:
①首先找到协议的 10.1.47,查看协议对 “+C5GREG” 命令的介绍,以及参数、命令响应的介绍
在这里插入图片描述
②协议在命令描述下面会介绍参数的可能取值,以及对应取值的含义(下图只作示意图,详细内容参考协议)
在这里插入图片描述
③根据协议构建 AT CMD / 解析 AT Response



在这里插入图片描述

### 回答1: 3GPP TS 27.007是一项技术规范,用于定义移动通信设备和网络之间的接口协议。该规范主要针对GSM和UMTS系统,旨在确保设备和网络的互操作性。 3GPP TS 27.007规范包含多个部分,其中最重要的是设备和网络之间的AT命令接口定义。AT命令是一种协议,用于设备和网络之间进行通信和控制。这些命令可以用来发送短信、拨打电话、查询网络信息等。通过AT命令接口,设备可以与网络进行交互,并执行各种操作。 3GPP TS 27.007规范还包含了与短信相关的命令和协议。例如,它定义了设备如何发送和接收短信,包括SMS编码、短信存储和转发等。这些命令和协议确保了设备和网络之间的短信的正常传输和处理。 此外,3GPP TS 27.007还包含了与电话呼叫相关的命令和协议。它定义了设备如何进行呼叫连接、呼叫管理和呼叫控制。通过这些命令和协议,用户可以拨打电话、接听来电并进行通话。 总的来说,3GPP TS 27.007是一项非常重要的技术规范,它定义了移动通信设备和网络之间的接口协议,确保了设备和网络之间的互操作性。通过这个规范,设备可以与网络进行通信和控制,并进行各种操作,例如发送短信、拨打电话等。 ### 回答2: 3GPP TS 27.007是一份标准文件,规定了移动设备与通信网络之间的接口协议。 该标准定义了数据终端设备(DTE)和无线通信设备(DCE)之间的接口规范。它规范了移动设备通过数据链路层(如GSM、GPRS、EDGE、UMTS、LTE等)与通信网络进行通信的详细过程。 在这个标准中,涵盖了多种通信协议,包括AT命令和数据波特率等。AT命令是一种用于控制移动设备和通信网络之间通信的指令。而数据波特率则是指通信设备和终端设备之间传输数据的速率。 3GPP TS 27.007还规定了移动设备支持的数据传输方式和协议,例如串口通信、USB通信和蓝牙通信等。同时,它也定义了设备之间的通信协议和通信参数,以确保设备之间可以进行有效的通信。 这份标准对于移动设备的开发和通信网络的运营至关重要。它确保了设备和网络之间的高效通信,为用户提供了更好的移动通信体验。 总之,3GPP TS 27.007是一份规范移动设备与通信网络之间接口协议的标准文件,它定义了设备之间的通信方式、协议和参数,确保了设备和网络之间的有效通信。 ### 回答3: 3GPP TS 27.007是一个技术规范,定义了在GSM和UMTS移动通信网络中,移动设备和网络之间的AT命令集。 AT命令是一种用于控制调制解调器或其他通信设备的命令。3GPP TS 27.007规范中列举了一系列标准化的AT命令,以便移动设备和网络之间可以进行有效的通信和控制。 这些命令可以用于执行各种功能,包括拨号、发送和接收短信、查询网络状态、设置网络参数等等。通过使用这些命令,用户可以在移动设备上进行各种操作,例如拨打电话、发送短信、查看网络连接情况等。 3GPP TS 27.007规范还定义了AT命令的格式和语法规则,以确保命令能够被正确解析和执行。 通过遵循这个规范,不同厂商的移动设备和网络可以保持兼容性,确保用户可以在不同的设备上使用相同的AT命令来实现相同的功能。 总之,3GPP TS 27.007规范是一个非常重要的技术规范,它定义了在GSM和UMTS移动通信网络中,移动设备和网络之间的AT命令集,为移动设备的控制和通信提供了标准的接口。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从善若水

原创不易,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值