自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (1)
  • 收藏
  • 关注

原创 BswM模块配置指导

对于BswM的配置使用,脑海里谨记四个概念即可:Rule、Expression、Action、ActionList。

2024-03-16 17:40:59 372

原创 CAN通信篇 - Com模块配置(七)

以上就是Com模块的配置,关于保持默认配置的描述,实际在应用中默认配置会根据具体配置发生改变,工具会报错,根据报错提示处理即可。关于基本Can通信的配置介绍,通信相关的配置到此就介绍完了,贴一张工具Validation的图Communication相关validation pass。当然实际工程中,信号是需要通过Rte传递到上层Appl Swc的,这个后续会介绍.

2024-03-16 17:33:51 198

原创 CAN通信篇 - ComM模块配置(六)

在不带NM功能(也不带Pnc功能)的基本CAN通信通道上,ComM的配置还是比较简单的,仅仅是定义ComMUser并引用到通道相应ComMChannel上即可。ComM通用配置使用默认即可。

2024-03-06 18:02:02 414

原创 CAN通信篇 - CanSM模块配置(五)

CanSM在Configurator配置中比较简单,但是CanSM本身的状态机并不简单。详情可以参考我在理论篇关于CanSM模块的详细介绍。

2024-03-06 17:58:39 163

原创 CAN通信篇 - PduR模块配置(四)

PduR的作用就是负责将Pdu在源和目的地之间传递;从零开始的项目需要配置定义上层和下层;注意在EcuC中创建Pdu;目的地Pdu配置中特殊的配置项需要更具具体需求具体更改;

2024-03-05 16:37:38 215

原创 CAN通信篇 - CanIf模块配置(三)

在AUTOSAR CAN通信架构下,CanIf是位于Can模块上层的模块,向下与Can模块交互。CanIf模块的配置比Can模块稍微复杂些,一级配置容器就有6个,如下图所示,下面一一详细介绍。通过CanIfCtrlDrvCfg引用到对应Can控制器;通过CanIfTrcvDrvCfg 引用到对应的Can收发器;CanIf buffer的定义、配置;CanIf Pdu的定义、配置(Tx和Rx)

2024-03-05 16:36:43 661

原创 CAN通信篇 - CanTrcv模块配置(二)

有些Can发送器芯片是带唤醒功能的,如果启用就注意该模块配置与之相关的开关需要使能;另外就是RXD和STB的Pin角,查芯片硬件手册确定,务必要正确;

2024-03-05 16:35:38 353

原创 CAN通信篇 - Can模块配置(一)

以上就是Davinci Configurator中关于Can模块的配置介绍。这个模块主要进行Can控制器相关参数和Can模块的Tx和Rx的MailBox配置。至于CanGeneral的配置,一般保持默认即可。另外关于轮询式Can报文处理的周期定义,仅在配置为轮询式处事方式时才需要,对于配置为中断式的,空置即可。这个模块可以理解为是AUTOSAR架构下Can通信的最低层(暂不考虑MCAL),直接与CanBus交互;

2024-03-05 16:34:44 1147

原创 AUTOSAR通信篇 -Communication(COM)

ISO 17356-4:2005 Road vehicles – Open interface for embedded automotive applications – Part 4: OSEK/VDX Communication (COM) 是AUTOSAR COM模块的功能基础。AUTOSAR COM模块以此为基础,通过不同的实现的方式,实现了全部功能和API(除去一些特殊不必要的)一个I-PDU可以归属任何一个I-PDU组;

2024-02-27 21:14:29 274

原创 AUTOSAR内存篇 -Memory Abstraction Interface(MemIf)

本文描述AUTOSAR基础软件模块“Memory Abstration Interface(MemIf)”。该模块允许NVRAM管理器访问多个内存抽象模块(FEE或EA模块),如下图所示。内存抽象接口(MemIf)从FEE或EA模块抽象出来,为上层提供在统一的线性地址空间上的虚拟分段。这里的介绍的MemIf的API都实际映射到底层的内存抽象模块(FEE/EA),对于每个API的具体行为,具体参考映射模块对应API介绍。参数DeviceIndex被用于选择内存抽象模块(也就是内存设备)。

