CAN工具
文章平均质量分 54
不吃鱼的羊
关注我,有更多好文章,持续更新噢!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
周立功ZXDOC脚本编写
通道模块用于通道的管理、数据传输等。测量模块用于管理测量的启动/停止,也可以通过on_status_changed()函数监听测量状态的变更。如果脚本定义了__zxdoc_on_exit__()函数,则脚本停止时会执行它。脚本加载后,会执行__zxdoc_main__()函数。通过信号模块可以设置信号值、监听信号值等。三、测量模块(measurement)八、标定模块(calibration)四、通道模块(channel)七、信号模块(signals)六、设备模块(device)一、主模块(ZXDoc)原创 2025-12-05 10:25:19 · 303 阅读 · 0 评论 -
周立功脚本例子
【代码】周立功脚本例子。原创 2025-12-05 10:05:01 · 210 阅读 · 0 评论 -
Python脚本将Blf格式文件转换为Asc格式文件
2、在跟blf文件同一路径下新建Python文件,命名自己定义,将具体代码复制到文件当中。3、执行Python文件,就会在同一路径下生成一个新的Output.asc文件。1、将blf文件命名改为Input.blf。原创 2025-12-01 08:20:05 · 928 阅读 · 0 评论 -
Vspy使用教程
点开Tx Panel,在对应的Auto栏选择“Periodic On/Off”,在Rate栏,根据信号列表,填写分辨率。双击打开Demo,如下图:点击开启红色标记1,选择can1红色标记2。copy成功后,就可以在Transmit里看到相关信息了。原创 2025-10-11 23:01:31 · 288 阅读 · 0 评论 -
CAN通讯无法发送负数问题
最近遇到个问题,芯片没法把负数发送到CAN上面,于是对各层进行排查,都是设置为有符号的数据。查到发送到CAN上的原始数据,换算上也是对的,所以定位到DBC的解析上。发现是DBC信号的解析有问题,这里应该设置为Signed。原创 2025-09-15 11:04:02 · 266 阅读 · 0 评论 -
使用记事本修复DBC文件问题V1.0
DBC文件一般是OEM搞的,有些人会规规矩矩搞,有些人不按套路出牌,就会把DBC文件搞得很恶心,我最近就遇到这么个问题。DBC文件用DBCdb++打不开里面有个下面的提示,告诉我多少行有个这样的信号没有定义。原创 2025-09-15 10:45:32 · 426 阅读 · 0 评论 -
TJA1145芯片规格书解读
状态寄存器是只读的,OTWS可以监视过温警告标志的状态,NMS初始上电后是否进入正常模式,FSMS表示最近一次跳转到睡眠模式是因为欠压还是SPI命令。5.如果通过SPI命令(MC = 001)选择睡眠模式,而唤醒事件正在等待或所有唤醒源被禁用,则从正常模式跳转过来。比待机模式更加省电的模式,无法收发。任何启用的唤醒或中断事件或SPI命令都将从睡眠模式唤醒收发器。2.当芯片温度低于过温保护释放阈值时,从过温模式退出。模式控制寄存器在地址0x01,用来控制模式跳转。3.当唤醒或中断事件发生时,从睡眠模式退出。原创 2025-09-11 16:38:25 · 809 阅读 · 0 评论 -
周立功报文重发功能
其他上位机发送一帧唤醒报文之后,如果收不到应答,就会一直重发,直到断开总线。无论是TSmaster还是canoe,如果不写脚本,都没有这个功能。唯独周立功有这个功能,将功能选择为:收不到应答就停止发送。这个功能适用于网络管理的唤醒报文。当发送失败的时候,就停止发送。这是周立功为数不多的优势。原创 2025-09-11 16:14:08 · 316 阅读 · 0 评论 -
FULL CAN和BASIC CAN
比如:底层发送硬件缓存区数量为32,节点需要发送的应用报文数量为50,显然无法将50个发送的应用报文都配置成FULL CAN。在CAN驱动层,可以通过过滤的方式,过滤一段范围内的CanID,也就是说:会有一段范围内的报文接收进来,但是接收进来的这一段范围的报文并不一定都是上层所需要的,怎么办呢?对于发送类型的网管报文,由于单个节点的发送的网理报文是唯一的,在资源满足情况下,推荐配置成Full-CAN,资源不够情况下配置成Basic-CAN也是可以的;尽可能快地复制信息,因为所有报文仅由一个接收寄存器接收。原创 2025-07-14 08:30:58 · 858 阅读 · 0 评论 -
J1939协议
J1939遵从CAN 2.0B要求,使用扩展帧格式(29位ID)定义了一个完整的标准化通讯策略J1939规定每个节点使用一个源地址,并且将节点的源地址映射到CAN标识符中,以避免多个节点使用同一个CAN标识符J1939通过PDU定义了一个框架,用来组织数据帧中J1939协议相关的信息PDU由数据帧中的ID和数据场组成。原创 2025-07-10 18:01:45 · 1211 阅读 · 0 评论 -
新版Hardware Manager使用
选中application channels status,上面是支持的软件,将用不上的都删掉,保留自己想要的软件和通道,进行物理映射就行。右边选择设备,可能一个硬件里面有多个设备。选中具体的设备,下面可以看到介绍每个通道的功能。左上角的三道杠是最后操作的,用来保存配置,或者把配置另存为成一个文件。Driver settings是用来配置性能的,一般不用改。左上角的按钮打到左边是查看,打到右边是设置。原本是这样的,新建设备需要对着通道右键新建。新版本变成这样了,界面好像变好看了。原创 2025-06-18 09:32:49 · 336 阅读 · 0 评论 -
TSMaster报文发送信号生成器设置无效问题
TSMaster报文发送里面有个信号生成器的功能,在每个信号里面都有一个,可以自动根据设置对信号的值进行改变。位置如下图可以进行选配,不使用的话默认选择“无”,使用的话有“正弦”“斜坡脉冲”等功能进行配置。原创 2025-04-03 13:44:50 · 493 阅读 · 0 评论 -
trace文件转换结果不同问题
同学的trace文件回放出错了,暂停了下来,打算将blf文件转换成asc文件,查找下里面有没有错误帧,意外发现大家转换的结果不一样。同学转换出来的asc文件是没有错误帧的,我转换出来的asc文件是有错误帧的,对比了下大家使用的转换工具。原来是因为我使用canoe进行转换,能够比较完整地把文件转换出来。就能看到下面的error。然而同学使用的是TSMaster,转换的结果就没那么可靠了。原创 2025-01-06 11:25:16 · 231 阅读 · 0 评论 -
Excel生成DBC脚本源文件
新建一个Excel,后缀为“.xls”工作本名称改为“CAN_Matrix”在首行按照列来起名字,在里面只需要填写必须的内容即可。列数名称第0列第1列第2列MessageID第3列MessageLength(byte)第4列ECU第5列ECU第6列第7列第8列第9列第10列第11列第12列第13列NM Message第14列CANFD BRS第15列第16列第17列SignalLength(Bit)第18列第19列。原创 2024-12-21 15:38:34 · 2027 阅读 · 0 评论 -
Vector软件CANdb++的信号起始位Bug
前几天导入DBC文件发现不对劲,怎么生成代码的起始地址都怪怪的,检查下工程里面的配置,还真的是这样,一路查到输入文件——DBC文件,发现是DBC文件就有错误:一些CAN报文之后8字节长度,也就是64位,有些信号起始位都跑到70+甚至100+去了,能正常就怪了。于是找来提供DBC文件的同事确认原因,同事重新在通讯工具当中下载下来,发现并没有这个问题,我也重新下载一份,也没有这个问题。这就让我很疑惑了,我并没有修改过DBC文件,只是使用软件CANdb++打开查看过,这不应该会导致如此大的差异。原创 2024-12-04 15:02:32 · 1410 阅读 · 0 评论 -
CAN总线无终端电阻波形
今天突然发现CAN不通了,单条CAN出来的波形非常奇怪,排查之后发现是因为硬件设计有问题,没有在端口处加上终端电阻,而上位机链接的CAN工具上终端电阻刚好出现了接触不良的问题,导致波形异常。下面记录下can正常波形和无终端电阻的波形,方便大家在出现CAN不通的时候判断是否为无终端电阻问题。原创 2024-11-14 17:31:52 · 878 阅读 · 0 评论 -
DBC文件当中新建CANFD等类型的报文
后来他找到了项目之前的DBC,打开来看,居然还有CANFD类型的报文,我也是十分惊奇,拿了一份过来看看,发现上面不仅有“CAN Standard”“CAN Extended”两种类型,还有“CAN FDStandard”和“CAN FD Extended”两种类型,一共四种。同学最近有添加CANFD报文的需求,需要用到CANFD类型报文的DBC文件,这下就难住我了,我之前用的DBC文件只有“CAN Standard”“CAN Extended”两种类型,压根没见过FD的。原创 2024-10-29 17:58:06 · 1273 阅读 · 5 评论 -
通过调整报文偏移解决CAN应用报文丢帧或周期过长问题
报文很多都是周期性发送的,但是如果每条报文都以一开始作为开始计时的时间点,也就是一开始就发送第一条报文,可能会导致CAN堵塞,导致丢帧或者某些报文某一时刻周期过长,就像下图这样,同一时刻CAN收发器要同时发送4帧报文。这时候就可以加个计时基准的偏移,不用每一条报文都以一开始作为时间基准,像下图这样,同一时间少处理一半的报文。原创 2024-03-18 20:42:56 · 2841 阅读 · 0 评论 -
使用记事本修复DBC文件问题V3.0
有个信号解析不出来,同一条报文的其他信号可以正确解析,打开DBC检查,位置长度都是正确的,死活解析不出来。发现他居然在信号后面加了个回车,就产生了上面这种诡异的情况。要麻了,竟然写到3.0了。原创 2024-01-22 15:08:03 · 536 阅读 · 0 评论 -
使用记事本修复DBC文件问题V2.0
没想过这种文章也能出第二篇,这次是另一家OEM的DBC文件出问题,不是上次的打不开,是有个信号无法解析。原创 2024-01-15 20:05:17 · 1303 阅读 · 0 评论 -
TSMaster添加注释
当我们在回放报文的时候,会遇到一些需要添加注释,有以下几种办法进行注释。原创 2023-12-06 11:59:00 · 780 阅读 · 0 评论 -
CAPL接口
【代码】CAPL接口。原创 2023-12-05 19:48:26 · 736 阅读 · 0 评论 -
CAN总线负载率
CAN总线负载率是CAN总线架构协议设计时的一个重要的指标,一般建议负载率峰值不要高于80%,平均负载率不要超过50%。总线负载率就是每秒钟传输了多少个位,波特率为500K的总线上每秒钟能够传输500‘000位,如果在某一秒中总线上只传输了100000位,则总线负载率为20%。以500K传输速率来计算,1位就是1 / 500 000 = 0.000002(秒)= 0.002(毫秒)= 2(微秒)上面的数据有利于大家对CAN矩阵设计有帮助,能够大致推算出CAN总线的负载。原创 2023-12-04 20:17:39 · 3945 阅读 · 0 评论 -
DLL文件的使用
DLL文件就是动态库文件,搞个例子就懂了,搞两个工程,一个工程生成DLL,一个工程调用DLL。原创 2023-11-22 14:51:46 · 1087 阅读 · 0 评论 -
DBC文件内容结构解析
为啥会写这么一篇东西捏,看起来好像没什么用,但碰到问题的时候,你就不得不打开这篇东西了。原创 2023-11-17 14:22:16 · 1833 阅读 · 0 评论 -
CAN FD总线
全称为。继承了CAN的主要特性,弥补了CAN的数据长度和带宽的限制。可简单认为CAN FD就是CAN的升级版。原创 2023-11-01 17:55:53 · 3859 阅读 · 0 评论 -
CAPL编程
CAPL是基于事件建模的语言,从1.2小节对CAPL的程序结构的介绍也可以看出,关于CAPL的运用主要就是在于熟悉其事件的使用;其常用的事件如下:2、CAPL事件类型2.1、系统事件在CAPL的系统事件中,有preStart、start、preStop、stopMeasurement这4种。我们可以根据需要在相应的系统事件函数接口中定义想要进行的操作;当工程运行时,下述系统事件的发生顺序依次是关于系统事件的定义格式如下on preStart /*系统事件,初始化时执行*/原创 2023-09-11 19:46:22 · 1975 阅读 · 0 评论 -
关于CDD文件的配置
cdd是诊断数据库文件,描述了诊断应用的范围和数据格式,用于优化整个诊断开发过程。可通过”CANdelaStudio”这个诊断协议开发软件来进行编辑。关于在CANdelaStudio 软件中对cdd文件的配置,一般都是在提供的cdd模板基础上根据主机厂释放的“诊断调查表”数据进行配置即可。接下来,我们就来介绍下cdd文件中需要配置的信息有哪些。首先我们来看看通过” CANdelaStudio”打开cdd文件时的显示目录,如下:当我们需要根据一个新的项目的”诊断调查表”来配置其cdd文件时;转载 2023-09-09 20:53:21 · 3470 阅读 · 0 评论 -
DBC的创建和编辑
7.1、创建自定义属性。转载 2023-09-09 16:20:45 · 3570 阅读 · 0 评论 -
CANoe工具基本使用
CANoe工具全称CAN open environment,是全世界最标准的CAN工具硬件。原创 2023-08-28 11:01:44 · 15938 阅读 · 2 评论 -
CAN报文发送类型和信号发送类型、恢复默认值方式
报文发送类型有周期型Cycle、事件型Event、周期事件型CycleEvent(简称CE)、激活型IfActive周期型Cycle最简单,就是按照固定周期循环发送的报文。事件型Event平时不发送,当事件发生的时候才发送一段时间后停发。周期事件型CE就有点复杂了,他有两个周期,快发周期和慢发周期,平时按照慢发周期(譬如100ms),事件发生的时候按照快发周期(譬如20ms)发一段时间后切换回慢发周期。激活型IfActive平时不发送,状态激活的时候才发送。原创 2023-08-25 11:35:02 · 22112 阅读 · 3 评论 -
CANoe只有error Ack
CANoe软硬件是行业标杆,基本不会有什么问题,但是今天就出现了个必现的问题。Trace上面一直显示error,没有任何其他报文。但由于测试要求,需要用到CANoe软件,CANoe软件又必须搭配CANoe硬件,搞到不得不去攻破这个问题,莫得替代。原创 2023-08-09 14:59:18 · 1199 阅读 · 1 评论 -
TSMaster脚本:面板工具
譬如get_system_var_double第一个入参是系统变量的名字字符串,第二个变量是用来接收变量的地址。在C代码编辑器里面,不能直接通过 变量.get()来获取变量或者系统变量.get()来设置系统变量。要先用_system_var_之类的接口获取变量或者设置变量,点开里面有对应的使用方法。用户变量是用户自己创建的,面板工具里面的控件一般关联的就是用户变量。面板工具关联的变量只能是系统变量。内部变量是工具内置的,可以计数、查负载之类的。里面有内部变量和用户变量,可以增删改。原创 2023-08-03 11:31:18 · 1858 阅读 · 3 评论 -
TSMaster脚本:C代码编辑器
TCAN是个很有用的结构体,一般用在创建临时变量,能加载进所有发送报文里面,在TSMaster.h文件里面有定义,可以在里面放入需要发送的内容。ACAN->FData[]可以直接访问接收到的报文的数据,但是执行一次FCAN.load_data就可以借助DBC把报文里面的信号给解析出来。TDiag_PhyReq_IVI_1是数据库头文件里面的类型,可以创建一个报文对象Diag_PhyReq_IVI_1。调用init_w_std_id设置CAN报文的ID和长度,CANFD和LIN类似。原创 2023-08-03 11:28:29 · 11692 阅读 · 5 评论 -
Intel格式与Motorola格式
第四个数字1,分配到低字节低位,由于最后1位不属于该信号,向前占1位。信号排序:数值0x7531, 二进制为 0b 0111(7) 0101(5) 0011(3) 0001(1)。信号排序:数值0x7531,二进制为 0b 0111(7) 0101(5) 0011(3) 0001(1)。第三个数字3,分配到低字节高位,但是不足4位,先分配下一个数字的位置。从信号数值高字节开始分配,先分配高字节空间,字节内先分配高位空间。从信号数值高字节开始分配,先分配低字节空间,字节内先分配高位空间。原创 2023-07-29 20:24:22 · 9345 阅读 · 2 评论 -
Trace无法回放
把blf文件转成asc格式,用记事本打开,删除掉它们。方法2:修改通道映射,全部映射到通道1或者忽略。Trace在回放的过程当中进度报一半就暂停了。然后转回blf文件,就可以正常回放了。方法1:重新加载Trace文件。方法3:有很多错误帧,删除掉它。原创 2023-07-25 15:47:51 · 344 阅读 · 0 评论
分享