使用监督机器学习的汽车CAN解码的制作方法

专利2022-05-09  108


本公开总体上涉及车辆控制器局域网。



背景技术:

在车辆中,所有电子模块(部件)都使用控制器局域网(can)协议通过车辆can总线进行通信。解析部件之间的通信以理解整个车辆的功能可能是有利的。具体地,通过can总线发送的某些信号可以提供该车辆的性能度量。然而,在不知道车辆所使用的模式(schema)的情况下解码这些消息如果不是不可能的也可能是困难的,因为典型的can总线包括数百个消息标识符,其若干组合可能是某些信号,从而留下数千个潜在的组合待解译。



技术实现要素:

本文提供了用于识别在车辆部件之间通过can总线发送的某些信号的技术。具体地,被设计为接合感兴趣部件的某些测试操纵被提供给技术人员以在车辆上执行。可以从所述can总线捕获消息并使用监督机器学习算法分析消息,以隔离消息id和字节号,使得可以观察所述感兴趣部件的值以确定性能度量。一旦被识别,这些性能度量即可以用于与其他车辆进行比较和/或改进车辆的设计和性能。

一个或多个计算机的系统可以被配置为通过将软件、固件、硬件或它们的组合安装在系统上来执行特定操作或动作,所述软件、固件、硬件或它们的组合在操作中致使或促使系统执行动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定操作或动作,所述指令在由数据处理设备执行时致使所述设备执行所述动作。一个总体方面包括一种用于对车辆控制器局域网(can)总线上的消息进行解码的方法。该方法可包括使用计算机系统经由图形用户界面向技术人员提供一个或多个测试操纵以在车辆上执行。测试操纵可以与车辆的部件相关联。计算机系统可以响应于技术人员执行测试操纵而通过车辆的can总线接收消息流。每个消息可以包括消息标识符、字节号和字节号的值,其中字节号表示包含关于感兴趣部件的信息的消息内的数据位置。计算机系统可以基于流中的消息来隔离与部件相关联的部件消息标识符和部件字节号。为了隔离部件消息标识符和部件字节号,计算机系统可以使用监督机器学习算法来识别消息流内具有变化值的字节号的子集。监督机器学习算法还可以用于选择与部件相关联的规则的子集,并且基于将规则子集应用于字节号的子集中的每个来选择部件消息标识符和部件字节号。该方面的其他实施例包括对应计算机系统、设备和记录在一个或多个计算机存储装置上的计算机程序,每个被配置为执行该方法的动作。

实现方式可以包括以下特征中的一个或多个。在一些实施例中,测试操纵是基于车辆的类型(例如,混合动力、电动或内燃发动机)。在一些实施例中,该方法还包括提供附加测试操纵以在车辆上执行。计算机系统可以响应于技术人员执行附加测试操纵而通过can总线接收附加消息流。在此类实施例中,隔离部件还基于附加消息。在一些实施例中,计算机系统生成表示技术人员执行测试操纵的时间段内的部件字节号的值的曲线图。技术人员或另一工程师可以经由图形用户界面查看曲线图。在一些实施例中,在实时基础上更新曲线图,以供用户在测试期间观察。在一些实施例中,可以将多于一个信号识别为与部件相关联的潜在消息标识符和部件字节号。在此类实施例中,计算机系统可以隔离潜在地与部件相关联的潜在消息标识符和潜在字节号,并且生成表示在测试的时间段内潜在字节号的值的第二曲线图。可以经由图形用户界面提供第二曲线图。在一些实施例中,技术人员或工程师可以从曲线图中所示的潜在消息标识符和字节号中选择正确的部件消息标识符和字节号。在一些实施例中,计算机系统可以生成车辆的性能度量数据库。计算机系统可以将部件消息标识符、部件字节号以及部件、部件消息标识符和部件字节号之间的关联存储在性能度量数据库中。在一些实施例中,计算机系统可以生成缩放因子和偏移值以应用于部件字节号的值。在此类实施例中,计算机系统可以将缩放因子、偏移值以及缩放因子、偏移值与部件之间的关联存储在性能度量数据库中。所描述技术的实现方式可以包括硬件、方法或过程、或计算机可访问介质上的计算机软件。

附图说明

通过参考以下附图,可以实现对各种实施例的性质和优点的进一步理解。在附图中,类似的部件或特征可以具有相同的参考标号。此外,相同类型的各种部件可通过在参考标号之后加上破折号和区分类似部件的第二标号来区分。如果在说明书中仅使用第一参考标号,则该描述适用于具有相同第一参考标号的类似部件中的任一个,而与第二参考标号无关。

图1示出了根据一些实施例的解码系统。

图2示出了根据一些实施例的示例性can总线和消息。

图3示出了根据一些实施例的can总线消息的示例性显示输出。

图4a-图4d示出了根据一些实施例的示例性图形用户界面。

图5示出了根据一些实施例的用于解码can消息的方法。

图6示出了根据一些实施例的计算机系统。

图7示出了根据一些实施例的云计算系统。

具体实施方式

如上所述,识别通过车辆的控制器局域网(can)总线在部件之间发送的某些信号可能是有益的。可以对信号进行解码以收集车辆的性能度量。然而,can总线以二进制格式通信,并且在can总线上流式传输的消息甚至在很短的时间段内以数百计。为了理解车辆的功能,需要识别中继技术人员或工程师感兴趣的传感器或部件信息的特定消息。在过去,这种类型的分析可以手动执行,但它是非常耗时的并且必须由经验丰富的工程师执行。具体地,工程师必须检查数据流,一次一个地仔细检查消息中的所有字节,以识别变化的值并将消息缩窄为感兴趣的那些。这可能需要数周,因为存在数百个消息,其中大多数消息携带多达八个字节。即使这样,也可能无法识别感兴趣的消息。因此,需要用于有效且准确地解码感兴趣的信号的技术。