2024-02-20 13:41:49 79

原创 AUTOSAR内存篇 -EEPROM Abstraction(EA)

EEPROM抽象(EA)一次只接受一个作业任务,即模块不提供作业任务的队列(这是NVRAM 管理器的任务)。由于NvM是EA模块唯一的调用方,为了使该EA模块尽可能小,模块函数不做校验,无论模块当前是忙还是不忙。使作业任务排队等待处理以及仅当前一个作业完成或取消才开始下一个新任务是NvM负责的任务。参数ConfigPtr需要总是保持为NULL_PTR(由于当前该参数还未被使用)。

2024-02-05 17:29:56 156

原创 AUTOSAR内存篇 -EEPROM Driver(Eep)

本文介绍EEPROM驱动,外部和内部EEPROM都适用。EEPROM驱动提供对EEPROM的读、写、擦服务。还提供EEPROM中数据块与内存中某个数据块的对比服务。这些服务都是异步的。内部EEPROM的驱动直接访问微控制器硬件,是位于微控制器抽象层。外部EEPROM驱动使用handlers(大部分情况是SPI)或驱动去访问外部EEPROM设备,位于ECU抽象层。这两种情况中的功能要求和范围是一样的,因此在语义上,API完全一致。

2024-02-05 17:25:10 253

原创 AUTOSAR内存篇 -FlashDriver(Fls)

本文介绍AUTOSAR BSW的闪存驱动(Flash Driver)模块,应用于内部和外部闪存。闪存驱动模块为闪存读、写、擦提供服务,并且如果底层硬件支持,可为设置/重置写/擦保护配置接口。在ECU的应用模式下,闪存驱动仅由Flash EEPROM模块使用,用于写数据。在应用模式,它不用于写程序代码到闪存中,但这会在boot模式下发生,不属于AUTOSAR范围。内部闪存的驱动直接访问微控制器硬件,且位于微控制器抽象层。

2024-02-01 18:29:28 206

原创 AUTOSAR内存篇 -Flash EEPROM Emulation(FEE)

本规范介绍Flash EEPROM Emulation的功能。Flash EEPROM Emulation(FEE)从设备特定寻址机制和段抽象出来,为上层提供一个虚拟的寻址机制和段,并且“虚拟地”不限制访问次数(实际上是由擦写循环次数寿命的)。FEE模块为上层提供虚拟的32位线性地址空间及统一的寻址机制。16位的块号码 – 理论上允许65536个块;16位的块偏移 – 理论上每个块最大64KB;16位块号代表一种可配置的(虚拟的)分页机制。地址对齐的值可以从底层闪存驱动器和设备中导出。

2024-02-01 18:12:04 164

原创 AUTOSAR内存篇 -内存访问(MemAcc)

MemAcc模块为不同的上层模块提供基于地址的独立的存储器访问。它根据物理分段实现所有高级功能,如Job管理、访问协调和内存驱动程序访问请求分配,因为内存驱动程序希望所有内存访问都与物理分段对齐。AUTOSAR架构下对内存的访问,被拆分为MemAcc和Mem两个模块,其中Mem依赖于硬件,属于硬件不独立模块;而MemAcc模块为硬件独立模块,使用Mem驱动的服务函数,为上层提供内存访问服务。

2024-01-30 15:24:08 261

原创 AUTOSAR内存篇 -内存驱动(Mem)

Mem驱动程序的task是基于底层内存设备技术的物理分段的低级内存访问。Mem驱动程序的API与内存设备技术无关,因此向存储器访问模块上层提供了与存储器设备无关的接口。所有高级功能(如跨段操作)都由内存访问模块处理,以尽可能降低Mem驱动器的复杂性和占用空间。Mem驱动API命名、类型定义和文件命名规则都遵循标准的AUTUSAR BSW模块实现。服务Mem_Init初始化Mem驱动的内部状态,并设置Mem驱动Job处理状态到MEM_JOB_OK。

2024-01-30 15:14:26 91

原创 AUTOSAR看门狗篇 -看门狗接口(WdgIf)

