跳转至

SmartAudio、Tramp与图传控制

视频发射机(VTX,Video Transmitter)的控制协议只负责读取或修改频道、频率、功率、低功率模式和状态。它与摄像头视频、编码码流和射频视频载荷是不同路径。

图传控制与视频路径

三条路径

典型第一人称视角系统至少有:

路径 载荷 常见接口
视频输入 摄像头图像 模拟视频、移动产业处理器接口(MIPI,Mobile Industry Processor Interface)或厂商数字接口
屏幕叠加显示(OSD,On-Screen Display)数据 字符、坐标和绘制命令 MSP DisplayPort等
图传控制 频率、功率、模式和状态 SmartAudio、Tramp、MSP VTX

控制协议失效可能导致无法改变频道或读取状态,但不必然切断视频;视频黑屏也不必然说明控制串口故障。

射频安全前提

图传控制测试必须分别满足三个互不替代的门禁:

门禁 必须满足
射频负载 图传始终连接厂商允许的匹配天线或额定假负载;二者都没有时不得进入任何发射状态
辐射隔离 优先使用额定假负载和屏蔽环境;屏蔽不能替代射频负载
合法性 发射频率、功率、地点和测试用途符合所在地规则;“最低功率”不能替代合法性核验

同时还要:

  • 拆除螺旋桨;
  • 满足图传散热要求;
  • 确认电源能够承受启动和发射功耗;
  • 默认进入最低风险模式;
  • 不干扰他人合法通信;
  • 不通过未经授权的命令解除地区、功率或锁定限制。

串口命令成功不等于射频设置合法。法规与产品边界见产品安全、无线电、电信与销售交付

SmartAudio

SmartAudio不是音频协议。它是面向图传控制的非反相、单线、半双工UART协议。

电气和时序

SmartAudio Revision 09给出的关键条件包括:

  • 单根数据线;
  • 半双工;
  • 标称4800波特;
  • 1个起始位;
  • 2个停止位;
  • 逻辑高约0.9至3.3伏;
  • 逻辑低约0至0.5伏;
  • 主机发起请求,图传响应;
  • 双方空闲时释放线路。

具体飞控实现可能使用推挽半双工和专用上下拉配置。不能未经板卡和图传手册核对,就把它改接到普通双线全双工、开漏或5伏接口。

帧结构

主机命令概念结构:

[0xAA][0x55][command][length][payload][CRC8]

其中:

  • length是载荷字节数;
  • 主机发送命令码为(logical_command << 1) | 1
  • 图传响应使用未移位的逻辑命令码;
  • CRC-8初值为0,多项式为0xD5

Betaflight 2026.6.2发送时,CRC覆盖0xAA 0x55、命令、长度和载荷;接收响应解析在消费前导后,对响应码、长度和载荷计算。实现和规范中的方向差异必须按固定代码核对,不能笼统写成两向CRC覆盖完全相同。

半双工状态机

主机等待线路空闲
→ 发送请求
→ 完成最后停止位
→ 释放输出并切换接收
→ 等待响应前导
→ 读取长度与载荷
→ 校验
→ 更新设备状态

必须设置:

  • 发送前空闲时间;
  • 发送后切换时间;
  • 响应开始超时;
  • 字符间超时;
  • 最大载荷;
  • 校验错误计数;
  • 重试间隔;
  • 设备离线判定。

自适应速率不是协议协商

Betaflight固定版本为容忍部分图传软件串口随温度产生的时钟误差,会在累计发送达到条件且成功率偏低时,以50波特步进在约4800至4950之间调整。该行为是接收兼容策略:

  • 不是SmartAudio规范定义的速率协商;
  • 不能推导其他飞控或图传支持;
  • 不应掩盖电气质量、供电和布线问题;
  • 测试时应记录实际使用速率与成功率。

ImmersionRC Tramp

ImmersionRC(IRC)Tramp控制链路在Betaflight固定版本中使用9600波特。原厂Tramp Nano基线为3.3伏、空闲高、无奇偶校验、1个停止位;Betaflight以8N1打开串口,并可按端口配置使用半双工。

接线决策

协议名称不能决定所有产品修订的针脚。接线前填写:

项目 必须从哪里确认 未确认时
图传控制焊盘名称与数量 图传型号和硬件修订手册 阻断
单线半双工或独立收发线 图传手册与固定驱动 阻断
飞控使用TX、RX或专用半双工焊盘 飞控原理图、目标资源和端口文档 阻断
推挽、开漏、电压与空闲电平 两端电气规格 阻断
回读是否走同一根线 协议实现和波形捕获 阻断

常见单线半双工Tramp设备会把同一控制线用于请求和回读,飞控端应使用固定目标明确支持半双工的信号焊盘。不得凭普通UART经验同时连接TX和RX,也不得把两个推挽输出直接并接。具体产品若规定不同接法,以该硬件修订的官方手册和实测波形为准。

16字节固定帧

byte 0    0x0F
byte 1    command
byte 2-13 parameters/data
byte 14   bytes 1-13的8位模加和
byte 15   0x00

