Vector - CAPL - CANoe硬件CAN&CANFD参数

如何更改与 CAPL 的 CAN 总线通信的波特率?

解决办法

        通常我们常见的配置方法主要有两种方法可以使用 CAPL 更改波特率,使用函数 setBtr或使用 canSetConfigurationcanFdSetConfiguration。

1. setBtr(long channel, byte btr0, byte btr1)

        setBtr仅适用于 CAN,不适用于 CAN FD。该函数的参数是 CAN 通道号和两个总线时序寄存器:BTR0 和 BTR1。根据使用的 CAN 控制器,它们采用不同的值来确定波特率、采样点、采样数和同步跳转宽度,不过该函数无法直接配置波特率。

       该函数的参数的获取方法我们可以通过Network Hardware Configuration配置获取需要的参数,打开方法如下图: 

        在功能区中转到 Hardware并选择按钮Network Hardware。网络硬件配置打开。选择所需的 CAN 通道并单击“setup”。如果您更改波特率 您可以在下表中看到两个 BTR 的所有有效值。现在您可以在列出的组合中选择 BTR 值作为函数的输入。

setBtr

注意:请确保在使用 CAPL 函数调用函数后执行 CAN 控制器的重置resetCAN().

2. canSetConfiguration(long channel, canSettings setting) 
canFdSetConfiguration(long channel, canSettings abrSettings, canSettings dbrSettings)

        函数canSetConfiguration和canFdSetConfiguration分别适用于CAN和CANFD,这2个函数可以直接配置波特率;它们的功能与函数setBtr一样,在设置波特率的时候我们一定要确定当前被测件和CANoe通道可以配置的参数值;并且在修改波特率的时候一定要与其他参数一起设置,否则可能设置的波特率无效,这里需要参考CANSetting结构体,具体如下:波特率

  • baudrate:波特率
  • tseg1tseg2:时间片中时间段1和2的长度
  • sjw:时间量子中的同步跳跃宽度
  • sam:采样点数(1或3)
  • flags

                canGetConfiguration:

                        bit 0、bit 1:0,未知传输模式;1,低速;2:单线;3,高速

                        bit 8:0x100,该通道被配置为高速CAN

                        All other:保留值

                canSetConfiguration:

                        bit 0:0,正常模式;1,静默模式(确认未创建)

                        All Other:保留值全部设置为0

        函数canSetConfiguration和canFdSetConfiguration虽然大部分参数都是一致的,不过还是有一定的差异,下面我们一起来看下。

CAN:

        CAN相关的参数我们可以通过Network Hardware Configuration去查看并获取相关的参数;包含波特率、tseg1和tesg2可以在下图中看到,并且可以通过每个部分的时间份额获得,下面示例中,tseg1 = 5和tseg2 = 2,,此处flags的值设置为0(正常模式)。

CANFD:

        在输入字段中输入所需的波特率。单击三个点时,将打开位时序配置(右侧)的 对话框。tseg1、tseg2sjw。采样点数始终1用于 CAN FD。此处flags的值设置为0(正常模式)。

注意:使用这些函数设置值后,CAN 控制器会自动复位。

重要说明:

  • 更改波特率后,应验证正确的值。这可以使用函数canGetConfiguration和来完成canFdGetConfigurations
  • 总线配置的更改仅在运行时发生。停止测量后, “网络硬件配置”对话框中看不到任何变化 。重新开始测量时,将再次获取此对话框中的值。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值