为了解决上述问题,本文公开了用于有效且准确地解码车辆的can总线上的信号的技术。该技术包括使用分析系统,该分析系统通过连接到车辆的访问端口来捕获车辆的can总线上的消息。技术人员可以执行一组测试操纵,并且分析系统可以摄入消息并使用监督机器学习来将规则应用于包含在消息中的信号,以隔离感兴趣的信号以识别与感兴趣的部件相关的信息。可以生成信号曲线图以供技术人员或工程师查看并确认感兴趣的部件由信号正确地识别。可以生成将部件信息与can总线消息信息(包括与部件相关联的消息id和字节号)相关的信息的性能度量数据库,并且该性能度量数据库可以包括每个部件的缩放因子,以应用于与部件相关联的值。缩放因子可以用于将值转换为工程值,该工程值可以用于识别车辆中的性能度量。被测试的每个车辆可具有性能度量数据库,该性能度量数据库包括为性能度量评估而存储的感兴趣部件的每个特性的消息标识符、字节号和缩放因子。

转向图1,描绘了示例性的解码系统100。解码系统100包括车辆105、分析系统110和数据存储区115。虽然本文为了便于描述解码系统100的功能而描述了某些部件,但是在不脱离本公开的范围的情况下,本文中可以包括更多或更少的部件。例如,可以包括许多车辆105和分析系统110,并且每个车辆105和分析系统110可以包括更多或更少的部件以执行本文描述的功能。

车辆105可以是使用can总线126和can总线协议的任何车辆。车辆105包括处理器120、存储器122、访问端口124、can总线126以及部件和传感器128。处理器120可以执行存储在存储器122中的指令。此外,车辆105可以包括计算系统,该计算系统包括存储器122和处理器120,诸如相对于图6描述的计算装置600。虽然这里仅描述了车辆105的特定部件,但是车辆105包括为了简单起见在本说明书中省略的许多其他部件。例如,车辆105包括用于驾驶的部件,诸如轮胎、传动系、发动机等。车辆105还可以包括为了简化本文描述的功能的描述而省略的存储器122中的其他部件、子系统或指令。

访问端口124可包括连接器,外部装置诸如分析系统110可连接到该连接器以到车辆105以截取在can总线126上传输的消息。

can总线126是连接所有部件和传感器128以及访问端口124的网络。部件和传感器128包括车辆105内的许多不同部件。部件和传感器128可以跨can总线126彼此传送消息。相对于图2更详细地描述了部件和传感器128。

分析系统110包括访问端口接口130、处理器135、存储器140和显示器145。存储在存储器140内的指令可以由处理器135执行以执行本文所述的功能。访问端口接口130可以连接到访问端口124,以向分析系统110提供对在can总线126上流式传输的消息的访问。访问端口接口130可以截取can总线126上的消息。访问端口接口130可以具有到访问端口124的硬连线或无线连接。访问端口接口130接收消息流并将消息流发送到数据摄入子系统142。

存储器140包括数据摄入子系统142、机器学习、识别和规则(ml/id/规则)子系统144、绘图子系统146、缩放子系统148、用户界面子系统150和数据库创建子系统152。虽然描绘了特定子系统,但是可以利用更多或更少的子系统来执行本文描述的功能。

用户界面子系统150为技术人员或任何用户提供图形用户界面,以经由显示器诸如显示器145与分析系统110进行交互。显示器145可以是被提供用于查看用户界面子系统150并与之进行交互的任何显示器。显示器可以是触摸屏或非触摸屏。利用非触摸屏装置,键盘、小键盘或其他输入装置可以包括在分析系统110中,以用于在图形用户界面中从用户接收输入。相对于图4a-图4c更详细地描述了图形用户界面。最初,用户可以接收测试操纵以经由图形用户界面执行。然后,用户或技术人员在车辆105上执行测试操纵,同时分析系统110与车辆105的访问端口124耦接。可以执行多于一个的测试操纵,并且如本文更详细描述的,可以经由用户界面子系统150在图形用户界面中向用户显示测试结果的输出。

数据摄入子系统142可以从访问端口接口130接收通过can总线126流式传输的消息的消息流。数据摄入子系统142可以执行一些初始数据处理以验证消息或以其他方式处理它们以供ml/id/规则子系统144使用。

ml/id/规则子系统144从数据摄入子系统142接收消息流。ml/id/规则子系统144使用监督机器学习来应用一组规则来识别与感兴趣部件相关联的信号。感兴趣部件可以是任何部件,并且信号可以与车辆105的部件的特性相关联。例如,发动机扭矩、马达扭矩、电池电压、电池电流、转向输入、加速踏板位置、制动踏板位置、制动压力、发动机速度、马达速度、齿轮位置、车辆速度、离合器分离位置、车轮速度、燃料压力、发动机冷却剂温度、发动机充气温度、发动机空气流速、发动机进气歧管压力、发动机燃料流量、马达温度、变速器油温、电池温度、驾驶员要求的车轮扭矩以及气候控制信号是工程师可能感兴趣的部件的一些特性。

从can总线126流式传输的消息可以包括在感兴趣部件或监测感兴趣部件的特性的传感器与can总线126上的另一部件或传感器之间的消息。其他消息也可以在can总线126上被截取,包括其他部件、计数器、校验和等之间的消息。ml/id/规则子系统144的目标是隔离与感兴趣部件的特性相关的消息。在经由用户界面子系统150提供给用户的测试操纵的执行期间流式传输的消息被捕获为消息流的一部分。ml/id/规则子系统144使用测试操纵的选择来确定要识别的感兴趣部件的特性。例如,测试操纵可以是与识别加速踏板位置相关联的那些。因此,该位置是该示例中感兴趣的加速器部件的特性。在接收到消息流时,监督机器学习算法识别指示存储器中的特定字节的变化的消息。在车辆105内,存储器122尤其包含与感兴趣部件的特性相关联的存储器字节。例如,某些字节与指示加速踏板位置的值相关联。can总线126上的指示加速器位置的值的消息具有特定消息标识符。消息还指示一个或多个字节号和字节号的值,其中字节号指示消息中存储加速踏板位置的值的位置。例如在上面的列表中感兴趣的部件的所有其他特性各自具有它们自己的消息标识符和字节号。ml/id/规则子系统144的目标是识别哪些消息标识符和字节号与感兴趣部件的哪些特性相关联。例如,当车辆制造商想要将制造商的车辆的性能度量与其他制造商的车辆进行比较时,这是有用的。制造商可能不知道哪些存储器字节和消息标识符与感兴趣部件的哪些特性相关联。

