一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

CI-73T模组 双串口应用与配置指南

时间:2026-07-13 07:35:54 编辑:袖梨 来源:一聚教程网

前言

在实际语音产品开发中,经常遇到一个语音模组需要与多个外部设备通信的场景。例如:语音模组需要同时向两个不同的MCU发送不同格式的控制指令,或者需要连接两个不同通信协议的设备。这时,单个串口就显得捉襟见肘了。

CI-73T模组 双串口配置与应用指南

本文基于真实用户问题,详细讲解 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脚配置 中启用所需的串口功能:

步骤:

  1. 进入智能公元平台的"Pin脚配置"页面
  2. 将需要使用的引脚配置为对应的 UART 功能
  3. 例如:配置 UART1 和 UART2 两组串口引脚
  4. 保存 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 == 1UART1_TX 发送 AA 55 01 55 AA
条件判断如果 command_var == 2UART1_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 场景三:双格式指令输出

应用描述: 用户提问的场景:两种格式指令对应两个芯片。

实现方案:

  1. 识别语音命令后,在平台配置中添加两个端口输出动作
  2. 第一个动作:UART1_TX 发送格式A的指令
  3. 第二个动作: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 串口配置后无法选择

问题描述: 在控制详情中找不到配置的串口选项。

解决方案:

  1. 确认已先在 Pin脚配置 中启用了对应的串口功能
  2. 保存 Pin脚配置后刷新页面
  3. 不同芯片型号支持的串口数量不同,需确认硬件支持

6.2 串口通信异常(0xFF错误)

问题描述: 串口接收到的数据偶尔出现 0xFF 错误值。

可能原因:

  1. 线路问题:TX/RX引脚接触不良、GND未连接
  2. 波特率不匹配:发送端和接收端波特率设置不一致
  3. 电平问题:3.3V/5V电平不匹配
  4. 干扰问题:电磁干扰导致信号畸变

排查步骤:

  1. 检查硬件连接(TX-RX交叉连接、GND共地)
  2. 验证串口参数(波特率、数据位、停止位)
  3. 使用示波器观察信号波形

6.3 电源纹波导致通信失败

问题描述: 部分模块串口命令不执行,同一固件在大部分板子上正常,个别板子异常。

解决方案:

  1. 使用示波器测量模块电源纹波,建议控制在100mV以内
  2. 检查电源滤波电路是否充足
  3. 确认主控与模块的串口电平一致(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 接线注意事项

  1. 交叉连接:模块TX连接到接收设备RX,模块RX连接到发送设备TX
  2. 共地连接:双方GND必须连接
  3. 通信距离:TTL串口建议不超过1-2米

八、配置检查清单

在完成双串口配置后,请对照以下清单进行检查:

  • [ ] 已在Pin脚配置中启用UART1和UART2
  • [ ] 串口输入触发配置正确(串口选择、消息编号)
  • [ ] 串口输出动作配置正确(控制类型、数据格式)
  • [ ] 硬件连接正确(TX-RX交叉、GND共地)
  • [ ] 波特率设置一致(默认9600)
  • [ ] 电平匹配(3.3V 或 加装电平转换)
  • [ ] 已重新生成并烧录固件

九、总结

CI-73T 系列模组支持多路UART串口,可以灵活地实现与多个外部设备的通信。通过平台配置,可以轻松实现:

  • 串口2输入触发串口1输出
  • 同一语音命令向两个串口发送不同格式指令
  • 数据透传与协议转换

核心要点:

  1. 使用前必须在Pin脚配置中启用对应的串口功能
  2. 注意串口电平匹配(3.3V),必要时加装电平转换
  3. 数据格式遵循 AA 55 [消息ID] [参数] 55 AA 协议
  4. 通信异常时优先检查电源纹波和电平匹配

参考资料

  • CI-73T 产品文档
  • 串口输入参数配置
  • CI-73T 硬件设计FAQ

热门栏目