许多人想知道,VCU的开发过程在软件层面具体是怎样的。实际上,软件的开发环节十分关键,下面我将详细为大家阐述。
开发前的资料准备
做好工作,先得工具锋利。在软件开发的开始阶段,必要的指导文件一个都不能少。软硬件接口表能清楚地展示它们如何连接。整车的高低压电气图能让开发者明白车辆的电气布局。遵循CAN通信协议是软件和硬件交流的标准。详尽的功能策略文件为软件功能的实现指明了方向。具备这些,软件开发才能有序进行。
这些资料不仅是开发的基础,更是后续工作的关键依据。比如在设计硬件驱动时,必须参照接口表和原理图来调整。在制定通信规范时,必须严格遵循CAN通信协议,以保证软件和硬件间的稳定交流。
软件开发工作开启
有了之前的文件,软件开发工作正式开始。这项工作分为两个部分:底层和应用层。在底层,软件工程师的工作类似于建筑的基础工程,他们需要编写硬件驱动和协议栈。比如,常见的硬件驱动有DIO、ADC、PWM、CAN和LIN等,它们能够满足各种硬件设备的控制需求。而协议栈,如CCP和UDS等,则确保了系统间数据交互的安全可靠。
应用层软件工程师承担着更高级别的任务,他们负责将具体的功能策略在软件中建立模型。以汽车自动空调为例,这一功能就是通过建立模型来实现温度的自动调整。随后,他们会自动生成代码,从而使模型转化为可执行的程序。
底层与应用层软件集成
软件的底层部分和应用层部分制作完毕后,便进入了整合环节。在这一环节中,两者之间的交流主要通过全局变量和API接口进行。全局变量可以在不同的模块间传递信息。而API则是底层软件向应用层提供的调用方式。
这些接口使得底层软件与上层应用软件能够实现无障碍连接。比如,在汽车发动机的控制系统中,上层软件要获取底层传感器的信息,可以通过使用全局变量或调用应用程序接口(API)来完成。
代码测试与烧录
整合完毕,代码检验是必须的。重点执行硬件在环测试,模仿真实硬件条件,检验代码的精确与稳固。测试中,可能会遇到一些潜在问题,需立即进行修正。
汽车领域内,代码需持续调整和升级。此外,完成 VCU 后,不能通过串口进行封装烧录,只能借助 CAN 总线进行程序烧录。因此,在开发阶段,我们必须考虑烧录的便捷性。
VCU 开发核心工作 – 底层软件平台化
软件平台化后,底层应用对不同项目仅需简单调整即可使用。我们通常将项目特有的信息记录在 Excel 表格里,然后利用开发脚本进行读取。例如,不同车型的座椅调节功能各异,表格中会详细记录这些差异,脚本则会将这些信息以文本形式生成代码。目前,开发脚本工具种类繁多,包括 C# 和 VB 等多种语言。
这种方法显著提升了开发速度。以前,每个项目都得从头开始编写基础软件,而现在,大多数软件可以重复利用,只需对个别定制化部分进行修改。
VCU 开发核心工作 – 应用层及相关文件开发
在应用层模型开发过程中,为了提高抓取的 CAN 报文的价值,我们需要创建 dbc 文件来解析原始报文。这需要通过脚本读取 CAN 矩阵生成的代码来完成。在测量和标定阶段,A2L 文件至关重要,而在制作过程中,正确映射变量地址是至关重要的步骤。
一些基于 CAN 通信的协议栈同样值得关注。CCP 协议栈用于标定,查看其源码有助于理解对照协议。UDS 协议栈位于应用层,它与 CAN 通讯之间有遵循 ISO 协议的网络层。这个网络层规定了多帧传输的方式。下位机通过UDS协议执行数据写入,而上位机则承担解析文件和传输至单片机的任务。开发方面,既可利用WPF进行,也可在现有平台基础上进行拓展开发。
大家对 VCU 的开发流程中哪一部分最感兴趣?欢迎在评论区告诉我们。同时,别忘了点赞并分享这篇文章!