[发明专利]一种半双工总线的通信方法、系统、装置及可读存储介质有效
申请号: | 201811577811.2 | 申请日: | 2018-12-20 |
公开(公告)号: | CN109495215B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 刘广卫;姚周军;李伟;王言卓;杨鹏 | 申请(专利权)人: | 山东比特智能科技股份有限公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00;H04L5/00;H04L5/16 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 276800 山东省日*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 双工 总线 通信 方法 系统 装置 可读 存储 介质 | ||
本申请公开了一种半双工总线的通信方法,半双工总线上设有多台设备,每台设备均执行以下步骤:获取避让时间;向半双工总线发送数据包;每隔避让时间,向半双工总线重新发送数据包;其中,每台设备的避让时间均不相同。采用本申请的方案,对于设有多台非实时性设备的半双工总线,当其上某一设备向半双工总线发送数据包时,即使数据包发出后有碰撞,由于各台设备的避让时间不同,该设备重发的数据包也会避开冲突,解决了非实时性设备向半双工总线发送数据时出现数据碰撞从而产生错误数据的问题,且本申请不需要修改硬件以及添加转换芯片,成本较低。本申请还公开了一种半双工总线的通信系统、装置及可读存储介质,具有上述有益效果。
技术领域
本申请涉及非实时系统领域,特别是涉及一种半双工总线的通信方法、系统及相关装置。
背景技术
Linux系统本身为非实时系统,串口为全双工工作方式,可以同时发送和接收数据,数据从应用层发送到硬件电路,需要通过内核的多次处理,对于开发者而言,无法精确的掌握数据发送的时间。RS485总线为半双工工作方式,同一时间只能进行数据发送,或者数据接收。随着产业的发展,Linux的应用越来越广泛,在实际应用中,会使用Linux系统设备与单片机设备进行连接,如果通过RS485总线进行通讯,由于Linux系统的非实时性,在Linux系统设备发送数据时,可能会与单片机设备发送的数据在RS485总线上产生碰撞,从而导致错误数据的产生,而且存在的Linux设备越多的情况下,出现问题的概率会加大。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本申请的目的是提供一种半双工总线的通信方法,解决了非实时性设备向半双工总线发送数据时出现数据碰撞从而产生错误数据的问题,且本申请不需要修改硬件以及添加转换芯片,成本较低;本申请的另一目的是提供一种半双工总线的通信系统、装置及可读存储介质。
为解决上述技术问题,本申请提供了一种半双工总线的通信方法,所述半双工总线上设有多台设备,每台所述设备均执行以下步骤:
获取避让时间;
向所述半双工总线发送数据包;
每隔所述避让时间,向所述半双工总线重新发送所述数据包;
其中,每台所述设备的避让时间均不相同。
优选的,所述数据包中包括序列号;
该通信方法还包括:
根据接收到的数据包中的序列号,判断是否接收过与所述序列号相同的数据包;
若是,则丢弃所述接收到的数据包;
若否,则对所述接收到的数据包进行解析和处理。
优选的,所述获取避让时间的过程具体为:
通过半双工串口波特率及半双工总线数据协议的长度计算所述半双工总线的空闲时间;
根据所述空闲时间得到避让时间。
优选的,所述对所述接收到的数据包进行解析和处理的过程具体为:
校验所述接收到的数据包,对校验成功的数据包进行解析和处理。
优选的,所述半双工总线为RS485总线。
为解决上述技术问题,本申请还提供了一种半双工总线的通信系统,所述半双工总线上设有多台设备,每台所述设备均包括:
获取模块,用于获取避让时间,其中,每台所述设备的避让时间均不相同;
发送模块,用于向所述半双工总线发送数据包;还用于每隔所述避让时间,向所述半双工总线重新发送所述数据包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东比特智能科技股份有限公司,未经山东比特智能科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811577811.2/2.html,转载请声明来源钻瓜专利网。