老古开发网首页
导航:老古开发网首页文章索引文章分类嵌入式系统→[eCAN模块与SJA1000的应用比较]
| -文章搜索 - 最新文章 - |

eCAN模块与SJA1000的应用比较

发布时间:2005年1月2日 点击次数:874
来源:单片机与嵌入式系统应用   作者:西北工业大学 唐苗 吴旭光 路亚娟 王欢
 

摘要 就TMS320F2812内嵌eCAN模块与CAN总线独立控制器SJA1000在初始化、信息发送和信息接收三个CAN通信基本模块中的操作进行比较,并给出相关的程序流程图。

关键词 eCAN SJA1000 初始化 信息发送 信息接收

引言

  TMS320F2812是TI公司新推出的DSP芯片,内嵌CAN总线控制器eCAN模块(以下简称为eCAN),性能较已有的DSP(如TMS320C24x)内嵌的控制器有很大的提高;数据传输更加灵活方便,数据量较大,可靠性更高,功能更加完备。而SJA1000是Philips半导体公司推出的新型独立CAN控制器,是PCA82C200的替代产品,支持CAN2.0B协议,完全兼容CAN2.0A,是目前应用比较多的CAN独立控制器之一。

  CAN总线系统通信的软件一般可以分为三个主要模块:系统初始化模块、信息发送模块和信息接收模块。下面以TMS320F2812内嵌的eCAN模块与广州周立功公司的DP51+仿真实验仪之间的CAN通信为例,主要就eCAN和SJA1000在这三个部分的操作进行比较。

1  eCAN简介

  eCAN同时支持11位和29位的标识码,是一个32位的控制器。eCAN的有些寄存器(如控制寄存器)必须以32位方式访问;一些寄存器(如时间标识寄存器)和邮箱所在的RAM范围可以以8位、16位或32位方式访问。eCAN对信息的接收和发送是基于邮箱的,共有32个邮箱,占用512字节RAM。每一个邮箱都可以有自己独立的ID,独立配置成接收邮箱或者发送邮箱,也可以禁止不用。这样大大增加了数据的容量和信息的处理能力。

  TMS320F2812内嵌的eCAN还有一种SCC模式。它是eCAN的缺省工作模式,功能有所简化,同样支持11位和29位的标识码;但只有16个(0~15)邮箱可用,有些寄存器(如CANTSC)也保留不用,可以通过主控制寄存器(CANMC)中SCB位的置“1”来进入eCAN模式。本文若没有特别说明指的就是全功能eCAN工作模式。

2  系统初始化

  CAN控制器有两种状态模式,即工作模式和复位模式(eCAN是初始化配置模式)。不同的状态模式,对寄存器的访问操作功能是不同的。无论是eCAN还是SJA1000,在使用之前,也就是进入工作模式之前,必须对它们进行初始化。

  仅当eCAN处于初始化模式下,初始化才能进行。DSP复位后就激活了初始化模式,此时对eCAN进行初始化。首先必须将主控制寄存器的改变配置请求位(CCR)置“1”,且CANES的改变配置使能位(CCE)也必须为“1”时才能正式进入配置模式,就可以对位定时器配置寄存器进行操作了。要返回工作模式,必须将CCE和CCR依次成功清“0”。图1(a)为eCAN初始化的流程。

  将模式寄存器的复位位置“1”,就可以使SJA1000进入复位模式。在复位模式,需要设定时钟分频寄存器、总线定时寄存器、报文验收寄存器、验收屏蔽寄存器和输出控制寄存器等。设置好各个寄存器后,就可以将复位位清“0”,进入正常的工作模式。进入复位模式后,需要立即设置时钟分频寄存器,将CAN模式位置“1”才能进入PeliCAN模式,否则进入SJA1000的缺省工作模式,即BasicCAN;而其他寄存器的设置则没有严格的次序限制。在这两种工作模式中,SJA1000寄存器从数量、地址分配到功能等方面是有较大区别的。这里主要讨论的是SJA1000的PeliCAN模式。图1(b)给出了SJA1000初始化的流程。