这是一字节加法校验和,不是CRC。Betaflight写入16位参数时按小端放入字节2和3。

接收端至少验证:

  • 长度正好16字节;
  • 首字节为0x0F
  • 响应命令属于预期集合;
  • 字节14校验正确;
  • 末字节为0;
  • 响应与当前请求状态匹配。

发现、轮询和写后回读

固定版本Betaflight驱动的主要流程包括:

  • 用小写r查询设备能力边界;
  • v查询频率、配置功率、锁定、坑位和实际功率;
  • 在线后用s查询温度;
  • 使用大写FPI设置频率、功率和坑位;
  • 每次只推进一个配置项;
  • 写入后重新查询实际状态。

离线发现和初始化查询会按间隔持续重发;配置写入则有独立的有限尝试次数。不能把“配置最多重试20次”误写为所有发现查询的总上限。

配置功率与设备报告的实际功率是不同字段。发送设置帧成功不能证明射频输出已经切换,必须回读状态,并在合法测试条件下使用适当射频测量确认。

MSP图传控制

部分数字图传通过MSP连接提供:

  • 设备配置;
  • 图传表或能力;
  • 频率、功率和模式控制;
  • MSP DisplayPort OSD。

配置界面中的“MSP + DisplayPort”表示同一串行连接可以承载管理命令和OSD命令,不表示MSP承载视频像素或压缩码流。

MSP图传控制继承MSP的版本、命令兼容和链路访问风险。数字视频系统还可能有独立固件、配对、网络和编码状态,不能只查MSP。

频道、频率和功率

协议可能提供:

  • band/channel索引;
  • 直接频率;
  • 配置功率档位;
  • 实际功率;
  • pit mode或低功率模式;
  • 锁定状态;
  • 区域模式;
  • 设备能力上下限。

索引没有跨设备的固定物理含义。正确流程是:

  1. 读取设备能力;
  2. 读取当前真实状态;
  3. 把工具中的名称映射到设备定义;
  4. 检查法规和现场限制;
  5. 发送单项候选;
  6. 回读设备实际状态;
  7. 记录不一致和锁定原因;
  8. 必要时用合规仪器测量射频输出。

不得以“界面显示已保存”代替设备回读。

低功率和解锁条件

坑位或低功率模式的具体行为可能是:

  • 完全关闭射频;
  • 输出极低功率;
  • 使用启动频率;
  • 只在未解锁时生效;
  • 解锁后切换到配置功率;
  • 由外部设备锁定。

必须按设备和固定固件版本验证。不能用“Pit Mode”名称推导绝对无射频输出。

若图传状态与飞控解锁状态联动,测试要覆盖:

  • 上电未解锁;
  • 配置工具连接;
  • 解锁请求被拒绝;
  • 状态恢复;
  • 飞控重启;
  • 控制线断开。

涉及真实解锁的分支在SITL、HITL或专用射频隔离台架验证。

错误与恢复

实现应统计:

  • 发送请求数;
  • 有效响应数;
  • 响应超时;
  • 长度或头错误;
  • CRC或校验和错误;
  • 非预期响应;
  • 写后回读不一致;
  • 当前波特率;
  • 离线和重新发现次数;
  • 设备温度和过热状态。

链路恢复后应先重新读取能力和实际状态,再决定是否补发配置。不能把断线前的缓存值直接覆盖重启后的设备状态。

验证矩阵

执行任何控制写入或射频发射前,必须先完成协议审查与测试卡第0节,并按抓包、解码、一致性与版本迁移固定捕获和回读方法。

项目 被动验证 隔离主动验证
电气 空闲电平、幅值、实际速率 换向窗口和负载边界
请求、响应、长度、校验 截断、错误校验、未知响应
状态 能力、频率、功率、温度 单项写入与回读
恢复 正常重启捕获 控制线中断与设备重启
安全 地区、锁定、低功率状态 错误状态下写入拒绝
视频 图像与OSD分别观察 控制失效不应被误判为视频失效

主动测试不得向开放频谱发射未授权信号。未连接匹配天线或额定假负载时,不得使射频功率放大器进入任何发射状态;“时间很短”不构成例外。

常见误判

  • 把SmartAudio理解为音频传输;
  • 把SmartAudio接成普通双线全双工;
  • 把Betaflight自适应波特率写成协议协商;
  • 把Tramp加法校验称为CRC;
  • 把Tramp配置重试次数套到设备发现;
  • 用命令发送成功替代写后回读;
  • 把配置功率和实际功率混为一个字段;
  • 把MSP DisplayPort当作视频码流;
  • 认为关闭OSD一定会切断基础视频;
  • 无天线通电或在不合规频率、功率上测试。

检查理解

  1. 图传控制、OSD和视频载荷分别传递什么?
  2. SmartAudio为什么需要发送后立即释放线路?
  3. SmartAudio自适应速率为什么不属于标准协商?
  4. Tramp帧的校验覆盖哪些字节?
  5. 为什么必须写后回读图传实际状态?

主要参考