最初,ml/id/规则子系统144从被分析的消息中移除校验和消息和计数器消息,其通常在测试操纵输入之前具有活动。剩余消息由ml/id/规则子系统144分析。具有变化值的信号被识别为潜在相关。消息流将包括具有相同消息标识符和不同值的字节号的许多消息,其组合指示用于部件特性的变化信号。所执行的测试操纵被设计成在执行测试时使can总线126上的消息数量最少。然后,监督机器学习算法应用一组规则来进一步分离感兴趣的信号。所应用的规则取决于正在分析哪个部件的哪个特性。例如,如果加速踏板位置处于分析中,则规则包括例如信号值可能永远不会为负、结束值等于起始值、在测试操纵的初始化时段期间信号没有变化等。其他规则可用于其他信号,包括例如没有非零值、值在正之前必须为负、值在负之前必须为正、值在某点必须小于起始值、值在某点必须大于起始值、在测试操纵期间信号中可能存在最小变化、信号必须总是上升、信号必须总是下降、信号数据中可能存在最小数量的唯一值、值必须变化的时间可能存在最小百分比等等。

一旦规则应用于消息流中识别的信号,满足要求的信号数量就被限制,在某些情况下被限制为单个信号。在一些情况下,剩余多于一个的信号可能潜在地是感兴趣的信号。

绘图子系统146绘制潜在地是感兴趣信号的隔离一个或多个信号。在测试操纵的执行时间段内,使用消息中的字节号的值,从具有相同消息标识符和字节号的消息流中的所有消息生成信号的曲线图。在相对于图4c和图4d描述的图形用户界面400中提供示例性曲线图。绘图子系统146将曲线图提供给用户界面子系统150,以在图形用户界面中显示给用户。在一些实施例中,用户(技术人员或工程师)可以选择描绘感兴趣特性的信号的单个曲线图,从而指示选定信号以及相关联的消息标识符和字节号与感兴趣部件的特性相关联。可以将该反馈提供给ml/id/规则子系统144,以设置消息标识符、字节号和感兴趣部件的特性。设置消息标识符与字节号和感兴趣部件的特性之间的关联可以包括将关联存储在分析系统110的存储器140中,将关联存储在数据存储区115中,或者将关联提供给数据库创建子系统152以用于存储。

缩放子系统148可以为特性生成缩放因子和/或偏移值,使得可通过使用缩放因子和/或偏移值将值转换成工程值,使得用于部件的值可用于比较车辆之间的性能度量。例如,加速踏板位置值的范围可以是从完全不被推动时的0到完全被推动到底板时的240。值120对于比较性能度量的人来说意义不大,因此可以应用缩放因子来将240转换为100%,使得值120将等于50%,这是大多数人可以更清楚地理解的。可以将缩放因子和偏移值与感兴趣部件的特性相关联地提供给数据库创建子系统152。

数据库创建子系统152可以生成车辆105的数据库,该数据库可以存储在数据存储区115中。车辆105的数据库可以特定于该车辆,因此其他车辆可以各自具有它们自己的数据库。每个数据库可用于生成用于车辆之间比较的性能度量,其然后可由设计者用于改进其他车辆或车辆105的设计。数据库创建子系统152生成数据库,该数据库包括例如感兴趣部件的每个特性的条目。每个条目可以包括部件名称、与特性相关联的消息标识符、与特性相关联的字节号以及与特性相关联的缩放因子。

数据存储区115可以存储为每个车辆105创建的数据库。数据存储区115可以是任何合适的存储装置或具有存储装置的计算装置。在一些实施例中,数据存储区115可经由网络或如相对于图7所描述的基于云的系统来访问。

图2示出了示例性can总线126。can总线126用作网络,通过该网络在车辆105的部件之间发送消息。在该示例中,can总线126包括部件a205、部件b215、部件c220、部件d225、部件n230和访问端口124。can总线126上可以包括与车辆105中所需的一样多的部件,如部件n230所指示的。另外,在一些实施例中,can总线126还可以与可以包括其他部件的另一can总线耦接。在一些实施例中,多根can总线中的一些或全部可以耦接到访问端口124。分析系统110可以耦接到访问端口124以检索或扫描can总线126上的消息。为简单起见,在can总线126上示出单个消息210。消息210包括指示源、目的地、消息标识符(id)、字节号和字节值的若干字段。在该示例中,消息id为c9并且字节号为5和6。访问端口124可以访问通过can总线126发送的所有消息210,因此尽管部件b可以接收消息210,但访问端口124以及因此分析系统110也接收消息210。

图3示出了can总线消息的示例性显示器300输出。突出显示的行310中包括来自消息210的信息。每行示出了消息具有计数、与消息id相关的最后消息被接收的时间、消息的描述、消息id、消息主体的长度、消息的数据字节值以及在其上传送消息的网络。如突出显示的行310中所示,消息210包括消息idc9和字节5和6的值0027。使用行310作为示例,自上次重置以来在can总线126上传输的具有消息idc9的消息的数量为24050。消息的主体包含八个字节,如长度字段所指示的。感兴趣部件的信息通常是两字节值。因此,由ml/id/规则子系统144检查消息主体查看相同两字节部分中的改变的信号或值。变化值在字节5和6内,这是识别字节号的方式。字节号的值指示感兴趣部件的特性(例如,加速踏板位置)的值。其余的条目提供了其他部件的信息和跨can总线126发送的消息id。

在先前的系统中,在不具有分析系统110的情况下,高级工程师可能必须通过观察类似于显示器300的显示器上的值改变来确定消息id和字节号中哪个与部件的特定特性相关。为了逐个字节地确定哪些值可能相对于车辆105内的某些活动而改变,工程师可能要花几周时间来解码所有消息并将它们与车辆内的部件的特性相关。

