CN110048865B - 一种总线数据传输方法、装置、电子设备及存储介质 - Google Patents
一种总线数据传输方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110048865B CN110048865B CN201910330820.XA CN201910330820A CN110048865B CN 110048865 B CN110048865 B CN 110048865B CN 201910330820 A CN201910330820 A CN 201910330820A CN 110048865 B CN110048865 B CN 110048865B
- Authority
- CN
- China
- Prior art keywords
- terminal
- message
- sending
- bus
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Abstract
本发明公开了一种总线数据传输方法、装置、电子设备及存储介质,涉及通信技术领域,该方法包括:第一终端在数据总线上接收第一报文;第一终端根据第一报文确定第二终端,第二终端为发送第一报文的终端;如果第二终端为第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向数据总线发送第二报文。本发明实施例提供的总线数据传输方案,无需固定主站进行单向数据传送,数据总线中无需定义主站和从站,每个终端均可基于关联终端的关系有序的在数据总线上广播自身的报文,其他终端在物理层接收到该报文后,由应用程调用报文进行后续处理,实现快速传递数据,提高数据实时性。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种总线数据传输方法、装置、电子设备及存储介质。
背景技术
目前在工业控制领域,控制系统越来越复杂。一个控制系统使用多个多控制器来协同控制,已经成为常态。多个控制器之间协同工作,对这些控制器之间数据交互实时性、数量有新的需求。
在实现多个控制器协同控制时,通常采用RS485物理层协议规则。现有工业领域基于RS485的总线的通讯协议是ModBus协议。ModBus协议基于轮询机制,主从应答式方式。只能实现主站与从站之间,点对点交互数据,对多控制器之间协同工作数据实时性高、数据量大的系统很不适用。主站发送命令帧给指定从站,从站响应,实现点对点的数据交互。如果有多个从站的话,则需要主站依次发送命令站给相应从站,从站再返回给主站。
但是,采用点对点交互方式,即主从应答方式:必须主站访问从站,从站才应答。主站要把同一个数据发送到从站,需要分别发送给下面从站才能实现,流程复杂,信息处理效率低和实时性差。
发明内容
本发明提供一种总线数据传输方法、装置、电子设备及存储介质,以提高信息处理效率,提高实时性。
第一方面,本发明实施例提供了一种总线数据传输方法,包括:
第一终端在数据总线上接收第一报文;
第一终端根据第一报文确定第二终端,第二终端为发送第一报文的终端;
如果第二终端为第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向数据总线发送第二报文。
进一步的,数据总线连接多个终端,第一报文包括多个终端的连接状态字段;相应的,第一终端根据第一报文确定第二终端,包括:
从多个连接状态字段中查找发送标识;
根据发送标识所属的连接状态字段确定第二终端。
进一步的,第一报文中,多个终端的连接状态字段按照发报顺序依次排列,相应的,如果第二终端为第一终端的关联终端,包括:
从多个连接状态字段中查找发送标识;
如果发送标识所属的发送字段为第一终端字段的前一个有效的连接状态字段,则第二终端为第一终端的关联终端。
进一步的,在第一终端在数据总线上接收第一报文之后,包括:
获取第一报文的接收时间;
如果第二终端不是第一终端的关联终端,则根据第二终端对应的连接状态字段确定至少一个第三报文接收时间,并根据第二终端对应的连接状态字段与第一终端对应的连接状态字段确定第二报文的发送时间;
根据第三报文接收时间的第三报文接收信息,确定超时终端;
在多个终端的连接状态字段中对超时终端添加超时标记;
当到达第二报文的发送时间时,向数据总线发送第二报文。
进一步的,在多个终端的连接状态字段中对超时终端添加超时标记,包括:
在多个终端的连接状态字段中对超时终端的超时次数进行计数;
相应的,在多个终端的连接状态字段中对超时终端添加超时标记之后,还包括:
如果计数结果大于预设阈值,则超时终端为无效终端,取消等待无效终端的发报周期。
进一步的,向数据总线发送第二报文,包括:
如果第一终端的连接状态字段为非零,则将第一终端的连接状态字段置零;
向数据总线发送第二报文。
进一步的,第一报文还包括同步时间字段,在第一终端在数据总线上接收第一报文之后,还包括:
判断同步时间字段中的时间信息与当前系统时间是否一致;
若不一致,则根据时间信息更新当前系统时间。
第二方面,本发明实施例还提供了一种总线数据传输装置,包括:
接收模块,用于第一终端在数据总线上接收第一报文;
确定模块,用于第一终端根据接收模块接收的第一报文确定第二终端,第二终端为发送第一报文的终端;
发送模块,用于如果确定模块确定的第二终端为第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向数据总线发送第二报文。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第一方面所示的总线数据传输方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所示的总线数据传输方法。
本发明实施例提供的总线数据传输方法、装置、电子设备及存储介质,第一终端在数据总线上接收第一报文;第一终端根据第一报文确定第二终端,第二终端为发送第一报文的终端;如果第二终端为第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向数据总线发送第二报文。对比于主线数据全部由主站向单一从站发送,信息处理效率低和实时性差,本发明实施例能够在数据总线上发布第一报文后,由总线上的任意一个终端(即第一终端)接收第一报文,若发送报文的第二终端为第一报文的关联终端,则第一终端在预设时间阈值后,可向其他终端广播第二报文。进而无需固定主站进行单向数据传送,大幅提高数据总线的信息处理效率和实时性。数据总线中无需定义主站和从站,每个终端均可基于关联终端的关系有序的在数据总线上广播自身的报文,其他终端在物理层接收到该报文后,由应用程调用报文进行后续处理,实现快速传递数据,提高数据实时性。
附图说明
图1是本发明实施例中的总线数据传输方法适用的系统架构图;
图2是本发明实施例中的一个总线数据传输方法的流程图;
图3是本发明实施例中的另一个总线数据传输方法的流程图;
图4是本发明实施例中的一个报文变化示意图;
图5是本发明实施例中的一个总线数据传输装置的结构示意图;
图6是本发明实施例中的另一个总线数据传输装置的结构示意图;
图7是本发明实施例中的一个电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
现有工业领域基于RS485的总线的通讯协议是ModBus协议。ModBus协议基于轮询机制,主从应答式方式。只能实现主站与从站之间,点对点交互数据,对多控制器之间协同工作数据实时性高、数据量大的系统很不适用。主站发送命令帧给指定从站,从站响应,实现点对点的数据交互。如果有多个从站的话,则需要主站依次发送命令站给相应从站,从站再返回给主站。
但是,采用点对点交互方式,即主从应答方式:必须主站访问从站,从站才应答。主站要把同一个数据发送到从站,需要分别发送给下面从站才能实现,流程复杂,信息处理效率低和实时性差。
ModBus协议规定应的主站和从站的数据发送方式费时费力,本发明实施例基于有序广播的设计思路,在数据总线上实现不同终端分时广播,实现各终端之间的数据传输,进而无需设置主站和从站,大幅提高了数据总线上的数据处理效率以及报文的实时性。具体方案如下所示:
图1为本发明实施例适用的系统架构图,RS485总线作为各终端物理层进行数据传输的硬件,各终端通过数据总线相互连通。示例性的,假设有四台终端,分别1#终端、2#终端、3#终端和4#终端,四个终端分别连接到数据总线。数据总线采用RS485规格。图1所示系统中,每个终端具有一个发报周期,在发报周期中终端可以向数据总线广播报文。在发报周期以外的时间,终端可以在数据总线上接收其他终端发送的广播报文。可以预先设置发报顺序后,终端根据预设的发报顺序依次广播报文。
通讯由1#终端首先发起。1#终端发送数据帧(1#数据)到数据总线后,其他终端检测数据总线数据,并将接收的数据(1#数据)存到本地。2#终端接收完1#终端发送的数据(1#数据)后,根据1#终端发送的数据帧内的总线信息和同步时间,发送自己数据(2#数据)到总线。同样,3#终端和4#终端依次进行同样操作。直到循环回1#终端。
在图1所示系统中,首先对每个终端进行发报配置,具体包括:设置站号,站号连续(最大数量8个);网络最大站数,每个模块要刷新的数据长度;站点超时时间T;最大允许掉线次数D(超过后模块就离线,总线不刷新该模块)。
设置终端站号,图1中1#、2#、3#、4#为定义的终端站号。站号名称可以为连续的数字,也可以为非连续的文本。根据报文的大小可以设置相应数量的站点。网络最大站数为网络中包含的站点总数,在报文中包含有每个站点的连接状态字段,站点总数和连接状态字段可确定当前网络中各终端的连接状态。站点超时时间表示某个终端在进入其发报周期后,经过超时时间仍未发送报文,则判定站点发送超时,此时站点被认定为一次掉线。最大允许掉线次数表示某个终端多次被判定为掉线后,取消该终端的发报周期,在其之后的报文取消等待该终端的发报周期。
在图1系统架构中,网络只有数据帧,没有其他的命令帧、令牌帧、同步帧等,同时不需要从站应答。数据帧的帧结构如表1所示,帧头包括帧的开始标志。帧头可以为8位2进制。1#~4#分别表示4个终端的连接状态。数据帧结构中,帧头后包括表示每个终端连接状态的连接状态字段。每个终端配置一个连接状态字段,表1示出了具有四个终端的例子。每个连接状态字段由8位2进制表示。可选的,连接状态字段可用于表示站点掉线次数,掉线次数为0~63次,如果未0,则为正常。可选的,连接状态字段还可以包括表示发送状态的内容,又称发送标识。示例性的,可以选用0xFF作为发送标识。若某个连接状态字段中包括发送标识,则该连接字段对应的终端为发送当前报文的终端。本机数据为终端需要传输的数据内容。校验位可以为循环冗余校验位。循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,用于检测或校验数据传输或者保存后可能出现的错误。
表1
进一步的,如表2所示,帧结构还可以包括同步时间,同步时间携带有发送终端填写的系统时间。同步时间的时间单位可为毫秒。其他终端在接收到报文后,读取报文中的同步时间字段进行时间同步。
表2
图2为本发明实施例提供的一种总线数据传输方法的流程图,本实施例可适用于组装电池包的情况,该方法可以由电子设备来执行,电子设备包括个人计算机、笔记本电脑、平板电脑等,该方法具体包括如下步骤:
步骤110、第一终端在数据总线上接收第一报文。
第一终端为连接到数据总线的任意一个终端,该终端通过数据总线接收数据。数据总线上的数据为广播形式,凡连接到数据总线的终端均可接收到报文。在本实施例中将第一终端接收到的报文称为第一报文。
在接收到第一报文后,根据第一报文的帧头确定该报文为数据总线中用于传输数据的报文。然后,根据校验位对第一报文内容进行校验。可选的,校验位为CRC校验位,此时可以使用循环冗余校验方式。此外,在识别帧头后,根据第一报文的报文长度也可以确定第一报文是否完整。在对第一报文验证成功后,将第一报文保存至本地。数据总线用于在物理层传输数据,当第一终端的应用层需要调用数据时,可通过本地缓存读取物理层接收到的数据。
步骤120、第一终端根据第一报文确定第二终端,第二终端为发送第一报文的终端。
在一种实现方式中,发送报文的终端将自身的设备标识添加到第一报文中。第一终端从第一报文中读取设备标识,根据设备标识确定第二终端。
在另一种实现方式中,数据总线连接多个终端,第一报文包括多个终端的连接状态字段。可以从多个连接状态字段中查找发送标识;根据发送标识所属的连接状态字段确定第二终端。如表1所示帧结构中,第二终端在发送第一报文时,在帧结构中第二终端对应的连接状态字段中写入发送标识。发送标识可以为0xFF,即8位二进制全部置1,得到2位16进制“FF”。第一终端在接收到第一报文后,依次读取每个连接状态字段的内容,将填写有发送标识的连接状态字段对应的终端确定为第二终端。示例性的,如表3所示,四个终端的连接状态字段分别为0、0xFF、0和0。由于预先设置0xFF为发送标识后,可以确定第二个链接状态字段包含发送标识,此时确定2#终端为第二终端。
表3
步骤130、如果第二终端为第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向数据总线发送第二报文。
第一报文中,多个终端的连接状态字段按照发报顺序依次排列。可选的,从多个连接状态字段中查找发送标识;如果发送标识所属的发送字段为第一终端字段的前一个有效的连接状态字段,则第二终端为第一终端的关联终端。
可以预先配置一个终端发送顺序列表,列表中配置连接到数据总线的各终端的发送顺序。如果第二终端为第一终端的前一个发送终端,则第二终端为第一终端的关联终端。
示例性的,在表3所示数据报文中,第2#终端为当前发送报文的终端。预先设置的发送顺序为1#终端、2#终端、3#终端、4#终端。若第一终端的标识为3#终端,则2#终端为第一终端的前一个发送终端,即关联终端。
当2#终端在总线上发送了第一报文时,1#终端、3#终端和4#终端均可通过数据总线接收到第一报文。1#终端和4#终端确定2#终端不是其关联终端,因此不作处理,继续监听数据总线上的报文。3#终端识别到2#终端为关联终端,3#终端生成第二报文,并在到达3#终端发射周期后,在数据总线广播第二报文。
有效的连接状态字段指的是连接状态字段中的数据位于预设数值以内。连接状态字段正常数值为0,标识相应终端不存在掉线情况,且当前未发送数据。连接状态字段数值若为大于零的十进制数字,则其记载的是相应终端的掉线次数。如果掉线次数操出预设阈值,则该连接状态字段为无效连接状态字段。
本发明实施例提供的总线数据传输方法,第一终端在数据总线上接收第一报文;第一终端根据第一报文确定第二终端,第二终端为发送第一报文的终端;如果第二终端为第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向数据总线发送第二报文。对比于主线数据全部由主站向单一从站发送,信息处理效率低和实时性差,本发明实施例能够在数据总线上发布第一报文后,由总线上的任意一个终端(即第一终端)接收第一报文,若发送报文的第二终端为第一报文的关联终端,则第一终端在预设时间阈值后,可向其他终端广播第二报文。进而无需固定主站进行单向数据传送,大幅提高数据总线的信息处理效率和实时性。数据总线中无需定义主站和从站,每个终端均可基于关联终端的关系有序的在数据总线上广播自身的报文,其他终端在物理层接收到该报文后,由应用程调用报文进行后续处理,实现快速传递数据,提高数据实时性。
进一步的,如图3所示,在步骤S110、第一终端在数据总线上接收第一报文之后,包括:
步骤101、获取第一报文的接收时间。
当接收到第一报文时,读取系统时间。
步骤102、如果第二终端不是第一终端的关联终端,则根据第二终端对应的连接状态字段确定至少一个第三报文接收时间,并根据第二终端对应的连接状态字段与第一终端对应的连接状态字段确定第二报文的发送时间。
第三报文接收时间第二终端之后,下一个发送报文的第三终端发送第三报文的时间。根据预先设置的发送顺序以及发报周期的时长,可以在接收到第一报文后,确定第二报文的发送时间。例如,第二终端与第一终端之间存在一个第三终端,则第一终端发送第二报文的发送时间为,接收到第一报文的时间向后延迟两个发报周期的时间。
步骤103、根据第三报文接收时间的第三报文接收信息,确定超时终端。
第三报文接收信息用于标识是否接收到第三报文。若在发送顺序中,第一终端和第二终端之间存在N个第三终端,则分别为每个第三终端计算一个第三报文接收时间,并在到达第三报文接收时间时,判断是否接收到第三报文。如果未接收到第三报文,则确定相应的第三终端为超时终端。如果接收到第三报文,则响应的第三终端属于正常状态。
示例性的,每个站点记录最近一次接收到的正确数据帧的站点号N0和接收时刻T0。获取系统当前时间T以及本站与N0的间隔站数M。若(T-T0)>(M×Ts),则判定出现超时终端。其中Ts为一个发报周期时长。示例性的,比如第一终端是4#终端,如果接收到最近一笔正确通讯内的站号是2#终端,则M为1。则经过1×Ts时间后,未接收到第三报文,则4#终端确定3#终端掉线超时,为超时终端。此时,4#终端控制总线,发送第二报文。
步骤104、在多个终端的连接状态字段中对超时终端添加超时标记。
可选的,在多个终端的连接状态字段中对超时终端的超时次数进行计数。之后,如果计数结果大于预设阈值,则超时终端为无效终端,取消等待无效终端的发报周期。
预设阈值可以为大于2次,可选为3-10次,优选为5次。当确定某终端哪位超时终端时,第一终端在发送报文时,在超时终端对应的连接状态字段中的数值进行加1操作。
示例性的,如图4所示,1#终端发出的报文内容中,2#终端、3#终端和4#终端的连接状态字段数值均为0。若2#终端和3#终端超时未发送数据,则4#终端在等待两个发报周期后,在4#终端的发报周期中,对2#终端和3#终端的连接状态字段进行计数,计数结果为1。之后1#终端继续发送报文后,若2#终端和3#终端仍然超时未发送数据,则4#终端在等待两个发报周期后,在4#终端的发报周期中,对2#终端和3#终端的连接状态字段进行计数,计数结果为2。
某个终端的连接状态字段中的计数结果大于预设阈值时,其被视为无效终端,此时后续发报终端取消监听该无效终端的发报周期。例如,上例中若2#终端和3#终端均被判定为无效终端,则在1#终端发送报文后,进入4#终端的发报周期。
步骤105、当到达第二报文的发送时间时,向数据总线发送第二报文。
在一种实现方式中,第一终端为正常运转的终端,报文中其连接状态字段为0。
在另一种实现方式中,第一终端从无效终端或者超时终端调整为正常终端,此时,第一终端的连接状态字段为非零。如果第一终端的连接状态字段为非零,则将第一终端的连接状态字段置零;向数据总线发送第二报文。
本发明实施例提供的总线数据传输方法,能够根据终端的掉线或恢复在线的状态,调节数据总线上各终端的发送时间,避免对掉线终端的无谓等待,提高资源利用率和数据的时效性。
进一步的,第一报文还包括同步时间字段,在步骤110、第一终端在数据总线上接收第一报文之后,还包括:
判断同步时间字段中的时间信息与当前系统时间是否一致;若不一致,则根据时间信息更新当前系统时间。
如表2所示帧结构,第二终端可以在报文中添加时间信息,该时间信息为第二终端发送第一报文时,第二终端的系统时间。由于第一终端的系统时间可能与第二终端的系统时间不一致,因此,在第一终端接收到第一报文后,可以根据第一报文中的同步时间字段校准系统时间。
本发明实施例提供的总线数据传输方法能够通过同步时间字段对数据总线上各终端的时间进行同步,进一步提高数据的准确性。
本发明实施例首先,简化了多站点之间通讯协议复杂度。网络中只有数据帧,没有其他的命令帧、令牌帧、同步帧等。其次,提高了多站点之间交互数据的效率和实时性。站点之间交互数据直接交互,不需要查询、应答。数据交互效率高。再次,本发明实施例提供的数据传输方法稳定、健壮。站点的状态均在通讯帧中传递。如果有掉线,则实时更新状态。
图5为本发明实施例提供的一种总线数据传输装置的结构示意图,该装置可以位于电子设备上,电子设备包括个人计算机、笔记本电脑、平板电脑等,该装置包括:接收模块31、确定模块32和发送模块33;
接收模块31,用于第一终端在数据总线上接收第一报文;
确定模块32,用于第一终端根据接收模块31接收的第一报文确定第二终端,第二终端为发送第一报文的终端;
发送模块33,用于如果确定模块32确定的第二终端为第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向数据总线发送第二报文。
进一步的,数据总线连接多个终端,第一报文包括多个终端的连接状态字段;相应的,确定模块32用于:
从多个连接状态字段中查找发送标识;
根据发送标识所属的连接状态字段确定第二终端。
进一步的,第一报文中,多个终端的连接状态字段按照发报顺序依次排列,相应的,发送模块33用于:
从多个连接状态字段中查找发送标识;
如果发送标识所属的发送字段为第一终端字段的前一个有效的连接状态字段,则第二终端为第一终端的关联终端。
进一步的,如图6所示,还包括超时模块34和同步模块35,超时模块34用于:
获取第一报文的接收时间;
如果第二终端不是第一终端的关联终端,则根据第二终端对应的连接状态字段确定至少一个第三报文接收时间,并根据第二终端对应的连接状态字段与第一终端对应的连接状态字段确定第二报文的发送时间;
根据第三报文接收时间的第三报文接收信息,确定超时终端;
在多个终端的连接状态字段中对超时终端添加超时标记;
当到达第二报文的发送时间时,向数据总线发送第二报文。
进一步的,超时模块34用于:
在多个终端的连接状态字段中对超时终端的超时次数进行计数;
在多个终端的连接状态字段中对超时终端添加超时标记之后:
如果计数结果大于预设阈值,则超时终端为无效终端,取消等待无效终端的发报周期。
进一步的,发送模块33用于:
如果第一终端的连接状态字段为非零,则将第一终端的连接状态字段置零;
向数据总线发送第二报文。
进一步的,第一报文还包括同步时间字段,同步模块35用于:
判断同步时间字段中的时间信息与当前系统时间是否一致;
若不一致,则根据时间信息更新当前系统时间。
本发明实施例提供的总线数据传输装置,接收模块31在数据总线上接收第一报文;确定模块32根据第一报文确定第二终端,第二终端为发送第一报文的终端;发送模块33在第二终端为第一终端的关联终端时,根据第一时间和预设时间阈值向数据总线发送第二报文。对比于主线数据全部由主站向单一从站发送,信息处理效率低和实时性差,本发明实施例能够在数据总线上发布第一报文后,由总线上的任意一个终端(即第一终端)接收第一报文,若发送报文的第二终端为第一报文的关联终端,则第一终端在预设时间阈值后,可向其他终端广播第二报文。进而无需固定主站进行单向数据传送,大幅提高数据总线的信息处理效率和实时性。数据总线中无需定义主站和从站,每个终端均可基于关联终端的关系有序的在数据总线上广播自身的报文,其他终端在物理层接收到该报文后,由应用程调用报文进行后续处理,实现快速传递数据,提高数据实时性。
本发明实施例首先,简化了多站点之间通讯协议复杂度。网络中只有数据帧,没有其他的命令帧、令牌帧、同步帧等。其次,提高了多站点之间交互数据的效率和实时性。站点之间交互数据直接交互,不需要查询、应答。数据交互效率高。再次,本发明实施例提供的数据传输方法稳定、健壮。站点的状态均在通讯帧中传递。如果有掉线,则实时更新状态。
上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
图7为本发明实施例提供的一种电子设备的结构示意图。图7示出了适于用来实现本发明实施方式的电子设备312的框图。图7显示的电子设备312仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备312典型的是用于接收报文,根据关联终端确定第二报文发送时间电子设备,电子设备可以为个人电脑、平板电脑或平板电脑。
如图7所示,电子设备312以通用计算设备的形式表现。电子设备312的组件可以包括但不限于:一个或者多个处理器316,存储装置328,连接不同系统组件(包括存储装置328和处理器316)的总线318。
总线318表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、多媒体电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备312典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备312访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置328可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)330和/或高速缓存存储器332。电子设备312可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统334可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线318相连。存储装置328可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块326的程序336,可以存储在例如存储装置328中,这样的程序模块326包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块326通常执行本发明所描述的实施例中的功能和/或方法。
电子设备312也可以与一个或多个外部设备314(例如键盘、指向设备、摄像头、显示器324等)通信,还可与一个或者多个使得用户能与该电子设备312交互的设备通信,和/或与使得该电子设备312能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口322进行。并且,电子设备312还可以通过网络适配器320与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器320通过总线318与电子设备312的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备312使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器316通过运行存储在存储装置328中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的总线数据传输方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的总线数据传输方法。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的眼球追踪传感器的调节方法中的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种总线数据传输方法,其特征在于,包括:
第一终端在数据总线上接收第一报文,所述数据总线连接多个终端,所述第一报文包括所述多个终端的连接状态字段;
从多个连接状态字段中查找发送标识;
根据所述发送标识所属的连接状态字段确定第二终端,所述第二终端为发送所述第一报文的终端;
如果所述第二终端为所述第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向所述数据总线发送第二报文。
2.根据权利要求1所述的总线数据传输方法,其特征在于,所述第一报文中,多个终端的连接状态字段按照发报顺序依次排列,相应的,如果所述第二终端为所述第一终端的关联终端,包括:
从多个连接状态字段中查找发送标识;
如果所述发送标识所属的发送字段为第一终端字段的前一个有效的连接状态字段,则所述第二终端为所述第一终端的关联终端。
3.根据权利要求1所述的总线数据传输方法,其特征在于,在第一终端在数据总线上接收第一报文之后,包括:
获取所述第一报文的接收时间;
如果所述第二终端不是所述第一终端的关联终端,则根据所述第二终端对应的连接状态字段确定至少一个第三报文接收时间,并根据所述第二终端对应的连接状态字段与所述第一终端对应的连接状态字段确定第二报文的发送时间;
根据所述第三报文接收时间的第三报文接收信息,确定超时终端;
在所述多个终端的连接状态字段中对所述超时终端添加超时标记;
当到达所述第二报文的发送时间时,向所述数据总线发送第二报文。
4.根据权利要求3所述的总线数据传输方法,其特征在于,所述在所述多个终端的连接状态字段中对所述超时终端添加超时标记,包括:
在所述多个终端的连接状态字段中对所述超时终端的超时次数进行计数;
相应的,在所述多个终端的连接状态字段中对所述超时终端添加超时标记之后,还包括:
如果计数结果大于预设阈值,则所述超时终端为无效终端,取消等待所述无效终端的发报周期。
5.根据权利要求4所述的总线数据传输方法,其特征在于,所述向所述数据总线发送第二报文,包括:
如果所述第一终端的连接状态字段为非零,则将所述第一终端的连接状态字段置零;
向所述数据总线发送第二报文。
6.根据权利要求1-5中任一项所述的总线数据传输方法,其特征在于,所述第一报文还包括同步时间字段,在第一终端在数据总线上接收第一报文之后,还包括:
判断所述同步时间字段中的时间信息与当前系统时间是否一致;
若不一致,则根据所述时间信息更新当前系统时间。
7.一种总线数据传输装置,其特征在于,包括:
接收模块,用于第一终端在数据总线上接收第一报文,所述数据总线连接多个终端,所述第一报文包括所述多个终端的连接状态字段;
确定模块,用于第一终端从多个连接状态字段中查找发送标识;
根据所述发送标识所属的连接状态字段确定第二终端;
发送模块,用于如果所述确定模块确定的所述第二终端为所述第一终端的关联终端,则第一终端根据第一时间和预设时间阈值向所述数据总线发送第二报文。
8.一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的总线数据传输方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的总线数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910330820.XA CN110048865B (zh) | 2019-04-23 | 2019-04-23 | 一种总线数据传输方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910330820.XA CN110048865B (zh) | 2019-04-23 | 2019-04-23 | 一种总线数据传输方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110048865A CN110048865A (zh) | 2019-07-23 |
CN110048865B true CN110048865B (zh) | 2021-09-03 |
Family
ID=67278892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910330820.XA Active CN110048865B (zh) | 2019-04-23 | 2019-04-23 | 一种总线数据传输方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110048865B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113141322A (zh) * | 2020-01-17 | 2021-07-20 | 北京配天技术有限公司 | 一种数据通信方法、数据通信装置及计算机存储介质 |
CN112087359B (zh) * | 2020-09-28 | 2022-03-18 | 北京东土科技股份有限公司 | 一种串行通信系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012074779A (ja) * | 2010-09-27 | 2012-04-12 | Canon Inc | 通信システム |
CN101945031B (zh) * | 2010-10-21 | 2012-05-30 | 广州数控设备有限公司 | 一种高速现场总线从站相互通信的实现方法 |
CN101976074B (zh) * | 2010-11-03 | 2012-05-30 | 浙江工业大学 | 基于现场总线和控制网络的工业控制系统 |
-
2019
- 2019-04-23 CN CN201910330820.XA patent/CN110048865B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110048865A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111818136B (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
US20140068134A1 (en) | Data transmission apparatus, system, and method | |
CN110048865B (zh) | 一种总线数据传输方法、装置、电子设备及存储介质 | |
EP3896964A1 (en) | Data processing method, apparatus and device, and storage medium | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN108289165B (zh) | 一种基于手机控制相机的实现方法、装置及终端设备 | |
CN111835801A (zh) | 文件下载方法、装置、服务器、边缘设备、终端及介质 | |
CN113965447B (zh) | 一种在线云诊断方法、装置、系统、设备及存储介质 | |
CN114827967A (zh) | 软件更新方法、蓝牙设备及存储介质 | |
CN114615325A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
US9385968B2 (en) | Methods and devices for connecting to multiple interfaces | |
EP3038390B1 (en) | Processing method and apparatus for signaling tracing | |
CN112511636A (zh) | 数据传输系统、方法、装置、计算机设备及存储介质 | |
CN111930582A (zh) | 系统管理总线检测平台、处理器及系统管理总线检测方法 | |
CN112383904A (zh) | 无配对快速外设调用方法及装置 | |
CN111901072A (zh) | 上行数据的接收确认方法、装置、设备及存储介质 | |
US9934184B1 (en) | Distributed ordering system | |
CN114513523B (zh) | 数据同步方法、装置、设备及存储介质 | |
WO2021189253A1 (zh) | 数据传输方法及装置 | |
Kim et al. | Research and Design of 1553B Protocol Bus Control Unit | |
CN114286393A (zh) | 一种链路自适应方法、装置、设备及存储介质 | |
KR20200017590A (ko) | IoT(Internet Of Things) 통신 시스템 및 그 제어방법 | |
CN116860327A (zh) | 传感器数据的获取方法及装置、存储介质及电子装置 | |
CN112511277A (zh) | 数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |