- 博客(20)
- 收藏
- 关注
原创 [.闲于修.]Autosar_UDS_笔记篇_ISO14229-1
子函数参数securityAccessType向服务器指示该服务正在进行的步骤,客户端要访问的安全级别以及种子和密钥的格式。如果服务器支持不同级别的安全性,则每个级别应由requestSeed值标识,该值与sendKey值具有固定关系:— “requestSeed = 0x01”标识“requestSeed = 0x01”和“sendKey = 0x02”之间的固定关系。
2024-12-31 14:10:03
350
原创 [.闲于修.]Autosar_UDS_实践篇_0x27服务
相较于以前项目的随机数生成,使用的是C语言中的 srand 和 rand 函数,srand()会根据其传入的参数为rand提供一个seed,而rand会根据这个seed生成我们27服务需要的随机数seed,那如何保证srand的形参是时刻改变的呢,这个时候就会想到系统时钟,系统时钟的值变化取决于定时器模块所使用的主频,主频越高,时钟的精度越高;:4字节种子的单字节对比差值太小,集中体现在第一字节和第三字节,一万次的种子单字节差值转换为波形图后,相对平滑,波动小,也就是说随机性不够;Seed长度为4字节。
2024-10-11 16:31:32
291
原创 [闲于修]Autosar_Bootloader实践篇_1 反刷Boot的制作
此时直接编译会报 overlap的error ,这是因为你在boot里定义的一些内容,比如变量的地址在“ Bootloader_Resverd ”的预留区域,此时要对这些变量 ,无用的进行屏蔽,有用的就在原先地址上偏移0x20000;这一块呢,要看你boot代码里对“ 擦 ”sector 具体逻辑,一般来说,擦的使能使用的是uds中的0x31服务,格式为31 + 01 + did + 擦除地址 + 长度,上位机在发送此命令后,boot代码会将此报文解析并找到对应的sector进行擦除操作;
2024-08-14 18:13:08
647
原创 [闲于修]Autosar开发笔记_实践篇_网管功能屏蔽
如果没有特殊要求,比如要求代码编译生成文件的大小,不建议直接把配置工程的NM、CanNM直接删掉,因为工程里有一些其他的关联模块,删掉之后会有较大的改动,包括源代码工程里会有相关的手写码;3、具体项目手写码部分:由于项目代码中使用网络管理中的部分状态作为一些条件,这里也注释掉或修改条件;由于新项目不需要网络管理功能,所以需要基于以往项目的代码进行阉割,将网管功能屏蔽掉,让我们看一下具体需要关注哪些地方。从模块上看:按照Autosar的分层架构,网络管理涉及的模块有:NM、CanNM、BswM、EcuM。
2024-06-11 11:24:10
293
原创 [闲于修]Autosa开发笔记_工具篇_UDE5.0
设置方式:代码显示界面右键,最底部选择Pefresh/Properties;在以下界面中设置并应用;
2024-05-17 14:28:17
406
原创 [闲于修]Autosa笔记_总目录
这里开出一篇所有博客的总目录,方便文章的管理和查看,也是以我自己从入门到现在的学习历程为顺序,文章会记录一些学习的理论性常识和实际开发的过程和遇到的问题总结;后面会根据项目的开发进度一点点去补充笔记,希望我的分享对你有用;
2024-05-13 15:53:45
306
1
原创 [闲于修]Autosar_输入文件_1_DBC文件编辑(查漏补缺)
A2:右键Message,New一个新的Signal Group,给信号组分配信号时,直接将所属该信号组的信号长按然后拖到Message,再从Message拖到Group,(工具不支持直接拖给信号组,相当于Signal映射的Msg,而Signal Group只是给信号统一分配在一起管理)A1:Signal 添加到对应的 Messages里,在已映射的Message下右键Signal,Edit Mapped Signal到Rx Signals里后,该Message会自动被识别为Rx Message。
2024-04-19 17:59:27
291
1
原创 [闲于修]Autosar_CAN学习笔记_1 CAN报文格式和相关机制
例如:总线上有两条报文,CanId分别为0x122、0x129,线与后,由于0x122的第8位(bit 3)为显性0,0x129为隐性1,显性覆盖隐性电平后总线上为显性,所以0x122在仲裁中胜出;发送节点向总线发送报文时,在发完crc段后会发送ACK段(1 Bit 隐形电平),等待接受节点接收报文且CRC校验通过认为接受报文与发送节点发出的报文一致,接收节点会应答ACK段(1 Bit 显性电平)告知发送节点接收完毕;具体实现原理:“线与”2、CAN总线仲裁机制。
2024-01-22 10:02:07
543
原创 [闲于修]Autosar_OS学习笔记_1 入门术语扫盲
在实时操作系统(RTOS)中,任务是一个更细粒度的运行实体,它可以是一个轻量级的进程或一个线程,拥有特定的优先级和运行状态。①运行状态(Running):处于运行状态时,CPU资源被分配给该任务,该任务的指令被执行。在操作系统当中,任务为用户函数的执行提供了框架,是用户函数的载体,操作系统通过调度器来管理任务的先后执行顺序,为任务提供了异步执行和并发执行的管理机制。在AUTOSAR OS中,中断的优先级始终高于任务的优先级,即最低优先级的中断都可以打断最高优先级的任务,即使该任务不可抢占也不例外。
2024-01-18 11:11:49
1341
1
原创 [闲于修]Autosar_Bootloader学习笔记_3 相关机制
增加延时的目的在于在判断完 “ 应用程序有效 ”为有效后,延时一段时间继续在boot里,此时发送10 02进入的就是bootloader的 02(编程) 会话,这就是常听到的后门刷写机制实现的原理,当app跑飞、卡死时想要更新app,只需下电再上电时持续发送编程请求(10 02)就可以在stay in boot期间进入boot的编程会话,继续进行正常刷写流程;Stay In Boot 功能的实现是在验证 “ app有效标志 ” 是否有效之后增加的延时,
2024-01-17 14:29:42
898
原创 [闲于修]Autosar_Bootloader学习笔记_2 启动和刷写时序流程
PBL只具备刷写SBL的功能,并不具备刷写APP的功能,也就意味着PBL刷写SBL的流程从开始就是固定的,避免了异常工况导致丧失刷写能力的发生,ECU重新供电后,仍然可以使用PBL更新SBL,之后在用SBL更新APP;SBL和PBL的区别在于SBL运行在RAM里,PBL在Pflash,PBL主要功能在于检查 “ 是否有重编程请求 ” 和 “ app有效标志是否置起 ”,根据检查结果选择是否激活SBL,剩余的刷写步骤都由SBL来完成,直至刷写成功后重启;A:在执行内存擦除时,
2024-01-17 09:49:55
2346
4
原创 [闲于修]Autosar_Bootloader学习笔记_1
TransferData服务请求包括一个blockSequenceCounter,以便在多个TransferData请求的序列中,如果TransferData服务失败,可以改进错误处理。这意味着在RequestDownload (Ox34)或RequestUpload (Ox35)请求消息之后的第一个TransferData (Ox36)请求消息以1的blockSequenceCounter开始。客户端使用TransferData服务将数据从客户端传输到服务器(下载)或从服务器传输到客户端(上传)。
2024-01-16 11:06:15
1749
1
原创 Can通信栈_通信模式管理
状态,等待Communication Allowed的触发信号,只有 “CommunicationAllowed=TRUE” 才能将通信模式转换为FULL_COM,如果没有Allowed的使能,则FULL_COM请求不会被执行;Autosar的分层架构上看,user向ComM请求通信,而真正干活的是NM和CanSM,ComM就是将用户的请求传达给NM和CanSM模块。CanSM切换的是总线模式,下层模块为CanIf,调用CanIf提供的接口对can控制器和can收发器的模式进行切换,详细状态及子状态见。
2024-01-04 17:02:00
1224
1
原创 Autosar 通信栈【Communicate Stack】-1 报文的收发(COM层process详解)
这一篇只简单的理一下,Autosar架构下,Can报文的收发流程和参与的模块。
2023-12-27 15:51:22
3775
4
原创 Can BusOff笔记
此时BSM状态为CANSM_BSM_S_FULLCOM,子状态为FULLCOM_S_RESTART_CC,进入case:调用CanSM_FullCom_S_Restart_CC,在此函数中调用CanSM_SetControllerModeRepeat将所有cancontroller模式设置为。(BusOff事件发生时间计时,由busoff发生后从0开始,在1ms函数CanSM_FullCom_S_Tx_Off中周期++,只有在BusOff事件刚发生或者cansm初始化时清0)
2023-12-20 17:30:21
4348
2
原创 XCP学习笔记
PID包含0x00 <= DAQ <= 0xFB范围内的(绝对或相对)ODT数。ODT编号是指对象描述符表(ODT),该表描述了剩余数据字节中包含哪些数据采集元素。什么又是ODT呢?这里引入几个概念元素(Element):通过XCP地址来指定的一个测量对象的内存。对象描述表(ODT:Object Description Table): 归并元素的测量内存,在一个DTO报文中聚集最多的可发送的内存的表。ODT条目(Entry):为创建ODT的元素的测量对象的XCP地址。
2023-12-14 10:38:33
2988
1
原创 【Autosar下的】休眠与唤醒
Poll模式下仍然在执行代码,轮询检查是否有唤醒源,调用函数为EcuM_CheckWakeup,发生发生唤醒事件后唤调用EcuM_SetWakeupEvent()通知 EcuM,在EcuM_SetWakeupEvent中将唤醒源的状态设置为pending,然后就会调用EcuM_StartWakeupSources,参考上面步骤,从唤醒角度上看,网络唤醒就是在收到有效唤醒事件,比如接收到网络管理报文,网络被激活,报文正常收发,这些的前提是ECU已经是醒着的状态;那ECU休眠都做了什么?
2023-12-08 15:48:37
2893
2
原创 【闲于修】Autosar_CanDriver_1_CAN接收邮箱掩码设置
另外还有网络唤醒报文的BasicCan掩码设置,因为规定网络唤醒报文的ID范围是0x500 ~~ 0x53F,计算掩码时需要注意这个。因为BasicCan类型的邮箱接收的是一段ID范围的报文,以上三条报文取段范围为0x1B0 -- 0x1F7。---------------------------文章编辑参考PlutoZuo大佬的博客。1:0001,每位都需要关心(因为需要确定ID的第一位是1),所以掩码:0111。0 -- 7 :0000 -- 0111,关心。111,所以掩码:1000;
2023-12-07 11:29:29
1827
1
原创 Autosar 网络管理
1、主动唤醒 :ECU节点有主动工作请求,通过网管报文唤醒其他节点2、被动唤醒: ECU节点接收到其他(有主动工作请求)节点的网管报文当主动和被动唤醒都被释放时,就需要休眠; 模式详解见:https://blog.youkuaiyun.com/wteruiycbqqvwt/article/details/107618518
2023-12-07 10:40:40
1342
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人