AUTOSAR书籍推荐-《AUTOSAR规范与车用控制器软件开发》

《Autosar规范与车用控制器软件开发》是一本关于汽车电子控制系统开发的专业书籍,主要介绍AUTOSAR(AUTomotive Open System ARchitecture)规范及其在车用控制器软件开发中的应用。AUTOSAR是一种开放的汽车软件架构标准,旨在提高汽车电子控制单元(ECU)软件的可重用性、可扩展性和可维护性。

这本书详细讲解AUTOSAR的分层架构,包括:

  • 应用层(SWC软件组件)。
  • 运行时环境(RTE)(实现SWC与BSW的通信)。
  • 基础软件层(BSW)(通信栈、诊断栈、存储栈等)。
  • 微控制器抽象层(MCAL)(硬件驱动抽象)。

介绍了常用的AUTOSAR开发工具,如:

  • DaVinci Configurator(Vector):用于系统配置和BSW配置。
  • ISOLAR-A(ETAS):用于AUTOSAR系统设计和ECU配置。
  • EB tresos:用于MCAL和基础软件的配置。
这里的NM主要是针对Can协议的网路管理。 AUTOSAR CanNM的核心思想主要归纳为以下两条: 1.  如果节点需要保持通信,则节点需要周期的发送NMPDUs,否则停止发送NMPDUs 2.     如果总线上的所有节点不需要使用总线,那么总线上过了一段时间没有NMPDUs时,则会进入Bus-Sleep Mode。   工作模式和状态   CanNm一共有三个工作模式 1.  Network Mode 2.  PrepareBus-Sleep Mode 3.  Bus-Sleep Mode 模式的改变应该通过回调函数通知上层。 下面单独说每种模式   (1)Network Mode Network Mode又包括三个内部状态 1. Repeat Message State 2. Normal Operation State 3. Ready Sleep State ①Repeat Message State 这个模式被用来确保从Bus-Sleep or Prepare Bus-Sleep到Network Mode的节点被总线上面其他节点发现。这个状态可以用来检测总线上的节点。 当进入Repeat Message State时,节点应该开始传送NMPDUs。 在Repeat Message State时,当NM-Timeout Timer溢出,CanNm模块应该重载Timer。 CanNm模块应该在Repeat Message State 下保持一段时间,这段时间可以通过CANNM_REPEAT_MESSAGE_TIME来进行配置。 当离开Repeat Message State的时候,如果节点需要通信,则进入Normal Operation State;如果节点不需要通信,则进入Ready Sleep State。并且清空Repeat Message Bit。   ②Normal Operation State 这个状态可以保持总线处于唤醒状态。从Ready sleep state进入这个状态的时候应该发送NMPDUs。 在Normal Operation State当NM-Timeout Timer溢出,CanNm模块应该重载Timer。 如果节点不需要使用通信,则网络应该被释放,节点应该进入Ready Sleep State。 如果节点接收到Repeat Message Request Bit,则节点进入Repeat Message State。如果节点自身需要进入Repeat Message State,则该节点进入Repeat Message State并且设置Repeat Message Request Bit。   ③ReadySleep State 这个状态是为了如果本节点已经准备释放总线,而其他节点还需要使用总线的时候,在这个状态下等待其他总线上的节点进入Perpere Bus-Sleep Mode。进入这个状态之后,CanNm模块应该停止NMPDUs的传送。 如果NM-Timeout Timer溢出,节点将会进入Prepare Bus-Sleep Mode。 如果该节点需要使用总线,则节点进入Nomal Operation State。 如果节点接收到Repeat Message Request Bit,则节点进入Repeat Message State。如果节点自身需要进入Repeat Message State,则该节点进入Repeat Message State并且设置Repeat Message Request Bit。 (2)PrepareBus-Sleep Mode   这个状态是为了等待总线上的所有节点能够在进入Bus-Sleep Mode之前,有时间停止节点的active状态如清空队列中为发送的报文。在Prepare Bus –Sleep Mode下,所有节点都静默下来。 当节点进入PrepareBus Mode时,应该通知上层应用。通过配置CANNM_WAIT_BUS_SLEEP_TIME参数,可以改变节点在PrepareBus-Sleep Mode停留的时间,在这段时间之后节点将会进入其他状态。 在Prepare Bus-Sleep Mode下面接收到NMPDU或者被上层应用请求通信时,节点将进入Network Mode中的Normal operation State。   (3)Bus-SleepMode   Bus-Sleep Mode的目的是当没有消息被传送的时候可以减少能量的消耗。在Bus-Sleep Mode下面,节点可以被唤醒(如本地唤醒源和CAN线唤醒源)。CANNM_TIMEOUT_TIME+CANNM_WAIT_BUS_SLEEP_TIME两个参数在整个总线上面的节点都应该时一样的配置,保证了总线上的节点能够统一的进行休眠。 当进入Bus-Sleep Mode时候,应该通知上层应用。 在Bus-Sleep Mode下,如果成功接收到NMPDU,CAN NM模块应该调用Nm_NetworkStartIndication。 如果CanNm_PassiveStartUp被调用,则CAN NM模块进入Network Mode 中的Repeat Message State。 ———————————————— 版权声明:本文为CSDN博主「cococenstar」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/cococenstar/article/details/84096689
### Autosar 入门到精通 学习资料 100讲 Autosar( Automotive Open System Architecture)是一种标准化的汽车嵌入式系统架构,旨在提高车载电子控制单元(ECU)之间的互操作性和可重用性。以下是关于学习 Autosar 的全面教程或课程建议: #### 一、基础概念框架 Autosar 主要分为两类:Classic Platform (CP) 和 Adaptive Platform (AP)[^2]。 - **Classic Platform (CP)** 是面向传统 ECU 开发的经典平台,适用于实时性强的应用场景。 - **Adaptive Platform (AP)** 则是为了满足未来自动驾驶和车联网需求而设计的新一代平台。 对于初学者来说,可以从 CP 平台入手,逐步了解 AP 的特性及其应用场景。 --- #### 二、推荐的学习路径 ##### 1. 理论学习 - 阅读官方文档:Autosar 官方网站提供了丰富的规范和技术文档,这是最权威的学习资源[^3]。 - 参考书籍- 《基于 AUTOSAR 规范车用电机控制器软件开发》——适合国内开发者,重点介绍了 Davinci 工具链的应用。 -AUTOSAR 规范车用控制器软件开发》——涵盖了更广泛的工具链支持,尤其是 ETAS 方面的内容。 ##### 2. 实践项目 通过实际案例加深理解,例如实现简单的 RTE 或 BSW 功能模块的设计配置。可以尝试以下练习: - 设计一个带有睡眠唤醒功能的小型 ECU 控制器[^4]。 - 使用 Davinci Configurator Pro 进行 ARXML 文件的手动编辑验证。 ##### 3. 在线课程 根据引用中的内容,《AutoSAR 从入门到精通实战系列课程》是一个非常系统的自学笔记集合,覆盖了理论知识以及 EB/Davinci 工具的具体应用方法[^1]。此课程不仅包含了基础知识讲解,还涉及源码分析部分,能够帮助学员深入了解 Autosar 的内部机制。 --- #### 三、具体章节规划 如果目标是完成类似于“Autosar 入门到精通 学习资料 100 讲”的计划,则可以根据以下几个方面来划分内容结构: | 序号 | 类别 | 内容概览 | |------|--------------------|--------------------------------------------------------------------------| | 1 | 基础篇 | Autosar 架构介绍;RTE, BSW 层次关系解析 | | 2 | 工具使用 | Davinci/EB Tresos Toolchain 上手指南 | | 3 | 核心组件详解 | Swc, PortInterface, DataMapping 等核心概念 | | 4 | 实战演练 | 如何构建第一个 Autosar Project | | 5 | 高级主题探讨 | OS Task Scheduling; NvM Flash Management | 每节都应附带相应的实验指导书以便于动手实践巩固所学知识点。 --- ```python # 示例代码片段:展示如何利用 Python 解析 XML 数据文件(如 ARXML) import xml.etree.ElementTree as ET def parse_arxml(file_path): tree = ET.parse(file_path) root = tree.getroot() for child in root: print(f"{child.tag}: {child.attrib}") if __name__ == "__main__": arxml_file = 'example.arxml' parse_arxml(arxml_file) ``` 以上脚本可用于初步探索 Autosar 中常见的 ARXML 结构形式。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值