AutoSAR入门与实战系列「持续更新ing。。。」
文章平均质量分 81
基于DaVinci和EB工具及源码分析,通过实例从本质上深刻学习BSW和MCAL的配置和集成.课程如下:
一、【Classic AutoSAR入门和实战课程】
二、【Adaptive AutoSAR入门和实战课程】
三、【MCAL入门和实战课程】
四、【功能安全入门和实战课程】
五、【问题答疑会】
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
糖果Autosar
AutoSAR架构专家,分享AutoSAR学习笔记和心得体会,提供咨询和答疑。粉丝们尽量在博文评论区留言你们咨询的问题,有空我会统一回答
展开
-
COM02-AutoSAR通信协议栈中的协议数据单元 PDU是什么?
1协议数据单元 (PDU)概念 11.1各层的PDU之间的‘信息接力’ 11.2理解一下官方的定义: 22协议数据单元 (PDU)的设计 32.1 PDU类型定义 32.2 使用的下层【PduR】的API进行发送,PDU在参数中进行传递 42.3 使用的下层【PduR】的API进行报文接收,PDU在参数中进行传递 61协议数据单元 (PDU)概念就像人你写信给女朋友时,需要信封去传统你的爱意信息;通信过程中,需要通过其通信堆栈交换的信息实体需要PDU去承载;就像前面那篇文章「Autosar通原创 2021-11-28 16:53:07 · 8145 阅读 · 2 评论 -
总目录- AutoSAR从入门到精通实战系列课程【持续更新中...】
欢迎大家订阅《AutoSAR入门和实战系列》,开始前博主先列出AutoSAR学习的大纲,同时这也可以作为大家学习AutoSAR的参考。想学习和及以及的同学们,可以订阅本博客,本博客一直持续更新中。如果想深入或从本质上学习和理解AutoSAR,打开此链接后,,点击左下方【立即订阅】订阅专栏!!!】......原创 2021-10-14 23:15:39 · 41068 阅读 · 8 评论 -
【AutoSAR答疑01】- AutoSAR各种软件组件类型有什么本质的不同?
ECU 抽象软件组件 (EcuAbstractionSwComponentType) 是基础软件的一部分,特别是ECU 抽象层,因此可以通过标准化接口与其他基础软件模块交互。它包含对相应硬件元素的引用,并通过端口向到感器-执行器软件组件提供对ECU特定 IO 功能的访问。原创 2023-06-11 18:19:17 · 1111 阅读 · 0 评论 -
CANTP如何处理N-SDU
通信的双方,有一端是发送方,有一端是接收方;我们站在接收者的角度看,当通信开始时,我们可能接收到的第一帧报文将是 SF 或 FF;但是如果接收的请求被接受并且需要为发送方发送 FC帧,则接下来接受的报文则是CF。(如图中的蓝色箭头线所示)具体行为如下图所示:让我们看看 CanTp 在接收到这些帧时的行为。原创 2023-02-03 00:19:17 · 937 阅读 · 0 评论 -
【Vector Memory Mapping】- 为什么数据(和代码)需要映射到特定的MCU内存区域
传统方法编译是基于一个(或几个)整体MemMap.h文件,编译器读取和预处理MemMap.h及其包含的文件,对于每个编译单元都进行这样的操作。新方法会产生一堆相对较小的MemMap.h文件,这些较小的MemMap.h文件文件都包含在各自的组件中,这会导致要完成的预处理工作少得多。一些代码(code)应该从与cpu紧密耦合的内存运行,而其他一些代码也可能从外部内存运行,但速度较低,因为访问不同的内存、不同的总线【memories】有不同的速度。初始化策略:变量(在 RAM 中)在初始化时可能有不同的要求。原创 2023-01-24 22:23:34 · 2419 阅读 · 0 评论 -
AutoSAR MemMap模块实例解析及注意事项
传送门 ==>> AutoSAR入门和实战系列总目录。原创 2023-01-24 21:33:36 · 2181 阅读 · 0 评论 -
AutoSAR MemMap模块概述及配置参数详解
这个模块是干啥的?它是用来配置Memory Mapping and Compiler Abstraction module。原创 2023-01-24 20:30:12 · 3555 阅读 · 0 评论 -
Eth10- Eth以太网控制器时间同步相关配置即API代码解析
如果使用时间同步功能则使能这个选项。/EthCtrlConfig/EthCtrlEnableMii:This parameter defines if the Media Independent Interface (MII) for transceiver access is enabled.Restrictions: Must be enabled for transceiver usage.如果我们工程中有使用transceiver的话,则这个参数一定要使能。关于MII的介绍请参考文章。原创 2023-01-03 21:50:23 · 584 阅读 · 0 评论 -
OS14 - 警报Alarm代码接口解析(1)
os counter 的理论我们已经讲过,具体可参考。,本文的代码定义在alarm.h中。原创 2022-09-12 00:12:48 · 1074 阅读 · 0 评论 -
OS13 - Alarm概述和解析(1)
计数器用于记录某些事件的发生。通常,当发生一定数量的这些事件时,系统需要采取一些行动。而警报就是用于将计数器连接到动作的机制——任务的激活、事件的设置、用户定义的警报回调例程的运行或递增软件计数器。具体来讲,每个警报只与一个计数器相关联,但多个警报可以使用同一个计数器。当计数器达到用户定义的值时,警报到期。警报到期导致执行定义的操作(例如任务激活或设置事件)。执行何种操作取决于配置的警报的静态属性,配置时我们可以选择以下几种属性原创 2022-09-11 23:09:16 · 1002 阅读 · 0 评论 -
OS12 - 计数器代码接口解析(1)
os counter 的理论我们已经讲过,具体可参考《OS10 -OS11》,下面我们分析一下代码。本文的代码定义在counter.h中。其定义了OsCounterType的类型。并提供了几个内联函数的接口,如获取AlarmBaseType,获取counter的当前值,counter之间的差值等。原创 2022-09-11 20:52:57 · 492 阅读 · 0 评论 -
OS11 - 计数器和警报的配置(2)【Davinci Cfg】
# 1计数器的属性值的配置AutoSAR里面的计数器由以刻度表示的当前值和许多描述计数器行为的常量组成。而计数器的常量的参数属性值的配置包含如下:- MAXALLOWEDVALUE:计数器翻转并从零重新开始的刻度数- MINCYLE:与计数器关联的循环警报必须指定到期的最小刻度数- TICKSPERBASE:达到用户定义的特定值所需的滴答数。原创 2022-09-11 17:19:50 · 980 阅读 · 0 评论 -
OS10 - 计数器和警报(1)
操作系统提供服务来处理通常与中断相关的重复事件。此类事件可能定期发生,例如定时器中断,或不定期发生,例如传输某个设备状态的中断。我们能想到的可能的实现是提供一个counter,每来一个时间中断,counter的值就加一;如果counter的值等于我们设定的周期值的时候,触发我们的函数执行来处理任务。Counter,用来记录事件发生的计数器。Alram,当计数器达到某个值时触发的警报。原创 2022-09-11 17:09:40 · 644 阅读 · 0 评论 -
Boost.Interprocess 的同步
传送门 ==>> AutoSAR入门和实战系列总目录。原创 2022-09-05 16:11:57 · 562 阅读 · 0 评论 -
UDS04-清除诊断信息服务【ServiceID = 0x14】
传送门 ==>> AutoSAR入门和实战系列总目录。原创 2022-09-04 18:09:19 · 895 阅读 · 0 评论 -
【DaVinci Developer工具实战】06 - DaVinci Developer和DaVinci Configurator的作用和交互
注意:当您使用 DaVinci Configurator 运行项目更新过程时,会在后台自动调用 DaVinci Developer 以更新 DaVinci 工作区。为此,DaVinci Developer 执行更新导入时会根据项目文件 ( .dpa ) 中的以下项目的设置来执行导入.两个工具都在同一个项目 ( .dpa ) 上运行,其中DaVinci工作区 ( .dcf ) 在工具之间共享。相互锁定机制确保您可以在两个工具中安全地打开同一个项目文件。......原创 2022-08-14 13:39:30 · 6112 阅读 · 0 评论 -
【DaVinci Developer工具实战】05 - DaVinci Developer 功能区概述和介绍
文件菜单提供加载和保存工作空间、配置 DaVinci Developer 和提供帮助内容的命令。主页功能区选项卡提供打开浏览器和编辑器的命令,以及用于一致性检查和编辑各种对象的命令.原创 2022-08-14 13:18:16 · 1450 阅读 · 0 评论 -
【DaVinci Developer工具实战】04 -导入XML 文件的实战操作
如下图所示,项目【 Project 】功能区选项卡的命令打开一个对话框,您可以在其中配置要导入的 AUTOSAR XML 文件列表。原创 2022-08-14 01:03:54 · 1877 阅读 · 0 评论 -
【DaVinci Developer工具实战】03 -导入xml文件
本文档描述了 DaVinci Developer 导入数据的的具体功能 ,它适用于导入AUTOSAR SWC 模板【AUTOSAR XML 文件】 文件。原创 2022-08-13 16:55:00 · 1238 阅读 · 0 评论 -
【DaVinci Developer工具实战】02 - 软件设计编辑器
软件设计编辑器显示软件组件,这些软件组件存在于当前设计的ECU 上。左侧显示 ECU 的组件树。右侧显示在组件树中选择的组件的详细视图。如果是原子组件,则会显示实现架构。在复合组件的情况下,则会显示复合组件的子结构,即显示所包含的原子组件/复合组件。...原创 2022-08-13 00:24:02 · 1006 阅读 · 0 评论 -
【DaVinci Developer工具实战】01 - DaVinci Developer的主要功能介绍
显示 ECU composition’s【复合组件】 端口的数据元素到 ECU 网络信号的映射,一般我们采用自动映射进行CAN DBC文件中的网络信号到软件组件端口中的数据元素【DataElement】的映射。你可以把它看成Matlab中的各种工具库,我们可以直接通过它来构造我们的原型/设计原型,也可以理解成C++中的类,我们实例化的过程就是构型原型的过程。蓝图就是模板的意思,我们可以根据蓝图直接生成蓝图的原型,也叫做模板的实例化。显示 ECU 项目的所有端到端受保护数据元素的概览。显示选定对象的属性。..原创 2022-08-12 14:45:49 · 5433 阅读 · 0 评论 -
CanTp03- CANTP 通道的配置与并发连接
AUTOSAR CanTp用于传输诊断(例如 OBD 和 UDS 协议)和 AUTOSAR COM I-PDU等数据。由于存在多种协议(如UDS和OBD),CanTp 模块需要能够同时处理多个连接(即并行的多个分段会话)。这也是AUTOSAR要求的,即传输层必须支持并发连接,特别是当 ECU 启用网关功能时作为网关时,它要同时处理不同子网络的不同诊断协议消息的传输。当然,为了节省资源,大多数 ECU 只需要单一连接进行诊断。原创 2022-08-25 00:26:19 · 1080 阅读 · 0 评论 -
CAN-TP传输协议详解
ISO 传输协议位于 OSI 层模型的第四层(传输层)。传输协议的主要任务是传输由于长度而不能作为单个协议数据单元 (PDU)传输的消息。包含大包数据【通过分段在单个 PDU 中传输】的消息通过传输协议被分段并分成多个单独的 PDU。因此,为了像 CAN 一样发送数据,设计了 CAN-TP 协议。ISO 15765-2 CAN-TP 协议是一种国际标准传输层协议,用于在 CAN 连续帧上发送超过 8 字节的数据,ISO TP 定义了一种传输方法,允许通过 CAN 总线发送多达 4095 个字节。原创 2022-08-24 11:03:07 · 1927 阅读 · 0 评论 -
【Boost C++ 库】托管共享内存详解
为此,Boost.Interprocess 提供了在boost/interprocess/allocators/allocator.hpp中定义的boost::interprocess::allocator类. 使用这个类,可以创建一个分配器,它在内部使用托管共享内存的段管理器。但是,只有当访问托管共享内存的所有其他进程也使用atomic_func(). 如果另一个进程有一个指向托管共享内存中的对象的指针,它可以使用它的指针访问和修改这个对象。要访问托管共享内存中的特定对象,可以使用find()成员函数。原创 2022-08-23 14:53:48 · 1132 阅读 · 0 评论 -
软件更新和无线升级 (SOTA)
数据收集实施预测性维护建立早期反馈循环(例如在推出新模型时)基于车辆数据提供新服务例如,为当地天气报告收集雨水传感器数据实时诊断从中央车辆支持中心从远程获得路边援助继续驾驶还是继续等待拖车服务?立即解决一些 E/E 问题软件更新通过快速修复功能和安全事件来避免昂贵的召回发布花哨的新功能,创造新的商业模式实施基于软件的模型升级OTA 是一个大而复杂的话题从最低硬件级别到系统级别的依赖关系(包括后端)还有更多功能:功能安全多处理器ECU不同的OEM更新策略AUTOSAR 自适应。原创 2022-08-23 11:42:10 · 727 阅读 · 0 评论 -
使用共享内存进行进程间通信
通过共享内存进行进程间通信是两个或多个进程可以访问公共内存的概念。通信是通过这个共享内存完成的,一个进程所做的更改可以被另一个进程查看。共享内存提供了一种方法,让两个或多个进程共享一个内存段。使用共享内存,数据只复制两次——从输入文件到共享内存,从共享内存到输出文件。管道、fifo 和消息队列的存在的问题是当两个进程进行信息的通信时,信息必须通过内核。原创 2022-08-22 11:43:27 · 797 阅读 · 0 评论 -
【AutoSAR CAN】05 - 如何使用Davinci Configurator Pro工具配置CAN硬件对象(CanHardwareObject)
如上图所示是硬件对象里我们需要关注和配置的属性,下面会具体介绍。注意在开始介绍之前,我们要强调一下,CAN 硬件对象是和具体的Can芯片控制相关的,这里我们只介绍一般性的概念。它包含可以缓存报文的一段内存缓冲区,位于CAN控制器内部,如上图的它包含配置CAN 控制器特定行为的一组特殊功能寄存器我们通过配置这组特殊功能寄存器来设置can报文的标识符CAN ID 和 can报文的长度DLC我们通过配置这组特殊功能寄存器来设置can报文的发送和接收方向(图中的Direction)原创 2022-08-20 17:06:09 · 2696 阅读 · 2 评论 -
【AutoSAR CAN】04 - 如何使用Davinci Configurator Pro工具配置CAN的波特率
改参数为Tx Arbitration start delay value ,可用于延迟仲裁过程的起始点,用来补偿CAN收发器及线路的传输延迟,以优化传输性能。有关详细信息,请参阅硬件手册。该参数指定采样点模式,即选择多少个采样点的数量,如果选择了每比特三个样本选项,则该点标记第三个样本的位置;我们要配置CAN的波特率,其实就是要弄明白 CAN 控制器的位时序即可,具体的理论部分和EB的配置部门可参考文章《该参数表示传播延迟有多少个时间单位Tq,即上文中的Propagation delay/PROGSEG。.原创 2022-08-19 00:29:12 · 2186 阅读 · 0 评论 -
【AutoSAR CAN】03 - 硬件过滤器配置
我们可以通过配置基于硬件的接收滤波器来实现过滤接收到的报文消息,即每接收到一个 L-PDU 报文,就根据配置来过滤一下,看是否接收这个L-PDU报文;这是在硬件层级的过滤,并且是静态配置的,具体的配置参数见下文。注意:这种配置是上电初始化的阶段完成的,正常模式下禁止配置,如果想要重新配置则必须要把控制器的模式切换到STOPPED 模式下进行。......原创 2022-08-15 14:45:38 · 1401 阅读 · 2 评论 -
【AutoSAR CAN】02 - CAN 标识符(CanID)长度配置
CAN 标准允许使用标准和扩展标识符。由于缺少剩余的标准 CAN ID,不同的项目可能需要使用扩展 CAN ID 和标准 CAN ID。因此CAN 驱动程序应支持标准标识符和扩展标识符。CAN 驱动程序应能够在一个 CAN 控制器上使用标准和扩展 CAN 标识符进行操作。每个硬件对象都应可针对两种标识符类型之一进行静态和单独配置。通过该 CAN 控制器发送和接收的所有 L-PDU 都应符合此配置。...原创 2022-08-14 19:29:40 · 3634 阅读 · 0 评论 -
【AutoSAR CAN】01 - CAN模块的功能及提供的API
CAN模块也就是我们所谓的CAN 驱动程序。如下图所示,CAN 驱动程序【即图中的Candrv】为位于驱动层的上面的模块【如CanIf模块,及Can接口层】提供了统一的接口。原创 2022-08-14 19:03:16 · 2023 阅读 · 0 评论 -
AutoSAR EcuM系列04- Flex EcuM的ECU启动阶段详细教程
我们将带领大家更详细地了解 ECU 的启动阶段。下图 显示了 ECU 的启动顺序。图 1 ECU 的启动顺序。原创 2022-08-12 00:28:10 · 1354 阅读 · 0 评论 -
AutoSAR EcuM系列03- Flex EcuM的状态管理
这个时后,内存管理仍未初始化,通信堆栈不存在,软件组件 (SW-C) 尚未启动。该阶段由软件集成工程师根据具体需求定义,ECU 根据集成商的特定需求从一种状态进入另一种状态,从一种模式进入另一种模式。EcuM 模块提供睡眠模式,这是总功耗和 ECU 重启时间之间的折衷做法,即比较关机模式,睡眠模式可以加快ECU的启动时间。如果唤醒源具有集成的电源控制,如带有SPI的CAN收发器TJA045,它可能仍可在此状态下唤醒。Flex EcuM 状态管理器的功能分为从启动阶段到关闭阶段的不同阶段。...原创 2022-08-11 00:38:07 · 1053 阅读 · 0 评论 -
AutoSAR EcuM系列02- Fixed EcuM的状态管理
它还提供了一个协议来验证唤醒事件是否有效,即判断是由预期的唤醒事件唤醒还是由于某些不稳定的条件引起的。例如假设ECU通过CAN总线唤醒,每当它接收到正常的唤醒消息时,它就充当ECU的唤醒源。但是,由于某些干扰,CAN线之间可能会出现电压差,从而导致CAN总线错误而异常唤醒,这是时候ECU必须忽略这个唤醒源。它处理基础软件模块的有序且受控的关闭,并从ECU的三个关闭目标【即SLEEP、OFF或Reset】选择一个,此状态下的一项重要活动是将非易失性数据写回NVRAM。...原创 2022-07-29 00:28:21 · 903 阅读 · 0 评论 -
AutoSAR EcuM系列01- EcuM模块的功能概述和变体类型
在【ECU的软硬件架构】文章中我们了解ECU的功能和组成,那么ECU具体是怎么启动的呢?我们知道,AutoSAR标准架构有三层,即APPL应用层、RTE层和BSW层。而这些层又被进一步划分为更多单独的组件,如BSW层可能有80多个组件。在ECU启动时,这些组件必须相互交互,有时也必须以某种顺序交互。这些组件的启动顺序由ECU管理器模块或EcuM处理。EcuM负责整个ECU的初始化和去初始化,包括对一些系统模块如。......原创 2022-07-28 23:38:52 · 1507 阅读 · 0 评论 -
DCM11- 根据标识符写入数据服务 ($2E)的功能和配置【基于DaVinci Configurator Classic】
根据标识符写入数据服务($2E)协议部分的解释请参考我的文章。原创 2022-07-23 15:38:44 · 1070 阅读 · 0 评论 -
UDS03-根据标识符写入数据服务【ServiceID = 0x2E】
根据标识符写入数据服务允许测试工具将数据写入由数据标识符指定的内部存储单元。电控单元应在数据已写入非易失性存储器后发送该服务的肯定应答。原创 2022-07-21 23:48:36 · 605 阅读 · 0 评论 -
DCM10- 安全访问 ($27)的功能和配置【基于DaVinci Configurator Classic】
此服务的目的是提供一种访问数据和/或诊断服务的方法,这些服务因安全、排放或安全原因而受到限制。该服务管理 ECU 的安全级别,用于限制对关键服务的诊断访问,例如在受保护的区域中写入数据。.........原创 2022-07-20 23:58:46 · 1039 阅读 · 0 评论 -
DCM09- ReadDataByIdentifier ($22)的功能和配置【基于DaVinci Configurator Classic】
关于ReadDataByIdentifier($22)协议部分的解释请参考我的文章。原创 2022-07-20 00:38:34 · 1018 阅读 · 1 评论 -
UDS02-根据标识符读取数据服务【ServiceID = 0x22】
根据标识符读取数据服务用于从电控单元存储器中读取由数据标识符所确定的数据记录值。根据电控单元的支持情况,这些数据记录可能包括模拟输入输出信号、数字输入输出信号、内部数据和系统状态信息。该服务的请求报文只支持1个数据标识符。肯定应答报文的长度与数据标识符确定的数据长度有关。当接收到根据标识符读取数据请求,电控单元负责解析该数据标识符所确定的地址信息和数据长度,根据标识符读取数据请求服务的肯定应答报文如表2。根据标识符读取数据请求服务的请求报文如表1。表1根据标识符读取数据服务的请求报文。......原创 2022-07-19 23:44:57 · 743 阅读 · 0 评论