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

动态控制器局域网消息传递

文献发布时间:2023-06-19 19:18:24


动态控制器局域网消息传递

技术领域

本公开的各方面总体上涉及动态控制器局域网(CAN)消息传递。

背景技术

交通工具部件通过诸如控制器局域网(CAN)的交通工具总线协议发送和接收数据。为了进行通信,交通工具部件被设计成通过CAN总线发送手工处理的数据交换。CAN消息列表实际上是静态的,因此系统操作员或实施者无法在不改变多个控制器上的软件部件的情况下改变输入或输出。CAN总线上的网络带宽约束阻止模块发布多余的数据,因此限制了设计的未来适用。执行实时控制的部件往往被设计成具有用于新特征或功能的有限净空。此类系统通常围绕基本任务调度器构建。

发明内容

在一个或多个说明性实施例中,提供了一种用于动态控制器局域网(CAN)消息传递的系统。该系统包括交通工具的中央网关,所述交通工具的所述中央网关包括处理器和存储装置、连接到多根交通工具总线,其中所述交通工具总线中的每一根连接到一个或多个电子控制单元(ECU)。所述中央网关被编程为接收来自所述ECU的客户端的消息,所述消息请求动态CAN信号;将所述消息通过所述多根交通工具总线转发到所述ECU的服务器;接收来自所述服务器的响应,所述响应指定所述动态CAN信号的可用性;以及将所述响应转发到所述客户端。

在一个或多个说明性实施例中,提供了一种用于动态控制器局域网(CAN)消息传递的方法。交通工具的中央网关包括处理器和存储装置、连接到多根交通工具总线,所述交通工具总线中的每一根连接到一个或多个电子控制单元(ECU),所述中央网关接收来自所述ECU的客户端的消息,所述消息请求动态CAN信号。所述消息通过所述多根交通工具总线转发到所述ECU的服务器。将响应从所述服务器接收到所述中央网关,所述响应指定所述动态CAN信号的可用性。所述响应被转发到所述客户端。

附图说明

图1示出了包括被配置用于动态CAN消息传递的增强型中央网关(ECG)的示例性系统;

图2示出了支持动态CAN消息传递的示例性CAN数据帧;

图3示出了将CAN数据帧的数据字段划分为各个位的示例性表示;

图4示出了要在CAN帧的数据部分的前三个位中利用的可能的数据结构ID的示例性表示;

图5示出了发现阶段的示例性信号可用性数据流部分;

图6示出了信号可用性请求消息的结构的细节的示例;

图7示出了发现阶段的示例性信号可用性响应数据流部分;

图8示出了已经通过CAN总线获得的信号的信号可用性响应消息的结构的细节的示例;

图9示出了新通过CAN总线获得的信号的信号可用性响应消息的细节的示例;

图10示出了发现阶段的示例性信号带宽分析数据流部分;

图11示出了用于利用信号可用性响应消息来响应信号可用性请求消息的示例性过程;

图12示出了可通过CAN总线获得的信号的消息标识符分配消息的细节的示例;

图13示出了合约建立阶段的示例性联系发起数据流部分;

图14示出了可通过CAN总线获得的信号的合约消息的细节的示例;

图15示出了合约建立阶段的示例性联系接受/拒绝数据流部分;

图16示出了响应合约消息的示例;

图17示出了信号订阅模型的示例性完整数据流;

图18示出了合约查询模型的示例性查询合约细节数据流部分;

图19示出了查询合约消息的示例;

图20示出了合约查询模型的示例性查询响应合约细节数据流部分;

图21示出了查询响应合约消息的示例;

图22示出了示例性I/O控制模型数据流;

图23示出了I/O控制请求消息的示例;

图24示出了否定I/O控制响应消息的示例;并且

图25示出了肯定I/O控制响应消息的示例。

具体实施方式

根据需要,本文中公开了本发明的详细实施例;然而,应当理解,所公开的实施例仅仅是可以各种形式和替代形式实施的本发明的示例。附图不一定按比例绘制;一些特征可能被放大或最小化以示出特定部件的细节。因此,本文公开的具体结构细节和功能细节并不解释为限制性,而仅解释为用于教导本领域技术人员以各种方式采用本发明的代表性基础。

CAN动态消息传递是指动态地创建、发送和/或中断发送CAN数据帧的策略。在许多情况下,CAN网络可以以严格的工程方式建立,其中网络未被设计成适应动态变化。这种方法的结果是消息传递的变化(例如,添加信号、移除信号、改变信号等)可能需要跨交通工具控制器进行完全软件更新。随着空中下载更新和可更新的交通工具配置变得越来越普遍,可能期望沿着CAN总线的消息传递内容在交通工具寿命期间不再保持静态。为了使CAN更灵活并适应此类更新,可以实现CAN上的数据传输的面向服务的架构(SOA)模型。如本文详细讨论的,这种策略可以用于帮助CAN从严格工程化的网络演变为实时自适应网络。

使用动态CAN,控制器可以在需要时订阅新的CAN信号,并且在不再需要所述信号时取消订阅。使用这种方法,可以动态地协商新信号的发送。所有交通工具CAN消息的全局信号数据库中的每个信号可以被分配唯一的信号编号。信号代理可以维护信号的数据库,并且可以确保可以选择性地使每个发送器负责的可用数据元素可用。可以使用这些信号编号订阅新信号。使用该订阅方法,每当开发需要新信号的新特征时,可以减少更新发送器软件的前置时间和成本。本文详细讨论了动态CAN的SOA的其他方面。

