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

news/2025/2/16 6:18:55/

文章目录

  • AT Command 使用指南 (针对3GPP Spec 27.007)
    • 一、AT Command 结构
    • 二、AT Command Response 和 result code 结构
      • 2.1 command V1 格式
      • 2.2 command V0 格式
      • 2.3 几类 Result codes
    • 三、AT Command 使用举例

本人就职于国际知名终端厂商,负责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



在这里插入图片描述


http://www.ppmy.cn/news/247347.html

相关文章

IPV6相关

目录 一、IPV6地址组成与专业术语 1.基础分类 2.本地链路地址范围区域概念 3.本地环回地址 二、centos配置IPV6地址 1.终端命令配置IPV6地址和网关 2.文件中配置IPV6地址 三、IPV6连通测试 1.全局单播地址进行ping 一、IPV6地址组成与专业术语 1.基础分类 IPv6基础知…

ipv6小综合

目录 实验要求中间IPV4部分ip及环回配置nat的配置 整个ipv6的配置ipv6 地址划分R1上面ipv6环回及接口ip配置ripng配置&#xff0c;连通左边R1上ipv6 路由汇总ipv4 ipv6 共存6to4 隧道口配置右边ipv6环回及接口ip配置ospfv3配置bgp的配置及内部联邦R6做反射器 实验要求 中间IPV…

IPv6专题系列:01. IPv6地址介绍

IPv6地址格式 IPv6地址从IPv4地址的32 bits扩展到128 bits&#xff0c;IPv6地址的表示、书写方式也从IPv4的点分十进制&#xff0c;如192.168.1.1&#xff0c;转变为&#xff1a; 即&#xff0c;16 bits一组&#xff0c;采用16进制表示&#xff0c;共8组字段&#xff0c;每个字…

IPv6+VRRP6

实验背景 如下图所示&#xff0c;在IPv6网络中&#xff0c;主机PC1、PC2通过接入层交换机LSW1接入网络&#xff0c;为了保证两台主机用户的业务在网络中不中断&#xff0c;在LSW2与LSW3上配置VRRP6主备备份功能&#xff0c;同时考虑到设备承载数据流量的压力&#xff0c;做VRR…

IPv6 — IPv4v6 综合组网技术

目录 文章目录 目录IPv4v6 综合组网技术(转换机制)双栈策略隧道策略IPv4v6 综合组网技术(转换机制) 对于大多数企业,必须以循序渐进的方式在现有的 IPv4 网络中分步引入 IPv6。因为 IPv4 和 IPv6 的协议头格式不同,因此两种协议之间无法进行互操作。但就当下而言,在大多…

3G是IPv6的3G(转)

人们在了解3GPP/3GPP2体系中的IPv6时经常会产生混乱&#xff0c;这是由于IPv6处于两个不同的层面造成的。首先是数据承载层面&#xff0c;在这里用户数据流量经过运营商PLMN从MS流向PDN。另一个是传输承载层面&#xff0c;它与数据承载层面是两个不同的逻辑层面。概括来讲&…

3G技术及IPV6

3G技术及IPV6 移动通信技术蜂拥而至!3G、2.5G等通信新名词的出现&#xff0c;令人眼花缭乱。那么&#xff0c;移动技术2.5G和3G技术究竟是什么&#xff1f;现就引给大家作一个初步介绍&#xff0c;希望通过阅读此篇文章&#xff0c;让您对移动通信技术有更加深入的了解。 一、什…

Amino框架无锁算法实现并发线程安装组件(一)

Amino是无锁并行框架&#xff0c;线程安装&#xff0c;该框架封装了无锁算法&#xff0c;提供了可用于线程安全的一些数据结构,同时还内置了一些多线程调度模式。使用Amino进行软件开发有以下的优势: 1.对死锁的问题免疫 2.确保系统并发的整体进度 3.降低高并发下无锁竞争带…