跳转至

2131E AT 命令用户指南

文档说明

本文档面向使用 2131E CAT.1 模组的开发者,说明 2131E AT 命令的语法、分类、常用验证方法和 SDK 侧 CAT1 AT 命令的接入位置。命令的参数范围、返回值和完整示例请参阅 2131E AT 命令目录

2131E 的 3GPP 标准命令、模组自定义命令和产测命令由模组固件解析;HiDiTing SDK 中的 cat1_at 组件负责注册 SDK 侧 CAT1 调试/控制命令。两者属于不同层次,新增命令前请先确认实现归属。

2131E AT 模块背景知识

2131E 通过串口 AT 通道提供网络注册、USIM、安全管理、分组域、短信及设备管理等能力。主机发送以 ATat 开头、并以行结束符结尾的命令;模组返回结果码、信息响应或非请求上报(URC)。建议先使用查询命令确认当前状态,再执行写入、网络或产测类命令。

AT 命令通常分为设置、查询、执行和测试四种形式。本文保留原始 3GPP/CAT.1 命令定义、参数说明和示例,避免重构文档改变命令语义。

2131E AT 命令链路

AT命令语法

说明

本手册中的所有命令行必须以“AT”或“at”为前缀,以<CR>或<LF>或<CR><LF>结尾。

多个命令下发使用‘;’分割,只有第一个命令需要“AT”/“at”前缀。

多个命令下发时支持单回复模式(仅上报单个OK/ERROR/CME ERROR),默认关闭该模式。

AT命令字符串总长度不能超过3000个字符(包含结尾符)。

须知:

  • 如果交互式AT命令以<CR><LF>结束,其中的<LF>可能会被误判为交互式码流。建议交互式AT命令以<CR>或<LF>为结尾符下发,也可在交互式回调函数中对码流头部的<LF>进行过滤处理。交互式码流结束符后不允许添加其他字符,可能导致AT命令执行出现非预期行为。
  • 多命令下发时,不允许添加交互式AT命令或可打断式AT命令,可能导致AT命令执行出现非预期行为。
  • 多命令下发时,整体长度超过最大长度限制则串口回复“AT_CMD_TOO_LONG”,且命令均不执行。

AT命令语法举例

AT+CSCA=<sca>[,<tosca>]<CR>

AT命令以“+”开头,部分命令无需“+”前缀(比如“D”“H”“S0”)。

  • “[ ]”中的值为可选参数。
  • 可选参数和必选参数必须按照规定的顺序排列,各参数间必须用逗号隔开。
  • AT命令字符串中双引号之外的空格将被忽略。
  • 使用过程中,“<>”和“[ ]”不用输入。

AT命令类型

AT命令包含4种类型,如下表所示。

命令格式

类型

说明

AT+<cmd>=p1[,p2[,p3[.....]]]

设置命令

该命令用于设置参数值。

AT+<cmd>?

查询命令

该命令用于查询参数的当前值。

AT+<cmd>

执行命令

该命令用于查询由内部过程决定的参数值。

AT+<cmd>=?

测试命令

该命令用于检查命令是否支持、查询参数取值范围。

AT命令示例

命令描述

该命令为AT命令示例,用于展示AT命令格式。

命令语法

命令

返回结果

示例

+DEMO=<param1>,<param2>

-

AT+DEMO=TYPE1,0

at demo set,TYPE1,0

OK

AT+DEMO

at demo cmd exc

OK

+DEMO?

-

AT+DEMO?

at demo read,0

OK

+DEMO=?

+DEMO:(list of supported <param1>,list of supported <param2>)

AT+DEMO=?

+DEMO: (TYPE1,TYPE2),(0,1)

OK

参数描述

参数

描述

param1

字符串类型

TYPE1:参数示例;

TYPE2:参数示例;

param2

整数类型:

0:参数示例;

1:参数示例;

API 接口列表

2131E 模组内置 AT 命令的实现不在本 SDK 仓中。若在 HiDiTing SDK 侧新增 CAT1 AT 调试或控制命令,可使用下列接口:

接口函数 说明
uapi_at_cat1_register_cmd 注册 CAT1 命令表,内部调用通用 AT 命令表注册接口
uapi_at_cmd_table_register 向 AT 框架注册命令解析表
uapi_at_report_to_single_channel 向指定 AT 通道输出命令执行结果

