SBUS2 协议初探
SBUS2和SBUS的區別。
?
1:總線類型不一樣。sbus是單向傳輸,只做控制使用,不做輸入。SBUS2是非標準的雙向總線,可以做控制輸出,也可以做信息輸入。
2:結束符不一樣。SBUS結束符為00。而sbus2的結束符為:0x14,0x24,0x34,0x44? 循環。
3:SBUS2和sbus的硬件電路不一樣。sbus2的傳感器不能掛載到SBUS的總線上,否則會燒壞。
從硬件上看,SBUS3與SBUS一樣,都是反相的串口數據,但是SBUS2有接收,是個半雙工的雙向口.但是futaba并沒有公開數據協議,屬于專有協議,并不通用.所以我們需要購買標準的sbus2的傳感器。如溫度傳感器SB-01TE為溫度傳感器。SB-01V為電壓傳感器。SB-02RM為電機轉速傳感器。這些都是可以用來把飛控端的數據傳到遙控器上的。類似于地面站功能。也可以通過逆推猜測具體的數據格式.自己采集數據以SBUS2格式回傳,就能在遙控器上顯示.
SBUS 是一個 25 字節的幀
字節 [0] 為 0x0F
字節 [1-22] 是伺服通道數據
字節 [23] 是數字通道 17和18 + 狀態位
字節 [24] 為 0x00
SBUS(2) 為 100000 波特率,具有 8 個數據位、偶校驗和 2 個停止位 的反相串口信號.
SBUS(2) 電平電壓為 3,3V -> 不要使用 5V 電平信號!
從數據結構上看,SBUS2 是一個 SBUS 幀,但具有不同的結束字節 (Byte24) 字節 [24] 為 0x04、0x14、0x24、0x34
字節 24 為遙測數據通道指示:
0x04 -> 通道 0 到通道 7
0x14 -> 通道 8 到通道 15
0x24 -> 通道?16 到通道 23
0x34 -> 通道 24 到通道 31
具體哪個通道對應于哪個傳感器是可以設置的.但有些傳感器數據占用 1 個通道,有些傳感器占用 3個 甚至 8 個數據通道。 在接收到 SBUS 幀后,可以傳輸 8 個遙測數據通道。 共有 32 個不同的遙測數據通道可用。
例如:
數據通道0 始終是 RX 電壓(接收機電壓)-> 因此您不能將通道 0 用于自定義傳感器
所以你還有 7 個數據通道可以分配(數據通道?1 到數據通道 7) 所以您不能在通道 1 上使用 8 數據通道的傳感器 (GPS)! GPS 必須位于通道8、通道16 或 通道24 .
在數據通道 1 上,您可以設置一個溫度傳感器(1 個數據通道的傳感器) 在數據 2 上,您可以設置一個 RPM 傳感器(1 個通道傳感器) 在插槽 3 上,您可以設置功率傳感器(3 數據通道傳感器) 功率傳感器使用數據通道 3、數據通道 4 和數據通道 5(3 個通道!) 下一個空閑通道將是通道 6 ,而通道 6 不能再設置為功率傳感器,因為此幀數據您只有 2 個空閑通道!
Futaba 遙測協議有非常嚴格的時序:
測控數據幀0 必須在 SBUS(2) 幀的最后一個字節后 2ms 發送
測控數據幀8、測控數據幀16 和測控數據幀 24 相同 每個數據通道之后必須有 325μs 暫停到下一個數據通道 所以你必須在 UART 中斷中接收 SBUS 幀 .而且對于幀的最后一個字節,您必須啟動計時器?進行2ms延時.? 對于每個定時器中斷,您必須將下一個定時器中斷設置為 660μs 如果 Timer 不能工作在這種模式下,則無法進行通道數據傳輸
最好有一個邏輯分析儀或示波器以助于調試.
參考資料:
GitHub - BrushlessPower/SBUS2-Telemetry: Arduino Library for SBUS and SBUS2 with Futaba Telemetry?GitHub在國內經常不能正常使用,搬到CSDN存一份檔吧.
SBUS2遙測控制,SBUS2數據打包-Android文檔類資源-CSDN下載
總結
以上是生活随笔為你收集整理的SBUS2 协议初探的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何下载省市县行政区划及乡镇边界
- 下一篇: 基于ubuntu13.04搜狗输入法安装