《Autosar从入门到精通-实战篇》总目录_培训教程持续更新中...

本文档是一份全面的Autosar实战教程,涵盖DBC、ARXML、RTE、DaVinci Developer和配置工具的详细讲解。通过一系列文章,深入探讨Autosar工具链的配置和理论理解,包括CAN Matrix Arxml和ASWC Arxml的创建、信号处理、Component和Runnable的定义,以及在汽车电子开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Autosar入门篇:

1.1 DBC专题(共9篇)

1.2 ARXML专题(共35篇)

1.2.1 CAN Matrix Arxml(共28篇)

1.2.2 ASWC Arxml(共7篇)

1.3 读懂Autosar代码(共7篇)

二、RTE(Run-Time Environment)介绍

三、DaVinci Developer实战篇

3.1 Component和Runnable(共3篇)

3.2 Sender Receiver Port(Interface)(共3篇)

3.3 Data Type,ADT(Application Data Type)和IDT(Implementation Data Type)介绍(共17篇)

3.4 IDT(Implementation Data Type)高阶使用(共2篇)

3.5 Client Server Port(Interface)(共5篇)

3.6 Mode(Switch) Port(Interface)(共4篇)

3.7 Matlab在Autosar相关应用(共2篇)

3.8 其它高级应用(共9篇)

四、DaVinci Configurator实战篇(共6篇)

五、EB_Tresos实战(共12篇)

六、Dspace System desk实战(共11篇)

七、“汽车电子开发”进一步拔高


 

欢迎大家订阅《Autosar从入门到精通-实战篇》专栏(可以理解为是Autosar培训教程),该专栏每周至少更新一篇,一次订阅,不再二次收费献上常用Autosar工具链的配置方法。下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取。私信博主可获得“一对一”答疑解惑

本专栏旨在

  • 扫除Autosar工具链配置过程中的障碍,加深对Autosar理论的理解。

温馨提醒

  • 如有疑问,可在博文的“评论区”给小编留言,进行技术交流;
  • 如有疑问,也可以通过博文中的第一个图片联系/关注小编,获取专栏/博文的实时动态
  • 由于工作限制,仅做个人技术交流。可通过博文的第一个图片与小编取得联系。
  • 为了方便各位读者交流学习Autosar,以及答疑解惑,决定建立私信群:CP_Autosar技术交流1群。提供一个平台,分享各自的心得,结实更多的朋友。

<--返回「Autosar从入门到精通-实战篇」专栏主页-->

一、Autosar入门篇:

1.1 DBC专题(共9篇)

【DBC专题】-1-如何使用CANdb++ Editor创建并制作一个DBC

【DBC专题】-2-CAN Signal信号的Multiplexor多路复用在DBC中实现

【DBC专题】-3-利用CANdb++ Editor在DBC文件添加帧CAN_ID和信号CAN_Signal

【DBC专题】-4-DBC文件中的Signal信号字节顺序Motorola和Intel介绍

【DBC专题】-5-DBC文件格式解析

【DBC专题】-6-Signal信号字节顺序Motorola_LSB/MSB/Sequential/Backward,Intel_Standard/Sequential等6类格式详解

【DBC专题】-7-在DBC中创建一个Signal Group信号组

【DBC专题】-8-经典CAN2.0 DBC快速切换为CANFD DBC

【DBC专题】-9-如何在DBC中描述CAN Signal的“负数/值”

1.2 ARXML专题(共35篇)

1.2.1 CAN Matrix Arxml(共28篇)

【ARXML专题】-1-什么是ARXML

【ARXML专题】-2-创建一个Classic CAN(经典CAN2.0)/CANFD的系统描述ARXML文件

【ARXML专题】-3-在CANFD或CAN2.0的ARXML文件中实现Multiplexor多路复用信号

【ARXML专题】_4_提取Arxml的模板信息

【ARXML专题】_5_提取Arxml中CAN波特率属性New_CanCluster--Standard

【ARXML专题】_6_提取Arxml中描述信息New_CanCluster--Expert

【ARXML专题】_7_提取Arxml中CAN物理通道信息CANChannel--Physical Channel

