网站首页 > 基础教程 正文
现在做车载控制器的开发,AUTOSAR架构基本是绕不开的,而Vector达芬奇工具,也是大家常用的AUTOSAR开发工具。作为刚入门的小菜,记录一下平时的配置。
首先说一下总体感受,Vector的达芬奇工具上手难度比较低,主要还是其自动化做得好,比如CAN通信协议栈的开发,基本把只要导入个dbc,然后点一下update,然后摸一会儿鱼,在抬头一看,基本全好了,高效。
另外还有一点印象很深的就是大部分的工具报错,都可以把鼠标放在错误的图标上,然后就会告诉你修复方法,再点一下,错误就没了,大部分的报错都可以解,这一点也很赞。
下面就把一些刚学的总结一些,声明一下,由于工具是在公司的电脑上,没法截图,刚好有同行在网络上总结过,所以借用了一下图片。
总结一:dbc的导入
首先打开达芬奇的BSW配置工具,点击菜单栏的InputFiles,再点击弹出框的system description files,再点击添加,选择dbc,最后点击一下update,就完活了。如下图所示。
图1 dbc文件导入达芬奇工具步骤(图片来源于网络)
其实诊断的基本框架开发也是一样的,在cdd文件中配置好DID的读写以及session、level等信息,以及DTC的信息,然后点击InputFiles,然后点击Diagnostic Data File添加cdd,再点击update就完成诊断的基本框架开发了。
总结二:Busoff的快慢恢复
Busoff的配置是在CanSM模块中配置,其中有三个参数主要的参数,分别为:
1.CanSMBorTimeL1;
2.CanSMBorTimeL2;
3.BusoffCanSMBorCounterL1ToL2 。
其中CanSMBorTimeL1为快恢复的时间,也就是CAN总线发生busoff后,需要等CanSMBorTimeL1后才恢复。
其中CanSMBorTimeL2为慢恢复的时间,也就是CAN总线发生busoff后,需要等CanSMBorTimeL2后才恢复。
BusoffCanSMBorCounterL1ToL2为触发多少次快恢复后跳转至慢回复。图2是一个配置图以及快恢复后的总线信号波形。
图2?busoff的快慢恢复配置,以及总线波形
另外通常Busoff与DTC是在CanSM的Demevent中关联的。但是达芬奇提供两个接口,分别是busoff开始和busoff结束的callout函数,可以给应用层或者其他场景使用,其配置项如图3所示。
图3 配置busoff的启动和结束callout函数(来源网络)
总结三:诊断0x28服务
诊断中的大部分服务,在导入cdd的时候基本都实现了,但是有一小部分还需要自己去实现,比如0x28服务,需要在BswM模块中关联需要控制的报文。
其配置是点击Configuration Editor下的BswM Management,然后点击AutoConfiguration,再点击Configuration Communication Control,最后勾选需要控制的总线,以及控制的类型。
图4 BswM配置0x28服务(l来源网络)
但是仅仅配置这个之后,通过上位机去执行28服务的时候,是控制不了网络管理报文了,这个让小白的我琢磨的很久,搞不明白,最后还是靠大佬指导,还缺一个配置,就是在Nm模块中需要勾选Com Control Enable,才能使0x28服务控制网络管理报文。
图5?在Nm中配置Com Control?Enable(来源网络)
总结四:诊断报文无效数据的填充
通常对于诊断报文中,无效的数据字节,主机厂对于这个的填充有一点的要求,有的要求填充为0xAA,有的要求填充0xA5。这个需要在CanTP模块中,激活填充,然后写入要填充的值即可,如图6所示。
图6 诊断报文填充(来源网络)
总结五:网络管理时间参数
网络管理有几个重要的时间参数,分别是在Repeat?Message Time,Timeout?time,Wait Bus Sleep time(配置接口如图7所示),这几个参数的含义分别为:
Repeat Message Time:需要持续多长时间接收到网络管理报文,才会从Repeat Message Time跳转至Nomal;
Timeout time:该参数为从Ready sleep到预休眠的等待时间;
Wait Bus Sleep time:该参数为从预休眠到Bus sleep的等待时间;
图7?NM重要的几个时间参数(来源网络)
以上就是简单的总结几个最近遇到的问题,对于大佬来说,都是xiaocase,但对小白的我来说,还是感觉挺有成就感的,继续努力。
- 上一篇: 数据安排与操作方式:vector的扩容操作
- 下一篇: C++ std::vector 简介
猜你喜欢
- 2024-12-06 Java中Vector和ArrayList之间的区别
- 2024-12-06 4.Python趣味数学笔记:向量运算
- 2024-12-06 高中数学——平面向量
- 2024-12-06 高中数学:向量垂直、共线在解析几何中的应用
- 2024-12-06 复数在高中数学中的应用
- 2024-12-06 不一样的余弦定理
- 2024-12-06 9.理解点和向量的基本操作
- 2024-12-06 深入理解:推荐系统中的召回与排序(一)
- 2024-12-06 空间向量的基本概念、空间向量的数乘运算(小知识点)
- 2024-12-06 高等数学之向量代数与空间解析几何知识点与题型总结
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)