SBUS调试助手 sbus解析,sbus协议

最近在做一个无人机用的四路的开关,即航模遥控器PWM信号控制四路继电器.设计硬件的时候专门用了一路可以配置成串口输入的管脚,外部加了一路施密特反相器.其实主要是滤波防止信号抖动,当然私心就是后续可以接SBUS信号.

 

接触航模遥控器时间挺长了,而SBUS信号几年前就想研究,后来因故放下了.最近要调试SBUS,却一时觉得难以捉摸.网上STM32解析SBUS的程序倒是一大把,也借了套futaba的遥控器和接收机,但一直心里没底,毕竟PWM信号可以拿示波器直接看波形,SBUS信号是数字信号,而我手边又没有逻辑分析仪,看不到原始信号,写解析程序等于瞎猜吧.网上倒是有sbus调试工具,某宝上SBUS转USB串口的模块带软件得百十块,看得人肉疼!

SBUS转串口的硬件也有,很多年之前做过,但是后来没顾上用就放起来了,于是翻出来..

2018年,嗯,放得有点久了...焊上连接器,接上USB转串口模块,网上下载个能设置非标准波特率的串口调试助手,设置100K的波特率,8位数据位,两位停止位,偶效验,竟然把 0x0F 开头,0x00结尾的25个字节数据接收到了,但具体内容是啥,呵呵,看不懂. 

好在哥会的多,不就是串口通讯么,当年公司没有搞上位机软件的工程师,我也硬着头皮学过delphi写过串口程序.于是祭出压箱底的Delphi7,下载个SPComm应用的demo(SCOMM),然后一边在CSDN查资料一边写.一两周时间竟然给搞出来了.

串口号需要设置,其他波特率停止位之类都已经设置好了.接收SBUS的话可以直接用.最大/最小值是设置进度条范围的,毕竟SBUS理论上的0-2047不是都能用得到,这样的话杆量也就是比例就不准确了,在串口未打开时将用到的行程最小值及最大值填入(串口打开后最小值最大值锁定不允许修改).比例及位置显示的是限制最大最小值之后的比例.也是方便调试.

其实我还想把SBUS数据生成发送做上,但是还没有构思好怎么处理那么多的控件事件,或许可以跟发送一样,在定时器中断中用控件数组的方式集中处理...

先放出来一版大家用用提提问题吧.

上干货吧,源代码:

SBUS调试助手(含delphi源码).rar-Delphi文档类资源-CSDN下载

也不知道还有没有人跟我一样还在用着delphi.

至于软件中的那个广告链接,生活不易啊亲.

软件广告中的SBUS转USB模块,我会尽快做出来的....

后续情况,SBUS转USB,USB转SBUS输出的模块做好了,U盘大小,加了个漂亮的外壳。

软件也重新编写升级,上半部是SBUS输入显示,下半部是模拟SBUS输出的控制界面。使用时先设置好最大最小值,如果接舵机不要别舵了。

模块购买地址: 

https://item.taobao.com/item.htm?spm=a1z10.3-c.w4023-23462173034.2.79cd40abaOesza&id=677277440031icon-default.png?t=M666https://item.taobao.com/item.htm?spm=a1z10.3-c.w4023-23462173034.2.79cd40abaOesza&id=677277440031

附:sbus数据格式及转换  

SBUS协议及编解码SBUS协议及编解码 - 灰信网(软件开发博客聚合)

Futaba S-BUS controlled by mbed(使用mbed控制Futaba S-BUS)_廖昌海的博客-CSDN博客IntroductionThe Futaba S-BUS protocol is a serial protocol to control servos. Up to 16 proportional and two digital channels are available. The protocol is derived from the very known RS232 protocol ushttps://blog.csdn.net/hxiaohai/article/details/53517560一文打尽PWM协议、PPM协议、PCM协议、SBUS协议、XBUS协议、DSM协议 | STM32的通用定时器TIM3实现PPM信号输出 - 蔡子CaiZi - 博客园

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
SBus是一种数字串行总线通信协议,常用于遥控器和飞行控制器之间的数据传输。SBus串口数据解析是指将通过SBus协议传输的数据换为串口数据,并进行解析以获取所需的控制信号和状态信息。 SBus协议的数据传输是通过数据包进行的。每个数据包包含16个通道信息、2个辅助功能信号和1个帧头、帧尾标志位。在数据包传输过程中,每个通道信息采用11位的二进制编码,代表了对应通道的控制信号值。 将SBus换为串口数据的过程一般通过硬件设备实现。首先,需要将SBus信号经过换电路换为串口的逻辑电平。接着,将换后的信号通过串行通信接口发送到接收端。 在接收端,通过串口接收数据后,对串口数据进行解析解析的过程包括找到帧头和帧尾标志位,并依次读取每个通道信息的二进制编码。对于每个通道信息,可以根据SBus协议的规定来进行解析,将其换为对应的控制信号值。辅助功能信号也可以通过相应的解析方法获取。 通过SBus串口数据解析,我们可以获取到来自遥控器的各个通道的控制信号值,如油门、方向舵、升降舵等,同时还可以获得辅助功能信号的状态,如飞行模式切换、超过控制范围等信息。 总的来说,SBus串口数据解析是将使用SBus协议进行数据传输的信号换为串口数据,并通过解析获取其中的控制信号和状态信息的过程。这种数据解析在遥控器和飞行控制器等系统中具有重要的应用价值。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值