学习笔记:MCAL_CAN Driver 基础概念梳理

1、关键词

1.1、Module、Controller、buffer、FIFO....

              TC397中有4个module一个module有4个node, 一个node表示一个就是一个controller,

        至于为什么一个module有四个node而不是3个、5个或者其他,暂时不清楚,TBD。

     buffer是用来存放CAN帧的,也叫 dedicated buffer,大小可配,最大为18 words(32 bit)

               如今的CAN Controller基本都支持FD,故以FD的特性为基础

       这一帧数据在TC397中被称之为一个element, 常规说的配置CAN FD数据长度为64byte指的只是数据段,一个element除了包含数据信息还有ID、BRS等信息,

        如下图:R0 R1为控制信息,R2及以后为数据,CANFD最长支持64Byte,故一个element最大长度: 

        length = R0 + R1 + 64byte ÷ 4 = 18 words 

                      一个R代表一个word

  FIFO是由buffer组成的,最大范围由芯片特性确定,一般Tx FIFO最多为32个buffer 组成,Rx FIFO最多由64个buffer组成。

        TC397还提供Tx Queue的方式,Queue是FIFO机制的一种,两者都是一种缓存空间也就是说可以将一段缓存空间配置成FIFO或者Queue(当然前提是需要硬件底层支持)

       

1.2、Tx Buffer、Tx FIFO、Tx Queue特性

        用多个Tx Buffer发送数据时,优先级小的会先发,buffer的优先级通过CAN ID进行比较

ID越小优先级越高

        FIFO则是先进先出,没有优先级区分,不建议使用,会发生优先级反转,如果优先级低的先进,就会阻塞优先级高的无法第一时间发送出去

        Queue则是根据先后顺序进行存放,发送时和buffer一样,有优先级机制,优先级高的先发,若优先级相同,根据buffer Id号判断,小的先发

        Note:EB 配置时,如果配置为FIFO,实际是指Queue这种类型

                也是因为Queue是通过buffer组成,所以也具有了优先级 这种机制。FIFO也是buffe组成,为何不直接使用优先级机制,感觉是为了区分,机制使能就是Queue,不使能就是Queue,更加灵活。

        至于使用:可以参考CAN底层驱动Mailbox配置技术要点全解析_chscan_rx_std_mailbox-CSDN博客

1.3、Autosar CAN driver

         下图为官方文档描述:

        其中CAN hardware Unit 对应上文提到的Moude

        Controller也就是Node

        Autosar中还有一下概念:

        Hardware Objects: 即buffer

        HOH:Hardware Objects Handle ,一个HOH可以对应为一个Hardware Objects,即FULL CAN,也可以对应多个,即BASIC CAN。

        HTH:将HOH作为发送使用

        HRH:将HOH作为接收使用

2、配置参数对应

        [ECUC_Can_00320] CanIndex:即module的ID号

        [ECUC_Can_00320] CanControllerId:这个ID是逻辑ID号,并不是芯片上某个CAN node的实际ID号,比如CanControllerId = 0,对应的node id可以是0 也可以是1 也可以是2。

        [ECUC_Can_00485]CanFdPaddingValue:是指如果发送FD数据的时候,配置为64byte但实际数据不够64bye,会根据该项配置的数据进行填充。

        其他项感觉容易理解,可直接参考规范

附录:参考文档

        AUTOSAR_SWS_CANDriver R22-11

        Infineon-AURIX_TC3xx_Part2-UserManual-v01_00-EN

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值