本书在介绍汽车电控模块开发规范AUTOSAR通用知识的基础上,通过重卡自动驾驶整车控制器项目,讲述了基于AUTOSAR和英飞凌TC275微控制器平台进行车载ECU 基础软件设计和集成的全过程。AUTOSAR分层架构的每个部分均从通用方法讲起,再通过具体的模块进行详细过程描述,步骤清晰,配图丰富,旨在让读者能够切实将书中的方法应用在实际项目中。书的最后简要介绍了AUTOSAR工具链对道路车辆功能安全和信息安全的支持,为开发符合ISO 26262、GB/T 34590、ISO 21434、WP.29 R155/R156等标准的车载控制器软件提供参考。 本书适合于具有一定车载嵌入式软件开发经验和C语言基础的读者,可作为高等院校本科生、研究生学习嵌入式软件开发的参考书,也可供汽车电子行业软件工程师学习和参考。
AUTOSAR(Automotive Open System Architecture)是由全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联合建立的一套标准协议,该架构旨在改善汽车电子系统软件的更新与交换,同时更方便有效地管理日趋复杂的汽车电子软件系统。 近年来,越来越多的公司采用AUTOSAR 工具链进行车载ECU 软件开发,这对采用传统手写代码方式设计程序的工程师而言是个不小的挑战,主要体现在以下三个方面。 ① AUTOSAR 规范涉及很多全新的概念,像RTE、SWC、BswM 这些缩写,对于一些手写代码多年的老工程师是陌生的。 ② C 语言编程和使用工具链配置方式进行软件设计,在思路上存在不小的差异,车载软件工程师在开发方式切换的过程中可能会有诸多不适应。 ③ 虽然AUTOSAR 规范也是用C 语言实现的且源程序可见,但由于模块繁多且每个模块所含的代码量过于庞大,短期内很难再用“把每行代码搞清楚”的方式保证程序质量,而且在程序执行异常时由于开发人员对代码不熟悉,即使是有着多年C 语言编程经验的老工程师,也可能会有“问题查找无从下手”的感觉。 因此,在使用AUTOSAR 方式设计车载ECU 软件的初期,很多项目团队都采用“基础软件外协开发”的模式。即委托第三方软件公司搭建一个AUTOSAR工程并给出各主要模块的设计示例,再在此基础上去做自己的项目。这样的开发模式有助于快速适应全新的设计方法,缩短项目周期,但也会带来“过于依赖项目组外部资源,一旦出现错误难以解决”等痛点。 针对以上问题,本书通过一个具体的工程实例,深入浅出地讲解使用AUTOSAR工具链方式设计车载ECU 软件的思路和方法,以期为刚刚进入汽车电子行业的新人和从手写代码切换至工具链开发的车载嵌入式软件工程师提供一些帮助。 本书共8章。第1章介绍AUTOSAR 的基础知识。第2章介绍L3 级重卡牵引车线控车辆整车控制器的工程实例及其嵌入式软件的AUTOSAR 解决方案。第3~7章是本书的核心部分,详细介绍AUTOSAR 工程应用的具体实施过程,目标是让读者对使用工具链方式开发车载ECU 软件的整个流程有一个清晰的认识,从而学会AUTOSAR 工具链的基本使用方法。其中,第3章从无到有地在ISOLAR-AB 中创建一个全新的AUTOSAR 工程,让读者对此类工程的集成步骤有一个比较清晰的认识;第4章主要讲解软件架构设计,即SWC设计的方法,同时引出ECU 软件开发中常见的软件组件;第5章阐述本书示例所涉及的模式管理、通信、存储等BSW 模块的设计方法;第6章则详细介绍本书示例所用到的MCAL 各模块的基本概念、配置及接口代码的实现,基本覆盖了常用的MCAL 模块;第7章在对抽象层和外围芯片实现做简要说明的基础上,着重描述基础软件和应用软件的集成步骤。第8章主要介绍AUTOSAR对功能安全、信息安全的支持,作为本书内容的拓展外延。 本书第1章由北汽福田工程研究总院新技术研究院赵鹏编写,第2~ 7章由北汽福田汽车股份有限公司李漠尘编写,第8章由北汽福田汽车股份有限公司张云云编写,书中示例为重卡牵引车线控车辆的工程实例。全书由北汽福田工程研究总院新技术研究院王永兴、郭凤刚负责审阅,在此表示衷心感谢! 本书在编写过程中得到了ETAS 公司技术和销售经理的大力支持和悉心指导,以及福田汽车电控实验室基础软件组全体同仁的鼎力相助,在此一并致谢! 本书适合有一定车载嵌入式软件开发知识和项目经验的读者阅读,可作为高等院校本科生、研究生学习以AUTOSAR 工具链方式开发车载嵌入式软件的参考书,也可作为汽车电子行业基础软件开发工程师学习和实操的参考资料。 本书中的实操步骤经过了福田汽车电控实验室基础软件组同事的反复检验,且书中项目已经结题并在多辆实车上得到验证。但由于作者水平有限,书中难免出现疏漏之处,真诚希望读者批评指正。 著者 2024年2月
1 AUTOSAR 基础知识 001 1.1 AUTOSAR 简介 001 1.1.1 AUTOSAR优势 001 1.1.2 AUTOSAR核心思想 002 1.1.3 AUTOSAR应用现状 002 1.2 AUTOSAR 分层架构 003 1.2.1 应用软件层 004 1.2.2 运行时环境 004 1.2.3 基础软件层 004 1.3 AUTOSAR 软件组件 005 1.3.1 软件组件的数据类型 006 1.3.2 软件组件的端口 006 1.3.3 软件组件的端口接口 006 1.3.4 软件组件的内部行为 007 1.4 AUTOSAR 方法论 008 1.4.1 设计阶段 008 1.4.2 开发步骤 009 1.5 AUTOSAR 开发策略 009 2 本书工程实例及AUTOSAR 解决方案 011 2.1 工程实例介绍 011 2.1.1 重卡自动驾驶车辆线控底盘简介 011 2.1.2 车辆线控改造问题 011 2.1.3 重卡自动驾驶车辆网络架构 012 2.1.4 整车控制器功能 013 2.2 AUTOSAR 解决方案 014 2.3 AUTOSAR 工具链说明 014 3 AUTOSAR 工程创建和模块集成步骤 015 3.1 AUTOSAR 工程创建 015 3.1.1 文件夹创建 015 3.1.2 工程创建 016 3.1.3 基本接口创建 016 3.2 系统配置 020 3.2.1 部件创建 020 3.2.2 系统创建 020 3.2.3 部件引用和抽取配置 020 3.3 通信配置 023 3.3.1 DBC文件复制 023 3.3.2 DBC导入 023 3.3.3 通信模块后续处理 025 3.3.4 抽取 026 3.3.5 生成RTA-BSW 026 3.3.6 arxml文件合并 028 3.4 模式管理配置 028 3.4.1 EcuM 配置 028 3.4.2 BswM 配置 029 3.5 操作系统配置 031 3.5.1 OS创建 031 3.5.2 OS配置 031 3.5.3 RTA-OS配置 035 3.5.4 RTA-OS生成 042 3.5.5 集成文件复制 044 3.6 RTE 创建及配置 045 3.6.1 RTE创建 045 3.6.2 RTE配置 046 3.7 定点数位域配置 048 3.7.1 Bfx创建 048 3.7.2 Bfx配置 049 3.8 Ecuc 数据集配置 050 3.8.1 Ecuc Value Collection创建 050 3.8.2 Ecuc Value Collection配置 050 3.9 AUTOSAR 平台类型配置 053 3.9.1 AR Package创建 053 3.9.2 数据类型添加 054 3.10 缺省故障追踪器配置 055 3.10.1 Det创建 055 3.10.2 Det配置 055 3.11 标准类型配置 057 4 AUTOSAR 软件架构设计 058 4.1 软件组件设计步骤 058 4.1.1 创建软件组件 058 4.1.2 端口接口设计 061 4.1.3 软件组件内部行为设计 061 4.1.4 软件组件加入部件 062 4.1.5 软件组件加入ECU 063 4.2 软件组件集成方法 064 4.2.1 运行实体添加 064 4.2.2 系统信号映射 064 4.2.3 内部信号映射 065 4.2.4 代码生成 065 4.3 软件组件设计案例 070 4.3.1 软件组件汇总 070 4.3.2 信号采集软件组件 071 4.3.3 驱动控制软件组件 073 4.3.4 基本功能软件组件 075 4.3.5 应用软件组件 079 4.3.6 其他软件组件 079 5 AUTOSAR BSW 设计 082 5.1 BSW 设计通用步骤 082 5.1.1 BSW 相关模块梳理 082 5.1.2 BSW 模块配置 083 5.1.3 基础模块配置 084 5.1.4 微控制器抽象层配置 085 5.1.5 软件集成 085 5.2 EcuM 模块设计 087 5.2.1 EcuM 模块创建和整体配置 087 5.2.2 EcuM 通用配置 089 5.2.3 EcuM 灵活状态机配置 093 5.3 BswM 模块设计 094 5.3.1 BswM 模块创建和通用配置 094 5.3.2 模式配置 097 5.3.3 行为配置 099 5.3.4 行为列表配置 103 5.3.5 请求端口配置 106 5.3.6 模式条件配置 108 5.3.7 逻辑表达式配置 112 5.3.8 规则配置 114 5.3.9 数据类型映射集配置 117 5.4 NvM 模块设计 117 5.4.1 存储模块概述 117 5.4.2 FEE配置 118 5.4.3 MemIf配置 124 5.4.4 NvM 配置 125 5.4.5 CRC配置 134 5.4.6 存储相关模块配置 137 5.4.7 存储模块代码生成 139 5.4.8 存储软件组件设计 139 5.4.9 存储功能集成 141 5.4.10 存储代码编写 143 5.5 其他模块设计 145 6 AUTOSAR MCAL 设计 146 6.1 MCAL 设计通用步骤 146 6.1.1 MCAL相关模块梳理 146 6.1.2 Port模块配置 147 6.1.3 MCU模块配置 148 6.1.4 UART模块配置 149 6.1.5 中断配置 152 6.1.6 初始化函数调用 154 6.1.7 静态代码复制 155 6.1.8 调试代码编写 155 6.2 MCU 模块设计 156 6.2.1 通用箱配置 157 6.2.2 MCU模块配置 158 6.2.3 MCU复位原因配置 164 6.3 GPT 模块设计 165 6.3.1 通用定时器模块配置 165 6.3.2 中断配置 167 6.3.3 通用定时器配置 168 6.4 Port 模块设计 170 6.5 ADC 模块设计 172 6.5.1 通用箱配置 172 6.5.2 ADC集配置 174 6.6 SPI 模块设计 181 6.6.1 端口配置 182 6.6.2 中断配置 182 6.6.3 DMA配置 182 6.6.4 SPI配置 182 6.6.5 SPI应用 189 6.7 CAN 模块设计 190 6.7.1 端口配置 191 6.7.2 中断配置 191 6.7.3 CAN配置 191 6.8 Fls 模块设计 197 6.8.1 Fls配置 197 6.8.2 Fls应用 201 7 AUTOSAR 其他部分设计与集成 202 7.1 抽象层设计 202 7.2 芯片驱动设计 203 7.2.1 初始化函数调用 203 7.2.2 核心函数调用 204 7.2.3 头文件路径配置 204 7.3 基础软件与应用软件集成 204 7.3.1 文件复制与工程刷新 204 7.3.2 抽取和运行时环境生成 206 7.3.3 工程编译 206 7.3.4 生成标定文件 206 7.4 其他模块设计 207 8 AUTOSAR 与汽车电子相关技术 208 8.1 AUTOSAR 与功能安全 208 8.1.1 ISO 26262要求和 AUTOSAR支持 208 8.1.2 AUTOSAR安全机制 213 8.1.3 车载ECU基础软件功能安全实现 214 8.2 AUTOSAR 与信息安全 215 8.2.1 汽车基础软件信息安全要求 215 8.2.2 AUTOSAR信息安全模块 216 8.2.3 车载ECU软件信息安全实现 217 参考文献 218
ISBN:978-7-122-45532-1
语种:汉文
开本:16
出版时间:2024-08-01
装帧:平
页数:218