首页 >> 信号蝶阀

看一看--基于TMS320F2812内嵌eCAN模块的CAN总线通信

时间:2021/11/29 22:38:28 编辑:

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

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

TMS320F2812eCAN模块的增强特性

eCAN模块是TI公司新一代32位高级CAN控制器,性能相当于TI公司TMS470系列微控制器使用的高端CAN控制器(HECC,HighendCANController)。它完全兼容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节点。当CCR1时,CpU必须等到CCE置位为1才能操作CANBTC。

信息的发送

信息的发送程序要对以下寄存器或寄存器的某些位进行操作:发送请求寄存器(CANTRS)的相应位,当其被置1时,eCAN将发送相应发送邮箱的信息,为0则不进行任何操作;邮箱使能寄存器(CANME)的相应位,当其为1时使能邮箱,为0则禁止邮箱;信息标识符寄存器(MID),用来存储邮箱标识符;信箱控制区寄存器(CANMCF),用于设置邮箱发送的优先级;邮箱方向寄存器(CANMD)的相应位,当其为1时,相应邮箱被配置为接收邮箱,为0则被配置为发送邮箱。

信息的接收

信息的接收程序要对以下寄存器或寄存器的某些位进行操作:邮箱使能寄存器(CANME)的相应位;信息标识符寄存器(MID);局部接收屏蔽寄存器(LAM),用来存储局部接收屏蔽位;邮箱方向寄存器(CANMD)的相应位;覆盖保护控制寄存器(CANOpC)的相应位,当其为1时,保护相应邮箱里的数据不被新的数据覆盖,为0则不保护;接收信息悬挂寄存器(CANRMp)的相应位,如果油箱包含一个接收到的信息则置位1,没有则置0;接收信息丢失寄存器(CANRML)的相应位,当其为1时,表示相应的邮箱里有一条