完整 API 列表:请参考 AT API 参考


快速跑通 2131E AT Demo

功能说明

本节使用最小串口交互验证 2131E AT 通道和基础信息查询。完整命令、参数、返回值和示例请从 2131E AT 命令目录 进入对应分类文档。

命令类别 功能说明 命令参考
协议标准 AT 命令 3GPP 通用、USIM、安全、网络、短信和其他业务命令 协议标准 AT 命令
自定义 AT 命令 2131E 模组扩展能力 自定义 AT 命令
产测 AT 命令 生产测试与校准相关能力 产测 AT 命令

准备工作

  1. 连接 2131E 的 AT 串口并确认供电、天线和 USIM 状态满足测试条件。
  2. 使用串口工具打开对应端口,波特率、数据位、校验位和停止位须与硬件设计一致。
  3. 发送命令时使用 CRLF 作为行结束符;若使用交互式或数据流命令,按命令说明处理结束符和后续数据。

使用方式

  1. 向模组发送 AT,确认收到 OK
  2. 发送 AT+CGMIAT+CGMM 查询厂商/型号信息。
  3. 发送 AT+CLAC 获取当前固件支持的命令列表;实际命令集合受模组固件版本和配置影响。
AT
OK

AT+CGMI
<厂商信息>
OK

AT+CLAC
<当前固件支持的 AT 命令列表>
OK

预期结果

  • AT 返回 OK,说明主机至 2131E 的 AT 通道可用。
  • 信息查询命令返回与当前模组固件匹配的数据。
  • 未支持命令或参数不合法时,返回 ERROR+CME ERROR;请结合2131E AT命令清单中的错误码章节定位。

文件结构与代码走读

文件结构

2131E 的协议标准命令由模组固件实现,本仓仅包含 SDK 侧 CAT1 AT 组件。SDK 中与 CAT1 命令注册相关的文件如下:

src/middleware/utils/at/at_cat1_cmd/
├── CMakeLists.txt                     # cat1_at 组件构建配置
├── at/at_cat1_cmd_table.h             # CAT1 命令表、参数语法和处理函数声明
├── at/at_cat1.c                       # 命令处理实现及命令表注册
└── src/at_cat1_cmd_register.c         # 注册封装,连接通用 AT 框架

各文件职责

文件 职责 关键内容
/src/middleware/utils/at/at_cat1_cmd/at/at_cat1_cmd_table.h 定义 CAT1 命令项和参数解析规则 at_cat1_cmd_parse_tableat_para_parse_syntax_t
/src/middleware/utils/at/at_cat1_cmd/at/at_cat1.c 实现处理函数并注册命令表 los_at_cat1_cmd_register()
/src/middleware/utils/at/at_cat1_cmd/src/at_cat1_cmd_register.c 调用通用 AT 框架完成注册 uapi_at_cat1_register_cmd()
/src/middleware/utils/at/at_cat1_cmd/CMakeLists.txt 声明 cat1_at 组件的源文件与头文件路径 COMPONENT_NAMESOURCES

代码走读

  1. at_cat1_cmd_table.h 中的 at_cat1_cmd_parse_table 将 AT 命令字符串、处理函数和参数解析语法绑定为命令表项。
  2. at_cat1.c 通过 AT_CAT1_FUNC_NUM 计算命令数量,并在 los_at_cat1_cmd_register() 中把命令表交给注册封装。
  3. at_cat1_cmd_register.c 调用 uapi_at_cmd_table_register() 注册命令表;注册失败时通过 uapi_at_report_to_single_channel() 输出诊断信息。
  4. 2131E 模组自身的标准/厂商命令并不等同于上述 SDK 命令表。若命令需由 2131E 解析,必须在模组固件侧实现并由对应固件版本提供。

基于 2131E AT Demo 新建自己的应用

先确认新增位置

  • 新增 2131E 原生 AT 命令:命令解析和响应逻辑位于 2131E 模组固件,不在当前 SDK 仓中。请与模组固件维护方确认命令名、参数、权限和固件发布方式。
  • 新增 HiDiTing SDK 侧 CAT1 调试/控制命令:可扩展 cat1_at 组件,下面给出推荐步骤。

