OpenTX开源项目
OpenTX是一个开源的遥控器软件项目,授权协议GPL-v2。目前已经成为航模界非常流行的一种遥控器系统。
OpenTX最早的硬件平台是ATMEL ATMEGA,目前已经演变成以stm32 F2和F4为主。OpenTX项目并没有给出具体的stm32的硬件设计,而是由各个遥控器厂家各自设计和维护的,有比较常见的JR, Specturm, FrSky,以及Jumper等。
关于OpenTX有一个常见的误解,就是很多人可能会认为既然是遥控器开源项目,那想必OpenTX会应该包括无线通信部分的实现。但实际上OpenTX只是一个用户交互处理和功能管理系统,并不涉及无线通信部分。无线通信部分特别是物理层,是由各个厂家自己负责去实现的。如果不记住这一点会对项目的理解感到非常困惑。
但如果每个厂家都各自实现自己的无线通信协议,那还怎么保证产品之间的兼容性?OpenTX里只定义化了若干种通道控制层面的协议,如S.BUS, PPM, PXX, Crossfire等等,用来标准化遥控器控制通道数据格式定义。至于使用何种无线传输协议,OpenTX就不管了——不论是飞机还是火车,总之把这个数据包送到目的地就是了。也正因为这样,我们就能看到各个遥控器厂家都极力宣传自有的特色无线传输技术,比如FrSky的ACCST, Spectrum的DSMX, FlySky的AFHDS等等。而每个厂家的遥控器,也必须和自家的接收机配对使用才行。
JR Bay
遥控器的使用场景,根据被控制对象的不同,需求的差异性相当大。比如对于小型室内无人机而言,控制距离不过几十米,使用短距离的无线通信技术就够了。而对于大型远程飞行器,就要具备数十公里甚至更远的通信能力。这些通信系统的硬件原理和实现方式都是完全不同的。那如何才能在一台遥控器里集成那么多不同的无线系统呢?这就是JR扩展仓的由来。
为了给予遥控器硬件上最大的可扩展性,JR公司最早设计了一个模块化的硬件扩展接口,因此被称为JR仓。厂家或者其他第三方可以设计一个跟JR仓接口兼容的硬件模块,插入遥控器以扩展遥控器功能。最常用的扩展模块就是各种用于不同距离和频率上的无线通信模块,俗称“高频头”。
JR接口经过一些演化,目前OpenTX最新定义的接口如下:
图1 JR端口定义对于扩展模块来说需要主要关注的两个管脚是OUT和SPORT。
OUT是单向输出脚,输出的是PPM/SBUS等信号,也就是用户的16个通道输入(包括摇杆、拨杆、旋钮等)混控编码后的信号。扩展模块接收到这个信号后,应该通过自身的物理层把信号转发出去。
SPORT则是双向通信脚,一般用来把扩展模块接收的信号回传给遥控器本体,通常是无人机的遥测数据。
SBUS
以常见的SBUS为例,了解一下通道控制通信协议的基本样貌。
SBUS由一组周期性发送的固定长度,固定格式的数据帧组成。周期有2种:4毫秒或14毫秒。
每个发送周期中总共有25个字节长度的数据帧被发送。这25个字节中,有22个字节用来表示16个通道的数值(每个通道由11bits表示)。其他部分包括一个开始字节,一个结束字节,以及一个字节为标志位。
PPM
PPM利用通常控制电机的PWM正脉宽远小于周期这一特点,通过把多个遥控器通道的PWM输出的脉宽信息调制到一个PWM波形周期内实现在一个无线通道上传输多个遥控器通道信息。
图2 PPM调制解调示意图
网友评论