關于遙控器與無人機的通信協(xié)議也有很多種,常見的數(shù)據(jù)協(xié)議如下:1.pwm:需要在接收機上接上全部pwm輸出通道,每一個通道就要接一組線,解析程序需要根據(jù)每一個通道的pwm高電平時長計算通道數(shù)值。 2.ppm:按固定周期發(fā)送所有通道pwm脈寬的數(shù)據(jù)格式,一組接線,一個周期內發(fā)送所有通道的pwm值,解析程序需要自行區(qū)分每一個通道的pwm時長。 3.sbus:每11個bit位表示一個通道數(shù)值的協(xié)議,串口通信,但是sbus的接收機通常是反向電平,連接到無人機時需要接電平反向器,大部分支持sbus的飛行控制板已經集成了反向器,直接將以舊換新機連接到飛行控制器即可。 4.xbus:常規(guī)通信協(xié)議,支持18個通道,數(shù)據(jù)包較大,串口通信有兩種模式,可以在遙控器的配置選項中配置。接收機無需做特殊配置。
1
SBUS協(xié)議說明 SBUS本質是一種串口通信協(xié)議,采用100K的波特率,8位數(shù)據(jù)位,兩位停止位,偶效驗,即8E2的串口通信。 SBUS是一bai個接收機串行總線du輸出,通過這根總線,可以獲得遙控器上所有zhi通道的數(shù)據(jù)。目前很多模型及無人機電子設備都支持SBUS總線的接入。使用SBUS總線獲取通道數(shù)據(jù),效率高的,而且節(jié)省硬件資源,只需要一根線即可獲取所有通道的數(shù)據(jù)。 SBUS總線使用的是TTL電平的反向電平,即標準TTL中的1取反為0,而0則取反為1,串口波特率為100000,數(shù)據(jù)位為8位,2個停止位,偶校驗。 SBUS一幀數(shù)據(jù)的長度為25個字節(jié),其中第"0"個字節(jié)為幀頭:0x0f;第24個字節(jié)為幀尾:0x00;從第1個字節(jié)到第22個字節(jié)為1-16號比例通道的數(shù)據(jù)字節(jié);第23字節(jié)中,第7位為數(shù)字開關通道17通道,第6位為數(shù)字開關通道18通道。 第5位為幀狀態(tài)標志為(判斷是否丟幀),用于控制接收機上的LED的狀態(tài),第4位為失控保護激活標志位,此位為1時,表示接收機進入失控保護狀態(tài)。 值得注意的有三點:1.SBUS采用負邏輯,所以無論接收還是發(fā)送都要進行硬件取反(注意,一定要硬件取反),電路如下
這是我在網上看資料時看到的電路,實際上我用的是7404電路 2.SBUS有兩種模式,a.高速模式:每4ms發(fā)送一次 b.低速模式:每14ms發(fā)送一次 就是說每間隔4或者14ms這個串口就發(fā)送25個字節(jié)的數(shù)據(jù),這25個字節(jié)的數(shù)據(jù)最多可以包含16個信息3.100K的波特率不是標準波特率,一般串口工具都不能直接讀取(所以不要直接用電腦調試,除非你的電腦寫好了非標準串口),可以用單片機讀取。
strongerHuang
2
具體協(xié)議的格式
[數(shù)據(jù)頭] [第一個字節(jié)] [第二個字節(jié)] ......[第二十二的字節(jié)] [標志位] [數(shù)據(jù)尾] 數(shù)據(jù)頭、標志位、數(shù)據(jù)尾 不攜帶信息,而且數(shù)據(jù)頭和數(shù)據(jù)尾是固定的,數(shù)據(jù)頭=0x0f; 數(shù)據(jù)尾=0x00; 數(shù)據(jù)頭(1字節(jié))+數(shù)據(jù)(22字節(jié))+標志位(1字節(jié))+數(shù)據(jù)尾(1字節(jié))
strongerHuang
3
編碼解碼
1.編碼原理一個信息是二進制的11bit,比如1111 1111 111就可以表示一個信息,一共16個這樣的信息,按照順序將這16個信息依次排成一串,得到一個176bit(11 *16)的數(shù)據(jù),也就是22字節(jié)(176 / 8 = 22)的數(shù)據(jù),再加上數(shù)據(jù)頭數(shù)據(jù)尾校驗位就組成了一個要通過串口傳送的信息。每隔4或者14ms就傳送一個這樣的信息。 所以這16個信息每一個所能表示的最大值是2^11 = 2048,也就是他的精度。2.標志位標志位的高四位有特殊含義,第四位并沒有使用,依照我的理解,第七位和第六位表示兩個數(shù)字通道(通道17和18)信息(就是只有高低電平的通道,一般用來控制通斷或者某個電機簡單的啟動或者停止,比如1表示啟動電機0表示停止電機),第五位表示幀丟失,接收機紅色LED亮起,我的理解是,如果這一位為1,表示這一幀信號出問題了,接收機紅色LED亮起。第四位表示故障保護激活,意思應該是說如果這一位為1,激活接受方故障保護。 bit7 = ch17 = digital channel (0x80)
bit6 = ch18 = digital channel (0x40)
bit5 = Frame lost, equivalent red LED on receiver (0x20)
bit4 = failsafe activated (0x10)
bit3 = n/a
bit2 = n/a
bit1 = n/a
bit0 = n/a
責任編輯:xj
原文標題:SBUS協(xié)議及編解碼
文章出處:【微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
-
mcu
+關注
關注
146文章
17841瀏覽量
360504 -
協(xié)議
+關注
關注
2文章
614瀏覽量
39830 -
編解碼
+關注
關注
1文章
145瀏覽量
20006 -
無人機
+關注
關注
230文章
10737瀏覽量
185558
原文標題:SBUS協(xié)議及編解碼
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
基于RK3576的BASE64編解碼

請問有沒有將音頻編解碼后的數(shù)字信號用UART傳輸?shù)男酒?/a>
AIC3106編解碼以后沒有聲音了,這是什么原因呢?
遙控編解碼芯片有哪些
【飛凌嵌入式OK527N-C開發(fā)板體驗】3.鼠標+硬件編解碼+音頻播放器
使用cubeide進行debug能看到編解碼后的數(shù)據(jù),但是PC端輸出的audio文件卻是空文件,為什么?
帶你探索HiFi智能編解碼器的奇妙世界

評論