准备工作

  1. 选择未被现有命令占用的命令名,并约定设置、查询、执行和测试形式。
  2. 明确每个参数的类型、范围、可选性以及命令的同步/异步返回方式。
  3. 确认 cat1_at 组件已参与目标产品构建;其构建入口为 /src/middleware/utils/at/at_cat1_cmd/CMakeLists.txt

详细编码

  1. /src/middleware/utils/at/at_cat1_cmd/at/at_cat1_cmd_table.h 中定义参数结构体和 at_para_parse_syntax_t 解析规则;为每个整型参数配置合理的上下界。
  2. 在同一文件的 at_cat1_cmd_parse_table 中新增命令项,将命令字符串、参数语法和处理函数绑定。
  3. /src/middleware/utils/at/at_cat1_cmd/at/at_cat1.c 中实现处理函数:校验参数、调用 CAT1 服务接口、返回 at_ret_t,必要时通过 uapi_at_report_to_single_channel() 输出结果。
  4. 使用 /src/middleware/utils/at/at_cat1_cmd/src/at_cat1_cmd_register.c 已有的 uapi_at_cat1_register_cmd() 完成注册;通常无需为每条命令额外添加注册调用。
  5. 在串口上分别验证执行、查询、设置、测试和非法参数路径,确保返回结果与命令约定一致。

编译、运行与调试

编译

说明:本文示例命令以一站式 CLI 为主。实际开发可从以下三种环境中选择,推荐使用一站式 CLI。

开发环境 适用场景 使用指南
一站式 CLI(推荐) 快速完成目标选择、构建、烧录和串口监视 一站式 CLI 开发环境使用指南
HiSpark Studio for VS Code 图形化编辑、编译、烧录和调试 HiSpark Studio for VS Code 开发环境使用指南
WSL 与 Docker 在 Windows 上使用一致的 Linux 容器构建环境 WSL 与 Docker 环境使用指南

按照一站式 CLI 开发环境使用指南完成 fbb setup 后,在工程目录中执行:

# 指向当前 SDK 的 src 目录;路径请按本机实际位置修改。
$env:FBB_SDK_DIR = "<SDK根目录>\src"

# 首次设置构建目标,目标会保存到工程目录下的 .fbb-target。
fbb set-target pack_diting_community

# 编译已设置的目标。
fbb build

也可以直接指定 SDK 与目标:

fbb build --sdk-dir $env:FBB_SDK_DIR pack_diting_community

构建完成后,使用一站式 CLI 烧写完整固件并打开 UART2 日志串口;将 COM3 替换为实际端口:

fbb flash -f "$env:FBB_SDK_DIR\output\3322\fwpkg\diting-community.fwpkg" --chip 3322 -d --timeout 180
fbb monitor --port COM3 --baud 750000

该组件由 /src/middleware/utils/at/CMakeLists.txt 纳入构建。不要在 src 目录直接执行 python build.py

运行与调试

  • 串口验证时先发送 AT+CLAC 或目标查询命令确认命令已注册,再发送正常参数和边界参数。
  • 若命令未出现,检查组件是否参与构建、注册函数是否被调用,以及命令字符串是否和命令表一致;若返回 ERROR,打开 AT 相关日志并检查处理函数返回值。

注意事项

  • 不要将 2131E 模组原生命令与 SDK 侧 cat1_at 命令混为一谈;两类命令的发布和升级路径不同。
  • 涉及 USIM PIN、网络附着、短信、固件升级、产测或恢复出厂设置的命令可能改变设备状态,请先在可恢复的测试环境验证。
  • AT+CLAC 的返回内容随模组固件版本、编译选项和运营商配置变化,以设备实际返回为准。
  • 命令发送应严格遵循本手册的参数格式与结束符要求,避免将交互式数据误当作新的 AT 命令。

常见错误

现象 排查方法
发送 AT 无响应 检查供电、串口连线、端口号、串口参数和行结束符。
返回 ERROR+CME ERROR 检查命令是否受当前固件支持、参数范围和 USIM/网络状态;参阅错误码
命令未出现在 SDK 侧命令列表 检查 cat1_at 组件是否构建、at_cat1_cmd_parse_table 是否包含该项,以及注册流程是否执行。
设备重启或网络状态改变 结合重置原因与串口日志确认触发源。