图1示出了包括被配置用于动态CAN消息传递的增强型中央网关(ECG)110的示例性系统100。增强型中央网关110可以通过一根或多根交通工具总线106连接到多个电子控制单元(ECU)104。增强型中央网关110还可以包括一个或多个诊断端口108。增强型中央网关110可以包括处理器112、存储器114以及用于信号代理118和/或数据120的存储装置116。虽然图1中示出了示例性系统100,但是如图所示的示例性部件不意在限制。实际上,系统100可以具有更多或更少的部件,并且可以使用额外的或替代的部件和/或实施方式。

交通工具102可以包括各种类型的汽车,跨界多功能交通工具(CUV)、运动型多功能交通工具(SUV)、卡车、休闲交通工具(RV)、船、飞机或用于运输人员或货物的其他移动机器。在许多情况下,交通工具102可以由内燃发动机提供动力。作为另一种可能性,交通工具102可以是由内燃发动机和一个或多个电动马达两者提供动力的混合动力电动交通工具(HEV)。在另一个示例中,交通工具102可以是仅由电动马达驱动的纯电动交通工具。

交通工具102可包括多个电子控制单元(ECU)104,所述多个ECU被配置为在交通工具电池和/或传动系的动力下执行和管理各种交通工具102功能。如所描绘,示例性交通工具ECU 104被表示为离散的ECU 104-A至104-H。然而,交通工具ECU 104可以共享物理硬件、固件和/或软件,使得来自多个ECU 104的功能可以集成到单个ECU 104中或跨多个ECU 104分布。交通工具ECU 104可以包括被配置为接收相关联的软件、固件或配置设置的更新的各种交通工具102部件。

作为一些非限制性交通工具ECU 104的示例:动力传动系统控制模块(PCM)104-A可以被配置为控制发动机和变速器部件;防抱死制动系统(ABS)104-B控制器,其被配置为控制制动和牵引控制部件;电动助力转向(EPAS)104-C控制器,其被配置为控制转向辅助并调整拉动或漂移补偿功能;高级驾驶员辅助系统(ADAS)104-D,诸如自适应巡航控制或自动化制动;以及前照灯控制模块(HCM)104-E,其被配置为控制灯开/关设置。ECU 104还可以包括其他动力传动系统104-F或底盘104-G部件、被配置为支持语音命令以及与驾驶员和驾驶员携带的装置的蓝牙接口的信息娱乐系统104-H(例如,由密歇根州迪尔伯恩的福特汽车公司提供的SYNC系统)、连接控制器104-I(诸如被配置为利用嵌入式调制解调器访问交通工具102外部的联网装置的远程信息处理控制单元(TCU))、机电主体控制器104-J(诸如窗或锁致动器)和挂车控制器104-K部件(诸如灯控制和传感器数据以支持连接的挂车)。

交通工具总线106可以包括在交通工具ECU 104之间可用的各种通信方法。交通工具总线106还可以支持ECG 110与交通工具ECU 104之间的通信。交通工具总线106可以是交通工具控制器局域网(CAN)。CAN网络可以是各种类型,包括但不限于数据容量高达500kbps的高速CAN(HS-CAN)、数据容量高达125kbps的中速CAN(MS-CAN)和/或数据容量高达2000kbps或更高的CAN灵活数据速率(FD-CAN)。应注意,所示的总线拓扑仅仅是示例,并且可以使用其他数量和/或布置的交通工具总线106。

交通工具102还可以包括可以由外部装置使用来监测交通工具102的状态的诊断端口108。在示例中,诊断端口108可以是连接到交通工具总线106的机载诊断(OBD)端口。用户可以将加密狗、读码器或其他扫描装置连接到诊断端口108,并可以使用由诊断端口108提供的连接来获得对穿过交通工具总线106的消息的访问。一旦连接,用户就可以利用连接的扫描装置来捕获诊断代码、监测交通工具健康状况或者在一些情况下调整交通工具设置。在一个非限制性示例中,类似于HS-CAN的速度,CAN诊断端口108可以支持高达500kbps的数据容量。其他示例性类型的诊断端口108总线也是可能的。

ECG 110可以被配置为在用于在交通工具102内通信的交通工具总线106之间提供电气接口。在示例中,ECG 110可以被配置为在连接到ECG 110的CAN总线106之间转译信号和命令。在非限制性的可能性中,ECG 110可以支持与多达十根CAN交通工具总线206的连接。

作为特定的非限制性示例,ECG 110可以通过HS-CAN交通工具总线106连接到动力传动系统104-F部件;通过第二HS-CAN交通工具总线106连接到底盘部件104-G、安全系统和群集器;通过第三HS-CAN交通工具总线106连接到信息娱乐系统104-H;通过第四HS-CAN交通工具总线106连接到连接104-I和以太网安全备份系统;通过第一MS-CAN总线连接到机电主体控制器104-J;通过第二MS-CAN交通工具总线106连接到挂车控制器104-K和/或从交通工具102的外部容易地访问的节点;通过第一和第二诊断数据交通工具总线106连接而连接到诊断端口108;通过第一FD-CAN交通工具总线106连接到PCM 104-A、ABS 104-B、EPAS104-C和其他控制器;并且通过第二FD-CAN交通工具总线106连接到ADAS 104-D、HCM 104-E和其他控制器。在另一个示例中,信息娱乐104-H、连接104-I、群集器104-L、抬头显示器104-M和ADAS 104-D各自经由单独的交通工具总线106连接到ECG 110。在又一个示例中,抬头显示器104-M可以与群集器104-L集成在一起。

