您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
   
 
 订阅
一文了解汽车功能开发要做什么?怎么做?
 
作者:YiXing Course
   次浏览      
 2024-9-4
 

编辑推荐:
本文主要介绍了汽车功能开发要做什么及怎么做相关内容。希望对您的学习有所帮助。
本文来自于微信公众号谦益行,由火龙果软件Linda编辑、推荐。

曾经为了经历汽车功能软件开发的闭环,放弃了不错的软件开发机会而去了主机厂做功能开发,即FO(Function Owner),虽然所做的时间不长,但是收获颇多,写下来记着,也在此分享给有需要的人。

1 什么是功能开发

功能开发是FO的职责,主要内容如下描述:

为了更好地理解功能开发是什么,需要从整理功能开发过程说起,整车功能开发通常从市场分析开始,然后制定出满足市场需要的VTS,进而用SSTS描述抽象的逻辑关系,再由CTS说明实现方案,最后由零部件供应商具体落地实现。它们之间的关系如下示意:

VTS(vehicle technical specification),即整车技术规范,主要描述车辆与使用者的交互关系以及性能目标。

SSTS(sub system technical specification),即子系统技术规范,描述应用场景分析、信号交互和功能控制逻辑等。

CTS(component technical specification),即零部件技术规范,描述零部件供应商所需提供的控制器设计原理,包含控制芯片要求、电气原理图、控制功能逻辑、通讯诊断和休眠唤醒等内容。

其中,SSTS主要以子系统为中心,由多个控制器共同实现,而CTS主要以控制器为中心。CTS通常由零部件供应商提供或确认,其内容必须满足各SSTS中的需求内容。

所谓功能开发主要围绕着SSTS的内容进行,即应用场景分析,功能控制逻辑和通讯等内容,下面就以纯电动车动力总成系统的充电功能为例展开详细介绍。

2 怎么做功能开发

充电功能除了大家所熟知的交流充电(慢充)、直流充电(快充),交流放电(V2L),还包括预约充电,交流/直流桩供电以及V2V等功能。这里就借助交流充电来解释功能开发。

2.1 应用场景分析

用户的感知通常是插上交流枪,然后就开始充电了,在车的大屏或者手机端就可以看到当前的电量,充电剩余时间,充电电流和充电电压等信息。

source: Current Trends in EV Charging Infrastructure; Opportunities and Challenges

假如正在充电中,用户可能不想充了,那么可以在手机APP端或车的大屏点击相应的按钮来停止充电,甚至可能可以长按充电口盖或充电桩APP端的按钮来停止。

以上这些用户所能看到的信息和进行的操作,就属于功能开发的范畴,在SSTS中定义了用户可以看到哪些交流充电信息,允许用户能够进行哪些操作来影响交流充电功能,这就是功能开发的应用场景分析主要内容之一。

另外,应用场景分析还需要综合起来考虑用户行为,使得用户操作之后产生的现象符合预期,即各种行为交叠的时候,其交互逻辑不会产生冲突。比如正在交流充电过程中,用户通过手机APP端停止充电,但是又通过车的大屏再次启动充电,那么相应的现场应该是先停止充电,而后又进入充电。

除此之外,应用场景分析还需要结合一些典型的功能场景(比如交流充电,有使用公用充电桩充电,也有使用自己的专属的充电桩充电)来全面考虑,总之,从充电桩,手机APP端,车的大屏端以及充电口盖等因素综合分析之后,对产品功能有了全面的理解和清晰的定义,再来制定相应的功能控制策略。

2.2 功能控制逻辑

要制定好功能的控制策略或逻辑,必须要掌握一些基础知识,比如针对交流充电功能:

需要了解交流充电的基本过程,比如先通过CC电阻值识别充电枪的连接状态,再通过CP了解交流充电的进行状态等,具体可参考GB-18487。

需要了解整车电子电器架构,交流充电会涉及到哪几个控制器,比如动力总成系统的BMS,VCU和OBC等,其他总成系统的HMI和TBOX等;另外也需要知道各控制器分别承担哪些工作;比如OBC需要识别充电枪的连接状态,需要控制继电器以决定是否进行交流充电;BMS需要控制主正主负继电器上高压,也需要根据电池状态请求是否充电等。

需要了解整车网络拓扑,以决定信号交互怎样定义。

需要了解各个控制器的故障等级所对应的产品工作状态,比如BMS的1级别故障意味着BMS将断高压,停止工作。

source: EV charging configuration at AC level 1 and 2 setup

在上述的基础上,接下来就是制定功能的控制逻辑,即定义各个控制器的信息交互时序和逻辑,比如针对典型的交流充电功能,其控制时序如下图示意:

既需要考虑正常情况下的功能控制(进入,保持和退出),也需要考虑故障情况下的功能控制(退出和后处理措施)。同时也需要定义HMI相关的内容,比如交流充电过程中,手机APP端和车的大屏显示什么内容,充电口的指示灯是否根据电量显示不同的颜色,以更好地体现充电的实时状态,以及是否需要有一些语音提示。除此之外,定义好用来进行该功能的信号交互的通讯矩阵,以此形成较完善的功能开发规范,即SSTS。

2.3 功能开发的关键点

关于功能开发的关键点,一方面得从SSTS说起,因为功能开发的最终交付物就是SSTS,SSTS明确规定了各个控制器需要做什么。既然规定了各个控制器需要做什么,那么前提是他们得知道为什么要这么做,所以第一个关键点:

首先就是需要与各个控制器的相关人员深入沟通,让他们知道你想做什么,然后基于他们的现状,你怎么做才是最好的方案,通过几个轮回的沟通与对齐,最终与各个控制器思想统一,理解在同一水平,再去落实到纸面的SSTS上。

source:Communication is the solvent of all the problems and is the foundation of personal development.

当确认好了实现的方案,接着第二个关键点:亲自去测试验证,杜绝眼高手低,停留在纸面SSTS上,尤其新手入门,测试是快速入门的必经途径。一方面针对功能需求定义好测试用例,另一方面可以通过台架或者实车自己去实践测试。基于测试结果分析在产品功能维度是否存在缺陷,以及在控制逻辑是否存在缺陷。

最后一个关键点:问题分析与解决,碰到问题是宝贵的财富,去分析问题本身就是最快速地了解整个功能,最迅速提炼出最主要的逻辑;以及找到问题点之后,如何协调来解决问题是很有“意思”也很有挑战的事情。

source: Planning for a Successful Document Collection

总而言之,沟通和实践是功能开发的两把强大的利器。除此之外,有想法也是至关重要的一点,就如为什么预约充电最开始是特拉斯做出来的,而不是其他OEM呢?做功能开发不能仅仅跟随,最好是自己能够玩出点花样。

就我做功能开发时,当我听说我们经常碰到两个问题:

问题1:控制策略的缺陷前期未识别出来,后期发现后需要时间来修改,导致交付压力问题特别大。

问题2:功能测试因为某个控制器无法如约交付,导致功能测试受阻,从而也影响交付。

基于我软件开发的背景,找到一个虚拟控制器系统的技术方案,不仅可以来助力解决这两个问题,而且还能构建整个动力总成系统的功能仿真与开发平台,以此支持纯虚拟和虚实结合的玩法。我觉得这也是功能开发的关键点,决定能否将功能开发的技术性提升几个维度。

参考:虚拟控制器(virtual ECU)到底有什么价值?

3 小结

以上就是个人对于功能开发的一点认识,写到此处,突然发现原来老板这么有技术野心,后面谈了几家,再也没碰到有此想法的。FO应该不仅仅要把功能开发做成一项高质量交付的工作,还要把功能开发做成一个技术含量高的活,好像以前在比亚迪有此类似的感觉。

本来我布局功能开发要干两个闭环:一个是功能开发与通讯和诊断;另一个是功能开发的仿真与测试。

以上有些内容已经介绍过了,链接如下:

一文了解汽车故障诊断的几个层级 (qq.com)

一篇易懂的整车网络管理指南 (qq.com)

虚拟控制器(virtual ECU)到底有什么价值?

另外,通讯可以参考CAN通讯系列文章。

所以我觉得如果做功能开发,先建立了一个宏观的技术概念与布局,然后再不断地实践每一项,同时也在不断磨练自己的沟通组织协调等软实力,应该会有一个不错的职业发展机会。

 

 

   
次浏览       
 
相关文章

CMM之后对CMMI的思考
对软件研发项目管理的深入探讨
软件过程改进
软件过程改进的实现
 
相关文档

软件过程改进框架
软件过程改进的CMM-TSP-PSP模型
过程塑造(小型软件团队过程改进)
软件过程改进:经验和教训
 
相关课程

以"我"为中心的过程改进(iProcess )
iProcess过程改进实践
CMMI体系与实践
基于CMMI标准的软件质量保证

最新活动计划
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
LLM大模型应用与项目构建 12-26[特惠]
UML和EA进行系统分析设计 12-20[线上]
数据建模方法与工具 12-3[北京]
SysML建模专家 1-16[北京]
 
 
最新文章
iPerson的过程观:要 过程 or 结果
基于模型的需求管理方法与工具
敏捷产品管理之 Story
敏捷开发需求管理(产品backlog)
Kanban看板管理实践精要
最新课程
基于iProcess的敏捷过程
软件开发过程中的项目管理
持续集成与敏捷开发
敏捷过程实践
敏捷测试-简单而可行
更多...   
成功案例
英特尔 SCRUM-敏捷开发实战
某著名汽车 敏捷开发过程与管理实践
北京 敏捷开发过程与项目管理
东方证券 基于看板的敏捷方法实践
亚信 工作量估算
更多...