图4a示出了示例性图形用户界面(gui)400。gui400可以由如相对于图1所描述的用户界面子系统150显示在显示器145上。分析系统110可以耦接到车辆105的访问端口124。车辆105到分析系统110的连接可以触发用户界面子系统150以在显示器145上显示gui,诸如gui400。gui400可包括用于返回到主菜单的主页按钮410、在列表415中的待执行的操纵的列表、在列表435中的已完成的操纵的列表、在指令窗口420中的当前配置的信息的显示、在列表425中的尚未解码的部件的特性的列表、在列表445中的准备好进行处理以用于最终解码的部件的特性的列表、用开始按钮405开始测试阶段的按钮、用于选择不同的车辆进行测试的新车辆按钮455、用于选择先前车辆配置的先前车辆按钮460、以及用于处理列表445中的部件的任何特性的评估按钮450。

用户可以通过选择新车辆按钮455来选择开始新车辆测试配置。在这种示例中,用户可能必须选择车辆配置的特性以进行测试。例如,车辆可以是电动车辆、混合动力车辆或纯内燃发动机车辆。每种类型的车辆可以具有不同的部件特性。例如,电动车辆中的电池不同于内燃发动机车辆中的车辆。对每种类型的车辆的测试可以是不同的,并且感兴趣部件的特性可以是不同的。因此,车辆的类型可以是在测试新车辆之前配置的一个特性。在一些实施例中,对先前车辆按钮460的选择可以允许用户选择先前配置的车辆以进行测试。在指令窗口420中,列出了车辆名称、can格式和车辆类型。在所示的示例中,在列表415中存在要执行的操纵的列表,用户或技术人员可以突出显示操纵中的一个并选择以执行操纵。预试3430被突出显示以供选择来执行。在一些实施例中,列表425中感兴趣部件的特性列表也是可选列表。对一个的选择(诸如选择的加速踏板位置440)被突出显示。可以基于列表425中的选择用不同的测试操纵来更新列表430。可能需要基于列表425中的选择来执行列表415中列出的操纵,以识别例如与加速踏板位置440相关联的消息标识符和字节号。在一些实施例中,仅需要执行列表415中的一些操纵以隔离与列表415中突出显示的感兴趣特性相关联的消息id和字节号。

图4b示出了在技术人员按下如图4a中所述的开始按钮405之后的示例性gui400。作为混合动力的车辆demov1是被选择并保存以用于测试的配置。先前已经对此车辆执行了包括预试1和2的一些操纵,并且后马达扭矩的特性准备好进行评估。选择用于发起预试3430操纵的开始按钮405,这致使gui400修改指令窗口420以显示技术人员要执行的测试操纵预试3430。在所示的示例中,技术人员执行测试应花费的时间量为15秒。这指示在选择就绪按钮465(这指示技术人员正在开始测试)之后分析系统110将捕获来自can总线126的消息多长时间。技术人员应当确保的测试条件适当包括车辆105处于辅助动力模式,这意味着发动机关闭,但是钥匙处于辅助动力位置。一旦设定了条件,技术人员应点击就绪按钮465并执行测试程序。在所示的示例中,测试程序是技术人员将加速踏板逐渐推到底板并完全推回两次。列表415中的测试操纵被设计成隔离列表425中选择的感兴趣部件的特性。在这种情况下,加速踏板位置440是感兴趣特性,并且使发动机关闭并且除了踩下和释放加速踏板之外没有其他干扰活动有助于使在测试期间通过can总线126发送的消息的数量最小化。

图4c示出了示例性gui400,其示出了由针对加速踏板位置440的测试操纵所指示的一组初始示例性信号的曲线图470、472、474、476、478和480。用户可能已经执行了列表415中列出的用于分析加速踏板位置440的所需操纵,直到加速踏板位置440移动到列表445,准备进行评估。用户然后可以在列表445中选择加速踏板位置440,并且选择评估按钮450来生成如图4c所示的gui400。

评估按钮450的选择调用ml/id/规则子系统144以分析消息的信号。曲线图470、472、474、476、478和480可以是一旦用户选择就绪按钮465,在由测试操纵指令指示的时间帧期间在由技术人员执行的测试期间捕获的信号的曲线图的一些示例。曲线图470、472、474、476、478和480中的每个表示可以与感兴趣部件的特性相关联的潜在信号。每个曲线图470、472、474、476、478和48指示感兴趣部件的特性可以与之相关联的潜在消息标识符和至少一个潜在字节号。绘图子系统146可以使用来自ml/id/规则子系统144的信息来生成曲线图并将它们提供给用户界面子系统150以供显示器145显示。例如,曲线图470指示显示来自字节号为5的消息id538的信号。这些曲线图各自具有x轴时间值。y轴值可以是在测试操纵时间段内基于消息id、字节号和位号指示的特性的值。例如,这可以是对预试3430执行的测试以确定加速踏板位置440。曲线图470、472、474、476、478和480中的信号可以全部是加速踏板位置的潜在信号。

图4d示出了示例性gui400,其示出了在解码系统执行机器学习算法以缩小潜在信号之后留下的曲线图472、476和478。在一些实施例中,可以交叉引用针对列表425中列出的一个特性或其他多个特性的车辆的附加测试操纵,以进一步将曲线图缩小为图4d中描绘的那些。在一些实施例中,工程师可以选择曲线图中的一个(例如,曲线图472)来设置加速踏板位置信息,以指示对应于加速踏板位置的消息id380和字节号1。该信息可以存储在数据存储区115中。例如,可以生成存储车辆105信息的数据库,该数据库指示对于特定车辆105,其可以与制造商、品牌、型号、年份、类型(例如,混合动力车辆、电动车辆等)相关联,其可以用于具有相同规格的任何其他车辆,因为例如所有2019福特f-150混合动力卡车可能使用相同的存储器结构和消息传递结构,因此该年份、品牌、型号和类型的所有车辆可以使用相同的消息id和字节号用于加速踏板位置。此外,可以生成缩放因子并将其与加速踏板位置信息一起存储在数据库中。对于该示例,加速踏板位置的最高条目是200,这意义不大,因为技术人员不知道如果他接收到值50,则该值的上限可能是什么。缩放因子可以例如使200值与100%相关,使得值50可以指示任何技术人员或工程师能够理解并与其他车辆进行比较的25%。