ECG 110还可以被配置为提供支持交通工具102的域CAN消息传递的计算功能。例如,ECG 110可包括一个或多个处理器112,所述一个或多个处理器112被配置为执行支持本文所描述的过程的指令、命令和其他例程。在示例中,ECG 110可以被配置为执行从ECG 110的存储介质116加载到ECG 110的存储器114的信号代理118的指令。信号代理118可以包括被编程为支持本文详细讨论的动态CAN消息传递的软件代码。数据120可以包括信号和合约分配信息以及支持动态CAN消息传递的其他信息。

信号代理118和数据120可以使用各种类型的计算机可读存储介质116以非易失性方式维护。计算机可读介质116(也称为处理器可读介质或存储装置)包括参与提供可由ECG110的处理器112读取的指令或其他数据的任何非暂时性介质(例如,有形介质)。可根据使用多种编程语言和/或技术创建的计算机程序来编译或解译计算机可执行指令,所述各种编程语言和/或技术包括但不限于以下的单独或组合形式:Java、C、C++、C#、Objective C、Fortran、Pascal、Java Script、Python、Perl和PL/SQL。作为一个具体示例,ECG 110可以配备有至少128兆字节的RAM,以及用于处理能力以实现各种计算任务的处理器112的2至4个核心。

图2示出了支持动态CAN消息传递的示例性CAN数据帧200。如图所示,CAN帧包括帧起始(SOF)位202、11位CAN-ID 204、远程传输请求(RTR)位206、2位保留区域和4位数据长度代码208、高达64位的数据字段210、包括15位代码和1位CRC定界符的16位循环冗余校验(CRC)212、包括确认位和确认定界符位的确认214、以及6位帧结束(EOF)标记216。如图示中进一步所示,示例性数据字段210部分表示为十六进制值。应注意,所示的数据字段210部分的值仅是为了示例,并且可以使用任意数据。

图3示出了将CAN数据帧200的数据字段210划分为各个位的示例性表示300。每列表示一个位,并且每行是一个字节(位0至位7)。字节#0是消息的第一个字节,其中位0是LSB,而位7是MSB。与CAN一致,示例中的传输位排序遵循大端惯例,即,首先存储和/或发送序列中的最高有效位。通常,数据字段210的前两个字节可以用作动态CAN消息传递的报头,而数据字段210的其余字节可以用作消息有效载荷。如图所示,前三个位形成数据结构ID302,所述数据结构ID 302定义消息将用于什么以及在其他位位置中预期什么。

应注意,在该消息示例表示300中以及对于本文的所有其他消息示例,虽然在数据结构中示出了特定值和值顺序,但是这些仅是示例,并且可设想并可使用值到功能和不同顺序的字段的不同映射。作为一些其他可能性,可以将多个所示字段组合成单个字段,可以将一个或多个字段分成其他字段,等等。

图4示出了要在CAN帧的数据部分的前三个位中利用的可能的数据结构ID 302的示例性表示。由于在示例中为数据结构ID 302分配了三个位,因此八个可能的值可以由数据结构ID 302表示。在所示示例中,值零表示信号可用性消息,值一表示消息ID分配消息,值二表示合约消息,值三表示I/O控制消息,值四表示配置消息,并且值五表示诊断消息。在所示的示例中,值六和七是未使用的,但可以供将来使用。同样,这些值和位数的选择可以在不同的实施方式中变化。

信号订阅模型可以用于允许客户端(在本文中有时称为请求者)订阅服务器(在本文中有时称为资源提供者)。信号订阅方法可以包括四个阶段:发现、合约建立、常规消息传输和合约终止。发现阶段可以包括信号可用性请求数据流、信号可用性响应数据流和信号到消息ID分配数据流。合约建立阶段可以包括联系建立数据流和合约接受/拒绝数据流。然后,一旦建立了合约,就可以执行常规消息传输阶段。合约终止阶段可以包括结束合约请求数据流。这些阶段中的每一个在图5至图17中依次讨论。

图5示出了发现阶段的示例性信号可用性数据流500部分。信号可用性数据流500可以用于允许客户端502确定所请求的信号是否可从服务器504获得。在示例中,客户端可以是ECU 104中的一个,并且服务器504可以是ECU 104中的另一个。客户端502可以向ECG110发送询问信号可用性的信号可用性请求消息506。响应于接收到消息506,ECG 110可以将信号可用性消息506转发到连接到ECG 110的所有CAN总线106。

图6示出了信号可用性请求消息506的结构600的细节的示例。示例性结构600的格式被示出为与将CAN数据帧200的数据字段210划分为各个位的表示300的图示一致。应再次注意,虽然在结构600中示出了特定值和值顺序,但是这仅是一个示例,并且可使用值到功能和不同顺序的字段的不同映射。

如先前所讨论的,数据结构ID 302可以由数据字段210的前三个位指示。另外,数据字段210的接下来的五个位可以包括唯一请求号602。唯一请求号602可以是唯一值,诸如特定于信号可用性请求消息506的增加值或随机值。该请求号602可以用于允许各方容易地沿着总线106跟踪和/或访问特定请求。

数据字段210的接下来的两个位可以包括发送类型604。发送类型604可以指示传输的类型。在所示示例中,值零可以指示发送一次的消息,值一可以指示响应于变化的消息,值二可以指示用于发送消息的固定周期时间,并且值三可以指示响应于事件而周期性地发送的消息。

