掌桥专利:专业的专利平台
掌桥专利
首页

一主多从通讯总线系统下的高效通讯方法

文献发布时间:2024-04-18 20:01:30


一主多从通讯总线系统下的高效通讯方法

技术领域

本发明涉及总线通讯技术领域,具体涉及一主多从通讯总线系统下的高效通讯方法。

背景技术

由于通讯总线具有成本低廉、布线简单等优势,在各行业应用得到快速广泛的应用。但是随着总线通讯技术在在各行各业大量应用也暴露出很多缺陷。其中随着总线设备点数增加,总线通讯效率变的极低,数据刷新率低是普遍且非常严重的问题。

目前一主多从总线系统中,由于总线同一时段只能有一个设备能向总线发送数据,数据获取不得不使用轮询方式,主设备使用一问一答依次询问总线上所有从设备的设备数据。此方式虽能解决总线冲突问题,但由于交互次数太多,大大降低总线有效数据量,降低了系统通讯效率和数据实时性。

也有使用仲裁功能总线方案,从设备直接主动上报方案。但不仅会增加成本,而且极端情况下仲裁失效,总线发生数据冲突,导致上报数据丢失。

发明内容

本发明目的在于提供一主多从通讯总线系统下的高效通讯方法,本发明在不改变原有通讯方式的情况下,通过更改主从设备交互方式,大大减少系统通讯交互次数,提高总线通讯效率;本发明解决总线通讯应用中,获取所有从设备数据周期耗时太长,系统数据响应实时性低的问题。

本发明通过下述技术方案实现:

一主多从通讯总线系统下的高效通讯方法,该方法包括:

主设备使用广播地址下发广播查询命令包,广播查询命令包包括广播地址、响应地址标识、延时参数和查询功能码;

从设备收到主设备下发的广播查询命令包后,立即记录接收时间戳,并将接收时间戳作为延时起点;

各从设备根据广播查询命令包中的响应地址标识和本从设备配置的设备地址,判断是否需要响应广播查询命令包;

若判断为需要响应,则根据收到的延时参数和本从设备配置的设备地址在响应地址标识的序号计算延时时间;并在延时起点加上延时时间时刻,根据查询功能码响应主设备需要的查询结果,通过通讯总线发送到主设备;

若判断为无需响应,则忽略广播查询命令包。

本发明在不改变原有一主多从总线通讯系统结构的前提下,通过使用主设备发送广播查询命令。从设备收到后根据下发的广播命令中的延时参数和自身配置的设备地址,延时不同的时间后再响应查询命令。本发明方式优化通讯交互逻辑,减少交互次数和单独等待时间,从而提高通讯效率和系统数据响应实时性。

进一步地,主设备发送广播查询命令包后,开始等待所有需响应从设备的数据;在最大等待时间内,收到所有所需响应从设备的数据后结束操作。

进一步地,最大等待时间是根据所有查询从设备的数量总数和延时时间计算出总查询等待的返回时间。

进一步地,响应地址标识为从设备是否需要执行本条广播查询命令的依据;能减少不必要的从设备响应。响应地址标识通过一bit位来表示一个从设备地址,当从设备的响应地址标识对应位为1时,则表示需要该从设备执行本条广播查询命令;否则为0表示该从设备无需执行本条广播查询命令。

进一步地,延时参数为单个从设备执行本条查询命令以及返回数据预估总耗时间;延时参数根据查询功能码配置,为不同的查询功能码配置不同延时参数或相同参数。

进一步地,查询功能码为从设备执行何种响应操作的依据,以区分不同的查询命令。

进一步地,根据收到的延时参数和本从设备配置的设备地址在响应地址标识的序号计算延时时间,具体为:

将收到的延时参数乘以本从设备配置的设备地址在响应地址标识的序号得到的乘积作为延时时间。

进一步地,广播地址为一个所有从设备都关注的地址号。

进一步地,广播查询命令包还包括校验码,校验码为对本条广播查询命令的数据完整性保证,通过通用的数据校验算法进行数据校验。

进一步地,该方法不需改变原有一主多从总线通讯系统结构。

