CN111880951A - 车辆制造商用户管理系统与汽车操作系统的集成 - Google Patents

车辆制造商用户管理系统与汽车操作系统的集成 Download PDF

Info

Publication number
CN111880951A
CN111880951A CN202010762116.4A CN202010762116A CN111880951A CN 111880951 A CN111880951 A CN 111880951A CN 202010762116 A CN202010762116 A CN 202010762116A CN 111880951 A CN111880951 A CN 111880951A
Authority
CN
China
Prior art keywords
user
message
operating system
vehicle
interface
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
CN202010762116.4A
Other languages
English (en)
Other versions
CN111880951B (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN111880951A publication Critical patent/CN111880951A/zh
Application granted granted Critical
Publication of CN111880951B publication Critical patent/CN111880951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Small-Scale Networks (AREA)

Abstract

本公开涉及车辆制造商用户管理系统与汽车操作系统的集成。公开了与车辆的用户管理服务有关的设备和方法。设备的多个处理器中的一个可以执行第一操作系统以向车辆提供用户管理服务。第一操作系统可以向第二操作系统呈现接口,该第二操作系统可以通过该接口调用用户管理操作。第一操作系统可以生成与用户管理有关的第一消息。该接口可以将第一消息提供给第二操作系统。该接口可以从第二操作系统接收第二消息。第二消息可以与同步第一操作系统和第二操作系统之间的用户管理有关。

Description

车辆制造商用户管理系统与汽车操作系统的集成
本申请要求于2020年3月17日提交的美国临时专利申请No.62/990,910的优先权,其全部内容通过引用纳入本文。
技术领域
本公开涉及车辆制造商用户管理系统与汽车操作系统的集成。
背景技术
车辆可以包括所谓的头部单元或其他集成计算设备,其呈现接口(诸如,图形用户界面–GUI),通过该接口来控制车辆系统,诸如供暖、通风和空调(HVAC)系统、照明系统(用于控制内部和/或外部灯)、信息娱乐系统、座椅系统(用于控制驾驶员和/或乘客座椅的位置)等。头部单元可以向车辆系统发布一个或多个命令(也可以称为“命令集”)以改变一个或多个车辆系统的操作状态。
车辆的不同用户,诸如汽车、摩托车、公共汽车、休闲车(RV)、半挂卡车、拖拉机或其他类型的农用设备、火车、飞机、无人机、直升机、个人运输车辆等对于这些车辆系统的设置可能具有不同的偏好。例如,与同一车辆的矮个子驾驶员相比,高个子的驾驶员可能更喜欢座椅位置更加远离方向盘和与同一车辆的矮个子驾驶员不同的镜子设置。不同的驾驶员也可能更喜欢不同的无线电台设置、气候控制设置、安全设置、驾驶设置等。因此,车辆制造商(也称为原始设备制造商或OEM)已将用户管理功能内置到车辆中。例如,许多车辆允许用户保存与该用户相关联的自定义设置。通过与诸如按钮的接口进行交互,用户可以快速将各种系统的设置从现有设置移动到用户自己的首选的自定义设置。
考虑到不仅来自同一制造商的不同型号之间,而且不同制造商的型号之间的各种各样的车辆系统(就功能和操作两者而言),头部单元可以被配置成输出通常控制车辆系统的最高百分比的命令集,因为手动配置命令集既耗时又昂贵。
此外,制造商可以静态地编码(或换言之,“硬编码”)用于执行每个操作状态改变的命令集。即,制造商可以静态地对命令集进行编码以符合特定的控制总线协议(其中一些可以是专有的),车辆头部单元可以通过该总线协议与一个或多个系统进行通信。制造商可以对由车辆头部单元执行的操作系统进行硬编码,以生成符合控制总线协议的命令集。命令集中的每个命令集可能因一个或多个系统的控制总线和/或供应商等而不同,导致针对车辆的特定配置的命令集的耗时的静态编码,甚至在车辆型号内饰等级之间也会有所不同。
发明内容
通常,本公开的技术旨在使车辆计算设备(诸如车辆头部单元)能够向车辆提供用户管理服务。车辆头部单元的第一操作系统可以与车辆上的第二操作系统(也可以是车辆头部单元的第二操作系统)交互,该第二操作系统可以控制车辆上的各种系统的设置,诸如人体工程学系统(例如,座椅、方向盘和/或踏板系统)、信息娱乐系统、气候系统、安全系统和驾驶模式系统。车辆头部单元可以执行支持统一消息集的第一操作系统,而第二操作系统可以传达根据多个控制总线协议中的特定控制总线协议指定的本地控制消息以控制车辆的各种系统。除了对第一操作系统进行硬编码以支持特定的本地控制消息从而支持由车辆头部单元的第一操作系统提供的用户管理服务之外,本公开的技术的各个方面可以使第一操作系统能够向第二操作系统提供接口,例如,应用编程接口(“API”),以提供用户管理服务。第二操作系统可以包括用于与API对接的硬件抽象层(“HAL”)。
这样,技术的各个方面可以使制造商能够定义HAL,该HAL可以将消息从API转变为可由第二操作系统操作以控制车辆的一个或多个系统的消息。以这种方式,头部单元的第一操作系统可以向车辆提供用户管理服务。因为仅可以定义API和HAL,而不是在第一操作系统或第二操作系统内对硬编码转变映射进行静态编码以仅支持本地命令集,所以该技术的各个方面可以改善车辆头部单元操作系统可以被开发的速度,改善与新的或改变的控制总线协议的互操作性,以及在适应快速部署提供用户管理服务的此类操作系统的同时,以其它方式改善车辆头部单元操作系统的开发。
在一个示例中,技术的各个方面针对一种方法,该方法包括:由车辆的一个或多个处理器执行第一操作系统以向车辆提供用户管理服务;通过由一个或多个处理器执行的第一操作系统,向第二操作系统呈现接口,第二操作系统通过该接口调用用户管理操作;由一个或多个处理器执行的第一操作系统生成与用户管理有关的第一消息;通过接口将第一消息提供给第二操作系统;以及通过接口从第二操作系统接收第二消息,该第二消息与同步第一操作系统与第二操作系统之间的用户管理有关。
在另一示例中,技术的各个方面针对被配置成与车辆交互的设备,该设备包括:存储器,其被配置成存储用户管理数据;以及一个或多个处理器,其可通信地耦合到存储器并被配置成:执行第一操作系统,第一操作系统向第二操作系统呈现接口以调用用户管理操作;其中,第一操作系统被配置成生成与用户管理有关的第一消息,该接口被配置成向第二操作系统提供消息,并且该接口还被配置成从第二操作系统接收第二消息,该第二消息与同步在第一操作系统和第二操作系统之间的用户管理有关,并且其中第一操作系统基于第一消息向车辆提供用户管理服务。
在另一示例中,技术的各个方面针对具有存储在其上的指令的非暂时性计算机可读存储介质,该指令在被执行时,使车辆头部单元的一个或多个处理器执行:执行第一操作系统以向车辆提供用户管理服务;将第一操作系统的接口呈现给第二操作系统,第二操作系统通过该接口调用用户管理操作;生成与用户管理有关的第一消息;通过接口将第一消息提供给第二操作系统;并且通过接口从第二操作系统接收第二消息,该第二消息与同步第一操作系统与第二操作系统之间的用户管理有关。
在下面的附图和描述中阐述了一个或多个示例的细节。本公开的其他特征、目的和优点将通过描述和附图以及通过权利要求而显而易见。
附图说明
图1是图示示例车辆的框图,该示例车辆被配置成执行本公开中描述的技术的各个方面。
图2是更详细地图示图1的头部单元的示例的框图。
图3是图示根据本公开的技术的成功的用户切换的示例的流程图。
图4是图示根据本公开的技术的不成功的用户切换的示例的流程图。
图5是图示根据本公开的技术的不成功的用户切换的另一示例的流程图。
图6是图示根据本公开的技术的成功的用户创建的示例的流程图。
图7是图示根据本公开的技术的不成功的用户创建的示例的流程图。
图8是图示根据本公开的技术的不成功的用户创建的另一示例的流程图。
图9是图示根据本公开的技术的成功的用户移除的示例的流程图。
图10是图示根据本公开的技术的不成功的用户移除的示例的流程图。
图11是图示根据本公开的技术的不成功的用户移除的另一示例的流程图。
图12是图示根据本公开的技术的用户与认证因素的关联的示例的流程图。
图13是根据本公开的技术的提供用户管理服务的示例的流程图。
图14A-C是根据本公开的技术的提供用户管理服务的进一步示例的流程图。
图15是图示第一操作系统和第二操作系统的组件的示例的框图。
具体实施方式
图1是图示示例车辆8的框图,该示例车辆8被配置成执行本公开中描述的技术的各个方面。在图1的示例中,在下面的描述中假定车辆8是汽车。然而,本公开中描述的技术可以应用于能够在位置之间运送一个或多个乘员(occupants)的任何类型的车辆,诸如摩托车、公共汽车、休闲车(RV)、半挂卡车、拖拉机或其他类型的农用设备、火车、飞机、无人机、直升机、个人运输工具等。在一些示例中,车辆8可以是自动驾驶车辆。
在图1的示例中,车辆8包括处理器15、图形处理单元(GPU)14和系统存储器16。在一些示例中,处理器15、GPU 14和收发器模块(未在图1中示出)可以形成为集成电路(IC)。例如,IC可以被认为是芯片封装内的处理芯片,并且可以是片上系统(SoC)。
处理器15和GPU 14的示例包括但不限于一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。处理器15可以表示车辆8的中央处理单元(CPU)。在一些示例中,GPU 14可以是专用硬件,其包括向GPU 14提供适合于图形处理的大规模并行处理能力的集成和/或分立逻辑电路。在一些情况下,GPU 14还可以包括通用处理能力,并且在实施通用处理任务(例如,非图形相关任务)时可以被称为通用GPU(GPGPU)。虽然被示出为专用GPU 14,但GPU 14可以表示被集成到底层电路板(诸如,所谓的“主板”)中或以其他方式被合并到处理器15中的集成GPU。
处理器15可以执行各种类型的应用程序。应用程序的示例包括web浏览器、电子邮件应用程序、电子表格、视频游戏或生成可视对象以进行显示的其他应用程序。系统存储器16可以存储用于执行一个或多个应用程序的指令。由处理器15执行应用程序使处理器15产生将要显示的图像内容的图形数据。处理器15可以基于处理器15传输到GPU14的指令或命令将图像内容的图形数据传输到GPU 14以进行进一步处理。
系统存储器16还可以存储用户管理数据35。用户管理数据35可以包括授权用户的用户标识、用户名、一个或多个车辆系统26的运行状态的用户偏好设置或与用户有关的其他信息,诸如与用户相关联的认证的形式。在一些示例中,这种信息的全部或一部分可以作为用户简档存储在用户管理数据中。用户管理数据35可以被HAL 28或第二OS 31写入系统存储器16中或从系统存储器16中读取,并且在一些示例中,可以一起形成车辆用户管理系统。
处理器15可以根据应用编程接口(API)与GPU 14通信。而且,不要求本公开中描述的技术根据API起作用,并且处理器15和GPU 14可以利用任何技术来与GPU 14通信。
系统存储器16可以表示车辆8的存储器。系统存储器16可以包括一个或多个计算机可读存储介质。系统存储器16的示例包括但不限于随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、闪存或可以用于以指令和/或数据结构的形式携带或存储所需程序代码并且可以由计算机或处理器访问的其他介质。
在一些方面中,系统存储器16可以包括使处理器15执行本公开中赋予处理器15的功能的指令。因此,系统存储器16可以是在其上存储有指令的非暂时性计算机可读存储介质,该指令在被执行时使一个或多个处理器(例如,处理器15)执行各种功能。
系统存储器16是非暂时性存储介质。术语“非暂时性”指示存储介质不体现在载波或者传播的信号中。然而,术语“非暂时性”不应被解释为意指系统存储器16是不可移动的或者其内容是静态的。作为一个示例,系统存储器16可以从车辆8中移除,并且移动到另一设备。作为另一示例,可以将与系统存储器16基本类似的存储器插入到车辆8中。在某些示例中,非暂时性存储介质可以存储可以随时间变化的数据(例如,在RAM中)。
如在图1的示例中进一步示出的,车辆8可以包括显示器20和用户接口22。显示器20可以表示可以在其上投影图像的任何类型的无源反射屏幕,或者能够显示图像的有源反射或发射或透射显示器(诸如,发光二极管(LED)显示器、有机LED(OLED)显示器、液晶显示器(LCD)或任何其他类型的有源显示器)。尽管被示出为包括单个显示器20,但是车辆8可以包括可以被定位在车辆8的整个舱室中的多个显示器。在一些示例中,无源版本的显示器20或某些类型的有源版本的显示器20(例如,OLED显示器)可以集成到座椅、桌子、车顶衬板、地板、窗户(或在没有窗户或很少窗户的车辆、墙壁中)或车辆的舱室的其他方面中。当显示器20表示无源显示器时,显示器20还可以包括能够在无源显示器20上投影或以其他方式重建图像的投影仪或其他图像投影装置。此外,显示器20可以包括集成到驾驶员侧仪表盘中的显示器,该驾驶员侧仪表盘虚拟地表示物理仪表组(显示速度、每分钟转数、发动机温度等)。
显示器20还可以表示与其中车辆8是自动的车辆8进行有线或无线通信的显示器。显示器20例如可以表示计算设备,诸如膝上型计算机、平视显示器、头戴式显示器、增强现实计算设备或显示器(诸如,“智能眼镜”)、虚拟现实计算设备或显示器、移动电话(包括所谓的“智能电话”)、平板计算机、游戏系统或者能够充当集成到车辆8中的显示器的扩展或代替该显示器的另一类型的计算设备。
用户接口22可以表示用户可以与其对接以控制车辆8的各种功能的任何类型的物理或虚拟接口。用户接口22可以包括物理按钮、旋钮、滑块或其他物理控制工具。用户接口22还可以包括虚拟接口,从而车辆8的乘员可以经由作为一个示例的触敏屏幕或经由非触摸接口与虚拟按钮、旋钮、滑块或其他虚拟接口元件进行交互。乘员可以与用户接口22对接以控制车辆8内的气候、车辆8的音频播放、车辆8的视频播放、通过车辆8的传输(诸如,手机通话)或能够由车辆8执行的任何其他操作中的一种或多种。
当作为集成到车辆8中的显示器的扩展或代替该显示器时,用户接口22还可以表示扩展到显示器20的接口。即,用户接口22可以包括经由平视显示器(HUD)、增强现实计算设备、虚拟现实计算设备或显示器、平板计算机或上面列举的任何其他不同类型的扩展显示器呈现的虚拟接口。
在车辆8的上下文中,用户接口22可以进一步表示用于手动或半手动控制车辆8的物理元件。例如,用户接口22可以包括用于控制车辆8的行驶方向的一个或多个方向盘、用于控制车辆8的行驶速率的一个或多个踏板、一个或多个手制动器等。
在图1的示例中,处理器15、GPU 14、系统存储器16、显示器20和UI 22在汽车上下文中可以共同地至少部分地表示所谓的头部单元24(或者换言之,“车辆头部单元24”)。头部单元24可以表示能够与车辆8的各个方面对接和/或为乘员提供娱乐和/或有关车辆8的信息的任何集成或单独的计算设备(其中,这种头部单元可以被称为“信息娱乐单元”或“信息娱乐系统”)。
如在图1的示例中进一步示出的,车辆8可以包括多个不同的车辆系统26A-26N(“车辆系统26”)。车辆系统26可以包括供暖、通风、空调(HVAC)系统、或者温度调节系统(例如,除了HVAC系统之外还可以包括加热和/或冷却的座椅)(两者之一或两者在本文中也可以称为气候系统)、照明系统(用于提供内部和/或外部照明)、座椅控制系统(用于调整乘员就座的位置)、镜子控制系统(用于控制内部和/或外部镜子,包括后视镜、侧镜、遮阳镜等)、雨刷控制系统、娱乐系统(用于控制无线电播放、视频播放、图像显示等)、安全辅助系统(用于控制停车辅助、后备辅助等)、驾驶模式系统(用于控制悬架、变速箱等)、天窗/顶窗控制系统(用于控制天窗和/或顶窗),以及能够经由诸如头部单元24的头部单元进行控制的任何其他类型的车辆系统。车辆系统26的示例可以包括电子控制单元(ECU),其可以控制车辆系统26的任何前述示例。
头部单元24可以向车辆系统26发布图1中示出的一条或多条消息作为命令(“CS”)25A-25N以改变车辆系统26中的一个或多个的操作状态。考虑到不仅来自同一制造商的不同型号的车辆之间,而且来自不同制造商的型号车辆之间的各种各样的车辆系统26(就功能和操作两者而言),头部单元24可以被配置成输出通常控制车辆系统26的最高百分比的命令25A-25N,因为命令集的手动配置是耗时、昂贵且容易出错的。
此外,头部单元24可以执行被配置成向车辆8提供用户管理服务的第一操作系统(“OS”)30。第一OS 30可以包括诸如API 29的接口,用于与诸如第二OS 31的另一操作系统进行对接。头部单元24还可以执行第二OS 31,该第二OS 31被配置成根据控制总线协议(诸如控制局域网(CAN)协议)输出消息。头部单元的操作系统(诸如第二OS 31)可以被静态配置成(或换句话说,“硬编码”)经由CAN协议或其他标准(例如,开放式或专有)控制总线协议与车辆系统26通信。即,制造商可以手动编程第二OS 31以使第二OS 31能够经由控制总线(为了便于说明在图1的示例中未示出)与车辆系统26中的每一个对接。
对操作系统进行编程以正确地与车辆系统26中的每一个对接可能很耗时,并且需要大量测试以确保与车辆系统26的正确互操作性。为了说明,制造商可能会从各种各样的供应商采购车辆系统26,这些供应商可以提供传达车辆属性的状态并且根据许多不同的控制总线协议而被控制的车辆系统26。即使在单个型号内,制造商也可能必须采购根据不同的控制总线协议(诸如在同一型号的不同内饰等级之间)进行通信的车辆系统26。因此,制造商可能创建两个或更多个不同版本的操作系统,操作系统中的每一个操作系统被分别硬编码以经由不同的控制总线协议与车辆系统26进行通信。另外,对控制总线协议的任何改变都可能导致制造商更新操作系统以对操作系统进行硬编码以支持控制总线协议的较新版本,这可能会潜在地降低制造商支持新的或改变的控制总线协议的能力,从而潜在地阻止车辆8接收提高车辆8的安全性、便利性和其他方面的升级。
根据本公开中描述的技术的各个方面,操作系统(例如,第一OS30)可以给车辆中的另一操作系统(例如,第二OS 31)提供用于传达消息的诸如API的接口,以用于提供用户管理服务。如上所述,车辆系统总线可以符合不同的专有和开放标准,通过其专有和开放标准,命令25A-25N在头部单元24(也可以称为“车辆头部单元24”)与该车辆的一个或多个系统之间(例如,车辆系统26)进行通信。车辆头部单元24可以执行第一OS 30,该第一OS 30支持统一消息以向车辆8提供用户管理服务,并且可以执行第二OS 31,该第二OS 31可以支持根据多个本地控制总线协议的特定本地控制总线协议指定的,用于通过车辆系统总线26进行通信的本地控制消息。除了对第一OS 30进行硬编码以支持特定的本地控制消息之外,技术的各个方面可以使车辆头部单元24的第一OS 30提供接口(诸如API),以使第一OS 30与第二OS 30之间的消息传达能够进行,从而促进第一OS 30向车辆8提供用户管理服务。可以根据DBC格式、Kayak CAN定义(KCD)格式或其他格式之一来格式化本地控制消息。
在操作中,处理器15可以执行第一OS 30以为车辆8提供用户管理服务。在一些示例中,处理器15可以执行第一OS 30以控制一个或多个车辆系统26,诸如以更改一个或多个车辆系统26的设置从而通过第二OS 31反映特定用户的偏好。例如,第一OS 30可以通过接口(诸如API 29)向第二OS 31提供消息。
在一些示例中,处理器15可以执行第一OS 30的一个或多个线程以及第二OS 31的一个或多个线程。在一些示例中,单独的处理器可以执行第一OS 30的一个或多个线程并且单独的处理器可以执行第二OS31的一个或多个线程。在一些示例中,第二OS 31可以被配置成提供HAL 28。HAL 28可以提供在API 29和车辆系统26(包括控制总线,在图1的示例中未显示)之间提供所谓的软件垫片层。处理器15可以执行代表第二OS 31的一个或多个线程,包括与HAL 28相关联的一个或多个线程。处理器15可以分别以与第一OS 30或第二OS 31的一个或多个线程相关联的一个或多个命令的形式从系统存储器16检索第一OS 30(包括API29)或第二OS 31(包括HAL 28),在执行之前将命令加载到本地存储器中(例如,第一层(L1)、第二层(L2)和/或三层(L3)缓存,为了简单说明其未在图1的示例中示出)。这样,API29、第一OS 30、HAL 28和第二OS 31被示为包括在处理器15中,使用虚线指示由处理器15来执行,而被示为也包括在系统存储器16中,使用实线表示API 29、第一OS 30、HAL 28和第二OS 31的长期存储。尽管示出为由处理器15执行,但是HAL 28也可以使用专用电路或硬件逻辑来实现。
在任何情况下,HAL 28可以与API 29对接以使第一OS 30能够通过第二OS 31与车辆系统26进行对接。这样,第一OS 30可以向第二OS 31提供与用户管理相关的消息并且第二OS 31可以生成命令25以控制一个或多个车辆系统26,该命令25符合第二OS 31所支持的控制总线协议。HAL 28可以接收(或者在某些情况下,拦截)消息,并且在一些示例中无需第二OS 31请求这种转变的情况下(并且在这方面从第二OS 31的角度而言是透明的)转变该消息以获得符合本地控制总线的本地消息。
在一些示例中,HAL 28可以从API 29接收消息的第一表示,其可以包括与用户管理有关的信息,诸如改变车辆系统26中的一个或多个的操作状态或发起车辆系统26中的一个或多个的操作状态改变使得车辆系统26中的一个或多个的操作状态符合给定用户的偏好的请求。
HAL 28可以重新布置或以其他方式转换消息内的字节值,从而转变消息以获得符合控制总线协议的本地控制消息。这样,本地控制消息可以包括消息的第二表示。HAL 28可以通过耦合到处理器15和车辆系统26的控制总线传输本地控制消息,以启动一个或多个车辆系统26的操作状态机会。
HAL 28可以同样地从车辆系统26接收(或在某些情况下从第二OS 31和车辆系统26的角度透明地拦截)包括操作状态27A-27N(“操作状态27”,如图1所示的“ST 27A-27N”)的本地消息。本地控制消息可以符合本地控制总线协议。HAL 28可以转变本地控制消息以获得第一OS 30的API 29支持的消息。如上所述,HAL 28可以提供此转变作为抽象底层硬件的一部分(或换句话说,作为提供垫片软件层的一部分),允许在各种不同的硬件平台上更可能轻松地开发和安装第一OS 30。HAL 28可以将消息提供给API 29,API 29可以获取由先前发送的消息所请求的操作状态改变的确认。
如上所述,在一个示例中,HAL 28可以表示单元,该单元被配置成响应于通过显示器20呈现的GUI从用户接收到的改变一个或多个车辆系统26的操作状态的输入,处理来自于第一OS 30的API 29的消息。HAL 28还可以处理来自第一OS 30的API 29的输出,这些输出是响应于其他输入(诸如操作状态27)而自动生成的。输出可以引用由第一OS 30发布的消息来执行操作状态改变或请求操作状态改变。
在一些示例中,第一OS 30或第二OS 31可以基于认证的形式确定发起一个或多个车辆系统26的操作状态的改变。例如,第一OS 30或第二OS 31可以将用户与密钥卡、指纹、面部或语音相关联。在一些示例中,车辆系统26之一可以表示认证系统。在其他示例中,头部单元24可以包括认证系统。认证系统可以确定认证因素(在本文中也称为认证的形式),诸如正在使用哪个密钥卡、用户的指纹、用户的面部图像或用户的语音样本。认证系统可以向第二OS 31提供指示认证因素的消息。
在一些示例中,HAL 28可以向API 29提供指示认证因素的消息。第一OS 30可以基于认证因素来确定当前用户不是“最后活跃用户”,并且基于当前用户不是最后活跃用户通过API 29向HAL 28提供消息以请求一个或多个车辆系统26中的改变。最后活跃用户可能是使用汽车的最后用户(在关掉汽车引擎或关闭汽车之前)。该消息可以包括当前用户的一个或多个车辆系统26的一个或多个偏好设置。
HAL 28可以在给定时间处确定哪些用户管理服务是可用的。例如,出于安全原因,HAL 28可以确定当车辆在运转时用户设置的改变可能是不可用的,或者为了使用户设置的改变是可用的而必须使车辆处于停放状态。在一些示例中,基于车辆的状态,HAL 28可以确定某些用户设置可以被改变,而其他的用户设置不能被改变。例如,当车辆在运动时,HAL28可以确定座椅相对位置不能改变,但是气候控制可以改变。
图2是更详细地图示图1的头部单元的示例的框图。在图2的示例中示出的头部单元24A是图1中所示的头部单元24的一个示例。头部单元24A可以执行第一OS 30(和API29),其为汽车服务50(例如用户管理服务)提供执行环境。
头部单元24A还可以执行两个不同的HAL 28A和28B。车辆HAL28A可以执行转变服务52,其可以根据本公开中描述的技术的各个方面在来自API 29的消息与本地控制消息之间执行转变。控制器局域网(CAN)总线HAL 28B可以表示单元,该单元被配置成将本地控制消息转换为通用系统总线(USB)信号,并将USB信号转换为本地控制消息,从而在硬件和第一OS 30之间提供另一个抽象层。
头部单元24A还可以包括USB 56,该USB 56是物理USB接口,以及一个或多个处理器、固定逻辑电路、专用信号处理器、专用控制处理器(诸如专用控制总线处理器)和/或暴露USB CAN接口58和网关60的类似物。USB CAN接口58可以表示被配置成经由USB端口提供对CAN 61的访问的单元。网关60表示被配置成暴露通过其控制对CAN61的访问的控制总线网关的单元,并且当存在某些条件(例如,丢弃畸形的CAN信号等)时,可以表示能够限制对CAN 61的访问的防火墙或其他类型的设备。可以控制车辆电气系统或子系统的多个电子控制单元(ECU)62A–62N可以通信地耦合到CAN 61。
图3是图示根据本公开的技术的成功的用户切换的示例的流程图。在此示例中,当前用户可以被设置为用户10,并且现有用户可以包括用户0、10和11。用户接口(“UI”)100(APP UI)可以将消息(例如,SwitchToUser(11,收听者))发送给CarUserManager应用程序102(APP CARUM),请求将用户从用户10切换到用户11(202)。在一些示例中,该消息可以基于用户输入。在其他示例中,该消息可以基于认证因素。在一些示例中,该消息可以包括一个或多个车辆系统26的操作状态的设置的用户11的偏好。UI 100可以表示图1中所示的示例显示器20。CarUserManager应用程序102可以响应UI 100消息已被接收(204)。CarUserManager应用程序102可以向CarUserService 104(CAR CARUS)发送消息(例如,SwitchToUser(11,收听者)),请求从用户10切换到用户11(206)。CarUserService 104可以表示第一OS 30的示例。CarUserService104可以确定是否已经启用切换用户的许可(208)。如果已启用许可,则CarUserService 104可以向UserHalService 106(CAR UHS)发送消息(例如,SwitchUser(10,11,(0,10,11),收听者)),请求从用户10切换到用户11(210)。UserHalService 106可以表示图1和2中所示的API 29的示例。
UserHalService 106可以向VehicleHAL 108(OEM VHAL)发送消息(例如,SWITCH_USER_REQUEST:10,11(0,10,11)),请求从用户10切换到用户11(212)。VehicleHAL 108可以表示图1和2中所示的HAL 28的示例。例如,VehicleHAL 108可以在VehicleHAL108中或在第二OS 31中内部地将用户10切换到用户11(213)。例如,VehicleHAL 108可以向一个或多个车辆系统26发布本地命令,以改变一个或多个操作状态以匹配用户11的偏好。VehicleHAL可以将指示在车辆上用户的切换的消息(例如,SWITCH_USER_REQUEST:OK,-1)提供返回到UserHalService 106(214)。UserHalService 106可以向CarUserService 104发送消息(例如,结果(ok)),指示第一OS 30中的用户的改变是可以的(216)。CarUserService 104可以将切换到用户的消息(例如,SwitchUser(11))提供给IActivityManager 110(可以是第一OS 30的示例)(218)。IActivityManager 110可以将第一OS 30中的用户切换到用户11(219),并且将消息(例如,真)提供返回给CarUserService 104,指示该用户已经被改变为用户11(220)。
在一些示例中,CarUserService 104可以向UserHalService 106发送post请求(例如,postSwitchUser(ok,10,11,(0,10,11)),该请求确认已完成从用户10到用户11的切换(222),并且UserHalService 106可以向VehicleHAL 108发送消息(例如,SWITCH_USER_POST_REQUEST:OK,10,11,(0,10,11)),确认已完成从用户10到用户11的切换(224)。在一些示例中,post请求像onUserSwitch()callback一样起作用,并且在ACTION_LOCKED_BOOT_COMPLETED上发送。CarUserService 104还可以向UI 100发送消息(例如,listener.onResult(result=ok)),指示正在进行用户的改变(226)。在一些示例中,UI100可以向用户提供完成了用户改变的指示(为了简化目的未示出)。例如,UI 100可能会显示消息,诸如“欢迎回来,John”或“已改变车辆系统以匹配您的偏好,Mary”等消息。在一些示例中,UI 100可以向用户提供改变完成的听觉指示。
图4是图示根据本公开的技术的基于第二OS 31的不成功的用户切换的示例的流程图。在此示例中,当前用户是用户10,并且现有用户可以包括用户0、10和11。UI 100可以向CarUserManager应用程序102发送消息(例如,SwitchToUser(11,收听者)),请求从用户10切换到用户11(228)。CarUserManager应用程序102可以响应UI 100消息已被接收(230)。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,SwitchToUser(11,收听者)),请求从用户10切换到用户11(232)。CarUserService 104可以表示第一OS30的示例。CarUserService104可以确定是否已经启用切换用户的许可(234)。如果已经启用许可,则CarUserService 104可以向UserHalService 106发送消息(例如SwitchUser(10、11,(0,10,11),收听者)),请求从用户10切换到用户11(236)。UserHalService 106可以表示在图1和2中所示的API 29的示例。
UserHalService 106可以向VehicleHAL 108发送消息(例如,SWITCH_USER_REQUEST:10,11(0,10,11)),请求从用户10切换到用户11(238)。VehicleHAL 108可以表示图1和2中所示的HAL 28的示例。VehicleHAL 108可以拒绝将用户10切换到用户11的请求,并且将指示拒绝切换用户的请求的消息(例如,SWITCH_USER_REQUEST:FAIL,42)提供返回到UserHalService 106(240)。例如,VehicleHAL 108可以确定车辆正在移动并且阻止用户切换。UserHalService 106可以向CarUserService 104发送消息(例如,结果(失败,42)),指示改变用户的请求已被拒绝(242)。CarUserService104可以向UI 100提供消息(例如,listener.onResult(结果=OEM_FAIL,错误=42)),指示尚未发生用户切换(244)。在一些示例中,UI 100可以向用户11提供尚未发生切换的指示(245)。例如,UI 100可以显示错误消息或由于一些原因(诸如车辆正在移动等)而不允许用户改变的消息。在一些示例中,UI100可以提供用户改变没有发生的听觉指示。
图5是图示根据本公开的技术的基于第一OS 30的不成功的用户切换的示例的流程图。在该示例中,当前用户可以被设置为用户10,并且现有用户可以包括用户0、10和11。UI 100可以向CarUserManager应用程序102发送消息(例如,SwitchToUser(11,收听者)),请求将用户从用户10切换到用户11(246)。CarUserManager应用程序102可以响应UI 100消息已被接收(248)。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,SwitchToUser(11,收听者)),请求从用户10切换到用户11(250)。CarUserService 104可以表示第一OS 30的示例。CarUserService104可以确定是否已经启用切换用户的许可(252)。如果已启用许可,则CarUserService 104可以向UserHalService 106发送消息(例如,SwitchUser(10,11,(0,10,11),收听者)),请求从用户10切换到用户11(254)。UserHalService106可以表示图1和2中所示的API 29的示例。
UserHalService 106可以向VehicleHAL 108发送消息(例如,SWITCH_USER_REQUEST:10,11(0,10,11)),请求从用户10切换到用户11(256)。VehicleHAL 108可以表示图1和2中所示的HAL 28的示例。VehicleHAL 108可以在VehicleHAL 108中或在第二OS 31中内部地将用户10切换到用户11(257),并且将指示在车辆上的用户切换是可以的消息(例如,SWITCH_USER_REQUEST:OK,-1)提供返回给UserHalService 106(258)。UserHalService106可以向CarUserService 104发送消息(例如,结果(ok)),指示第一OS 30中的用户的改变是可以的(260)。CarUserService 104可以向IActivityManager 110(其可以是第一OS30的示例)提供切换到用户11的消息(例如,SwitchUser(11))(262)。IActivityManager110可能无法在第一OS 30中改变用户(为了简化目的未示出),并且可以向CarUserService104提供返回消息(例如,假),指示用户尚未被改变(264)。CarUserService 104可以将确认没有从用户10切换到用户11的post请求(例如,postSwitchUser(失败,10,10,(0,10,10)))发送到UserHalService 106(266),并且UserHalService 106可以向VehicleHAL 108发送消息(例如,SWITCH_USER_POST_REQUEST:10,11,(0,10,10)),指示用户保持用户10(268)。VehicleHAL108可以在VehicleHAL 108中或第二OS 31中内部地将用户改变回到用户10(269)。CarUserService 104可以向UI 100提供消息(例如,listener.onResult(结果=ANDROID FAIL)),指示用户的切换尚未发生(270)。在一些示例中,UI 100可以向用户11提供尚未发生切换的指示(为了简化目的未示出)。例如,UI 100可以显示错误消息或由于某些原因(诸如车辆正在移动等)不允许用户的改变的消息。在一些示例中,UI 100可以提供用户未发生改变的听觉指示。
图6是图示根据本发明的技术的成功的用户创建的示例的流程图。用户界面(“UI”)100(APP UI)可以向CarUserManager应用程序102发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者)),请求创建新用户(272)。该消息可以包括用户类型(诸如普通用户或访客用户)和用户名。在一些示例中,访客用户可以具有与普通用户不同的控制车辆系统26的能力。例如,基于访客用户的简档的访客用户可能无法像基于常规用户的简档的常规用户那样能够配置一样多的车辆系统26。在一些示例中,消息可以是创建初始用户请求。例如,当车辆最初被开启时(第一次或在车辆销售时),UI 100可以寻求创建初始用户。用户简档可以包括用于各种车辆系统26A-26N的设置的用户偏好。
此外,该消息可以包括用于一个或多个车辆系统26的操作状态的偏好设置。UI100可以表示图1中所示的示例显示器20。CarUserManager应用程序102可以响应UI 100消息已被接收(274)。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者)),请求创建新用户(276)。CarUserService 104可以表示第一OS 30的示例。CarUserService104可以向IUserManager112发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者)),请求创建新用户(278)。IUserManager 112可以确定是否已经启用创建用户的许可(280)。如果已启用许可,则IUserManager 112可以向CarUserService 104发送消息(例如,UserInfo(info.id-12)),指示可以创建新用户并且该新用户标识为用户12(282)。CarUserService 104可以向UserHalService 106发送消息(例如,CreateUser(12,“TheDude”、userType、标志、收听者)),请求创建新用户12(284)。UserHalService 106可以表示图1和2中所示的API 29的示例。
UserHalService 106可以向VehicleHAL 108发送消息(例如,CREATE_USER_REQUEST:12,标志,“userType,TheDude”)以创建新用户12(286)。VehicleHAL 108可以表示图1和2中所示的HAL28的示例。VehicleHAL 108可以在VehicleHAL 108或第二OS 31中创建新用户12,并在用户管理数据35中存储新用户信息(例如,用户ID、用户名、用户类型和/或一个或多个车辆系统26的偏好设置)(287)。VehicleHAL 108可以向UserHalService 106提供消息(例如,CREATE_USER_REQUEST:OK),指示已经在用户管理数据35中创建新用户12(288)。UserHalService 106可以向CarUserService 104发送消息(例如,结果(ok)),指示新用户12的创建是成功的(290)。CarUserService 104可以向UI 100提供消息(例如,listener.onResult(结果=ok,userId=12),指示新用户12的创建是成功的(292)。在一些示例中,UI 100可以向用户提供新用户的创建是成功的指示(为了简化目的未示出)。例如,UI 100可以显示指示新用户的创建是成功的消息,或者UI 100可以提供新用户的创建是成功的听觉指示。
图7是图示根据本公开的技术的基于第一OS 30的不成功的用户创建的示例的流程图。用户界面(“UI”)100(APP UI)可以向CarUserManager应用程序102发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者),请求创建新用户(294)。UI 100可以表示图1所示的示例显示器20。CarUserManager应用程序102可以响应UI 100消息已被接收(296)。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者)),请求创建新用户(298)。CarUserService 104可以表示第一OS 30的示例。CarUserService104可以向IUserManager112发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者)),请求创建新用户(300)。IUserManager 112可以确定是否已经启用创建用户的许可(302)。如果尚未启用许可,则IUserManager 112可以向CarUserService 104发送消息(例如,空),指示新用户可能未创建(304)。在这种情况下,CarUserService 104可能不呼叫VehicleHAL108。CarUserService104可以向UI 100提供消息(例如,listener.onResult(结果=ANDROID_FAIL)),指示新用户的创建不成功(306)。UI 100可以提供新用户的创建不成功的指示(307)。例如,UI 100可以显示消息或提供新用户的创建不成功的听觉指示。
图8是示出根据本公开的技术的基于第二OS 31的不成功的用户创建的示例的流程图。用户界面(“UI”)100(APP UI)可以向CarUserManager应用程序102发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者),请求创建新用户(308)。UI 100可以表示图1所示的示例显示器20。CarUserManager应用程序102可以响应UI 100消息已被接收(310)。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者),请求创建新用户(312)。CarUserService104可以表示第一OS 30的示例。CarUserService104可以向IUserManager 112发送消息(例如,CreateUser(“TheDude”、userType、标志、收听者)),请求创建新用户(314)。IUserManager 112可以表示第一OS 30的示例。IUserManager 112可以确定是否已经启用创建用户的许可(316)。如果已启用许可,则IUserManager 112可以在IUserManager 112中创建新用户,例如用户12(为了简化目的未示出)。IUserManager 112可以向CarUserService 104发送消息(例如,UserInfo(info.id=12)),指示可以创建新用户并且新用户标识是用户12(318)。CarUserService 104可以向UserHalService 106发送消息(例如,CreateUser(12,“TheDude”、userType、标志、收听者)),请求创建新用户12(320)。UserHalService106可以表示图1和2中所示的API 29的示例。
UserHalService 106可以向VehicleHAL 108发送消息(例如CREATE_USER_REQUEST:12,标志,“userType,TheDude”)以创建新用户12(322)。VehicleHAL 108可以表示图1和2中所示的HAL28的示例。VehicleHAL108可能无法在用户管理数据35中创建新用户12(323)。VehicleHAL 108可以向UserHalService 106提供消息(例如,CREATE_USER_REQUEST:FAIL,42),指示尚未在用户管理数据35中创建新用户12(324)。UserHalService106可以向CarUserService104发送消息(例如,结果(FAIL,42)),指示创建新用户12不成功(326)。CarUserService104可以向IUserManager 112提供消息(例如,removeUser(12))以移除用户12(328)。IUserManager 112可以移除用户12(为了简化目的未示出)。CarUserService 104可以向UI100提供消息(例如listener.onResult(结果=OEM_FAIL,错误=42)),指示新用户12的创建不成功(330)。UI100可以提供新用户的创建不成功的指示(为了简化目的未示出)。
图9是图示根据本公开的技术的成功的用户移除的示例的流程图。用户界面(“UI”)100(APP UI)可以将消息(例如,removeUser(12,收听者))发送到CarUserManager应用程序102,请求移除用户12(332)。UI 100可以表示图1所示的示例显示器20。CarUserManager应用程序102可以响应UI 100消息已被接收(334)。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,removeUser(12)),请求移除用户12的(336)。CarUserService 104可以表示第一OS 30的示例。CarUserService104可以向IUserManager 112发送消息(例如,removeUser(12)),请求移除用户12(338)。IUserManager 112可以表示第一OS 30的示例。IUserManager 112可以确定是否已经启用移除用户的许可(340)。如果已启用许可,则IUserManager 112可以向CarUserService 104发送消息(例如,真),指示CarUserService 104可以移除用户(342)。CarUserService 104可以向UserHalService 106发送消息(例如,removeUser(12)),请求移除用户12(344)。UserHalService 106可以表示图1和2中所示的API 29的示例。
UserHalService 106可以向VehicleHAL 108发送消息(例如,REMOVE_USER_REQUEST:12)以移除用户12(346)。VehicleHAL108可以表示图1和2中所示的HAL 28的示例。VehicleHAL 108可以从例如用户管理数据35中移除用户12(347)。VehicleHAL 108可以向UserHalService 106提供消息(例如,REMOVE_USER_REQUEST:OK),指示用户12已被移除(348)。UserHalService 106可以向CarUserService 104发送消息(例如,结果(ok)),指示用户12被移除(350)。CarUserService 104可以向IUserManager 112发送消息(例如,removeUser(12))以同样移除用户12(352)。IUserManager 112可以从例如基于云的存储器(为了简化目的未示出)中移除用户12。CarUserService 104还可以向UI 100提供指示用户12已被移除的消息。UI可以向用户提供用户12被移除的指示,诸如显示的消息或听觉指示(为了简化目的未示出)。
图10是图示根据本公开的技术的基于第一OS 30的不成功的用户移除的示例的流程图。UI 100可以将消息(例如,removeUser(12,收听者))发送到CarUserManager应用程序102,请求移除用户,例如,用户12(356)。UI 100可以表示图1中所示的示例显示器20。CarUserManager应用程序102可以响应UI 100消息已被接收(358)。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,removeUser(12)),请求移除用户12(360)。CarUserService 104可以表示第一OS 30的示例。CarUserService104可以向IUserManager112发送消息(例如,removeUser(12)),请求移除用户12(362)。IUserManager112可以表示第一OS 30的示例。IUserManager 112可以确定是否已经启用移除用户的许可(364)。如果尚未启用许可,则IUserManager 112可以向CarUserService 104发送消息(例如,假),指示CarUserService 104可能不会移除用户(366)。在这种情况下,CarUserService 104可能不会呼叫VehicleHAL108。CarUserService104可以向UI 100发送消息(例如,listener.onResult(结果=ANDROID_FAIL)),指示用户12尚未被移除(368)。UI100可能会提供用户12尚未被移除的指示。
图11是图示根据本公开的技术的基于第二OS 31的不成功的用户移除的示例的流程图。用户界面(“UI”)100(APP UI)可以向CarUserManager应用程序102发送消息(例如,removeUser(12,收听者)),请求移除用户12的(370)。UI 100可以表示图1所示的示例显示器20。CarUserManager应用程序102可以响应UI 100消息已被接收(372)。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,removeUser(12)),请求移除用户12(374)。CarUserService 104可以表示第一OS 30的示例。CarUserService104可以向IUserManager 112发送消息(例如,removeUser(12)),请求移除用户12(376)。IUserManager 112可以表示第一OS30的示例。IUserManager 112可以确定是否已经启用移除用户的许可(378)。如果已经启用许可,则IUserManager 112可以向CarUserService 104发送消息(例如,真),指示CarUserService 104可以移除用户(380)。CarUserService 104可以向UserHalService 106发送消息(例如,removeUser(12)),请求移除用户12(382)。UserHalService 106可以表示图1和2中所示的API 29的示例。
UserHalService 106可以向VehicleHAL 108发送消息(例如REMOVE_USER_REQ:12)以移除用户12(384)。VehicleHAL 108可以表示图1和2中所示的HAL 28的示例。VehicleHAL 108可能无法从例如用户管理数据35中移除用户12(385)。例如,VehicleHAL108可以确定用户12是当前用户并且不移除当前用户。VehicleHAL 108可以向UserHalService 106提供消息(例如,REMOVE_USER_REQ:FAIL,42),指示用户12尚未被移除(386)。UserHalService 106可以向CarUserService 104发送消息(例如,结果(FAIL,42)),指示用户12未被移除(388)。CarUserService 104可以向UI 100提供消息(例如,listener.onResult(结果=OEM_FAIL,错误=42)),指示用户12未被移除(390)。UI 100可以提供未移除用户12的指示(为了简化目的未示出)。例如,UI 100可以显示消息或提供用户12未被移除的听觉指示。
现代车辆具有多种其中车辆可以通过诸如密钥卡,面部图像、指纹或语音样本将人类驾驶员与计算机中的用户相关联的方式。API 29可以被配置成提供检查和设置认证方法。在一些示例中,其可以提供用于认证的预定义值(诸如密钥卡、面部认证、蓝牙连接等)。车辆制造商可能能够自定义认证。图12是图示根据本公开的技术的用户与认证因素的关联的示例的流程图。虽然图12的示例讨论密钥卡作为认证因素,但是可以使用任何认证因素,诸如指纹、面部图像、语音样本等。用户界面(“UI”)100(APP UI)可以向CarUserManager应用程序102发送消息(例如,getUserIdentification)((KEY_FOB)),请求与用户正在使用的密钥卡相关联的用户标识(392)。UI 100可以表示图1所示的示例显示器20。CarUserManager应用程序102可以向CarUserService 104发送消息(例如,getUserIdentification((KEY_FOB)),请求与密钥卡相关联的用户标识(394)。CarUserService 104可以表示第一OS 30的示例。CarUserService 104可以确定是否已经启用提供用户标识的许可(395)。如果已启用许可,则CarUserService 104可以向UserHalService 106发送消息(例如getUserIdentification((KEY_FOB)),请求与密钥卡相关联的用户标识(396)。UserHalService 106可以表示在图1和图2中示出的API 29的示例。
UserHalService 106可以向VehicleHAL 108发送消息(例如,get USER_IDENTIFICATION_ASSOCIATION(10,(KEY_FOB)),请求与密钥卡相关联的用户标识(398)。VehicleHAL 108可以表示图1和图2中所示的HAL 28的示例。VehicleHAL 108可以确定密钥卡是否与用户标识相关联(为了简化目的未示出)。
如果密钥卡与用户标识相关联,VehicleHAL 108可以将用户标识提供给UserHalService 106(为了简化目的未示出),该UserHalService106可以将用户标识提供给CarUserService 104(为了简化目的未示出),该CarUserService 104可以将用户标识提供给UI 100(为了简化目的未示出)。如果用户标识不同于最后活跃用户,则UI 100可以尝试切换用户(为了简化目的未示出),如图3至图5中所示。
另一方面,如果密钥卡没有与用户标识相关联,则VehicleHAL 108可以将消息(例如USER_IDENTIFICATION_ASSOCIATION(NOT_ASSOCIATED_ANY_USER))提供给UserHalService 106,指示密钥卡没有与用户标识相关联(400)。UserHalService 106可以向CarUserService 104发送消息(例如,(NOT_ASSOCIATED_ANY_USER)),指示密钥卡没有与用户标识相关联(402)。CarUserService 104可以向UI 100提供消息(例如,(NOT_ASSOCIATED_ANY_USER)),指示密钥卡没有与用户标识相关联(404)。UI 100可以向CarUserManager 102发送消息,请求将密钥卡与当前用户相关联(406)。CarUserManager102可以向CarUserService 104发送消息(例如,setUserIdentification((KEY_FOB))),请求将密钥卡与当前用户相关联(408)。CarUserService 104可以确定是否已经启用将密钥卡与当前用户相关联的许可(410)。如果已启用许可,则CarUserService 104可以向UserHalService 106发送消息(例如,setUserIdentification((KEY_FOB))),请求将密钥卡与当前用户相关联(412)。
UserHalService 106可以向VehicleHAL 108发送消息(例如,set_USER_IDENTIFICATION_ASSOCIATION(10,KEY_FOB)),指示VehicleHAL 108将用户10(当前用户的标识)与密钥卡相关联(414)。VehicleHAL 108可以将当前用户与密钥卡(为了简化目的未示出)相关联,并且向UserHalService 106发送消息(例如,USER_IDENTIFICATION_ASSOCIATION(ASSOCIATE_CURRENT_USER)),指示当前用户现在与密钥卡相关联(416)。UserHalService 106可以向CarUserService 104发送消息(例如,ASSOCIATE_CURRENT_USER),指示当前用户现在与密钥卡相关联(418)。CarUserService104可以将消息(例如,ASSOCIATE_CURRENT_USER)发回到UI 100,指示当前用户现在与密钥卡相关联(420)。UI100可以向当前用户提供它们现在与密钥卡相关联的指示,例如,显示的消息或听觉指示(为了简化目的未示出)。
图13是根据本公开的技术的提供用户管理服务的示例的流程图。车辆的一个或多个处理器(例如,处理器15)可以执行第一操作系统(例如,第一OS 30)以向车辆(500)提供用户管理服务。例如,处理器15可以从系统存储器16加载第一OS 30并执行第一OS 30。如本公开中所讨论的,第一OS 30可以向车辆提供用户管理服务。
第一操作系统可以向第二操作系统呈现接口,第二操作系统通过该接口调用用户管理操作(502)。例如,第一OS 30可以向第二OS 31呈现API 29。第二OS 31可以使用API 29调用如本公开中所描述的用户管理操作。
第一操作系统可以生成与用户管理有关的第一消息(504)。例如,第一OS 30可以生成与用户管理有关的第一消息,该第一消息可以包括改变用户的请求、用户创建消息、用户删除消息、初始用户指配消息或访客用户消息中的至少一个。在一些示例中,第一消息可以进一步包括新用户简档(在某些情况下可以是访客用户简档)或初始用户简档。
接口可以将第一消息提供给第二操作系统(506)。例如,API 29可将第一消息提供给第二OS 31。在一些示例中,API 29可以将第一消息提供给第二OS 31的HAL 28。
接口可以从第二操作系统接收第二消息,该第二消息与同步在第一操作系统和第二操作系统之间的用户管理有关(508)。例如,API 29可以从第二OS 31接收第二消息。在一些示例中,API 29可以从第二OS 31的HAL 28接收第二消息。在一些示例中,第二消息指示以下至少一项:是否在某时允许用户的改变;内部用户简档由第二操作系统存储在车辆用户管理系统中,该内部用户简档基于第一消息内的新用户简档;是否从车辆用户管理系统中删除用户;或当前用户是否为访客用户。
在一些示例中,接口可以从第二操作系统接收第三消息。例如,API 29可以从OS31(例如,从HAL 28)接收第三消息,该第三消息可以指示没有用户被存储在车辆管理系统中(例如,在用户管理35中)。
图14A-C是根据本公开的技术的提供用户管理服务的进一步示例的流程图。图14A-C的任何或者全部示例可以与图13的示例一起使用。
在图14A中,第一操作系统可以基于第二消息确定是否在某时允许用户的改变(510)。例如,第一OS 30可以读取第二消息并确定允许用户的改变(例如,第二OS 31不禁止用户的改变)。基于确定在某时允许用户的改变,接口可以向第二操作系统提供第三消息,该第三消息控制车辆的一个或多个系统。例如,API 29可以将第三消息提供给第二OS 31(例如,HAL 28)。第三消息可以控制车辆的多个系统中的一个,诸如人体工程学系统、娱乐系统、信息娱乐系统、气候系统、安全系统或驾驶模式系统。
在图14B中,第一操作系统可以基于第二消息来确定当前用户是否是访客用户。例如,第一OS 30可以读取第二消息并确定当前用户是访客用户。基于确定当前用户是访客用户,接口可以向第二操作系统提供第三消息,该第三消息控制第二操作系统对访客用户简档的创建。例如,API 29可以将第三消息提供给第二OS 31(例如,HAL 28)。第三消息可以控制与当前用户相关联的访客用户简档的创建。例如,该访客用户简档可以存储在用户管理35中。
在图14C中,第一操作系统可以将用户与认证形式相关联(518)。例如,第一OS 30可以将密钥卡、指纹、面部(通过面部扫描或图像)或语音(通过声纹)中的一个或多个与用户相关联。第一操作系统可以基于认证的形式确定当前用户不同于最后活跃用户(520)。例如,第一OS 30可以查找当前用户的认证因素(其可以存储在用户管理35中或在可以作为车辆系统26A-26N之一的车辆认证系统中),并确定当前用户不是最后活跃用户。在这种情况下,第一OS 30可以尝试将用户改变为当前用户,创建新用户,创建访客用户等。
图15是图示第一OS 30和第二OS 31的示例组件的框图。第一OS 30可以包括设置活动114,诸如可以与用户(其可以与车辆制造商相关联)和CarUserManager应用程序102(CARUSERMGR)(其可以是与车辆制造商相关联的软件开发套件)相关联的设置。第一OS 30还可以包括CarUserService 104、UserHalService 106、IActivityManager110和IUserManager 112。第二OS 31可以包括VehicleHAL 108和OEM特定组件122,其可以被第二OS 31用于用户管理。VehicleHAL 108可以包括HAL属性120,下面将进一步讨论。
在一些示例中,当第一OS 30开始请求HAL 28传达应该使用哪种类型的用户(例如,初始用户、访客用户、常规用户等)时,第一OS 30可以通过API 29将消息发送到HAL 28。该消息可以在不同的开始类型上发送,例如第一次启动(例如,汽车第一次开始)、冷启动(例如,第一次启动后的正常启动)或悬挂到RAM(例如,从睡眠中唤醒)。HAL 28可以通过要由第一OS 30使用的用户类型来响应API29。在一些示例中,在第一次启动、冷启动或从RAM悬挂期间,第一OS 30可以呼叫HAL 28。HAL 28可以响应切换到现有用户,创建用户或两者的混合。
在一些示例中,可以启用回调事件。例如,当用户被解锁或切换时,第一OS 30可以向可以在第一OS 30上运行的应用程序(其可以由车辆制造商提供)发送通知。
当第一OS 30启动时,第一OS 30可以使用CarServiceHelperService确定切换到哪个用户。例如,在第一次启动时,OS 30可以创建初始用户(例如,用户10)。在其他启动或悬挂到RAM时,OS 30可以将用户切换到最后活跃用户。在其他示例中,OS 30可以将用户切换到与解锁汽车的FOB相关联的用户或与另一认证因素相关联的用户。
虽然本文讨论的示例集中于发起各种工作流的UI 100,但是在一些示例中,HAL28可以发起工作流。例如,当车辆面部识别系统(例如,车辆系统26之一)检测到与最后用户不同的用户时,HAL 28可以向API 29发送消息以发起用户切换。
在一些示例中,OS 30可以以其他方式与HAL 28交互。在一个示例中,用户切换、创建和移除可以抽象成以下接口:
package android.os.user;
/**@hide*/
public interface UserCreator{
UserInfo createUser(String name,String userType,int flags);
boolean removeUser(int userId);
}
/**@hide*/
public interface UserSwitcher{
boolean switchUser(int targetUserId);
}
UserManagerService和ActivityManagerService可以选择使用这些接口:
public class ActivityManagerService...{
private UserSwitcher mUserSwitcher=null;
@Override
public boolean switchUser(final int targetUserId){
Boolean ok=true;
if(mUserSwitcher!=null){
Ok=mUserSwitcher.CanI swith switchToUser(targetUserId);
return switchUserDirectly(targetUserId);
}
}
private boolean switchUserDirectly(int targetUserId){
return mUserController.switchUser(targetUserId);
}
}
可以将技术添加到底层内部服务以将本公开的技术与来自第一OS30的现有用户管理API集成在一起。例如,可以将CarServiceHelperServer改变如下:
public class CarServiceHelperService implements UserSwitcher,UserCreator{
@Override
public boolean switchToUser(int targetUserId){
Listener halListener=…
CountdownLatch latch=new CountDownLatch(1);
userHal.switchUser(targetUserId,()->{latch.countDown()});
latch.await();//let's not worry about timeout/error handling fornow...
return mAmInternal.switchUser(targetUserId);
}
}
在一些示例中,UserManager可以提供可以被呼叫以检查是否可以切换用户的API。
在一些示例中,HAL 28消息包括关于当前用户状态的信息(例如,当前用户标识、所有用户的列表等)。在一些示例中,HAL 28可以利用关于当前用户状态的信息来使HAL 28的用户状态与第一OS 30的用户状态保持同步。在一些示例中,第一OS 30回调也可以包括关于当前用户的信息。
在一些示例中,CarUserService 104可以保证在任何时间仅存在一个操作在运行。例如,如果在完成先前的请求之前尝试切换用户请求,则CarUserService 104可以使新的切换用户请求失败。
在一些示例中,对API 29消息的HAL 28响应可以是同步的。在这样的情况下,本公开的技术可以更容易实现。例如,来自应用程序的呼叫者可以发出单向绑定器事务,因此UserHalService 106可以阻塞直到HAL 28响应为止。但是,如果HAL 28没有响应,则可能导致许多线程阻塞。
在其他示例中,对API 29的HAL 28响应可以是异步的。在这样的示例中,状态机可用于将请求映射到响应并且UserHalService可能更轻量。
VehicleHAL 108的示例实施方式如下:
Figure BDA0002613361690000311
Figure BDA0002613361690000321
Figure BDA0002613361690000331
Figure BDA0002613361690000341
Figure BDA0002613361690000351
Figure BDA0002613361690000361
Figure BDA0002613361690000371
Figure BDA0002613361690000381
Figure BDA0002613361690000391
Figure BDA0002613361690000401
Figure BDA0002613361690000411
Figure BDA0002613361690000421
Figure BDA0002613361690000431
Figure BDA0002613361690000441
Figure BDA0002613361690000451
Figure BDA0002613361690000461
Figure BDA0002613361690000471
Figure BDA0002613361690000481
Figure BDA0002613361690000491
Figure BDA0002613361690000501
Figure BDA0002613361690000511
Figure BDA0002613361690000521
Figure BDA0002613361690000531
Figure BDA0002613361690000541
Figure BDA0002613361690000551
Figure BDA0002613361690000561
Figure BDA0002613361690000571
Figure BDA0002613361690000581
Figure BDA0002613361690000591
Figure BDA0002613361690000601
Figure BDA0002613361690000611
Figure BDA0002613361690000621
Figure BDA0002613361690000631
Figure BDA0002613361690000641
CarUserManager 102的示例实施方式如下:
Figure BDA0002613361690000642
Figure BDA0002613361690000651
Figure BDA0002613361690000661
在一些示例中,由框架配置属性定义的某些与用户相关的设置可以在HAL 28内。在这种情况下,具有使属性值可立即用于HAL 28(在解析叠加资源之前)以及能够动态地改变值的HAL 28(例如,基于系统存储器16中的当前存储容量定义最大用户数)的优点。
在这些情况下,可以将初始设置传递给UserController。在一些示例中,初始设置被传递到ActivityManagerService.retrieveSettings()上的UserController,其在实例化CarServiceHelperService之前从ActivityManagerService.systemReady()进行呼叫。实现将初始设置传递给UserController的一种示例技术将导致由ActivityManagerService.systemReady()使用的goingCallback返回设置。示例实施方式如下:
Figure BDA0002613361690000662
Figure BDA0002613361690000671
然后,CarServiceHelperService可以通过从VehicleHAL 108读取值来实现该接口。
另一示例技术是用于ActivityManagerService设置初始值,然后在CarServiceHelper通过在ActivityManagerInternal上呼叫新方法来启动时允许CarServiceHelper覆盖初始值:
Figure BDA0002613361690000672
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或者其他光盘存储装置、磁盘存储装置或者其他磁性存储装置、闪速存储器或者可以用于以指令或者数据结构的形式存储期望的程序代码并且可以通过计算机访问的任何其他存储介质。而且,任何连接都适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光缆、双绞线、数字用户线(DSL)或者无线技术(诸如,红外、无线电和微波)从网站、服务器或者其他远程源进行传输,那么同轴电缆、光缆、双绞线、DSL或者无线技术(诸如,红外、无线电和微波)被包括在介质的定义中。然而,应该理解的是,计算机可读存储介质和介质以及数据存储介质不包括连接、载波、信号或者其他瞬态介质,而是涉及非瞬态、有形的存储介质。如本文所使用的磁盘和光盘包括:压缩盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光光学地复制数据。上述的组合也应该被包括在计算机可读介质的范围内。
指令可以通过一个或多个处理器(诸如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或者其他等效的集成或分立逻辑电路)执行。因此,本文所使用的术语“处理器”可以指任何前述的结构或者适合于实施本文描述的技术的任何其他结构。另外,在一些方面,可以将本文描述的功能提供在专用的硬件模块和/或软件模块内。而且,可以在一个或多个电路或者逻辑元件中完全实施技术。
本公开的技术可以在各种装置或者设备,包括无线手持机、集成电路(IC)或者一组IC(例如,芯片集)中实施。在本公开中,将各种组件、模块或者单元描述为用于强化被配置为执行所公开的技术的装置的功能方面,但并不一定需要通过不同的硬件单元实现。相反,如上所述,各种单元可以结合适当的软件和/或固件被组合在硬件单元中,或者由包括上述的一个或多个处理器的互操作硬件单元的集合来提供。
本公开包括许多示例。这些示例包括以下内容。
示例1。一种方法,包括:由车辆的一个或多个处理器执行第一操作系统以向车辆提供用户管理服务;通过由一个或多个处理器执行的第一操作系统,向第二操作系统呈现接口,第二操作系统通过接口调用用户管理操作;通过由一个或多个处理器执行的第一操作系统生成与用户管理有关的第一消息;通过接口将第一消息提供给第二操作系统;以及通过接口从第二操作系统接收第二消息,第二消息与同步第一操作系统与第二操作系统之间的用户管理有关。
示例2。根据示例1的方法,其中,第一消息包括改变用户的请求。
示例3。根据示例2的方法,进一步包括:由一个或多个处理器执行的第一操作系统确定是否基于第二消息在某时允许用户的改变;以及基于在某时允许用户的改变的确定,由接口向第二操作系统提供第三消息,第三消息控制车辆的一个或多个系统。
示例4。根据示例3的方法,其中,第三消息进一步包括车辆的一个或多个系统的操作状态的当前用户的偏好。
示例5。根据示例1的方法,其中,第一消息包括用户创建消息。
示例6。根据示例5的方法,其中,第一消息进一步包括新用户简档消息。
示例7。根据示例6的方法,其中,第二消息指示内部用户简档由第二操作系统存储在车辆用户管理系统中,内部用户简档基于新用户简档。
示例8。根据示例1的方法,其中,第一消息包括用户删除消息。
示例9。根据示例8所述的方法,其中,第二消息指示从车辆用户管理系统中删除用户。
示例10。根据示例9的方法,其中,第二消息进一步指示由一个或多个处理器执行的第二操作系统确定用户不是当前用户。
示例11。根据示例1的方法,其中,第一消息包括初始用户指配消息。
示例12。根据示例11的方法,其中,第一消息进一步包括初始用户简档。
示例13。根据示例12的方法,进一步包括,通过接口从由一个或多个处理器执行的第二操作系统接收第三消息,第三消息指示没有用户被存储在车辆用户管理系统中,其中,第二消息指示基于初始用户简档,由在一个或多个处理器上执行的第二操作系统存储内部用户简档。
示例14。根据示例1的方法,其中,第一消息包括访客用户消息。
示例15。根据示例14的方法,进一步包括:通过在一个或多个处理器上执行的第一操作系统,基于第二消息来确定当前用户是否为访客用户;以及基于当前用户为访客用户的确定,通过接口向由一个或多个处理器执行的第二操作系统提供第三消息,第三消息通过由车辆用户管理系统中的一个或者多个处理器执行的第二操作系统控制访客用户简档的创建。
示例16。根据示例1-15的任意组合的方法,进一步包括:通过由一个或多个处理器执行的第一操作系统,将用户与认证形式相关联。
示例17。根据示例16的方法,其中,认证的形式包括密钥卡、指纹、面部或语音中的一个或多个。
示例18。根据示例1-17的任意组合的方法,进一步包括:由一个或多个处理器执行的第一操作系统确定当前用户不同于最后活跃用户。
示例19。根据示例18的方法,其中,确定当前用户与最后活跃用户不同包括:确定当前密钥卡、指纹、面部或语音与最后活跃用户不相关联。
示例20。根据示例1-19的任意组合的方法,其中,车辆的一个或多个系统包括人机工程学系统、信息娱乐系统、气候系统、安全系统或驾驶模式系统。
示例21。根据示例1-20的任意组合的方法,其中,接口向由一个或多个处理器执行的第二操作系统的车辆硬件抽象层提供消息并从车辆硬件抽象层接收消息。
示例22。根据示例1-21的任意组合的方法,其中,一个或多个处理器执行第二操作系统。
示例23。一种设备,该设备被配置成与车辆交互,该设备包括:存储器,该存储器被配置成存储用户管理数据;以及一个或多个处理器,该一个或多个处理器可通信地耦合到存储器并且被配置成:执行第一操作系统,第一操作系统向第二操作系统呈现接口以调用用户管理操作;其中,第一操作系统被配置成生成与用户管理有关的第一消息,接口被配置成向第二操作系统提供消息,并且接口进一步被配置成从第二操作系统接收第二消息,第二消息与同步在第一操作系统和第二操作系统之间的用户管理有关,并且其中第一操作系统基于第一消息向车辆提供用户管理服务。
示例24。根据示例23的设备,其中,第一消息包括改变用户的请求。
示例25。根据示例24的设备,其中,第一操作系统进一步被配置成,基于第二消息确定是否在某时允许用户的改变,并且接口进一步被配置成,向第二操作系统提供第三消息,第三消息基于在某时允许用户的改变的确定控制车辆的一个或多个系统。
示例26。根据示例25的设备,其中,第三消息进一步包括车辆的一个或多个系统的操作状态的当前用户的偏好。
示例27。根据示例23的设备,其中,第一消息包括用户创建消息。
示例28。根据示例27的设备,其中,第一消息进一步包括新用户简档消息。
示例29。根据示例28的设备,其中,第二消息指示内部用户简档由第二操作系统存储在车辆用户管理系统中,内部用户简档基于新用户简档。
示例30。根据示例23的设备,其中,第一消息包括用户删除消息。
示例31。根据示例30的设备,其中,第二消息指示从车辆用户管理系统中删除用户。
示例32。根据示例31的设备,其中,第二消息进一步指示由一个或多个处理器执行的第二操作系统确定用户不是当前用户。
示例33。根据示例23的设备,其中,第一消息包括初始用户指配消息。
示例34。根据示例33的设备,其中,第一消息进一步包括初始用户简档。
示例35。根据示例34的设备,其中,接口进一步被配置成从第二操作系统接收第三消息,第三消息指示没有用户被存储在车辆用户管理系统中,其中,第二消息指示在车辆用户管理系统中存储内部用户简档。
示例36。根据示例23的设备,其中,第一消息包括访客用户消息。
示例37。根据示例36的设备,其中,第一操作系统进一步被配置成基于第二消息来确定当前用户是否是访客用户,并且接口进一步被配置成向第二操作系统提供第三消息,第三消息基于当前用户是访客用户的确定由第二操作系统控制访客用户简档的创建。
示例38。根据示例23-37的任意组合的设备,其中,第一操作系统进一步被配置成将用户与认证的形式相关联。
示例39。根据示例38的设备,其中,认证的形式包括密钥卡、指纹、面部或语音中的一个或多个。
示例40。根据示例23-39的任意组合的设备,其中,第一操作系统进一步被配置成确定当前用户不同于最后活跃用户。
示例41。根据示例40的设备,其中,第一操作系统通过确定当前密钥卡、指纹、面部或语音与最后活跃用户不相关联来确定当前用户与最后活跃用户不同。
示例42。根据示例23-41的任意组合的设备,其中,车辆的一个或多个系统包括人体工程学系统、信息娱乐系统、气候系统、安全系统或驾驶模式系统。
示例43。根据示例23-42的任意组合的设备,其中,接口被配置成向第二操作系统的车辆硬件抽象层提供消息并从车辆硬件抽象层接收消息。
示例44。根据示例23-43的任意组合的设备,其中,一个或多个处理器进一步被配置成执行第二操作系统。
示例45。一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质具有在其上存储的指令,该指令在执行时,使车辆头部单元的一个或多个处理器:执行第一操作系统以向车辆提供用户管理服务;将第一操作系统的接口呈现给第二操作系统,第二操作系统通过该接口调用用户管理操作;生成与用户管理有关的第一消息;通过接口将第一消息提供给第二操作系统;并且通过接口从第二操作系统接收第二消息,第二消息与同步第一操作系统与第二操作系统之间的用户管理有关。
示例46。根据示例45的非暂时性计算机可读存储介质,其中,第一消息包括改变用户的请求。
示例47。根据示例46的非暂时性计算机可读存储介质,其中,指令在被执行时进一步使一个或多个处理器:基于第二消息来确定是否在某时允许用户的改变;并且基于在某时允许用户的改变的确定,通过接口向第二操作系统提供第三消息,第三消息控制车辆的一个或多个系统。
示例48。根据示例47的非暂时性计算机可读存储介质,其中,第三消息进一步包括车辆的一个或多个系统的操作状态的当前用户的偏好。
示例49。根据示例45的非暂时性计算机可读存储介质,其中,第一消息包括用户创建消息。
示例50。根据示例49的非暂时性计算机可读存储介质,其中,第一消息进一步包括新用户简档消息。
示例51。根据示例50的非暂时性计算机可读存储介质,其中,第二消息指示内部用户简档由第二操作系统存储在车辆用户管理系统中,内部用户简档基于所述新用户简档。
示例52。根据示例45的非暂时性计算机可读存储介质,其中,第一消息包括用户删除消息。
示例53。根据示例52的非暂时性计算机可读存储介质,其中,第二消息指示从车辆用户管理系统中删除用户。
示例54。根据示例53的非暂时性计算机可读存储介质,其中,第二消息进一步指示由一个或多个处理器执行的第二操作系统确定用户不是当前用户。
示例55。根据示例45的非暂时性计算机可读存储介质,其中,第一消息包括初始用户指配消息。
示例56。根据示例55的非暂时性计算机可读存储介质,其中,第一消息进一步包括初始用户简档。
示例57。根据示例56的非暂时性计算机可读存储介质,其中,当指令被执行时进一步使一个或多个处理器:通过接口从第二操作系统接收第三消息,第三消息指示没有用户存储在车辆用户管理系统中,其中,第二消息指示基于初始用户简档通过第二操作系统存储内部用户简档。
示例58。根据示例45的非暂时性计算机可读存储介质,其中,第一消息包括访客用户消息。
示例59。根据示例58的非暂时性计算机可读存储介质,其中,当指令被执行时进一步使一个或多个处理器:由第一操作系统基于第二消息确定当前用户是否为访客用户;并且通过接口向第二操作系统提供第三消息,第三消息通过车辆用户管理系统中的第二操作系统控制访客用户简档的创建。
示例60。根据示例45-59的任意组合的非暂时性计算机可读存储介质,其中,当指令被执行时进一步使一个或多个处理器:通过第一操作系统将用户与认证的形式相关联。
示例61。根据示例60的非暂时性计算机可读存储介质,其中,认证的形式包括密钥卡、指纹、面部或语音中的一个或多个。
示例62。根据示例45-61的任意组合的非暂时性计算机可读存储介质,其中,当指令被执行时进一步使一个或多个处理器:通过由一个或者多个处理器执行的第一操作系统确定当前用户不同于最后活跃用户。
示例63。根据示例62的非暂时性计算机可读存储介质,其中,第一操作系统通过确定当前的密钥卡、指纹、面部或语音与最后活跃用户不相关联,确定当前用户与最后用户不同。
示例64。根据示例45-63的任意组合的非暂时性计算机可读存储介质,其中,车辆的一个或多个系统包括人体工程学系统、信息娱乐系统、气候系统、安全系统或驾驶模式系统。
示例65。根据示例45-64的任意组合的非暂时性计算机可读存储介质,其中,接口被配置成向第二操作系统的车辆硬件抽象层提供消息,并从车辆硬件抽象层接收消息。
示例66。根据示例45-65的任意组合的非暂时性计算机可读存储介质,其中,当指令被执行时进一步使一个或多个处理器执行第二操作系统。
已经对各种实施例进行了描述。这些和其他实施例在以下权利要求的范围内。

Claims (20)

1.一种方法,包括:
由车辆的一个或多个处理器执行第一操作系统以向所述车辆提供用户管理服务;
由所述第一操作系统向第二操作系统呈现接口,所述第二操作系统通过所述接口调用用户管理操作;
由所述第一操作系统生成与用户管理有关的第一消息;
由所述接口将所述第一消息提供给所述第二操作系统;以及
由所述接口从所述第二操作系统接收第二消息,所述第二消息与同步所述第一操作系统与所述第二操作系统之间的用户管理有关。
2.根据权利要求1所述的方法,其中,所述第一消息包括改变用户的请求、用户创建消息、用户删除消息、初始用户指配消息以及访客用户消息中的至少一个。
3.根据权利要求1所述的方法,其中,所述第一消息包括用户创建消息和初始用户指配消息中的至少一个,并且所述第一消息进一步包括新用户简档和初始用户简档中的至少一个。
4.根据权利要求1所述的方法,其中,所述第二消息指示以下至少一项:
是否在某时允许用户的改变;
内部用户简档,所述内部用户简档由所述第二操作系统存储在车辆用户管理系统中,所述内部用户简档基于所述第一消息内的新用户简档;
用户是否从车辆用户管理系统中被删除;以及
当前用户是否为访客用户。
5.根据权利要求4所述的方法,进一步包括:
由所述第一操作系统基于所述第二消息确定在某时是否允许用户的改变;以及
基于在所述某时允许所述用户的改变的所述确定,由所述接口向所述第二操作系统提供第三消息,所述第三消息控制所述车辆的一个或多个系统。
6.根据权利要求5所述的方法,其中,所述车辆的所述一个或多个系统包括人体工程学系统、娱乐系统、信息娱乐系统、气候系统、安全系统以及驾驶模式系统中的至少一个。
7.根据权利要求4所述的方法,进一步包括:
由所述第一操作系统基于所述第二消息确定当前用户是否为访客用户;以及
基于所述当前用户为访客用户的所述确定,由所述接口向所述第二操作系统提供第三消息,所述第三消息控制所述第二操作系统对访客用户简档的创建。
8.根据权利要求1所述的方法,进一步包括:
由所述接口从所述第二操作系统接收第三消息,所述第三消息指示没有用户被存储在车辆用户管理系统中。
9.根据权利要求1所述的方法,进一步包括:
由所述第一操作系统将用户与认证的形式相关联;以及
由所述第一操作系统基于所述认证的形式确定当前用户与最后活跃用户不同;
其中,所述认证的形式包括密钥卡、指纹、面部和语音中的一个或多个。
10.根据权利要求1所述的方法,其中,所述接口将消息提供给所述第二操作系统的车辆硬件抽象层,并且从所述车辆硬件抽象层接收消息。
11.一种被配置成与车辆交互的设备,所述设备包括:
存储器,所述存储器被配置成存储用户管理数据;以及
一个或多个处理器,所述一个或者多个处理器可通信地耦合到所述存储器并且被配置成:
执行第一操作系统,所述第一操作系统向第二操作系统呈现接口以调用用户管理操作;
其中,所述第一操作系统被配置成生成与用户管理有关的第一消息,所述接口被配置成向所述第二操作系统提供所述第一消息,并且所述接口进一步被配置成从所述第二操作系统接收第二消息,所述第二消息与同步在所述第一操作系统和所述第二操作系统之间的用户管理有关,以及
其中,所述第一操作系统基于所述第一消息向所述车辆提供用户管理服务。
12.根据权利要求11所述的设备,其中,所述第一消息包括改变用户的请求、用户创建消息、用户删除消息、初始用户指配消息以及访客用户消息中的至少一个。
13.根据权利要求12所述的设备,其中,所述第一消息包括用户创建消息和初始用户指配消息中的至少一个,并且所述第一消息进一步包括新用户简档和初始用户简档中的至少一个。
14.根据权利要求11所述的设备,其中,所述第二消息指示以下至少一项:
是否在某时允许用户的改变;
内部用户简档,所述内部用户简档由所述第二操作系统存储在车辆用户管理系统中,所述内部用户简档基于所述第一消息内的新用户简档;
用户是否从车辆用户管理系统中被删除;以及
当前用户是否为访客用户。
15.根据权利要求14所述的设备,其中,所述第一操作系统进一步被配置成,基于所述第二消息确定是否在某时允许用户的改变,并且其中所述接口进一步被配置成,向所述第二操作系统提供第三消息,所述第三消息基于在所述某时允许所述用户的改变的所述确定控制所述车辆的一个或多个系统。
16.根据权利要求15所述的设备,其中,所述车辆的所述一个或多个系统包括人体工程学系统、娱乐系统、信息娱乐系统、气候系统、安全系统以及驾驶模式系统中的至少一个。
17.根据权利要求14所述的设备,其中,所述第一操作系统进一步被配置成,基于所述第二消息确定当前用户是否为访客用户,并且所述接口进一步被配置成,向所述第二操作系统提供第三消息,所述第三消息基于所述当前用户为访客用户的所述确定通过所述第二操作系统控制对访客用户简档的创建。
18.根据权利要求11所述的设备,其中,所述接口进一步被配置成,从所述第二操作系统接收第三消息,所述第三消息指示没有用户被存储在车辆用户管理系统中。
19.根据权利要求11所述的设备,其中,所述第一操作系统进一步被配置成:
将用户与认证的形式相关联;
基于所述认证的形式确定当前用户与最后活跃用户不同;
其中,所述认证的形式包括密钥卡、指纹、面部和语音中的一个或多个。
20.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质具有存储在其上的指令,所述指令在执行时使车辆头部单元的一个或多个处理器:
执行第一操作系统以向所述车辆提供用户管理服务;
将所述第一操作系统的接口呈现给第二操作系统,所述第二操作系统通过所述接口调用用户管理操作;
生成与用户管理有关的第一消息;
通过所述接口将所述第一消息提供给所述第二操作系统;以及
通过所述接口从所述第二操作系统接收第二消息,所述第二消息与同步在所述第一操作系统和所述第二操作系统之间的用户管理有关。
CN202010762116.4A 2020-03-17 2020-07-31 车辆制造商用户管理系统与汽车操作系统的集成 Active CN111880951B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202062990910P 2020-03-17 2020-03-17
US62/990,910 2020-03-17

Publications (2)

Publication Number Publication Date
CN111880951A true CN111880951A (zh) 2020-11-03
CN111880951B CN111880951B (zh) 2024-01-23

Family

ID=71119917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010762116.4A Active CN111880951B (zh) 2020-03-17 2020-07-31 车辆制造商用户管理系统与汽车操作系统的集成

Country Status (5)

Country Link
US (1) US11403155B2 (zh)
EP (1) EP3882765A1 (zh)
JP (1) JP7051939B2 (zh)
KR (1) KR102371527B1 (zh)
CN (1) CN111880951B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794164A (en) * 1995-11-29 1998-08-11 Microsoft Corporation Vehicle computer system
CN102902513A (zh) * 2012-09-03 2013-01-30 哈尔滨工程大学 一种提高嵌入式操作系统并行处理实时性的软硬件混合式结构
US20140032601A1 (en) * 2011-04-11 2014-01-30 Ineda Systems Pvt. Ltd. File system sharing
CN104321220A (zh) * 2013-04-15 2015-01-28 弗莱克斯电子有限责任公司 作为模板存储的用户简档的访问和便携性
CN104379414A (zh) * 2013-04-15 2015-02-25 弗莱克斯电子有限责任公司 用户接口和基于用户简档的虚拟个性呈现
US20170080949A1 (en) * 2015-09-21 2017-03-23 Honda Motor Co., Ltd. System and method for applying vehicle settings in a vehicle
US20180137692A1 (en) * 2016-11-15 2018-05-17 Inrix Inc. Program and vehicle interaction
US20190116348A1 (en) * 2016-03-28 2019-04-18 Alibaba Group Holding Limited Method and system for playing media data
CN109656586A (zh) * 2017-10-11 2019-04-19 福特全球技术公司 具有自动化软件更新系统的混合动力电动车辆
CN109774630A (zh) * 2017-11-14 2019-05-21 福特全球技术公司 自动化车辆配置
US20190265884A1 (en) * 2011-04-22 2019-08-29 Emerging Automotive, Llc Methods and Systems for Vehicle Display Data Integration with Mobile Device Data
CN110570266A (zh) * 2018-06-05 2019-12-13 丰田自动车工程及制造北美公司 用于车辆共享的系统和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008019843A (ja) 2006-07-14 2008-01-31 Yamaha Motor Co Ltd エンジンセッティングシステムおよびそれに用いられるサーバ装置
JP5081779B2 (ja) 2008-09-30 2012-11-28 株式会社ケーヒン エンジンセッティングシステム及びエンジンセッティング方法
JP5549854B2 (ja) * 2009-04-14 2014-07-16 ソニー株式会社 情報処理装置および方法、並びにプログラム
US20140309930A1 (en) * 2013-04-15 2014-10-16 Flextronics Ap, Llc Automatic camera image retrieval based on route traffic and conditions
US8918231B2 (en) 2012-05-02 2014-12-23 Toyota Motor Engineering & Manufacturing North America, Inc. Dynamic geometry support for vehicle components
WO2014035434A1 (en) 2012-08-31 2014-03-06 Tweddle Group Systems, methods and articles for providing communications and services involving automobile head units
US10068377B2 (en) * 2016-03-24 2018-09-04 Toyota Jidosha Kabushiki Kaisha Three dimensional graphical overlays for a three dimensional heads-up display unit of a vehicle
EP3361711A1 (en) 2017-02-08 2018-08-15 OpenSynergy GmbH Method for synchronizing a service between a service provider and a service consumer and system
US10150478B2 (en) * 2017-04-27 2018-12-11 Honda Motor Co., Ltd. System and method for providing a notification of an automated restart of vehicle movement
JP7177605B2 (ja) 2018-05-25 2022-11-24 カワサキモータース株式会社 乗物設定変更システム、変更装置、変更指示プログラム、及び乗物設定変更方法
US11042341B2 (en) * 2019-01-04 2021-06-22 Byton North America Corporation Integrated functionality of center display, driver display, and shared-experience display
US11057673B2 (en) * 2019-01-22 2021-07-06 International Business Machines Corporation Personalized content aggregation and delivery

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794164A (en) * 1995-11-29 1998-08-11 Microsoft Corporation Vehicle computer system
US20140032601A1 (en) * 2011-04-11 2014-01-30 Ineda Systems Pvt. Ltd. File system sharing
US20190265884A1 (en) * 2011-04-22 2019-08-29 Emerging Automotive, Llc Methods and Systems for Vehicle Display Data Integration with Mobile Device Data
CN102902513A (zh) * 2012-09-03 2013-01-30 哈尔滨工程大学 一种提高嵌入式操作系统并行处理实时性的软硬件混合式结构
CN104321220A (zh) * 2013-04-15 2015-01-28 弗莱克斯电子有限责任公司 作为模板存储的用户简档的访问和便携性
CN104379414A (zh) * 2013-04-15 2015-02-25 弗莱克斯电子有限责任公司 用户接口和基于用户简档的虚拟个性呈现
US20170080949A1 (en) * 2015-09-21 2017-03-23 Honda Motor Co., Ltd. System and method for applying vehicle settings in a vehicle
US20190116348A1 (en) * 2016-03-28 2019-04-18 Alibaba Group Holding Limited Method and system for playing media data
US20180137692A1 (en) * 2016-11-15 2018-05-17 Inrix Inc. Program and vehicle interaction
CN109656586A (zh) * 2017-10-11 2019-04-19 福特全球技术公司 具有自动化软件更新系统的混合动力电动车辆
CN109774630A (zh) * 2017-11-14 2019-05-21 福特全球技术公司 自动化车辆配置
CN110570266A (zh) * 2018-06-05 2019-12-13 丰田自动车工程及制造北美公司 用于车辆共享的系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HE TANG: "Manufacturing System and Process Development for Vehicle Assembly", 《SAE INTERNATIONAL》 *
国际电联无线电通信部门: "用于智能交通系统应用的车辆对车辆和车辆对基础设施双向通信的无线电接口标准", 《ITU-R M.2084-1建议书》 *

Also Published As

Publication number Publication date
EP3882765A1 (en) 2021-09-22
JP7051939B2 (ja) 2022-04-11
KR20210116162A (ko) 2021-09-27
JP2021147027A (ja) 2021-09-27
CN111880951B (zh) 2024-01-23
US11403155B2 (en) 2022-08-02
KR102371527B1 (ko) 2022-03-07
US20210294677A1 (en) 2021-09-23

Similar Documents

Publication Publication Date Title
US11042341B2 (en) Integrated functionality of center display, driver display, and shared-experience display
US9224289B2 (en) System and method of determining occupant location using connected devices
US6434459B2 (en) Automobile information system
CN111542807B (zh) 用于车辆系统总线的可扩展映射
JP7223895B2 (ja) 車両のための拡張可能なコンピューティングアーキテクチャ
WO2020140903A1 (en) Unique id for correlating services across regions
US20180354433A1 (en) In-Vehicle Infotainment Control Systems and Methods
CN111813009A (zh) 用于自适应移动装置车辆控件应用的方法和设备
CN111880951B (zh) 车辆制造商用户管理系统与汽车操作系统的集成
EP4369186A1 (en) Control method and apparatus, device, and storage medium
WO2022188809A1 (zh) 车辆访问权限控制方法、车机设备及车辆
US20210014316A1 (en) Virtual connected vehicle infrastructure
US20240069928A1 (en) Network management for vehicle operating systems
CN113791840A (zh) 一种管理系统、管理方法、装置、设备及存储介质
KR20170019013A (ko) 초소형 빔 프로젝터를 제어하는 차량용 정보 터미널 및 이를 이용한 차량용 통합 정보 및 멀티미디어 콘텐츠 제공 시스템
US20240054060A1 (en) Real-time cpu availabilty monitoring
CN116028000B (zh) 跨多操作系统的显示特性处理方法、单元及交通设备
US11840250B2 (en) Methods and systems for informing drivers of vehicle operating functions
JP7314775B2 (ja) 車両用制御装置、車両用システム、及び車両用制御方法
WO2024035566A1 (en) Real-time cpu availability monitoring
CN116142115A (zh) 车内控制方法、系统及装置
WO2024039994A1 (en) Multi-user experience restrictions for vehicle operating systems
CN117075834A (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