在一些实施例中,工程师或用户可以实时查看曲线图,使得在执行测试操纵时实时地生成和更新曲线图。工程师或用户可以查看在分析系统110上生成或在经由网络连接的计算机上远程地生成的曲线图。在一些实施例中,可以在稍后的时间重放曲线图生成。观察在测试操纵期间的曲线图生成的能力可帮助用户或工程师识别例如在测试操纵活动和can总线上的消息之间是否存在滞后时间,这可帮助工程师或用户识别哪个信号与感兴趣部件的特性相关联。

图5示出了用于对can消息进行解码的示例性方法500。方法500可以由例如分析系统110执行。方法500可以包括更多或更少的步骤,并且方法500的步骤可以以列出的顺序或以另一顺序执行。另外,在一些情况下,可以并行地执行方法500的步骤。方法500可以在步骤505处开始,其中分析系统110经由用户界面提供一个或多个测试操纵以在车辆上执行,其中测试操纵与车辆的部件相关联。例如,如图4a和图4b中描绘的gui400可用于提供待执行的操纵。使用图4b中描绘的示例,提供预试3430操纵以识别加速踏板位置440特性。步骤505可以更具体地由相对于图1描绘的用户界面子系统150执行。

在步骤510处,分析系统110可以响应于测试操纵通过车辆的can总线接收消息流,每个消息具有消息标识符、字节号和字节号的值。例如,如相对于图2所描绘的消息210可以是响应于测试操纵而生成的由分析系统110在测试操纵执行期间捕获的消息的示例。如相对于图4b的gui400所讨论的,例如,15秒的测试时间可以是在技术人员选择就绪按钮465之后分析系统110从can总线126收集消息的时间。在一些实施例中,可以将缓冲时间添加到测试时间以考虑技术人员点击就绪按钮465与执行测试操纵之间的任何延迟。例如,捕获的消息可以在从技术人员选择就绪按钮465时开始的25秒的时间段内,例如,给出10秒的缓冲。在一些实施例中,缓冲可以长于或短于10秒。

在步骤515,分析系统110可以使用监督机器学习基于消息来隔离与部件相关联的部件消息标识符和部件字节号。例如,ml/id/规则子系统144可以使用监督机器学习来应用机器学习规则以隔离与感兴趣部件的特性相关联的消息标识符和字节号。监督机器学习算法可以识别具有变化值的字节号的子集。换句话讲,监督机器学习算法可以识别can总线上的消息中具有变化值的信号。监督机器学习算法还可以选择与部件相关联的规则的子集。例如,当识别加速踏板位置时,监督机器学习算法可以应用规则,诸如值可以不为负、结束值必须等于起始值等等。监督机器学习算法还可以基于将规则子集应用于字节号的子系统中的每个来选择(即隔离)部件消息标识符和部件字节号。例如,在确定加速踏板位置时,监督机器学习算法可以丢弃许多不活动的信号或者指示测试阶段之前或之后活动的信号,这些信号指示校验和或计数器值。监督机器学习算法可以进一步丢弃具有与所应用规则不相符的值的信号。例如,可以丢弃具有负值的信号。另外,可以丢弃不以相同值开始和结束的信号。一旦完成,监督机器学习算法可以产生具有一个或几个信号的结果,所述一个或几个信号可能潜在地是与感兴趣部件的特性相关联的信号。在曲线图470、472、474、476、478和480的示例中,加速踏板位置缩小到最初的六个信号,然后缩小到三个信号。与通过查看变化的字节号来识别信号相比,工程师可以查看几个曲线图并且相对容易地识别这些信号中的哪个信号是与感兴趣部件的特性相关联的信号。

在一些实施例中,信号的曲线图(诸如曲线图470、472、474、476、478和480)可以在执行测试时实时生成和查看,使得工程师可以观看例如当工程师或用户踩下加速踏板时随着时间的推移生成的曲线图472。当用户踩下加速踏板时,信号增加到值200对应于踩下加速踏板,当在测试操纵期间发生该动作时用户或工程师可以看到该信号增加。这种查看可以使用户或工程师更容易识别对应于感兴趣部件的特性的确切信号。

用于实现某些实施例的计算环境的示例

任何合适的计算系统或计算系统组可以用于执行本文描述的操作。例如,图7示出了云计算系统700,通过该云计算系统可以提供分析系统110的功能的至少一部分。图6描绘了可以是车辆105和/或分析系统110的至少一部分的计算装置600的示例。计算装置600的实现方式可以用于图1所描绘子系统中的一个或多个。在实施例中,具有类似于图6所描绘的装置(例如,处理器、存储器等)的单个车辆105或分析系统110组合图1中描绘为单独子系统的所述一个或多个操作和数据存储区。

图6示出了计算机系统600的示例的框图。计算机系统600可以是本文描述的任何计算机,包括例如分析系统110或车辆105内的计算机。计算装置600可以是或包括例如集成计算机、膝上型计算机、台式计算机、平板计算机、服务器或其他电子装置。

计算装置600可以包括经由总线605与其他硬件对接的处理器640。可以包括任何合适的有形(和非暂时性)计算机可读介质(诸如ram、rom、eeprom等)的存储器610可以体现配置计算装置600的操作的程序部件(例如,程序代码615)。存储器610可以存储程序代码615、程序数据617或两者。在一些示例中,计算装置600可以包括输入/输出(“i/o”)接口部件625(例如,用于与显示器645、键盘、鼠标等对接)和附加存储装置630。

计算装置600执行程序代码615,所述程序代码将处理器640配置为执行本文所述的操作中的一者或多者。在各种实施例中,程序代码615的示例包括数据摄入子系统142、ml/id/规则子系统144、绘图子系统146、缩放子系统148、用户界面子系统150、数据库创建子系统152或执行本文描述的一个或多个操作的任何其他合适的系统或子系统(例如,用于配置交互式用户界面的一个或多个开发系统)。程序代码615可以驻留在存储器610或任何合适的计算机可读介质中,并且可以由处理器640或任何其他合适的处理器执行。