本发明与现有技术相比,具有如下的优点和有益效果:

1、本发明一主多从通讯总线系统下的高效通讯方法,本发明在不改变原有一主多从总线通讯系统结构的前提下,通过使用主设备发送广播查询命令。从设备收到后根据下发的广播命令中的延时参数和自身配置的设备地址,延时不同的时间后再响应查询命令。本发明方式优化通讯交互逻辑,减少交互次数和单独等待时间,从而提高通讯效率和系统数据响应实时性。

2、本发明一主多从通讯总线系统下的高效通讯方法,通过主设备广播查询,从设备以接收时刻为起点延时不同时间返回执行结果的方案,避免总线数据冲突,大大减少了总线交互次数,极大提高了总线系统数据实时性。在未提高成本的前提下,满足总线系统高实时性要求,提高了用户体验。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1为本发明一主多从通讯总线系统下的高效通讯方法示意图;

图2为本发明主设备发送广播查询命令示意图;

图3为本发明广播查询命令的结构示意图;

图4为本发明从设备接收广播查询命令并判断是否执行该广播查询命令的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

现有一主多从总线通讯系统中,由于总线同一时段只能有一个设备能向总线发送数据,数据获取不得不使用轮询方式,主设备使用一问一答依次询问总线上所有从设备的设备数据。此方式虽能解决总线冲突问题,但由于交互次数太多,大大降低总线有效数据量,降低了系统通讯效率和数据实时性。

现有一主多从总线通讯系统中一般由一个主端设备(简称主设备)、若干从端设备(简称从设备)以及通讯总线组成,从端设备具有可配置的唯一设备地址。

针对现有一主多从总线通讯系统中存在的获取所有从设备数据周期耗时太长,系统数据响应实时性低,总线通讯效率等问题,本发明在不改变原有一主多从总线通讯系统结构的前提下,通过使用主设备发送广播查询命令。从设备收到后根据下发的广播命令中的延时参数和自身配置的设备地址,延时不同的时间后再响应查询命令。本发明方式优化通讯交互逻辑,减少交互次数和单独等待时间,从而提高通讯效率和系统数据响应实时性。

实施例

如图1所示,本发明一主多从通讯总线系统下的高效通讯方法,该方法包括:

步骤1、主设备使用广播地址下发广播查询命令包,广播查询命令包包括广播地址、响应地址标识Flag_addr、延时参数Tt和查询功能码Fun;

主设备根据需要查询哪些从设备,从设备地址计算出响应地址标识Flag_addr,根据查询功能码Fun计算出延时参数Tt,根据所有查询从设备的数量总数N和延时参数Tt计算出总查询等待返回时间Tm。

具体地,广播地址为一个所有从设备都关注的地址号。

具体地,响应地址标识Flag_addr为从设备是否需要执行本条广播查询命令的依据;能减少不必要的从设备响应。响应地址标识通过一bit位来表示一个从设备地址,当从设备的响应地址标识对应位为1时,则表示需要该从设备执行本条广播查询命令;否则为0表示该从设备无需执行本条广播查询命令。

具体地,延时参数Tt为单个从设备执行本条查询命令以及返回数据预估总耗时间;延时参数Tt根据查询功能码Fun配置,为不同的查询功能码配置不同延时参数或相同参数。该参数灵活配置,能降低总线通讯耗时。

具体地,查询功能码Fun为从设备执行何种响应操作的依据,以区分不同的查询命令。

步骤2、从设备收到主设备下发的广播查询命令包后,立即记录接收时间戳Tr,并将接收时间戳Tr作为延时起点;

各从设备根据广播查询命令包中的响应地址标识Flag_addr和本从设备配置的设备地址,判断是否需要响应本条广播查询命令包;

若判断为需要响应,则将收到的延时参数Tt乘以本从设备配置的设备地址在响应地址标识Flag_addr的序号Nn得到的乘积作为延时时间Td;并在延时起点加上延时时间Td(即Tr+Td)时刻,根据查询功能码Fun响应主设备需要的查询结果,通过通讯总线发送到主设备;

若判断为无需响应,则忽略本条广播查询命令包。