【ARXML专题】_8_提取Arxml中CAN Node节点信息Creat_ECU

【ARXML专题】_9_提取Arxml中CAN采样点信息Creat_ECU--Standard

【ARXML专题】_10_提取Arxml中描述信息Creat_ECU--Expert

【ARXML专题】_11_提取Arxml中CAN的Frame/Message和CAN_ID信息

【ARXML专题】_12_提取Arxml中CAN PDU信息

【ARXML专题】_13_提取Arxml中CAN PDU周期信息

【ARXML专题】_14_提取Arxml中CAN Signal信号信息

【ARXML专题】-15-在Arxml中定义一对N-PDU用于诊断+刷写

【ARXML专题】-16-在Arxml中定义一个NM-PDU用于唤醒网络节点

【ARXML专题】-17-在Arxml中定义一对XCP-PDU用于测量标定

【ARXML专题】-18-在Arxml中创建一个Signal Group

【ARXML专题】-19-在Arxml中创建一个IPDU Group

【ARXML专题】-20-在Arxml中给Signal和Signal Group设置Update Bit更新位

【ARXML专题】-21-在CANFD Matrix Arxml中如何设置经典Classic CAN Frame

【ARXML专题】-22-E2E Profile 1在CAN Matrix Arxml中如何描述

【ARXML专题】-23-E2E Profile 2在CAN Matrix Arxml中如何描述

【ARXML专题】-24-在PDU中定义Array数组类型的CAN Signal

【ARXML专题】-25-定义接收一组特定range范围的Rx CAN ID

【ARXML专题】-26-Bit Rate相关参数:Tq,SJW,Sample Point,TDC...的定义

【ARXML专题】-27-创建一个发送Tx Dynamic Container PDU(Multiple-PDU)

【ARXML专题】-28-创建一个接收Rx Dynamic Container PDU(Multiple-PDU)

1.2.2 ASWC Arxml(共7篇)

【ASWC Arxml结构分解】-1-创建一个ASWC

【ASWC Arxml结构分解】-2-创建一个Init/periodic Runnable

【ASWC Arxml结构分解】-3-创建一个Sender Receiver(SR) R-Port

【ASWC Arxml结构分解】-4-创建一个Sender Receiver(SR) P-Port

【ASWC Arxml结构分解】-5-创建一个Client Server(CS) R-Port

【ASWC Arxml结构分解】-6-创建一个Client Server(CS) P-Port

【ASWC Arxml结构分解】-7-Explicit(显式)和Implicit(隐式) Sender-Receiver communication描述差异

1.3 读懂Autosar代码(共7篇)

【读懂Autosar代码】-1-概述

【读懂Autosar代码】-2-关键字宏AUTOMATIC和TYPEDEF的说明

【读懂Autosar代码】-3-CONST常量的定义

【读懂Autosar代码】-4-VAR变量的定义

【读懂Autosar代码】-5-Pointer指针的定义

【读懂Autosar代码】-6-Function函数的定义

【读懂Autosar代码】-7-INLINE的使用--内联函数(inline function)

二、RTE(Run-Time Environment)介绍

【AUTOSAR-RTE】-1-聊一聊RTE(Run-Time Environment)

【AUTOSAR-RTE】-2-Composition,Component和VFB的介绍

【AUTOSAR-RTE】-3-Runnable及其Task Mapping映射

【AUTOSAR-RTE】-4-Port和Interface以及Data Type

【AUTOSAR-RTE】-5-Explicit(显式)和Implicit(隐式) Sender-Receiver communication

三、DaVinci Developer实战篇

3.1 Component和Runnable(共3篇)

【DaVinci Developer专题】-1-创建一个Workspace工作区

【DaVinci Developer专题】-2-创建一个Component和Composition

【DaVinci Developer专题】-3-如何定义一个Runnable

3.2 Sender Receiver Port(Interface)(共3篇)

【DaVinci Developer专题】-4-创建一个Sender Receiver Port并实现Runnable的Port访问

【DaVinci Developer专题】-5-Port Interface中NotAccessble、ReadOnly和ReadWrite生成C代码差异

