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伏接口。
帧结构¶
主机命令概念结构:
其中:
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字节固定帧¶
这是一字节加法校验和,不是CRC。Betaflight写入16位参数时按小端放入字节2和3。
接收端至少验证:
- 长度正好16字节;
- 首字节为
0x0F; - 响应命令属于预期集合;
- 字节14校验正确;
- 末字节为0;
- 响应与当前请求状态匹配。
发现、轮询和写后回读¶
固定版本Betaflight驱动的主要流程包括:
- 用小写
r查询设备能力边界; - 用
v查询频率、配置功率、锁定、坑位和实际功率; - 在线后用
s查询温度; - 使用大写
F、P、I设置频率、功率和坑位; - 每次只推进一个配置项;
- 写入后重新查询实际状态。
离线发现和初始化查询会按间隔持续重发;配置写入则有独立的有限尝试次数。不能把“配置最多重试20次”误写为所有发现查询的总上限。
配置功率与设备报告的实际功率是不同字段。发送设置帧成功不能证明射频输出已经切换,必须回读状态,并在合法测试条件下使用适当射频测量确认。
MSP图传控制¶
部分数字图传通过MSP连接提供:
- 设备配置;
- 图传表或能力;
- 频率、功率和模式控制;
- MSP DisplayPort OSD。
配置界面中的“MSP + DisplayPort”表示同一串行连接可以承载管理命令和OSD命令,不表示MSP承载视频像素或压缩码流。
MSP图传控制继承MSP的版本、命令兼容和链路访问风险。数字视频系统还可能有独立固件、配对、网络和编码状态,不能只查MSP。
频道、频率和功率¶
协议可能提供:
- band/channel索引;
- 直接频率;
- 配置功率档位;
- 实际功率;
- pit mode或低功率模式;
- 锁定状态;
- 区域模式;
- 设备能力上下限。
索引没有跨设备的固定物理含义。正确流程是:
- 读取设备能力;
- 读取当前真实状态;
- 把工具中的名称映射到设备定义;
- 检查法规和现场限制;
- 发送单项候选;
- 回读设备实际状态;
- 记录不一致和锁定原因;
- 必要时用合规仪器测量射频输出。
不得以“界面显示已保存”代替设备回读。
低功率和解锁条件¶
坑位或低功率模式的具体行为可能是:
- 完全关闭射频;
- 输出极低功率;
- 使用启动频率;
- 只在未解锁时生效;
- 解锁后切换到配置功率;
- 由外部设备锁定。
必须按设备和固定固件版本验证。不能用“Pit Mode”名称推导绝对无射频输出。
若图传状态与飞控解锁状态联动,测试要覆盖:
- 上电未解锁;
- 配置工具连接;
- 解锁请求被拒绝;
- 状态恢复;
- 飞控重启;
- 控制线断开。
涉及真实解锁的分支在SITL、HITL或专用射频隔离台架验证。
错误与恢复¶
实现应统计:
- 发送请求数;
- 有效响应数;
- 响应超时;
- 长度或头错误;
- CRC或校验和错误;
- 非预期响应;
- 写后回读不一致;
- 当前波特率;
- 离线和重新发现次数;
- 设备温度和过热状态。
链路恢复后应先重新读取能力和实际状态,再决定是否补发配置。不能把断线前的缓存值直接覆盖重启后的设备状态。
验证矩阵¶
执行任何控制写入或射频发射前,必须先完成协议审查与测试卡第0节,并按抓包、解码、一致性与版本迁移固定捕获和回读方法。
| 项目 | 被动验证 | 隔离主动验证 |
|---|---|---|
| 电气 | 空闲电平、幅值、实际速率 | 换向窗口和负载边界 |
| 帧 | 请求、响应、长度、校验 | 截断、错误校验、未知响应 |
| 状态 | 能力、频率、功率、温度 | 单项写入与回读 |
| 恢复 | 正常重启捕获 | 控制线中断与设备重启 |
| 安全 | 地区、锁定、低功率状态 | 错误状态下写入拒绝 |
| 视频 | 图像与OSD分别观察 | 控制失效不应被误判为视频失效 |
主动测试不得向开放频谱发射未授权信号。未连接匹配天线或额定假负载时,不得使射频功率放大器进入任何发射状态;“时间很短”不构成例外。
常见误判¶
- 把SmartAudio理解为音频传输;
- 把SmartAudio接成普通双线全双工;
- 把Betaflight自适应波特率写成协议协商;
- 把Tramp加法校验称为CRC;
- 把Tramp配置重试次数套到设备发现;
- 用命令发送成功替代写后回读;
- 把配置功率和实际功率混为一个字段;
- 把MSP DisplayPort当作视频码流;
- 认为关闭OSD一定会切断基础视频;
- 无天线通电或在不合规频率、功率上测试。
检查理解¶
- 图传控制、OSD和视频载荷分别传递什么?
- SmartAudio为什么需要发送后立即释放线路?
- SmartAudio自适应速率为什么不属于标准协商?
- Tramp帧的校验覆盖哪些字节?
- 为什么必须写后回读图传实际状态?