数据字段210的接下来的两个位可以包括流控制606说明符。例如,值0可以指示请求最快的服务质量,值1可以指示100毫秒(ms)的服务质量,值3可以指示请求500ms的服务质量,并且值4可以指示请求1000ms的服务质量。

可以保留数据字段210的接下来的两个位。数据字段210的下一个位可以指示消息的查询类型608。为了坚持,值零可以指示请求消息,并且值一可以指示响应消息。可以保留数据字段210的下一个位。

数据字段210的之后的位可以包括信号可用性请求消息506的信号610细节。例如,接下来的16个位可以指示信号610的标识符。信号610可以被指定为15位标识符加上保留位(其可以稍后使用,如图9所示)。在一些示例中,可以由信号可用性请求消息506指定多个信号610。例如,数据字段210的另外的16个位可以指示正在请求其可用性的第二信号610的第二标识符。

图7示出了发现阶段的示例性信号可用性响应数据流700部分。无论所请求的信号当前可从服务器504获得还是可使得其从服务器504获得,信号可用性响应数据流700都可以用于允许客户端502接收信号可用性响应702。响应于接收到信号可用性请求消息506,服务器504可以执行如图11所示的用于确定是否响应于信号可用性请求消息506的过程1100。如果信号可用性请求消息506中指定的信号(或多个信号)可经由服务器504获得,则信号可用性响应消息702可以从服务器504发送回客户端502。

图8示出了已经通过CAN总线106获得的信号610的信号可用性响应消息702的结构的细节的示例。示例性结构800的格式被示出为与CAN数据帧200的数据字段210的表示300和600的图示一致。

类似于信号可用性请求消息506,信号可用性响应消息702报头包括数据结构ID302。信号可用性响应消息702报头还可以包括信号可用性请求消息506的唯一请求ID 602和查询类型608,信号可用性响应消息702是对该信号可用性请求消息的响应。这可以允许客户端502容易地将响应702与请求506匹配。

如进一步所示,信号可用性响应消息702的报头包括可用性类型801位,其通常指定信号610是新可用的,还是替代地已经可通过CAN获得。对于所示消息,可用性类型801将指示这是现有可用信号610。

数据字段210的之后的位可以包括信号可用性响应消息506的信号610细节。例如,接下来的16个位可以指示正在响应的信号610的标识符。另外,数据字段210的有效载荷还可以包括CAN消息内的位位置802和这种CAN消息的消息ID 804,它们一起指定所请求的信号610在CAN总线106上的当前位置。因此,信号可用性响应消息702的接收者可以通过观察CAN总线以获得指定的消息ID 804,然后检查该CAN消息的位位置802来检索所请求的值。

图9示出了新通过CAN总线106获得的信号610的信号可用性响应消息702的细节的示例。与图8所示的信号可用性响应消息702相比,在图9中,可用性类型801将指示这是新的可用信号610。另外,消息有效载荷可以包括被请求可用的信号610(或多个信号610)的15位标识符,其中保留的第16位指定该特定信号610是否可用(例如,1表示是,0表示否)。

图10示出了发现阶段的示例性信号带宽分析数据流1000部分。信号带宽分析数据流1000可以用于允许ECG 110向客户端502确认所请求的信号610在将由服务器504提供的系统的能力内。如图所示,ECG 110可以分析服务器504与客户端502之间的CAN总线106上的带宽。如果总线106的带宽利用小于预定义量(附加带宽可用于信号610),则ECG 110可以向信号610分配新的CAN消息ID、允许的速率和合约号(下面进一步详细讨论)。该信息可以在消息标识符分配消息1202中传送到客户端502和服务器504,如图12所示。

图11示出了用于利用信号可用性响应消息702来响应信号可用性请求消息506的示例性过程1100。在示例中,过程1100可以在本公开系统100(包括ECG 110和客户端502)的背景下由服务器504执行。

如在操作1102处所示,客户端502可以向ECG 110发送询问信号可用性的信号可用性请求消息506。响应于接收到消息506,ECG 110可以将信号可用性消息506转发到连接到ECG 110的所有CAN总线106。该消息可以由连接到CAN总线106中的一个的服务器504接收。

在操作1104处,服务器504确定来自信号可用性请求消息506的信号610编号是否正在传输。如果信号610不是可用的或正由服务器504发送的信号,则服务器504不采取动作,如操作1106处所示。然而,如果信号610是可用的或正由服务器504发送的信号,则控制继续到操作1108。

在操作1108处,服务器504确定信号610当前是否正由服务器504发送。例如,信号610可能已经被另一个客户端502请求通过CAN总线106进行传输。如果是,则控制转到操作1110以发送指示信号610已经可用的信号可用性响应消息702。上面关于图8讨论了此类消息702的示例。在操作1110之后,过程1100结束。然而,如果信号610当前未由服务器504发送,则控制转到操作1112。

在操作1112处,服务器504确定服务器504处的资源是否可用以发送所请求的信号610。在示例中,ECG 110可以确保用于发送信号610的带宽在客户端502与ECG 110之间以及在服务器504与ECG 110之间可用。如果是,则服务器504接收从ECG 110发送的信号610的新的CAN消息ID、允许的速率和合约号,如关于图10所述。

因此,如果网络资源可用,则控制转到操作1114以发送指示信号610现在可用的信号可用性响应消息702。上面关于图9讨论了此类消息702的示例。如果网络资源不可用,则控制转到操作1116,此时服务器504(或ECG 110)发送信号可用性响应消息702,所述信号可用性响应消息指示服务器504在当前时间或针对当前总线106状况无法提供信号610。

