CN115285044B - 资源共享方法、车载系统和车载控制器 - Google Patents
资源共享方法、车载系统和车载控制器 Download PDFInfo
- Publication number
- CN115285044B CN115285044B CN202210931279.XA CN202210931279A CN115285044B CN 115285044 B CN115285044 B CN 115285044B CN 202210931279 A CN202210931279 A CN 202210931279A CN 115285044 B CN115285044 B CN 115285044B
- Authority
- CN
- China
- Prior art keywords
- control information
- main system
- subsystem
- information
- vehicle
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000005070 sampling Methods 0.000 claims description 74
- 239000000872 buffer Substances 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 239000010410 layer Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 239000012792 core layer Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric 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/02—Electric 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/023—Electric 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/0231—Circuits relating to the driving or the functioning of the vehicle
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供一种资源共享方法、车载系统和车载控制器。该方法包括:车载系统中包括一个主系统和至少一个子系统。主系统可以获取各个子系统发送的用于控制与主系统连接的硬件设备的子系统控制信息。主系统可以根据至少一个子系统控制信息,更新主系统控制信息中。该主系统控制信息用于控制该主系统连接的硬件设备。主系统可以通过将该主系统控制信息通过i2c总线写入与该主系统连接的硬件设备中,实现该硬件设备的控制。主系统还可以从硬件设备中读取数据信息,并将数据信息发送到子系统中。本申请的方法,提高该主系统中硬件设备资源的使用效率和利用率。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种资源共享方法、车载系统和车载控制器。
背景技术
目前,市面上的智能座舱中的显示屏主要分为车载中控大屏、仪表以及娱乐屏三类。为了提高车辆配置,车辆的智能座舱中还可能在后排设置娱乐双屏。
现有技术中,智能座舱中的每一显示屏可以对应于一个操作系统。不同操作系统可以用于实现不同的功能应用,以满足用户需求。当车辆中操作系统需要从车辆的一硬件设备,例如硬件传感器(sensor)中获取数据信息时,该操作系统可以通过向该硬件设备发送使能信号和/或采样信号等控制信号,实现该硬件设备的开启、关闭、采样等操作。
然而,当车辆中的多个操作系统均需要从一硬件设备中获取数据信息时,多个操作系统通常需要排队,并逐一实现对该硬件设备的控制和采样,存在数据获取效率低的问题。
发明内容
本申请提供一种资源共享方法、车载系统和车载控制器,用以解决现有技术中逐一实现对该硬件设备的控制和采样,存在的数据获取效率低的问题。
第一方面,本申请提供一种资源共享方法,车载系统中包括一个主系统和至少一个运行于虚拟机的子系统,所述方法运行于车载系统的主系统,所述方法,包括:
获取至少一所述子系统发送的子系统控制信息;
根据至少一所述子系统发送的所述子系统控制信息,更新所述主系统中所述硬件设备对应的主系统控制信息;
使用所述主系统控制信息控制所述硬件设备,并从所述硬件设备中读取数据信息后将所述数据信息发送到所述子系统中。
可选地,所述根据至少一所述子系统发送的所述子系统控制信息,更新所述主系统中所述硬件设备对应的主系统控制信息,具体包括以下至少一种:
当所述主系统控制信息中包括非使能状态,且至少一所述子系统控制信息中包括使能状态时,将所述主系统控制信息中的所述非使能状态修改为所述使能状态;
当所述子系统控制信息中包括的第一采样频率大于所述主系统控制信息中的包括的第二采样频率时,将所述主系统控制信息中的所述第二采样频率修改为所述第一采样频率;
当所述主系统控制信息中包括使能状态,且所述车载系统的全部子系统均发送包括非使能状态的子系统控制信息时,将所述主系统控制信息中的所述使能状态修改为所述非使能状态。
可选地,所述使用所述主系统控制信息控制所述硬件设备,具体包括:
将所述主系统控制信息写入所述主系统中所述硬件设备对应的硬件驱动中;
将所述硬件驱动中的所述主系统控制信息,通过数据总线写入所述硬件设备的硬件设备寄存器中,以使所述硬件设备可以根据所述主系统控制信息执行对应操作。
可选地,所述将所述数据信息反馈到所述子系统中,具体包括:
读取所述硬件设备的数据信息;
将所述数据信息发送到所述子系统控制信息对应的所述子系统中。
第二方面,本申请提供一种资源共享方法,车载系统中包括一个主系统和至少一个运行于虚拟机的子系统,所述方法运行于车载系统的一个子系统,所述方法,包括:
获取子系统控制信息,并将所述子系统控制信息发送到主系统,以使所述主系统在获取所述子系统控制信息后根据所述子系统控制信息更新所述主系统控制信息,并根据所述主系统控制信息控制所述硬件设备;
接收所述主系统发送的从所述硬件设备中获取的所述数据信息。
可选地,获取子系统控制信息,具体包括:
获取硬件设备的子系统控制信息,将所述子系统控制信息写入virtio协议的环形缓冲区;
从所述virtio协议的环形缓冲区中读取所述子系统控制信息,并将所述子系统控制信息写入所述子系统的驱动程序中;
其中,所述子系统控制信息的格式根据所述主系统控制信息的格式确定。
可选地,所述方法,还包括:
从所述主系统中获取所述数据信息,并将所述数据信息写入virtio协议的环形缓冲区;
从所述virtio协议的环形缓冲区中读取所述数据信息,并根据应用程序数据格式,将所述数据信息转换为所述应用程序数据格式对应的事件信息;
将所述事件信息发送到所述子系统的所述应用程序中,以使所述应用程序使用所述事件信息完成对应操作。
第三方面,本申请提供一种资源共享装置,车载系统中包括一个主系统和至少一个运行于虚拟机的子系统,所述装置运行于车载系统的主系统,所述装置,用于:
获取模块,用于获取至少一所述子系统发送的子系统控制信息;
处理模块,用于根据至少一所述子系统发送的所述子系统控制信息,更新所述主系统中所述硬件设备对应的主系统控制信息;使用所述主系统控制信息控制所述硬件设备,并从所述硬件设备中读取数据信息后将所述数据信息发送到所述子系统中。
可选地,所述处理模块,具体用于以下至少一种:
当所述主系统控制信息中包括非使能状态,且至少一所述子系统控制信息中包括使能状态时,将所述主系统控制信息中的所述非使能状态修改为所述使能状态;
当所述子系统控制信息中包括的第一采样频率大于所述主系统控制信息中的包括的第二采样频率时,将所述主系统控制信息中的所述第二采样频率修改为所述第一采样频率;
当所述主系统控制信息中包括使能状态,且所述车载系统的全部子系统均发送包括非使能状态的子系统控制信息时,将所述主系统控制信息中的所述使能状态修改为所述非使能状态。
可选地,所述处理模块,具体用于:
将所述主系统控制信息写入所述主系统中所述硬件设备对应的硬件驱动中;
将所述硬件驱动中的所述主系统控制信息,通过数据总线写入所述硬件设备的硬件设备寄存器中,以使所述硬件设备可以根据所述主系统控制信息执行对应操作。
可选地,所述处理模块,具体用于:
读取所述硬件设备的数据信息;
将所述数据信息发送到所述子系统控制信息对应的所述子系统中。
第四方面,本申请提供一种资源共享装置,车载系统中包括一个主系统和至少一个运行于虚拟机的子系统,所述装置运行于车载系统的一个子系统,所述装置,用于:
获取模块,用于获取子系统控制信息,并将所述子系统控制信息发送到主系统,以使所述主系统在获取所述子系统控制信息后根据所述子系统控制信息更新所述主系统控制信息,并根据所述主系统控制信息控制所述硬件设备;
接收模块,用于接收所述主系统发送的从所述硬件设备中获取的所述数据信息。
可选地,所述获取模块,具体用于:
获取硬件设备的子系统控制信息,将所述子系统控制信息写入virtio协议的环形缓冲区;
从所述virtio协议的环形缓冲区中读取所述子系统控制信息,并将所述子系统控制信息写入所述子系统的驱动程序中;
其中,所述子系统控制信息的格式根据所述主系统控制信息的格式确定。
可选地,所述接收模块,还用于:
从所述主系统中获取所述数据信息,并将所述数据信息写入virtio协议的环形缓冲区;
从所述virtio协议的环形缓冲区中读取所述数据信息,并根据应用程序数据格式,将所述数据信息转换为所述应用程序数据格式对应的事件信息;
将所述事件信息发送到所述子系统的所述应用程序中,以使所述应用程序使用所述事件信息完成对应操作。
第五方面,本申请提供一种车载控制器,包括:存储器和处理器;所述存储器用于存储计算机程序;所述处理器用于根据所述存储器存储的计算机程序执行第一方面及第一方面任一种可能的设计中应用于主系统的资源共享方法,和,第二方面及第二方面任一种可能的设计中应用于子系统的资源共享方法。
第六方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当车载控制器的至少一个处理器执行该计算机程序时,车载控制器执行第一方面及第一方面任一种可能的设计中应用于主系统的资源共享方法,和,第二方面及第二方面任一种可能的设计中应用于子系统的资源共享方法。
第七方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序,当车载控制器的至少一个处理器执行该计算机程序时,车载控制器执行第一方面及第一方面任一种可能的设计中应用于主系统的资源共享方法,和,第二方面及第二方面任一种可能的设计中应用于子系统的资源共享方法。
本申请提供的资源共享方法、车载系统和车载控制器,通过车载系统中包括一个主系统和至少一个子系统;获取各个子系统发送的用于控制与主系统连接的硬件设备的子系统控制信息;根据至少一个子系统控制信息,更新主系统控制信息中,该主系统控制信息用于控制该主系统连接的硬件设备;通过将该主系统控制信息通过i2c总线写入与该主系统连接的硬件设备中,实现该硬件设备的控制;从硬件设备中读取数据信息,并将数据信息发送到子系统中的手段,实现提高该主系统中硬件设备资源的使用效率和利用率效果。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种车载控制器中的系统结构示意图;
图2为本申请一实施例提供的一种资源共享方法的信令交互图;
图3为本申请一实施例提供的一种资源共享方法的流程示意图;
图4为本申请一实施例提供的一种数据流向示意图;
图5为本申请一实施例提供的一种资源共享装置的结构示意图;
图6为本申请一实施例提供的一种资源共享装置的结构示意图;
图7为本申请一实施例提供的车载控制器的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。
应当进一步理解,术语“包含”、“包括”表明存在的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。
此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
目前,市面上的智能座舱中的显示屏主要分为车载中控大屏、仪表以及娱乐屏三类。为了提高车辆配置,车辆的智能座舱中还可能在后排设置娱乐双屏。现有技术中,但是这些功能性显示屏的操作系统都是分别运行在不同的系统级芯片(System on Chip,soc)上。在现有智能座舱中,绝大多数使用的soc都是arm机构。目前,arm机构普遍存在性能瓶颈,在驱动多个大屏,或者跑大型3D动画、大型3D游戏时体验很差。在该情况下,显示屏的使用性能将直接与其芯片挂钩。该soc的使用,虽然可以提高每一显示屏的使用效率,但是势必会导致硬件成本的增加。并且,在车辆使用过程中,该多个显示屏并不是每次都会被用到。即,空闲的显示屏及其芯片存在资源浪费。并且,该多芯片的使用不符合智能座舱更简洁,更高效,更智能的发展方向。因此,本申请针对将各个显示屏之间进行融合,实现资源硬件资源共享进行了研究。
本申请的车载系统中可以运行有一个主机系统(host OS),该主机系统即为下述的主系统。同时,该主机系统中还可以运行有至少一个虚拟机。每一虚拟机中可以运行有一个客机系统(Guest OS),即安装在虚拟机上的操作系统,该客机系统即为下述的子系统。每一子系统可以对应于该车辆中的一个域,例如,仪表域、车机娱乐域等。每一个域中可以包括至少一个显示屏。例如,当仪表域包括3个仪表显示屏时,该车载系统中仪表域对应的一个子系统可以用于控制该三个仪表显示屏。又如,当车机娱乐域包括1个车机显示屏时,该车载系统中车机娱乐对应的的另一个子系统可以用于控制该车机显示屏。在该车载系统中,主系统可以运行一个操作系统,每一子系统可以在主系统的虚机机上运行子系统对应的操作系统。不同子系统可以根据其对应的域确定其性能需求,从而选择不同的操作系统,实现该子系统的运行。
该车辆中可以包括多种硬件设备。当车辆中包括多个子系统时,该多个子系统可能需要从车辆的这些硬件设备中获取数据信息。例如,该硬件设备可以为速度传感器、温度传感器等硬件传感器(sensor)。现有技术中,可以通过排队、死锁等方式,实现这些子系统对该硬件设备的顺序控制。其中,子系统对该硬件设备的控制可以包括向该硬件设备发送使能信号、采样信号等控制信号。这些控制信号用于实现该硬件设备的开启、关闭、采样等操作。然而,数据的采集通常存在一定的重复性。例如,第一子系统和第二子系统均需要从sensor中获取数据信息。如果sensor第一子系统完成数据采样后再由第二系统进行数据采样,则第二子系统容易存在等待时间过长的问题。如果sensor可以在向第一子系统发送数据信息的同时向第二子系统发送数据信息,则可以有效提高各个子系统的数据获取效率。
针对上述情况,本申请提出了一种资源共享方法。本申请是基于KVM hypervisor实现的多系统虚拟化功能。本申请中车载中控大屏、仪表以及娱乐屏等显示屏对应的操作系统可以为运行于虚拟机中的子系统。这些虚拟机可以运行在主系统中。该主系统可以为一个运行有ubuntu系统的主机。这些虚拟机可以共享主机硬件设备资源。在车机中,主机soc可以与多个硬件设备连接。例如,硬件传感器可以通过i2c总线接入到Host主机端的soc上。该soc上可以运行主系统的ubuntu操作系统。该主系统的ubuntu操作系统上还可以运行多个QEMU虚拟机。每一个QEMU虚拟机中可以运行有一个子系统。这些子系统中可以运行有不同的操作系统。例如,当包括三个QEMU虚拟机时,该三个虚拟机中的三个子系统可以分别运行有三个操作系统。例如,该三个操作系统可以分别为Android系统、ubuntu系统和车载平台系统(Automotive Grade Linux,AGL)。车载系统中的子系统可以通过virtio协议访问主系统,从而实现对该主系统中的硬件设备的控制。
当车载系统的多个子系统均需要访问该主系统中的一个硬件设备时,为了提高该硬件设备资源的合理利用,本申请可以在主系统中增加一个SensorServer服务。该SensorServer服务作为socket服务器,可以用于在获取各个子系统对硬件设备的访问请求后,统一访问该硬件设备。该SensorServer服务可以将从硬件设备中获取的数据信息保存到文件中。各个子系统还可以通过连接socket,从SensorServer服务中获取数据信息,实现该硬件设备的资源的多子系统共享。而且,该方法通过在主系统中设置虚拟机,实现了不同域的显示屏对应不同操作系统的需求,避免了每一个域设置一个soc的硬件需求,降低了车辆的硬件成本。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1示出了本申请一实施例提供的一种车载控制器中的系统结构示意图。如图1所示,该系统结构可以包括客机系统(guest OS)、用户空间、主机内核(host kernel)和硬件设备(Hardware,hw)。其中,在车载控制器中安装的操作系统,即为该车载控制器的车载系统的主系统。该主系统可以包括图1中主机内核和用户空间两个部分。
主机内核可以包括该主系统的内核代码和内核硬件。其中,内核硬件为该主机的soc芯片,内核代码为运行于该soc芯片中的操作系统的代码。该主机内核可以通过i2c总线与硬件设备连接。该主机内核可以与该车辆中的多个硬件设备通信连接。该主机内核中,每一个硬件设备可以对应安装有一个驱动程序。例如,当该硬件设备为一个硬件传感器时,该驱动程序可以为该硬件传感器的驱动程序。该主系统中的硬件传感器服务(SensorServer)可以通过设置于该主机内核中的驱动程序,将该硬件传感器对应的控制指令,通过i2c总线传输到硬件传感器中。sensor server还可以通过设置于该主机内核中的驱动程序驱动i2c总线,获取sensor的采样数据。
用户空间设置于主系统中,该用户空间为该主系统中的运算空间。用户空间中可以包括虚拟操作系统模拟器(Quick EMUlator,QEMU)模拟出的至少一个虚拟机和硬件传感器服务(Sensor Server)。
该虚拟操作系统模拟器,即为虚拟机。主系统可以根据实际需要,在用户空间中创建一个或者多个虚拟机。例如,当用户需要控制仪表域和车机域两个域时,可以对应创建两个虚拟机。当该主系统中包括多个虚拟机时,各个虚拟机之间相互独立。在该用户空间中,一个虚拟机可以被认为是一个进程。即,一个虚拟机可以被认为是一段运行于主系统中的代码。一个虚拟机中可以运行有一个操作系统。该操作系统的代码运行于该虚拟机的代码所占用的内存空间中。该运行于虚拟机的操作系统与该主系统对应的操作系统相互独立。因此,该运行于虚拟机中的操作系统可以为客机系统(guest OS)。为了便于与主系统进行区分,该客机系统在下文中被称为子系统。因此,该运行于虚拟机中的操作系统可以为子系统。即,每一虚拟机中可以运行有一个子系统。每一个虚拟机中可以包括至少一个Virtio传感器(Virtio-sensor)。该虚拟机中的每一个Virtio-sensor可以对应于一个与主机内核连接的硬件设备。该虚拟机中的每一个Virtio-sensor可以用于与guest OS中与之对应的Virtio-sensor-driver进行通信。其通信协议为Virtio协议。即,该Virtio-sensor相当于guest OS中Virtio-sensor-driver的后端。由于在该虚拟机中,该Virtio-sensor并不是一个实体的硬件设备,且该Virtio-sensor与一个实体的硬件设备关联,因此,该Virtio-sensor可以被认为是一个虚拟的硬件传感器。
该用户空间中,一个硬件设备可以对应于一个Sensor Server。该Sensor Server用于与该用户空间中的多个虚拟机进行对接。该Sensor Server中可以包括两个寄存器。如图1所示,该两个寄存器可以分别为buffer1和buffer2。其中,第一寄存器可以用于存储各个虚拟机发送到该Sensor Server的信息。第二寄存器可以用于存储从硬件设备中获取的信息。例如,buffer1中可以存储各个传感器对Senser的控制指令。Buffer2中可以存储从senser中获取的采样数据。该Sensor Server还可以对buffer1中的控制信息进行逻辑处理,从而得到最终的控制指令,并使用该最终的控制指令控制硬件设备。该Sensor Server还可以将buffer2中的采样数据发送到各个虚拟机中。
用户空间的每一虚拟机可以对应于一个客机系统(guest OS)。该科技系统即为运行于该虚拟机中的操作系统。该客机系统即为下述的子系统。每个客机系统中可以包括一个硬件抽象层(Hareware Abstract Layer,HAL)和一个客机内核(guest kernel)。
由于该客机系统运行于虚拟机中,该虚拟机并不对应于一个实体的芯片。因此,该客机内核可以包括内核代码。例如,当该客机系统为ubunt系统时,该内核代码即为ubuntu系统代码。与主机系统内核类似,该客机内核中同样可以设置有一个驱动程序。由于该客机系统运行于虚拟机中,因此,该客机系统无法直接连接到硬件设备。因此,该客机系统的客机内核中设置的驱动程序为虚拟驱动程序。该虚拟驱动程序可以为Virtio传感器驱动程序(Virtio-sensor-driver)。该Virtio-sensor-driver可以通过Virtio协议与虚拟机中的Virtio-sensor通信,实现控制指令的上传或者采样数据的获取。该客机内核中还可以设置有sysfs节点。HAL可以通过该sysfs节点,将信息写入到Virtio-sensor-driver中。或者,HAL可以通过该sysfs节点获取Virtio-sensor-driver反馈的采样数据。
该客机系统中还可以设置有应用程序。该应用程序可以以APP的形式显示于该客机系统对应的显示屏中。例如,该APP可以为一个用于显示环境温度的应用程序。当用户在显示屏中打开该APP后,该APP可以根据其配置信息,生成控制指令。该控制指令可以用于从车外的温度传感器中获取采样数据。该APP可以通过该客机系统的native层,将该控制指令发送到HAL中。该HAL可以通过将该控制信息写入sysfs节点,使车外的温度传感器的Virtio-sensor-driver读取到该控制指令。该Virtio-sensor-driver可以将该控制指令发送到该客机系统对应的虚拟机的Virtio-sensor中。该虚拟机的Virtio-sensor可以将该控制指令发送到buffer1中。经由sensor server对各个虚拟机发送的对该车外的温度传感器的控制指令的汇总后,该sensor server可以将最终的控制指令发送到主机内核中,该车外的温度传感器对应的驱动程序中。该车外的温度传感器对应的驱动程序可以根据该控制指令,控制车外的温度传感器开始采集信息。该主机内核可以通过该车外的温度传感器对应的驱动程序,获取采样数据,并将该采样数据写入sensor server的buffer2中。该sensorserver可以根据获取到的控制指令,将该采样数据发送到对应的虚拟机中。虚拟机可以通过Virtio-sensor、Virtio-sensor-driver、HAL,将该采样数据反馈到APP中。APP可以根据该采样数据,显示车外的温度。
本申请中,以车载控制器为执行主体,执行如下实施例的资源共享方法。具体地,该执行主体可以为车载控制器的硬件设备装置,或者为车载控制器中实现下述实施例的软件应用,或者为安装有实现下述实施例的软件应用的计算机可读存储介质,或者为实现下述实施例的软件应用的代码。
图2示出了本申请一实施例提供的一种资源共享方法的信令交互图。在图1所示实施例的基础上,如图2所示,以车载控制器中的主系统和子系统为执行主体,本实施例的方法可以包括如下步骤:
S101、子系统获取子系统控制信息,子系统控制信息用于控制与主系统连接的硬件设备。
本实施例中,主系统中可以运行有多个虚拟机。每一个虚拟机中可以运行有一个操作系统。该运行于虚拟机中的操作系统即为客机系统(Guest OS)。一个客机系统即为一个子系统。一个子系统可以对应于该车辆的一个域。例如,仪表域、车机域等。每一个域可以对应于至少一个显示屏。例如,当一个子系统对应于一个仪表域时,该子系统可以对应于一个用于显示仪表信息的显示屏。又如,当一个子系统对应于一个车机域时,该子系统可以对应于至少一个车机的显示屏。该车机的显示屏或者仪表的显示屏中可以包括多个应用程序。例如,该应用程序可以以APP的形式显示在显示屏中,并等待用于触发该APP时执行对应的功能。又如,该应用程序可以对应于该显示屏的固定区域,并实施显示对应的信息。该应用程序显示对应的信息之前,通常需要从该车辆的其他设备中获取信息。例如,当该应用程序用于显示车外温度时,该应用程序需要从设置于车外的温度传感器中获取温度信息。又如,当该应用程序用于显示胎压时,该应用程序需要从车辆的各个轮胎的胎压传感器中获取胎压信息。
当安装于子系统中的应用程序被触发后,应用程序可以生成子系统控制信息。该应用程序可以通过子系统中的本地服务层(native),将该子系统控制信息发送到HAL。其中,该子系统控制信息中可以包括使能信号、采样频率信息等。这些信息可以被预设于该应用程序中。例如,当该应用程序开启时,该应用程序生成的子系统控制信息中包括使能信号(able)。当该应用程序开启时,该应用程序生成的子系统控制信息中可以包括采样频率信息。该采样频率信息可以被预设于该应用程序的程序代码中。当该应用程序关闭时,该应用程序生成的子系统控制信息中包括非使能信号(disable)。其中,该应用程序可以对应于至少一个硬件设备。其中,应用程序可以通过发送使能信号到硬件设备,使硬件设备处于活动模式。应用程序可以在该硬件设备处于活动模式的情况下,将采样频率信息发送到硬件设备中,使该硬件设备可以按照需要的采样频率输出数据到应用程序。例如,当该应用程序用于显示外部环境温度时,该应用程序可以对应于设置于车辆外部的温度传感器。应用程序可以通过向该外部的温度传感器发送使能信号,使该温度传感器处于活动模式。应用程序还可以通过向该温度传感器发送采样频率信号,使该温度传感器根据该采样频率获取采样信号。
例如,当该硬件设备为硬件传感器(sensor)时,上述步骤的执行流程还可以如图3中S1所示,该子系统可以从应用程序中获取该sensor的使能信号。该使能信号用于使能sensor。该子系统还可以从应用程序中获取该sensor的采样频率信息。该采样频率信息用于设置sensor的采样频率。该使能信号和采样频率信息组成子系统控制信息。该子系统可以将该子系统控制信息写入到sysfs节点。
如图1所示,每一个子系统中可以包括至少一个Virtio-sensor-driver。每一个Virtio-sensor-driver可以对应于一个硬件设备。每一个Virtio-sensor-driver可以对应于一个sysfs节点。当HAL将子系统控制信息写入到该sysfs节点后,该Virtio-sensor-driver可以从该sysfs节点中读取该子系统控制信息。其中,Virtio-sensor-driver等驱动程序所在的层即为驱动层。该Virtio-sensor-driver可以为写入到该子系统的客机内核的内核代码中的驱动代码。在如图1所示的虚拟机中,该Guest OS对应的对应的子系统与虚拟机通过Virtio协议,实现Guest OS中Virtio-sensor-driver与虚拟机中Virtio-sensor之间的信息交互。其中,Virtio-sensor-driver相当于Virtio协议的前端驱动,Virtio-sensor相当于Virtio协议的后端驱动。
一种示例中,子系统使用该Virtio协议传输该子系统控制信息的具体步骤可以包括:
步骤1、获取硬件设备的子系统控制信息,将子系统控制信息写入virtio协议的环形缓冲区。子系统中的Virtio-sensor-driver可以从该sysfs节点中读取该子系统控制信息。该Virtio-sensor-driver相当于Virtio协议的前端。该Virtio-sensor-driver可以通过virtio协议,将子系统控制信息入virtio协议的环形缓冲区。其中,Virtio-sensor-driver可以调用virtio协议的核心层接口中的virtqueue_kick函数通知virtio backend驱动。如图1所示,该虚拟机运行于主系统的操作系统中。因此,该Virtio-sensor可以对应于host os。因此,该Virtio-sensor-driver与Virtio-sensor之间的通信,即为guest os和host os之间的通信。该virtio协议主要通过环形缓冲区资源使用、信息同步等操作实现了通信功能。该过程具体可以如图4所示。每一个子系统Guest OS中,可以包括Virtio-forntend(Virtio-forntend)、客机驱动(Guest driver)和客机硬件抽象层(Guest Hal)。Guest Hal可以在获取到应用程序的子系统控制信息后,将该信息发送到Guest driver。该Guest driver相当于图1中的Virtio-sensor-driver。该Guest driver可以将信息发送到Virtio-forntend。Virtio-forntend可以将获取到的子系统控制信息写入到环形缓冲区中。virtio核心层提供了两个用来发送和接受数据的环形缓冲区。virtio核心层还提供了Virtio-forntend发送数据,通知后端的接口。该接口可以为virtqueue_kick函数。该接口用于将子系统控制信息在环形缓冲区中的地址传递给virtio backend。该步骤相当于图3中的S2和S3。
其中,Virtio协议是一种I/O半虚拟化的解决方案,用于为guest os和host os之间提供一套标准的协议,以完成guest os和host os之间的通信。其中,Virtio-sensor-driver和Virtio-forntend运行于子系统中。即,该Virtio-sensor-driver和Virtio-forntend是在操作系统的之上运行的进程。因此,该Virtio-sensor-driver和Virtio-forntend可以对应于guest os。其中,Virtio-sensor和virtio backend,运行于虚拟机的代码中。即,该Virtio-sensor和virtio backend的进程与子系统的操作系统进程,运行在同一内存空间中。由于虚拟机相当于运行于主系统中的进程。因此,Virtio-sensor和virtio backend可以对应于host os。因此,Virtio-forntend和virtio backend之间的通信,相当于guest os和host os之间的通信。
步骤2、从virtio协议的环形缓冲区中读取子系统控制信息,并将子系统控制信息写入子系统的驱动程序中。该子系统的驱动程序即为Virtio-sensor。由于Virtio-sensor位于虚拟机的代码中,而虚拟机的代码运行于主系统中,因此,即该Virtio-sensor位于主系统中。因此,该步骤相当于S1001。
S1001、子系统将子系统控制信息发送到主系统,以使主系统在获取子系统控制信息后根据子系统控制信息更新主系统控制信息,并根据主系统控制信息控制硬件设备。
本实施例中,虚拟机中可以设置有virtio backend(virtio backend)。该virtiobackend位于虚拟机的代码中。由于虚拟机的代码运行于主系统中,因此,即该virtiobackend位于主系统中。该virtio backend可以在接收到Virtio-forntend的通知后,根据该通知,获取子系统控制信息在环形缓冲区中的地址。virtio backend可以调用virtio核心层的接收函数iov_from_buf(),将子系统控制信息从环形缓冲区中读取出来。其中,函数iov_from_buf()为内核通用接口。该子系统控制信息的读取,相当于将信息从子系统读取到主系统中。该virtio backend可以将该子系统控制信息发送到Virtio-sensor。其中,子系统控制信息的格式根据主系统控制信息的格式确定。
S102、主系统获取至少一子系统发送的子系统控制信息。
本实施例中,主系统中可以包括至少一个虚拟机。virtio backend位于QEMU代码中。该QEMU代码即为虚拟机代码。该虚拟机代码运行于主系统中。一个虚拟机代码为一个运行于主系统中的进程。每一个虚拟机可以对应于一个子系统。虚拟机中的virtio backend可以从其对应的子系统的Virtio-forntend中获取子系统控制信息。因此,该主系统中的多个虚拟机可以从多个子系统中分别获取子系统控制信息。这些子系统控制信息均用于控制主系统中的一个硬件设备。
主系统中可以运行有一个senser server。该senser server中可以设置有两个寄存器。其中,第一寄存器中存储子系统控制信息。即,各个虚拟机可以在获取到子系统控制信息后,将该子系统控制信息发送到该第一寄存器中。该第一寄存器中可以存储有全部的子系统控制信息。需要注意的是,该主系统中可以运行有多个senser server。每一个senser server可以对应于一个硬件设备。该步骤相当于图3中的S4。
S103、主系统根据至少一子系统发送的子系统控制信息,更新主系统中硬件设备对应的主系统控制信息。
本实施例中,为了提高子系统控制信息的控制效率,主系统中的senser server可以对第一寄存器中的子系统控制信息进行整理,并根据预设的判断逻辑,完成主系统控制信息的更新。主系统可以将整理好的子系统控制信息写入到主系统控制信息中。该主系统控制信息可以通过该主系统的i2c总线发送到硬件设备中,实现对硬件设备的控制。该步骤相当于图3中的S5。
例如,该子系统控制信息可以包括使能信号和采样频率信息。则,该主系统控制信息也可以包括使能信号和采样频率信息。其中,使能信号用于控制硬件设备进入活动模式。当该硬件设备无法获取使能信号时,该硬件设备进入休眠模式。其中,采样频率信号用于控制硬件设备的数据采样频率。该主系统中virtio backend在获取到子系统控制信息后,将该子系统控制信息写入到Sensor Server创建的发送文件A中。该发送文件即为主系统控制文件。其中,该判断逻辑可以包括:只要有一个子系统写入使能,则其他子系统不会继续写入。如有一个子系统正在使用Sensor,则不会写入非使能信号(disable)。当且仅当所有的子系统都发送disable信号时,写入该disable信号。当新写入的采样频率大于现有设置的采样频率时,更新采样频率。
一种示例中,上述判断逻辑可以总结为以下三条:
其一,当主系统控制信息中包括非使能状态,且至少一子系统控制信息中包括使能状态时,将主系统控制信息中的非使能状态修改为使能状态。该修改可以在任一子系统需要启动硬件设备时,通过该使能信号控制硬件设备启动。
其二,当子系统控制信息中包括的第一采样频率大于主系统控制信息中的包括的第二采样频率时,将主系统控制信息中的第二采样频率修改为第一采样频率。这样设置的目的为了保证每一子系统都可以获取到正确采样频率的采样数据。例如,guest os A设置了采样频率为50hz,guest os B设置了采样频率为20hz。假如不做判断直接写入,则会导致硬件设备的采样频率被后设置的guest os B设置为20hz。而guest os A以20hz采样得到采样数据后,任旧以50hz输出,会导致guest os A获取的采样数据中存在大量的重复数据。guest os A获取的采样数据的准确率降低了。否则,按照本申请方法判断后,不对该50hz的采样频率进行修改,则guest os B在获取采样数据时,会自动进行下采样,从而得到20hz采样频率的采样数据,并进行输出。
其三,当主系统控制信息中包括使能状态,且车载系统的全部子系统均发送包括非使能状态的子系统控制信息时,将主系统控制信息中的使能状态修改为非使能状态。该修改可以确保该只有在全部子系统均不需要从该硬件设备中获取数据信息,该硬件设备才可以获取非使能信号,并进入休眠状态。
需要注意的是,由于该主系统中可以运行有多个senser server。每一个senserserver可以对应于一个硬件设备。因此,不同的senser server中可以设置有不同的判断逻辑。
S1002、主系统使用主系统控制信息控制硬件设备。
本实施例中,主系统可以将主系统控制信息写入控制硬件设备中。该步骤可以如图3中S6所示。主系统可以通过将主系统控制信息写入到该硬件设备在主系统中的硬件驱动,实现将该主系统控制信息发送到硬件设备,并写入该硬件设备的效果。人如图3中S7所示,该硬件驱动可以将该主系统控制信息通过i2c总线写入到硬件设备的寄存器中。该硬件设备可以根据该寄存器中的主系统控制信息实现对该硬件设备的控制。例如,当该硬件设备为传感器时,该控制可以包括Sensor被使能、以一定的采样频率上报sensor采样数据等。其中,采样数据可以包括加速度、角速度等。
一种示例中,实现该硬件设备的控制的具体步骤可以包括:
步骤1、主系统将主系统控制信息写入主系统中硬件设备对应的硬件驱动中。
步骤2、主系统将硬件驱动中的主系统控制信息,通过数据总线写入硬件设备的硬件设备寄存器中,以使硬件设备可以根据主系统控制信息执行对应操作。
S1003、主系统从硬件设备中读取数据信息,并将数据信息发送到子系统中。
本实施例中,硬件设备可以在被输入主系统控制信息后,根据该主系统控制信息执行对应的控制操作。例如,该主系统可以使用Host主机端的硬件驱动,通过i2c总线,读取硬件设备中的采样数据。主系统中的Sensor Server可以在获取该采样数据后,将该采样数据写入该Sensor Server的第二寄存器中。Sensor Server可以通过轮询机制获取各个虚拟机的子系统控制信息。Sensor Server可以根据该子系统控制信息调整采样数据,并将该采样数据发送到各个子系统中。其中,轮询机制可以使用epoll函数实现。例如,当该硬件设备的采样率为50hz,而一个子系统的子系统控制信息中的采样率为20hz时,该Sensor Server可以对该采样数据进行下采样后,将该采样数据发送到该子系统。其中,数据信息中可以包括采样信息。
其中,主系统的Sensor Server可以通过socket发送给虚拟机的virtio backend。此处,使用socket通信主要为了多子系统可以同时和host主机建立tcp协议链接。该步骤相当于图3中的S10。
一种示例中,主系统将数据信息反馈到各个子系统的过程具体可以包括:
步骤1、主系统读取硬件设备的数据信息。其中,主系统可以通过虚拟机virtiobackend获取该数据信息。该主系统可以通过调用核心层接口iov_to_buf()函数将采样数据放入到用来接收数据的环形缓冲区中。该主系统还可以通知Virtio-forntend,以告知该采样数据在环形缓冲区中的地址。该步骤相当于图3中的S11。
步骤2、主系统将数据信息发送到子系统控制信息对应的子系统中。主系统将该数据信息存储到环形缓冲区,并向Virtio-forntend发送提醒信息后,该主系统完成该数据信息的发送。虚拟机Virtio-forntend将根据该提醒信息,从该环形缓冲区中获取该数据信息。
S104、子系统接收主系统发送的从硬件设备中获取的数据信息。
本实施例中,子系统的virtio核心层可以通过接收函数virtqueue_get_buf()实现采样数据的获取。例如,该Virtio-forntend可以通过该函数获取到加速度和角速度数据。子系统的Virtio-forntend中可以注册有input设备。该input设备即为应用程序。该input设备可以通过子系统提供的input_register_device函数注册。子系统可以在获取数据信息后,将该数据信息作为input事件上报应用层,使该数据信息可以最终被应用层应用程序获取。子系统的native层通过input事件获取数据信息后,可以将该数据信息发送到APP,使APP拿到主系统的Host主机端的硬件设备的采样数据。该采样数据中可以包括加速度、角速度等信息。该过程可以如图3中的S12至S14所示。
一种示例中,该采样数据的获取过程具体可以包括如下步骤:
步骤1、子系统从主系统中获取数据信息,并将数据信息写入virtio协议的环形缓冲区。
步骤2、子系统从virtio协议的环形缓冲区中读取数据信息,并根据应用程序数据格式,将数据信息转换为应用程序数据格式对应的事件信息。
步骤3、子系统将事件信息发送到子系统的应用程序中,以使应用程序使用事件信息完成对应操作。
本申请提供的资源共享方法,子系统可以运行于车载系统的虚拟机中。子系统可以获取子系统控制信息。子系统将子系统控制信息发送到主系统。主系统可以在获取至少一个子系统发送的子系统控制信息后,对这些子系统控制信息进行整理,并将子系统控制信息写入到主系统控制信息中。主系统可以将主系统控制信息写入控制硬件设备中,实现对硬件设备的控制。主系统从硬件设备中读取数据信息,并将数据信息发送到子系统中。子系统接收主系统发送的从硬件设备中获取的数据信息。本申请中,通过将多个子系统的子系统控制信息整理到一主系统控制信息中,使子系统的硬件设备可以在各个子系统控制的同时,实现该硬件设备资源在各个子系统中的共享,提高该主系统的硬件设备的使用效率和利用率。
图5示出了本申请一实施例提供的一种资源共享装置的结构示意图,如图5所示,本实施例的资源共享装置10用于实现上述任一方法实施例中对应于车载控制器的主系统的操作,本实施例的资源共享装置10包括:
获取模块11,用于获取至少一子系统发送的子系统控制信息。
处理模块12,用于根据至少一子系统发送的子系统控制信息,更新主系统中硬件设备对应的主系统控制信息。使用主系统控制信息控制硬件设备,并从硬件设备中读取数据信息后将数据信息发送到子系统中。
可选地,处理模块12,具体用于以下至少一种:
当主系统控制信息中包括非使能状态,且至少一子系统控制信息中包括使能状态时,将主系统控制信息中的非使能状态修改为使能状态。
当子系统控制信息中包括的第一采样频率大于主系统控制信息中的包括的第二采样频率时,将主系统控制信息中的第二采样频率修改为第一采样频率。
当主系统控制信息中包括使能状态,且车载系统的全部子系统均发送包括非使能状态的子系统控制信息时,将主系统控制信息中的使能状态修改为非使能状态。
可选地,处理模块12,具体用于:
将主系统控制信息写入主系统中硬件设备对应的硬件驱动中。
将硬件驱动中的主系统控制信息,通过数据总线写入硬件设备的硬件设备寄存器中,以使硬件设备可以根据主系统控制信息执行对应操作。
可选地,处理模块12,具体用于:
读取硬件设备的数据信息。
将数据信息发送到子系统控制信息对应的子系统中。
本申请实施例提供的资源共享装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图6示出了本申请一实施例提供的一种资源共享装置的结构示意图,如图6所示,本实施例的资源共享装置20用于实现上述任一方法实施例中对应于车载控制器的子系统的操作,本实施例的资源共享装置20包括:
获取模块21,用于获取子系统控制信息,并将子系统控制信息发送到主系统,以使主系统在获取子系统控制信息后根据子系统控制信息更新主系统控制信息,并根据主系统控制信息控制硬件设备。
接收模块22,用于接收主系统发送的从硬件设备中获取的数据信息。
可选地,获取模块21,具体用于:
获取硬件设备的子系统控制信息,将子系统控制信息写入virtio协议的环形缓冲区;
从virtio协议的环形缓冲区中读取子系统控制信息,并将子系统控制信息写入子系统的驱动程序中;
其中,子系统控制信息的格式根据主系统控制信息的格式确定。
可选地,接收模块22,还用于:
从主系统中获取数据信息,并将数据信息写入virtio协议的环形缓冲区。
从virtio协议的环形缓冲区中读取数据信息,并根据应用程序数据格式,将数据信息转换为应用程序数据格式对应的事件信息。
将事件信息发送到子系统的应用程序中,以使应用程序使用事件信息完成对应操作。
本申请实施例提供的资源共享装置20,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图7示出了本申请实施例提供的一种车载控制器的硬件结构示意图。如图7所示,该车载控制器30,用于实现上述任一方法实施例中对应于车载控制器的操作,本实施例的车载控制器30可以包括:存储器31,处理器32。
存储器31用于存储计算机程序。该存储器31可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储(Non-Volatile Memory,NVM),例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
处理器32用于执行存储器存储的计算机程序,以实现上述实施例中的资源共享方法。具体可以参见前述方法实施例中的相关描述。该处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
可选地,存储器31既可以是独立的,也可以跟处理器32集成在一起。
当存储器31是独立于处理器32之外的器件时,车载控制器30还可以包括总线33。该总线33用于连接存储器31和处理器32。该总线33可以是工业标准体系结构(IndustryStandard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
该车载控制器30中运行有一个主系统,该主系统中运行有多个虚拟机。每一虚拟机对应于一个子系统。该车载控制器30通过i2c总线与该车辆中的硬件设备、显示器等设备连接,用于向硬件设备、显示器发送信息,以及获取硬件设备、显示器发送的信息。
本实施例提供的车载控制器可用于执行上述的资源共享方法,其实现方式和技术效果类似,本实施例此处不再赘述。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时用于实现上述的各种实施方式提供的方法。
其中,计算机可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,计算机可读存储介质耦合至处理器,从而使处理器能够从该计算机可读存储介质读取信息,且可向该计算机可读存储介质写入信息。当然,计算机可读存储介质也可以是处理器的组成部分。处理器和计算机可读存储介质可以位于专用集成电路(Application Specific Integrated Circuits,ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和计算机可读存储介质也可以作为分立组件存在于通信设备中。
具体地,该计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random-Access Memory,SRAM),电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM),可编程只读存储器(Programmable read-only memory,PROM),只读存储器(Read-OnlyMemory,ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本申请还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。设备的至少一个处理器可以从计算机可读存储介质中读取该计算机程序,至少一个处理器执行该计算机程序使得设备实施上述的各种实施方式提供的方法。
本申请实施例还提供一种芯片,该芯片包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的设备执行如上各种可能的实施方式中的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
其中,各个模块可以是物理上分开的,例如安装于一个的设备的不同位置,或者安装于不同的设备上,或者分布到多个网络单元上,或者分布到多个处理器上。各个模块也可以是集成在一起的,例如,安装于同一个设备中,或者,集成在一套代码中。各个模块可以以硬件的形式存在,或者也可以以软件的形式存在,或者也可以采用软件加硬件的形式实现。本申请可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
当各个模块以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
应该理解的是,虽然上述实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (9)
1.一种资源共享方法,其特征在于,车载系统中包括一个主系统和至少一个运行于虚拟机的子系统,所述虚拟机运行于所述主系统中,所述方法运行于车载系统的主系统,所述方法,包括:
获取至少一所述子系统发送的子系统控制信息,所述子系统控制信息用于控制与主系统连接的硬件设备;
根据至少一所述子系统发送的所述子系统控制信息,更新所述主系统中所述硬件设备对应的主系统控制信息;
使用所述主系统控制信息控制所述硬件设备,并从所述硬件设备中读取数据信息后将所述数据信息发送到所述子系统中;
其中,所述根据至少一所述子系统发送的所述子系统控制信息,更新所述主系统中所述硬件设备对应的主系统控制信息,具体包括以下至少一种:
当所述主系统控制信息中包括非使能状态,且至少一所述子系统控制信息中包括使能状态时,将所述主系统控制信息中的所述非使能状态修改为所述使能状态;
当所述子系统控制信息中包括的第一采样频率大于所述主系统控制信息中的包括的第二采样频率时,将所述主系统控制信息中的所述第二采样频率修改为所述第一采样频率;
当所述主系统控制信息中包括使能状态,且所述车载系统的全部子系统均发送包括非使能状态的子系统控制信息时,将所述主系统控制信息中的所述使能状态修改为所述非使能状态。
2.根据权利要求1所述的方法,其特征在于,所述使用所述主系统控制信息控制所述硬件设备,具体包括:
将所述主系统控制信息写入所述主系统中所述硬件设备对应的硬件驱动中;
将所述硬件驱动中的所述主系统控制信息,通过数据总线写入所述硬件设备的硬件设备寄存器中,以使所述硬件设备可以根据所述主系统控制信息执行对应操作。
3.根据权利要求1所述的方法,其特征在于,所述将所述数据信息发送到所述子系统中,具体包括:
读取所述硬件设备的所述数据信息;
将所述数据信息发送到所述子系统控制信息对应的所述子系统中。
4.一种资源共享方法,其特征在于,车载系统中包括一个主系统和至少一个运行于虚拟机的子系统,所述方法运行于车载系统的一个子系统,所述方法,包括:
获取子系统控制信息,并将所述子系统控制信息发送到主系统,以使所述主系统在获取所述子系统控制信息后根据所述子系统控制信息更新所述主系统控制信息,并根据所述主系统控制信息控制硬件设备;
接收所述主系统发送的从所述硬件设备中获取的数据信息;
其中,所述将所述子系统控制信息发送到主系统,以使所述主系统在获取所述子系统控制信息后根据所述子系统控制信息更新所述主系统控制信息,具体包括以下至少一种:
当所述子系统控制信息中包括使能状态,且所述主系统控制信息中包括非使能状态时,所述将所述子系统控制信息发送到主系统,用于使所述主系统将所述主系统控制信息中的所述非使能状态修改为所述使能状态;
当所述子系统控制信息中包括的第一采样频率大于所述主系统控制信息中的包括的第二采样频率时,所述将所述子系统控制信息发送到主系统,用于使所述主系统将所述主系统控制信息中的所述第二采样频率修改为所述第一采样频率;
当所述子系统控制信息中包括非使能状态,且所述主系统控制信息中包括使能状态时,所述将所述子系统控制信息发送到主系统,用于使所述主系统将所述主系统控制信息中的所述使能状态修改为所述非使能状态。
5.根据权利要求4所述的方法,其特征在于,获取子系统控制信息,具体包括:
获取硬件设备的子系统控制信息,将所述子系统控制信息写入virtio协议的环形缓冲区;
从所述virtio协议的环形缓冲区中读取所述子系统控制信息,并将所述子系统控制信息写入所述子系统的驱动程序中;
其中,所述子系统控制信息的格式根据所述主系统控制信息的格式确定。
6.根据权利要求4或5所述的方法,其特征在于,所述方法,还包括:
从所述主系统中获取所述数据信息,并将所述数据信息写入virtio协议的环形缓冲区;
从所述virtio协议的环形缓冲区中读取所述数据信息,并根据应用程序数据格式,将所述数据信息转换为所述应用程序数据格式对应的事件信息;
将所述事件信息发送到所述子系统的所述应用程序中,以使所述应用程序使用所述事件信息完成对应操作。
7.一种车载控制器,其特征在于,所述车载控制器,包括:存储器,处理器;所述存储器用于存储计算机程序;所述处理器用于根据所述存储器存储的计算机程序,实现如权利要求1至3中任一项所述的应用于主系统的资源共享方法,和,如权利要求4至6中任一项所述的应用于子系统的资源共享方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1至3中任一项所述的应用于主系统的资源共享方法,和,如权利要求4至6中任一项所述的应用于子系统的资源共享方法。
9.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的应用于主系统的资源共享方法,和,如权利要求4至6中任一项所述的应用于子系统的资源共享方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210931279.XA CN115285044B (zh) | 2022-08-04 | 2022-08-04 | 资源共享方法、车载系统和车载控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210931279.XA CN115285044B (zh) | 2022-08-04 | 2022-08-04 | 资源共享方法、车载系统和车载控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115285044A CN115285044A (zh) | 2022-11-04 |
CN115285044B true CN115285044B (zh) | 2024-01-05 |
Family
ID=83825660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210931279.XA Active CN115285044B (zh) | 2022-08-04 | 2022-08-04 | 资源共享方法、车载系统和车载控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115285044B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934603A (zh) * | 2023-01-30 | 2023-04-07 | 中瓴智行(成都)科技有限公司 | 一种基于模块化的智能座舱域控制器 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682182A (zh) * | 2011-03-09 | 2012-09-19 | 上海思穆电子科技有限公司 | 一种多屏独立操控的新型架构车载信息系统 |
CN104050992A (zh) * | 2014-06-10 | 2014-09-17 | 浙江中科领航汽车电子有限公司 | 具有虚拟仪表和信息娱乐终端的车载智能系统 |
CN106814666A (zh) * | 2017-01-25 | 2017-06-09 | 浙江航芯科技有限公司 | 一机多屏的智能座舱系统 |
CN108891365A (zh) * | 2018-06-22 | 2018-11-27 | 浙江航芯科技有限公司 | 汽车用智能座舱系统及使用该系统的汽车 |
CN112153116A (zh) * | 2020-08-27 | 2020-12-29 | 上海赫千电子科技有限公司 | 一种基于车载以太网的中央计算平台多虚拟机的数据共享方法 |
CN112793481A (zh) * | 2021-01-11 | 2021-05-14 | 宁波均联智行科技股份有限公司 | 一种座舱主动安全方法及系统 |
CN113022478A (zh) * | 2021-03-23 | 2021-06-25 | 阿尔特汽车技术股份有限公司 | 用于车辆的域控制器的设计方法、域控制器和车辆 |
CN113479154A (zh) * | 2021-06-03 | 2021-10-08 | 湖北亿咖通科技有限公司 | 兼容仪表和娱乐功能的信息输送控制系统及方法 |
CN114546307A (zh) * | 2020-11-25 | 2022-05-27 | 宝能汽车集团有限公司 | 智能座舱的多屏显示控制系统、方法和车辆 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9300779B2 (en) * | 2013-03-15 | 2016-03-29 | Blackberry Limited | Stateful integration of a vehicle information system user interface with mobile device operations |
-
2022
- 2022-08-04 CN CN202210931279.XA patent/CN115285044B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682182A (zh) * | 2011-03-09 | 2012-09-19 | 上海思穆电子科技有限公司 | 一种多屏独立操控的新型架构车载信息系统 |
CN104050992A (zh) * | 2014-06-10 | 2014-09-17 | 浙江中科领航汽车电子有限公司 | 具有虚拟仪表和信息娱乐终端的车载智能系统 |
CN106814666A (zh) * | 2017-01-25 | 2017-06-09 | 浙江航芯科技有限公司 | 一机多屏的智能座舱系统 |
CN108891365A (zh) * | 2018-06-22 | 2018-11-27 | 浙江航芯科技有限公司 | 汽车用智能座舱系统及使用该系统的汽车 |
CN112153116A (zh) * | 2020-08-27 | 2020-12-29 | 上海赫千电子科技有限公司 | 一种基于车载以太网的中央计算平台多虚拟机的数据共享方法 |
CN114546307A (zh) * | 2020-11-25 | 2022-05-27 | 宝能汽车集团有限公司 | 智能座舱的多屏显示控制系统、方法和车辆 |
CN112793481A (zh) * | 2021-01-11 | 2021-05-14 | 宁波均联智行科技股份有限公司 | 一种座舱主动安全方法及系统 |
CN113022478A (zh) * | 2021-03-23 | 2021-06-25 | 阿尔特汽车技术股份有限公司 | 用于车辆的域控制器的设计方法、域控制器和车辆 |
CN113479154A (zh) * | 2021-06-03 | 2021-10-08 | 湖北亿咖通科技有限公司 | 兼容仪表和娱乐功能的信息输送控制系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115285044A (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3092566B1 (en) | Vehicle with multiple user interface operating domains | |
US9324234B2 (en) | Vehicle comprising multi-operating system | |
EP3092560B1 (en) | Vehicle with multiple user interface operating domains | |
KR101521778B1 (ko) | 가상화 환경에서 i/o 동작을 처리하는 방법 및 장치 | |
US8719843B2 (en) | Virtualizable and forward-compatible hardware-software interface | |
EP3126989B1 (en) | Early logo display in a multiprocessor architecture | |
CN112764872B (zh) | 计算机设备、虚拟化加速设备、远程控制方法及存储介质 | |
US11059435B2 (en) | Vehicle software control device | |
EP3126990A1 (en) | Early rear view camera video display in a multiprocessor architecture | |
CN115285044B (zh) | 资源共享方法、车载系统和车载控制器 | |
US11435958B2 (en) | Shared memory mechanism to support fast transport of SQ/CQ pair communication between SSD device driver in virtualization environment and physical SSD | |
US10649915B1 (en) | Disaggregated computing architecture using device pass-through wherein independent physical address spaces between systems nodes are implemented in a single execution environment | |
CN113419845A (zh) | 计算加速方法和装置、计算系统、电子设备及计算机可读存储介质 | |
CN115113977A (zh) | 描述符读取装置和设备、方法及集成电路 | |
CN114238236A (zh) | 共享文件的访问方法、电子设备及计算机可读存储介质 | |
KR20230150318A (ko) | 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이장치 | |
EP3198406B1 (en) | Facilitation of guest application display from host operating system | |
Karthik et al. | Hypervisor based approach for integrated cockpit solutions | |
CN114786056A (zh) | 一种基于Hypervisor的跨操作系统视频投影显示方法、系统、装置和车辆 | |
Wesolowsk et al. | Xvisor virtio-can: Fast virtualized can | |
CN115396478B (zh) | 用户域与设备的通信方法、装置以及汽车 | |
CN114371906A (zh) | 资源整合系统及资源整合方法 | |
CN116028162A (zh) | 基于硬件隔离的混合虚拟化模型、电子设备和车载座舱 | |
CN114261282A (zh) | 一种单屏幕双主机的智能座舱控制系统及方法 | |
WO2024110875A1 (en) | Remote desktop composition |
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 |