AutoSAR—Davinci CFG中CAN模块配置详解(上)

目录

前面

导入DBC文件

Can Controllers

通用配置

波特率配置

过滤器配置

CanHardwareObjects

最后


前面

上篇文章介绍了一个DBC文件的诞生过程,它是AutoSAR CAN模块配置的前提。

CAN模块的配置是一块很难啃的骨头,作者也是初学,这篇文章只是给大家介绍一个CAN模块在Davinci CFG配置过程中会使用到的一些参数选项,打好基础。

导入DBC文件

打开Davinci CFG软件,新建工程,这一步就省略了。

打开文件导入工具,选择咱们配置好的dbc文件.

5如果有多个ECU的话,选自自己现需要配置的。

进入Basic Editor界面,选择CAN

Can Controllers

通用配置

你会发现已经存在一个CAN控制器了,双击进入

这一大列都是需要进行配置的参数

Busoff Processing:用于处理 Busoff事件,选择中断或者轮循的方式调用指示函数通知上层发生了Busoff事件。

Clock Frequency【MHz】:用于设置CAN模块的时钟。如果选项Cpu Clock Ref 设置了,这里可以不填。

Common CAN:在某些型号的单片机上,每个Node都有专属于自己的硬件 MO (Message Object),这些MO不能配置给其他的Node使用,这样就限制了该Node可以配置的FULLCAN的个数。而如果使用该功能,那么就可以将两个物理Node合并成一个逻辑Channel,从而可以在这个逻辑Channel上使用更多的FULLCAN。该功能对英飞凌系列的单片机并不适用,因为英飞凌的单片机上的所有硬件MO都是可以被配置给任何一个

Node的。

Controller Activation:是否使能该控制器。

Controller Default Baudrate:设置波特率。

Cpu Clock Ref:引用的CAN模块的时钟。该时钟在MCU模块配置。

Interrupt Priority:CAN模块的中断优先级。发送、接收共用同一个中断优先级。

Number Of CAN Obj:使用的CAN OBJ的个数。

Physical Node:CAN节点。

Receive Input Selection:接收引脚的选择。

Rx Processing:接收数据的处理方式,中断或者轮循。

Tx Processing:发送数据的处理方式,中断或者轮循。

Type of Service Control:中断由哪个CPU来处理。

再往里看需要进行波特率设置、过滤器设置

波特率配置

Baudrate Clock:CAN模块配置的波特率的时钟,由Controller Default Baudrate参数的值定义而来的。

Baudrate Div8:预分频时钟8分频。

  • false:一个时间单元等于(BRP+1)个时钟周期;
  • ture:一个时间单元等于8×(BRP+1)个时钟周期。
  • Baudrate Prescaler:简称BRP,波特率预分频,描述见上面的Baudrate Div8。

    Controller Baud Rate:设置CAN波特率的值。

    Controller Baud Rate Config ID:该ID值被SetBaudrate函数作为参数使用,用于设置哪个控制器的波特率。

    Controller Prop Seg:传播段的时间。它定义了CAN总线上发送输出驱动器和收发电路的物理传播延迟。

    Controller Segl:采样点前的时间段。

    Controller Seg2:采样点后的时间段。

    Controller Sync Jump Width:同步跳跃宽度,用于重同步的时间。

    过滤器配置

    这里的过滤器可不是滤波器,更像是校验,把不符合要求的报文过滤掉。

    Filter Code Value,Filter Mask Value:过滤器被设计成Code和Mask两个部分。

    只有符合下面的条件才被认为通过:

  • Received CAN ID &.Mask== Code
  • Filter只被用于Rx Basic CAN中。

    Is Locked:用于指示代码生成器在生成代码的时候不要优化CanFilterMask的值。

    CanHardwareObjects

    前面配置好了Can控制器软件层面的一些东西,CanHardwareObjects更多的是一些硬件层的协议参数。

    ShortName:该硬件MO的名字,在代码中主要用于注释以体现是哪个硬件MO。

    Common CAN Node:如果参数Common CAN被激活,那么该参数用于该硬件MO选择它所属的物理CHANNEL。注意:只有RXFULLCAN的硬件MO才可以配置,其他的MO的值都是A。

    Controller Ref:该 MO所属的 CAN 节点。

    Enable Polling Processing:该 MO是否使用轮循的方式去发送CAN报文。目前的版本不支持这个配置。

    Handle Type:FULL CAN(一个 MO只能发送或接收一个 CAN 报文)或者 BASIC CAN(一个MO可以接收或发送多个CAN报文)。

    Id Type:标准帧或扩展帧。

    Id Value:CAN ID。

    Main Function RW Period Ref:引用一个读写发送周期的值,该值在CanGeneral→CanMainFunction RWPeriods中定义。

    Object Hw Handle:定义硬件MO的索引号,也即该消息使用第几个MO来发送CAN 报文。

    Object Hw Size:定义该消息使用硬件MO的个数。

    Object Id:定义该硬件MO所属的逻辑handle的ID号。

    Object Type:接收还是发送。

    Filter Mask Ref:设置该MO的掩码。

    Rx Object配置选项与TxObject类似,故不再说明。

    最后

    关于CanGeneral配置,放在下一篇博客里,这些参数也太多了,查不过来了

     

    物联沃分享整理
    物联沃-IOTWORD物联网 » AutoSAR—Davinci CFG中CAN模块配置详解(上)

    发表评论