图12示出了可通过CAN总线106获得的信号610的消息标识符分配消息1202的细节的示例。响应于ECG 110分配消息ID以打包在发现阶段中请求的信号610,ECG 110可以向ECU 104提供消息标识符分配消息1202。

如图所示,消息标识符分配消息1202包括如上所讨论的数据结构ID 302、唯一请求号602、发送类型604、流控制606和消息ID 804。消息标识符分配消息1202还可以在数据字段210的报头部分中包括合约号1204,所述合约号指定由ECG 110提供的要协商的合约的唯一标识符。消息标识符分配消息1202还可以指示作为客户端502的标识符的请求者节点标识符1206以及作为服务器504的标识符的资源提供者节点标识符1208。

图13示出了合约建立阶段的示例性联系发起数据流1300部分。响应于接收到消息标识符分配消息1202,服务器504与请求者客户端502协商合约以确认消息细节,诸如速度、周期性以及信号610在CAN消息数据字段210内的位位置。该信息可以在合约消息1302中从服务器504传送到客户端502。

图14示出了可通过CAN总线106获得的信号610的合约消息1302的细节的示例。已经讨论了合约建立消息1302的各种细节,诸如数据结构ID 302、发送类型604、流控制606、信号编号610和位位置802。然而,特别值得注意的是报头中的指定由ECG 110提供的合约的唯一标识符的合约号1204,以及合约类型1404。联系类型1404可以指定为所提供的合约建立消息1302的类型的方面。例如,值零可以指示建立消息,值一可以指示接受消息,值二可以指示结束消息,并且值三可以指示查询消息。

图15示出了合约建立阶段的示例性联系接受/拒绝数据流1500部分。响应于客户端502接收到在图13所示的联系发起数据流1300中发送的合约消息1302,客户端502响应于接受或拒绝请求合约消息1302中的建议条款而发送合约消息1302。

图16示出了响应合约消息1302的示例。类似于关于图14所讨论的,提供了合约消息1302的细节。在这里的示例中,针对类型设置的合约消息1302请求被接受,合约类型1404可以被设置为接受,并且如果合约消息1302请求不被客户端502接受,则合约类型1404可以被设置为结束。

图17示出了信号订阅模型的示例性完整数据流1700。如图所示,数据流1700包括上面讨论的发现1301和合约建立1302阶段,以及常规消息传输和合约终止。要发起信号订阅,客户端502可以向ECG 110发送询问一个或多个信号610的可用性的信号可用性请求消息506。响应于接收到信号可用性请求消息506,ECG 110可以将信号可用性请求消息506转发到连接到ECG 110的所有CAN总线106。提供一个或多个信号610的服务器504可以用指示可用性的信号可用性响应消息702进行响应。ECG 110可以接收信号可用性响应消息702,并且可以在客户端502与服务器504之间协商信号610的CAN消息ID、允许的速率和合约号。响应于协商,服务器504可以发送合约消息1302以与客户端502建立合约。响应于从服务器504接收到合约消息1302,客户端502可以响应于接受或拒绝合约而发送合约消息1302。如果被接受,则服务器504可以开始使用所分配的消息ID通过CAN总线106传输信号610。这被示出为常规消息传递1702。响应于客户端502不再需要信号610,客户端502可以向ECG 110发送请求结束信号610的传输的合约消息1302,如1704处所示。响应于接收到结束合约消息1302,ECG 110可以向服务器504发送包括合约ID并请求服务器504中断发送信号610的结束合约消息1302。因此,这可以使服务器504中断信号610的传输。

除了信号订阅模型之外,系统100还可以支持合约查询模型。合约查询模型可以用于解码从服务器504发送的动态CAN消息以用于调试或数据记录目的。相对于图18至图21讨论了该合约查询模型。

图18示出了合约查询模型的示例性查询合约细节数据流1800部分。如图所示,通信可以在测试器或数据记录器装置1802与ECG 110之间进行。在示例中,测试器或数据记录器装置1802可以是连接到网络的诊断端口108的OBD-II测试器装置。在另一个示例中,测试器或数据记录器装置1802可以是交通工具102的ECU 104中的一个。测试器或数据记录器装置1802可以向ECG 110发送具有查询的合约类型1404的合约消息1302。

图19示出了查询合约消息1302的示例。类似于关于图14所讨论的,示出了合约消息1302。在这里的示例中,合约类型1404可以被设置为查询,查询类型608可以被设置为请求,唯一请求号602可以被设置为唯一值,并且数据结构ID 302可以被设置为合约。

图20示出了合约查询模型的示例性查询响应合约细节数据流2000部分。如图所示,响应于图18中发送的查询合约消息1302,EGC 110可以用包括合约细节的查询响应合约消息1302来响应。

图21示出了查询响应合约消息1302的示例。如果查询响应合约消息1302指示有效响应,则DNE 2102位可以被设置为假。然而,如果查询响应合约消息1302指示所请求的合约不存在,则可以将DNE 2102位设置为真。如果为真,则可以忽略查询响应合约消息1302中的合约类型和其他信息。

