天天色 简析英飞凌TC3XX MCAL CAN模块
英飞凌的芯片在汽车电子里用得可谓是颇多,刚好小编也用过天天色,最近刚好在摸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模块的主函数的初始周期了,如下图所示。
图片
本站仅提供存储管事,统统本色均由用户发布,如发现存害或侵权本色,请点击举报。