计算装置600可以通过执行程序代码615来生成或接收程序数据617。例如,车辆数据库、信号数据和can总线消息是可以由计算装置600在执行程序代码615期间使用的程序数据617的所有示例。

计算装置600可以包括网络部件620。网络部件620可以表示促进网络连接的任何部件中的一个或多个。在一些示例中,网络部件620可促进无线连接,并且可包括无线接口诸如ieee802.11、蓝牙或无线电接口用于访问蜂窝电话网络(例如,用于访问cdma、gsm、umts或其他移动通信网络的收发器/天线)。在其他示例中,网络部件620可以是有线的,并且可以包括诸如以太网、usb或ieee1394的接口。

尽管图6描绘了具有单个处理器640的单个计算装置600,但是该系统可以包括任何数量的计算装置600和任何数量的处理器640。例如,多个计算装置600或多个处理器640可以通过有线或无线网络(例如,广域网、局域网或互联网)分布。多个计算装置600或多个处理器640可以单独地或彼此协调地执行本公开的任何步骤。

在一些实施例中,由解码系统100提供的功能可以由云服务提供商作为云服务提供。例如,图7描绘了提供分析服务的云计算系统700的示例,所述分析服务可以由跨数据网络720使用用户装置725a、725b和725c的多个用户订阅者使用。用户装置725a、725b和725c可以是上述车辆105或分析系统110的示例。在该示例中,可以在软件即服务(saas)模型下提供智能服务。一个或多个用户可订阅分析服务,并且云计算系统执行处理以向订阅者提供分析服务。云计算系统可以包括一个或多个远程服务器计算机705。

