PWM、PPM、S-BUS這幾種信號在通信領域應用中比較常見,你了解多少,下面為大家解析一下。
1
PWM
PWM:Pulse Width Modulation,即脈沖寬度調制。
兩個重要參數:脈沖寬度(就是如下圖波形高電平時間),周期(周期x頻率 = 1)。
關于PWM的內容,我這里不用多說,PWM是普遍學電子或底層編程的人都知道的一種信號。現在很多MCU都可以產生PWM波形,也可以檢測PWM波形。具體可以參看我的以前推送過的文章。
2
PPM
PPM:Pulse Position Modulation,即脈沖位置調制。
因為PWM處理簡單,每條物理連線里只傳輸1路信號。換句話說,需要傳輸幾個通道,就需要幾組物理連線。
但在一些場合,我們并不需要直接驅動設備,而是需要先集中獲取接收機的多個通道的值。所以,就衍生出了PPM,如下圖:
簡單來說,就是在一個周期內(20ms),傳輸多個不同的PWM信號,在每一個周期之間有一個間隔時間來分離。
因為每一幀信號的尾部必須加入一個足夠長的空白(顯著超過一個正常PWM信號的寬度)來分隔前后兩個信號,每一幀能傳輸的信號通道最多只能到8個。這在大部分的場合已經足夠了,且PPM是一個通行標準,絕大多數廠牌的遙控/接收都是支持的。
PPM通信協議:
高電平有效。
高電平電壓:常見4.8~6V。
信號周期:24ms。
單個脈沖寬度:0.4ms
脈沖間距:0.9ms至2.1ms
3
S-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)
bit4 =故障保護激活(0x10)
bit3 = n / a?
bit2 = n / a?
bit1 = n / a?
bit0 = n / a
兩幀數據之間間隔時間:
高速模式:7ms
模擬模式:14ms
S-BUS可以使用UART控制器來實現,網上有許多教程,感興趣的朋友可以了解一下。
評論
查看更多