打印

转:TMS320F28335之eCAN

[复制链接]
2236|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1、内嵌CAN控制器
TMS320F28335内有2个增强型CAN总线控制器(eCAN),完全兼容CAN2.0B标准

图 eCAN模块的结构


图 eCAN模块方块图及接口电路

eCAN是具有内部32位结构的CAN控制器。eCAN模块由CAN协议核心(CPK)和消息控制器组成,消息控制器又包括三个部分:
1)存储器管理单元(MMU),包含CPU接口电路、接收控制单元和计时器处理单元;

2)邮箱RAM,可存储32个消息;

3)控制寄存器和状态寄存器。

CPK的功能是根据CAN协议解码所有在CAN总线上接收到的消息,并将这些消息转移到接收缓冲器中;根据CAN协议在CAN总线上发送消息。
消息控制器的功能是决定由CPK接收到的任意消息,必须由CPU决定是否保留或者舍弃。在模块初始化阶段,CPU指定了程序使用消息控制器的所有消息标识符。消息控制器的另一功能是根据消息的优先级将要发送的消息传输到CPK。
计时器处理单元由定时计数器组成,用于在所有接收或发送的消息中添加一个时间标记。

工作原理:
1)当CPK接收到一个有效的消息后,消息控制器的接收控制单元决定该消息是否必须存储到邮箱RAM的32个消息对象里。
接收控制单元检查消息状态、标识符以及所有消息对象屏蔽寄存器,从而决定存放消息的合适的邮箱位置。接收到的消息被存储在通过接受过滤的第一个邮箱。
如果接收控制单元不能决定由哪个邮箱来存储接收到的消息,那么该消息将被舍弃。
2)当一个消息被发送时,消息控制器传送消息到CPK的发送缓冲器。

在下一总线空闲状态时,开始消息的发送。
当多条消息需要被发送时,在准备发送的消息中,具有最高优先级的消息将首先由消息控制器转移到CPK。
如果两个邮箱具有相同的优先级,那么具有更高序号的邮箱首先被发送。

相关帖子

沙发
tianli1980|  楼主 | 2014-10-13 18:11 | 只看该作者
工作模式:

eCAN模块由两种工作模式,SCC模式和eCAN模式。SCC模式是eCAN模式的简化功能模式,该模式只有16个邮箱(邮箱号0-15)可用;没有时间标记功能,可用的接收屏蔽寄存器数目也少。该模式为默认状态。工作模式通过寄存器CANMC的第13位(SBC)来选择。

2、eCAN模块的复用GPIO口设置

两个eCAN模块A、B对应的IO口设置有多种选择。模块A对应的IO口有GPIO30和GPIO31、GPIO18和GPIO19两种选择。模块B对应的IO口有GPIO8和GPIO10、GPIO12和GPIO13、GPIO16和GPIO17、GPIO20和GPIO21四种选择。在IO口初始化时要注意一定要和实际的接口定义对应。在TI的CAN例程中已经完整的给出了这些IO口的初始化语句,选择要使用的语句保留,不使用的语句注释掉即可。


3、CAN通讯波特率设置

通过位时序配置寄存器CANBTC对通讯波特率进行设置。
设置步骤:

System clock: f_sys = 150 MHz
CAN clock:f_can = f_sys / 2 = 75 MHz
CAN clock period:t_can = 1 / f_can = 13.3333333 ns
Actual bit rate = 1 Mbit/s
Actual bit time = 1000 ns
CAN bus length = 10 m, with 5 ns/m signal delay time.

Propagation delay time : 2 * ( transceiver loop delay + bus line delay ) = 400 ns

BRP reg = 4
BRP = BRP reg + 1 = 5(5分频)
CAN time quantum:   tq = 5 * t_can = 66.6666667 ns
Actual bit time = 15 tq = 1000 ns
Prop_Seg = 8 tq > 400ns.
Sync_Seg = 1 tq .
Phase_seg1 + Phase_Seg2 = (15 – 8 – 1 ) tq = 6 tq
Phase_seg1 = 3 tq; Phase_Seg2 = 3 tq

1. If Phase_Seg1 + Phase_Seg2 is even, then Phase_Seg2 = Phase_Seg1. If the sum is odd, Phase_Seg2 = Phase_Seg1 + 1.

2.  Phase_Seg2 should be at least 2 tq.

