CN112395237A - 一种至少两个控制器之间通信的方法及其系统 - Google Patents

一种至少两个控制器之间通信的方法及其系统 Download PDF

Info

Publication number
CN112395237A
CN112395237A CN201910764872.8A CN201910764872A CN112395237A CN 112395237 A CN112395237 A CN 112395237A CN 201910764872 A CN201910764872 A CN 201910764872A CN 112395237 A CN112395237 A CN 112395237A
Authority
CN
China
Prior art keywords
controller
message
communication
mode
sent
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.)
Granted
Application number
CN201910764872.8A
Other languages
English (en)
Other versions
CN112395237B (zh
Inventor
石笑生
陈锐东
吴天弘
王荣明
马逸行
张志德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Automobile Group Co Ltd
Original Assignee
Guangzhou Automobile Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Automobile Group Co Ltd filed Critical Guangzhou Automobile Group Co Ltd
Priority to CN201910764872.8A priority Critical patent/CN112395237B/zh
Publication of CN112395237A publication Critical patent/CN112395237A/zh
Application granted granted Critical
Publication of CN112395237B publication Critical patent/CN112395237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及一种至少两个控制器之间的通信方法及其系统,该方法包括:第一控制器生成第一报文并通过第一物理介质将所述第一报文发送至通信中枢控制器;所述第一报文包括第二控制器的控制器编码信息和第二物理介质信息;通信中枢控制器将所述第一报文通过第二物理介质转发至第二控制器;第二控制器根据第一报文判断是否需对第一报文进行回应,若是,则第二控制器根据第一报文生成第二报文并通过第二物理介质将第二报文发送给通信中枢控制器,第二报文包括第一控制器的控制器编码信息和第一物理介质信息,通信中枢控制器将所述第二报文通过第一物理介质转发至第一控制器,若否,则不生成第二报文。本发明能够保障多个控制器之间的数据交互。

Description

一种至少两个控制器之间通信的方法及其系统
技术领域
本发明涉及通信技术领域,具体涉及一种至少两个控制器之间通信的方法及其系统。
背景技术
随着现在电子系统中所实现的功能日益强大,将多个控制器集成在一个系统中的电子产品设计方案越来越常见。这一类设计方案主要有如下两种形态:1.单个嵌入式硬件平台上集成多颗控制器,控制器之间通过常见的板上总线(UART、IIC、SPI等)进行通信;2.多个嵌入式硬件平台上集成在一起,不用硬件平台上的控制器之间通过USB、以太网等进行板间通信。目前,尚未有能够重复使用在多种硬件平台上的通信方法。
发明内容
本发明旨在提出一种至少两个控制器之间的通信方法及其系统,能够重复使用在多种硬件平台上,以保障多个控制器之间的数据交互,从而减少多控制器系统的开发时间和成本。
第一方面,本发明实施例提出一种至少两个控制器之间的通信方法,所述方法包括如下步骤:
第一控制器生成第一报文并通过第一物理介质将所述第一报文发送至通信中枢控制器;所述第一报文包括第二控制器的控制器编码信息和第二物理介质信息;
通信中枢控制器根据所述第二控制器的控制器编码信息和第二物理介质信息将所述第一报文转发至第二控制器;
第二控制器接收所述第一报文并根据所述第一报文判断是否需对所述第一报文进行回应,若是,则第二控制器根据所述第一报文生成第二报文并将所述第二报文通过第二物理介质发送给通信中枢控制器,所述第二报文包括第一控制器的控制器编码信息和物理介质信息,通信中枢控制器根据所述第一控制器的控制器编码信息和第一物理介质信息将所述第二报文转发至第一控制器,若否,则不生成第二报文。
进一步地,所述通信中枢控制器根据所述第一控制器的控制器编码信息和第一物理介质信息将所述第二报文转发至第一控制器包括:通信中枢控制器调用与所述第一物理介质信息匹配的第一驱动,控制第一物理介质将所述第二报文传输至第一控制器;
所述通信中枢控制器根据所述第二控制器的控制器编码信息和第二物理介质信息将所述第一报文转发至第二控制器包括:通信中枢控制器调用与所述第二物理介质信息匹配的第二驱动,控制所述第二物理介质将所述第一报文传输至第二控制器。
进一步地,所述第二控制器根据所述第一报文生成第二报文包括:
若所述第一报文为事件型报文,则第二报文包括接收确认报文和回应报文;
若所述第一报文为周期型报文,则第二报文包括回应报文;
其中,回应报文包括回应第一报文所请求的内容。
进一步地,所述方法还包括:
当所述第一报文为事件型报文时,则第一控制器根据在预设时间周期内是否接收到第二控制器的接收确认报文判断第一报文是否发送成功;若在预设时间周期内接收到第二控制器的接收确认报文,则判断第一报文发送成功;若在预设时间周期内没有接收到第二控制器的接收确认报文,则重发第一报文并累计重发次数,当重发次数达到预设次数时,判断第一报文发送失败。
进一步地,所述方法还包括如下步骤:
所述第一控制器获取其与第三控制器之间的通信模式,并根据所述通信模式进行其与第三控制器之间的通信;
其中,当所述通信模式为第一模式时,第一控制器通过第三物理介质与所述第三控制器接收和发送所有报文,且发送任意类型报文均不用等待确认;
其中,当所述通信模式为第二模式时,第一控制器通过第三物理介质与所述第三控制器接收和发送所有报文,并且若发出的报文需进行接收确认,则在接收到接收确认报文之前不发送报文;
其中,当所述通信模式为第三模式时,第一控制器与第三控制器之间不接收和发送报文;
其中,若通信模式为第四模式,第一控制器仅通过第三物理介质与所述第三控制器发送和接收包括预设内容的报文。
进一步地,所述获取第一控制器与第三控制器之间的通信模式包括:
第一控制器每隔预设时间周期向第三控制器发出第一心跳报文;
第三控制器接收并根据所述第一心跳报文返回一第二心跳报文至第一控制器,并根据所述第一心跳报文确定其与第一控制器之间的通信模式;
第一控制器接收并根据所述第二心跳报文确定其与第三控制器之间的通信模式。
进一步地,所述第一控制器接收并根据所述第二心跳报文确定其与第三控制器之间的通信模式包括:
所述第一控制器获取所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号;
所述第一控制器判断所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号是否相同,若不相同,则所述第一控制器确定其与第三控制器之间的通信模式为第四模式,若相同,则所述第一控制器获取第三控制器对应的通信分值,并根据该通信分值和预设阈值的比较结果确定其与第三控制器之间的通信模式为第一模式、第二模式或第三模式中的一种。
进一步地,所述第一控制器获取第三控制器对应的通信分值包括:
所述第一控制器获取所述第三控制器对应的通信分值;其中,如果所述第一控制器向所述第三控制器发出第一心跳报文后在预设时间内未接收到所述第三控制器的心跳报文,或者所述第一控制器向所述第三控制器发出一条需进行接收确认的报文后在预设时间内未接收到所述第三控制器的确认接收报文,则对第三控制器对应的通信分值扣除预设分值;
如果所述第一控制器向所述第三控制器发出第一心跳报文后在预设时间内收到第三控制器的第二心跳报文,则对第三控制器对应的通信分值增加预设分值;
所述第一控制器根据该通信分值和预设阈值的比较结果确定其与第三控制器之间的通信模式为第一模式、第二模式或第三模式中的一种包括:
若所述第三控制器对应的通信分值大于第一阈值,则第一控制器与第三控制器之间的通信模式为第一模式;
若所述第三控制器对应的通信分值大于第二阈值且小于第一阈值,则第一控制器与第三控制器之间的通信模式为第二模式;
若所述第三控制器对应的通信分值小于第二阈值,则第一控制器与第三控制器之间的通信模式为第三模式。
进一步地,所述方法还包括如下步骤:
所述第三控制器获取其与第一控制器之间的通信模式,并根据所述通信模式进行其与第一控制器之间的通信;
其中,当所述通信模式为第一模式时,第三控制器通过第三物理介质与所述第一控制器接收和发送所有报文,且发送任意类型报文均不用等待确认;
其中,当所述通信模式为第二模式时,第三控制器通过第三物理介质与所述第一控制器接收和发送所有报文,并且若发出的报文需进行接收确认,则在接收到接收确认报文之前不发送报文;
其中,当所述通信模式为第三模式时,第三控制器与第一控制器之间不接收和发送报文;
其中,若通信模式为第四模式,第三控制器仅通过第三物理介质与所述第一控制器发送和接收包括预设内容的报文。
进一步地,所述第三控制器获取其与第一控制器之间的通信模式包括:
所述第三控制器接收所述第一控制器发出的第一心跳报文;
所述第三控制器根据所述第一心跳报文确定其与第一控制器之间的通信模式。
进一步地,所述第三控制器根据所述第一心跳报文确定其与第一控制器之间的通信模式包括:
所述第三控制器获取所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号;
所述第三控制器判断所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号是否相同,若不相同,则所述第三控制器确定其与第一控制器之间的通信模式为第四模式,若相同,则所述第三控制器获取第一控制器对应的通信分值,并根据该通信分值和预设阈值的比较结果确定其与第一控制器之间的通信模式为第一模式、第二模式或第三模式中的一种。
进一步地,所述第三控制器获取第一控制器对应的通信分值包括:
如果所述第三控制器在当前时间周期内未接收到所述第一控制器发来的第一心跳报文,或者所述第三控制器向所述第一控制器发出一条需进行接收确认的报文后在预设时间内未接收到所述第一控制器的确认接收报文,则对第一控制器对应的通信分值扣除预设分值;
如果所述第三控制器在当前时间周期内接收到所述第一控制器发来的第一心跳报文,则对第三控制器对应的通信分值增加预设分值;
所述第三控制器根据该通信分值和预设阈值的比较结果确定其与第一控制器之间的通信模式为第一模式、第二模式或第三模式中的一种包括:
若所述第一控制器对应的通信分值大于第一阈值,则第一控制器与第一控制器之间的通信模式为第一模式;
若所述第一控制器对应的通信分值大于第二阈值且小于第一阈值,则第一控制器与第一控制器之间的通信模式为第二模式;
若所述第一控制器对应的通信分值小于第二阈值,则第一控制器与第一控制器之间的通信模式为第三模式。
进一步地,所述第一控制器、第二控制器和第三控制器均通过如下方式发送报文:
生成报文序列号,并将所述报文序列号和待发送的报文内容进行封装生成待发送报文;其中,发送方控制器发送的报文的报文序列号和接收方控制器发送的回应报文的报文序列号成对匹配;
将所述待发送报文放入发送报文队列进行发送报文;其中,当待发送报文为周期型报文时,则检查发送报文队列中是否有更早入队的具有相同命令字段的报文,若有,则将待发送报文替换更早入队的具有相同命令字段的报文,若没有,则按正常顺序将待发送报文放入发送报文队列;当待发送报文为事件型报文时,则按正常顺序将待发送报文放入发送报文队列。
进一步地,所述第一控制器、第二控制器和第三控制器发出的报文结构包括头部部分、报文数据部分和校验部分,所述头部部分包括起始符、协议类型和总线信息编码以及协议数据单元长度,所述总线信息编码表示报文接收方所对应的控制器编码信息和物理介质信息;所述报文数据部分包括报文序列号、数据长度、数据内容、命令、数据类型和/或通信协议版本号;所述校验部分用于进行校验报文正确性。
进一步地,所述第一控制器、第二控制器和第三控制器根据以下方式进行报文的发送和接收:
发送方控制器向接收方控制器发出一发送数据请求报文以请求建立通信连接;
接收方控制器接收并根据所述发送数据请求报文判断是否建立通信连接,并将判断结果返回给发送方控制器;
发送方控制器根据接收方控制器返回的判断结果确定是否成功建立与接收方控制器的通信连接;若成功建立与接收方控制器的通信连接,则向接收方控制器发送待发送报文;
接收方控制器接收待发送报文并实时监测是否接收到取消报文,若接收到取消报文,则停止接收报文并返回一取消回应报文至发送方控制器;
当发送方控制器发完所有待发送报文后,发送方控制器向接收方控制器发送一传输完成报文。
第二方面,本发明实施例还提供一种通信系统,其包括存储器、控制器单元及存储在存储器上并可在所述控制器单元上运行的计算机程序,所述控制器单元包括通信中枢控制器、第一控制器、第二控制器和至少一个第三控制器,所述多个控制器单元执行所述程序时,以实现上述实施例方法的步骤。
本发明实施例提出一种至少两个控制器之间通信的方法及其系统,通过设置一通信中枢控制器,由通信中枢控制器分别通过属性不同的物理介质与其他的控制器进行通信连接,使得多控制器之间的连接在硬件上可以更加简洁、成本更低,同时,每一控制器所发出的报文携带有报文接收方的控制器编码信息和物理介质信息,根据物理介质信息采用对应的驱动程序控制物理介质进行报文数据传输,实现多个控制器在多条属性不同的物理介质上进行多核通信。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而得以体现。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一中一种至少两个控制器之间的通信方法流程图。
图2为本发明实施例一中报文结构示意图。
图3为本发明实施例一中报文头部部分结构示意图。
图4为本发明实施例一中发送数据的普通数据报文Payload结构示意图。
图5为本发明实施例一中回复数据的普通数据报文Payload结构示意图。
图6为本发明实施例一中发送请求的大数据报文Payload结构示意图。
图7为本发明实施例一中发送请求回应的大数据报文Payload结构示意图。
图8为本发明实施例一中发送数据的大数据报文Payload结构示意图。
图9为本发明实施例一中发送数据回应的大数据报文Payload结构示意图。
图10为本发明实施例一中完成数据传输的大数据报文Payload结构示意图。
图11为本发明实施例一中取消数据传输的大数据报文Payload结构示意图。
图12为本发明实施例一中第一心跳报文的Payload结构示意图。
图13为本发明实施例一中第二心跳报文的Payload结构示意图。
图14为本发明实施例一中一种通信系统示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
另外,为了更好的说明本发明,在下文的具体实施例中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的手段未作详细描述,以便于凸显本发明的主旨。
本发明实施例一提出一种至少两个控制器之间的通信方法,图1为实施例一所述方法的流程示意图,所述通信方法应用于通信系统,该通信系统包括多个控制器,所述多个控制器至少包括一通信中枢控制器、第一控制器和第二控制器,所述通信中枢控制器与第一控制器通过第一物理介质通信连接,所述通信中枢控制器与第二控制器通过第二物理介质通信连接;所述第一控制器和第二控制器均包括应用层、协议层和通信层,所述应用层用于处理报文数据,所述协议层用于管理通信协议以及封装报文,所述通信层用于接收和发送报文。
需说明的是,所述第一物理介质与所述第二物理介质为不同介质,本实施例物理介质指的是连接在两个控制器之间的金属导体、电路、有线/
无线信号、以及有线/无线通信协议等的集合,例如IIC、Ethernet、USB、SPI、UART、WIFI等。
参阅图1,所述方法包括如下步骤:
步骤S101、第一控制器生成第一报文并通过第一物理介质将所述第一报文发送至通信中枢控制器;所述第一报文包括第二控制器的控制器编码信息和第二物理介质信息。
具体而言,步骤中每一控制器均对应设置有唯一编码信息,所述通信中枢控制器根据报文中的控制器编码信息可以确定报文所发往的目标控制器,当接收报文的目标控制器为第二控制器时,则发送的报文中包括有第二控制器与通信中枢控制器之间的物理介质信息,即步骤中的第二物理介质信息。
步骤S102、通信中枢控制器根据所述第二控制器的控制器编码信息和第二物理介质信息将所述第一报文通过第二物理介质转发至第二控制器。
具体而言,步骤中所述通信中枢控制器用于进行报文数据中转,根据报文中的控制器编码信息和物理介质信息将第一控制器或第二控制器的报文通过物理介质信息所对应的物理介质转发至目标控制器,在转发过程中,所述通信中枢控制器集成大量现有物理介质的驱动,其根据物理介质信息调用对应驱动控制物理介质转发报文数据。
步骤S103、第二控制器接收并根据所述第一报文判断是否需对所述第一报文进行回应,若是,则第二控制器根据所述第一报文生成第二报文并将所述第二报文通过第二物理介质发送给通信中枢控制器,所述第二报文包括第一控制器的控制器编码信息和物理介质信息,通信中枢控制器根据所述第一控制器的控制器编码信息和第一物理介质信息将所述第二报文通过第一物理介质转发至第一控制器,若否,则不生成第二报文。
具体而言,本实施例方法由通信中枢控制器分别通过属性不同的物理介质与其他的控制器进行通信连接,使得多控制器之间的连接在硬件上可以更加简洁、成本更低。例如,在第一控制器和第二控制器之间进行通信时,第一控制器和第二控制器所发出的报文均携带有报文接收方的控制器编码信息和物理介质信息,其中,所述第一控制器集成有第一物理介质的驱动,所述第二控制器集成有第二物理介质的驱动,使得第一控制器和第二控制器能够分别通过第一物理介质和第二物理介质将报文发送给所述通信中枢控制器,在一些实施例中,所述通信中枢控制器根据接收到的报文中的物理介质信息,调用对应的驱动程序控制相应的物理介质进行报文数据的转发,从而实现多个控制器在多条属性不同的物理介质上进行多核通信。本实施例通信方法能够快速地在不同项目中部署,即使不同项目使用的不同的通信物理介质,本实施例通信方法也能够很快的进行适配。
在一些实施例中,所述通信中枢控制器根据所述第一控制器的控制器编码信息和第一物理介质信息将所述第二报文转发至第一控制器包括:通信中枢控制器调用与所述第一物理介质信息匹配的第一驱动,控制第一物理介质将所述第二报文传输至第一控制器;
所述通信中枢控制器根据所述第二控制器的控制器编码信息和第二物理介质信息将所述第一报文转发至第二控制器包括:通信中枢控制器调用与所述第二物理介质信息匹配的第二驱动,控制所述第二物理介质将所述第一报文传输至第二控制器。
具体而言,本实施例方法提供一个包括物理介质信息与多个控制器的对应关系的查找表,有效地对不同物理介质及其上的控制器做出区分,并且通过集成大量现有物理介质的驱动,提高本实施例通信方法在不同嵌入式平台的通用性。此外,对驱动的共性进行抽象,设计出一套通用的接口,减轻了通信层软件同时加载多个不同驱动的困难。
在一些实施例中,所述第二控制器根据所述第一报文生成第二报文包括:
若所述第一报文为事件型报文,则第二报文包括接收确认报文和回应报文;
若所述第一报文为周期型报文,则第二报文包括回应报文;
其中,回应报文包括回应第一报文所请求的内容。
具体而言,本实施例所提出的通信方法中报文类型包括周期型报文和事件型报文,其中,发送方发送周期型报文不需要等待接收方回复接收确认信息(ACK),而事件型报文需要等待接收确认信息。
包括以下几种通信场景:
1.获取数据:当第一控制器需要从第二控制器获取一段数据时,第一控制器将请求数据封装进协议包报文后发送,第二控制器在收到第一控制器的请求后,回复ACK,然后将回复的数据封装后发送出来,第一控制器收到回复的数据,再回复ACK给第二控制器。
2.发送数据:当第一控制器需要向第二控制器发送一段数据时,第一控制器将数据封装进标准格式报文中发送,第二控制器在收到第一控制器发来的数据后,返回ACK。
3.通知数据:第一控制器发送通知给第二控制器,通常是具有周期性的数据,第二控制器在收到通知后不用回复ACK,第一控制器也不等待
ACK。
在一些实施例中,所述方法还包括:
当所述第一报文为事件型报文时,则第一控制器根据在预设时间周期内是否接收到第二控制器的接收确认报文判断第一报文是否发送成功;若在预设时间周期内接收到第二控制器的接收确认报文,则判断第一报文发送成功;若在预设时间周期内没有接收到第二控制器的接收确认报文,则重发第一报文并累计重发次数,当重发次数达到预设次数时,判断第一报文发送失败。
具体而言,当第一控制器发送出一帧事件型报文后,会为该事件型报文启动一个计时器,然后在一段时间内等待接收方回复的ACK。如果在约定事件内收到了接收方回复的ACK,则判定该事件型报文已发送成功;如果超时未收到接收方回复的ACK,则判定该事件型报文未发送成功,并重新发送,当重发到达一定次数后,例如3次,则判定该事件型报文发送失败,控制器通信层通过回调将发送失败的信息传给控制器应用层;其中,对于任一控制而言,当收到一帧事件型报文后,生成一ACK报文并发送出去。
在一些实施例中,所述方法还包括如下步骤:
所述第一控制器获取其与第三控制器之间的通信模式,并根据所述通信模式进行其与第三控制器之间的通信;
其中,当所述通信模式为第一模式时,第一控制器通过第三物理介质与所述第三控制器接收和发送所有报文,且发送任意类型报文均不用等待确认;
其中,当所述通信模式为第二模式时,第一控制器通过第三物理介质与所述第三控制器接收和发送所有报文,并且若发出的报文需进行接收确认,则在接收到接收确认报文之前不发送报文;
其中,当所述通信模式为第三模式时,第一控制器与第三控制器之间不接收和发送报文;
其中,若通信模式为第四模式,第一控制器仅通过第三物理介质与所述第三控制器发送和接收包括预设内容的报文。
具体而言,所述通信系统还包括连接在相同物理介质上的主机和至少一个从机,在本实施例中第一控制器为主机,第三控制为从机;
主机和从机在以下四种通信状态之间转换:
1.第一模式,报文可以在主机和从机之间成功进行传输,可以发送和接收通用报文协议和大数据传输协议的报文,并且每条报文可以连续发送,不用等待确认。
2.第二模式,报文可以在主机和从机之间成功进行传输,但是每条需要确认的报文被发出后,在得到接收方回复的ACK之前,不发送下一条报文;
3.连接断开,报文不能在主机和从机之间传输;
4.第四模式,也就是主机和从机之间的通信协议不匹配,只能运行在跛行状态传输特殊报文。例如只能发送和接收报文命令组id为0x10的通信协议保留报文,比如:远程升级、电源管理等功能,其它报文和大数据传输协议的报文不可以接收和发送。其中,当运行在第四模式的同时,也一定运行在第二模式。
进一步地,所述第一控制器获取其与第三控制器之间的通信模式包括:
步骤S201、第一控制器每隔预设时间周期向第三控制器发出第一心跳报文;
步骤S202、第三控制器接收并根据所述第一心跳报文返回一第二心跳报文至第一控制器;
步骤S203、第一控制器接收并根据所述第二心跳报文确定其与第三控制器之间的通信模式。具体而言,主机不论当前通信状态如何,其协议层都按照一个预设时间周期,封装一第一心跳报文并发送给通信层。所述第一心跳报文包含第一控制器通信方法的通信协议版本号,所述第二心跳报文包含第三控制器通信方法的通信协议版本号。
进一步地,所述步骤S203包括:
所述第一控制器获取所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号;
所述第一控制器判断所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号是否相同,若不相同,则所述第一控制器确定其与第三控制器之间的通信模式为第四模式,若相同,则所述第一控制器获取第三控制器对应的通信分值,并根据该通信分值和预设阈值的比较结果确定其与第三控制器之间的通信模式为第一模式、第二模式或第三模式中的一种。
进一步地,所述第一控制器获取第三控制器对应的通信分值包括:
所述第一控制器获取所述第三控制器对应的通信分值;其中,如果所述第一控制器向所述第三控制器发出第一心跳报文后在预设时间内未接收到所述第三控制器的心跳报文,或者所述第一控制器向所述第三控制器发出一条需进行接收确认的报文后在预设时间内未接收到所述第三控制器的确认接收报文,则对第三控制器对应的通信分值扣除预设分值;
如果所述第一控制器向所述第三控制器发出第一心跳报文后在预设时间内收到第三控制器的第二心跳报文,则对第三控制器对应的通信分值增加预设分值。
进一步地,所述第一控制器根据该通信分值和预设阈值的比较结果确定其与第三控制器之间的通信模式为第一模式、第二模式或第三模式中的一种包括:
若所述第三控制器对应的通信分值大于第一阈值,则第一控制器与第三控制器之间的通信模式为第一模式;
若所述第三控制器对应的通信分值大于第二阈值且小于第一阈值,则第一控制器与第三控制器之间的通信模式为第二模式;
若所述第三控制器对应的通信分值小于第二阈值,则第一控制器与第三控制器之间的通信模式为第三模式。
具体而言,先由主机每隔预设时间周期向至少一个从机发出一条心跳报文,接收到的从机按照协议约定的时序,各自回复一条心跳报文。主机为每一个从机的通信维护一个通信质量评分表,通信质量评分表中包括多个从机所对应的通信分值,通信分值有一个上限值和一个下限值,当数值到达上或下限后就不再变大或变小。
其中,主机发出心跳报文后,会启动一个计时器,如果在约定时间内未收到某一个从机的心跳报文,就会在该从机所对应的通信分值上扣除一定的分值;反之,当在约定时间内收到某一个从机的心跳报文后,就在该从机所对应的通信分值上增加一定的分值。此外,当一条需要确认的报文没有及时和正确地得到接收方的回复,则从机所对应的通信分值发生一次扣分;反之,当成功收到确认后,从机所对应的通信分值加分。主机根据从机所对应的通信分值与预设阈值的比较结果确定其与从机的通信模式,其中,对应所述第一模式、第二模式或第三模式三个模式预先设置第一阈值、第二阈值和第三阈值,其中,第一阈值>第二阈值>第三阈值。需说明的是,通信分值越高,表明通信状态越稳定可靠。
在一些实施例中,所述方法还包括如下步骤:
所述第三控制器获取其与第一控制器之间的通信模式,并根据该通信模式进行其与第一控制器之间的通信;
其中,当所述通信模式为第一模式时,第三控制器通过第三物理介质与所述第一控制器接收和发送所有报文,且发送任意类型报文均不用等待确认;
其中,当所述通信模式为第二模式时,第三控制器通过第三物理介质与所述第一控制器接收和发送所有报文,并且若发出的报文需进行接收确认,则在接收到接收确认报文之前不发送报文;
其中,当所述通信模式为第三模式时,第三控制器与第一控制器之间不接收和发送报文;
其中,若通信模式为第四模式,第三控制器仅通过第三物理介质与所述第一控制器发送和接收包括预设内容的报文。
具体而言,所述通信系统还包括连接在相同物理介质上的主机和至少一个从机,在本实施例中第一控制器为主机,第三控制为从机;
主机和从机在以下四种通信状态之间转换:
1.第一模式,报文可以在主机和从机之间成功进行传输,可以发送和接收通用报文协议和大数据传输协议的报文,并且每条报文可以连续发送,不用等待确认。
2.第二模式,报文可以在主机和从机之间成功进行传输,但是每条需要确认的报文被发出后,在得到接收方回复的ACK之前,不发送下一条报文;
3.连接断开,报文不能在主机和从机之间传输;
4.第四模式,也就是主机和从机之间的通信协议不匹配,只能运行在跛行状态传输特殊报文。例如只能发送和接收报文命令组id为0x10的通信协议保留报文,比如:远程升级、电源管理等功能,其它报文和大数据传输协议的报文不可以接收和发送。其中,当运行在第四模式的同时,也一定运行在第二模式。
进一步地,所述第三控制器获取其与第一控制器之间的通信模式包括:
步骤S301、所述第三控制器获取所述第一控制器发出的第一心跳报文;
步骤S302、所述第三控制器根据所述第一心跳报文确定其与第一控制器之间的通信模式。进一步地,所述步骤S302包括:
所述第三控制器获取所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号;
所述第三控制器判断所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号是否相同,若不相同,则所述第三控制器确定其与第一控制器之间的通信模式为第四模式,若相同,则所述第三控制器获取第一控制器对应的通信分值,并根据该通信分值和预设阈值的比较结果确定其与第一控制器之间的通信模式为第一模式、第二模式或第三模式中的一种。
进一步地,所述第三控制器获取第一控制器对应的通信分值包括:
如果所述第三控制器在当前时间周期内未接收到所述第一控制器发来的第一心跳报文,或者所述第三控制器向所述第一控制器发出一条需进行接收确认的报文后在预设时间内未接收到所述第一控制器的确认接收报文,则对第一控制器对应的通信分值扣除预设分值;
如果所述第三控制器在当前时间周期内接收到所述第一控制器发来的第一心跳报文,则对第三控制器对应的通信分值增加预设分值。
进一步地,所述第三控制器根据该通信分值和预设阈值的比较结果确定其与第一控制器之间的通信模式为第一模式、第二模式或第三模式中的一种包括:
若所述第一控制器对应的通信分值大于第一阈值,则第一控制器与第一控制器之间的通信模式为第一模式;
若所述第一控制器对应的通信分值大于第二阈值且小于第一阈值,则第一控制器与第一控制器之间的通信模式为第二模式;
若所述第一控制器对应的通信分值小于第二阈值,则第一控制器与第一控制器之间的通信模式为第三模式。
具体而言,从机在当前时间周期内收到主机发来的第一心跳报文,从机在自己本地维护的通信质量评分表上,对主机所对应的通信分值增加一定的分值;反之,如果在当前时间周期内没有收到主机发来的第一心跳报文,则对主机所对应的通信分值进行减值操作。此外,当一条需要确认的报文没有及时和正确地得到接收方的ACK回复,则对主机所对应的通信分值发生一次扣分;反之,当成功收到接收方的ACK回复后,对主机所对应的通信分值加分。从机根据主机所对应的通信分值与预设阈值的比较结果确定其与主机的通信模式,其中,对应所述第一模式、第二模式或第三模式三个模式预先设置三个阈值。需说明的是,通信分值越高,表明通信状态越稳定可靠。
其中,从机不论当前通信状态如何,在收到主机发来的第一心跳报文后,都要封装一条用于回应的第二心跳报文,按照通信协议规定的时序,等待若干时间长度的延迟后,将回应的第二心跳报文发送给主机。
其中,当应用需要发送的数据的长度超过了通用报文协议的数据包能够支持的最大长度时,应用需要使用大数据传输协议将原始数据进行数据分段成若干较短的分段数据,分包发送出去。同时,接收方收到的若干数据包,会由大数据传输协议组合(组包)后,交给应用层。大数据传输协议支持两个控制器——其中一个是本次传输的发送方,另一个是本次传输的接收方,在一次连接的过程中两者身份不会发生变化——通过建立连接的方式,对长度较大的数据进行分段后再传输。其中,原始数据指的是需要发送的超过了通用报文协议的数据包能够支持的最大长度的数据,分段数据指的是按一定长度将原始数据切割分段后的数据,若干分段数据按切割顺序首尾相连后,能够组装成原始数据。
在一些实施例中,所述第一控制器、第二控制器和第三控制器均通过如下方式发送报文:
步骤S401、生成报文序列号,并将所述报文序列号和待发送的报文内容进行封装生成待发送报文;其中,发送方控制器发送的报文的报文序列号和接收方控制器发送的回应报文的报文序列号成对匹配;
步骤S402、将所述待发送报文放入发送报文队列进行发送报文;其中,当待发送报文为周期型报文时,则检查发送报文队列中是否有更早入队的具有相同命令字段的报文,若有,则将待发送报文替换更早入队的具有相同命令字段的报文,若没有,则按正常顺序将待发送报文放入发送报文队列;当待发送报文为事件型报文时,则按正常顺序将待发送报文放入发送报文队列。
具体而言,本实施例方法中生成一个随机数作为报文序列号的初始值,之后,每一次请求生成报文序列号时,都对当前存储的报文序列号值做一次变化(例如自加1或自减1等运算),再把变化后的报文序列号作为报文的序列号。其中,报文序列号的取值范围应当足够大,能够保证在一段较长的时间内,物理介质上传输的不同报文,以及控制器缓存中带有报文序列号字段的不同报文,都具有唯一的报文序列号值。所以在一段较长时间中,具有相同报文序列号的ACK和报文,一定是成对匹配的。
其中,一帧事件型报文及其对应的ACK,通过报文的报文序列号字段进行匹配,也就是说,接收方控制器在收到事件型报文后,将报文的报文序列号字段的值取出,并装填进回复的ACK的报文序列号字段。
其中,第一控制器和第二控制器均包括一条发送报文队列和一条等待ACK队列,将应用需要发送的数据按预先定义的格式打包,将打包好的数据放入发送报文队列中等待发送。所有的报文在封装时,都需要先获得一个独特的报文序列号,并装填在报文的报文序列号字段。如果是一条周期型报文,在放入发送报文队列时,会检查队列中是否有更早入队的具有相同命令字段的报文,如果有就用新的报文替换旧的报文,如果没有就按正常顺序入队。但是事件型报文不需要做如上判断,直接入队。如果是一条事件型报文,在发送给通信层时,需要将该报文放入等待ACK队列,然后根据ACK接收情况,判断是否需要将该报文从队列中删除(出队)。
在一些实施例中,所述第一控制器、第二控制器和第三控制器发出的报文结构包括头部部分、报文数据部分(Payload)和校验部分;所述头部部分包括起始符、协议类表示报文接收方所对应的控制器编码信息和物理介质信息;所述报文数据部分包括报文序列号、数据长度、数据内容、命令、数据类型和/或通信协议版本号;所述校验部分用于进行校验报文正确型和总线信息编码以及协议数据单元长度(PUD长度)。
具体而言,本实施例中使用标准的CRC32算法进行报文校验,对报文头和协议层报文数据计算出CRC32值。校验收到的报文的CRC32值是否正确。如果收到的报文的CRC32字段的值,与计算的相等,则收到的报文正确无误。如果不相等,说明接收到的报文有错误,丢弃报文。
其中,所述报文结构如图2所示,头部部分结构如图3所示,头部部分字段说明如下表1所示。
表1-头部部分字段说明
Figure BDA0002171609720000201
其中,报文头部以某一个特定值作为第一个字节,这个特定值就是一条报文开始的标志,即起始符,所以在整条报文中不能第二次出现这个特定值,所以使用转义算法,将报文中出现特定值的字段转换成其它值。以0x7e为例,解释关键字转义的规则:
采用0x7e表示,若报文除了第一个字节以外的位置出现0x7e,则要进行转义处理,转义规则定义如下:
0x7e<————>0x7d后紧跟一个0x02;
0x7d<————>0x7d后紧跟一个0x01。
本实施例通信方法中对发送的数据进行转义操作,而对接收的数据进行转义逆操作,将被转义的数据还原成原来的值。
其中,所述报文数据部分(Payload)各字段具体根据报文数据确定,对于普通数据,发送及回复报文分别如图4-5所示,其字段说明如下表2所示。其中,普通数据为不超过通用报文协议的数据包能够支持的最大长度的数据。
表2-普通数据Payload各字段说明:
序列号(2Bytes) 0-65535循环
命令(2Bytes) 8bits(命令组ID)+8bits(命令子ID)
长度(2Bytes) 协议内数据长度
数据(0-64kB less protocol overhead) 数据
对于大数据,发送请求、发送请求回应、发送数据、发送数据回应、完成数据传输以及取消数据传输等报文的Payload结构分别如图6-11所示,其字段说明如下表3所示。其中,大数据为超过通用报文协议的数据包能够支持的最大长度的数据。
表3-大数据Payload各字段说明
Figure BDA0002171609720000211
Figure BDA0002171609720000221
对于心跳数据,第一心跳报文和第二心跳报文的Payload结构分别如图12-13所示,其字段说明如下表4所示。
表4-心跳数据Payload各字段说明
序列号(2Bytes) 0-65535循环
命令(1Bytes) 心跳
协议版本(1Bytes) 标准协议版本符号
需说明的是,本实施例中编码及字节序要求如下:字节/位序统一采用大端模式,高字节保存在内存的低地址,比如按次序接收到(0x10 0x20)那么实际值为0x1020;其中,多语言字符建议采用Unicode统一编码。
在一些实施例中,所述第一控制器、第二控制器和第三控制器根据以下方式进行报文的发送和接收:
步骤S501、发送方控制器向接收方控制器发出一发送数据请求报文以请求建立通信连接;
步骤S502、接收方控制器接收并根据所述发送数据请求报文判断是否建立通信连接,并将判断结果返回给发送方控制器;
步骤S503、发送方控制器根据接收方控制器返回的判断结果确定是否成功建立与接收方控制器的通信连接;若成功建立与接收方控制器的通信连接,则向接收方控制器发送待发送报文;
步骤S504、接收方控制器接收待发送报文并实时监测是否接收到取消报文,若接收到取消报文,则停止接收报文并返回一取消回应报文至发送方控制器;
步骤S505、当发送方控制器发完所有待发送报文后,发送方控制器向接收方控制器发送一传输完成报文。
具体而言,本实施例方法的传输连接建立过程更加简洁,只有发送方才能申请建立连接,不存在接收方通过建立连接的方式请求数据的场景。
其中,发送方先发出“发送数据请求”报文,接收方收到后回复“发送数据请求回应”报文,这个过程由发送方请求建立连接,接收方根据自己的状态判断是否同意建立连接,通过标志位字段将判断结果回复给发送方,当且仅当接收方回复的报文的标志位字段的值为“成功”时,双方成功建立连接。
其中,连接建立成功后,发送方开始发送“发送数据”报文,这个报文携带了被分段后的数据,以及这一段数据在原始数据中的偏移位置信息,根据这些信息,接收方能够将分段数据组装成原始数据。接收方收到后,回复“发送数据回应”报文。
其中,连接建立成功后,发送方可以在数据传输的过程中的任意时间点,发送“取消”报文。接收方收到后回复“取消回应”报文,然后数据传输取消,本次连接断开。
其中,连接建立成功后,当发送方发完所有数据后,也就是发完最后一个分段数据后,发送方需要发出一个“完成”报文,表示传输完成。接收方收到后,回复“完成回应”报文。然后数据传输完成,本次连接断开。
其中,如果发送方发出的任意一条报文没有在约定时间内得到接收方的回应,发送方会重发该报文。如果重发次数达到某一个阈值,发送方判定本次数据传输失败,于是会发送“取消”报文。
其中,如果发送方发送“取消”报文后,在约定时间内得到了接收方回复的“取消回应”,或者重发“取消”报文到达某一个阈值,则发送方判定传输已取消且连接已断开。
其中,如果在连接建立成功后,接收方在一定时间长度内,没有收到发送方发出的任意大数据传输协议的报文,则判定本次数据传输失败,且连接已断开。
其中,如果一次大数据传输连接,在数据传输完成前发生传输失败,发送方重新与接收方建立连接后,能够从上次连接中最后一次成功传输的分段数据开始继续传输,直到所有的分组数据都被传输完成,也就是说,大数据传输协议支持断点续传功能。
还应该理解,可以以很多方式实施实施例一所述方法,包括作为过程、装置或系统。本文中所述的方法可以部分地由用于指示控制器执行这种方法的程序指令、以及记录在非暂态计算机可读存储介质上的该指令而实施,非暂态计算机可读存储介质诸如硬盘驱动、软盘、光碟(诸如小型碟(CD)或数字通用碟(DVD))、闪速存储器等。在一些实施例中,程序指令可以被远程存储并且经由光学或电子通信链路而在网络上被发送。
如图14所示,本发明实施例还提供一种通信系统,包括存储器11、控制器单元12及存储在存储器11上并可在所述控制器单元12上运行的计算机程序13,所述控制器单元12包括通信中枢控制器121、第一控制器122、第二控制器123和至少一个第三控制器124,所述多个控制器单元12执行所述程序13时,以实现如实施例一所述的方法步骤。
在图14中,第一控制器122与通信中枢控制器121通过第一物理介质101连接,第二控制器123与通信中枢控制器121通过第一物理介质102连接,第三控制器124与第一控制器122通过第三物理介质连接,其中,所述第三物理介质可以是与所述第一物理介质101相同的物理介质,也可以是与所述第一物理介质101不同的物理介质103。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (16)

1.一种至少两个控制器之间的通信方法,其特征在于,所述方法包括如下步骤:
第一控制器生成第一报文并通过第一物理介质将所述第一报文发送至通信中枢控制器;所述第一报文包括第二控制器的控制器编码信息和第二物理介质信息;
通信中枢控制器根据所述第二控制器的控制器编码信息和第二物理介质信息将所述第一报文转发至第二控制器;
第二控制器接收所述第一报文并根据所述第一报文判断是否需对所述第一报文进行回应,若是,则第二控制器根据所述第一报文生成第二报文并将所述第二报文通过第二物理介质发送给通信中枢控制器,所述第二报文包括第一控制器的控制器编码信息和第一物理介质信息,通信中枢控制器根据所述第一控制器的控制器编码信息和第一物理介质信息将所述第二报文转发至第一控制器,若否,则不生成第二报文。
2.如权利要求1所述的至少两个控制器之间的通信方法,其特征在于,所述通信中枢控制器根据所述第一控制器的控制器编码信息和第一物理介质信息将所述第二报文转发至第一控制器包括:通信中枢控制器调用与所述第一物理介质信息匹配的第一驱动,控制第一物理介质将所述第二报文传输至第一控制器;
所述通信中枢控制器根据所述第二控制器的控制器编码信息和第二物理介质信息将所述第一报文转发至第二控制器包括:通信中枢控制器调用与所述第二物理介质信息匹配的第二驱动,控制所述第二物理介质将所述第一报文传输至第二控制器。
3.如权利要求1所述的至少两个控制器之间的通信方法,其特征在于,所述第二控制器根据所述第一报文生成第二报文包括:
若所述第一报文为事件型报文,则第二报文包括接收确认报文和回应报文;
若所述第一报文为周期型报文,则第二报文包括回应报文;
其中,回应报文包括回应第一报文所请求的内容。
4.如权利要求3所述的至少两个控制器之间的通信方法,其特征在于,所述方法还包括:
当所述第一报文为事件型报文时,则第一控制器根据在预设时间周期内是否接收到第二控制器的接收确认报文判断第一报文是否发送成功;若在预设时间周期内接收到第二控制器的接收确认报文,则判断第一报文发送成功;若在预设时间周期内没有接收到第二控制器的接收确认报文,则重发第一报文并累计重发次数,当重发次数达到预设次数时,判断第一报文发送失败。
5.如权利要求1所述的至少两个控制器之间的通信方法,其特征在于,所述方法还包括如下步骤:
所述第一控制器获取其与第三控制器之间的通信模式,并根据所述通信模式进行其与第三控制器之间的通信;
其中,当所述通信模式为第一模式时,第一控制器通过第三物理介质与所述第三控制器接收和发送所有报文,且发送任意类型报文均不用等待确认;
其中,当所述通信模式为第二模式时,第一控制器通过第三物理介质与所述第三控制器接收和发送所有报文,并且若发出的报文需进行接收确认,则在接收到接收确认报文之前不发送报文;
其中,当所述通信模式为第三模式时,第一控制器与第三控制器之间不接收和发送报文;
其中,若通信模式为第四模式,第一控制器仅通过第三物理介质与所述第三控制器发送和接收包括预设内容的报文。
6.如权利要求5所述的至少两个控制器之间的通信方法,其特征在于,所述获取第一控制器与第三控制器之间的通信模式包括:
第一控制器每隔预设时间周期向第三控制器发出第一心跳报文;
第三控制器接收并根据所述第一心跳报文返回一第二心跳报文至第一控制器;
第一控制器接收并根据所述第二心跳报文确定其与第三控制器之间的通信模式。
7.如权利要求6所述的至少两个控制器之间的通信方法,其特征在于,所述第一控制器接收并根据所述第二心跳报文确定其与第三控制器之间的通信模式包括:
所述第一控制器获取所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号;
所述第一控制器判断所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号是否相同,若不相同,则所述第一控制器确定其与第三控制器之间的通信模式为第四模式,若相同,则所述第一控制器获取第三控制器对应的通信分值,并根据该通信分值和预设阈值的比较结果确定其与第三控制器之间的通信模式为第一模式、第二模式或第三模式中的一种。
8.如权利要求7所述的至少两个控制器之间的通信方法,其特征在于,所述第一控制器获取第三控制器对应的通信分值包括:
所述第一控制器获取所述第三控制器对应的通信分值;其中,如果所述第一控制器向所述第三控制器发出第一心跳报文后在预设时间内未接收到所述第三控制器的心跳报文,或者所述第一控制器向所述第三控制器发出一条需进行接收确认的报文后在预设时间内未接收到所述第三控制器的确认接收报文,则对第三控制器对应的通信分值扣除预设分值;
如果所述第一控制器向所述第三控制器发出第一心跳报文后在预设时间内收到第三控制器的第二心跳报文,则对第三控制器对应的通信分值增加预设分值;
所述第一控制器根据该通信分值和预设阈值的比较结果确定其与第三控制器之间的通信模式为第一模式、第二模式或第三模式中的一种包括:
若所述第三控制器对应的通信分值大于第一阈值,则第一控制器与第三控制器之间的通信模式为第一模式;
若所述第三控制器对应的通信分值大于第二阈值且小于第一阈值,则第一控制器与第三控制器之间的通信模式为第二模式;
若所述第三控制器对应的通信分值小于第二阈值,则第一控制器与第三控制器之间的通信模式为第三模式。
9.如权利要求1所述的至少两个控制器之间的通信方法,其特征在于,所述方法还包括如下步骤:
所述第三控制器获取其与第一控制器之间的通信模式,并根据所述通信模式进行其与第一控制器之间的通信;
其中,当所述通信模式为第一模式时,第三控制器通过第三物理介质与所述第一控制器接收和发送所有报文,且发送任意类型报文均不用等待确认;
其中,当所述通信模式为第二模式时,第三控制器通过第三物理介质与所述第一控制器接收和发送所有报文,并且若发出的报文需进行接收确认,则在接收到接收确认报文之前不发送报文;
其中,当所述通信模式为第三模式时,第三控制器与第一控制器之间不接收和发送报文;
其中,若通信模式为第四模式,第三控制器仅通过第三物理介质与所述第一控制器发送和接收包括预设内容的报文。
10.如权利要求9所述的至少两个控制器之间的通信方法,其特征在于,所述第三控制器获取其与第一控制器之间的通信模式包括:
所述第三控制器接收所述第一控制器发出的第一心跳报文;
所述第三控制器根据所述第一心跳报文确定其与第一控制器之间的通信模式。
11.如权利要求10所述的至少两个控制器之间的通信方法,其特征在于,所述第三控制器根据所述第一心跳报文确定其与第一控制器之间的通信模式包括:
所述第三控制器获取所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号;
所述第三控制器判断所述第一心跳报文和所述第二心跳报文所对应的通信协议版本号是否相同,若不相同,则所述第三控制器确定其与第一控制器之间的通信模式为第四模式,若相同,则所述第三控制器获取第一控制器对应的通信分值,并根据该通信分值和预设阈值的比较结果确定其与第一控制器之间的通信模式为第一模式、第二模式或第三模式中的一种。
12.如权利要求11所述的至少两个控制器之间的通信方法,其特征在于,
所述第三控制器获取第一控制器对应的通信分值包括:
如果所述第三控制器在当前时间周期内未接收到所述第一控制器发来的第一心跳报文,或者所述第三控制器向所述第一控制器发出一条需进行接收确认的报文后在预设时间内未接收到所述第一控制器的确认接收报文,则对第一控制器对应的通信分值扣除预设分值;
如果所述第三控制器在当前时间周期内接收到所述第一控制器发来的第一心跳报文,则对第三控制器对应的通信分值增加预设分值;
所述第三控制器根据该通信分值和预设阈值的比较结果确定其与第一控制器之间的通信模式为第一模式、第二模式或第三模式中的一种包括:
若所述第一控制器对应的通信分值大于第一阈值,则第一控制器与第一控制器之间的通信模式为第一模式;
若所述第一控制器对应的通信分值大于第二阈值且小于第一阈值,则第一控制器与第一控制器之间的通信模式为第二模式;
若所述第一控制器对应的通信分值小于第二阈值,则第一控制器与第一控制器之间的通信模式为第三模式。
13.如权利要求5-12任一项所述的至少两个控制器之间的通信方法,其特征在于,所述第一控制器、第二控制器和第三控制器均通过如下方式发送报文:
生成报文序列号,并将所述报文序列号和待发送的报文内容进行封装生成待发送报文;其中,发送方控制器发送的报文的报文序列号和接收方控制器发送的回应报文的报文序列号成对匹配;
将所述待发送报文放入发送报文队列进行发送报文;其中,当待发送报文为周期型报文时,则检查发送报文队列中是否有更早入队的具有相同命令字段的报文,若有,则将待发送报文替换更早入队的具有相同命令字段的报文,若没有,则按正常顺序将待发送报文放入发送报文队列;当待发送报文为事件型报文时,则按正常顺序将待发送报文放入发送报文队列。
14.如权利要求13所述的至少两个控制器之间的通信方法,其特征在于,所述第一控制器、第二控制器和第三控制器发出的报文结构包括头部部分、报文数据部分和校验部分,所述头部部分包括起始符、协议类型和总线信息编码以及协议数据单元长度,所述总线信息编码表示报文接收方所对应的控制器编码信息和物理介质信息;所述报文数据部分包括报文序列号、数据长度、数据内容、命令、数据类型和/或通信协议版本号;所述校验部分用于进行校验报文正确性。
15.如权利要求5-12任一项所述的至少两个控制器之间的通信方法,其特征在于,所述第一控制器、第二控制器和第三控制器根据以下方式进行报文的发送和接收:
发送方控制器向接收方控制器发出一发送数据请求报文以请求建立通信连接;
接收方控制器接收并根据所述发送数据请求报文判断是否建立通信连接,并将判断结果返回给发送方控制器;
发送方控制器根据接收方控制器返回的判断结果确定是否成功建立与接收方控制器的通信连接;若成功建立与接收方控制器的通信连接,则向接收方控制器发送待发送报文;
接收方控制器接收待发送报文并实时监测是否接收到取消报文,若接收到取消报文,则停止接收报文并返回一取消回应报文至发送方控制器;
当发送方控制器发完所有待发送报文后,发送方控制器向接收方控制器发送一传输完成报文。
16.一种通信系统,其特征在于,包括存储器、控制器单元及存储在存储器上并可在所述控制器单元上运行的计算机程序,所述控制器单元包括通信中枢控制器、第一控制器、第二控制器和至少一个第三控制器,所述多个控制器单元执行所述程序时,以实现如权利要求1-15任一项所述的方法步骤。
CN201910764872.8A 2019-08-19 2019-08-19 一种至少两个控制器之间通信的方法及其系统 Active CN112395237B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910764872.8A CN112395237B (zh) 2019-08-19 2019-08-19 一种至少两个控制器之间通信的方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910764872.8A CN112395237B (zh) 2019-08-19 2019-08-19 一种至少两个控制器之间通信的方法及其系统

Publications (2)

Publication Number Publication Date
CN112395237A true CN112395237A (zh) 2021-02-23
CN112395237B CN112395237B (zh) 2023-08-08

Family

ID=74603448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910764872.8A Active CN112395237B (zh) 2019-08-19 2019-08-19 一种至少两个控制器之间通信的方法及其系统

Country Status (1)

Country Link
CN (1) CN112395237B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115177A (zh) * 2021-11-09 2022-03-01 联合汽车电子有限公司 多控制器系统及其编码方法
CN114156985A (zh) * 2021-12-03 2022-03-08 艾科微电子(深圳)有限公司 基于充电器的检测方法、充电器和控制器
CN114640703A (zh) * 2022-03-14 2022-06-17 中国第一汽车股份有限公司 一种数据通信的方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507883B1 (en) * 2000-10-23 2003-01-14 International Business Machines Corporation Recalling logical volumes to cache from physical media volumes for redundant storage in automated data storage libraries
CN101202632A (zh) * 2006-12-13 2008-06-18 英业达股份有限公司 双控制器系统的数据传输系统及方法及通信路径选择方法
US20090290485A1 (en) * 2006-07-19 2009-11-26 Nxp B.V. Distributed communication system and corresponding communication method
US20110023096A1 (en) * 2009-07-21 2011-01-27 Sihai Xiao Token-based control of permitted sub-sessions for online collaborative computing sessions
CN103179752A (zh) * 2013-03-07 2013-06-26 杨彤 路灯现场通信的方法和系统
CN105812100A (zh) * 2014-12-31 2016-07-27 同方威视技术股份有限公司 用于可编程逻辑控制器和个人计算机进行实时通信的方法
US9967813B1 (en) * 2017-03-06 2018-05-08 Sorenson Ip Holdings, Llc Managing communication sessions with respect to multiple transport media
CN108156823A (zh) * 2016-08-31 2018-06-12 华为技术有限公司 一种闪存介质的访问方法及控制器
US20180287422A1 (en) * 2017-03-31 2018-10-04 Cisco Technology, Inc. Programmable and application aware power utility automation networking

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507883B1 (en) * 2000-10-23 2003-01-14 International Business Machines Corporation Recalling logical volumes to cache from physical media volumes for redundant storage in automated data storage libraries
US20090290485A1 (en) * 2006-07-19 2009-11-26 Nxp B.V. Distributed communication system and corresponding communication method
CN101202632A (zh) * 2006-12-13 2008-06-18 英业达股份有限公司 双控制器系统的数据传输系统及方法及通信路径选择方法
US20110023096A1 (en) * 2009-07-21 2011-01-27 Sihai Xiao Token-based control of permitted sub-sessions for online collaborative computing sessions
CN103179752A (zh) * 2013-03-07 2013-06-26 杨彤 路灯现场通信的方法和系统
CN105812100A (zh) * 2014-12-31 2016-07-27 同方威视技术股份有限公司 用于可编程逻辑控制器和个人计算机进行实时通信的方法
CN108156823A (zh) * 2016-08-31 2018-06-12 华为技术有限公司 一种闪存介质的访问方法及控制器
US9967813B1 (en) * 2017-03-06 2018-05-08 Sorenson Ip Holdings, Llc Managing communication sessions with respect to multiple transport media
US20180287422A1 (en) * 2017-03-31 2018-10-04 Cisco Technology, Inc. Programmable and application aware power utility automation networking

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TAEJIN KIM: ""An efficient packet processing protocol based on exchanging messages between switches and controller in OpenFlow networks"", 《IEEE》 *
凌君臣: ""一种可扩展的SDN多控制器架构"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115177A (zh) * 2021-11-09 2022-03-01 联合汽车电子有限公司 多控制器系统及其编码方法
CN114156985A (zh) * 2021-12-03 2022-03-08 艾科微电子(深圳)有限公司 基于充电器的检测方法、充电器和控制器
CN114156985B (zh) * 2021-12-03 2022-07-22 艾科微电子(深圳)有限公司 基于充电器的检测方法、充电器和控制器
CN114640703A (zh) * 2022-03-14 2022-06-17 中国第一汽车股份有限公司 一种数据通信的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112395237B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US7746786B2 (en) Retransmission control method and device
CN112395237B (zh) 一种至少两个控制器之间通信的方法及其系统
JP3349926B2 (ja) 受信制御装置、通信制御システム及び通信制御方法
CN102368700B (zh) 一种分布式系统中消息的传递方法
US8976814B2 (en) Method of transporting data from sending node to destination node
CN111629368B (zh) 耳机与充电盒的通信方法、充电盒、耳机及可读存储介质
JPH1168873A (ja) データ通信方法及びデータ通信システム
CN112104487B (zh) 物联网终端的远程升级方法、物联网主站及存储介质
CN101369879B (zh) 一种请求数据重传的方法及装置
CN109768850B (zh) 一种车载通信方法和系统
CN109688208B (zh) 一种基于fc-ae-asm消息的数据加载方法
CN101944983B (zh) 用于在通信网络中发送和接收管理消息的方法及系统
JP2016174211A (ja) 通信システム
CN112187408B (zh) 数据处理方法、系统、装置、存储介质和处理器
JP4069125B2 (ja) 伝送方法、送信装置、および送受信システム
KR20110069501A (ko) Autosar 기반 can 통신 장치 및 방법
CN109660628B (zh) 一种机车车地通信方法
CN114670705B (zh) 一种电池管理系统子板配置方法、装置和电子设备
JP2005346175A (ja) コマンド通信装置およびコマンド通信方法
CN103078722A (zh) 一种请求数据重传的方法及装置
CN115242773B (zh) 一种用于车辆内部的文件传输方法及存储介质
JP3148733B2 (ja) 信号処理装置及び信号処理システム
KR20100103197A (ko) 무선 네트워크에서의 코드 패킷을 이용한 통신 방법
KR101460183B1 (ko) 신뢰성 있는 메시지 서비스 시스템 및 방법
CN116055009A (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