发布日期:2024-09-28 16:28 点击次数:112
英飞凌的芯片在汽车电子里用得可谓是颇多,刚好小编也用过,最近刚好在摸TC3系列的CAN模块,刚好浅易写写。
以TC387为例,共有3个MCMCAN模块,辞别为CAN0、CAN1、CAN2。下图是三个CAN模块的基本参数,其中CAN0的功能最全。
图片
从图中不错看出,每个CAN模块有4个CAN Node,每个Node均选拔Bosch的M_CAN设施来罢了,撑抓CAN和CANFD,最高速度为5Mbps,每个 Node有最多64个Rx Buffer,撑抓最多2个Rx FIFO,另外每个Node有最多32个Tx Buffer,撑抓最多1个Tx FIFO/Tx Queue。
其与TC2XX比较,其区别在于由蓝本的Message Object换成了Message RAM,增多了Pretended Networking特色,以及新增Range Filter功能。
底下就来说说细节。
01.
时钟
当先来望望时钟,关于CAN模块来说,主要有Fsyn和Fasyn,如下图所示。Fsyn 为CAN关联寄存器及Message RAM的拜谒提供时钟,Fasyn为CAN/CAN FD波特率产生提供时钟,其中为了𝑀𝐶𝑀𝐶𝐴𝑁有直爽的性能,需要保证 Fsyn>=Fasyn 至极垂危。
图片
02.
数据发送承袭处理
数据发送承袭分为Dedicated Rx/Tx Buffer和RX FIFO,其中Dedicated Rx Buffer便是每个ID对应一个Buffer,也便是FULL CAN。所有的Dedicated Rx Buffer地址必须联络,况且占用的Message RAM大小必须疏通。
每个Dedicated Rx Buffer写入数据后齐会被锁住,不会再从CAN Bus上写入新数据,直到CPU拜谒完Dedicated Rx Buffer后解锁。
Rx Buffer其实便是多个Rx Buffer构成Rx FIFO进行处理,每个CAN Node最多不错成立2个Rx FIFO,辞别为Rx FIFO 0,Rx FIFO 1。每个Rx FIFO最多不错包含64个Rx Buffer数据。
Dedicated Rx Buffer和Rx FIFO齐不错成立Filtering,详情CAN Bus上哪些Message被承袭。
报文发送也同样分为Dedicated Tx Buffer和Tx FIFO,不外多了一个Tx Queue,前两者的含义也和承袭处理中提到的同样。在Tx处理中有几个严防点的是,Dedicated Tx Buffer与Tx FIFO 粗略是Tx Queue不错同期存在,但最多只可32个Tx Buffer.
关于Dedicated Tx Buffer、Tx FIFO共存而言,必须规章排布。每次发送仲裁,将所有Dedicated Tx Buffer和最老的Tx FIFO Tx Buffer比较优先级,Message ID最小的先发送。
关于Dedicated Tx Buffer、Tx Queue共存而言,亦然按照Dedicated Tx Buffer、Tx Queue的规章排布,每次发送仲裁,将所有Dedicated Tx Buffer和Tx Queue中的Tx Buffer比较优先级,Message ID最小的先发送,Message ID疏通则Tx Buffer规章在前的先发送。
03.
MCAL确立
触及的到MCU和CAN模块,当先是成立CAN模块的时钟频率,如下图所示。
图片
底下便是Port模块,按照硬件接口表进行确立,比如P20.8确立为输出,如下图所示。
图片
底下便是CAN模块的确立了,确立RXDB,以及发送和难办以及wakeup的神志,如下配的是轮询情势,在便是CAN时钟源,以及相应的波特率。
图片
底下便是波特率的成立了,以及为了采样点确立在80%傍边,需要确立各个段的手艺参数,这个经常主机厂有条目,按照配便是了。
图片
再接下来确立Hardware object,包括是帧类型,是FIFO已经其他类型,以及关联的CAN模块。
图片
还不错确立过滤器,如下图所示。
图片
临了即使确立CAN模块的主函数的开动周期了,如下图所示。
图片
本站仅提供存储做事,所有实质均由用户发布,如发现存害或侵权实质,请点击举报。