CN117492730A - 一种车辆控制的软件架构***及软件开发方法 - Google Patents
一种车辆控制的软件架构***及软件开发方法 Download PDFInfo
- Publication number
- CN117492730A CN117492730A CN202311839464.7A CN202311839464A CN117492730A CN 117492730 A CN117492730 A CN 117492730A CN 202311839464 A CN202311839464 A CN 202311839464A CN 117492730 A CN117492730 A CN 117492730A
- Authority
- CN
- China
- Prior art keywords
- service
- vehicle
- layer
- software
- application
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000011161 development Methods 0.000 claims abstract description 25
- 238000004806 packaging method and process Methods 0.000 claims abstract description 7
- 238000007726 management method Methods 0.000 claims description 64
- 230000006870 function Effects 0.000 claims description 58
- 230000036541 health Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013523 data management Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 14
- 230000005012 migration Effects 0.000 abstract description 2
- 238000013508 migration Methods 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000006978 adaptation Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000003745 diagnosis Methods 0.000 description 5
- 239000008358 core component Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 239000000306 component Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 2
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000011664 nicotinic acid Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004171 remote diagnosis Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种车辆控制的软件架构***及软件开发方法,涉及计算机技术领域。通过包括板级支持包或虚拟化平台的硬件抽象层来对底层的硬件驱动进行封装,从而实现软硬件解耦,在中间层通过汽车开放***架构或安卓***提供标准化的应用程序编程接口,从而使得软件的可在软硬件解耦下形成统一的规范和开发方式,提高了该软件架构***下软件的迁移性,降低了软件的开发成本和维护成本。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种车辆控制的软件架构***及软件开发方法。
背景技术
目前,车联网是指通过网络连接和通信技术将车辆、道路及用户等元素进行智能化互联的一种技术。与车联网进行连接的车辆设备作为车辆的重要组成部分,可以实现车辆信息的采集、处理和传输,为车辆提供智能化的功能和服务。车辆中的软件架构***是车辆设备重要的组成部分,通常具有开放性等特点。
现有软件分层结构由应用层、***层、驱动层组成,其中,驱动层与硬件层强相关,与硬件平台未能解耦。在面对不同的业务提供方提供的不同硬件时,软件程序无法共用和方便的移植,导致软件的开发成本和维护成本高。
发明内容
基于此,有必要针对上述技术问题,提供一种车辆控制的软件架构***及软件开发方法。
本说明书采用下述技术方案:
本说明书提供了一种车辆控制的软件架构***,包括:
硬件抽象层,包括板级支持包或虚拟化平台、操作***,板级支持包或虚拟化平台用于对硬件平台对应的硬件驱动进行封装,为操作***提供硬件解耦的软件平台;
中间件层,用于基于操作***通过汽车开放***架构或安卓***,为基础服务层的软件开发和软件运行提供标准化的应用程序编程接口;
基础服务层,通过南向接口与中间件层进行通信,以及通过北向接口与业务应用层进行通信,用于将应用程序编程接口进行封装形成基础功能服务;
业务应用层,用于根据用户需求,基于基础功能服务进行软件开发形成车辆控制的业务应用程序。
可选地,所述汽车开放***架构将车辆设备硬件进行封装形成标准化的软件架构,使不同的车辆设备进行协作,为基础服务层的软件开发和软件运行提供标准化的应用程序编程接口。
可选地,所述基础服务层根据服务控制粒度进行层级划分,所述基础服务层包括多个域核心服务,每个域核心服务包括多个***级服务。
可选地,所述***级服务将中间件层提供的标准化的应用程序编程接口进行封装;所述***级服务包括有电源管理服务、网络设置服务、健康管理服务、升级服务、时钟服务、安全服务、测试服务、版本管理服务、***资源查询服务以及数据采集服务。
可选地,所述域核心服务为对***级服务进行划分得到;所述域核心服务包括功能域服务、整车域服务、座舱域服务、自动驾驶域服务、能量管理域服务、车云协同域服务。
可选地,所述业务应用层根据业务应用程序的应用领域不同进行划分;
所述业务应用层包括车端应用、车云协同平台和车云协同应用;
所述车端应用对基础服务层提供的多种基础功能服务进行封装,用于基于车辆为驾驶用户提供多种车辆管理服务;
所述车云协同平台,用于为车云协同应用提供平台接口管理、大数据管理和智能化场景管理;
所述车云协同应用,用于基于智能车身控制、智能动力控制和云端无人驾驶,为驾驶用户提供多种车辆控制服务。
本说明书提供了一种车辆控制的软件开发方法,包括:
根据用户需求确定业务应用层中业务应用程序的功能,并对业务应用程序对应的高级驾驶辅助***的实现逻辑进行开发;
根据业务应用程序对应的高级驾驶辅助***的实现逻辑,确定对应于基础服务层的多个服务接口功能,对各服务接口功能进行开发;
根据服务接口功能,确定中间件层以及对中间件层的应用程序编程接口进行配置;
根据中间件层的应用程序编程接口对硬件抽象层的底层驱动进行配置,完成车辆控制的软件开发。
本说明书提供了一种车辆控制的软件开发装置,包括:
逻辑开发模块,用于根据用户需求确定业务应用层中业务应用程序的功能,并对业务应用程序对应的高级驾驶辅助***的实现逻辑进行开发;
服务开发模块,用于根据业务应用程序对应的高级驾驶辅助***的实现逻辑,确定对应于基础服务层的多个服务接口功能,对各服务接口功能进行开发;
接口配置模块,用于根据服务接口功能,确定中间件层以及对中间件层的应用程序编程接口进行配置;
驱动配置模块,用于根据中间件层的应用程序编程接口对硬件抽象层的底层驱动进行配置,完成车辆控制的软件开发。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述车辆控制的软件开发方法。
本说明书提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述车辆控制的软件开发方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
本发明在硬件抽象层中,通过板级支持包或虚拟化平台对底层的硬件驱动进行封装,从而使软硬件平台解耦,使得软件能够基于不同的硬件平台进行运行,而在中间层中通过汽车开放***架构或安卓***提供标准化的应用程序编程接口,便于软件在软硬件解耦下统一开发,提高了该软件架构***下软件的迁移性,降低了软件的开发成本和维护成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书提供的一种车辆控制的软件架构***示意图;
图2为本说明书提供的一种车辆控制的软件架构***详细示意图;
图3为本说明书提供的一种车辆控制的软件架构***应用示意图;
图4为本说明书提供的一种车辆控制的软件开发方法流程示意图;
图5为本说明书提供的一种车辆控制的软件开发示例示意图;
图6为本说明书提供的一种车辆控制的软件开发装置示意图;
图7为本说明书提供的一种实现车辆控制的软件开发方法的计算机设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前的软件架构***业务功能包含在应用层中,不具备层次划分,开发模式落后,只能由业务提供方自己维护和修改,在变换业务提供方时上层软件也要统一跟随修改。无法直接将软件移植在不同业务提供方的不同硬件上,各层之间的交互也是由业务提供方自行实现,用户对业务提供方的技术依赖性强。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书中一种车辆控制的软件架构***示意图。图1中位于底层的是硬件平台,由图1可见,本说明书中的软件***架构包括硬件抽象层、中间件层、基础服务层及业务应用层。
具体的,在本说明书一个或多个实施例中,该硬件抽象层包括板级支持包(BoardSupport Package,BSP)或虚拟化平台(Hypervisor)、操作***(Operating System,OS),板级支持包或虚拟化平台用于对硬件平台对应的硬件驱动进行封装,为操作***提供硬件解耦的软件平台。其中,BSP Drivers是一种软件包,用于支持特定硬件平台上的设备驱动程序。它包含了与硬件交互的代码和接口,以实现设备的初始化、配置和控制。Hypervisor是一种虚拟化技术,用于在物理硬件上运行多个虚拟机。它可以将物理资源(如CPU、内存、存储)划分为多个虚拟资源,并提供虚拟机之间的隔离和管理。具体选用Hypervisor还是BSP对硬件驱动进行封装可根据需要确定,本说明书对此不做限制。
目前的软件架构分层中的硬件抽象层中操作***与硬件强相关,无法实现与硬件平台解耦,本发明中硬件抽象层旨在实现通过BSP或Hypervisor将硬件驱动全部封装,从而实现操作***的解耦。
其中,BSP介于主板硬件和操作***之间的一层,功能一方面为OS及上层应用程序提供一个与硬件无关的软件平台,另一方面OS可以通过BSP来完成对指定硬件的配置和管理。
Hypervisor是运行在物理服务器和操作***之间的中间软件层,负责管理并虚拟化异构硬件资源,以提供给运行在Hypervisor之上的多个操作***内核,可用于同步支持Android、Linux、QNX多***。
该中间件层用于基于操作***通过汽车开放***架构(AUTomotive Open SystemArchitecture,AUTOSAR)或安卓***(Android)为基础服务层的软件开发和软件运行提供标准化的应用程序编程接口(Application Programming Interface,API)。
中间件层位于操作***、网络和数据库之上,应用软件的下层,助力软硬件解耦分离,提升上层的基础服务层和业务应用层的开发效率,为处于自己上层的应用软件提供运行与开发的环境。
目前的软件架构分层中的中间件层没有统一的规范和开发方式,传统方式是各家公司自己定义中间件,通过硬编码式代码开发实现其功能。本发明的中间件层运用现在较为成熟的AUTOSAR平台或Android平台,可以通过AUTOSAR平台或Android平台的集成开发工具帮助用户灵活、高效地配置开发和集成复杂的上层应用软件,使得软件程序形成统一的规范和开发方式。具体应用AUTOSAR平台还是Android平台可根据需要确定,本说明书对此不做限制。
在本说明书一个或多个实施例中,汽车开放***架构将车辆设备硬件进行封装形成标准化的软件架构,使不同的车辆设备进行协作,为基础服务层的软件开发和软件运行提供标准化的应用程序编程接口。即AUTOSAR平台提供了一套标准化的软件架构,使得不同的车辆设备可以互相协作,从而提升整个车辆电子***的可靠性和安全性。
Android平台是一种较为成熟的开放式移动操作***,为应用程序的开发和运行提供了全面的支持,并且通过开放的API,使得不同应用程序之间可进行交互和共享数据。
该基础服务层通过南向接口与中间件层进行通信,以及通过北向接口与业务应用层进行通信,用于将应用程序编程接口进行封装形成基础功能服务。基础服务层主要实现控制平面所需业务,通过北向接口和南向接口协议分别与上层应用和下层中间件进行通信。
目前的软件架构分层中的基础服务层按照功能模块划分,各模块之间相互联系,不存在上下层关系,在本说明书一个或多个实施例中,本发明中的基础服务层,可根据控制颗粒度不同,将基础服务由下到上分为***级服务、域核心服务。
具体的,***级服务将中间件提供的标准化的应用程序编程接口进行整合封装,形成具有独立功能的各子模块和原子服务。例如,电源管理服务、网络设置服务、健康管理服务、升级服务、时钟服务、安全服务、测试服务、版本管理服务、***资源查询服务以及数据采集服务等等,并通过服务总线将各子模块进行串联通信。具体***级服务包括何种服务可根据需要确定,本说明书对此不做限制。
域核心服务是根据子模块和原子服务功能域不同对***级服务进行划分的,其中,形成了功能域服务、整车域服务、座舱域服务、自动驾驶域服务、能量管理域服务、车云协同域服务等,应用可根据业务场景不同选用不同域服务框架。上述仅为举例说明,具体将***级服务划分为何种域核心服务可根据需要确定,本说明书对此不做限制。
该业务应用层用于根据用户需求,基于基础功能服务进行软件开发形成车辆设备的业务应用程序。业务应用层是直接面向用户以实现用户需求的。
目前的软件架构分层中的业务应用层中每个业务都由对应的功能应用来实现,也不存在明显的上下层关系,且大多应用软件还是采用传统的代码开发方式。
在本说明书一个或多个实施例中,本发明中业务应用层根据应用领域不同划分应用软件,且各应用软件都采用模型开发方式,具体业务应用层分为车云协同应用、车云协同平台和车端应用。
其中,车云协同应用用于基于智能车身控制、智能动力控制和云端无人驾驶,为驾驶用户提供多种车辆控制服务,包含智能车身控制、智能动力控制、云端自驾管理等,以高精地图、导航定位等产业为支撑,融合信息安全、大数据、人工智能等关键技术,面向交通应用提供安全、高效的出行服务。
车云协同平台用于为车云协同应用提供平台接口管理、大数据管理和智能化场景管理等,是车联网与车路协同控制的重要组成部分。
车端应用基础服务层提供的多种基础功能服务进行封装,用于基于车辆为驾驶用户提供多种车辆管理服务,通过车载***为驾驶员和乘客提供多种服务和信息,提高了驾驶员和乘客的出行体验和安全性。
基于图1所示的车辆控制的软件架构***,通过包括板级支持包和虚拟化平台的硬件抽象层来对底层的硬件驱动进行封装,从而实现软硬件解耦,在中间层通过汽车开放***架构和安卓***提供标准化的应用程序编程接口,从而使得软件的可在软硬件解耦下形成统一的规范和开发方式,提高了该软件架构***下软件的迁移性,降低了软件的开发成本和维护成本。
图2为本说明书中一种车辆控制的软件架构***详细示意图,由图2可见,对硬件平台之上,本说明书中车辆控制的软件架构***中的各层可包含的内容进行了展示。
对于硬件平台,MCU(Microcontroller Unit,微控制器单元)是一种集成了处理器核心、内存、输入/输出接口和其他外设的单芯片微控制器。它通常被用作嵌入式***的控制器,用于控制和管理各种设备和***。I/O(输入/输出)接口用于将计算机***与外部设备进行通信。它允许***从外部设备读取输入数据,或将***的输出发送到外部设备。CPU(Central Processing Unit,中央处理器)是计算机硬件平台中的核心组件,负责执行指令并进行数据处理。IAAS(Infrastructure as a Service,基础设施即服务)是一种云计算服务模型,它提供了虚拟化的计算资源,包括计算、存储和网络等基础设施,以供用户按需使用。Cloud Server(云服务器)是IAAS的一种应用,它是在云计算平台上提供的虚拟化的计算资源。
硬件抽象层可通过Hypervisor或BSP Drivers对硬件驱动进行封装,然后通过QNX或Linux或Android Automotive OS进行进一步封装,进而通过POSIX或OS进行硬件抽象层最终的封装。当然也可通过RTOS直接对Hypervisor或BSP Drivers进行封装。
其中,QNX是一种实时操作***,广泛应用于嵌入式***和实时应用领域。它具有高度可预测性和可靠性,能够在严格的时间约束下保证任务的执行。QNX还提供了分布式架构和微内核设计,以支持多任务管理和可靠性要求较高的应用。Linux是一种开源的类Unix操作***,广泛应用于各种硬件平台和设备。它具有良好的可移植性和可定制性,可以根据需求进行定制和配置。Linux提供了丰富的软件包和开发工具,以支持各种应用程序的开发和部署。Android Automotive OS是基于Android平台的车载操作***,专门设计用于汽车领域。它提供了车载导航、娱乐***、车辆控制等功能,以提升驾驶体验和车辆性能。POSIX(Portable Operating System Interface for Unix)是一种标准化的操作***接口,用于提供对Unix和类Unix操作***的兼容性。OS操作***(Operating System)是计算机***中的核心软件,负责管理和控制计算机的硬件资源和软件环境。RTOS(Real-Time OperatingSystem,实时操作***)是一种专门设计用于实时应用的操作***。
中间件层可以是Class AutoSAR或Adaptive AutoSAR或Android。
其中,Class Autosar是经典的汽车开放***架构,可以运行在微控制器(MCU)中,其中的中间层BSW有明显的上下层关系,一般应用在对实时性要求高、对功能安全要求高、对算力要求较低的场景中,如引擎控制、制动***等。具体可包括以下模块:
Diagnosis(诊断):AUTOSAR中的诊断模块用于监测和诊断汽车电子***的故障和异常情况。它提供了故障码的生成和解析、故障状态的管理和报告、诊断通信的协议和接口等功能。诊断模块可以帮助车辆制造商和维修技术人员快速定位和修复故障。
NVM(Non-Volatile Memory,非易失性存储器):AUTOSAR中的NVM模块用于管理和操作车辆的非易失性存储器,如闪存或EEPROM。它提供了数据的读取、写入和擦除操作,以及数据的备份和恢复功能。NVM模块可以用于存储车辆的配置数据、故障码、日志信息等重要数据。
Network Management(网络管理):AUTOSAR中的网络管理模块用于管理车辆电子***之间的通信网络。它提供了网络拓扑的配置和管理、通信通道的建立和维护、数据传输的调度和控制等功能。网络管理模块可以帮助车辆电子***之间实现可靠的数据通信和协作。
Calibration(校准):AUTOSAR中的校准模块用于对车辆电子***的参数和配置进行校准和调整。它提供了参数的读取、修改和保存功能,以及校准数据的管理和版本控制。校准模块可以帮助车辆制造商和维修技术人员对车辆电子***进行精确的调试和优化。
Functional Safety(功能安全):AUTOSAR中的功能安全模块用于实现车辆电子***的安全性和可靠性要求。它提供了故障检测和容错机制、安全性分析和评估、故障处理和恢复等功能。功能安全模块可以帮助车辆电子***在发生故障时保持安全和可控。
对于Adaptive AutoSAR,它是自适应的汽车开放***架构,可以运行在高性能处理器(MPU)、CPU和虚拟硬件等上,其中的中间层都不是上下层关系,一般应用再对实时性有一定要求、对功能安全有一定要求,对算力要求较高的场景中,如自动驾驶、人工智能等。具体可包括以下模块:
Dynamic Application Deployment(动态应用部署):Adaption AUTOSAR中的动态应用部署模块用于实现汽车电子***的动态配置和部署。它提供了应用程序的加载、卸载和更新功能,以及应用程序之间的通信和协作机制。动态应用部署模块可以帮助车辆制造商和维修技术人员实现快速的***配置和更新。
Service Oriented Communication(面向服务的通信):Adaption AUTOSAR中的面向服务的通信模块用于实现汽车电子***之间的通信和协作。它提供了基于服务的通信模型和协议,以实现服务的发现、绑定和调用。面向服务的通信模块可以帮助车辆电子***之间实现高效、可靠的通信和协作。
Network Management(网络管理):Adaption AUTOSAR中的网络管理模块用于管理车辆电子***之间的通信网络。它提供了网络拓扑的配置和管理、通信通道的建立和维护、数据传输的调度和控制等功能。网络管理模块可以帮助车辆电子***之间实现可靠的数据通信和协作。
Health Management(健康管理):Adaption AUTOSAR中的健康管理模块用于监测和诊断汽车电子***的健康状态。它提供了故障检测和诊断、健康状态的管理和报告、健康管理策略的配置和执行等功能。健康管理模块可以帮助车辆制造商和维修技术人员实现对车辆电子***的实时监测和维护。
System Services(***服务):Adaption AUTOSAR中的***服务模块用于提供通用的***服务和功能。它包括时间管理、内存管理、任务管理、安全管理等多个子模块,以支持汽车电子***的运行和管理。***服务模块可以帮助车辆制造商和维修技术人员实现对车辆电子***的高效管理和控制。
DOIP(Diagnostics over IP):Adaption AUTOSAR中的DOIP模块用于实现基于IP网络的诊断功能。它提供了诊断通信协议和接口,以支持故障码的生成和解析、诊断数据的读取和写入等功能。DOIP模块可以帮助车辆制造商和维修技术人员实现对车辆电子***的远程诊断和维护。
Cyber Security(网络安全):Adaption AUTOSAR中的网络安全模块用于保护车辆电子***免受网络攻击和威胁。它提供了加密、认证、访问控制、安全监测等多个安全机制和功能,以保护车辆电子***的数据和通信安全。网络安全模块可以帮助车辆制造商和维修技术人员实现对车辆电子***的安全保护和管理。
对于Android,它是一个基于Linux内核的开源操作***,主要用于移动设备和嵌入式***。它由Google开发,提供了丰富的应用程序和服务,包括应用商店、地图、音乐、视频等。具体可包括以下模块:
Frameworks:Android框架是构建Android应用程序的核心组件。它提供了丰富的API和服务,包括活动管理、窗口管理、资源管理、通知管理等。
Dalvik VM:Dalvik虚拟机是Android***中的核心组件之一,负责执行Android应用程序的字节码。它采用了即时编译技术,将应用程序的字节码转换为机器码,以提高执行效率。
JNI(Java Native Interface):JNI是Java本地接口,用于在Java代码和本地代码(如C/C++代码)之间进行交互。它允许开发者使用本地代码来访问底层***功能和硬件资源。
Native Binaries是指以机器码形式编译的可执行文件,通常是由C/C++代码编写的。在Android***中,一些核心组件和应用程序会使用Native Binaries来提供更高的性能和更底层的访问能力。
Native Libraries是一组预编译的库文件,包含了C/C++代码的实现。它们提供了一些底层的***功能和硬件访问接口,供应用程序使用。
Bionic是Android***中的C库,用于替代标准的GNU C库(glibc)。Bionic库是专为嵌入式***和移动设备设计的,具有更小的内存占用和更高的性能。
HAL是硬件抽象层,提供了一组标准的接口和驱动程序,用于访问底层硬件设备。它将硬件设备的具体实现细节隐藏起来,使上层应用程序可以通过统一的接口来访问不同的硬件设备。
基础服务层可包括整车域服务、座舱域服务、自动驾驶域服务以及车云协同域服务四种域核心服务。以及包括电源管理服务、网络设置服务、健康管理服务、时钟服务、升级服务、软件包版本管理服务、测试服务、安全服务、***资源查询服务以及数据采集服务。
整车域服务可包括:整车远程诊断、车辆状态监测、车辆远程控制、车辆定位和防盗等。
座舱域服务可包括:车内娱乐和信息***、车内环境控制、座椅调节和记忆功能、车内智能交互等。
自动驾驶域服务可包括:自动驾驶功能、环境感知和决策、车辆安全监控、数据共享和协同等。
车云协同域服务可包括:车辆远程管理、车辆云端数据分析、车辆云端升级和维护、车辆与云端的通信等。
业务应用层可包括车端应用、车云协同平台以及车云协同应用。
其中的车端应用可以是,例如车型切换、辅助驾驶、语音播报、人机交互、第三方算法、界面操作、远程升级等车辆管理服务。以整车数据上报功能为例,可由车端应用将数据采集服务采集到的整车数据,通过平台协议808协议等上报到车云协同平台。
车云协同平台可包括大数据管理、CP(内容提供商,Content Provider)/SP(Service Provider,服务提供商)聚合管理、智能化场景管理和平台接口管理等。以大数据管理为例,可由车云协同平台对车端应用上报的数据进行大数据处理。
车云协同应用可包括智能电池管理、智能车身控制、智能动力控制以及云端自动驾驶管理等。以智能车身控制为例,可由车云协同应用将所需的数据从平台中提取出来进行分析,得到整车的当前状态以判断如何控制车身。
本说明书还提供了一种车辆控制的软件架构***应用示意图,如图3所示,可将硬件抽象层封装的底层驱动(MCAL)配置的接口,用于和中间件层之间的连接,提供底层驱动的配置接口给AUTOSAR或Android平台使用。以及将中间件层封装的RTE接口,用于和基础服务层之间的连接,提供接口给各基础服务模块使用。还可将基础服务层封装的ADK接口,用于和业务应用层之间的连接,提供接口给业务应用层使用。
图4为本说明书中一种车辆控制的软件开发方法流程示意图,具体包括以下步骤:
S101:根据用户需求确定业务应用层中业务应用程序的功能,并对业务应用程序对应的高级驾驶辅助***的实现逻辑进行开发。
S102:根据业务应用程序对应的高级驾驶辅助***的实现逻辑,确定对应于基础服务层的多个服务接口功能,对各服务接口功能进行开发。
S103:根据服务接口功能,确定中间件层以及对中间件层的应用程序编程接口进行配置。
S104:根据中间件层的应用程序编程接口对硬件抽象层的底层驱动进行配置,完成车辆控制的软件开发。
以用户需求为针对一款集成式终端设备实现云端驾驶功能为例进行说明,如图5所示。图5为本说明书中一种软件开发示例示意图。首先可根据用户需求制定业务应用层中业务应用程序的任务功能,可通过车云协同应用实现云端驾驶管理,通过车云协同平台实现大数据、智能化场景管理等,通过车端应用实现高级驾驶辅助***(Advanced DrivingAssistance System,ADAS)逻辑等。然后根据ADAS逻辑确定所需自动驾驶服务、车云协同服务、网络管理等服务,用户可制定相应服务接口的接口文档,业务提供方可实现接口功能。然后根据服务选择合适的中间平台如Adaptive Autosar,配置满足服务接口的Autosar标准接口。然后由硬件抽象层配置满足上述Autosar功能的硬件抽象层接口MCAL。最后选择可以实现硬件抽象层最优的硬件平台,输出硬件设计方案。
基于图4所示的车辆控制的软件开发方法,通过应用软硬件解耦的软件***架构,可在软件开发过程中避免硬件基座的不同而导致的软件迁移问题,从而从顶层至底层逐层开发配置即可,降低了软件的开发成本和维护成本。
在应用本说明书提供的车辆控制的软件开发方法时,可不根据图1所示的各步骤的顺序执行,具体各步骤的执行顺序可根据需要确定,本说明书对此不做限制。
此外,在本说明书一个或多个实施例中,还可根据硬件设计方案,及软件架构***中各层对应如A、B、C等等业务提供方各种综合评估,选择每一层对应开发的业务提供方,最终并行高效的完成软件开发。
以上为本说明书的一个或多个实施例提供的车辆控制的软件开发方法,基于同样的思路,本说明书还提供了相应的车辆控制的软件开发装置,如图6所示。
图6为本说明书提供的一种车辆控制的软件开发装置示意图,包括:
逻辑开发模块201,用于根据用户需求确定业务应用层中业务应用程序的功能,并对业务应用程序对应的高级驾驶辅助***的实现逻辑进行开发;
服务开发模块202,用于根据业务应用程序对应的高级驾驶辅助***的实现逻辑,确定对应于基础服务层的多个服务接口功能,对各服务接口功能进行开发;
接口配置模块203,用于根据服务接口功能,确定中间件层以及对中间件层的应用程序编程接口进行配置;
驱动配置模块204,用于根据中间件层的应用程序编程接口对硬件抽象层的底层驱动进行配置,完成车辆控制的软件开发。
关于车辆控制的软件开发装置的具体限定可以参见上文中对于车辆控制的软件开发方法的限定,在此不再赘述。上述车辆控制的软件开发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的车辆控制的软件开发方法。
本说明书还提供了图7所示的计算机设备的结构示意图,如图7所述,在硬件层面,该计算机设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1提供的车辆控制的软件开发方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
Claims (10)
1.一种车辆控制的软件架构***,其特征在于,包括:
硬件抽象层,包括板级支持包或虚拟化平台、操作***,板级支持包或虚拟化平台用于对硬件平台对应的硬件驱动进行封装,为操作***提供硬件解耦的软件平台;
中间件层,用于基于操作***通过汽车开放***架构或安卓***,为基础服务层的软件开发和软件运行提供标准化的应用程序编程接口;
基础服务层,通过南向接口与中间件层进行通信,以及通过北向接口与业务应用层进行通信,用于将应用程序编程接口进行封装形成基础功能服务;
业务应用层,用于根据用户需求,基于基础功能服务进行软件开发形成车辆控制的业务应用程序。
2.如权利要求1所述的车辆控制的软件架构***,其特征在于,所述汽车开放***架构将车辆设备进行封装形成标准化的软件架构,使不同的车辆设备进行协作,为基础服务层的软件开发和软件运行提供标准化的应用程序编程接口。
3.如权利要求1所述的车辆控制的软件架构***,其特征在于,所述基础服务层根据服务控制粒度进行层级划分,所述基础服务层包括多个域核心服务,每个域核心服务包括多个***级服务。
4.如权利要求3所述的车辆控制的软件架构***,其特征在于,所述***级服务将中间件层提供的标准化的应用程序编程接口进行封装;所述***级服务包括电源管理服务、网络设置服务、健康管理服务、升级服务、时钟服务、安全服务、测试服务、版本管理服务、***资源查询服务以及数据采集服务。
5.如权利要求3所述的车辆控制的软件架构***,其特征在于,所述域核心服务为对***级服务进行划分得到;所述域核心服务包括功能域服务、整车域服务、座舱域服务、自动驾驶域服务、能量管理域服务、车云协同域服务。
6.如权利要求1所述的车辆控制的软件架构***,其特征在于,所述业务应用层根据业务应用程序的应用领域不同进行划分;
所述业务应用层包括车端应用、车云协同平台和车云协同应用;
所述车端应用对基础服务层提供的多种基础功能服务进行封装,用于基于车辆为驾驶用户提供多种车辆管理服务;
所述车云协同平台,用于为车云协同应用提供平台接口管理、大数据管理和智能化场景管理;
所述车云协同应用,用于基于智能车身控制、智能动力控制和云端无人驾驶,为驾驶用户提供多种车辆控制服务。
7.一种基于权利要求1~6任一项所述的车辆控制的软件架构***的车辆控制的软件开发方法,其特征在于,包括:
根据用户需求确定业务应用层中业务应用程序的功能,并对业务应用程序对应的高级驾驶辅助***的实现逻辑进行开发;
根据业务应用程序对应的高级驾驶辅助***的实现逻辑,确定对应于基础服务层的多个服务接口功能,对各服务接口功能进行开发;
根据服务接口功能,确定中间件层以及对中间件层的应用程序编程接口进行配置;
根据中间件层的应用程序编程接口对硬件抽象层的底层驱动进行配置,完成车辆控制的软件开发。
8.一种车辆控制的软件开发装置,其特征在于,包括:
逻辑开发模块,用于根据用户需求确定业务应用层中业务应用程序的功能,并对业务应用程序对应的高级驾驶辅助***的实现逻辑进行开发;
服务开发模块,用于根据业务应用程序对应的高级驾驶辅助***的实现逻辑,确定对应于基础服务层的多个服务接口功能,对各服务接口功能进行开发;
接口配置模块,用于根据服务接口功能,确定中间件层以及对中间件层的应用程序编程接口进行配置;
驱动配置模块,用于根据中间件层的应用程序编程接口对硬件抽象层的底层驱动进行配置,完成车辆控制的软件开发。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求7所述的方法。
10.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311839464.7A CN117492730A (zh) | 2023-12-29 | 2023-12-29 | 一种车辆控制的软件架构***及软件开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311839464.7A CN117492730A (zh) | 2023-12-29 | 2023-12-29 | 一种车辆控制的软件架构***及软件开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117492730A true CN117492730A (zh) | 2024-02-02 |
Family
ID=89685268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311839464.7A Pending CN117492730A (zh) | 2023-12-29 | 2023-12-29 | 一种车辆控制的软件架构***及软件开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492730A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981434A (zh) * | 2019-03-25 | 2019-07-05 | 华勤通讯技术有限公司 | 一种车载智能*** |
CN113253710A (zh) * | 2021-06-16 | 2021-08-13 | 奥特酷智能科技(南京)有限公司 | 一种区块网关电控单元的控制软件实现架构 |
CN114200873A (zh) * | 2022-02-17 | 2022-03-18 | 北京清研宏达信息科技有限公司 | 基于soa架构的模块化车载智能控制软件***及控制方法 |
CN115113603A (zh) * | 2022-06-01 | 2022-09-27 | 阿尔特汽车技术股份有限公司 | 用于车辆的电气架构***及车辆 |
CN116153058A (zh) * | 2022-09-23 | 2023-05-23 | 东风悦享科技有限公司 | 一种基于三层四级架构的智能网联汽车云控*** |
WO2023124597A1 (zh) * | 2021-12-30 | 2023-07-06 | 比亚迪股份有限公司 | 车辆开发平台、域控制器、整车控制***及车辆 |
CN116450082A (zh) * | 2023-04-13 | 2023-07-18 | 成都赛力斯科技有限公司 | 一种座舱域控制器及其软件架构、智能座舱***及车辆 |
-
2023
- 2023-12-29 CN CN202311839464.7A patent/CN117492730A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981434A (zh) * | 2019-03-25 | 2019-07-05 | 华勤通讯技术有限公司 | 一种车载智能*** |
CN113253710A (zh) * | 2021-06-16 | 2021-08-13 | 奥特酷智能科技(南京)有限公司 | 一种区块网关电控单元的控制软件实现架构 |
WO2023124597A1 (zh) * | 2021-12-30 | 2023-07-06 | 比亚迪股份有限公司 | 车辆开发平台、域控制器、整车控制***及车辆 |
CN114200873A (zh) * | 2022-02-17 | 2022-03-18 | 北京清研宏达信息科技有限公司 | 基于soa架构的模块化车载智能控制软件***及控制方法 |
CN115113603A (zh) * | 2022-06-01 | 2022-09-27 | 阿尔特汽车技术股份有限公司 | 用于车辆的电气架构***及车辆 |
CN116153058A (zh) * | 2022-09-23 | 2023-05-23 | 东风悦享科技有限公司 | 一种基于三层四级架构的智能网联汽车云控*** |
CN116450082A (zh) * | 2023-04-13 | 2023-07-18 | 成都赛力斯科技有限公司 | 一种座舱域控制器及其软件架构、智能座舱***及车辆 |
Non-Patent Citations (2)
Title |
---|
杨聪 等编著: "智能座舱开发与实践", 28 February 2022, 机械工业出版社, pages: 20 - 21 * |
王安军;蒋建春;陈培然;: "符合AUTOSAR规范的底层驱动软件开发", 计算机工程, no. 09, 5 May 2011 (2011-05-05) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kum et al. | AUTOSAR migration from existing automotive software | |
CN111338315B (zh) | Autosar中的虚拟电子控制单元 | |
US20130103379A1 (en) | Apparatus and method for verifying interoperability between application software and autosar service | |
CN114338680A (zh) | 用于在计算设备中相对于服务水平协议来管理服务质量的方法和装置 | |
CN111611022B (zh) | 小程序应用的数据处理方法、装置、设备及*** | |
US12026549B2 (en) | Control unit for a vehicle and an operating system scheduling method thereof | |
WO2023098536A1 (zh) | 一种运行进程的方法及装置 | |
Anthony et al. | Towards a dynamically reconfigurable automotive control system architecture | |
CN116069648A (zh) | 一种软件测试方法、***、设备以及存储介质 | |
Staron et al. | Autosar standard | |
Sandhya Devi et al. | AUTOSAR architecture based kernel development for automotive application | |
Bucaioni et al. | Modelling multi-criticality vehicular software systems: evolution of an industrial component model | |
CN109932588B (zh) | 一种航电设备验证测试引擎 | |
Mundhenk et al. | Reliable distributed systems | |
Cebotari et al. | On the nature of automotive service architectures | |
AU2021308570A1 (en) | Pool management for in-vehicle device application startup | |
Frtunikj et al. | A safety aware run-time environment for adaptive automotive control systems | |
Yu et al. | The Digital Foundation Platform--A Multi-layered SOA Architecture for Intelligent Connected Vehicle Operating System | |
CN117492730A (zh) | 一种车辆控制的软件架构***及软件开发方法 | |
CN114691234B (zh) | 基于autosar的程序配置方法、***、设备及介质 | |
CN116360768A (zh) | 一种软件集成装置、方法、电子设备及存储介质 | |
US20220012149A1 (en) | Stable transformations of networked systems with automation | |
Bucaioni et al. | From low-level programming to full-fledged industrial model-based development: the story of the Rubus Component Model | |
Staron et al. | AUTOSAR (automotive open system architecture) | |
Buttle et al. | MCUs and Virtualization in Zone E/E Architectures |
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 |