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
  • 总线配置的更改仅在运行时发生。停止测量后, “网络硬件配置”对话框中看不到任何变化 。重新开始测量时,将再次获取此对话框中的值。

### 使用Canoe软件测量CAN总线波特率 在车辆网络测试工具中,Vector公司的Canoe是一款广泛应用于汽车电子开发中的强大工具。对于波特率的测量,在Canoe环境中可以通过配置特定参数来实现。 #### 配置环境准备 为了确保能够准确地测量波特率,需先创建一个新的项目并加载相应的数据库文件(如DBC)。这有助于定义通信节点以及消息格式[^1]。 #### 测量方法设置 进入Canoe界面后,通过菜单栏选择`Experiment Setup`下的`Variables`选项卡,这里可以找到用于监控物理层特性的变量列表。其中包含了关于传输速率的信息字段。另外一种方式是在`Online Functions`里利用预设函数或者自定义脚本来捕获一段时间内的信号变化情况,进而计算出实际使用的波特率值。 #### 数据记录与分析 启动仿真运行之后,所有被监测到的数据都会实时显示于窗口之中。此时可以选择手动停止记录或是设定触发条件自动保存数据至本地磁盘供后续处理。借助内置图表功能绘制趋势图以便更直观地观察波形特征及其对应的频率特性,从而得出结论。 ```python # Python伪代码示例展示如何读取和解析波特率信息 def read_baud_rate_from_canoe(): import canoe_api # 假设有这样一个API库 session = canoe_api.Session() variable_name = "BaudRate" baud_rate_value = session.get_variable(variable_name) return baud_rate_value ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

车载网络测试

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

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

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

打赏作者

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

抵扣说明:

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

余额充值