类似于关于图16所讨论的,对于有效响应,在数据字段210的动态CAN报头部分中,消息数据结构ID 302可以被设置为合约,合约号1204可以被设置为与所请求的消息ID 804相对应的数字,发送类型604可以被设置为针对合约指定的发送信息,流控制606可以被设置为针对合约设置的流参数,合约类型1404可以被设置为查询,并且查询类型608可以被设置为响应。在数据字段210的主体部分中,查询响应合约消息1302可以包括信号的信号编号610以及该值的信号内的位位置802,这些值如上文所讨论。

除了信号订阅模型和合约查询模型之外,系统100还可以支持I/O控制模型。I/O控制模型可以用于基于事件的任务(例如,远程打开前照灯)。相对于图22至图25讨论了该I/O控制模型。

图22示出了示例性I/O控制模型数据流2200。该模型包括三个阶段:发现、控制请求和对请求的响应。发现阶段可以由ECG 110发起。例如,响应于交通工具102的构建的完成,可以在工厂的生产线末端发起发现阶段。在另一个示例中,可以在交通工具102构建期间的一个或多个中间时间发起发现阶段。在又一个示例中,可以响应于安装到交通工具(例如,在ECG 110的指导下安装到ECU 104)的软件更新来发起发现阶段。

在发现阶段中,ECG 110可以向ECU 104中的每一个发送I/O发现消息。ECU 104可以回复ECG 110,ECG 110可以维护交通工具102上的所有可用I/O的列表。

图23示出了I/O控制请求消息2302的示例。继续参考图22,在控制请求阶段,客户端502可以向ECG 110发送I/O控制请求2302消息。响应于接收到I/O控制请求消息2302,交通工具EGC 110可以将I/O控制请求2302消息转发到正确的服务器504所连接到的CAN总线106。

图24示出了否定I/O控制响应消息2402的示例。图25示出了肯定I/O控制响应消息2502的示例。继续参考图22,在对请求的响应阶段中,服务器504可以向ECG 110返回否定I/O控制响应消息2402或肯定I/O控制响应消息2502,其继而可以被转发回客户端502。

更具体地参考图23,示出了示例性I/O控制请求消息2302。客户端502可以发送I/O控制请求消息2302以发起I/O请求。如图所示,数据结构ID 302和唯一请求号602如先前所讨论的。

另外,包括在数据字段210的报头部分中的控制类型2304字段可以用于指定I/O控制请求消息2302的类型。这些控制类型可以包括例如I/O请求类型、请求值的类型、在响应中指示请求被肯定地完成的类型以及指示否定结果的类型。

数据字段210的报头部分还可以包括请求类型2306。请求类型可以是用于在两个值之间进行指示的位,诸如是激活还是停用所请求的I/O特征。如果I/O特征需要更多数量的值,则可以在报头中进一步包括扩展的请求类型2308。例如,扩展的请求类型2308可以包括5个位以允许用于自定义请求的32个唯一组合。在这种情况下,可以在数据字段210的有效载荷部分中指定请求长度2310,所述请求长度以位为单位指定扩展的请求类型2308的长度。在一些示例中,如果扩展的请求类型2308为非零,则可以忽略请求类型2306并且可以替代地使用扩展的请求类型2308。在一个具体示例中,数据字段210的第四字节和第五字节可以指定数据,诸如用于特定扩展的请求类型2308的位置/角度值。

参数号字段2311可以是数据字段210的有效载荷中的字段,并且可以指代分配给所请求的可控I/O的唯一数字。在示例中,参数号可以从ECU 104的现有信号、数据标识符(DID)或参数标识符(PID)导出。在另一个示例中,可以为每个模块自定义分配参数号。示例性DID/PID诊断机制在SAE J1979中定义,并允许ECU 104在可经由诊断方法调用的地址处留出预定义的信息集。DID可以保存提供对系统状态和性能的洞察的信息。在一些实施方式中,参数号字段2311可以相应地包括现有的DID和/或PID说明符。

请求源2312也可以被包括作为数据字段210的有效载荷中的字段。请求源2312可以指定I/O控制请求消息2302是源自交通工具102还是从交通工具102外部(诸如从云服务器)接收的。

循环冗余校验(CRC)2314字段和计数器2316字段也可以可选地包括在数据字段210的有效载荷中。CRC和计数器字段可以用于允许I/O控制请求消息2302的接收者确保在没有网络错误的情况下正确地接收字段并为I/O控制请求消息2302的传输提供端到端(E2E)保护。

如上所述,I/O控制请求消息2302可以具有意味着I/O控制请求消息2302请求无法完成的否定响应类型,或者意味着对I/O控制请求消息2302的处理已成功完成的肯定响应类型。

更具体地参考图24,如上所述,示出了示例性否定I/O控制响应消息2402。如图所示,数据结构ID 302和唯一请求号602如先前所讨论的。上面在I/O控制请求消息2302的讨论中指出的控制类型2304可以指定这是否定响应。

另外,响应类型2404字段可以指示响应为什么是否定的代码或原因。例如,响应类型2404可以指示请求无效、I/O特征被禁用或不支持、I/O功能失败、I/O功能繁忙或正在使用、尝试执行I/O功能时发生故障、使用I/O功能的请求被拒绝、I/O功能待处理等。

更具体地参考图25,示出了示例性肯定I/O控制响应消息2502。如图所示,数据结构ID 302和唯一请求号602如先前所讨论的。上面在I/O控制请求消息2302的讨论中指出的控制类型2304可以指定这是肯定响应。数据字段210的有效载荷还可以指定如针对I/O控制请求消息2302所指出的参数2310,以及可选地指定如针对I/O控制请求消息2302所指出的CRC 2314和/或计数器2316。

