宁波市鄞州首南恒宇激光雕刻厂

基于TMS320F2812内嵌eCAN模块的CAN总线通信
分享到:

当前有许多微处理器将CAN控制器嵌入到系统之中,成为片上的微处理器,TI公司新推出的TMS320F2812就是其中之一。这种结构成本低廉、运行稳定、功能完备,是一种很有前途的CAN通信系统组成方案。

eCAN模块是TMS320F2812DSP片上的增强型CAN控制器。其性能较之已有的DSP内嵌CAN控制器有较大的提高,在进行CAN总线通信时,数据传输更加灵活方便,数据量更大、可靠性更高、功能更加完备。随着TMS320F2812的大量推广使用,基于eCAN的CAN总线通信方式将得到广泛的应用。

TMS320F2812eCAN模块的增强特性

eCAN模块是TI公司新一代32位高级CAN控制器,性能相当于TI公司TMS470系列微控制器使用的高端CAN控制器(HECC,High-endCANController)。它完全兼容CAN2.0B协议,可以在有干扰的环境里使用上述协议与其他控制器串行通信。eCAN模块具有32个可以完全控制的邮箱和时间标识特性,提供了一个通用可靠的串行通信接口。除具有一般DSP内嵌CAN控制器的所有功能外,与TMS320LF240x系列DSP的CAN模块相比,它主要具有如下的一些增强特性:

1.增加了邮箱数量,并且所有邮箱都具有独立的接收屏蔽寄存器。原来的TMS320LF240x系列(以TMS320LF2407为例),仅有6个邮箱:2个接收邮箱、2个发送邮箱和2个可配置为接收或者发送邮箱。而TMS320F2812有多达32个的邮箱,占用512字节RAM,都可以配置为发送或接收邮箱,且都有一个可编程的接收屏蔽寄存器。这样就使数据传输更加方便灵活、信息量大大增加。

2.eCAN是一个32位的高级CAN控制器。其控制寄存器的状态寄存器必须以32位方式访问;接收屏蔽、时间标识寄存器、超时寄存器和邮箱所在的RAM范围可以以8位、16位和32位方式访问。

3.时间标识。eCAN模块应用了一个全速运行的32位定时器(LNT)来获得接收或者发送一个信息(有效的CAN数据帧)的时间。当一个接收信息被保存或被发送的时候,定时器的内容写入到相应邮箱的时间标识寄存器(MOTS)里。这样就可获得接收或发送一个信息的时间。

当邮箱16成功发送或接收一个信息时,LNT寄存器被清除。所以可以通过使用邮箱16来实现网络的全局时间同步。

4.超时功能:为了确定所有的信息都在预定的时间里送出或接收,每个邮箱都有它自己的超时寄存器(MOTO)。如果一个信息没有在超时寄存器设定的时间完成发送或接收,一个标志位将在超时状态寄存器里被设置,据此可以判断出是否超时。

以上这些增强特性使得TMS320F2812进行CAN通信时,传输更加方便灵活、数据量更大、功能更完备,这也正是eCAN的增强特性所在。

eCAN通信程序设计的基本流程

下面介绍TMS320F2812的eCAN模块与CAN卡之间的通信实例。本文主要讨论的是下位机程序。eCAN的邮箱0配置为发送方式,邮箱16配置为接收方式,都采用标准信息帧格式。发送用查询方式、接收用中断方式。接收到数据后,用接收到的数据更新邮箱0的数据。对接收到的数据进行确认,使用一个全局变量来记录接收错误发生的次数。这个程序的实现分为以下几个重要步骤。

eCAN模块初始化
eCAN模块在使用前必须对它初始化。仅当模块处于初始化模式下,初始化才能进行。DSP复位后,就激活了初始化模式,此时就应该对eCAN模块初始化。eCAN模块初始化流程图略(详见《电子设计应用》2003.10)。其中要对以下寄存器或寄存器的某些位进行操作:主控制寄存器(CANMC)的改变配置请求位(CCR),当其为0时,eCAN处于正常工作方式,为1时eCAN处于配置方式;错误状态寄存器(CANES)的改变配置使能位(CCE),当其为0时,CPU不能写控制寄存器,为1时则可以;位定时器配置寄存器(CANBTC),它用合适的网络定时器参数配置CAN节点。当CCR=1时,CPU必须等到CCE置位为1才能操作CANBTC。

信息的发送
信息的发送程序要对以下寄存器或寄存器的某些位进行操作:发送请求寄存器(CANTRS)的相应位,当其被置1时

联系我们

地址: 浙江省.宁波市鄞州区宁姜公路(九曲小区二期旁)

邮编: 315040

联系人: 盛立峰

电话: 0574-87139378

传真: 0574-87139378

手机: 13867861670

邮箱: 85400329@qq.com

联系我们