本发明涉及汽车领域,具体涉及一种汽车软件动态架构的设计方法。
背景技术:
1、智能汽车的迅速崛起,使得智能汽车中所包含的系统,例如自动驾驶、车辆互联性和先进的驾驶辅助系统,如自动刹车、车道保持辅助和自适应巡航控制系统不断地趋向于高智能化,汽车软件的功能越复杂,汽车的这些系统中包含的软件程序也就更加复杂,导致智能汽车的软件程序数据量庞大。例如,目前普通的中档电动汽车软件的代码数量在出厂时基本上已经达到1亿行的代码量(相当于波音飞机的代码量级)。
2、而且,由于ota功能的存在,允许汽车通过移动通信网络进行软件或固件的远程更新和下载。也就是说,在汽车生命周期内,随时随地都会面临软件功能的持续增加,智能汽车的软件程序数据量将呈指数增加。在如此巨量的程序数据上增加或者修改新的汽车软件的功能,必须要求汽车软件的构架能够实现各种功能组建的解耦,以便于程序员根据需求进行处理。
3、例如,在汽车动力域、底盘域中需要保证控制器输入信号响应的高实时性、高稳定性,所以在进行软件架构设计时,必须进行实时约束分析,然后再基于这些约束来定义汽车软件的进程和线程。
4、但是,国内的汽车软件架构师往往在设计汽车软件架构时,由于缺少系统的指导文件和设计流程,只能够依靠个人的经验来进行相关设计,往往会导致以下的问题:
5、① 由于在架构设计前没有对输入进行充分收集和约束分析,在后期的集成测试阶段一旦发现问题,只能做大量的重复工作来重新设计架构,费时费力;
6、② 汽车软件的架构设计过程的关键活动缺失,导致进程、线程的识别及其约束的分解分配不充分,或者在汽车软件的架构设计过程中没有论证进程分配到线程的合理性,使设计出的架构不合理,导致集成后的软件在运行时极易产生cpu负载率过高,或者任务阻塞等影响汽车软件实时性能的问题。
技术实现思路
1、本发明的目的是针对现有技术对应的不足,提供一种汽车软件动态架构的设计方法,在架构设计前对输入进行了充分的收集和约束分析,能够使设计出的软件动态架构满足实时约束,并在汽车软件的架构设计过程中论证了进程分配到线程的合理性,使设计出的架构合理,最大限度的避免了集成后的软件在运行时极易产生cpu负载率过高,或者任务阻塞等影响汽车软件实时性能的问题。
2、本发明的目的是采用下述方案实现的:一种汽车软件动态架构的设计方法,包括以下步骤:
3、1)基于软硬件接口和系统模式管理的输入识别所有的软件运行模式,并对各软件运行模式进行描述,同时将设计约束分解到每个软件运行模式中;
4、2)基于每个软件运行模式下的一组软件活动,识别出对应的软件功能模式进行描述,同时识别软件功能模式下所有的软件功能;
5、3)基于软件功能和设计约束识别出进程;
6、4)基于识别出的进程以及对应的实时约束,识别出用于调度进程的所有时序,并定义timebase;
7、5)基于timebase定义线程,将所有进程分配给对应的中断或任务;
8、6)基于不同进程对资源的访问,识别出共享资源;
9、7)定义每个软件功能模式下cpu负载率的测试方法和工具,并进行cpu负载率评估。
10、优选地,将设计约束分解到每个软件运行模式的方式包括:基于硬件约束定义多个软件运行模式,并设置各个软件运行模式之间相互切换的条件。
11、优选地,识别软件功能模式下所有的软件功能的方式包括:根据各软件运行模式所需的功能定义对应的软件功能模式,再根据系统层级的功能模式,将多个软件功能模式分配给同一个软件运行模式,并且通过状态机描述每一种软件运行模式下各软件功能模式之间的迁移以及对应的迁移条件,识别出每个软件功能模式下所有的软件功能。
12、优选地,基于软件功能和设计约束识别出进程的方式包括:
13、3-1)根据定义的软件功能和架构设计前识别的设计约束识别出进程,并将实时约束分配到进程,再估算每个进程的执行时间,最后检查每个进程的执行时间是否在响应时间之内;
14、3-2)根据各进程的执行时间计算每个场景下的cpu负载率,并将组建的服务分配到每个进程。
15、优选地,基于timebase定义线程的方式包括:
16、5-1)定义所有的中断以及各个中断对应的特性;
17、5-2)定义所有的任务以及各个任务对应的特性。
18、优选地,步骤5)中,将所有进程分配给对应的中断或任务之前,论证进程分配到线程的合理性,并按照论证的合理性进行进程的分配。
19、优选地,识别出共享资源的方式包括:如果资源由分配给不同线程或负责不同组建的进程访问,则该资源为共享资源,反之则该资源不为共享资源。
20、优选地,针对步骤6)中识别出的共享资源制定保护机制,避免任何访问冲突。
21、优选地,步骤7)中的cpu负载率评估是基于进程执行时间的评估。
22、优选地,所述硬件约束包括硬件供电电路约束、系统模式管理约束;所述软件运行模式包括休眠、唤醒和运行。
23、本发明的优点在于以下两点:
24、① 由于在架构设计前对输入进行了充分收集和约束分析,在后期的集成测试阶段几乎不会发现问题,不需要大量的重复工作来重新设计架构,省时省力;
25、② 根据汽车软件的架构设计过程的关键活动使进程、线程的识别及其约束的分解分配充分,而且在汽车软件的架构设计过程中论证进程分配到线程的合理性,使设计出的架构合理,最大限度的避免了集成后的软件在运行时极易产生cpu负载率过高,或者任务阻塞等影响汽车软件实时性能的问题。
26、名词解释:
27、aspice(automotive software process improvement and capacitydetermination):即automotive spice的缩写,是一种用于评估和改进汽车软件开发过程的国际标准。aspice旨在提高汽车软件开发过程的质量和效率,帮助汽车制造商和供应商评估和改进其软件开发过程,并在设计和开发过程中控制成本和风险。它定义了一组标准化的软件开发过程和最佳实践,适用于整个软件生命周期,包括需求工程、软件设计、编码、测试和维护等各个领域。
28、timebase:时间基准。
1.一种汽车软件动态架构的设计方法,其特征在于,包括以下步骤:
2.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,将设计约束分解到每个软件运行模式的方式包括:基于硬件约束定义多个软件运行模式,并设置各个软件运行模式之间相互切换的条件。
3.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,识别软件功能模式下所有的软件功能的方式包括:根据各软件运行模式所需的功能定义对应的软件功能模式,再根据系统层级的功能模式,将多个软件功能模式分配给同一个软件运行模式,并且通过状态机描述每一种软件运行模式下各软件功能模式之间的迁移以及对应的迁移条件,识别出每个软件功能模式下所有的软件功能。
4.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,基于软件功能和设计约束识别出进程的方式包括:
5.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,基于timebase定义线程的方式包括:
6.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,步骤5)中,将所有进程分配给对应的中断或任务之前,论证进程分配到线程的合理性,并按照论证的合理性进行进程的分配。
7.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,识别出共享资源的方式包括:如果资源由分配给不同线程或负责不同组建的进程访问,则该资源为共享资源,反之则该资源不为共享资源。
8.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,针对步骤6)中识别出的共享资源制定保护机制,避免任何访问冲突。
9.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,步骤7)中的cpu负载率评估是基于进程执行时间的评估。
10.根据权利要求1所述汽车软件动态架构的设计方法,其特征在于,所述硬件约束包括硬件供电电路约束、系统模式管理约束;所述软件运行模式包括休眠、唤醒和运行。