图1  初始化流程

  由图1可以看出,eCAN的初始化在操作上比SJA1000要复杂一点,需要成功地将CCR和CCE先后置“1”,才能进行配置操作;而SJA1000只需要将复位位置“1”就可以进行初始化操作了。

3  信息发送

  eCAN要发送信息,首先须将某个邮箱配置成发送邮箱,写邮箱标识符寄存器和报文控制寄存器以及数据。使能该邮箱后,将发送寄存器(CANTRS)相应的位置“1”,eCAN就将该邮箱中的数据发送到总线上。报文控制寄存器中的TPL用来设定消息发送的优先级,数字越大,优先级越高。当多个邮箱需要向总线发送消息时,虽然同时将CANTRS相应的位置“1”,优先级高的邮箱先将消息发送;如果邮箱的优先级相同,则邮箱号数大的,先发送。以0号邮箱为例,其发送消息的流程如图2 (a)所示。

  SJA1000一般可以采用查询方式来发送信息。不过每一次操作只能向总线上发送1帧信息,而不像eCAN那样,可以一下子向总线发送多帧消息。当SJA1000的发送缓冲区为空时,CPU就可以将要发送的信息写入该缓冲区,然后置命令寄存器的发送请求位,即可将消息发送到总线上。发送完毕后,清空发送缓冲区,等待CPU写入新的信息。SJA1000发送信息时的流程如图2(b)所示。

  对于eCAN,如果邮箱需要发送另一条信息,就需要将邮箱的RAM更新。一般只需要更新数据场,即重新写MDL和MDH中的内容。更新数据时,须将CANMC中的CDR位置“1”,并在MBNR处写入需要更新数据的邮箱号,就可以写入新的数据了。之后,将CDR清“0”,使能该邮箱就可以按正常步骤发送信息了。由此可见,对eCAN发送的信息进行数据更新比SJA1000复杂得多。

4  信息接收

  eCAN和SJA1000在接收总线上的信息时,都可以采用查询方式或者中断方式。这里仅讨论各自的中断方式。

  eCAN要接收信息时,相应的邮箱需要配置成接收邮箱并使能,还需要设定信息标识符寄存器(MID)。局部接收屏蔽寄存器(LAM),用来存储局部接收屏蔽位。覆盖保护寄存器(CANOPC)相应位,当其为1时,保护相应邮箱里的数据不被新的数据覆盖,此时还需要另一个邮箱来接收新的后续信息,否则会引起数据丢失;有数据丢失时CANRML相应的位会置1。当eCAN邮箱接收到信息时,就会产生相应的中断,继而CPU判断是哪个邮箱接收到信息,再读取邮箱里的数据。以31号邮箱为例,eCAN的信息接收的流程如图3 (a)所示。

  SJA1000接收信息时,在接收中断使能的情况下,当总线上的信息满足报文验收的接收条件,无论该信息是数据帧还是远程帧,都会将信息存放在接收缓冲区,并产生接收中断。CPU就可以读取接收缓冲区中的信息并保存,然后可以清空接收缓冲区,等待接收下一条信息。SJA1000的信息接收流程如图3(b)所示。

  SJA1000在PeliCAN模式下有两种滤波方式:单滤波方式和双滤波方式。当验收屏蔽寄存器的某位为1时,验收代码寄存器的相应位“不起作用”,即信息标识符相应位无论是“0”还是“1”都会被接收;当验收屏蔽寄存器的某位是0时,信息标识符相应位与验收代码寄存器的相应位必须一致,该信息才被接收。有关这两种滤波方式的具体内容请参见相关手册或论文。eCAN的验收条件比SJA1000相对复杂。当邮箱标识符寄存器中的AME位为0时,LAM将不起到作用,此时只有标识符与邮箱的标识符完全一样的信息才被邮箱接收或者存储;当AME为1时,eCAN将使用LAM,此时对信息的接收情况与SJA1000的单滤波方式相似,只接收符合条件的信息。


图2  信息发送流程


