翼眸科技浅谈无人机接收机的通信协议

翼眸科技浅谈⽆⼈机接收机的通信协议
关于遥控器与⽆⼈机飞控之间的通信协议有很多种,常见的数据协议如下:
1、PWM:需要在接收机上接上全部PWM输出通道,每⼀个通道就要接⼀组线,解析程序需要根据每⼀个通道的PWM ⾼电平时长计算通道数值。
金属焊接2、PPM:按固定周期发送所有通道PWM脉宽的数据格式,⼀组接线,⼀个周期内发送所有通道的PWM值,解析程序需要⾃⾏区分每⼀个通道的PWM时长。
3、S.BUS:每11个bit位表⽰⼀个通道数值的协议,串⼝通信,但是S.BUS的接收机通常是反向电平,连接到⽆⼈机时需要接电平反向器,⼤部分⽀持S.BUS的飞⾏控制板已经集成了反向器,直接将以旧换新机连接到飞⾏控制器即可。
4、XBUS:常规通信协议,⽀持18个通道,数据包较⼤,串⼝通信有两种模式,可以在遥控器的配置选项中配置。接收机⽆需做特殊配置。
⼀、PWM协议
PWM信号⽤于控制单个电调或者单个舵机脉冲宽度调制信号。
电机(电调)上⽤到PWM信号种类很多,此处对常见的PWM信号特征进⾏描述:
1、 PWM信号是⼀个周期性的⽅波信号,周期为20ms,也就是50Hz的刷新频率。
2、 PWM每⼀周期中的⾼电平持续时间为1~2ms(1000us~2000us),代表了油门控制量。⼀般四旋翼中,使⽤1100~1900us,1100us对应0油门,1900us对应满油门。
PCM是英⽂pulse-code modulation的缩写,中⽂的意思是:脉冲编码调制,⼜称脉码调制。PPM是英⽂pulse position modulation的缩写,中⽂意思是:脉冲位置调制,⼜称脉位调制,这⾥顺便提⼀句,有些航模爱好者误将PPM编码说成是FM,其实这是两个不同的概念。前者指的是信号脉冲的编码⽅式,后者指的是⾼频电路的调制⽅式。⽐例遥控发射电路的⼯作原理如图1所⽰。操作通过操纵发射机上的⼿柄,将电位器组值的变化信息送⼈编码电路。编码电路将其转换成⼀组脉冲编码信号(PPM或PCM)。这组脉冲编码信号经过⾼频调制电路(AM或FM)调制后,再经⾼放电路发送出去。PPM的编解码⽅式⼀般是使⽤积分电路来实现的,⽽PCM编解码则是⽤模/数(A/D)和数/模(D/A)转技术实现的。
复合挤塑聚苯板⽬前,⽐例遥控设备中最常⽤的两种脉冲编码⽅式就是PPM和PCM:最常⽤的两种⾼频调制⽅式是FM调频和AM调幅:最常见的组合为PPM/AM脉位调制编码/调幅、PPM/FM脉位调制编码/调频、PPM/FM脉冲调只编码/调频三种形式。通常的PPM接收解码电路都由通⽤的数字集成电路组成,如 C
D4013,CD4015等。对于这类电路来说,只要输⼊脉冲的上升沿达到⼀定的⾼度,都可以使其翻转。这样,⼀旦输⼊脉冲中含有⼲扰脉冲,就会造成输出混乱。由于⼲扰脉冲的数量和位置是随机的,因此在接收机输出端产⽣的效果就是“抖舵”。除此之外,因电位器接触不好⽽造成编码波形的畸变等原因,也会影响接收效果,造成“抖舵”。对于窄⼩的⼲扰脉冲,⼀般的PPM电路可以采⽤滤波的⽅式消除;⽽对于较宽的⼲扰脉冲,滤波电路就⽆能为⼒了。这就是为什么普通的PPM⽐例遥控设备,在强⼲扰的环境下或超出控制范围时会产⽣误动作的原因。尤其是在有同频⼲扰的情况下,模型往往会完全失控。
⼆、PPM协议
每⼀个遥控器通道都需要⼀个PWM采集器进⾏采集,但是对于STM32来说不可能使⽤多个定时器来采集多个通道的PWM,这对于STM32的资源来说⼗分浪费。因此采⽤的就是PPM编码。PPM编码是PWM的扩展协议,可以在⼀个管脚中传输多路PWM信号。
PPM协议只需要⼀根线就可以传输,避免了PWM需要多路才能传输多个通道的问题。下⾯是PPM协议的波形图:PPM协议最多传输20个通道,使⽤⼀个定时器就可以轻松解决了。
PPM协议最多传输20个通道,使⽤⼀个定时器就可以轻松解决了。
PPM的频率通常是50Hz,周期长度20ms,每⼀个周期中可以存放最多10路PWM信号,每⼀路PWM的周期为2ms,如下图所⽰:
使⽤STM32的管脚中断配合定时器中的计数可以准确的捕获⼀个周期内的PPM信号中的⾼低电平变化,每2ms就是⼀路PWM信号的周期。每个通道信号脉宽0~2ms,变化范围为1~2ms之间。1帧PPM信号长度为20ms,理论上最多可以有10个通道,但是同步脉冲也需要时间,模型遥控器最多9个通道。
PPM转PWM⽰例:支撑梁
PPM和PWM的对应关系如下图:
关闭起重装置
遥控接收器接收到遥控指令,输出PPM信号,PPM信号经过PPM解码电路输出8路PWM信号。
上图为多个通道的PWM信号通过PPM编码电路转化PPM信号输出。
三、S.BUS协议
S.BUS本质是⼀种串⼝通信协议,使⽤的是TTL电平的反向电平,即标准TTL中的1取反为0,⽽0则取反为1,采⽤100K的波特率,8位数据位,2位停⽌位,偶校验,即8E2的串⼝通信。
S.BUS是⼀个接收机串⾏总线输出,通过这根总线,可以获得遥控器上所有zhi通道的数据。⽬前很多模型及⽆⼈机电⼦设备都⽀持S.BUS总线的接⼊。使⽤SBUS总线获取通道数据,效率⾼的,⽽且节省硬件资源,只需要⼀根线即可获取所有通道的数据。
值得注意的有三点:
(⼀)S.BUS采⽤负逻辑,所以⽆论接收还是发送都要进⾏硬件取反(注意,⼀定要硬件取反),电路如下(这是⽹上看资料时看到的电路,实际上可以使⽤7404电路):
(⼆)S.BUS有两种模式:
a.⾼速模式:每4ms发送⼀次;
b.低速模式:每14ms发送⼀次。就是说每间隔4或者14ms这个串⼝就发送25个字节的数据,这25个字节的数据最多可以包含16个信息。
(三)100K的波特率不是标准波特率,⼀般串⼝⼯具都不能直接读取(所以不要直接⽤电脑调试,除⾮你的电脑写好了⾮标准串⼝),可以⽤单⽚机读取。
S.BUS具体协议的格式如下:
[数据头] [第⼀个字节] [第⼆个字节] ......[第⼆⼗⼆字节] [标志位] [数据尾];
数据头、标志位、数据尾不携带信息,⽽且数据头和数据尾是固定的,数据头=0x0f,数据尾=0x00;
数据头(1字节)+数据(22字节)+标志位(1字节)+数据尾(1字节)。
解释如下:
垂直风道机箱S.BUS⼀帧数据的长度为25个字节,其中:
第"0"个字节为帧头:0x0f;
第24个字节为帧尾:0x00;
从第1个字节到第22个字节为1-16号⽐例通道的数据字节;
第23字节中,第7位为数字开关通道17通道,第6位为数字开关通道18通道;第5位为帧状态标志为(判断是否丢帧),⽤于控制接收机上的LED的状态,第4位为失控保护激活标志位,此位为1时,表⽰接收机进⼊失控保护状态。
编解码C语⾔源码:
风扇转速测试编码原理:
⼀个信息是⼆进制的11bit,⽐如1111 1111 111就可以表⽰⼀个信息,⼀共16个这样的信息,按照顺序将这16个信息依次排成⼀串,得到⼀个176bit(11 *16)的数据,也就是22字节(176 / 8 = 22)的数据,再加上数据头数据尾校验位就组成了⼀个要通过串⼝传送的信息。每隔4或者14ms就传送⼀个这样的信息。所以这16个信息每⼀个所能表⽰的最⼤值是2^11 = 2048,也就是它的精度。
标志位
标志位的⾼四位有特殊含义,第四位并没有使⽤,依照我的理解,第七位和第六位表⽰两个数字通道(通道17和18)信息(就是只有⾼低电平的通道,⼀般⽤来控制通断或者某个电机简单的启动或者停⽌,⽐如1表⽰启动电机0表⽰停⽌电机),第五位表⽰帧丢失,接收机红⾊LED亮起,我的理解是,如果这⼀位为1,表⽰这⼀帧信号出问题了,接收机红⾊LED亮起。第四位表⽰故障保护激活,意思应该是说如果这⼀位为1,激活接收⽅故障保护。

本文发布于:2024-09-23 23:30:25,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/200089.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:通道   编码   信号   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议