汽车控制器基础知识

1 模型到汽车控制器

        汽车控制器应用软件开发通常采用基于模型设计的方法来实现,多数的应用软件开发人员基本只关注Simulink模型层面的内容,而不会去关注模型生成的代码是怎样的以及代码又是如何在控制器运行等问题。实际上,作为应用软件开发人员,弄清楚这些问题十分必要,会对其职业发展有很大的促进作用。因此,本文试图来基础科普一下。

1.1 模型如何在汽车控制器上运行

  1. 模型创建:用户根据确定的逻辑或算法需求,使用Simulink拖拽和连接图形块,创建模型,并配置数据字典。随后,用户可以使用Simulink模型规范工具检查是否满足,若有违背则进行更新优化;再利用simulink仿真环境进行测试,确认所建立的模型的正确性,实现目标的需求。
  2. 代码生成:进行Simulink代码生成配置,然后自动生成 C 代码,并保存为 .c 和.h 文件。
  3. 代码编译:在代码生成好之后,接下来是编译代码的过程,即将 C 代码转换为机器代码。可以使用编译器(如 GCC)进行编译,以生成 .o 文件。
  4. 链接:在编译过程中,需要进行链接。链接是将各个 .o 文件连接到一起,以生成可执行文件的过程,比如汽车控制器常用hex 格式或者s19 格式的可执行文件。
  5. 烧写:在生成可执行文件之后,接下来是烧写过程。烧写是将可执行文件刷写到控制器的内存中,以便控制器可以读取并执行这些代码。
  6. 控制器运行:在烧写完成之后,控制器就可以读取并执行代码。控制器读取内存中的代码,并对其进行解释,以执行相应的操作。

        以上是simulink模型最终如何到汽车控制器运行的整个过程。若想详细了解整个过程,又愿意亲自写代码实践的话,推荐这个课程及这门课程对应的教材:

依据基本原理构建现代计算机:从与非门到俄罗斯方块(基于项目的课程)icon-default.png?t=N7T8https://www.bilibili.com/video/BV1eM4y1u73Q/?share_source=copy_web&vd_source=e9396b3f86a25ef7c8d9bb709b7ccdc5

计算机系统要素:从零开始构建现代计算机icon-default.png?t=N7T8https://item.jd.com/10066491.html?cu=true&utm_source=zhuanlan.zhihu.com&utm_medium=tuiguang&utm_campaign=t_1001542270_1002781820_4000134509_3001572321&utm_term=a4897b108a594282b3c6b4e87065cf7c

1.2 汽车控制器的软硬件

        控制器运行通过一些电路和电子元件实现,如下所图所示,其实可以将从两个维度来理解汽车控制器,即软件层面和硬件层面。

汽车控制器基础知识_第1张图片 source: 计算机系统要素
  • 从硬件层面,以汽车驱动电机控制器来说,由以下组件组成:
  1. 微控制器:实现电机的控制和数字信号处理。
  2. 传感器:监测电机的工作状态,并对其进行实时监控。
  3. 驱动器:控制电机的转速和扭矩。
  4. 电源管理:管理电源的输入和输出,保证电机的正常工作。
  5. 通信接口:与其他控制器和计算机系统进行通信,实现数据交换和监控。
  6. 电路保护:保护电机和控制器免受电磁干扰和短路等损害。
  7. 外壳:保护内部组件,防止外界因素对其造成损害。

        以上组件组合在一起,可以实现对电机的高效控制,并保证电机的安全和稳定工作。

汽车控制器基础知识_第2张图片 source: website saled BWM i3 MCU
  • 从软件层面,主要在代码编译之前的阶段,即代码开发阶段,包括应用层软件,底层软件和Bootloader软件。
  1. 应用层软件:是汽车控制器的最顶层软件,主要负责处理用户的请求、接收来自硬件设备的数据、执行预定的动作,并对外呈现结果,通常采用基于模型设计的开发方法,采用simulink为主要的开发工具。
  2. 底层软件:是汽车控制器软件的基础设施,主要负责处理硬件的驱动、提供各种基础服务,支持上层软件的实现,通常采用AutoSAR架构及相对应的AutoSAR工具进行开发。
  3. Bootloader软件:是汽车控制器软件的一个特殊部分,在系统启动时首先被执行,主要负责检查硬件状态、加载操作系统以及升级软件等功能。它的作用类似于计算机中的BIOS软件。采用手写C代码进行开发。