WdgIf不会为看门狗驱动添加功能,也不从看门狗属性中提取信息,如toggle或窗口模式、超时时间等。也就是说,它不隐藏底层看门狗驱动程序和看门狗硬件的任何功能,仅作为一个"管道"连接看门狗驱动和看门狗客户端。如果配置了多个看门狗驱动程序,并且为此模块启用了DET,则应检查参数DeviceIndex是否为模块服务中的现有设备。使用错误码WDGIF_E_PARAM_DEVICE向DET报告检测到的错误,且不应执行被调用的服务。

2024-01-26 14:57:20 177

原创 AUTOSAR看门狗篇 -看门狗驱动(Wdg)

Wdg模块静态(至少是在编译时)检查配置参数是否正确。Wdg模块不实现去初始化/关闭的接口。如果看门狗支持去初始化/关闭,且环境允许使用此功能,去初始化/关闭的功能通过使用OFF参数调用Wdg_SetMode实现。有些看门狗不支持去初始化/关闭功能,因为某些环境下允许使用该功能(例如在有功能安全要求系统中)。如果必须禁用中断以确保数据一致性或该模块的正确功能(例如,在切换看门狗模式时或看门狗触发程序期间),则应尽可能使用相应的BSW调度程序功能来完成此操作(这意味着独占区域的定义)。

2024-01-26 14:50:54 92

原创 AUTOSAR系统服务篇-多核OS

由于OS应用与核绑定,OS应用特定的StartupHook尽在其所绑定的核上执行。例如,如果硬件支持,在不同核上的自由运行硬件计时器使用同样的定时器(外设维护一样的计数器值),因此在不同核上提供同样的时间基准。如果核心上的任务/ 2 类ISR,其中同一个或不同的任务/2类ISR已经持有一个自旋锁,试图获取另一个未配置为最近获取的自旋锁的直接或间接后续者的自旋锁(通过OsSpinlockSuccessor配置参数),或者未配置后续者,AUTOSAR操作系统将生成错误(获取多个自旋锁时,如果不按照定义次序)。

2024-01-24 16:49:46 314

原创 AUTOSAR系统服务篇-操作系统

本文当介绍关于AUTOSAR Operating System的基本知识,满足AUTOSAR SRS文档陈述的需求。一般来说,操作系统可以根据它们的特性分成不同的组,例如静态配置和动态管理。静态配置和扩展的;旨在满足实时性能;提供基于优先级的调度策略;提供运行时保护功能(内存保护、时间保护等);可在低端控制器上运行,无需外部资源;该特性集定义了当前一代汽车ECU中常用的操作系统类型,远程信息处理/信息娱乐系统除外。

2024-01-24 16:30:04 62

原创 AUTOSAR系统服务篇-WdgM

Watchdog Manager(WdgM)模块是一个BSW模块,在标准AUTOSAR架构中,它位于服务层。WdgM能够监控从硬件看门狗实体的触发中抽象出的程序执行。WdgM监督配置数量的监督实体的执行。当它检测到程序执行中违反了对配置的时间和/或逻辑的约束时,它采取许多可配置的动作来从该故障中恢复。Alive Supervision - 用于监控周期性软件的定时Deadline Supervision - 用于监控非周期性软件的定时。

2024-01-05 18:08:21 983

原创 AUTOSAR系统服务篇- EcuM多核

启动时主核启动从核关机时主核通知从核一句话总结:多核场景下需要主从协同完成启动、初始化、睡眠、关机等等EcuM负责的事情。详细时序图,参考本文。

2023-12-29 15:46:54 913

原创 AUTOSAR系统服务篇- EcuM

负责上初始化负责下电和睡眠负责唤醒事件处理并通知BswM不会改变ECU状态,只负责将仲裁结果通知BswM,改变状态的事情还是由BswM执行。

2023-12-27 11:01:33 944

原创 AUTOSAR实战篇之——NvM

本篇是对理论篇NvM理论概念描述的实际操作。使用的工具是Vector公司的Davinci。List item。

2023-12-11 17:43:52 147

原创 AUTOSAR系统服务篇 - BswM的使用

