- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 AUTOSAR 存储
存储硬件抽象(Memory Hardware Abstraction)是从存储设备(片内或片外)和ECU硬件布局中抽象出来的一组模块,主要作用对EEPROM以及Flash存储器访问的抽象,并封装成抽象接口(MemIf),通过存储抽象接口实现对这两种硬件的通用访问,并提供一组相同的API接口实现对不同厂商、不同类型存储设备的读、写、擦除等操作。NV ROM数据存在DFlash或者外部的EEPROM中,在程序执行中数据不会改变,在空的或者破坏的ROM中为默认的数据。Pflash用于存储程序代码和只读数据。
2026-08-04 16:50:11
185
原创 AUTOSAR GPT及配置
GPT根据计时模式可以分为Continuous及One-Shot模式,其中Continuous在开始计时达到设定时间后会自动开始下一轮计时,但对于One-Shot模式则需要调用API Gpt_Startimer()重新开始定时。GPT即General Purpose Timer(s) ,通用定时器模块,该模块通过使用硬件定时器通道为操作系统或其他需要定时器功能的模块提供定时功能,通常可提供从微秒级到毫秒级的定时时钟功能。4)当不需要再继续定时调用Gpt_Stoptimer(),关闭定时器,停止计时。
2026-08-04 16:49:56
189
原创 AUTOSAR WDG
WdgM 负责刷新喂狗条件,在WdgM_MainFunction中会刷新Condition Value(配置值),并通过WdgIf_SetTriggerCondition让WdgDriver重置硬件寄存器(喂狗),并会计算出中断喂狗的counter = Condition Value / Wdg ResetTime, 之后如果WdgM_MainFunction不再刷新Condition Value,则会在中断中进行counter喂狗,并且counter-1。接下来可以看看具体喂狗的时间轴;
2026-08-04 16:49:30
185
原创 UDS基础介绍
在发送端到接收端的请求仅为一条消息时,即为单帧(SingleFrame),单帧数据格式如图,单帧第一个字节 byte0 为 PCI, PCI 的高 4 位为 0, PCI 低四位为接下来准备传输的数据长度,从第二个字节 byte1 起为传输的数据(SID 也作为数据)。最大多帧长度为 4095 个字节。• BS 表示接收端允许发送端连续发送的最大连续 N_PDU 帧数 BS 为 0 的时候告诉发送端可以发完剩余的全部 N-PDU BS 为 01 - 0xFF 时,表示发送端可以发的连续帧最大帧数。
2026-08-04 16:49:03
174
原创 AUTOSAR FIM
DEM 的“聚合事件”,把一组基础事件按某种规则(如 OR/AND 或指定状态位)“汇总”为一个事件,用于上层更简单地感知总体健康或作为 FIM 抑制的依据。例如:在HKMC LX3项目中,有73个故障,这些故障某一些出现以后,离手检测功能就应该停止,比如在过压或欠压时,离手检测功能失效。FIM 中的功能标识(功能点)。当某个故障(DTC)发生后,DEM 会给出故障状态(例如:TestFailed、TestFailedThisCycle 等),FIM 根据这些状态判断某个功能是否应该被禁止。
2026-04-08 13:43:07
414
原创 AUTOSAR DEM
诊断通信管理(DCM, Diagnostic Communication Manager): DCM模块处理来自外部测试人员或机载测试系统的诊断请求,转发来自外部诊断扫描工具的请求,并进一步负责响应消息的组装(DTC,状态信息等),之后将传输到外部诊断扫描工具。根据故障码能够判断出出现故障的汽车部件,根据具体的关联数据可以读到出现故障的时间以及当时的ECU的一些状态数据(记录易于判断故障原因的数据)诊断事件管理模块作为AutoSar诊断模块的重要组成部分,主要负责处理和存储诊断事件(错误)和关联数据。
2026-04-08 13:42:21
373
原创 AUTOSAR DCM
1. PduR调用Dcm_StartOfReception向Dcm模块请求buffer,确定当前可以用于接收的buffer的大小用于计算机传输层的blocksize。收到请求时,PDUR会将数据诊断请求数据从下层的buffer中copy到诊断的接收buffer中,DSD会从此buffer中取出数据进行处理。收到发送数据时,PDUR会将数据诊断请求数据从DSL的发送buffer中copy到PDUR发送的buffer中,后续由CAN协议栈处理。3.其他模块给出响应数据,将数据发送给DSD。DSL(诊断服务层)
2026-04-03 17:17:57
51
原创 AUTOSAR 网络管理报文格式
表中没有定义的状态转换是向不发送NM消息的状态转换,相应的转换变化的NM State值没有单独描述。例如,当节点从“主动模式”转换为“非主动模式”时,如果没有“Network Request”,则对应的位必须设置为“0”。上述两种情况,可能会根据NM ECU发送的NM报文中用户数据的初始值影响PN ECU的选择性唤醒功能。除了第0位(重复报文请求)的位置外,应用的ECU应该识别该报文,而不考虑其他位置的值控制位向量(==)Rvte1的Bit1到bit7被视为忽视。如果不使用,默认值为’0’。
2026-04-03 17:17:02
478
原创 AUTOSAR COM M
总结:COMM主要是通讯的收发处理,在不同的模式对于APP和网络报文的发送接收的限制,所以该模块配置主要集中在对PNC的配置,包括是PNC的置位和通讯的启动停止。
2026-04-02 10:39:11
33
原创 AUTOSAR Diag
诊断通信的管理,依据协议UDS(Unified Diagnostic Services——ISO14229),主要提供读写数据、读取DTC、通信管理等服务。Dcm(Diagnostic Communication Manager) 诊断通信管理————通信服务。Dem(Diagnostic Event Manager) 诊断事件管理————系统服务。Fim(Function Inhibition Manager) 功能————系统服务。1)SWC: → 把故障及状态报给DEM。
2026-03-31 09:44:49
66
原创 AUTOSAR COM Stack
在AUTOSAR架构中,CAN Interface (CanIf) 模块用于管理CAN通信的硬件抽象层。CanIf模块提供了一个标准化的接口,用于上层模块与CAN驱动程序之间的通信。用于发送数据的主要函数是 CanIf_Transmit。在AUTOSAR架构中,CAN Interface (CanIf) 模块用于接收数据的主要函数是 CanIf_RxIndication。• 功能: 该函数用于将上层模块的数据传输请求发送到CAN网络。• 功能: 该函数用于通知CanIf模块接收到新的CAN消息。
2026-03-30 10:34:20
27
原创 C语言盲点
• 防止优化:volatile告诉编译器,这个变量的值可能被外部因素改变(如硬件寄存器、其他线程),因此每次访问都必须从内存中读取,而不能缓存或优化。• 常量优化:编译器通常会把 const 变量放在符号表中,而不是分配内存,从而在编译期直接替换成常量值。#define STACK_MAX_SIZE 100 /* 栈最大空间 */• 编译期限制:const告诉编译器,这个变量在源代码中不能被修改,否则会报错。以下为Stack.c内容。/* 基本类型 *//* 栈的类型 *//* 基本状态 */
2026-03-30 10:10:12
250
原创 CAN、CAN FD
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。在汽车和工业行业被广泛使用。
2022-08-01 14:43:31
9279
原创 PID详解
1、什么是PID及其作用设定一个输出目标,反馈系统传回输出值,如与目标不一致,则存在一个误差,PID 根据此误差调整输入值,直至输出达到设定值.为什么需要PID呢,比如控制温度,我们需要设置一个要达到的目标温度值,当将温度稳定在目标温度值例如,我们希望水的目标温度值为70°,其希望无非就是可以快速而且无抖动的达到70°,并稳定在70°如果我们使用普通的方式加热,当温度到达70°后就以及停止加热,岂不是简单快速,当然用在要求不高的场合也可以,但是如果要求更高的场合呢,会出现温度到达70°后......
2022-06-14 10:43:28
55061
20
原创 C语言联合体union占用空间大小问题
联合体占用空间大小要遵循两个原则:1. 大小要足够容纳下所有成员的大小,也就是找到占用空间最大的元素2. 占用空间最大的元素大小要可以被所有共用体成员类型整除开3. 如果元素大小不可以被共用体某一个成员的类似整除开,必须添加空白自己,直到可以被共用体所有成员类型整除开。
2022-03-10 15:21:10
7782
原创 STM32完美移植RT-Thread实时操作系统
STM32完美移植RT-Thread实时操作系统官网下载RT-Thread nano:下载 - RT-Thread物联网操作系统解压打开下载文件夹打开自己的裸板文件夹在自己的裸板文件夹中新建RT-THREAD,在RT-THREAD下新建RT-include、RT-port、RT-source(名字自己定)再打开USER新建boaed文件夹下面开始复制相关文件打开RT-Thread——bsp——stm32f103-msh——RTE——RTOS——复制board.c和rtconfig.h到自
2021-08-27 10:35:26
1720
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