CAN-FD首先由博世提出,早期的CAN-FD称之为“no-iso”;后来can-fd标准化(11898-2:2015),一个3位填充位计数器和一个额外的奇偶校验位被引入,CRC的计算值也改变了,导致两者不兼容。早期的CAN-FD控制器是“no-iso”的,而目前大部分CAN设备默认都是ISO的,在使用的时候需要选配。
PCAN的硬件可以自动转换ISO和非ISO,但是Vector的必须要选,在没有CANoe等设备的时候,需要编程实现。Vector提供的最新驱动(≥10.x.x)可以做到这一点,以前的只能分别使用不同的驱动。
python-can是python的一个can驱动库,支持大部分的CAN设备。但是目前(《=3.3.3)仍没有ISO和非ISO的接口
首先需要安装Vector的XL驱动(最新版本),其中结构体,XLcanFdConf说明了配置的参数,其中options代表是否是ISO,options=0 为iso options=8为非iso(为什么是这样,看xl给的demo的宏定义)
找到安装的python-can包,找到vector文件夹,修改vxlapi.py 140行
# CAN FD co