步骤3、主设备根据所需从设备响应结果判定查询命令是否成功执行。主设备发送广播查询命令包后,开始等待所有需响应从设备的数据;在最大等待时间Tm内,收到所有所需响应从设备的数据后结束操作。最大等待时间是根据所有查询从设备的数量总数N和延时时间Td计算出总查询等待的返回时间Tm。

具体实施如下:

步骤1、主设备发送广播查询命令,广播查询命令中包含广播地址、响应地址标识、延时参数、查询功能码和校验码。如图2所示。

如图3所示,图3为广播查询命令结构。

广播地址:规定一个需要所有从设备都关注的地址号,例如0xff(255)。

查询功能码:包含从设备需要执行命令的具体信息,包含需要执行的命令类型、起始位置和数量,例如0x0300000010表示读取16路电流数据。

响应地址标识:每一位表示一个从设备地址,1个字节可表示8个从设备,32字节(256位)可表示256个从设备。可根据需求减少本部分字节数。第一个字节从低位至高位分别表示从设备1至从设备8,以此类推。

从设备地址对应位为1时表示需要该从设备执行本条命令,为0表示该从设备无需执行。例如0x38(二进制:0b 0011 1000)表示该条广播查询命令仅需要地址为4、5、6的从设备响应,其他地址为1、2、3、7、8的从设备不需要响应。

若广播命令需要所有从设备执行并返回,该部分可以去掉,以降低数据量,减少总线占用。

延时参数:可根据从设备执行功能码耗时来设置不同的延时粒度参数。用于从设备根据自身地址在响应地址中的序号和该参数计算执行后需要延时返回数据的时间。

例如:延时参数都为1毫秒时,为2从设备地址的在不同的响应地址标志下,所需执行的操作是不一样的。

响应地址标志为0xfd(0b 1111 1101)时,从设备2无需响应本条命令。

响应地址标志为0xfd(0b 1111 1110)时,从设备2执行查询后延时1ms再通过总线返回查询结果至主设备。

响应地址标志为0xfd(0b 1111 1111)时,从设备2执行查询后延时2ms再通过总线返回查询结果至主设备。

校验码:是对本条广播查询命令的数据完整性保证,可使用通用的数据校验算法。例如CRC-ModBus。

步骤2、从设备收到广播查询命令后,根据自身设备地址和响应地址标识判断是否需要需要执行本条广播指令。执行本条广播指令后,根据自身配置的设备地址和延时参数计算出延时时间,延时结束后返回执行结果。

举例:使用原轮询方式主设备读取20只从设备数据。主设备需要发送20次查询命令,再单独等待20只从设备的设备响应。

使用本发明时,主设备一次查询20只从设备数据时,主设备仅需要发送1次广播查询命令。

本发明中,20只从设备收到广播查询命令后,根据广播查询命令中的响应地址标识Flag_addr判断是否需要响应该条广播查询查询命令。若无需响应,直接丢弃该命令。若需响应,则响应后根据延时参数Tt和自身设备地址延时后,返回查询结果。

主设备发送广播查询命令后,只需在同一时间段(最大等待时间Tm)内等待所有所需查询的从设备依次返回查询数据结果。

使用本发明方法降低总线中主从设备交互次数,减少等待时间和次数,从而提高系统数据实时性,提高总线通讯效率。

由以上分析可知,此技术发明前,主设备使用轮询方式获取从设备数据,总线通讯交互次数多。此技术发明后,主设备使用广播方式获取从设备数据,比使用轮询方式减少一半的交互次数,提高了通讯效率。

本发明方法通过主设备广播查询,从设备以接收时刻为起点延时不同时间返回执行结果的方案,避免总线数据冲突,大大减少了总线交互次数,极大提高了总线系统数据实时性。在未提高成本的前提下,满足总线系统高实时性要求,提高了用户体验。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种适用绿洲-荒漠过渡带防风固沙林疏透度的测定方法
  • 一种全程索道式防风实时拉结缆风系统及其施工方法
  • 一种疏风减压防风伞
  • 一种多通道泄风防风伞
技术分类

06120116561271