aurix中mutlican的使用

原创 2015年07月07日 20:40:11

mutlican的整体架构
这里写图片描述
TC23x中有三个node,连出来就是三对收发,在通过连接内部的Message object,最多128个。每个node可以共享这128个Message object
Message object 的作用:
1、收发帧的存储容器
2、合并nodes之间的网关
从下图可以看到,can中message controller用来交换nodes和objects之间的can帧,存储在message RAM中。
这里写图片描述
首先设置can,最主要的就是时钟控制。
这里写图片描述
其中CAN_CLC寄存器用来产生模块时钟fCLC
CAN_FDR寄存器用来产生fCAN
关于生成fCAN 的分频公式有两种模式:normal divider 和 fractional divider,如下:
这里写图片描述
通过CAN_FDR.DM位来设置。
Can模块的时钟频率默认设置为SPB的频率。
然后通过MCR.CLKSEL值来选择时钟源。
时钟设置完,就是节点设置。
跟节点相关的参数:
通信速率
收发的引脚关联,和port模式
关于CAN的发送,亦可以由事件触发发送。
这里写图片描述
关于节点产生中断,亦可以产生如下几种中断:
这里写图片描述
最后设置MO对象
MO在CAN中是一个list双向链表结构,如下:
这里写图片描述
TC23x中模块提供16个lists,每个MO需要分配到list中。上图就是把3,5,16的MO分配到LIST2中,而且中LIST中的BEGIN和END号,也列出了LIST中MO的顺序。
整体看来是这样的连接效果
这里写图片描述
因为nodes数比list数少,所以没有接到node的list中的MO将无法收发can报文,而这些分配操作时通过LIST指令来完成。
这里写图片描述
通过MOSTATx(0~127)寄存器来查看MO的状态
而且每个MO有每个MO的专门功能,比如专门做接收或专门做发送,
对于MO的性能可以分成
标准MO FIFO MO
其中FIFO用来短时间的大量can报文收发时使用。即使在CAN通信的过程中FIFO也可以resize install 或uninstall。FIFO需要自己组合,一个MO只能放8bytes的数据,需要长frame,也是自己组合。
FIFO有base object和slave object组成,如下结构:
这里写图片描述
所以使用FIFO的时候,把指定的当前MO作为base object,然后再配置其他的MO作为slave object。
接收FIFO中接收的slave object和标准的MO类似
发送FIFO中发送slave object则需要特别指定设置 MOFCRn.MMC
GateWay mode 则是实现两个can 总线之间进行自动的信息转发,无需cpu干涉。报文转发。该模式是在MO上操作。
所以在网关配置时需要提前设置源ID和目标ID,然后在之间进行传输。
其实从下图看出GateWay的使用和FIFO结构类似,也是通过FGPR寄存器中的pointer指向。
这里写图片描述
MO的帧处理:
这里写图片描述
MO发送
这里写图片描述
如果要使用MO中AR 的MSGID匹配,需要在AMR中AM值设置mask(acceptance mask),这样只有指定ID的报文才能被该MO接收。
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

aurix编译环境

aurix作为infineon全新系列的32位单片机,采用tricore架构,相对价格低廉,打算广泛应用在汽车、工业等领域。 目前infineon也在从audo系列逐渐往aurix系列进行转变。 ...

GCC在C语言中内嵌汇编 asm __volatile__

在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可...

aurix中AD采样

ADC的频率也是连接SPB频率的。 AD转换过程通过background 请求、Timer单元请求、外部请求三种来请求AD转换。如下: 而来自Backgroud的请求,只能是在没有任何...

aurix中DMA使用

首先请注意:DMA的源/目标地址必须是64位对齐 DMA就是从数据源到DMA控制器,再从DMA控制器到目标源。 DMA硬件请求包括自身的请求或其他的DMA请求通道。 DMA控制器主要由这三...

AURIX系列GTM模块中的PWM部分

在AURIX中的GTM 模块是一种普遍时钟模块,它是作为一种可以随意配置的时钟模块。时钟基于AURIX中的CCU(时钟和时钟控制单元)提供时钟源,实际上所有的外设都是通过这个来提供时钟呢。 同时...

FMOD for C#使用实例

欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...

在MFC中使用Opencv

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)