公司同事之前購買了一個遙控器,當時主要是想用來遙控運動電機。我最近好奇,也去看了一下相關資料,并折騰了一下。
那個接收器就是用到了一個叫S-BUS的通信口(這里肯定有許多朋友都明白,就是飛行控制器上用的遙控)。因為想到那個S-BUS和PWM有一定的相關性,我就想著順便寫一點基礎內容,讓關注我的朋友漲一點知識(了解一下)。所以,就有了今天這一片文章。
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/

-
接收器
+關注
關注
15文章
2644瀏覽量
77119 -
PWM
+關注
關注
116文章
5869瀏覽量
225600 -
PPM
+關注
關注
0文章
47瀏覽量
17905
發布評論請先 登錄
三防漆與灌封膠區別及協同保護方案 | 電子元器件雙重防護指南 | 東莞 鉻銳特實業
淺談2D封裝,2.5D封裝,3D封裝各有什么區別?
為什么高速信號鏈路 = 芯片 + PCB + 極細同軸線束三者匹配?
自動控制系統中什么叫開環控制,半閉環控制,閉環控制?三者有何區別?
舵機PWM信號介紹!
正確選擇透射電鏡的不同模式——TEM,HRTEM,HAADF-STEM
介紹PWM、 PPM、S-BUS這三者的區別
評論