【DaVinci Developer专题】-36-创建一个“既读又写”的Sender Receiver Port(SR PR-Port)

3.3 Data Type,ADT(Application Data Type)和IDT(Implementation Data Type)介绍(共17篇)

【DaVinci Developer专题】-6-Data Type、ADT和IDT介绍,并创建一个Value ADT

【DaVinci Developer专题】-7-创建一个结构体Record ADT(Application Data Type)

【DaVinci Developer专题】-8-创建一个枚举Enum ADT(Application Data Type)

【DaVinci Developer专题】-9-创建一个枚举Enum IDT(Implementation Data Type)

【DaVinci Developer专题】-10-Value IDT常见用法之“typedef”(Implementation Data Type)

【DaVinci Developer专题】-11-Value IDT常见用法之”枚举Enum“(Implementation Data Type)

【DaVinci Developer专题】-12-Array IDT常见用法之“一维数组定义”(Implementation Data Type)

【DaVinci Developer专题】-13-Array IDT常见用法之“二维数组定义”(Implementation Data Type)

【DaVinci Developer专题】-14-Array IDT几类特殊形式“二维数组”总结(Implementation Data Type)

【DaVinci Developer专题】-15-Array IDT中使用Array定义“三维数组”类型(Implementation Data Type)

【DaVinci Developer专题】-16-Array IDT中使用Type_Reference定义“一维数组”类型(Implementation Data Type)

【DaVinci Developer专题】-17-Array IDT中使用Type_Reference定义“二维数组”类型(Implementation Data Type)

【DaVinci Developer专题】-18-Array IDT中使用Type_Reference定义“三维数组”类型(Implementation Data Type)

【DaVinci Developer专题】-19-Record IDT中使用Type_Reference定义“结构体Struct”类型

【DaVinci Developer专题】-20-Record IDT中使用Value定义“结构体Struct”类型

【DaVinci Developer专题】-21-Union IDT中使用Type_Reference定义“联合体Union”类型

【DaVinci Developer专题】-22-Union IDT中使用Value定义“联合体Union”类型

3.4 IDT(Implementation Data Type)高阶使用(共2篇)

【DaVinci Developer专题】-23-IDT高阶应用:结构体类型的数组

【DaVinci Developer专题】-24-IDT高阶应用:结构体中元素(数组,结构体,联合体)类型相互嵌套

3.5 Client Server Port(Interface)(共5篇)

【DaVinci Developer专题】-25-创建一个Client Server Port并实现Runnable的Port访问

【DaVinci Developer专题】-26-带返回值的Client Server Port

【DaVinci Developer专题】-27-Client Server Port Interface中的In、Out和InOut介绍

【DaVinci Developer专题】-28-Client Server Port Interface中useArgumentType、useArrayBaseType和useVoid介绍

【DaVinci Developer专题】-29-创建一个Client Server Port包含多个Runnable(函数)

3.6 Mode(Switch) Port(Interface)(共4篇)

【DaVinci Developer专题】-30-创建一个Mode(Switch) Port并实现Runnable的Port访问

【DaVinci Developer专题】-31-Mode(Switch) P-Port如何回读当前Mode模式

【DaVinci Developer专题】-32-Mode(Switch) Declaration Group中Alphabetic和Explicit的区别

【DaVinci Developer专题】-33-Mode(Switch) Declaration Group与IDT(Implementation Data Type)映射Mapping

3.7 Matlab在Autosar相关应用(共2篇)

【DaVinci Developer专题】-34-如何导出对应SWC Component组件的Arxml给MATLAB工具使用

【Matlab专题】-01-Matlab使用脚本导入SWC Arxml文件自动生成Simulink模型以及生成C代码

3.8 其它高级应用(共9篇)

【DaVinci Developer专题】-35-如何实现某个SWC的P-Port更新后另一个SWC才去读R-Port的值

【DaVinci Developer专题】-37-详述IRV:Inter-Runnable Variable介绍+配置

【DaVinci Developer专题】-38-Exclusive Area介绍+配置

【DaVinci Developer专题】-39-Calibration Parameter介绍+配置