Bit_time = Prop_Seg + Sync_Seg + Phase_seg1 + Phase_seg2 = 15 tq
TSEG1 = Prop_Seg + Phase_seg1 = 11 tq
TSEG1 reg = TSEG1 – 1 =10
TSEG2 = Phase_seg2 = 3 tq
TSEG2 reg = TSEG2 – 1 = 2


具体参考TI的手册或者程序。




4、CAN通讯例子使用USBCAN卡和开发板进行CAN通讯。

设置3个邮箱,两个发送邮箱(邮箱号24,25),一个接收邮箱(邮箱号26);
发送邮箱24:用于发送两路ADC转换的结果值;
发送邮箱25:用于持续发送固定帧;
接收邮箱26:接收指定消息帧。

工作模式:

eCAN模块由两种工作模式,SCC模式和eCAN模式。SCC模式是eCAN模式的简化功能模式,该模式只有16个邮箱(邮箱号0-15)可用;没有时间标记功能,可用的接收屏蔽寄存器数目也少。该模式为默认状态。工作模式通过寄存器CANMC的第13位(SBC)来选择。

2、eCAN模块的复用GPIO口设置

两个eCAN模块A、B对应的IO口设置有多种选择。模块A对应的IO口有GPIO30和GPIO31、GPIO18和GPIO19两种选择。模块B对应的IO口有GPIO8和GPIO10、GPIO12和GPIO13、GPIO16和GPIO17、GPIO20和GPIO21四种选择。在IO口初始化时要注意一定要和实际的接口定义对应。在TI的CAN例程中已经完整的给出了这些IO口的初始化语句,选择要使用的语句保留,不使用的语句注释掉即可。


3、CAN通讯波特率设置

通过位时序配置寄存器CANBTC对通讯波特率进行设置。
设置步骤:

System clock: f_sys = 150 MHz
CAN clock:f_can = f_sys / 2 = 75 MHz
CAN clock period:t_can = 1 / f_can = 13.3333333 ns
Actual bit rate = 1 Mbit/s
Actual bit time = 1000 ns
CAN bus length = 10 m, with 5 ns/m signal delay time.

Propagation delay time : 2 * ( transceiver loop delay + bus line delay ) = 400 ns

BRP reg = 4
BRP = BRP reg + 1 = 5(5分频)
CAN time quantum:   tq = 5 * t_can = 66.6666667 ns
Actual bit time = 15 tq = 1000 ns
Prop_Seg = 8 tq > 400ns.
Sync_Seg = 1 tq .
Phase_seg1 + Phase_Seg2 = (15 – 8 – 1 ) tq = 6 tq
Phase_seg1 = 3 tq; Phase_Seg2 = 3 tq

1. If Phase_Seg1 + Phase_Seg2 is even, then Phase_Seg2 = Phase_Seg1. If the sum is odd, Phase_Seg2 = Phase_Seg1 + 1.

2.  Phase_Seg2 should be at least 2 tq.

Bit_time = Prop_Seg + Sync_Seg + Phase_seg1 + Phase_seg2 = 15 tq
TSEG1 = Prop_Seg + Phase_seg1 = 11 tq
TSEG1 reg = TSEG1 – 1 =10
TSEG2 = Phase_seg2 = 3 tq
TSEG2 reg = TSEG2 – 1 = 2


具体参考TI的手册或者程序。




4、CAN通讯例子使用USBCAN卡和开发板进行CAN通讯。

设置3个邮箱,两个发送邮箱(邮箱号24,25),一个接收邮箱(邮箱号26);
发送邮箱24:用于发送两路ADC转换的结果值;
发送邮箱25:用于持续发送固定帧;
接收邮箱26:接收指定消息帧。


本例只是一个简单的CAN总线收发程序,实现了CAN总线的消息收发。


使用特权

评论回复
板凳
小木欧尼| | 2014-10-13 20:13 | 只看该作者
好资料 收藏了

使用特权

评论回复
地板
edishen| | 2014-10-13 20:42 | 只看该作者
真不错

使用特权

评论回复
5
lijiabaobei| | 2014-10-13 20:54 | 只看该作者
比较复杂啊

使用特权

评论回复
6
long009| | 2014-11-30 13:45 | 只看该作者
谢谢分享

使用特权

评论回复
7
仙人球W| | 2015-8-21 14:10 | 只看该作者
手把手

使用特权

评论回复
8
lefeng| | 2015-8-31 20:54 | 只看该作者
SCC模式是eCAN模式的简化功能模式

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

482

主题

2214

帖子

11

粉丝