CN111542807A - 用于车辆系统总线的可扩展映射 - Google Patents
用于车辆系统总线的可扩展映射 Download PDFInfo
- Publication number
- CN111542807A CN111542807A CN201980007272.5A CN201980007272A CN111542807A CN 111542807 A CN111542807 A CN 111542807A CN 201980007272 A CN201980007272 A CN 201980007272A CN 111542807 A CN111542807 A CN 111542807A
- Authority
- CN
- China
- Prior art keywords
- vehicle
- control message
- systems
- processors
- command set
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- 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
- H04L12/40013—Details regarding a bus controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/008—Registering or indicating the working of vehicles communicating information to a remotely located station
-
- 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/40215—Controller Area Network CAN
-
- 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/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
Abstract
通常,描述了用于车辆系统总线的可扩展映射的技术。一种被配置为与车辆交互的装置可以执行该技术。该装置可以包括存储器,该存储器存储本地控制消息与标准控制消息之间的可扩展映射。该装置还可以包括处理器,该处理器被配置为执行操作系统以控制车辆的系统。操作系统可以生成标准控制消息,其中,标准控制消息包括命令集的第一表示。处理器可以基于可扩展映射转变标准控制消息以获得本地控制消息,该本地控制消息包括命令集的第二表示。处理器可以经由被耦合到处理器和系统的控制总线来传输本地控制消息,以发起系统的操作状态改变。
Description
本申请要求美国临时专利申请第62/720,701号的权益,其全部内容通过引用并入本文,如同其整体阐述一样。
背景技术
车辆可以包括所谓的头部单元或其他集成计算装置,其呈现出接口(诸如,图形用户界面–GUI),通过该接口来控制车辆系统,诸如,供暖、通风和空调(HVAC)系统、照明系统(用于控制内部和/或外部灯)、娱乐系统、座椅系统(用于控制驾驶员和/或乘客座椅的位置)等。头部单元可以向车辆系统发布一个或多个命令(可以称为“命令集”)以改变车辆系统中的一个或多个车辆系统的操作状态。考虑到不仅来自同一制造商的不同型号之间,而且不同制造商的型号之间的各种各样的车辆系统(就功能和操作两者而言),头部单元可以被配置为输出通常控制车辆系统的最高百分比的命令集,因为手动配置命令集既耗时又昂贵。
此外,制造商可以静态地编码(或换言之,“硬编码”)用于执行每个操作状态改变的命令集。即,制造商可以静态地对命令集进行编码以符合特定的控制总线协议(其中一些可以是专有的),车辆头部单元可以通过该控制总线协议与一个或多个系统进行通信。制造商可以对由车辆头部单元执行的操作系统进行硬编码,以生成符合控制总线协议的命令集。命令集中的每个命令集可能由一个或多个系统的控制总线和/或供应商等改变,导致针对车辆的特定配置的命令集的耗时的静态编码,该车辆的特定配置甚至可以在车辆型号装饰之间改变。
发明内容
在本公开的一般技术中,涉及使车辆计算装置(诸如,车辆头部单元)能够应用用于车辆系统总线的可扩展映射。即,车辆系统总线可以符合不同的专有和开放标准,通过该专有和开放标准,在车辆头部单元与车辆的一个或多个系统之间传送命令集。车辆头部单元可以执行支持统一命令集(或换言之,标准命令集)的操作系统,而车辆系统总线可以传送根据多个控制总线协议中的特定控制总线协议指定的本地控制消息。替代对操作系统进行硬编码以支持特定的本地控制消息,该技术的各个方面可以使车辆头部单元能够获得符合由控制总线支持的特定控制总线协议的标准命令集和本地命令集之间的可扩展映射。
这样,该技术的各个方面可以使制造商能够定义可扩展映射,该映射可以随时间更新以适应对操作系统、控制总线和/或车辆系统中的一个或多个的更新。可扩展映射可以定义标准命令集和本地命令集之间的转变,车辆头部单元可以应用该转变以在标准命令集和本地命令集之间自动转变。由于可以仅定义可扩展映射,而不是在操作系统内静态地对这种映射进行硬编码以仅支持本地命令集,因此该技术的各个方面可以提高可以开发车辆头部单元操作系统的速度,提高与新的或变化的控制总线协议的互操作性,并以其他方式改善车辆头部单元操作系统的开发,同时适应这种操作系统的快速部署,该操作系统提供了本地命令集的全特征支持。
此外,该技术的各个方面可以使车辆头部单元调整用于控制车辆系统的命令集。车辆头部单元可以被配置为实施硬件抽象层(HAL),该硬件抽象层确定命令集与车辆系统的操作状态改变之间的关联。基于这些关联,HAL可以调整命令集,以试图暴露车辆系统的附加功能(如由一种或多种操作状态表示的)。这样,该技术可以使HAL能够自动确定特定于特定型号和制造商的命令集,而无需借助命令集的手动配置。
在这方面,该技术的各个方面可以促进车辆头部单元自身的更有效的操作。即,HAL可以确定命令集和操作状态改变之间的关联,并且基于该关联以更有效地使车辆系统经历操作状态改变的方式调整命令集。该技术可以允许HAL自适应地生成有效地使车辆系统执行操作状态改变的命令集,从而节省处理器周期,节省存储器带宽和由此消耗的底层存储器资源,并因此促进更有效的功耗,而不是发布由大量型号和制造商选择的对车辆系统通用但是对于某些车辆系统来说可能效率低下(尽管是功能性)的命令集。
在一个示例中,该技术的各个方面涉及一种方法,该方法包括:由车辆的一个或多个处理器执行操作系统以控制车辆的一个或多个系统;由一个或多个处理器获得根据控制总线协议指定的本地控制消息与由操作系统支持的标准控制消息之间的可扩展映射;通过由一个或多个处理器执行的操作系统生成标准控制消息,该标准控制消息包括用于发起一个或多个系统的操作状态改变的命令集的第一表示;由一个或多个处理器并且基于可扩展映射,转变标准控制消息以获得本地控制消息,该本地控制消息包括命令集的第二表示;以及由一个或多个处理器并经由被耦合到一个或多个处理器和一个或多个系统的控制总线来传输本地控制消息,以发起一个或多个系统的操作状态改变。
在另一示例中,该技术的各个方面涉及一种装置,该装置被配置为与车辆交互,该装置包括:存储器,该存储器被配置为存储根据控制总线协议指定的本地控制消息与由操作系统支持的标准控制消息之间的可扩展映射;以及一个或多个处理器,该一个或多个处理器被配置为:执行操作系统以控制车辆的一个或多个系统,该操作系统被配置为生成标准控制消息,该标准控制消息包括用于发起一个或多个系统的操作状态改变的命令集的第一表示;基于可扩展映射,转变标准控制消息以获得本地控制消息,该本地控制消息包括命令集的第二表示;以及经由被耦合到一个或多个处理器和一个或多个系统的控制总线,传输本地控制消息以发起一个或多个系统的操作状态改变。
在另一示例中,该技术的各个方面涉及一种在其上存储有指令的非暂时性计算机可读存储介质,该指令在被执行时使车辆头部单元的一个或多个处理器:执行操作系统以控制车辆的一个或多个系统;获得根据控制总线协议指定的本地控制消息与由操作系统支持的标准控制消息之间的可扩展映射,该操作系统被配置为生成标准控制消息,该标准控制消息包括命令集的用于发起一个或多个系统的操作状态改变的第一表示;基于可扩展映射,转变标准控制消息以获得本地控制消息,该本地控制消息包括命令集的第二表示;以及由一个或多个处理器并经由耦合至一个或多个处理器和一个或多个系统的控制总线传输本地控制消息,以发起一个或多个系统的操作状态改变。
在另一示例中,该技术的各个方面涉及一种与第一车辆接口连接的方法,该方法包括:由处理器并且向第一车辆的一个或多个系统发布命令集以发起一个或多个系统的操作状态改变;响应于发布了命令集并且在操作状态改变之后,由处理器从一个或多个系统获得一个或多个车辆参数中的每个车辆参数的操作状态的相应指示;由处理器并且针对命令集确定一个或多个车辆参数的操作状态之间的一个或多个依赖性;以及由处理器并且基于一个或多个依赖性,调整命令集以适应第一车辆的一个或多个系统与第二车辆的一个或多个系统之间的可变性。
在另一示例中,该技术的各个方面涉及一种装置,该装置被配置为与第一车辆接口连接,头部单元包括:一个或多个存储器,该一个或多个存储器被配置为存储用于发起第一车辆的一个或多个系统的操作状态改变的命令集;以及一个或多个处理器,该一个或多个处理器被配置为:向第一车辆的一个或多个系统发布命令集;从一个或多个系统并且响应于发布了命令集且在操作状态改变之后,获得一个或多个车辆参数中的每个车辆参数的操作状态的相应指示;针对命令集确定一个或多个车辆参数的操作状态之间的一个或多个依赖性;以及基于一个或多个相关性,调整命令集以适应第一车辆的一个或多个系统与第二车辆的一个或多个系统之间的可变性。
在另一示例中,该技术的各个方面涉及一种在其上存储有指令的计算机可读介质,该指令在被执行时使一个或多个处理器:向车辆的一个或多个系统发布命令集以发起一个或多个系统的操作状态改变;响应于发布了命令集并且在操作状态改变之后,从一个或多个系统获得一个或多个车辆参数中的每个车辆参数的操作状态的相应指示;针对命令集确定一个或多个车辆参数的操作状态之间的一个或多个依赖性;以及基于一个或多个依赖性,调整命令集以适应第一车辆的一个或多个系统与第二车辆的一个或多个系统之间的可变性。
在下面的附图和描述中阐述了一个或多个示例的细节。本公开的其他特征、目的和优点将通过描述和附图以及通过权利要求而显而易见。
附图说明
图1是示出了示例车辆的框图,该示例车辆被配置为执行本公开中描述的技术的各个方面。
图2A和图2B是更详细地示出了图1的头部单元的示例的框图。
图3是示出了图1所示的硬件抽象层(HAL)的示例的图,其根据本公开中描述的技术的各个方面来调整命令集。
图4是示出了图1所示的HAL的示例的图,其根据本公开中描述的技术的各个方面来调整另一命令集。
图5是示出了在执行本公开中描述的可扩展映射技术的各个方面时图1的HAL的示例操作的流程图。
图6是示出了在执行本公开中描述的技术的各个方面时图1的HAL的示例操作的流程图。
具体实施方式
图1是示出了示例车辆10的框图,该示例车辆10被配置为执行本公开中描述的技术的各个方面。在图1的示例中,在下面的描述中假定车辆10是汽车。然而,本公开中描述的技术可以应用于能够在位置之间运送一个或多个乘员的任何类型的车辆,诸如,摩托车、公共汽车、休闲车(RV)、半挂卡车、拖拉机或其他类型的农用设备、火车、飞机、无人机、直升机、个人运输工具等。
在图1的示例中,车辆10包括处理器12、图形处理单元(GPU)14和系统存储器16。在一些示例中,处理器12、GPU 14和收发器模块(未在图1中示出)可以形成为集成电路(IC)。例如,IC可以被认为是芯片封装内的处理芯片,并且可以是片上系统(SoC)。
处理器12和GPU 14的示例包括但不限于一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。处理器12可以表示车辆10的中央处理单元(CPU)。在一些示例中,GPU 14可以是专用硬件,其包括向GPU 14提供适合于图形处理的大规模并行处理能力的集成和/或分立逻辑电路。在一些情况下,GPU 14还可以包括通用处理能力,并且在实施通用处理任务(即,非图形相关任务)时可以被称为通用GPU(GPGPU)。虽然被示出为专用GPU 14,但GPU 14可以表示被集成到底层电路板(诸如,所谓的“主板”)中或以其他方式被合并到处理器12中的集成GPU。
处理器12可以执行各种类型的应用。应用的示例包括web浏览器、电子邮件应用、电子表格、视频游戏或生成可视对象以进行显示的其他应用。系统存储器16可以存储用于执行一个或多个应用的指令。由处理器12执行应用使处理器12产生将要显示的图像内容的图形数据。处理器12可以基于处理器12传输到GPU 14的指令或命令将图像内容的图形数据传输到GPU 14以进行进一步处理。
处理器12可以根据应用编程接口(API)与GPU 14通信。而且,不要求本公开中描述的技术根据API起作用,并且处理器12和GPU 14可以利用任何技术来与GPU 14通信。
系统存储器16可以表示车辆10的存储器。系统存储器16可以包括一个或多个计算机可读存储介质。系统存储器16的示例包括但不限于随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、闪存或可以用于以指令和/或数据结构的形式携带或存储所需程序代码并且可以由计算机或处理器访问的其他介质。
在一些方面中,系统存储器16可以包括使处理器12执行本公开中赋予处理器12的功能的指令。因此,系统存储器16可以是在其上存储有指令的非暂时性计算机可读存储介质,该指令在被执行时使一个或多个处理器(例如,处理器12)执行各种功能。
系统存储器16是非暂时性存储介质。术语“非暂时性”指示存储介质不体现在载波或者传播信号中。然而,术语“非暂时性”不应被解释为意指系统存储器16是不可移动的或者其内容是静态的。作为一个示例,系统存储器16可以从车辆10中移除,并且移动到另一装置。作为另一示例,可以将与系统存储器16基本类似的存储器插入到自动驾驶车辆10中。在某些示例中,非暂时性存储介质可以存储可以随时间变化的数据(例如,在RAM中)。
如在图1的示例中进一步示出的,车辆10可以包括显示器20和用户接口22。显示器20可以表示可以在其上投影图像的任何类型的无源反射屏幕或者能够显示图像的有源反射或发射或透射显示器(诸如,发光二极管(LED)显示器、有机LED(OLED)显示器、液晶显示器(LCD)或任何其他类型的有源显示器)。尽管被示出为包括单个显示器20,但是车辆10可以包括可以被定位在车辆10的整个驾驶室中的多个显示器。在一些示例中,显示器20的无源版本或显示器20的某些类型的有源版本(例如,OLED显示器)可以集成到座椅、桌子、车顶衬板、地板、窗户(或在没有窗户或窗户的车辆中的墙壁)或车辆的驾驶室的其他方面中。当显示器20表示无源显示器时,显示器20还可以包括能够在无源显示器20上投影或以其他方式重建图像的投影仪或其他图像投影装置。此外,显示器20可以包括集成到驾驶员侧仪表中的显示器,其虚拟地表示物理仪表组(显示速度、转数、发动机温度等)。
显示器20还可以表示与自动驾驶车辆10进行有线或无线通信的显示器。显示器20例如可以表示计算装置,诸如,膝上型计算机、平视显示器、头戴式显示器、增强现实计算装置或显示器(诸如,“智能眼镜”)、虚拟现实计算装置或显示器、移动电话(包括所谓的“智能电话”)、平板计算机、游戏系统或者能够充当集成到车辆10中的显示器的扩展或代替该显示器的另一类型的计算装置。
用户接口22可以表示用户可以与其接口连接以控制车辆10的各种功能的任何类型的物理或虚拟接口。用户接口22可以包括物理按钮、旋钮、滑块或其他物理控制工具。用户接口22还可以包括虚拟接口,借此,车辆10的乘员可以经由作为一个示例的触敏屏幕或经由非触摸接口与虚拟按钮、旋钮、滑块或其他虚拟接口元素进行交互。乘员可以与用户接口22接口连接以控制车辆10内的气候、车辆10的音频播放、车辆10的视频播放、通过车辆10的传输(诸如,手机通话)或能够由车辆10执行的任何其他操作中的一种或多种。
用户接口22还可以表示当充当集成到车辆10中的显示器的扩展或代替该显示器时扩展到显示器20的接口。即,用户接口22可以包括经由平视显示器(HUD)、增强现实计算装置、虚拟现实计算装置或显示器、平板计算机或上面列举的任何其他不同类型的扩展显示器呈现的虚拟界面。
在车辆10的情况下中,用户接口22可以进一步表示用于手动或半手动控制车辆10的物理元件。例如,用户接口22可以包括用于控制车辆10的行进方向的一个或多个方向盘、用于控制车辆10的行进速率的一个或多个踏板、一个或多个手制动器等。
在图1的示例中,处理器12、GPU 14、系统存储器16、显示器20和UI 22在汽车的情况下可以共同地至少部分地表示所谓的头部单元24(或者换言之,“车辆头部单元24”)。头部单元24可以表示能够与车辆10的各个方面接口连接和/或为乘员提供娱乐和/或有关车辆10的信息的任何集成或单独的计算装置(其中,这种头部单元可以被称为“信息娱乐单元”或“信息娱乐系统”)。
如在图1的示例中进一步示出的,车辆10可以包括多个不同的车辆系统26A-26N(“车辆系统26”)。车辆系统26可以包括供暖、通风、空调(HVAC)系统、温度调节系统(例如,除了HVAC系统之外,其还可以包括经加热和/或经冷却的座椅)、照明系统(用于提供内部和/或外部照明)、座椅控制系统(用于调整乘员就座的位置)、镜子控制系统(用于控制内部和/或外部镜子,包括后视镜、侧镜、遮阳镜等)、雨刷控制系统、娱乐系统(用于控制无线电播放、视频播放、图像显示等)、安全辅助系统(用于控制停车辅助、后备辅助等)、天窗/顶窗控制系统(用于控制天窗和/或顶窗)以及能够经由诸如头部单元24的头部单元进行控制的任何其他类型的车辆系统。车辆系统26的示例可以包括电子控制单元(ECU),其可以控制车辆系统26的任何前述示例。
头部单元24可以向车辆系统26发布一个或多个命令(其可以被称为“命令集”,在图1中被示出为“CS 25A-25N”,并且统称为“CS25”)以改变车辆系统26中的一个或多个车辆系统26的操作状态。考虑到不仅来自同一制造商的不同型号的车辆之间,而且来自不同制造商的型号车辆之间的各种各样的车辆系统26(就功能和操作两者而言),头部单元24可以被配置为输出通常控制车辆系统26的最高百分比的命令集25,因为命令集的手动配置是耗时、昂贵且容易出错的。
此外,头部单元24可以执行操作系统(“OS”)30,该操作系统30被配置为根据诸如控制局域网(CAN)协议等控制总线协议来输出命令集。头部单元的操作系统(诸如,OS 30)可以被静态配置(或换言之,“硬编码”)以经由CAN协议或其他标准(例如,开放或专有)控制总线协议与车辆系统26通信。即,制造商可以手动地对操作系统进行编程以使操作系统能够经由控制总线(为了便于说明未在图1的示例中示出)与车辆系统26中的每个车辆系统26接口连接。
对操作系统进行编程以正确地与车辆系统26中的每个车辆系统26接口连接可能很耗时,并且需要大量测试以确保与车辆系统26的正确互操作性。为了说明,制造商可能会从各种各样的供应商获取车辆系统26,这些供应商可以提供传送车辆属性状态并且根据许多不同的控制总线协议进行控制的车辆系统26。即使在单个型号内,制造商也可能必须获取根据不同的控制总线协议(诸如,在同一型号的不同装饰之间)进行通信的车辆系统26。因此,制造商可能创建两个或更多个不同版本的操作系统,操作系统中的每个操作系统被分别硬编码以经由不同的控制总线协议与车辆系统26通信。另外,对控制总线协议的任何改变都可能导致制造商更新操作系统以对操作系统进行硬编码以支持控制总线协议的较新版本,这可能会潜在地降低制造商支持新的或改变的控制总线协议的能力,从而潜在地阻止车辆10接收提高车辆10的安全性、便利性和其他方面的升级。
根据本公开中描述的技术的各个方面,车辆计算装置(诸如,作为一个示例的头部单元24)可以应用用于车辆系统总线(其可以称为“控制总线”)的可扩展映射。如上面所提到的,车辆系统总线可以符合不同的专有和开放标准,通过该标准,在车辆的头部单元24(其也可以称为“车辆头部单元24”)与一个或多个系统(例如,车辆系统26)之间传送命令集(“CS”)25A-25N(“CS 25”)。车辆头部单元24可以执行支持统一命令集(或换言之,标准命令集)的操作系统30,而车辆系统总线26可以传送根据多个本地控制总线协议中的特定本地控制总线协议指定的本地控制消息。替代对操作系统30进行硬编码以支持特定的本地控制消息,该技术的各个方面可以使车辆头部单元24获得标准命令集和符合由本地控制总线支持的特定本地控制总线协议的本地命令集之间的可扩展映射31(“EM 31”)。可以根据DBC格式或Kayak CAN定义(KCD)格式中一种格式来格式化本地控制消息。
在操作中,处理器12可以执行OS 30以控制车辆系统26中的一个或多个车辆系统26,其中,OS 30可以支持标准命令集。OS 30可以根据公共或标准控制总线协议将标准命令集输出为一个或多个消息,其中,这些消息可以被称为“标准控制消息”。处理器12可以从系统存储器16获得EM 31,该EM 31可以定义根据本地控制总线协议指定的本地控制消息与由OS 30支持的标准控制消息之间的映射。
在一些示例中,处理器12可以执行硬件抽象层(HAL)28,从而在OS 30与车辆系统26(包括未在图1的示例中示出的控制总线)之间提供所谓的软件垫片层。换言之,HAL 28可以表示被配置为扩展底层头部单元操作系统30(“OS 30”)的单元。处理器12可以执行表示OS 30的一个或多个线程,包括与HAL 28相关联的一个或多个线程。处理器12可以以与OS30的一个或多个线程相关联的一个或多个命令的形式从系统存储器16中检索OS 30(包括HAL 28),从而在执行之前将命令加载到本地存储器(例如,为了便于说明,未在图1的示例中示出的层一(L1)、层二(L2)和/或层三(L3)缓存)中。这样,HAL 28和OS 30被示出为被包括在使用虚线的处理器12内以指示由处理器12执行,同时还被示出为被包括在使用实线的系统存储器16中以指示HAL 28和OS 30的长期存储。尽管被示出为由处理器12执行,但是也可以使用专用电路系统或硬件逻辑来实施HAL 28。
无论如何,当提供软件垫片层以使OS 30能够与车辆系统26接口连接时,HAL 28可以获得EM 31。这样,OS 30可以生成命令集25作为符合由OS 30支持的控制总线协议的标准控制消息。HAL 28可以接收(或在一些情况下拦截)标准控制消息并基于EM 31且在没有OS30请求这种转变的情况下(并且在这方面,从OS 30的角度透明地)来转变标准控制消息,以获得符合本地控制总线的本地控制消息。
EM 31可以定义标准控制消息和本地控制消息之间的按字节映射。即,EM 31可以定义用于标准控制消息的每个字节的映射,定义如何在消息内重新排列每个字节和/或将值转换(例如,用于控制消息标识符)以符合本地控制总线协议。HAL 28可以接收标准控制消息,该标准控制消息可以包括用于发起车辆系统26中的一个或多个车辆系统26的操作状态改变的命令集(诸如,命令集25中的一个命令集)的第一表示。
HAL 28可以将EM 31应用于标准控制消息,以重新排列或以其他方式转换标准控制消息内的字节值,从而转变标准控制消息以获得符合控制总线协议的本地控制消息。这样,本地控制消息可以包括命令集的第二表示。HAL 28可以经由被耦合到处理器12和车辆系统26的控制总线来传输本地控制消息,以发起车辆系统26中的一个或多个车辆系统26的操作状态改变。
HAL 28同样可以从车辆系统26接收(或者在一些情况下从OS 30和车辆系统26的角度透明地拦截)包括操作状态27A-27N(在图1中示出为“ST 27A-27N”的“操作状态27”)的本地控制消息。本地控制消息可以符合本地控制总线协议。HAL 28可以基于EM 31转变本地控制消息以获得标准控制消息,该标准控制消息由OS 30再次支持。如上面所提到的,HAL28可以提供该转变作为对底层硬件进行抽象化的一部分(或换言之,作为提供垫片软件层的一部分),从而允许在各种不同的硬件平台上进行OS 30的潜在更简单的开发和安装。HAL28可以将标准控制消息提供给OS 30,该OS 30可以获得对先前发送的标准控制消息所请求的操作状态改变的确认。
另外,头部单元24可以调整用于控制车辆系统26的命令集25。如上面所提到的,头部单元24可以被配置为实施HAL 28,该HAL 28确定命令集25与车辆系统26的操作状态27改变之间的关联29(“ASSOC 29”)。基于这些关联29,HAL 28可以调整命令集25,以试图暴露车辆系统26的附加功能(如一种或多种操作状态27所表示的)。这样,该技术可以允许HAL 28自动确定特定于特定型号和制造商的命令集25,从而潜在地避免了手动配置命令集25和随之而来的时间、费用以及潜在的错误。HAL 28可以使用关联29作为EM 31的基础,定义标准控制消息和本地控制消息之间的各种映射,以实现车辆系统26的各种操作状态改变。
如上面所提到的,在一个示例中,HAL 28可以表示被配置为响应于经由显示器20呈现的GUI从乘员接收到的输入来处理来自OS 30的输出以改变车辆系统26中的一个或多个车辆系统26的操作状态的单元。HAL 28还可以处理来自OS 30的输出,该输出是响应于诸如操作状态27的其他输入而自动生成的。输出可以指涉由OS 30发布的命令集25,以执行操作状态改变。OS 30可以将命令集25发布为一系列“SET”命令,该一系列“SET”命令中的每个命令都指定车辆系统26中的一个车辆系统26、车辆系统26中的一个车辆系统26的属性以及所指定属性的值。SET命令可以指定车辆系统26中所指定的一个车辆系统26要保持的操作状态。
HAL 28还可以处理来自车辆系统26的指示车辆系统26的各种属性的当前操作状态27的输入。OS 30可以输出“GET”命令,该“GET”命令通过提供指示当前操作状态27的输入来向车辆系统26查询关于车辆系统26响应的各种属性。类似于“SET”命令,“GET”命令可以各自指定车辆系统26中的一个车辆系统26和值的查询所指向的车辆系统26中的一个车辆系统26的属性。在一些示例中,车辆系统26可以在响应于“SET”命令而执行各种操作状态改变之后以输入来响应。无论如何,HAL 28可以处理输出和输入以确定关联29。
为了说明,假定车辆系统26A表示HVAC系统。各种HVAC系统可以取决于车辆的点火状态和HVAC系统的底层环境控制单元(ECU)来不同地操作。此外,考虑到HVAC系统26A的各种属性可以与HVAC系统26A的其他属性以及车辆系统26B-26N的潜在其他属性交互。例如,当设置HVAC温度时,HVAC系统26A可以自动改变风扇的速度。HAL 28可以确定由操作状态27A表示的HVAC系统26A的各种车辆属性之间的关联29,该操作状态27A由将命令集25A输出到车辆系统26以设置HVAC温度而产生。
接下来,HAL 28可以基于关联29来调整命令集25。在上述示例中,HAL 28可以基于识别设置HVAC温度与自动改变风扇速度之间的依赖性的关联29来调整命令集25A,以包括将HVAC系统26A的风扇速度设置为其先前设置的风扇速度值(其可以基于乘员偏好或作为乘员先前设置HVAC系统26A的风扇速度的结果而被配置)的附加命令。HAL 28可以以这种方式基于关联29(其也可以被称为“依赖性29”)来调整命令集25以适应车辆10的车辆系统26与第二车辆的车辆系统之间的可变性。
HVAC环境之外的参数之间的依赖性的进一步示例可以包括内部照明(圆顶灯、阅读灯、落地灯等),该内部照明可以是直接可控的(经由开关或其他用户接口,包括经由头部单元)以及与门或点火状态相关联。HAL 28可以识别门的状态与打开驾驶员门时灯点亮之间的依赖性,这可以使HAL 28能够确定该光对于照亮驾驶员区域是有用的。
另一示例可以是在雨刷和垫圈的情况下,其中,HAL 28可以在启用垫圈时确定将雨刷设置为特定的雨刷速率,该特定的雨刷速率可以覆盖现有的雨刷速率。又一示例可以是在高级驾驶员辅助系统(ADAS)的情况下,其中,HAL 28可以识别出ADAS的各个状态仅在车辆10以某些速度行进时或在车辆10处于某些状态下时(例如,当反向操作时,ADAS激活后置摄像头并经由头部单元显示由后置摄像头捕获的图像)可用。HAL 28可以确定参数,并且然后识别相对于照明、雨刷和垫圈、ADAS、车辆状态和/或速度的所有各种依赖性。
而且,HAL 28可以确定在车辆10开启时可用的参数列表。作为一个示例,HAL 28可以确定在点火关闭时车辆10是否允许激活前灯,因为一些车辆在车辆断电时可以自动关闭前灯。Hal 28可以确定相对于各个点火状态(例如,关闭、附件、开启等)的各个参数之间的依赖性。Hal 28还可以确定相对于车辆10的各个状态(诸如,处于正常状态和/或移动或停放和/或不移动)的座椅位置之间的依赖性。
在这方面,HAL 28可以处理操作状态27之间的改变以生成改变记录,解析操作状态27以发现属性之间的因果关系(其也可以被称为“参数”,例如,当参数A改变时,参数B和C也改变),并生成识别操作状态27的改变之间的因果关系(或换言之,依赖性)的关联29。在一些示例中,HAL 28可以将关联29存储为表、链表、图形、树或任何其他适当的数据结构。在其他示例中,HAL 28可以使用机器学习来训练模型以识别关联29,并动态生成寻址关联29的不同版本的命令集25。这样,为了确定依赖性29,HAL 28可以关于由命令集25发起的操作状态改变和车辆参数的操作状态27来执行机器学习。
在识别出这些依赖性29之后,HAL 28可以定义由OS 30支持的针对由依赖性29识别的特定操作状态改变的标准控制消息与符合用于调用操作状态改变的本地控制总线协议的本地控制消息之间的映射31。该映射可以使上面提到的转变成为可能,其中,这种映射是可扩展的,因为由于对OS 30、控制总线和/或车辆系统26中的一个或多个的更新,EM 31可以随时间改变。在一些示例中,制造商可以手动对EM 31进行编程,定义能够由HAL 28执行以执行标准控制消息和本地控制消息之间的转变的文件或脚本,而不是HAL 28定义EM31。
这样,该技术的各个方面可以使制造商能够定义EM 31,该EM 31可以随时间更新以适应对OS 31、控制总线和/或车辆系统26中的一个或多个的更新。EM 31可以定义标准命令集和本地命令集之间的转变,车辆头部单元可以应用该转变来在标准命令集和本地命令集之间自动进行转变。由于可能仅需要定义EM 31,而不是在操作系统内静态地对这种映射进行硬编码以仅支持本地命令集,因此该技术的各个方面可以提高可以开发车辆头部单元操作系统(例如,OS 30)的速度,提高与新的或变化的控制总线协议的互操作性,并以其他方式改善车辆头部单元操作系统的开发,同时适应这种操作系统的快速部署,该操作系统提供了就本地命令集而言的全特征支持。
而且,该技术的各个方面可以促进头部单元24自身的更有效的操作。即,HAL 28可以确定命令集25与操作状态27的改变之间的关联29,并且基于关联29以更有效地使车辆系统26经历操作状态27的改变的方式调整命令集29。该技术可以允许HAL 28自适应地生成更有效地(相对于通用命令集)使车辆系统26执行操作状态27的改变的命令集25,从而节省了处理器周期,节省了存储器带宽和由此消耗的底层存储器资源,并因此促进了更有效的功耗,而不是发布由大量型号和制造商选择的车辆系统26通用的命令集25,但对于某些车辆系统26来说可能效率低下(尽管功能正常)。
尽管相对于HVAC系统进行了描述,但是该技术可以相对于其他系统应用。一些可能的示例包括头部单元24可以直接控制以及与门打开或点火状态相关联的内部照明系统(例如,圆顶灯、阅读灯等)。头部单元24可以确定当驾驶员门打开时灯点亮,并且从而确定该灯对于照亮驾驶员区域是有用的。作为另一示例,头部单元24可以识别雨刷和窗户的垫圈之间的关联。头部单元24可以识别某一车辆状态和/或速度与高级驾驶员辅助系统(ADAS)模式之间的关联(其中,某些ADAS模式可能仅在某些汽车状态和/或速度下可用)。
图2A和2B是更详细地示出了图1的头部单元的示例的框图。在图2A的示例中示出的头部单元24A是图1所示的头部单元24的一个示例。头部单元24A可以执行为汽车服务200提供执行环境的OS 30。
头部单元24A还可以执行两个不同的HAL 28A和28B。车辆HAL28A可以执行转变服务202,该转变服务202可以根据本公开中描述的技术的各个方面基于EM 31在标准控制消息和本地控制消息之间执行转变。控制器局域网(CAN)总线HAL 28B可以表示被配置为将本地控制消息转换为通用系统总线(USB)信号并将USB信号转换为本地控制消息,从而在硬件和OS 30之间提供又一抽象层的单元。
头部单元24A还可以包括USB 206(其是物理USB接口)以及一个或多个处理器、固定逻辑电路、专用信号处理器、专用控制处理器(诸如,专用控制总线处理器)和/或暴露USBCAN接口208和网关210的类似物。USB CAN接口208可以表示被配置为经由USB端口提供对CAN 211的访问的单元。网关210表示被配置为暴露通过其控制对CAN 211的访问的控制总线网关的单元,并且可以表示当存在某些条件(例如,丢弃格式不正确的CAN信号等)时能够限制对CAN 211的访问的防火墙或其他类型的装置。
如上面所提到的,转变服务202可以从OS 30接收标准控制消息,该标准控制消息可以源自汽车服务200或其他地方(诸如,在OS 30提供的执行环境中执行的一个或多个应用)。转变服务202可以获得EM 31,其可以表示能够存储映射的文件或其他数据结构。EM 31的示例如下。
在上述示例中,EM 31以标准命令“vehicleProperty”开始,其发信号通知以下内容与车辆属性有关(其是指操作状态的另一方式)。下一行指定车辆HAL(VHAL)属性标识符(“vhalPropertyId”)作为窗移动(“WINDOW_MOVE”),该车辆HAL(VHAL)属性标识符定义了用于打开和关闭电动窗的映射。WINDOW_MOVE可以表示标准标识符的一个示例,并且可能不是车辆特定的。第三行提供了什么被允许访问,将访问指定为读/写(“READ_WRITE”),并指示窗移动属性为能够被读取(例如,通过GET命令)及被写入(例如,通过SET命令)。可以以这种方式用车辆属性标识符和访问级别定义车辆的每个操作状态。
在每个操作状态打开识别车辆属性和访问的语句之后,EM 31可以为车辆中的每个适用区域定义映射。映射以CAN信号(“canSignal”)开始,接着是波形开括号。每个CAN信号可以指定相应的区域,其中,第一映射将区域识别为左侧的第一行(“ROW_1_LEFT”),其指的是前驾驶员侧窗(在左侧驾驶车辆中)。接下来,前驾驶员侧窗映射指定消息标识符(“messageId”),该消息标识符是用于对应的CAN消息的消息标识符(即,在该示例中为0x124)。该消息之后是一个位(被设置为零)和大小(被设置为四),其是在将标准控制消息转变为本地控制消息(在该示例中可以称为CAN消息)时需要设置的CAN特定语法。
接下来是三个“conversionEnum”语句,该三个“conversionEnum”语句中的每个语句由波形开括号和波形闭括号定义。“conversionEnum”发信号通知在标准控制消息列举(用于指定无操作窗移动)和CAN消息(用于指定无操作窗移动)之间存在转换。在该示例中,转换将值为零的CAN添加到标准控制消息,该消息不包括用于无操作窗移动的VHAL值(“vhalValue”)。下一conversionEnum指定将用于快速打开的vhalValue(其为2)转换为用于执行快速打开的canValue(其为0xA)。第三conversionEnum将用于快速关闭的vhalValue(其为负2)替换为用于执行快速关闭的canValue(为0xB)。
在第三conversionEnum之后,EM 31指定右前乘客侧窗的区域(“ROW_1_RIGHT”),该区域具有与第一CAN信号语句相同的消息标识符,但指定了4位且大小为4。EM 31可以包括用于汽车的不同区域的多个conversionEnum语句以及可能的附加CAN信号语句,为了便于解释而未示出这些语句。
转变服务202可以接收标准控制消息,该标准控制消息将右前驾驶员侧窗的快速打开定义为一个或多个字节的序列,将操作状态改变定义为WINDOW_MOVE、ROW_1_LEFT和为2的vhalValue。转变服务202可以通过用消息ID为0x124、位和大小为0|4并且CAN值为0xA替换WINDOW_MOVE、ROW_1_LEFT来生成CAN消息。同样地,转变服务202可以转换指定驾驶员右侧窗快速打开的CAN消息,用WINDOW_MOVE、ROW_1_LEFT和为2的vhalValue替换消息ID为0x124、位和大小为0|4以及CAN值为0xA。
下面提供了EM 31的另一示例,其传递以摄氏度为单位的温度。
在上述示例中,EM 31指定了HVAC温度设置(“HVAC_TEMPERATURE_SET”)的vhalPropertyId,其是OS 30使用的标准ID。在第三行中指定访问,其中,EM 31设置读取的访问,因为在这种情况下车辆10不允许头部单元24设置温度(其可以仅由专用按钮或其他控件设置)。在canSignal语句中,EM 31将区域定义为前排驾驶员侧,并以消息ID、位、大小、标度和偏移的形式指定多个CAN特定语法,CAN特定语法中的每个CAN特定语法都是公共CAN语法。定义“转换”,由此EM 31指定对名为“FAHRENHEIT_TO_CELSIUS”的函数的方法调用。
转变服务202可以接收请求HVAC温度的标准控制消息,并生成包括消息ID为0x123、位和大小为8|16(其中,八位指示温度值位于有效载荷的第8位处开始,并且大小指示该值占用有效载荷的2个字节)以及标度和偏移量的CAN消息。转变服务202可以将该消息转发到CAN-USB HAL,该CAN-USB HAL在经由网关210经由USB CAN接口将信号输出到CAN211之前将CAN消息转换为USB信号。CAN211可以将CAN消息传输到在图2A的示例中被表示为电子控制单元(ECU)212A-212N(“ECU 212”)的一个或多个车辆系统26。
负责控制HVAC系统的ECU 212中的一个ECU可以以华氏度为单位的当前温度来回复该消息,生成CAN消息,该CAN消息将从有效载荷中的第8位处开始的以华氏度为单位的温度指定为标度为2且偏移为50的两字节温度(例如,可以将90度温度指定为40)。HVAC ECU212可以经由CAN总线211传输CAN消息,然后网关210、USB CAN接口208和CAN-USB HAL 204将CAN消息中继到转变服务202。
转变服务202可以根据前述映射来转变CAN消息,用HVAC_TEMPERATURE SET、READ和ROW_1_LEFT替换消息ID、位、大小、标度和偏移。转变服务202可以解析温度并调用FAHRENHEIT_TO_CELSIUS方法,将温度传递给前述方法。在传递温度之前,转变服务202可以根据标度和偏移处理温度(以恢复90华氏度的实际温度)。FAHRENHEIT_TO_CELSIUS方法可以将温度从华氏度转换为摄氏度,并在标准控制消息中指定温度。然后,转变服务202可以将标准控制消息传输到汽车服务200。
尽管相对于特定的转换过程(即,上述示例中的FAHRENHEIT_TO_CELSIUS)进行了描述,但是可以相对于其他类型的转换来执行该技术。例如,其他示例转换过程包括计算每次完整旋转时的车轮行进距离的RADIUS_TO_CIRCUMFERENCE、用于将来自对数电位计的读数转换为线性标度或反之亦然的LOG或EXPONENT。
下面示出了EM 31的第三示例,其将温度作为+1/-1事件传递给车辆系统26的HVAC系统。
在上面的示例中,EM 31指定vhalPropertyId为“HVAC_TEMPERATURE_SET”以及对“WRITE”的访问和左前驾驶员侧的区域(“ROW_1_LEFT”),其映射到标准控制消息的语法。接下来,EM 31指定messageId为0x123、位为0、大小为2并且偏移为-1,其全部表示代替vhalPropertyId、访问和区域使用的CAN协议语法。然后,EM 31指定调用方法“DELTA_UPDATE”并列出“deltaUpdate”的参数(“params”)的转换。EM 31的deltaUpdate内是20摄氏度的初始值(“initValue”)和温度的最大步长(“maxStep”)。
转变服务202可以从汽车服务200接收或以其他方式获得列出HVAC_TEMPERATURE_SET、WRITE和ROW_1_LEFT的标准控制消息,用0x123、0、2、-1替换这些标准语法元素。转变服务202可以在有效载荷的位0处插入为-1或1的两个字节的温度更新,从而将标准控制消息转变为CAN消息。转变服务202可以将CAN消息输出到CAN-USB HAL 204,该CAN-USB HAL 204在经由USB CAN接口208和网关210发送USB信号之前将CAN消息转换为USB信号。
CAN 211可以接收CAN消息并将CAN消息中继到ECU 26,其中,ECU 212中的适当的一个ECU 212(即,在该示例中为HVAC ECU)可以处理CAN消息并输出响应CAN消息。响应CAN消息可以在到达转变服务202之前遍历CAN 211、网关210、USB CAN接口208和CAN-USB HAL204。基于EM 31的上述示例,转变服务202可以相对于响应CAN消息执行逆向转变或换言之映射,以获得响应标准控制消息。转变服务202可以将响应标准控制消息输出到汽车服务200。
在图2B的示例中,头部单元24B是图1的示例中所示的头部单元24的另一示例。除了在图2B的示例中网关210可以执行先前相对于转变服务202所描述的转变服务之外,头部单元24B可以与头部单元24A类似(如果不是基本上类似)。头部单元24B的转变服务202被替换为通用VHAL服务220,该通用VHAL服务220可以关于由网关210根据EM 31输出的标准控制消息来执行其他格式化、转换或其他过程。制造商可以对网关210进行编程以执行转变服务202,以便经由防火墙CAN访问提供额外的安全性。
图3是示出了图1所示的HAL 28的示例的图,该HAL 28根据本公开中描述的技术的各个方面来调整命令集25-1A。HAL 28可以最初指定用于操作状态改变50A的命令集25-1A,该命令集25-1A配置HVAC系统26A的各个参数以提供“MAX AC”,该“MAX AC”可以指最大空调配置。响应于乘员选择或以其他方式激活MAX AC 50A,HAL 28可以发布命令52A-52F。
命令52A指定SET命令,该SET命令将系统标识符、参数和值作为变量。在该示例中,系统标识符被假定为“HVAC_SYS”,该“HVAC_SYS”表示与HVAC系统26A相关联的标识符。所有命令52A-52F指定相同的系统标识符HVAC_SYS。为了说明的目的,命令52A的参数被假定为“FAN”,该“FAN”可以指HVAC系统26A的风扇速度。命令52A的值将风扇速度设置为“HIGH”。
命令52B是另一SET命令,该SET命令指定与命令52A相同的系统标识符和参数,但将风扇速度设置为值为“5”。命令集25-1A内存在冗余命令(指的是可能尝试针对相同参数发起类似或相同配置的命令),因为命令集25-1A是能够针对相同制造商的许多不同型号和/或不同制造商的许多不同型号发起MAX AC 50A的初始通用命令集。
命令52C是另一SET命令,该SET命令指定与命令52A相同的系统标识符,但是指定不同的参数“TEMP”,该参数“TEMP”指HVAC系统26A要保持的舱室温度。命令52C将舱室温度设置为值为“65”(出于说明的目的,假定该温度为华氏度)。
命令52D是另一SET命令,该SET命令指定与命令52A相同的系统标识符,但是指定不同的参数“VENT”,该参数“VENT”指车辆10的驾驶室中要从中排放冷却空气的通风口或一组通风口。命令52D将通风口设置为“HIGH”值,该“HIGH”值可以指各种ECU中的仪表板通风口。
命令52E是另一SET命令,该SET命令指定与命令52D相同的系统标识符和参数,但将通风口设置为“DASH”值,该“DASH”值指仪表板通风口。命令52F是另一SET命令,该SET命令指定与命令52E相同的系统标识符和参数,但将通风口设置为值,该“UPPER”值指仪表板通风口和任何天花板通风口。同样地,命令集25-1A内存在冗余命令(指的是可能尝试针对相同参数发起类似或相同配置的命令),因为命令集25-1A是能够针对相同制造商的许多不同型号和/或不同制造商的许多不同型号发起MAX AC 50A的初始通用命令集。
HAL 28可以将命令52A-52F中的每个命令(按顺序地或同时地)发布给车辆系统26A,该车辆系统26A可以用一个或多个消息来响应命令52A-52F中的每个命令,该消息指定上面所识别的参数的操作状态27。HAL 28可以基于操作状态27来调整命令集25-1A以获得调整后的命令集25-1A’。
如图3的示例中所示的,HAL 28可以调整命令集25-1A以包括新命令52G并移除命令52D和52F。HAL 28还可以调整单独的命令52C以获得调整后的命令集25-1A’的命令52H。
HAL 28可以由于接收到操作状态27中的一个操作状态(例如,响应于命令52A)而获得新的命令52G,该操作状态27指示HVAC系统26A无法完成命令52A,因为HVAC系统26A无法操作(参考其有功功率状态)。HAL 28可以响应于操作状态27中的一个操作状态而生成命令52G,该命令52G将HVAC系统26A的参数“POWER”设置为值“ON”。HAL 28可以遍历与命令52G类似的一个或多个冗余命令,但是指定了相同的参数(但具有不同的标识符,诸如,“OPERATIONAL”或“AC”)和/或不同的值(诸如,“OPERATIONAL”参数的“YES”)。
在这方面,因为未激活HVAC系统26A(就接收功率而言),命令集25-1A最初可能无法发起HVAC系统26A的操作状态改变50A。因此,HAL 28可以自动地调整命令集25-1A以使命令集25-1A(以调整后的命令集25-1A’的形式)能够发起HVAC系统26A的操作状态改变。换言之,HAL 28可以发布探索性命令集以发起一个或多个系统的探索性操作状态改变,并且响应于发布了命令集且在探索性操作状态改变之后,从一个或多个系统获得一个或多个车辆参数中的每个车辆参数的实际操作状态的相应指示。接下来,HAL 28可以确定针对探索性命令集确定一个或多个车辆参数的实际操作状态之间的一个或多个依赖性,并基于该一个或多个依赖性,生成可扩展映射以将命令集从本地控制消息转变为标准控制消息。
继续该示例,由于接收到指示命令52D和52F不是所识别的命令52D和52F(作为一个示例,意味着命令52D和52F使用了HVAC系统26A的ECU不支持的语法)的操作状态27中的一个或多个操作状态,HAL 28可以移除命令52D和52F。在一些情况下,系统26来自第一组供应商,并且因此与来自第二组供应商的系统相比,系统26可以对各种参数使用不同的语法(其中,假定第一组供应商和第二组供应商相差至少一个供应商)。HAL 28最初可以发布冗余命令52D-52F以确定命令52D-52F中的哪一个命令导致操作状态27中的成功的一个操作状态。
尽管被描述为发布冗余命令52D-52F,但是HAL 28可以基于HAL28可从HVAC系统26A检索的各种信息通过一个或多个命令来减少冗余命令52D-52F。例如,HAL 28可以发布GET注释以检索HVAC系统26A的类型、供应商等。HAL 28可以将HVAC系统26A的不同类型、供应商等与不同语法相关联。基于该检索到的信息,HAL 28可以消除或以其他方式移除与不支持的语法相关联的冗余命令52D-52F中的一个或多个冗余命令。
返回图3所示的示例,HAL 28还可以调整单独的命令52C以将值从65改变为60。HAL28可能先前已经识别出HVAC系统26A的60华氏度的最低温度值,并且自动调整命令52C以设置为最低温度。
然后,HAL 28可以基于调整后的命令集25-1A'自动生成EM 31。HAL 28可以包括每个命令的通用映射,这些映射被放置在形成EM 31的脚本或其他文件中,其中,命令中的每个命令可以根据EM 31从标准控制消息被转变为CAN消息。
图4是示出了图1所示的HAL 28的示例的图,该HAL 28根据本公开中描述的技术的各个方面来调整另一命令集25-2A。HAL 28最初可以指定用于操作状态改变50B的命令集25-2A,该命令集将HVAC系统26A的各个参数配置为“SET TEMP<X>”,该“SET TEMP<X>”可以指将温度设置为由乘员输入的变量值“X”。响应于乘员选择或以其他方式激活SET TEMP<X>50B,HAL 28可以发布命令52M。
命令52M指定SET命令,该SET命令将系统标识符、参数和值作为变量。在该示例中,系统标识符被假定为“HVAC_SYS”,该“HVAC_SYS”表示与HVAC系统26A相关联的标识符。为了说明的目的,命令52M的参数被假定为“TEMP”,该“TEMP”可以指HVAC系统26A要保持的温度。命令52M的值将温度设置为变量“X”。乘员可以指定变量“X”的值。
响应于向HVAC系统26A发布命令52M,HAL 28可以接收操作状态27A和27B。操作状态27A指示将风扇速度参数“FAN”的值设置为速度“5”。操作状态27B指示将通风口参数“VENT”设置为“DASH”。
在发布命令52M之后,乘员可以指示温度是针对车辆10内的第一HVAC区域而不是针对车辆10内的第二HVAC区域。这样,HAL 28可以调整命令集25-2A以获得命令集25-2A',使得命令集25-2A'包括命令52N-52Q。命令52N指示温度参数针对车辆10内的第一HVAC区域,将命令52M的“TEMP”参数改变为命令52N的“ZONE1_TEMP”参数。命令52P和52Q还指示FAN速度参数,并且VENT参数也针对车辆10内的第一HVAC区域,变为“ZONE1_FAN”和“ZONE1_VENT”。以这种方式,HAL 28可以调整命令集25-2A以更好地适应乘员并减少乘员集中在头部单元24上的时间量,这可以在车辆10的操作期间提高安全性。
然后,HAL 28可以基于调整后的命令集25-2A'自动生成EM 31。HAL 28可以包括每个命令的通用映射,这些映射被放置在形成EM 31的脚本或其他文件中,其中,命令中的每个命令可以根据EM 31从标准控制消息被转变为CAN消息。
图5是示出了图1的HAL 28在执行本公开中描述的可扩展映射技术的各个方面时的示例操作的流程图。如上所述,处理器12可以执行OS 30以控制车辆系统26中的一个或多个车辆系统26(300),其中,OS 30可以支持标准命令集。OS 30可以根据公共或标准控制总线协议将标准命令集输出为一个或多个标准控制消息(302)。处理器12可以从系统存储器16获得EM 31,该EM 31可以定义根据本地控制总线协议指定的本地控制消息与由OS 30支持的标准控制消息之间的映射(304)。在一些示例中,处理器12可以执行HAL 28,该HAL 28可以在提供软件垫片层以使OS 30能够与车辆系统26接口连接时对处理器12进行配置以获得EM 31。
HAL 28可以接收标准控制消息,该标准控制消息可以包括用于发起车辆系统26中的一个或多个车辆系统26的操作状态改变的命令集(诸如命令集25中的一个命令集)的第一表示。HAL 28可以将EM 31应用于标准控制消息以重新排列或以其他方式转换标准控制消息内的字节值,从而转变标准控制消息以获得符合控制总线协议的本地控制消息(306)。这样,本地控制消息可以包括命令集的第二表示。HAL28可以经由被耦合到处理器12和车辆系统26的控制总线来传输本地控制消息,以发起车辆系统26中的一个或多个车辆系统26的操作状态改变。
HAL 28同样可以从车辆系统26接收(或者在一些情况下从OS 30和车辆系统26的角度透明地拦截)包括操作状态27A-27N(在图1中被示出为“ST 27A-27N”的“操作状态27”)的本地控制消息。本地控制消息可以符合本地控制总线协议。HAL 28可以基于EM 31转变本地控制消息以获得标准控制消息,该标准控制消息再次由OS 30支持(310)。如上面所提到的,HAL 28可以提供该转变作为对底层硬件进行抽象化的一部分(或换言之,作为提供垫片软件层的一部分),允许在各种不同的硬件平台上进行OS 30的潜在更简单的开发和安装。HAL 28可以将标准控制消息提供给OS 30,该OS 30可以获得对先前发送的标准控制消息所请求的操作状态改变的确认(312)。
图6是示出了图1的HAL 28在执行本公开中描述的技术的各个方面时的示例操作的流程图。如上所述,在一个示例中,HAL 28可以表示被配置为响应于经由显示器20呈现的GUI从乘员接收到的输入来处理来自OS 30的输出以改变车辆系统26中的一个或多个车辆系统26的操作状态的单元。HAL 28还可以处理来自OS 30的输出,该输出是响应于诸如操作状态27的其他输入而自动生成的。输出可以参考由OS 30发布的命令集25,以执行操作状态改变。OS 30可以将命令集25发布为一系列“SET”命令,“SET”命令中的每个“SET”命令指定车辆系统26中的一个车辆系统26、车辆系统26中的一个车辆系统26的属性以及所指定属性的值。SET命令可以指定车辆系统26中的所指定的一个车辆系统26要保持的操作状态。在这方面,HAL 28可以向第一车辆(例如,车辆10)的一个或多个系统26A发布命令集25A,以发起系统26中的一个或多个的操作状态改变(400)。
HAL 28还可以处理来自车辆系统26的指示车辆系统26的各种属性的当前操作状态27的输入。OS 30可以输出“GET”命令,该“GET”命令通过提供指示当前操作状态27的输入来查询车辆系统26关于车辆系统26响应的各种属性。类似于“SET”命令,“GET”命令可以各自指定车辆系统26中的一个车辆系统26和车辆系统26中对值的查询所指向的一个车辆系统26的属性。在一些示例中,车辆系统26可以在响应于“SET”命令而执行各种操作状态改变之后以输入来响应。无论如何,HAL 28可以处理输出和输入以确定关联29。
为了说明,假定车辆系统26A表示HVAC系统。各种HVAC系统可以取决于车辆的点火状态和HVAC系统的底层环境控制单元(ECU)而不同的操作。此外,考虑HVAC系统26A的各种属性可以与HVAC系统26A的其他属性以及车辆系统26B-26N的潜在其他属性交互。例如,当设置HVAC温度时,HVAC系统26A可以自动改变风扇的速度。HAL 28可以确定由操作状态27A表示的HVAC系统26A的各种车辆属性之间的关联29,该操作状态27A是由将命令集25A输出到车辆系统26以便设置HVAC温度而产生的。
以这种方式,HAL 28可以响应于发布了命令集25A并且在操作状态改变之后从系统26获得车辆参数中的每个车辆参数的操作状态的相应指示(402)。接下来,HAL 28可以针对命令集25A确定车辆参数的操作状态之间的依赖性29(404)。
接下来,HAL 28可以基于关联29来调整命令集25A以适应第一车辆的系统26和第二车辆的系统之间的可变性(406)。在上述示例中,HAL 28可以基于识别设置HVAC温度与自动改变风扇速度之间的依赖性的关联29来调整命令集25A,以包括将HVAC系统26A的风扇速度设置为其先前设置的风扇速度值(其可以基于乘员偏好或作为乘员先前设置HVAC系统26A的风扇速度的结果进行配置)的附加命令。以这种方式,HAL 28可以基于关联29(其也可以称为“依赖性29”)来调整命令集25以适应车辆10的车辆系统26与第二车辆的车辆系统之间的可变性。HAL 28也可以基于调整后的命令集(可能自动地)生成EM 31(408)。
在这方面,HAL 28可以处理操作状态27之间的改变以生成改变记录,解析操作状态27以发现属性之间的因果关系(其也可以被称为“参数”,例如,当参数A改变时,参数B和C也改变),并生成识别操作状态27的改变之间的因果关系(或换言之,依赖性)的关联29。在一些示例中,HAL 28可以将关联29存储为表、链表、图形、树或任何其他适当的数据结构。在其他示例中,HAL 28可以使用机器学习来训练模型以识别关联29,并动态生成寻址关联29的不同版本的命令集25。这样,为了确定依赖性29,HAL 28可以执行关于由命令集25发起的操作状态改变和车辆参数的操作状态27的机器学习。
以这种方式,该技术可以提供硬件抽象层(VHAL)28,以允许OS 30与车辆硬件(例如,车辆系统26)进行交互。HAL 28可以尝试采用不同品牌/型号的车辆并创建车辆的所有品牌/型号共有的应用编程器接口(API)表面。一个问题是存在各种各样的车辆种类繁多,并且车辆行为可能不容易被抽象化。例如,基于车辆的点火状态和HVAC ECU的配置,汽车中的HVAC系统的行为不同。可能不能生成对车辆的每个品牌/型号的行为进行抽象化的公共API。
HAL 28当前可以被实施为可以是SET和GET的车辆属性列表。例如,HAL 28可以设置HVAC温度,并且车辆10将相应地做出响应。当属性彼此交互时,发生复杂性,从而产生副作用。例如,当设置HVAC温度时,风扇速度可能会响应于温度改变而自动改变。该行为可以是车辆相关的。特定问题是可以基于HVAC控制器的设置来禁用/启用某些属性,并且OS 30可能需要理解这些复杂性以完成任务。
例如,如果AC系统由于HVAC单元关闭而被禁用,则OS 30可能需要在打开AC之前打开HVAC单元。因此,当乘员指示“打开AC”时,OS 30基于车辆系统26的操作状态发起正确的命令序列。
在一些情况下,它是阻抗失配。OS 30可以暴露一组API(即,“将AC打开到最大”),并且车辆具有它们支持的一组功能(即,“将风扇速度设置为5”或“将温度设置为65”)。这两个API并非总是完美对准,并且做出折衷。该问题的一种解决方案是让汽车制造商编写更多的“中间件”代码来完成OS 30需要汽车支持什么。这可能是劳动密集型的并且容易出错,因为需要训练每个车辆制造商来编写代码。另一个解决方案是在较低级别的功能上创建抽象,该较低级别的功能在所有车辆中都是通用的,但并非对所有各种车辆都理想。这样,OS30可以将某些行为和代码限定/限制为最低公分母。
本公开的技术可以提供一种算法,通过该算法提取车辆参数之间的依赖性29。HAL28可以确定可以设置/取得的属性列表。当属性生成副作用(例如,设置属性改变了系统中的其他属性)时,HAL 28可以检测并记录该关联29,因此,当乘员发起当前不允许的操作改变时,HAL 28可以确定如何经由命令集25配置属性以发起操作改变。
为了确定依赖性,HAL 28可以执行以下操作:
1)观察属性何时改变并对其进行记录;
2)解析数据以发现参数之间的因果关系,例如,当参数A改变时,参数B和C也随之改变。
3)创建这些因果关系的表,并在系统要对车辆属性采取动作时参考这些因果关系。
HAL 28可以以许多方式实施。在一些情况下,HAL 28可以收集机器学习(ML)训练集作为随时间的观察数据。在其他情况下,HAL28可以追踪属性的时间相关性并根据该相关性确定启发式。在任何一种情况下,概念是使HAL 28自动地使命令集25适配每个车辆的特质,而无需人工将其输入到代码中。以这种方式,HAL 28可以降低将新的车辆实施方式推向市场的复杂性,因为HAL 28可以自动适配车辆的变化并且不需要进行硬编码。
条款1.一种与第一车辆接口连接的方法,该方法包括:由处理器并且向第一车辆的一个或多个系统发布命令集以发起一个或多个系统的操作状态改变;响应于发布了命令集并且在操作状态改变之后,由处理器从一个或多个系统获得一个或多个车辆参数中的每个车辆参数的操作状态的相应指示;由处理器并且针对命令集确定一个或多个车辆参数的操作状态之间的一个或多个依赖性;以及由处理器并且基于一个或多个相关性,调整命令集以适应第一车辆的一个或多个系统与第二车辆的一个或多个系统之间的可变性。
条款2.根据条款1的方法,其中,命令集包括用于指定一个或多个车辆参数的第一子集中的每个车辆参数的状态的第一命令集,以及其中,调整命令集包括确定用于指定一个或多个车辆参数的第二子集中的每个车辆参数的状态的第二命令集,一个或多个车辆参数的第一子集与一个或多个车辆参数的第二子集不同。
条款3.根据条款1和2的任何组合的方法,其中,调整命令集包括通过处理器执行硬件抽象层以调整命令集。
条款4.根据条款1到3的任何组合的方法,其中,确定一个或多个依赖性包括保持将由命令集发起的操作状态改变与一个或多个车辆参数的操作状态相关联的表。
条款5.根据条款1到4的任何组合的方法,其中,确定一个或多个依赖性包括相对于由命令集发起的操作状态改变与一个或多个车辆参数的状态执行机器学习以识别一个或多个依赖性。
条款6.根据条款1到5的任何组合的方法,进一步包括:经由显示装置显示表示命令集的图形用户界面元素。
条款7.根据条款1到6的任何组合的方法,
其中,命令集最初无法发起一个或多个系统的操作状态改变,以及其中,调整命令集包括调整命令集以使命令集能够发起一个或多个系统的操作状态改变。
条款8.根据条款1到7的任何组合的方法,其中,第一车辆的一个或多个系统包括第一车辆的供暖、通风和空调(HVAC)系统。
条款9.根据条款1到8的任何组合的方法,其中,第一车辆的一个或多个系统来自第一组供应商,并且第二车辆的一个或多个系统来自第二组供应商,第一组供应商和第二组供应商相差至少一个供应商。
条款10.一种被配置为与第一车辆接口连接的装置,头部单元包括:一个或多个存储器,该一个或多个存储器被配置为存储用于发起第一车辆的一个或多个系统的操作状态改变的命令集;以及一个或多个处理器,该一个或多个处理器被配置为:向第一车辆的一个或多个系统发布命令集;从一个或多个系统并且响应于发布了命令集且在操作状态改变之后,获得一个或多个车辆参数中的每一个车辆参数的操作状态的相应指示;针对命令集确定一个或多个车辆参数的操作状态之间的一个或多个依赖性;以及基于一个或多个依赖性,调整命令集以适应第一车辆的一个或多个系统与第二车辆的一个或多个系统之间的可变性。
条款11.根据条款10的装置,其中,命令集包括用于指定一个或多个车辆参数的第一子集中的每个车辆参数的状态的第一命令集,以及其中,一个或多个处理器被配置为确定以用于指定一个或多个车辆参数的第二子集中的每个车辆参数的状态的第二命令集,一个或多个车辆参数的第一子集与一个或多个车辆参数的第二子集不同。
条款12.根据条款10和11的任何组合的装置,其中,一个或多个处理器被配置为执行包括硬件抽象层的操作系统,该硬件抽象层被配置为调整命令集。
条款13.根据条款10到12的任何组合的装置,其中,一个或多个处理器被配置为保持将由命令集发起的操作状态改变与一个或多个车辆参数的操作状态相关联的表。
条款14.根据条款10到13的任何组合的装置,其中,一个或多个处理器被配置为相对于由命令集发起的操作状态改变与一个或多个车辆参数的状态执行机器学习以识别一个或多个依赖性。
条款15.根据条款10到14的任何组合的装置,进一步包括被配置为显示表示命令集的图形用户界面元素的显示装置。
条款18.根据条款10到15的任何组合的装置,其中,命令集最初无法发起一个或多个系统的操作状态改变,以及其中,一个或多个处理器被配置为调整命令集以使命令集能够发起一个或多个系统的操作状态改变。
条款17.根据条款10到16的任何组合的装置,其中,第一车辆的一个或多个系统包括第一车辆的供暖、通风和空调(HVAC)系统。
条款18.根据条款10到17的任何组合的装置,其中,第一车辆的一个或多个系统来自第一组供应商,并且第二车辆的一个或多个系统来自第二组供应商,第一组供应商和第二组供应商的相差至少一个供应商。
条款19.根据条款10到18的任何组合的装置,其中,该装置包括第一车辆,其中,第一车辆包括头部单元,以及其中,头部单元包括存储器和一个或多个处理器。
条款20.一种在其上存储有指令的计算机可读介质,该指令在被执行时使一个或多个处理器:向车辆的一个或多个系统发布命令集以发起一个或多个系统的操作状态改变;响应于发布了命令集并且在操作状态改变之后,从一个或多个系统获得一个或多个车辆参数中的每个车辆参数的操作状态的相应指示;针对命令集确定一个或多个车辆参数的操作状态之间的一个或多个依赖性;以及基于一个或多个依赖性,调整命令集以适应第一车辆的一个或多个系统与第二车辆的一个或多个系统之间的可变性。
条款21.一种方法,包括:由车辆的一个或多个处理器,执行操作系统以控制车辆的一个或多个系统;由一个或多个处理器,获得根据控制总线协议指定的本地控制消息与由操作系统支持的标准控制消息之间的可扩展映射;通过由一个或多个处理器执行的操作系统生成标准控制消息,该标准控制消息包括用于发起一个或多个系统的操作状态改变的命令集的第一表示;由一个或多个处理器并且基于可扩展映射,转变标准控制消息以获得本地控制消息,该本地控制消息包括命令集的第二表示;以及由一个或多个处理器并经由被耦合到一个或多个处理器和一个或多个系统的控制总线传输本地控制消息,以发起一个或多个系统的操作状态改变。
条款22.根据条款21的方法,其中,获得可扩展映射包括:获得定义本地控制消息与标准控制消息之间的可扩展映射的文件。
条款23.根据条款21和22的任何组合的方法,其中,转变标准控制消息包括:执行车辆硬件抽象层以在控制总线与操作系统之间提供垫片;以及由车辆硬件抽象层并且基于可扩展映射,转变标准控制消息以获得本地控制消息。
条款24.根据条款21到23的任何组合的方法,其中,转变标准控制消息包括:由一个或多个处理器的专用控制总线处理器,执行控制总线网关以在控制总线与操作系统之间提供垫片;以及由控制总线网关并且基于可扩展映射,将标准控制消息转变为本地控制消息。
条款25.根据条款21到24的任何组合的方法,进一步包括:经由控制总线接收第二本地控制消息;基于可扩展映射,转变第二本地控制消息以获得第二标准控制消息;以及基于第二标准控制消息,更新一个或多个车辆参数的一个或多个操作状态。
条款26.根据条款21到25的任何组合的方法,进一步包括:获得更新后的可扩展映射,该更新后的可扩展映射定义本地控制消息与标准控制消息之间的不同映射。
条款27.根据条款21到26的任何组合的方法,其中,车辆的一个或多个系统包括车辆的供暖、通风和空调系统。
条款28.根据条款21到27的任何组合的方法,其中,控制总线协议包括控制器局域网(CAN)协议。
条款29.根据条款21到29的任何组合的方法,其中,本地控制消息包括根据DBC格式或Kayak CAN定义(KCD)格式中的一种格式而被格式化的本地控制消息。
条款30.根据条款21到29的任何组合的方法,进一步包括:向车辆的一个或多个系统发布探索性命令集以发起一个或多个系统的探索性操作状态改变;响应于发布了命令集并且在探索性操作状态改变之后,从一个或多个系统获得一个或多个车辆参数中的每个车辆参数的实际操作状态的相应指示;针对探索性命令集,确定一个或多个车辆参数的实际操作状态之间的一个或多个依赖性;以及基于一个或多个依赖性,生成可扩展映射以将命令集从本地控制消息转变为标准控制消息。
条款31.一种被配置为与车辆交互的装置,该装置包括:存储器,该存储器被配置为存储根据控制总线协议指定的本地控制消息与由操作系统支持的标准控制消息之间的可扩展映射;以及一个或多个处理器,该一个或多个处理器被配置为:执行操作系统以控制车辆的一个或多个系统,该操作系统被配置为生成标准控制消息,该标准控制消息包括用于发起一个或多个系统的操作状态改变的命令集的第一表示;基于可扩展映射,转变标准控制消息以获得本地控制消息,该本地控制消息包括命令集的第二表示;以及经由被耦合到一个或多个处理器和一个或多个系统的控制总线,传输本地控制消息以发起一个或多个系统的操作状态改变。
条款32.根据条款31的装置,其中,一个或多个处理器被配置为获得定义本地控制消息与标准控制消息之间的可扩展映射的文件。
条款33.根据条款31和32的任何组合的装置,其中,一个或多个处理器被配置为:执行车辆硬件抽象层以在控制总线与操作系统之间提供垫片;以及由车辆硬件抽象层并且基于可扩展映射,转变标准控制消息以获得本地控制消息。
条款34.根据条款31到33的任何组合的装置,其中,一个或多个处理器被配置为:由一个或多个处理器的专用控制总线处理器,执行控制总线网关以在控制总线与操作系统之间提供垫片;以及由控制总线网关并且基于可扩展映射,将标准控制消息转变为本地控制消息。
条款35.根据条款31到34的任何组合的装置,其中,一个或多个处理器进一步被配置为:经由控制总线接收第二本地控制消息;基于可扩展映射,转变第二本地控制消息以获得第二标准控制消息;以及基于第二标准控制消息,更新一个或多个车辆参数的一个或多个操作状态。
条款36.根据条款31到35的任何组合的装置,其中,一个或多个处理器进一步被配置为:获得更新后的可扩展映射,该更新后的可扩展映射定义本地控制消息与标准控制消息之间的不同映射。
条款37.根据条款31到36的任何组合的装置,其中,车辆的一个或多个系统包括车辆的供暖、通风和空调系统。
条款38.根据条款31到37的任何组合的装置,其中,控制总线协议包括控制器局域网(CAN)协议。
条款39.根据条款31到38的任何组合的装置,其中,本地控制消息包括根据DBC格式或Kayak CAN定义(KCD)格式中的一种格式而被格式化的本地控制消息。
条款40.一种在其上存储有指令的非暂时性计算机可读存储介质,该指令在被执行时使车辆头部单元的一个或多个处理器:执行操作系统以控制车辆的一个或多个系统;获得根据控制总线协议指定的本地控制消息与由操作系统支持的标准控制消息之间的可扩展映射,该操作系统被配置为生成标准控制消息,该标准控制消息包括用于发起一个或多个系统的操作状态改变的命令集的第一表示;基于可扩展映射,转变标准控制消息以获得本地控制消息,该本地控制消息包括命令集的第二表示;以及由一个或多个处理器并经由被耦合到一个或多个处理器和一个或多个系统的控制总线传输本地控制消息,以发起一个或多个系统的操作状态改变。
通过示例但不限于,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或者其他光盘存储装置、磁盘存储装置或者其他磁性存储装置、闪速存储器或者可以用于以指令或者数据结构的形式存储期望的程序代码并且可以通过计算机访问的任何其他存储介质。例如,如果指令是使用同轴电缆、光缆、双绞线、数字用户线(DSL)或者无线技术(诸如,红外、无线电和微波)从网站、服务器或者其他远程源传输,那么同轴电缆、光缆、双绞线、DSL或者无线技术(诸如,红外、无线电和微波)被包括在介质的定义中。然而,应该理解的是,一个或多个计算机可读存储介质和数据存储介质不包括连接、载波、信号或者其他瞬态介质,而是涉及非瞬态的有形存储介质。如本文所使用的磁盘和光盘包括:压缩盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光光学地复制数据。上述的组合也应该被包括在计算机可读介质的范围内。
指令可以通过一个或多个处理器(诸如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或者其他等效的集成或分立逻辑电路)执行。因此,本文所使用的术语“处理器”可以指任何前述的结构或者适合于实施本文描述的技术的任何其他结构。另外,在一些方面中,可以将本文描述的功能提供在专用的硬件模块和/或软件模块内。而且,可以将该技术完全实施在一个或多个电路或者逻辑元件中。
本公开的技术可以在各种装置或者设备,包括无线手持机、集成电路(IC)或者一组IC(例如,芯片集)中实施。在本公开中,将各种组件、模块或者单元描述为用于强化被配置为执行所公开的技术的装置的功能方面,但并不一定需要通过不同的硬件单元实现。相反,如上所述,各种单元可以结合适当的软件和/或固件被组合在硬件单元中或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。
已经对各种实施例进行了描述。这些和其他实施例在以下权利要求的范围内。
Claims (20)
1.一种方法,所述方法包括:
由车辆的一个或多个处理器,执行操作系统以控制所述车辆的一个或多个系统;
由所述一个或多个处理器,获得根据控制总线协议指定的本地控制消息与由所述操作系统支持的标准控制消息之间的可扩展映射;
通过由所述一个或多个处理器执行的所述操作系统,生成所述标准控制消息,所述标准控制消息包括用于发起所述一个或多个系统的操作状态改变的命令集的第一表示;
由所述一个或多个处理器并且基于所述可扩展映射,转变所述标准控制消息以获得所述本地控制消息,所述本地控制消息包括所述命令集的第二表示;以及
由所述一个或多个处理器并且经由被耦合到所述一个或多个处理器和所述一个或多个系统的控制总线,传输所述本地控制消息以发起所述一个或多个系统的所述操作状态改变。
2.根据权利要求1所述的方法,其中,获得所述可扩展映射包括:获得定义所述本地控制消息与所述标准控制消息之间的所述可扩展映射的文件。
3.根据权利要求1所述的方法,其中,转变所述标准控制消息包括:
执行车辆硬件抽象层以在所述控制总线与所述操作系统之间提供垫片;以及
由所述车辆硬件抽象层并且基于所述可扩展映射,转变所述标准控制消息以获得所述本地控制消息。
4.根据权利要求1所述的方法,其中,转变所述标准控制消息包括:
由所述一个或多个处理器的专用控制总线处理器,执行控制总线网关以在所述控制总线与所述操作系统之间提供垫片;以及
由所述控制总线网关并且基于所述可扩展映射,将所述标准控制消息转变为所述本地控制消息。
5.根据权利要求1所述的方法,进一步包括:
经由所述控制总线接收第二本地控制消息;
基于所述可扩展映射,转变所述第二本地控制消息以获得第二标准控制消息;以及
基于所述第二标准控制消息,更新一个或多个车辆参数的一个或多个操作状态。
6.根据权利要求1所述的方法,进一步包括:获得更新后的可扩展映射,所述更新后的可扩展映射定义所述本地控制消息与所述标准控制消息之间的不同映射。
7.根据权利要求1所述的方法,其中,所述车辆的所述一个或多个系统包括所述车辆的供暖、通风和空调系统。
8.根据权利要求1所述的方法,其中,所述控制总线协议包括控制器局域网(CAN)协议。
9.根据权利要求1所述的方法,其中,所述本地控制消息包括根据DBC格式或Kayak CAN定义(KCD)格式中的一种格式而被格式化的本地控制消息。
10.根据权利要求1所述的方法,所述方法进一步包括:
向所述车辆的所述一个或多个系统发布探索性命令集以发起所述一个或多个系统的探索性操作状态改变;
响应于发布了所述命令集并且在所述探索性操作状态改变之后,从所述一个或多个系统获得一个或多个车辆参数中的每个车辆参数的实际操作状态的相应指示;
针对所述探索性命令集,确定所述一个或多个车辆参数的所述实际操作状态之间的一个或多个依赖性;以及
基于所述一个或多个依赖性,生成所述可扩展映射以将所述命令集从所述本地控制消息转变为所述标准控制消息。
11.一种被配置为与车辆交互的装置,所述装置包括:
存储器,所述存储器被配置为存储根据控制总线协议指定的本地控制消息与由操作系统支持的标准控制消息之间的可扩展映射;以及
一个或多个处理器,所述一个或多个处理器被配置为:
执行所述操作系统以控制所述车辆的一个或多个系统,所述操作系统被配置为生成所述标准控制消息,所述标准控制消息包括用于发起所述一个或多个系统的操作状态改变的命令集的第一表示;
基于所述可扩展映射,转变所述标准控制消息以获得所述本地控制消息,所述本地控制消息包括所述命令集的第二表示;以及
经由被耦合到所述一个或多个处理器和所述一个或多个系统的控制总线,传输所述本地控制消息以发起所述一个或多个系统的所述操作状态改变。
12.根据权利要求11所述的装置,其中,所述一个或多个处理器被配置为获得定义所述本地控制消息与所述标准控制消息之间的所述可扩展映射的文件。
13.根据权利要求11所述的装置,其中,所述一个或多个处理器被配置为:
执行车辆硬件抽象层以在所述控制总线与所述操作系统之间提供垫片;以及
由所述车辆硬件抽象层并且基于所述可扩展映射,转变所述标准控制消息以获得所述本地控制消息。
14.根据权利要求11所述的装置,其中,所述一个或多个处理器被配置为:
由所述一个或多个处理器的专用控制总线处理器,执行控制总线网关以在所述控制总线与所述操作系统之间提供垫片;以及
由所述控制总线网关并且基于所述可扩展映射,将所述标准控制消息转变为所述本地控制消息。
15.根据权利要求11所述的装置,其中,所述一个或多个处理器进一步被配置为:
经由所述控制总线接收第二本地控制消息;
基于所述可扩展映射,转变所述第二本地控制消息以获得第二标准控制消息;以及
基于所述第二标准控制消息,更新一个或多个车辆参数的一个或多个操作状态。
16.根据权利要求11所述的装置,其中,所述一个或多个处理器进一步被配置为获得更新后的可扩展映射,所述更新后的可扩展映射定义所述本地控制消息与所述标准控制消息之间的不同映射。
17.根据权利要求11所述的装置,其中,所述车辆的所述一个或多个系统包括所述车辆的供暖、通风和空调系统。
18.根据权利要求11所述的装置,其中,所述控制总线协议包括控制器局域网(CAN)协议。
19.根据权利要求11所述的装置,其中,所述本地控制消息包括根据DBC格式或KayakCAN定义(KCD)格式中的一种格式而被格式化的本地控制消息。
20.一种在其上存储有指令的非暂时性计算机可读存储介质,所述指令在被执行时使车辆头部单元的一个或多个处理器:
执行操作系统以控制所述车辆的一个或多个系统;
获得根据控制总线协议指定的本地控制消息与由所述操作系统支持的标准控制消息之间的可扩展映射,所述操作系统被配置为生成所述标准控制消息,所述标准控制消息包括用于发起所述一个或多个系统的操作状态改变的命令集的第一表示;
基于所述可扩展映射,转变所述标准控制消息以获得所述本地控制消息,所述本地控制消息包括所述命令集的第二表示;以及
由所述一个或多个处理器并经由被耦合到所述一个或多个处理器和所述一个或多个系统的控制总线,传输所述本地控制消息以发起所述一个或多个系统的所述操作状态改变。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862720701P | 2018-08-21 | 2018-08-21 | |
US62/720,701 | 2018-08-21 | ||
PCT/US2019/037536 WO2020040848A1 (en) | 2018-08-21 | 2019-06-17 | Extensible mapping for vehicle system buses |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111542807A true CN111542807A (zh) | 2020-08-14 |
CN111542807B CN111542807B (zh) | 2023-09-29 |
Family
ID=67138134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980007272.5A Active CN111542807B (zh) | 2018-08-21 | 2019-06-17 | 用于车辆系统总线的可扩展映射 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11405234B2 (zh) |
EP (1) | EP3698242A1 (zh) |
JP (1) | JP7068455B2 (zh) |
KR (1) | KR102451033B1 (zh) |
CN (1) | CN111542807B (zh) |
WO (1) | WO2020040848A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553764A (zh) * | 2020-11-24 | 2022-05-27 | 比亚迪股份有限公司 | 汽车网关路由配置系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144053B2 (en) * | 2019-04-04 | 2021-10-12 | Toyota Research Institute, Inc. | Controlling driving condition components of an autonomous vehicle based on a current driving mode and current conditions |
US20220318277A1 (en) * | 2019-08-22 | 2022-10-06 | Nec Corporation | Information processing device, information processing method, and storage medium |
KR102404908B1 (ko) | 2021-10-27 | 2022-06-07 | 주식회사 네오오토 | Rv 차량의 컨트롤 보드 제어 시스템 |
CN115571072B (zh) * | 2022-10-24 | 2024-06-14 | 中国第一汽车股份有限公司 | 抬头显示器模式转换方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1908891A (zh) * | 2005-08-05 | 2007-02-07 | 国际商业机器公司 | 用于在系统处理器和协处理器之间进行消息传送的系统和方法 |
CN101598930A (zh) * | 2008-04-22 | 2009-12-09 | 万国卡车知识产权有限公司 | 可编程的can总线消息到模拟信号的转换器 |
JP2014162286A (ja) * | 2013-02-22 | 2014-09-08 | Panasonic Corp | 車載機器制御装置および車載機器制御プログラム |
CN105008183A (zh) * | 2013-02-27 | 2015-10-28 | 日立汽车系统株式会社 | 车辆控制装置 |
CN105564351A (zh) * | 2016-01-27 | 2016-05-11 | 北京汽车股份有限公司 | 汽车动力电源控制方法、can接口处理装置及控制系统 |
CN106114420A (zh) * | 2016-07-21 | 2016-11-16 | 浙江吉利控股集团有限公司 | 车窗的控制方法及其控制系统 |
EP3099019A1 (en) * | 2015-05-27 | 2016-11-30 | OpenSynergy GmbH | Method, computer program product, and control unit for an automotive vehicle |
US20170072876A1 (en) * | 2015-09-14 | 2017-03-16 | Broadcom Corporation | Hardware-Accelerated Protocol Conversion in an Automotive Gateway Controller |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3692820B2 (ja) | 1999-03-10 | 2005-09-07 | 株式会社デンソー | 自動車用制御装置 |
JP3690179B2 (ja) | 1999-04-26 | 2005-08-31 | 株式会社デンソー | 自動車用制御装置 |
JP3666297B2 (ja) | 1999-04-26 | 2005-06-29 | 株式会社デンソー | 自動車用制御装置 |
JP2005236560A (ja) | 2004-02-18 | 2005-09-02 | Sony Corp | 車両通信システムおよびゲートウエイ装置 |
JP5434512B2 (ja) | 2009-11-18 | 2014-03-05 | トヨタ自動車株式会社 | 車載通信システム、ゲートウェイ装置 |
US9463803B2 (en) | 2012-06-29 | 2016-10-11 | Harman International (China) Holdings Co., Ltd | Method and apparatus for uniform access of onboard devices |
US10251034B2 (en) * | 2013-03-15 | 2019-04-02 | Blackberry Limited | Propagation of application context between a mobile device and a vehicle information system |
CN104571069A (zh) | 2013-10-09 | 2015-04-29 | 上海通用汽车有限公司 | 用于车身控制器的仿真测试系统 |
KR101491622B1 (ko) * | 2014-02-17 | 2015-02-11 | 연세대학교 산학협력단 | 자율 주행형 차량의 주행 제어 장치 및 방법 |
EP3998747A1 (en) * | 2014-09-12 | 2022-05-18 | Panasonic Intellectual Property Corporation of America | Vehicle communication device, in-vehicle network system, and vehicle communication method |
KR101820589B1 (ko) * | 2016-01-20 | 2018-01-22 | 인천스마트시티 주식회사 | 메시지가이더엔진을 이용한 중앙집중 의사결정방식의 지능형 유시티 통합관제플랫폼 시스템 |
JP2019506094A (ja) | 2016-02-18 | 2019-02-28 | ルネサスエレクトロニクス株式会社 | メッセージハンドラ |
CN106020191B (zh) | 2016-05-26 | 2017-10-13 | 百度在线网络技术(北京)有限公司 | 无人车的控制方法、装置及系统 |
CN107465695A (zh) | 2017-09-21 | 2017-12-12 | 扬州航盛科技有限公司 | 一种基于数据库动态更新can解析参数的方法和系统 |
US11184778B2 (en) * | 2018-02-20 | 2021-11-23 | Intel Corporation | Mobile service chain placement |
-
2019
- 2019-06-17 JP JP2020529523A patent/JP7068455B2/ja active Active
- 2019-06-17 CN CN201980007272.5A patent/CN111542807B/zh active Active
- 2019-06-17 WO PCT/US2019/037536 patent/WO2020040848A1/en unknown
- 2019-06-17 US US16/764,153 patent/US11405234B2/en active Active
- 2019-06-17 KR KR1020207017170A patent/KR102451033B1/ko active IP Right Grant
- 2019-06-17 EP EP19735073.9A patent/EP3698242A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1908891A (zh) * | 2005-08-05 | 2007-02-07 | 国际商业机器公司 | 用于在系统处理器和协处理器之间进行消息传送的系统和方法 |
CN101598930A (zh) * | 2008-04-22 | 2009-12-09 | 万国卡车知识产权有限公司 | 可编程的can总线消息到模拟信号的转换器 |
JP2014162286A (ja) * | 2013-02-22 | 2014-09-08 | Panasonic Corp | 車載機器制御装置および車載機器制御プログラム |
CN105008183A (zh) * | 2013-02-27 | 2015-10-28 | 日立汽车系统株式会社 | 车辆控制装置 |
EP3099019A1 (en) * | 2015-05-27 | 2016-11-30 | OpenSynergy GmbH | Method, computer program product, and control unit for an automotive vehicle |
US20170072876A1 (en) * | 2015-09-14 | 2017-03-16 | Broadcom Corporation | Hardware-Accelerated Protocol Conversion in an Automotive Gateway Controller |
CN105564351A (zh) * | 2016-01-27 | 2016-05-11 | 北京汽车股份有限公司 | 汽车动力电源控制方法、can接口处理装置及控制系统 |
CN106114420A (zh) * | 2016-07-21 | 2016-11-16 | 浙江吉利控股集团有限公司 | 车窗的控制方法及其控制系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553764A (zh) * | 2020-11-24 | 2022-05-27 | 比亚迪股份有限公司 | 汽车网关路由配置系统 |
CN114553764B (zh) * | 2020-11-24 | 2022-12-09 | 比亚迪股份有限公司 | 汽车网关路由配置系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20200087222A (ko) | 2020-07-20 |
JP2021516802A (ja) | 2021-07-08 |
KR102451033B1 (ko) | 2022-10-06 |
US11405234B2 (en) | 2022-08-02 |
CN111542807B (zh) | 2023-09-29 |
WO2020040848A1 (en) | 2020-02-27 |
US20200396101A1 (en) | 2020-12-17 |
JP7068455B2 (ja) | 2022-05-16 |
EP3698242A1 (en) | 2020-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111542807B (zh) | 用于车辆系统总线的可扩展映射 | |
US10107888B1 (en) | Vehicle status monitoring system and vehicle | |
US20170174228A1 (en) | Controlling vehicle systems with mobile devices | |
US9324234B2 (en) | Vehicle comprising multi-operating system | |
JP7043563B2 (ja) | 車両のための拡張可能なコンピューティングアーキテクチャ | |
US20170227960A1 (en) | Autonomous vehicle with modular control interface | |
US20180165891A1 (en) | Apparatus and method for providing vehicle user interface | |
CN110262799A (zh) | 基于ivi系统的界面布局方法、显示方法、装置及设备 | |
CN111891037A (zh) | 一种座舱灯光控制方法、装置、设备及存储介质 | |
WO2016014640A2 (en) | Systems and methods of an adaptive interface to improve user experience within a vehicle | |
KR20220065669A (ko) | 온-디바이스 캐시를 이용한 하이브리드 페칭 | |
JP2017520856A (ja) | オペレーティングシステム起動加速 | |
EP4369186A1 (en) | Control method and apparatus, device, and storage medium | |
WO2023036234A1 (zh) | 一种管理系统、管理方法、装置、设备及存储介质 | |
CN116018585A (zh) | 经由硬件抽象层进行流式传输 | |
US11403155B2 (en) | Integration of vehicle manufacturer user management system with automotive operating system | |
CN113791842A (zh) | 一种管理方法、装置、设备及存储介质 | |
US20210334227A1 (en) | Systems and methods of conveying information in a vehicle according to a hierarchy of preferences | |
CN112181371A (zh) | 用户界面设计方法、用户界面设计装置和存储介质 | |
WO2024088345A1 (zh) | 座舱功能操作方法及相关装置 | |
WO2024044410A1 (en) | Network management for vehicle operating systems | |
Zieger et al. | Human-machine Interfaces Are Getting Smarter | |
US20180011542A1 (en) | User interface device, vehicle including the same, and method of controlling the vehicle | |
CN117774847A (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 |