另外,肯定I/O控制响应消息2502可以响应于I/O控制请求消息2302的处理的完成而指定最终值或状态2504。例如,如果I/O控制请求消息2302是值请求控制类型2304,则所请求的值可以包括在最终值或状态2504中。或者,如果I/O控制请求消息2302是执行I/O的请求,则最终值或状态2504可以指示用于所请求的I/O的执行的新状态或返回值。

因此,公开了一种动态CAN消息传递系统100。使用所述系统,可以使用信号订阅模型来允许客户端502请求者订阅资源提供者服务器504。另外,合约查询模型可以用于解码从服务器504发送的动态CAN消息以用于调试或数据记录目的。此外,I/O控制模型可以用于基于事件的任务(例如,远程打开前照灯)。

应注意,交通工具102可能需要某些基础设施要求来实现所描述的系统100。例如,保留交通工具总线106上的带宽可能是有用的,并且当创建交通工具102架构时,该保留可以包括在计算中。包括信号610标识符作为CAN属性以在消息数据库中使用也可能是有用的。关于CAN消息ID 804,可以为此目的保留29位消息ID的范围(例如,18CA0000–18CA0FFFh(4096))。

关于将参与动态消息传递的ECU 104的能力,可能需要那些ECU 104保留CAN时隙(缓冲器)、非易失性存储器以及用于新消息传输和处理请求的附加处理能力。关于ECG 110的功能性,如本文所讨论的,ECG 110可以通过作为信号代理118来促成所公开的过程。因此,ECG 110可以被配置为测量当前总线负载,跟踪所有合约(例如,作为数据120存储到存储装置116),以及被配置为如果发生问题,经由诊断请求发送消息传递以重置所有参与的ECU 104。

本文描述的计算装置,诸如ECU 104和ECG 110,一般包括计算机可执行指令,其中所述指令可以由例如上面所列出的那些的一个或多个计算装置执行。计算机可执行指令可以由使用多种编程语言和/或技术创建的计算机程序来编译或解译,所述编程语言和/或技术单独地或组合地包括但不限于Java

关于本文所描述的过程、系统、方法、启发法等,应当理解,尽管已经将此类过程等的步骤描述为根据某个有序顺序发生,但是此类过程可以与本文所描述的顺序不同的顺序执行所描述的步骤来实践。还应理解,可以同时执行特定步骤,可以添加其他步骤,或者可以省略本文所述的特定步骤。换句话说,本文对过程的描述出于说明特定实施例的目的而提供,并且决不应被解释为限制权利要求。

因此,应当理解,以上描述意图为说明性的而非限制性的。在阅读以上描述时,除所提供的示例之外的许多实施例和应用将为明显的。所述范围不应参考以上描述来确定,而是应参考所附权利要求以及享有此类权利要求的权利的等效物的整个范围来确定。预计并且意图在于本文所讨论的技术未来将有所发展,并且所公开的系统和方法将并入此类未来实施例中。总而言之,应当理解,本申请能够进行修改和变化。

权利要求中使用的所有术语意图给出它们最宽泛的合理结构和它们的普通含义,如本文所描述的技术的技术人员所理解,除非本文给出明确的相反指示。特别地,除非权利要求叙述相反的明确限制,否则使用诸如“一个”、“该”、“所述”等单数冠词应被解读为叙述所指示的要素中的一者或多者。

提供本公开的摘要以允许读者快速地确定本技术公开的本质。应当理解,提交摘要将不用于解释或限制权利要求的范围或含义。此外,在前述具体实施方式中,可看出,出于使本公开行文流畅的目的,各种特征在各种实施例中组合在一起。本公开的该方法不应解释为反映所要求保护的实施例要求比每项权利要求中明确叙述的特征更多的特征的意图。而是,如所附权利要求所反映的,发明主题在于少于单个公开实施例的所有特征。因此,所附权利要求特此结合到具体实施方式中,其中每项权利要求自身作为单独要求保护的主题。

虽然上文描述了示例性实施例,但是这些实施例并不意图描述本发明的所有可能形式。而是,说明书中使用的词语是描述性词语而不是限制性词语,并且应理解,在不脱离本发明的精神和范围的情况下,可以进行各种改变。另外,可将各种实施的实施例的特征进行组合,以形成本发明的另外的实施例。

根据本发明,提供了一种用于动态控制器局域网(CAN)消息传递的系统,所述系统具有:交通工具的中央网关,所述交通工具的所述中央网关包括处理器和存储装置、连接到多根交通工具总线,所述交通工具总线中的每一根连接到一个或多个电子控制单元(ECU),所述交通工具的所述中央网关被编程为:接收来自所述ECU的客户端的消息,所述消息请求动态CAN信号;将所述消息通过所述多根交通工具总线转发到所述ECU的服务器;接收来自所述服务器的响应,所述响应指定所述动态CAN信号的可用性;以及将所述响应转发到所述客户端。

根据实施例,所述响应指示CAN消息标识符和在具有CAN消息标识符的CAN消息内所述动态CAN信号已经可用的位位置。

根据实施例,所述响应向所述客户端指示所述动态CAN信号的潜在可用性但所述动态CAN信号尚不可用,并且所述中央网关还被编程为通过所述交通工具总线在所述客户端与所述服务器之间执行合约协商以将动态CAN信号添加为新的CAN消息。

根据实施例,所述中央网关还被编程为:分析所述客户端与所述中央网关之间的客户端总线带宽,分析所述服务器与所述中央网关之间的服务器总线带宽,以及验证所述客户端总线带宽和所述服务器总线带宽支持将所述动态CAN信号的递送添加在新的CAN消息中。

