VTX空中飞行时修改FPV视频扰码器密码

我们使用USB工具连接电脑和视频加扰解扰模块来修改密码, 这实际上是加密算法的种子数. 如果我们给无人机安装了加扰模块并且它在空中飞行, 此方法无法更改密码或加扰算法的种子数. 只能通过发送串口命令来实现.

VTX空中飞行时修改FPV视频扰码器密码

FPV视频加扰模块配置参数

模块配置参数都是通过写一个256来实现×8 模块内的RAM. 配置的参数保存后有效, 重置或重新上电

内存参数说明

模块配置参数都是通过写一个256来实现×8 模块内的RAM. 配置的参数保存后有效, 重置, 或重新开机. 系统上电或复位后, 串口将打印 {AAAAAA}

内存参数详细信息

随机存取存储器[0]: 系统复位控制, 可读可写, 读和写有不同的含义
写:
0X00: 重置整个系统, 串口返回 {AAAAAA}, 表明系统已重置
0X01: 保存用户设置的参数, 串口返回 {000101}, 表明执行成功
0X02: 将参数恢复为系统默认参数, 串口返回 {000202}, 表明执行成功
其他=> 预订的
读:
位0: 输入是否锁定, 0: 解锁, 1: 锁定
位7~位1: 预订的
随机存取存储器[1]: 视频输入方式, 可读可写, 默认值0X00
0X00: 强制输入模式为 PAL, 抗干扰能力更强
0X01: 强制输入模式为 NTSC, 抗干扰能力更强
其他保留
随机存取存储器[2]: 模块工作模式. 可读可写, 默认值0X00
0X00: 加扰模式
0X01: 解扰模式
其他=> 预订的
随机存取存储器[3] ~ 内存[4]: 加扰随机数, 范围 0~1023, 可读可写, 默认值 0.
随机存取存储器[3] 高字节, 随机存取存储器[4] 低字节

其他 RAM 被保留,其内容无法读取或写入

模块配置命令

配置命令是通过串口向其发送命令来实现的

命令格式: {+操作码+RAM地址+校验码+}

符号 {} 都是用ASCII码表示的十六进制数

{: 表示命令的开始

+: 表示这仅表示连接, 用于解释, 并且在实际命令中不存在

<>: 表示读取命令中不存在该参数

}: 表示命令结束

操作码: 00 表示写入, FF表示已读, 1 字节

内存地址: 1 字节

操作数: 该命令的操作数是 1 字节. 在读操作中, 该字节不存在

检查代码: (操作码 + 寄存器地址 + ) 模组 256

命令返回格式:

操作成功返回格式: {+寄存器地址+寄存器值+校验码+}

复位命令不返回

操作失败返回格式: {FFFFFF}

串口命令示例:

启动:
RX: {AAAAAA}

TX: {00010001} – 设置 PAL
RX: {010001}   – 成功 / 要么 {FFFFFF} – 失败
TX: {00010102} – 设置 NTSC
RX: {010102}   – 成功 / 要么 {FFFFFF} – 失败
TX: {FF0100}   – 获取视频输入模式
RX: {010102}   – 0x01 & 0x01 = NTSC / 要么 {FFFFFF} – 失败

TX: {00020002} – 设置加扰模式
RX: {020002}   – 成功 / 要么 {FFFFFF} – 失败
TX: {00020103} – 设置解扰器模式
RX: {020103}   – 成功 / 要么 {FFFFFF} – 失败
TX: {FF0201}   – 获取工作模式
RX: {020103}   – 0x01 & 0x01 = 解扰器模式 / 要么 {FFFFFF} – 失败

设置种子 = 1000 (0x03e8) 高字节0x03, 低字节0xe8

TX: {00030306} – 设置高字节0x03 / 要么 {FFFFFF} – 失败
RX: {030306}   – 成功 / 要么 {FFFFFF} – 失败
TX: {0004E8EC} – 设置低字节0xe8
RX: {04E8EC}   – 成功 / 要么 {FFFFFF} – 失败
TX: {FF0302}   – 获取种子的高字节
RX: {030306}   – 高字节 = 0x03 / 要么 {FFFFFF} – 失败
TX: {FF0403}   – 获取种子的低字节
RX: {04E8EC}   – 低字节 = 0xe8 / 要么 {FFFFFF} – 失败

TX: {00000101} – 写入设置
RX: {000101}   – 成功 / 要么 {FFFFFF} – 失败

Chinese中文原文

FPV视频加扰模块配置参数

模块配置参数都是通过写模块内部的一个256×8的RAM来实现,所配置的参数在保存复位或重新上电后有效.

RAM参数说明

模块配置参数都是通过写模块内部的一个256×8的RAM来实现,所配置的参数在保存复位或重新上电后有效,系统上电或复位后,串口会打印{AAAAAA}

RAM参数说明

随机存取存储器[0] :系统复位控制,可读可写,读和写代表的意义不一样

写:

  • 0X00:复位整个系统,串口返回{AAAAAA},表示系统已经复位
  • 0X01:保存用户设置的参数, 串口返回{000101},表示执行成功
  • 0X02:恢复参数为系统默认参数, 串口返回{000202},表示执行成功
  • 其它 => 保留

读:

  • 位0:输入锁定与否,0:未锁定,1:锁定
  • 位7~位1:保留

随机存取存储器[1] :视频输入模式,可读可写,默认值0X00

  • 0X00:强制输入模式为PAL,抗干扰更强
  • 0X01:强制输入模式为NTSC,抗干扰更强
  • 其它保留

随机存取存储器[2] :模块工作方式。可读可写,默认值0X00

  • 0X00:加扰模式
  • 0X01:解扰模式
  • 其它 => 保留

随机存取存储器[3] ~内存[4]:加扰随机数,范围0~1023,可读可写,默认值0。
随机存取存储器[3]高字节,随机存取存储器[4]低字节
其它的RAM保留,不能读写其内容

FPV视频加扰模块配置命令

配置命令是通过串口向其发送命令来实现
命令格式: {+操作码+RAM地址+<操作次数>+校验码+} 符号{}内都是ASCII码表示的16进制数字
{ : 表示命令开始
+ : 表示这里仅表示连接,用于说明,在实际命令中并不存在
<> :表示该参数读命令中没有
} : 表示命令结束
操作码 : 00 表示写, FF表示读,1字节
RAM地址: 1字节
操作次数 : 命令的操作数 1字节,在读操作中,这个字节没有
校验码 : (操作码 + 寄存地址 + <操作次数>) 模组 256
命令返回格式 :
操作成功返回格式: {+寄存器地址+寄存器的值+校验码+}
复位命令没返回
操作失败返回格式:{FFFFFF}

问一个问题

← 返回

感谢您的回复。 ✨