【DaVinci Developer专题】-40-创建Background触发的Runnable可运行实体

【DaVinci Developer专题】-41-APP SWC如何读取写入NVM Block数据

【DaVinci Developer专题】-42-如何生成APP SWC的Template和Header文件

【DaVinci Developer专题】-43-基于Queue队列的Sender-Receiver communication

【DaVinci Developer专题】-44-Software Component软件组件的Multiple Instantiation多次实例化

四、DaVinci Configurator实战篇(共6篇

【DaVinci Configurator专题】-1-配置新增Or删除的SWC Component

【DaVinci Configurator专题】-2-将CAN 2.0或CANFD Matrix的Arxml文件导入到CFG

【DaVinci Configurator专题】-3-CAN Send Signal发送信号与APP SWC Component的Port接口映射/连接

【DaVinci Configurator专题】-4-CAN Receive Signal接收信号与APP SWC Component的Port接口映射/连接

【DaVinci Configurator专题】-5-通过Data Mapping自动创建CAN信号关联的Port并添加到APP SWC

【DaVinci Configurator专题】-6-将UDS&OBD诊断数据库文件CDD和PDX导入到CFG

五、EB_Tresos实战(共12篇

【EB_Tresos专题】-01-EB Tresos导入工程

【EB_Tresos专题】-02-导入System desk生成的SWC Arxml文件以及导入DBC

【EB_Tresos专题】-03-配置SWC Arxml中新增Runnable

【EB_Tresos专题】-04-CAN信号与SWC Port的映射Mapping

【EB_Tresos专题】-05-给CAN信号设置初始值

【EB_Tresos专题】-06-配置一个UDS诊断DID

【EB_Tresos专题】-07-将CAN帧Frame_ID由Cyclic周期帧调整为OnEvent事件帧

【EB_Tresos专题】-08-统计CAN信号接收次数

【EB_Tresos专题】-09-CAN Node节点Absent配置

【EB_Tresos专题】-10-网关GateWay配置:CAN Frame ID在多个网络之间相互转发

【EB_Tresos专题】-11.1-如何手动配置一个Tx发送的CAN Frame

【EB_Tresos专题】-11.2-如何手动配置一个Rx接收的CAN Frame

六、Dspace System desk实战(共11篇

Dspace Dspace_System_Desk_Tutorial帮助手册_V4.7(中英文互译)(免费)

Dspace Dspace_System_Desk_Tutorial帮助手册_V5.1(中英文互译)(免费)

【System_Desk专题】-01-新建一个SWC并导入EB_Tresos

【System_Desk专题】-02-给SWC增加一个Send_Receive_Interfaces

【System_Desk专题】-03-两个SWC对应的Port端口没有连接带来的影响

【System_Desk专题】-04-给SWC接口Port添加初始值

【System_Desk专题】-05-给SWC增加一个结构体类型的Send_Receive_Interfaces

【System_Desk专题】-06-给SWC增加一个结构体套结构体类型的Send_Receive_Interfaces

【System_Desk专题】-07-给SWC增加一个Client_Server_Interface

【System_Desk专题】-08-在NVM中增加存储Block

【System_Desk专题】-09-NVM_SWC结构体类型存储Block的Port增加新的元素

持续更新中......

<--返回「Autosar从入门到精通-实战篇」专栏主页-->

<--返回「个人博客」首页-->

七、“汽车电子开发”进一步拔高

单击下方链接,即可跳转《Autosar_BSW高阶配置》专栏:

《Autosar_BSW高阶配置》总目录_培训教程持续更新中...https://blog.csdn.net/qfmzhu/article/details/118652658https://blog.csdn.net/qfmzhu/article/details/118652658

单击下方链接,即可跳转《UDS/OBD诊断需求编辑工具》专栏:

《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014

单击下方链接,即可跳转《Autosar_MCAL高阶配置》专栏:

《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...https://blog.csdn.net/qfmzhu/article/details/126808147

END

获取更多“汽车电子资讯”和“工具链使用”,

请关注“汽车电子助手”,做您的好助手。

这里的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
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值