CAN协议学习(二)MCAN控制器介绍

本文介绍了Mentor公司的CAN2网络控制器MCAN2,详细阐述了其总体架构,包括发送、接收过程,接收过滤机制以及信号和寄存器描述。MCAN2支持CAN2.0A和2.0B协议,具备可编程位定时逻辑和接收FIFO功能,确保高效、可靠的CAN总线通信。
摘要由CSDN通过智能技术生成

更多细节请参看MCAN2文档mcan2_ps.pdf。

一、MCAN2简介

MCAN2Mentor公司开发的一个CAN2.0网络控制器的软核,初版2001年末版2006年。MCAN 2控制器实现了BOSCAN消息传输协议2.0a2.0b。规范2.0a(相当于can 1.2)涵盖标准消息格式(11位标识符);规范2.0b涵盖标准和扩展消息格式(11位和29位标识符)

二、总体架构

下图显示了MCAN2设计的主要功能块。

 

CPUmcan 2的访问是通过独立的地址、输入数据和输出数据总线进行的。由主机设备将用于传输的消息放置到发送缓冲器中,以便由位处理器进行传输。设备接收到的消息首先由接收过滤器过滤,然后放入接收FIFO中。

CPU通过称为接收缓冲区的13字节窗口访问接收FIFO.结合接收FIFO使用接收缓冲区允许CPU在接收其他消息时处理一条消息。接收FIFO的总长度为64个字节,并以循环方式使用,使其能够同时容纳最多5个扩展的帧格式消息。

位定时逻辑块负责设备的波特率,并且是可编程的。所支持的波特率范围取决于主系统时钟XTAL1的频率,并且可以容易地跨越比BOSCH规范所选择的125kbud-1MBaud更宽的波特率范围。

CAN总线的接口由发送信号tx0tx1和接收的rx 0提供。TX1通常与tx0相反,也可以编程为输出发送时钟,这对于测试非常有用。

三、发送、接收过程

要传输的数据以标准帧格式(SFF)或扩展帧格式(EFF)写入mcan 2的发送缓冲器(如下)。发送缓冲器包括CAN地址10h1ch之间的13个字节,一个帧最多可以发送8个字节的数据。注意:在将数据写入缓冲区之前,需要检查传输缓冲区状态(状态寄存器,位2),以确保缓冲区“释放”(SR.2=1)。当缓冲区被锁定时写入缓冲区的任何数据(SR.2=0)都会丢失而没有任何指示。

 

发送缓冲器描述符字段的位布局如下所示.

 

FF代表frame format0为标准帧,1为拓展帧。

RTR代表REMOTE TRANSMISSION REQUEST1表示为远程帧。

DLC代表DATA LENGTH CODE:范围0-8,大于8的数被自动解释为8

ID代表IDENTIFIER:标识符充当消息的名称,用于接收过滤,并确定总线访问优先级。标识符的二进制值越低,优先级就越高。在标准帧格式(SFF)中,标识符由11(id.28id.18)组成。在扩展帧格式(Eff)消息中,标识符由29(id.28id.0)组成。id.28是最高位,首先在总线上传输。

mcan 2接收的数据首先由接收滤波器过滤,然后传递给接收FIFO。接受过滤器只传递那些具有与接收过滤器寄存器中记录的消息相匹配的标识位的消息。

接收FIFO64个字节深,允许最多5个完整扩展帧格式(EFF)消息的空间,并以循环方式使用。

放置在接收FIFO中的数据通过一个称为接收缓冲区的13字节窗口读取。该窗口位于can地址10h-1ch,即它占用与发送缓冲器相同的地址空间。与传输缓冲区一样,它足够宽,可以容纳一条包含最多8个字节数据的消息。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值