介绍PWM、PPM、S | 您所在的位置:网站首页 › ppm和dppm什么区别 › 介绍PWM、PPM、S |
置顶公众号,不错过每一条消息! 公司同事之前购买了一个遥控器,当时主要是想用来遥控运动电机。我最近好奇,也去看了一下相关资料,并折腾了一下。 那个接收器就是用到了一个叫S-BUS的通信口(这里肯定有许多朋友都明白,就是飞行控制器上用的遥控)。因为想到那个S-BUS和PWM有一定的相关性,我就想着顺便写一点基础内容,让关注我的朋友涨一点知识(了解一下)。所以,就有了今天这一片文章。 1PWMPWM:Pulse Width Modulation,即脉冲宽度调制。 两个重要参数:脉冲宽度(就是如下图波形高电平时间),周期(周期x频率 = 1)。 关于PWM的内容,我这里不用多说,PWM是普遍学电子或底层编程的人都知道的一种信号。STM32可以产生PWM波形,也可以检测PWM波形。具体可以参看我的以前推送过的文章。 2PPMPPM:Pulse Position Modulation,即脉冲位置调制。 因为PWM处理简单,每条物理连线里只传输1路信号。换句话说,需要传输几个通道,就需要几组物理连线。 但在一些场合,我们并不需要直接驱动设备,而是需要先集中获取接收机的多个通道的值。所以,就衍生出了PPM,如下图: 简单来说,就是在一个周期内(20ms),传输多个不同的PWM信号,在每一个周期之间有一个间隔时间来分离。 因为每一帧信号的尾部必须加入一个足够长的空白(显著超过一个正常PWM信号的宽度)来分隔前后两个信号,每一帧能传输的信号通道最多只能到8个。这在大部分的场合已经足够了,且PPM是一个通行标准,绝大多数厂牌的遥控/接收都是支持的。 PPM通信协议: 高电平有效。 高电平电压:常见4.8~6V。 信号周期:24ms。 单个脉冲宽度:0.4ms 脉冲间距:0.9ms至2.1ms 3S-BUSS-BUS:Serial Bus,即串行总线。 简单来说S-BUS就是将PWM信号进行串行传输通信。 一个字节等于: 1个startbit + 8个数据位+ 1个奇偶校验位+ 2个停止位(8E2),波特率= 100'000 bit / s 最高位先发送。逻辑反转(Level High = 1) 一帧数据: 每帧25个字节,帧格式如下: [startbyte] [data1] [data2] .... [data22] [flags][endbyte] startbyte = 11110000b (0xF0) 数据1-22 = [ch1,11bit] [ch2,11bit] .... [ch16,11bit](ch#= 0 bis 2047) 通道1使用来自data1的8位和来自data2的3位 通道2使用最后5位来自data2和来自data3 等的6位 flags = bit7 = ch17 =数字通道(0x80) bit6 = ch18 =数字通道(0x40) bit5 =帧丢失,接收器上的等效红色LED(0x20) bit4 =故障保护激活(0x10) bit3 = n / a bit2 = n / a bit1 = n / a bit0 = n / a 两帧数据之间间隔时间: 高速模式:7ms 模拟模式:14ms S-BUS可以使用UART控制器来实现,网上有许多教程,感兴趣的朋友可以了解一下。 关于S-BUS的内容可以参看: https://os.mbed.com/users/Digixx/notebook/futaba-s-bus-controlled-by-mbed/ (提示:公众号不支持外链接,请复制链接到浏览器下载) 推荐阅读: 1.STM32四行【跳转程序】引申出来的几条重要知识点 2.MDK-ARM V5.26预览版更新的几条重要内容 3.精选汇总文章 4最后若觉得文章对你有帮助,记得点赞、分享。(一个赞代表一份认可) 扫描下面二维码、关注,在底部菜单中查看更多精彩内容! 长按识别图中二维码关注 赞赏是对作者的认可与支持! |
CopyRight 2018-2019 实验室设备网 版权所有 |