- 博客(25)
- 收藏
- 关注
转载 CAN通信矩阵的理解(CAN报文信号的属性)
CAN通信矩阵 1.CAN通信矩阵是什么CAN通信矩阵(CAN Communication Matrix)通常由整车厂完成定义,车辆网络中的各个节点需要遵循该通讯矩阵才能完成信息的交互和共享。我们知道CAN总线是一种通信形式,ISO 11898协议仅仅规定了数据链路层和物理层,也就是说传什么ID、传什么数据是没有定义的,这留给了大家很多遐想空间。对于乘用车来说,满足UDS和尾气排放协议之后,还剩余了绝大部分的ID段。这些ID段由主机厂自主来进行分配,分配好之后会形成一个.xls格式的表格。有了CAN通信矩
2022-11-21 10:47:45
2897
转载 关于DBC文件的格式解析(DBC文件系列其二)
在之前的文章里,我们通过一条报文示例展示了创建dbc文件的操作步骤。通过记事本打开在“关于DBC文件的创建”一文中创建的dbc文件,此时界面如下图所示:如上图所示,一般dbc文件中包含了如下的8种信息:1、版本与新符号2、波特率定义3、网络节点的定义4、报文帧的定义5、信号的定义6、注解部分7、属性定义部分8、数值表部分其中第2点、第3点是必须项,缺少这两项的dbc文件是不能用CANdb++ Editor软件打开的;接下来我们结合例子对dbc文件的这几项信息进行逐步解析介绍。
2022-10-26 17:05:56
1949
2
转载 关于DBC文件的创建(DBC文件系列其一)
dbc数据库文件是用来描述CAN网络节点间数据通讯的一种文件,包含了CAN总线协议中协议数据及其所代表的具体意义。它可以用来监测与分析CAN网络上的报文数据,也可以用来模拟某个CAN节点。dbc文件的创建过程一般可分为以下几个部分:1、新建一个CAN数据库文件2、创建信号要用到的数值表Value Tables3、创建信号Signals,关联该信号的数值表4、创建报文Messages5、创建网络节点Network nodes6、将信号、报文及网络节点进行关联链接。
2022-10-26 17:04:40
1781
转载 从应用角度了解下LIN总线
LIN总线是CAN总线的补充,它的可靠性以及性能较低,但成本也是比较低的。下面我们将简单介绍下LIN总线的特点以及其和CAN总线之间的异同。更低的成本(如果对速度或者容错性的要求较低)常用在车辆的窗户、雨刮器、空调等LIN集群中只有一个主节点和最多有16个从节点只有一根信号线(需要配合地线),波特率为1-20 kbit/s,线缆最长能达40米由时间出发的调度表能保证报文间延迟的时间可变的数据长度(2、4、8字节)LIN总线支持错误检查、校验和配置工作电压为12V。
2022-10-11 19:53:43
1391
1
转载 J1939协议实用指南与J1939数据记录方案
*简而言之,SAE J1939其实是一套标准,重型车辆ECU间就是按照这套标准在CAN总线上进行通信的。当今大多数车辆都通过CAN(Controller Area Network)进行ECU通信。但是,CAN总线仅仅只是提供了通信的基础(就像是电话),但是没有提供对话的“语言”来进行更复杂的操作。在大多数大型车辆中,这个“语言”就是汽车工程师协会(SAE)定义的SAE J1939标准。
2022-10-11 19:51:54
2166
1
转载 CAN通信矩阵的理解(CAN报文信号的属性)
1)信号的高位(most significant bit),即最能表达信号特性的因子。比如转速2000rpm,0x7D0,即011111010000b。最左侧的位,数量级最大,牵一发动全身,即高位2)信号的低位(least significant bit),即最不能表达信号特性的因子。刚才转速中,最右侧的0,即低位。3)信号的起始位其实就是信号的最低位。主机厂在定义整车CAN总线通信矩阵时,每一个信号都从其最低位开始填写。
2022-09-28 20:58:11
5989
转载 CAN总线终端电阻的作用?为什么是120Ω?为什么是0.25W?
这个就要结合一些故障状态也计算,汽车ECU的所有接口都需要考虑短路到电源和短路到地的情况,所以我们也需要考虑CAN总线的节点短路到电源的情况,根据标准需要考虑短路到18V的情况,假设CANH短路到18V,电流会通过终端电阻流到CANL上,而CANL内部由于限流的原因,最大注入电流为50mA(TJA1145的规格书上标注),这时候120Ω电阻的功率就是50mA*50mA*120Ω=0.3W。调整电阻阻值的大小,直到电阻上的信号是一个良好的无振铃的方波,此时的电阻值可以认为与线缆的特征阻抗一致。
2022-09-24 15:51:15
314
转载 详解CAN的高层协议(五)
CAN做为应用比较广泛的通信总线,受到了越来越多的客户喜欢和青睐,广泛应用于工业和汽车,常见的高层协议有CANopen,J1939,DeviceNet等,在公众号曾经分享过超过15篇有关CAN的高层协议J1939的有关内容,今天起我们将连续分6次推文来详细介绍CAN的高层协议J1939的基础和应用以及开发,应该算是比较全面系统的介绍,希望对大家有帮助,如果对你有帮助,欢迎关注嵌入式程序猿公众号。今天我们来看第二部分数据链路层的上半部分,数据链路层比较重要,内容也比较多,分为上下两部分来讲。
2022-09-13 23:37:05
102
转载 详解CAN的高层协议(四)
CAN做为应用比较广泛的通信总线,受到了越来越多的客户喜欢和青睐,广泛应用于工业和汽车,常见的高层协议有CANopen,J1939,DeviceNet等,在公众号曾经分享过超过15篇有关CAN的高层协议J1939的有关内容,今天起我们将连续分6次推文来详细介绍CAN的高层协议J1939的基础和应用以及开发,应该算是比较全面系统的介绍,希望对大家有帮助,如果对你有帮助,欢迎关注嵌入式程序猿公众号。今天我们来看第二部分数据链路层的上半部分,数据链路层比较重要,内容也比较多,分为上下两部分来讲。
2022-09-13 23:35:21
139
转载 详解CAN的高层协议(二)
CAN做为应用比较广泛的通信总线,受到了越来越多的客户喜欢和青睐,广泛应用于工业和汽车,常见的高层协议有CANopen,J1939,DeviceNet等,在公众号曾经分享过超过15篇有关CAN的高层协议J1939的有关内容,今天起我们将连续分6次推文来详细介绍CAN的高层协议J1939的基础和应用以及开发,应该算是比较全面系统的介绍,希望对大家有帮助,如果对你有帮助,欢迎关注嵌入式程序猿公众号。今天我们来看第二部分数据链路层的上半部分,数据链路层比较重要,内容也比较多,分为上下两部分来讲。
2022-09-13 23:32:18
208
转载 如何计算CAN通信波特率
在CAN 驱动中如果使用外部8M晶振作为CAN模块时钟源,必须配置CAN_CTRL1 bit13为0,选择can模块使用外部时钟,同时必须正确配置MCG_C2和OSC_CR寄存器,才能正常工作,否则CAN模块不能正常通讯。CAN2.0协议中定义标称位速率为一理想的发送器在没有重新同步的情况下,每秒发送的位数量,也就是我们说的波特率。例子:假设系统使用8M晶振,经过PLL倍频后输出144M作为系统时钟,外设也是144M,要求设定波特率为250kbps,CAN模块选择晶振时钟源。采样点用于计算后续位的位电平。
2022-09-13 15:04:23
3831
转载 CAN 帧ID 与J1939 PGN 转换例子
例如:0x18 FE DF 00 = 110 | 0 0 | 11111110 | 11011111 | 00000000。应答消息 0x18E8FF00 PGN = E800(16) 59392(10) (PF240则参数组(PGN)编号为 FEDF(16)或65247(10)具体参数即为数据段(0-64).优先级为 P = 110(2)或6(10)注意:PF
2022-09-13 00:56:29
1019
转载 J1939协议中CAN ID 与PGN互换--遇到了广播报文
主要说明:1) PGN计算出现问题,如何解决的;2)如何理解广播报文的含义,解释DM1的参数,DM1是啥,DTC是啥;3)广播报文如何发送,需要拆分多少包;由于这些内容是在实际做时遇到的具体问题,一个个问题解决。鼾声鼾语, @部分内容是摘要其他blog的,已经加了引用出处。若侵权,请留言删除!
2022-09-12 16:30:33
2448
转载 整车CAN网络拓扑图
何为智能硬件, 就是包含智能控制单元的硬件, 比如发动机, 发动机上有一块儿专门负责控制发动机进气量, 喷油量, 排气量的控制单元, 这块单元相当于发动机的大脑. 他具有信号发送, 信号接收, 参数存储等基本功能, 这个控制单元就是ECU.早期的整车CAN网络主要是围绕BCM(车身控制器)为控制中心, 早期的汽车, 智能硬件较少, 车身零部件(雨刮/大灯/车窗...)倒是一堆, 所以早期的正常CAN网络把所有其他的ECU全部放在Other ECU里边.
2022-09-12 16:04:29
3230
1
转载 【无标题】关于DBC文件的格式解析(DBC文件系列其二)
在之前的文章里,我们通过一条报文示例展示了创建dbc文件的操作步骤。通过记事本打开在“关于DBC文件的创建”一文中创建的dbc文件,此时界面如下图所示:如上图所示,一般dbc文件中包含了如下的8种信息:1、版本与新符号2、波特率定义3、网络节点的定义4、报文帧的定义5、信号的定义6、注解部分7、属性定义部分8、数值表部分其中第2点、第3点是必须项,缺少这两项的dbc文件是不能用CANdb++ Editor软件打开的;接下来我们结合例子对dbc文件的这几项信息进行逐步解析介绍。
2022-09-12 15:42:21
1298
转载 关于DBC文件的创建(DBC文件系列其一)
dbc数据库文件是用来描述CAN网络节点间数据通讯的一种文件,包含了CAN总线协议中协议数据及其所代表的具体意义。它可以用来监测与分析CAN网络上的报文数据,也可以用来模拟某个CAN节点。dbc文件的创建过程一般可分为以下几个部分:1、新建一个CAN数据库文件2、创建信号要用到的数值表Value Tables3、创建信号Signals,关联该信号的数值表4、创建报文Messages5、创建网络节点Network nodes6、将信号、报文及网络节点进行关联链接。
2022-09-12 15:40:45
1024
1
转载 CANoe软件使用(四)——CANoe与Simulink联合仿真
在介绍CANoe和Simulink联合仿真之前,先熟悉下汽车软件开发过程中的V模型流程开发。推荐如下文章,简单介绍了MIL/SIL/PIL和HIL等相关概念。..基于模型的设计(MBD)汽车软件流程总结大概流程如下:1、基于功能需求,搭建对应Simulink模型2、将模型转化为C代码3、将C代码进行编译,通常为.o或者lib格式文件4、编译后软件集成,通常为hex格式文件5、将hex文件刷写至ECU中,测试标定。
2022-09-12 15:13:42
3157
转载 CANoe软件使用(三)——DBC编辑
本节主要介绍下通过CANdb++Editor进行DBC内容的编辑,通过CANoe自带的easy模板进行介绍。最终ESP这个节点发送ESP1这个报文,报文中包含VehicleSpd这个信号,最终发送至Display这个节点。当点击message的时候,因为此时新报文并未新增,因此无法将该信号加载到最新报文中,等新报文编辑完毕后可添加该信号。通过之前车速信号为例,进行说明,参考之前文章关于信号。添加接收该信号的节点,假设节点Display接收。在报文message中打开该信号,也可进行编辑。
2022-09-12 15:06:24
2052
转载 CANoe软件使用(二)——数据加载分析
前面文章讲到过,CAN有高速CAN(发动机、变速器)和低速CAN(车窗),而对应的DBC根据网络拓扑图有对应的DBC。通常情况下,工程师通过CANoe录取到大量数据后,并无充足的时间进行在线分析,此时,将数据保存离线分析则至关重要。为啥保存CANoe工程文件,因为,在分析数据时,你需要加载要分析的信号,若加载的信号过多,每次新建CANoe工程,则都需要重新加载。Graphic中保存的数据仅仅是你加载查看的信号,无法保存为blf文件。simulation界面如下,并无加载的DBC和设置的通道。
2022-09-11 21:15:31
14866
转载 CANoe软件使用(一)——软件界面介绍
这里边可进行配置,值得注意的一点就是数据历史,如果测试的数据庞大,数据中会出现丢失,数据曲线可能只录了一小段。这里边Vector带了很多的Demo示例,包含仿真系统、CAPL函数、面板控件等。CAN总线模板、波特率500k、一个通道(波特率和通道后续可修改)Tool:工具编辑器(CAPL、CANdb++、Panel)1、Simulation Setup 仿真配置界面(重点)针对报文:dec(十进制)/hex(十六进制)针对信号:sym(符号)/num(数字)5、在线(数据监测)/离线(数据回放)
2022-09-11 21:14:09
6860
6
转载 CAN通信(二)——信号矩阵及DBC
CAN总线通讯的主要载体是报文,信号是报文的主要组成部分,没有DBC数据库,就无法解析信号。而CANoe就是开发测试分析整个ECU网络和单个ECU通信而设计的总线通信分析工具,从概念设计到测试验证,再到批量生产,CANoe的使用贯穿整个研发流程。供应商在开发ECU软件的时候,主机厂是必须要提供其设计版的信号矩阵,明确具体的ECU收发的报文及对应的信号。总之,在信号与报文、报文与节点关联完成后,就可以在通信矩阵中观察他们的收发关系。节点名称、发送的信号、接收的信号、发送的报文。
2022-09-11 21:12:21
2845
1
转载 CAN通信(一)——认识CAN总线
所以,我只从汽车工程师的角度讲讲我能理解和用得到的CAN通信,才疏学浅,请各位指教!这个比喻和CAN总线的信号传输一样,所有的信息都在总线上(公交上所有的乘客信息),但并不是所有的节点都接收这个信息(乘客选择下车的站牌)。恩,这不是公交的意思么,没错,公共汽车是可以运输大量的乘客的,CAN通信也就可以传输大量的信号。作为并非通信专业的汽车工程师,汽车CAN通信是必须掌握的,但是,记得刚开始上来一看什么定义(什么串行。报文:对应每几分钟过来的公交车,几分钟就是报文的发送周期,当然实际车的报文通常是毫秒级的。
2022-09-11 21:10:35
2664
转载 SAE J1939协议学习笔记
不过汽车网络是很复杂的,虽然都是基于CAN总线协议进行通信但是不同的系统使用的上层协议是有差别的,例如家用汽车使用的协议标准和卡车使用的协议标准是不一样的。可以看出来SAE J1939协议其实就是在CAN协议的基础上封装了一层,相比较计算机网络的7层协议来说已经简单很多了,可能这就是SAE J1939协议的设计目的,不为了多强大的性能和丰富的功能,只要稳定和速度。SAE J1939协议发送小于等于8字节的报文时使用一个CAN帧就可以,发送长度大于8字节的报文是需要分成多个CAN帧的。
2022-09-11 16:12:25
1261
转载 关于中控车机与仪表互联的通讯协议和联调
【但要注意的是,无论是“17”还是“27”,都得看需求协议的定义和通讯矩阵对信号的定义,如果加上标志位或者帧类型的描述,就不一定是“17”代表的是第一帧,且有效数据是后面7位这种逻辑类型了。仪表主动请求车机需要经过:仪表请求帧,车机应答帧,车机请求帧,仪表应答帧,车机数据帧,仪表校验帧的顺序请求。在具体的数据发送中,涉及到数据帧的多帧发送,其中也涉及协议,具体发送方式看定义,下面举例说明下数据发送方式。帧数据帧,则发送了数据帧数不正确的数据帧,仪表会外发校验帧6A6,回复错误响应。下面是对应的流程图。
2022-09-11 16:08:10
1241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人