最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
CI-73T模组 双串口应用与配置指南
时间:2026-07-13 07:35:54 编辑:袖梨 来源:一聚教程网
前言
在实际语音产品开发中,经常遇到一个语音模组需要与多个外部设备通信的场景。例如:语音模组需要同时向两个不同的MCU发送不同格式的控制指令,或者需要连接两个不同通信协议的设备。这时,单个串口就显得捉襟见肘了。

本文基于真实用户问题,详细讲解 CI-73T 模组双串口功能的配置方法、应用场景以及常见问题排查。
一、问题背景
真实案例
某用户在技术交流群中提出问题:
"有没有两个串口输出的?有两种格式指令,对应两个芯片。"
这个问题反映了实际产品开发中的常见需求:
- 一个语音模组需要控制两块不同的芯片
- 两块芯片使用的通信协议格式不同
- 需要分别发送不同的控制指令
技术解答
CI-73T 和 CI-03T 系列模组都支持两组独立串口,可以同时与两个不同的MCU进行串口通信:
"可以,是两组串口可以跟不同MCU串口通信"
二、硬件基础:CI-73T 的串口资源
2.1 串口资源规格
| 参数 | 规格 |
|---|---|
| UART路数 | 3路 |
| 最高波特率 | 3M |
| 默认波特率 | 9600 |
| 串口电平 | 3.3V |
| 引脚配置 | 可通过平台自由配置GPIO为UART功能 |
2.2 引脚配置说明
CI-73T 支持将多个 GPIO 引脚配置为 UART 功能,常用的配置包括:
- UART1:可使用 PA0(引脚15)作为 TX/RX
- UART2:可使用 PA4(引脚14)作为 TX/RX
- 日志串口:P14 和 P15(默认用于日志输出,可配置为普通串口)
注意:日志串口配置为普通串口后,将无法输出调试日志,建议调试完成后再修改。
三、平台配置:启用双串口功能
3.1 配置前提条件
在配置双串口功能之前,需要先在 Pin脚配置 中启用所需的串口功能:
步骤:
- 进入智能公元平台的"Pin脚配置"页面
- 将需要使用的引脚配置为对应的 UART 功能
- 例如:配置 UART1 和 UART2 两组串口引脚
- 保存 Pin 脚配置后,才能在"控制详情"中选择这些串口
3.2 串口2输入 → 串口1输出 配置示例
以下是一个典型的应用场景:串口2接收数据后,根据数据内容从串口1发送对应控制指令。
配置流程
步骤1:添加串口输入触发
- 触发方式选择:串口输入
- 选择串口:UART2_RX
- 设置消息编号:如
1 - 配置输入参数:如
cmd(类型int,测试值1)
步骤2:添加串口输出动作
在控制详情中添加控制动作:
- 控制方式选择:端口输出
- 控制类型选择:UART1_TX
- 动作设置为:发送
- 参数设置为:要发送的16进制数据
步骤3:使用参数进行数据传递
- 在串口输入中配置输入参数
- 在控制详情中使用 "参数赋给变量" 接收参数
- 通过变量控制串口输出的数据内容
配置示例
假设需要实现:串口2接收数据后,根据数据内容从串口1发送对应控制指令
串口输入配置:
| 配置项 | 值 |
|---|---|
| 触发方式 | 串口输入 |
| 选择串口 | UART2_RX |
| 消息编号 | 1 |
| 输入参数 | cmd(类型int,测试值1) |
控制详情配置:
| 操作 | 参数/条件 | 动作 |
|---|---|---|
| 参数赋给变量 | cmd → command_var | - |
| 条件判断 | 如果 command_var == 1 | UART1_TX 发送 AA 55 01 55 AA |
| 条件判断 | 如果 command_var == 2 | UART1_TX 发送 AA 55 02 55 AA |
四、典型应用场景
4.1 场景一:双MCU控制系统
应用描述: 一个语音产品需要同时控制两个独立的MCU,例如主控板和显示板。
实现方案:
- UART1 连接主控MCU,发送控制指令
- UART2 连接显示MCU,发送显示数据
数据格式示例:
UART1: AA 55 01 01 55 AA (控制主控执行动作1)
UART2: BB 66 02 05 66 BB (控制显示显示模式5)4.2 场景二:协议转换与透传
应用描述: 语音模组作为协议转换器,将一种协议转换为另一种协议。
实现方案:
- UART1 接收外部设备A的协议数据
- 语音模组解析后通过UART2转发给设备B
4.3 场景三:双格式指令输出
应用描述: 用户提问的场景:两种格式指令对应两个芯片。
实现方案:
- 识别语音命令后,在平台配置中添加两个端口输出动作
- 第一个动作:UART1_TX 发送格式A的指令
- 第二个动作:UART2_TX 发送格式B的指令
配置示例:
语音命令:"打开所有设备"
→ 动作1:UART1_TX 发送 01 02 03 04
→ 动作2:UART2_TX 发送 AA BB CC DD五、数据通信协议
5.1 标准数据格式
SmartPi 平台的串口通信采用统一的数据帧格式:
AA 55 [消息ID] [参数值] 55 AA| 字段 | 说明 |
|---|---|
| AA 55 | 帧头(固定) |
| [消息ID] | 对应配置的消息编号(1字节) |
| [参数值] | 要传递的参数数据(可变长度) |
| 55 AA | 帧尾(固定) |
5.2 多参数配置
支持在单次通信中传递多个参数:
- 可以添加多个输入参数
- 每个参数有独立的名称和类型
- 测试消息会包含所有参数
示例:
AA 55 45 [参数1] [参数2] [参数3] 55 AA六、常见问题排查
6.1 串口配置后无法选择
问题描述: 在控制详情中找不到配置的串口选项。
解决方案:
- 确认已先在 Pin脚配置 中启用了对应的串口功能
- 保存 Pin脚配置后刷新页面
- 不同芯片型号支持的串口数量不同,需确认硬件支持
6.2 串口通信异常(0xFF错误)
问题描述: 串口接收到的数据偶尔出现 0xFF 错误值。
可能原因:
- 线路问题:TX/RX引脚接触不良、GND未连接
- 波特率不匹配:发送端和接收端波特率设置不一致
- 电平问题:3.3V/5V电平不匹配
- 干扰问题:电磁干扰导致信号畸变
排查步骤:
- 检查硬件连接(TX-RX交叉连接、GND共地)
- 验证串口参数(波特率、数据位、停止位)
- 使用示波器观察信号波形
6.3 电源纹波导致通信失败
问题描述: 部分模块串口命令不执行,同一固件在大部分板子上正常,个别板子异常。
解决方案:
- 使用示波器测量模块电源纹波,建议控制在100mV以内
- 检查电源滤波电路是否充足
- 确认主控与模块的串口电平一致(CI-73T为3.3V)
七、电平匹配与硬件连接
7.1 电平要求
- CI-73T串口电平:3.3V
- 外部设备电平:必须为3.3V才能正常通信
- 供电独立性:供电电压与通信电平是两个独立概念
7.2 电平转换方案
如外部设备为5V电平,需要加装电平转换电路:
方案一:电阻分压(仅适用于5V→3.3V)
5V_TX ──┬─── 2.2kΩ ────┬─── 3.3V_RX
│ │
└─── 3.3kΩ ────┴─── GND方案二:专用电平转换芯片(推荐)
- TXS0102E
- CH340(带电平转换功能)
7.3 接线注意事项
- 交叉连接:模块TX连接到接收设备RX,模块RX连接到发送设备TX
- 共地连接:双方GND必须连接
- 通信距离:TTL串口建议不超过1-2米
八、配置检查清单
在完成双串口配置后,请对照以下清单进行检查:
- [ ] 已在Pin脚配置中启用UART1和UART2
- [ ] 串口输入触发配置正确(串口选择、消息编号)
- [ ] 串口输出动作配置正确(控制类型、数据格式)
- [ ] 硬件连接正确(TX-RX交叉、GND共地)
- [ ] 波特率设置一致(默认9600)
- [ ] 电平匹配(3.3V 或 加装电平转换)
- [ ] 已重新生成并烧录固件
九、总结
CI-73T 系列模组支持多路UART串口,可以灵活地实现与多个外部设备的通信。通过平台配置,可以轻松实现:
- 串口2输入触发串口1输出
- 同一语音命令向两个串口发送不同格式指令
- 数据透传与协议转换
核心要点:
- 使用前必须在Pin脚配置中启用对应的串口功能
- 注意串口电平匹配(3.3V),必要时加装电平转换
- 数据格式遵循
AA 55 [消息ID] [参数] 55 AA协议 - 通信异常时优先检查电源纹波和电平匹配
参考资料
- CI-73T 产品文档
- 串口输入参数配置
- CI-73T 硬件设计FAQ
相关文章
- 如何在Linux中调整GIMP图像尺寸 07-13
- 如何在Linux系统上安装GIMP 07-13
- 如何监控Debian Informix数据库性能 07-13
- Debian Informix故障排查精要 07-13
- 如何提高Debian Informix查询效率 07-13
- Debian Informix日志管理方式 07-13