本文档是对4.0.3版及更高版本的AUTOSAR模式管理应用的介绍。其主要目的是为AUTOSAR的用户和开发人员提供基于示例的AUTOSAR模式管理不同方面的详细概述,这些示例在文中进行了解释。本文中的代码清单共同构成了示例ECU的配置。第2章解释了基础的模式管理概念,例如一般的模式、如何实现模式切换、模式管理者和模式用户的角色等。其次介绍了应用模式管理和基础软件模式管理的依赖关系,两者密切相关。基础软件模式管理器是AUTOSAR R4.0中的中央模式管理模块。它具有很高的可配置性。

2023-12-11 17:33:50 211

原创 AUTOSAR系统服务篇 - BswM

BswM的基础功能可描述为两个不同任务:模式仲裁和模式控制。模式仲裁部分启动模式切换,该模式切换由从SW-Cs或其他BSW模块接收的模式请求和模式指示的基于规则的仲裁产生。模式控制部分通过执行包含其他BSW模块的模式切换操作的动作列表来执行模式切换。

2023-11-29 15:56:12 180

原创 AUTOSAR存储篇 - NvM的使用

访问NvM的方式有两种,ServiceSwComponentType和BlockIdSwComponentType;NvM同步方式也存在两种隐式和显式;NvMBlockDescriptor也存在两种带永久RAM和不带永久RAM;在BlockIdSwComponent方式的访问中,可以选择使用DirtyFlag支持,在支持DirtyFlag时,存在3中写入方式:周期写入、关机写入和立即写入。

2023-11-21 11:16:19 347

原创 [项目方案]AUTOSAR跨网络的CAN报文路由的实现

本篇介绍一种使用Vector提供的Api实现CAN报文的跨网络路由的AUTOSAR方案

2023-11-07 10:53:02 929 2

原创 静态代码分析之- CanIf_SetDynamicTxId

定义函数中使用的局部变量,包括:errorId,controllerId,dynamicPduId。errorId是用于存放运行时错误,报告给DET;controllerId是用于存放依据传参"CanTxPduId"获取的控制器Id;dynamicPduId看名字是代表动态的Id,其实并不是Id,而是索引动态Id的index。动态ID统一在数组CanIf_DynTxId管理;

2023-11-01 16:48:09 541

原创 AUTOSAR存储篇 - NVRAM Manager(NvM)

NvM模块支持以下类型的NVRAM存储:NVM_BLOCK_NATIVE类型的NVRAM存储应包括下列基本存储对象:NVM_BLOCK_REDUNDANT类型的NVRAM存储应包括以下基本存储对象:NVM_BLOCK_DATASET类型的NVRAM存储应包括以下基本存储对象:• * 可能的数据集数量取决于配置参数NvMDatasetSelectionBits.

2023-10-31 16:47:46 915

原创 AUTOSAR通信篇 - CAN网络通信(七:Nm)

如果通过回调函数Nm_ForwardSynchronizedPncShutdown指示了PN关闭报文的接收,那么Nm应停止PNCs的外部PNC请求的ERA相关的监测,这些请求在给定的PNC位向量中被指示为PNC关闭(PNC位被设置为‘1’),在指示的Nm通道的ERA中将相应的ERA位设置为‘0’,并通过调用ComM_Nm_ForwardSynchronizedPncShutdown(< ComMChannel >,< PNC bit vector >)将指示转发给ComM的相应ComMChannel。

2023-10-23 14:13:47 719

原创 静态代码分析之- CanIf_Transmit

endif#endifreteval为函数返回值,默认为E_NOT_OK;errorId为故障码,默认为CANIF_E_NO_ERROR;如果支持带checksum发送,那么定义带checksum的txPduData;定义函数使用的Pdu结构 localPdu;如果支持动态ID,那么定义动态Id DynamicPduId;controllerId为控制器Id,用于识别发送的Pdu发送到那路CAN上;

2023-10-13 17:24:34 224

原创 AUTOSAR通信篇 - CAN网络通信(六:CanNm)

AUTOSAR CanNM是基于去中心化直接网络管理策略,这意味着每个网络节点仅依赖于在通信系统上接收或发送网络管理PDUs,来执行自给自足的活动。AUTOSAR CanNM算法基于周期的网络管理PDUs,这些PDUs周期地被cluster上所有节点接收。接收的网络管理PDUs表明发送节点期望保持该网络管理cluster为唤醒状态。

