System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,特别涉及一种rs-485总线主机通讯方法。本申请同时涉及一种rs-485总线主机通讯装置、一种计算设备,以及一种计算机可读存储介质。
技术介绍
1、传统485总线中,存在一个主节点和多个从节点。通讯由主节点发起,从节点接收到命令后,根据接收到的数据信息决定是否获取总线控制权,得到控制权的从节点向总线发送数据,发送结束后将控制权交还给主节点。只有主节点询问从节点时,从节点才具有发送数据权限,其余时间从无法发送任何数据,故传统485总线轮询系统不具备数据传输实时性的特点。
2、485总线通信挂载有若干设备,按传统的主从模式用主机进行轮询,则挂载的设备越多,数据刷新的频率就越小,对实时性高的数据,主机并不能得到及时更新。故此通过多主机自由切换发送数据方式,可实现实时性的保障,但由于总线是半双工机制,决定了同一时刻只能有一台主机进行数据传输,若多个设备同时主动上报数据,则会产生多设备竞争发送数据的情况。
3、传统的多主机自由切换发送数据方式,仅能检测总线冲突,不能主动避让,一旦冲突需要重新竞争;而改进的半竞争式rs-485总线多主通讯系统,则采用同或逻辑门、双路d型上升沿触发器、或门电路等进行硬件冲突检测的方式进行冲突规避,虽解决了传统多主机自由切换发送数据方式的弊端,但则需要多增加4个独立分立器件,硬件成本高,并且随着分立器件数的增加,加工及故障点会变多,后期的维护保养成本也会增加。
技术实现思路
1、有鉴于此,本申请实施例提供了一种rs-485总
2、根据本申请实施例的第一方面,提供了一种rs-485总线主机通讯方法,包括:
3、s102:切换目标rs-485总线上的目标主机至从机模式;
4、s104:通过所述目标主机上布置的微控制器查询所述目标rs-485总线的状态,当所述目标rs-485总线为空闲状态的情况下,切换所述目标主机至主机模式;
5、s106:通过所述目标主机向所述目标rs-485总线,以单字节形式发送目标数据,并接收所述目标rs-485总线反馈的单字节形式的反馈数据;
6、s108:判断所述目标数据与所述反馈数据是否相同;若是,执行s106,直至所述目标数据全部发送完成后,执行s102;若否,执行预设的随机避退事件,直至所述随机避退事件完成,执行s104。
7、可选地,还包括:
8、s103:查询所述目标主机,判断所述目标主机的上报数据事件标志是否置位;
9、s1031:根据s103中的判断结果,若是,清除所述上报数据事件标志,并执行s104;若否,执行s103。
10、可选地,所述s104包括:
11、s1041:通过所述微控制器查询所述目标rs-485总线,判断所述目标rs-485总线的485总线空闲标志是否置位;
12、s1042:根据s1041中的判断结果,若是,清除所述485总线空闲标志,切换所述目标主机至主机模式,并执行s106;若否,执行s1041。
13、可选地,所述s108中,所述执行s106,直至所述目标数据全部发送完成后,执行s102包括:
14、s1081:查询所述目标主机,判断所述目标主机的发送数据完成标志是否置位;
15、s1082:根据s1081中的判断结果,若是,执行s102;若否,执行s106。
16、可选地,所述s106包括:
17、s1061:通过所述目标主机向所述目标rs-485总线,以单字节形式发送所述目标数据,并且当任意单字节形式的所述目标数据被发送至所述目标rs-485总线,执行s1062;
18、s1062:查询所述目标主机的接收单字节标志,并判断所述接收单字节标志是否置位;
19、s1063:根据s1062中的判断结果,若是,执行s108;若否,执行s1062。
20、可选地,所述s108中,所述执行预设的随机避退事件,直至所述随机避退事件完成,执行s104包括:
21、切换所述目标主机至从机模式,在预设的时间区间进行随机选取,确定目标时间间隔;
22、基于所述目标时间间隔,执行所述随机避退事件,直至所述随机避退事件完成,执行s104。
23、可选地,所述s106中,以单字节形式发送目标数据包括:
24、在所述目标数据待发送的目标子数据前端添加帧头,其中,所述帧头包括固定头、缓冲段;
25、可选地,所述判断所述目标数据与所述反馈数据是否相同包括:
26、对比所述目标数据的帧头与所述反馈数据的帧头,根据对比结果判断所述目标数据与所述反馈数据是否相同。
27、根据本申请实施例的第二方面,提供了一种rs-485总线主机通讯装置,包括:
28、切换模块,被配置为切换目标rs-485总线上的目标主机至从机模式;
29、查询模块,被配置为通过所述目标主机上布置的微控制器查询所述目标rs-485总线的状态,当所述目标rs-485总线为空闲状态的情况下,切换所述目标主机至主机模式;
30、发送模块,被配置为通过所述目标主机向所述目标rs-485总线,以单字节形式发送目标数据,并接收所述目标rs-485总线反馈的单字节形式的反馈数据;
31、判断模块,被配置为判断所述目标数据与所述反馈数据是否相同;若是,调用所述发送模块,直至所述目标数据全部发送完成后,调用所述切换模块;若否,执行预设的随机避退事件,直至所述随机避退事件完成,调用所述查询模块。
32、根据本申请实施例的第三方面,提供了一种计算设备,包括:
33、存储器和处理器;
34、所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现所述rs-485总线主机通讯方法的步骤。
35、根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述rs-485总线主机通讯方法的步骤。
36、根据本申请实施例的第五方面,提供了一种芯片,其存储有计算机程序,该计算机程序被芯片执行时实现所述rs-485总线主机通讯方法的步骤。
37、本申请提供的rs-485总线主机通讯方法,通过s102:切换目标rs-485总线上的目标主机至从机模式;s104:通过所述目标主机上布置的微控制器查询所述目标rs-485总线的状态,当所述目标rs-485总线为空闲状态的情况下,切换所述目标主机至主机模式;s106:通过所述目标主机向所述目标rs-485总线,以单字节形式发送目标数据,并接收所述目标rs-485总线反馈的单字节形式的反馈数据;s108:判断所述目标数据本文档来自技高网...
【技术保护点】
1.一种RS-485总线主机通讯方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述S104之前,还包括:
3.根据权利要求1所述的方法,其特征在于,所述S104,包括:
4.根据权利要求1所述的方法,其特征在于,所述S108中,所述执行S106,直至所述目标数据全部发送完成后,执行S102,包括:
5.根据权利要求1所述的方法,其特征在于,所述S106,包括:
6.根据权利要求1所述的方法,其特征在于,所述S108中,所述执行预设的随机避退事件,直至所述随机避退事件完成,执行S104,包括:
7.根据权利要求1所述的方法,其特征在于,所述S106中,以单字节形式发送目标数据,包括:
8.一种RS-485总线主机通讯装置,其特征在于,包括:
9.一种计算设备,其特征在于,包括:
10.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至7任意一项所述的方法的步骤。
【技术特征摘要】
1.一种rs-485总线主机通讯方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述s104之前,还包括:
3.根据权利要求1所述的方法,其特征在于,所述s104,包括:
4.根据权利要求1所述的方法,其特征在于,所述s108中,所述执行s106,直至所述目标数据全部发送完成后,执行s102,包括:
5.根据权利要求1所述的方法,其特征在于,所述s106,包括:
6.根据权利要求1所述的方...
【专利技术属性】
技术研发人员:余俊儒,徐祖泉,罗涛,黄小金,曾学林,
申请(专利权)人:成都阶跃时进科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。