远程服务器计算机705包括用于存储程序代码和程序数据710或两者的任何合适的非暂时性计算机可读介质,所述程序代码和程序数据由云计算系统700使用用于提供云服务。计算机可读介质可以包括能够向处理器提供计算机可读指令或其他程序代码的任何电子、光学、磁性或其他存储装置。计算机可读介质的非限制性示例包括磁盘、存储器芯片、rom、ram、asic、光学存储装置、磁带或其他磁性存储装置、或者处理装置可以从中读取指令的任何其他介质。所述指令可包括由编译器或解释器从以任何合适的计算机程序设计语言(包括例如c、c 、c#、visualbasic、java、python、perl、javascript和actionscript)编写的代码生成的处理器特定指令。在各种示例中,服务器计算机705可以包括易失性存储器、非易失性存储器或它们的组合。

服务器705中的一者或多者执行程序代码710,所述程序代码将服务器计算机705的一个或多个处理器配置为执行提供分析服务的操作中的一个或多个,包括远程执行ml/id/规则子系统144并将信息提供回分析系统110等以执行分析服务的能力。如图7中的实施例所描绘,一个或多个服务器705提供服务来执行分析服务。执行本文描述的一个或多个操作的任何其他合适的系统或子系统(例如,用于配置交互式用户界面的一个或多个开发系统)也可以由云计算系统700实现。

在某些实施例中,云计算系统700可以通过执行程序代码和/或使用程序数据710来实现服务,其可以驻留在服务器计算机705的存储器装置中或任何合适的计算机可读介质中并且可以由服务器计算机705的处理器或任何其他合适的处理器执行。

在一些实施例中,程序数据710包括本文描述的一个或多个数据集和模型。这些数据集的示例包括经销店数据、分类数据等。在一些实施例中,数据集、模型和函数中的一者或多者存储在同一存储器装置中。在附加或替代实施例中,本文描述的程序、数据集、模型和函数中的一者或多者存储在可经由数据网络715访问的不同存储器装置中。

云计算系统700还包括网络接口装置715,该网络接口装置实现往返于云计算系统700的通信。在某些实施例中,网络接口装置715包括适合于建立与数据网络720的有线或无线数据连接的任何装置或装置组。网络接口装置715的非限制性示例包括以太网网络适配器、调制解调器等。服务器705能够使用网络接口装置715经由数据网络720与用户装置725a、725b和725c通信。

一般考虑因素

虽然已针对本主题的特定方面对本主题进行了详细描述,但应当理解,本领域技术人员在理解前述内容后,可很容易对这些方面做出变更、变化和等效操作。本文阐述了许多具体细节,以提供对所要求保护的主题的透彻理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实践所要求保护的主题。在其他情况下,没有详细描述本领域普通技术人员已知的方法、设备或系统,以免模糊所要求保护的主题。因此,已出于示例而非限制的目的呈现了本公开,并且本公开不排除包括对本主题的此类修改、变化和/或添加,这对于本领域的普通技术人员来说是明显的。

除非另有特别说明,否则应理解,在整个说明书中,利用诸如“处理”、“计算(computing/calculating)”、“确定”和“识别”等术语进行的论述指代计算装置的动作或过程,所述计算装置诸如一个或多个计算机或一个或多个类似的电子计算装置,其操纵或变换表示为计算平台的存储器、寄存器或其他信息存储装置、传输装置或显示装置内的物理电子或磁性量的数据。本文使用的“适用于”或“被配置为”意指开放和包容性语言,其不排除适于或被配置为执行附加任务或步骤的装置。另外,“基于”的使用意味着是开放和包容性的,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于超出所述那些条件或值的附加条件或值。本文所包括的标题、列表和编号仅是为了便于解释,并不意味着进行限制。

可在此类计算装置的操作中执行本文公开的方法的各方面。本文讨论的一个或多个系统不限于任何特定的硬件架构或配置。计算装置可以包括提供以一个或多个输入为条件的结果的任何合适的部件布置。合适的计算装置包括访问所存储的软件的基于微处理器的多用途计算机系统,该软件将计算系统从通用计算设备编程或配置到实现本主题的一个或多个方面的专用计算设备。任何合适的编程、脚本或其他类型的语言或语言的组合可用于在软件中实现本文包含的教导,该软件将用于编程或配置计算装置。在以上示例中呈现的框的顺序可以变化——例如,框可以被重新排序、组合和/或分解成子框。某些框或过程可以并行执行。

根据本发明,一种用于解码车辆控制器局域网(can)总线上的消息的方法包括:由计算机系统提供一个或多个测试操纵以在车辆上执行,其中该测试操纵经由图形用户界面被提供给技术人员,并且其中所述一个或多个测试操纵与车辆的部件相关联;响应于技术人员执行所述一个或多个测试操纵,由计算机系统通过车辆的can总线接收消息流,每个消息包括消息标识符、字节号和字节号的值,其中字节号表示消息内的数据的位置;基于消息流中的消息隔离与部件相关联的部件消息标识符和部件字节号,其中隔离部件消息标识符和部件字节号包括使用监督机器学习算法来:识别消息流内的具有变化值的字节号子集;从与部件相关联的多个规则中选择规则子集;以及基于将规则子集应用于字节号子集的每个字节号来选择部件消息标识符和部件字节号。

在本发明的一个方面,所述一个或多个测试操纵基于车辆的类型。

在本发明的一个方面,所述方法包括:由计算机系统提供一个或多个第二测试操纵以在车辆上执行;以及响应于所述技术人员执行所述一个或多个第二测试操纵而由所述计算机系统通过所述车辆的所述can总线接收第二消息流,其中隔离所述部件还基于所述第二消息流中的所述消息。

在本发明的一个方面,该方法包括:由计算机系统生成表示技术人员执行所述一个或多个测试操纵的时间段内的部件字节号的值的曲线图;以及经由图形用户界面提供曲线图。

在本发明的一个方面,在实时基础上更新曲线图以供用户在该时间段期间观察。

在本发明的一个方面,隔离与部件相关联的部件消息标识符和部件字节号包括隔离潜在地与部件相关联的潜在消息标识符和潜在字节号,该方法还包括:由计算机系统生成表示在该时间段内的潜在字节号的值的第二曲线图;以及经由图形用户界面提供第二曲线图。

在本发明的一个方面,该方法包括由计算机系统经由图形用户界面接收对曲线图的选择,该选择指示部件字节号作为与部件相关联的正确部件字节号;以及由计算机系统将部件消息标识符和部件字节号保存为与部件相关联。

在本发明的一个方面,该方法包括:由计算机系统生成车辆的性能度量数据库;以及由计算机系统在性能度量数据库中存储部件消息标识符、部件字节号以及部件、部件消息标识符和部件字节号之间的关联。

在本发明的一个方面,该方法包括:生成缩放因子和偏移值以应用于部件字节号的值;以及由计算机系统在性能度量数据库中存储缩放因子、偏移值以及缩放因子、偏移值和部件之间的关联。

根据本发明,提供了一种系统,其具有:一个或多个处理器;以及存储器,该存储器具有存储在其上的指令,该指令在由所述一个或多个处理器执行时致使所述一个或多个处理器:经由图形用户界面提供一个或多个测试操纵以在车辆上执行,其中所述一个或多个测试操纵与车辆的部件相关联;响应于技术人员执行所述一个或多个测试操纵而从车辆的控制器局域网(can)总线接收消息流,每个消息包括消息标识符、字节号和字节号的值,其中字节号表示消息内的数据的位置;基于消息流中的消息隔离与部件相关联的部件消息标识符和部件字节号,其中隔离部件消息标识符和部件字节号包括使用监督机器学习算法来:识别消息流内的具有变化值的字节号子集;从与部件相关联的多个规则中选择规则子集;以及基于将规则子集应用于字节号子集的每个字节号来选择部件消息标识符和部件字节号。

根据实施例,所述一个或多个测试操纵基于车辆的类型。

根据实施例,指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:经由图形用户界面提供一个或多个第二测试操纵以在车辆上执行;以及响应于技术人员执行所述一个或多个第二测试操纵而从车辆的can总线接收第二消息流,其中隔离部件还基于第二消息流中的消息。

根据实施例,指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:生成表示技术人员执行所述一个或多个测试操纵的时间段内的部件字节号的值的曲线图;并且经由图形用户界面提供曲线图。

根据实施例,在实时基础上更新曲线图以供用户在该时间段期间观察。

根据实施例,用于隔离与部件相关联的部件消息标识符和部件字节号的指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:隔离潜在地与部件相关联的潜在消息标识符和潜在字节号;生成表示该时间段内的潜在字节号的值的第二曲线图;以及经由图形用户界面提供第二曲线图。

根据实施例,指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:经由图形用户界面接收对曲线图的选择,该选择指示部件字节号作为与部件相关联的正确部件字节号;以及保存与部件相关联的部件消息标识符和部件字节号。

根据实施例,指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:生成车辆的性能度量数据库;以及在性能度量数据库中存储部件消息标识符、部件字节号、以及部件、部件消息标识符和部件字节号之间的关联。

根据实施例,指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:生成缩放因子和偏移值以应用于部件字节号的值;以及在性能度量数据库中存储缩放因子、偏移值以及缩放因子、偏移值和部件之间的关联。

根据本发明,提供了一种计算机可读介质装置,其具有存储在其上的指令,该指令在由一个或多个处理器执行时,致使所述一个或多个处理器:经由图形用户界面提供一个或多个测试操纵以在车辆上执行,其中所述一个或多个测试操纵与车辆的部件相关联;响应于技术人员执行所述一个或多个测试操纵而从车辆的控制器局域网(can)总线接收消息流,每个消息包括消息标识符、字节号和字节号的值,其中字节号表示消息内的数据的位置;基于消息流中的消息隔离与部件相关联的部件消息标识符和部件字节号,其中隔离部件消息标识符和部件字节号包括使用监督机器学习算法来:识别消息流内的具有变化值的字节号子集;从与部件相关联的多个规则中选择规则子集;以及基于将规则子集应用于字节号子集的每个字节号来选择部件消息标识符和部件字节号。

根据实施例,所述一个或多个测试操纵基于车辆的类型。


技术特征:

1.一种用于对车辆控制器局域网(can)总线上的消息进行解码的方法,所述方法包括:

由计算机系统提供一个或多个测试操纵以在车辆上执行,其中所述测试操纵经由图形用户界面被提供给技术人员,并且其中所述一个或多个测试操纵与所述车辆的部件相关联;

响应于所述技术人员执行所述一个或多个测试操纵,由所述计算机系统通过所述车辆的can总线接收消息流,每个消息包括消息标识符、字节号和所述字节号的值,其中所述字节号表示所述消息内的数据的位置;

基于所述消息流中的所述消息隔离与所述部件相关联的部件消息标识符和部件字节号,其中隔离所述部件消息标识符和所述部件字节号包括使用监督机器学习算法来:

识别所述消息流内的具有变化值的字节号子集;

从与所述部件相关联的多个规则中选择规则子集;以及

基于将所述规则子集应用于所述字节号子集的每个字节号来选择所述部件消息标识符和所述部件字节号。

2.如权利要求1所述的方法,其中所述一个或多个测试操纵基于所述车辆的类型。

3.如权利要求1或2所述的方法,其还包括:

由所述计算机系统提供一个或多个第二测试操纵以在所述车辆上执行;以及

响应于所述技术人员执行所述一个或多个第二测试操纵,由所述计算机系统通过所述车辆的所述can总线接收第二消息流,其中隔离所述部件还基于所述第二消息流中的所述消息。

4.如权利要求1或2所述的方法,其还包括:

由所述计算机系统生成表示所述技术人员执行所述一个或多个测试操纵的时间段内的所述部件字节号的所述值的曲线图;以及

经由所述图形用户界面提供所述曲线图。

5.如权利要求4所述的方法,其中在实时基础上更新所述曲线图以供用户在所述时间段期间观察。

6.如权利要求4所述的方法,其中隔离与所述部件相关联的所述部件消息标识符和所述部件字节号包括隔离潜在地与所述部件相关联的潜在消息标识符和潜在字节号,所述方法还包括:

由所述计算机系统生成表示在所述时间段内的所述潜在字节号的所述值的第二曲线图;以及

经由所述图形用户界面提供所述第二曲线图。

7.如权利要求6所述的方法,其还包括:

由所述计算机系统经由所述图形用户界面接收对所述曲线图的选择,所述选择指示所述部件字节号作为与所述部件相关联的正确部件字节号;以及

由所述计算机系统将所述部件消息标识符和所述部件字节号保存为与所述部件相关联。

8.如权利要求1或2所述的方法,其还包括:

由所述计算机系统生成所述车辆的性能度量数据库;以及

由所述计算机系统在所述性能度量数据库中存储所述部件消息标识符、所述部件字节号以及所述部件、所述部件消息标识符和所述部件字节号之间的关联。

9.如权利要求8所述的方法,其还包括:

生成缩放因子和偏移值以应用于所述部件字节号的值;以及

由所述计算机系统在所述性能度量数据库中存储所述缩放因子、所述偏移值以及所述缩放因子、所述偏移值和所述部件之间的关联。

10.一种系统,其包括:

一个或多个处理器;以及

存储器,所述存储器具有存储在其上的指令,所述指令在由所述一个或多个处理器执行时致使所述一个或多个处理器:

经由图形用户界面提供一个或多个测试操纵以在车辆上执行,其中所述一个或多个测试操纵与所述车辆的部件相关联;

响应于技术人员执行所述一个或多个测试操纵而从所述车辆的控制器局域网(can)总线接收消息流,每个消息包括消息标识符、字节号和所述字节号的值,其中所述字节号表示所述消息内的数据的位置;

基于所述消息流中的所述消息隔离与所述部件相关联的部件消息标识符和部件字节号,其中隔离所述部件消息标识符和所述部件字节号包括使用监督机器学习算法来:

识别所述消息流内的具有变化值的字节号子集;

从与所述部件相关联的多个规则中选择规则子集;以及

基于将所述规则子集应用于所述字节号子集的每个字节号来选择所述部件消息标识符和所述部件字节号。

11.如权利要求10所述的系统,其中所述一个或多个测试操纵基于所述车辆的类型。

12.如权利要求10或11所述的系统,其中所述指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:

经由所述图形用户界面提供一个或多个第二测试操纵以在所述车辆上执行;以及

响应于所述技术人员执行所述一个或多个第二测试操纵而从所述车辆的所述can总线接收第二消息流,其中隔离所述部件还基于所述第二消息流中的所述消息。

13.如权利要求10或11所述的系统,其中所述指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:

生成表示所述技术人员执行所述一个或多个测试操纵的时间段内的所述部件字节号的所述值的曲线图;以及

经由所述图形用户界面提供所述曲线图。

14.如权利要求13所述的系统,其中在实时基础上更新所述曲线图以供用户在所述时间段期间观察。

15.如权利要求13所述的系统,其中用于隔离与所述部件相关联的所述部件消息标识符和所述部件字节号的所述指令包括另外的指令,所述另外的指令在由所述一个或多个处理器执行时,致使所述一个或多个处理器:

隔离潜在地与所述部件相关联的潜在消息标识符和潜在字节号;

生成表示所述时间段内的所述潜在字节号的所述值的第二曲线图;以及

经由所述图形用户界面提供所述第二曲线图。

技术总结
本公开提供“使用监督机器学习的汽车CAN解码”。本文提供了用于识别在车辆部件之间通过CAN总线发送的某些信号的技术。具体地,被设计为接合感兴趣部件的某些测试操纵被提供给技术人员以在车辆上执行。可以从所述CAN总线捕获消息并使用监督机器学习算法分析消息,以隔离消息id和字节号,使得可以观察所述感兴趣部件的值以确定性能度量。一旦被识别,这些性能度量即可以用于与其他车辆进行比较或改进所述车辆的设计和性能。

技术研发人员:萨西达尔·哈里;普拉韦恩·布帕提拉朱;伯纳德·D·奈菲西;布伦特·爱德华·西利
受保护的技术使用者:福特全球技术公司
技术研发日:2021.01.22
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-2107.html

最新回复(0)