1.3 汽车控制器有哪些

        汽车控制器,也称汽车电子控制器,即ECU(Electronic Control Unit),利用传感器、执行器、总线等操控车辆所有的电子设备和汽车行驶状态,承担决策功能。常见的汽车控制器包括:

  1. 汽车发动机控制器:负责控制发动机的运转,包括燃油供应、点火时序和排气系统。
  2. 电机控制器:负责控制电机的转速和扭矩。
  3. 变速器控制器:负责控制车辆的动力传输,如变速器和驱动轴。
  4. 车身控制器:负责控制车辆的安全系统,如刹车、安全气囊和车辆稳定性控制系统。
  5. 电池管理系统控制器:负责监测和控制电动汽车的电池系统。
  6. 车联网控制器:负责控制和监测车辆的通信系统,如车载终端和道路数据采集系统。
  7. 汽车显示和娱乐系统控制器:负责控制车辆的显示和娱乐系统,如触摸屏显示和音响系统。

        汽车的功能越复杂,其车型搭载 ECU 数量越多,豪华车装配的 ECU 数量 达到 100+。以奥迪 A8 为例,ECU 数量从 1993 年的 5 个快速上升到 2010 年的 100 个。这将会引发汽车电子电气架构的革命,总体趋势向着硬件数量减少,ECU 功能简化,算力向中央集中,未来向云端集中发展。博世提出了经典6阶段划分的电子电气架构,如下所示:

source:Bosch

        整个过程被分为三个大的步骤,分布式电子电气架构、跨域集中电子电气架构、车载电脑集中电子电气架构,六个阶段模块化,集成化,中央域化,跨域融合,车载中央电脑,车载云计算,逐步完成功能整合、多个独立网络内整合、中央网关协调通信、跨域功能整合,进一步通过中央域控制器进行降本,最后通过网络建立虚拟域或通过车载中央电脑甚至云计算,完成复杂功能的整合。

2 汽车控制器的V流程开发

        汽车控制器的V流程开发是一种专门用于汽车控制器开发的流程模型,包括了设计、开发、试验和认证等多阶段。V流程以V字形图表示,具有清晰的阶段和模块划分,便于团队整体控制和管理汽车控制器开发项目。如果从事汽车控制器开发方面的工作,这是必须具备的基本意识。

2.1 广义的汽车控制器开发V流程

        一般来说,汽车控制器开发的V流程包括以下几个阶段:

  1. 需求分析:团队对汽车控制器的需求进行分析,包括功能需求、性能需求、安全需求等。
  2. 概要设计:团队根据需求分析结果,初步设计汽车控制器的功能架构和性能要求。
  3. 详细设计与开发:团队进一步完善汽车控制器的设计,包括电路设计、软件设计、机械设计等。团队按照详细设计结果开发汽车控制器的电路和软件。
  4. 测试:团队对详细设计与开发进行测试,验证其正确性和有效性。
  5. 试验:团队对汽车控制器进行性能试验,包括功能试验、性能试验、安全试验等。
  6. 认证:团队将汽车控制器进行认证,以证明其符合相关标准和要求。

        这样汽车控制器通过了认证,那产品就可以量产。总的来说,V流程是一个系统的、有序的开发流程,能够有效地控制和管理汽车控制器开发项目,保证产品质量和按时交付。此外,团队还可以在V流程中使用各种工具和方法,例如版本控制、问题跟踪、代码审查等,以进一步提高项目效率和质量。

汽车控制器基础知识_第3张图片 source: 基于V流程的ECU开发工具链梳理 - 知乎

你可能感兴趣的:(汽车,mcu)