根据实施例,所述中央网关还被编程为向所述客户端并向所述服务器发送消息标识符分配消息,所述消息标识符分配消息包括针对所述新的CAN消息的带宽要求、所述新的CAN消息的消息标识符、用于发送所述新的CAN消息的速率和对应于所述新的CAN消息的合约号。

根据实施例,所述中央网关还被编程为:响应于从所述服务器接收到所述消息标识符分配消息而从所述服务器接收建立合约消息;将所述建立合约消息传递给所述客户端;响应于所述建立合约消息到所述客户端的接收,从所述客户端接收接受合约消息;以及将所述接受合约消息传递给所述服务器以使所述服务器开始发送所述新的CAN消息。

根据实施例,所述中央网关还被编程为:响应于所述建立合约消息到所述客户端的接收,从所述客户端接收拒绝合约消息;以及将所述拒绝合约消息传递给所述服务器以使所述服务器避免发送所述新的CAN消息。

根据实施例,所述中央网关还被编程为:从测试器或记录器装置接收查询合约细节消息;以及响应于接收到所述查询合约细节消息,向所述测试器或记录器装置发送针对所述新的CAN消息的所述带宽要求、所述新的CAN消息的所述消息标识符、用于发送所述新的CAN消息的所述速率和对应于所述新的CAN消息的所述合约号中的一者或多者。

根据实施例,所述中央网关还被编程为:向所述ECU中的每一个发送I/O发现消息;从所述ECU接收I/O发现响应;以及基于所述I/O发现响应来维持所述ECU的可用I/O功能的存储。

根据实施例,所述中央网关还被编程为:从所述ECU中的一个接收请求对所述可用I/O功能中的一个的执行的控制请求;将所述控制请求转发到所述ECU中在所述存储中被指示为执行所请求的I/O功能的所述ECU;从所述ECU中在所述存储中被指示为执行所请求的I/O功能的所述ECU接收控制响应;以及将所述控制响应转发到所述ECU中的所述进行请求的一个,所述控制响应指示响应于所述I/O功能的结果或值。

根据本发明,提供了一种用于动态控制器局域网(CAN)消息传递的方法,所述方法具有:将消息从一个或多个电子控制单元(ECU)的客户端接收到交通工具的中央网关,所述中央网关包括处理器和存储装置、连接到多根交通工具总线,所述交通工具总线中的每一根连接到所述ECU,所述消息请求动态CAN信号;将所述消息通过所述多根交通工具总线转发到所述ECU的服务器;接收来自所述服务器的响应,所述响应指定所述动态CAN信号的可用性;以及将所述响应转发到所述客户端。

根据实施例,所述响应指示CAN消息标识符和在具有CAN消息标识符的CAN消息内所述动态CAN信号已经可用的位位置。

根据实施例,所述响应向所述客户端指示所述动态CAN信号的潜在可用性但所述动态CAN信号尚不可用,并且还包括通过所述交通工具总线在所述客户端与所述服务器之间执行合约协商以将动态CAN信号添加为新的CAN消息。

根据实施例,本发明的特征还在于:分析所述客户端与所述中央网关之间的客户端总线带宽,分析所述服务器与所述中央网关之间的服务器总线带宽,以及验证所述客户端总线带宽和所述服务器总线带宽支持将所述动态CAN信号的递送添加在新的CAN消息中。

根据实施例,本发明的特征还在于向所述客户端并向所述服务器发送消息标识符分配消息,所述消息标识符分配消息包括针对所述新的CAN消息的带宽要求、所述新的CAN消息的消息标识符、用于发送所述新的CAN消息的速率和对应于所述新的CAN消息的合约号。

根据实施例,本发明的特征还在于:响应于从所述服务器接收到所述消息标识符分配消息而从所述服务器接收建立合约消息;将所述建立合约消息传递给所述客户端;响应于所述建立合约消息到所述客户端的接收,从所述客户端接收接受合约消息;以及将所述接受合约消息传递给所述服务器以使所述服务器开始发送所述新的CAN消息。

根据实施例,本发明的特征还在于:响应于所述建立合约消息到所述客户端的接收,从所述客户端接收拒绝合约消息;以及将所述拒绝合约消息传递给所述服务器以使所述服务器避免发送所述新的CAN消息。

根据实施例,本发明的特征还在于:从测试器或记录器装置接收查询合约细节消息;以及响应于接收到所述查询合约细节消息,向所述测试器或记录器装置发送针对所述新的CAN消息的所述带宽要求、所述新的CAN消息的所述消息标识符、用于发送所述新的CAN消息的所述速率和对应于所述新的CAN消息的所述合约号中的一者或多者。

根据实施例,本发明的特征还在于:向所述ECU中的每一个发送I/O发现消息;从所述ECU接收I/O发现响应;以及基于所述I/O发现响应来维持所述ECU的可用I/O功能的存储。

根据实施例,本发明的特征还在于:从所述ECU中的一个接收请求对所述可用I/O功能中的一个的执行的控制请求;将所述控制请求转发到所述ECU中在所述存储中被指示为执行所请求的I/O功能的所述ECU;从所述ECU中在所述存储中被指示为执行所请求的I/O功能的所述ECU接收控制响应;以及将所述控制响应转发到所述ECU中的所述进行请求的一个,所述控制响应指示响应于所述I/O功能的结果或值。

技术分类

06120115865312