2023-09-28 12:02:50 835

原创 AUTOSAR通信篇 - CAN网络通信(五:ComM)

ComM模块功能描述

2023-09-18 16:23:36 1077

原创 AUTOSAR通信篇 - CAN网络通信(四:CanSM)

CanSM状态机在一级层面上分为:NO_COMMUNICATION, PRE_NO_COMMUNICATION, WAKEUP_VALIDATION,PRE_FULL_COMMUNICATION,FULL_COMMUNICATION,SLIENT_COMMUNICATION,CHANGE_BAUDRATE,7个子状态;CanSM的作用就是根据发生的事件或者根据API调用触发状态机流转,需要时并通知ComM、BswM等模块网络状态;CanSM关于状态机的触发流转,全部记住是几乎不可能的,只要了解即可。

2023-06-14 18:59:32 5109

原创 AUTOSAR通信篇-CAN网络通信(三:PduR)

PduR提供路I-PDU(Interaction Layer Protocol Data Units)的路由服务。PduR基于静态定义的I-PDU标识符来执行I-PDU的路由,在运行期间没有I-PDU被动态路由,即PduR的路由表是静态配置,配置完成后在运行时不支持更改。PduR路由路径:静态路由路径,描述的是每个被路由I-PDU的路由属性。PduR引擎:根据PduR路由路径执行路由功能的代码,PduR引擎要处理将I-PDU从Source路由到Destination;

2023-06-05 16:46:26 3627

原创 AUTOSAR通信篇 - CAN网络通信(二:CanIf)

CanIf的主要功能就是隔离底层硬件(驱动)区别,为上层提供统一的调用接口。其角色定位于"上传下达"的中转站。另外CanIf根据需求可配置的报文缓存。熟悉CanIf提供的常用API及其功能,即可满足日常工作中遇到问题分析的需求。

2023-05-29 14:33:15 8235

原创 AUTUSAR通信篇 - CAN网络通信(一:CanDrv)

CAN(Controller Area Network)网络通信是一种现代的串行通信协议,被广泛应用于汽车、工业控制和其他领域。它最初由德国BOSCH公司于1986年开发,旨在满足汽车电子系统中的通信需求。然而,由于其卓越的性能和可靠性,CAN通信很快就在其他行业中也得到了广泛采用。分布式通信架构,允许多节点同时在总线收发消息;差分信号设计,提高信号抗干扰性;支持优先级仲裁,可组成多主机局部网络;相对结构简单、成本低;关于CAN的更多基础知识这里不再详细展开。CAN通信讲解 - 知乎。

2023-05-14 14:02:54 3149 2

原创 初识AUTOSAR

AUTOSAR诞生是为了满足汽车电子产业日益增长的软件开发需求;AUTOSAR的主要优点是提高效率、保证质量、降低成本;写在最后:AUTOSAR软件的开发是依赖于符合AUTOSAR规范的第三方工具链的,目前市场主流工具是Vector公司的Davinci系列,其次是ETAS公司的工具链,还有更小众的西门子公司的Mentor。国内也有相关企业,如东软、华为有AUTOSAR工具链。V公司的最好用的,也是最贵的^_^。

2023-04-29 18:44:39 2349

原创 Using ld - The GNU linker

linker script

2022-12-23 18:00:33 1260

ASAM_MCD-2D_ODX_V2.1.0.pdf

ASAM MCD-2 D (aka ODX) allows the data-oriented specification of vehicle diagnostics. The standard defines a data model for the description of diagnostics capabilities of ECUs needed throughout the lifecycle of a vehicle from development, testing, production to after-sales and service. The standard facilitates the exchange of diagnostic information between partners in development process, e.g. between OEM and ECU supplier or between OEMs in a cooperation project. In detail, ODX covers the description of: Diagnostic communication via requests and responses, trouble codes (DTCs), parameters and other diagnostic data Communication parameters for different diagnostic protocols ECU memory programming ECU variant coding Function-oriented diagnostics

2020-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除