PWM、PPM、S-BUS这三种信号的区别

2024-01-28 06:59
文章标签 三种 区别 bus 信号 pwm ppm

本文主要是介绍PWM、PPM、S-BUS这三种信号的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关注、星标公众,不错过精彩内容

编辑整理:strongerHuang

最近有朋友问过相关问题,我之前也研究过遥控器里面的S-BUS信号。这几种信号在实际应用中比较常见,所以今天再次分享一下。

1PWM

PWM:Pulse Width Modulation,即脉冲宽度调制。

两个重要参数:脉冲宽度(就是如下图波形高电平时间),周期(周期x频率 = 1)。

关于PWM的内容,我这里不用多说,PWM是普遍学电子或底层编程的人都知道的一种信号。STM32可以产生PWM波形,也可以检测PWM波形。具体可以参看我的以前推送过的文章。

2PPM

PPM:Pulse Position Modulation,即脉冲位置调制。

因为PWM处理简单,每条物理连线里只传输1路信号。换句话说,需要传输几个通道,就需要几组物理连线。

但在一些场合,我们并不需要直接驱动设备,而是需要先集中获取接收机的多个通道的值。所以,就衍生出了PPM,如下图:

简单来说,就是在一个周期内(20ms),传输多个不同的PWM信号,在每一个周期之间有一个间隔时间来分离。

因为每一帧信号的尾部必须加入一个足够长的空白(显著超过一个正常PWM信号的宽度)来分隔前后两个信号,每一帧能传输的信号通道最多只能到8个。这在大部分的场合已经足够了,且PPM是一个通行标准,绝大多数厂牌的遥控/接收都是支持的。

PPM通信协议:

  • 高电平有效。

  • 高电平电压:常见4.8~6V。

  • 信号周期:24ms。

  • 单个脉冲宽度:0.4ms

  • 脉冲间距:0.9ms至2.1ms

3S-BUS

S-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/

提示:公众号不支持外链接,请复制链接到浏览器下载)

推荐阅读:

电感这些细节,你知道吗?

视频 | 三相电基础知识及工作原理

电器上的这些符号有什么特别含义?

关注微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。

长按前往图中包含的公众号关注

这篇关于PWM、PPM、S-BUS这三种信号的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/652838

相关文章

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

全屋WiFi 7无死角! 华硕 RP-BE58无线信号放大器体验测评

《全屋WiFi7无死角!华硕RP-BE58无线信号放大器体验测评》家里网络总是有很多死角没有网,我决定入手一台支持Mesh组网的WiFi7路由系统以彻底解决网络覆盖问题,最终选择了一款功能非常... 自2023年WiFi 7技术标准(IEEE 802.11be)正式落地以来,这项第七代无线网络技术就以超高速

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

解读@ConfigurationProperties和@value的区别

《解读@ConfigurationProperties和@value的区别》:本文主要介绍@ConfigurationProperties和@value的区别及说明,具有很好的参考价值,希望对大家... 目录1. 功能对比2. 使用场景对比@ConfigurationProperties@Value3. 核

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R