图3  信息接收流程

  此外,eCAN与SJA1000在对远程帧的处理上也有较大的差别。eCAN处理远程帧时分为两种情况:向其他节点请求数据和自动应答远程帧。这两种情况必须将报文控制寄存器中RTR位置“1”。要向其他节点请求数据,必须将某邮箱配置成接收邮箱,写入标识符,使能该邮箱,将CANTRS相应的位置“1”,就向总线上发送了一个远程帧。eCAN会将对方的应答信息存在这个邮箱(这得保证没有相同ID的其他接收邮箱)。自动应答远程帧时,邮箱配置成发送邮箱,且邮箱标识符寄存器中的AAM位必须置“1”,写入需要发送的数据。当该邮箱接收到其他节点发送来的远程帧时,CANTRS中的相应位自动置位,将报文发送到总线上。而SJA1000接收到1帧信息后,根据RTR位来判断是否是远程帧,如果是远程帧,则根据制定的通信协议对该远程帧作出相应的回答,不能自动应答远程帧。

结语

  eCAN和SJA1000都是功能十分强大的CAN总线控制器,都有各自的优点,可以应用在不同的场合。虽然它们在CAN总线通信中具体操作上有较大的差别,但其基本思路是一致的。在软件编程上大致可分为初始化、信息发送和信息接收三个基本模块,再加上总线睡眠与唤醒处理、总线出错处理和总线超载处理等功能模块,就可以构成一个比较完整的CAN总线通信软件。随着CAN总线技术的推广,eCAN和SJA1000都将有不错的表现。

参考文献

1  Texas Instruments. TMS320F28x Enhanced Controller Area Network (eCAN) Peripheral Reference Guide. 2002
2  Philips Semiconductors. SJA1000 Standalone CAN controller. 199908
3  饶运涛,邹继军,郑勇芸. 现场总线CAN原理与应用技术.北京:北京航空航天大学出版社,2003
4  Claire Monnet. TMS320C24xDSP控制器上的CAN控制器.今日电子,2004(11)

唐苗  硕士研究生,主要研究方向为现场总线技术及其应用。
吴旭光  教授,主要研究方向为嵌入式系统、现场总线。


欢迎进入老古论坛进行讨论
[嵌入式系统] 相关文章:
MCU应用系统与Internet连接的一种新技术
简介:
摘要: 介绍一种新型的智能网络接口芯片PS2000及其应用。PS2000是Webchip网络接口系列中的重要成员,通过它可以实现智能装置与PC机平台的网关接口,使智能装置通过PS2000上网十分方便,设计者在设计这样的系统时无须熟知网络协议。 关键词: 网络接口芯片 Internet Webchip PS2000 MCU Gateway 前言 今天为们生活在一个信息时代,Internet已经成为信息社会的重要组成部分,Internet技术将深入到日常生活和工作所用到的电子设备中。我们知道,Internet技术得......

嵌入式TCP/IP协议单片机技术在网络通信中的应用
嵌入式软件的覆盖测试
基于32位微控制器MC68HC376的开发设计和应用
实时操作系统VxWorks在跟踪雷达系统中的应用
嵌入式微内核实时操作系统分析与测试
一种嵌入式系统的内存分配方案
实时操作系统μC/OS-II在MCF5272上的移植
基于MPC8260处理器的PPMC系统
基于Web的嵌入式设备管理
 
下一个:[新闻热点]第三届中国信息安全论坛将于30日在京召开
简介:
2004年12月30日,由国务院信息化工作办公室网络与信息安全组指导、中国信息安全产品测评认证中心主办、中国信息产业商会信息安全分会协办的“第三届中国信息安全论坛·信息安全分级认证推进大会—2004年岁末颁证暨答谢酒会” 将于上午在北京国宾酒店隆重举行。   届时国务院信息化工作办公室、信息产业部、公安部、国家安全部、国家保密局、国家密码管理委员会、军队、电信、金融等相关部门领导、业界专家学者、著名信息安全厂商代表和新闻界的人士将参加本次大会。   会议将重点围绕如何落实等级保护策略,推进信息安全产品分级认证;如何增强国内企业自身技术实......
 

上一个:[嵌入式系统]嵌入式系统设计方法的演化—从单片机到单片系统

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:0毫秒