0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

两款CAN总线控制器的对比和应用场景分析

电子设计 来源:单片机与嵌入式系统应用 作者:唐苗 2021-05-19 10:55 次阅读

引言

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,独立配置成接收邮箱或者发送邮箱,也可以禁止不用。这样大大增加了数据的容量和信息的处理能力。

o4YBAGCkfoiAIfkKAABa7AXgDz4981.png

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可以看出,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)所示。

pIYBAGCkfoKAOc-uAABkBqezRQc124.png

对于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)所示。

o4YBAGCkfnyAcNJgAABTF-7ojdA967.png

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

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

结语

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50714

    浏览量

    423138
  • 控制器
    +关注

    关注

    112

    文章

    16332

    浏览量

    177806
  • 总线
    +关注

    关注

    10

    文章

    2878

    浏览量

    88051
收藏 人收藏

    评论

    相关推荐

    独立CAN总线控制器的说明

    BSJA1000 电路是一独立CAN 总线控制器,主要应用于汽车和一般工业环境领域。该产品与CAN 2.0B 通信协议完全兼容,具有很多先
    发表于 12-21 15:57

    CAN总线错误分析与解决

    0.CAN总线错误分析与解决–讲的最精辟的放在最前面我们知道CAN总线上的每个节点往总线上发送数
    发表于 01-14 06:55

    CAN总线控制器Verilog代码

    CAN总线控制器Verilog代码
    发表于 05-20 10:32 168次下载

    基于CAN总线的客房通信控制器的设计

    本文针对宾馆、酒店的客房控制和管理系统,介绍了基于CAN 总线的客房通信控制器的硬件电路结构、原理及软件结构和主程序流程。关键词:CAN
    发表于 06-13 12:06 13次下载

    以8051微控制器和82527独立CAN总线控制器为核心组成

    介绍一种以8051微控制器和82527独立CAN总线控制器为核心组成的CAN总线智能传感
    发表于 07-17 08:41 26次下载

    基于CAN总线的家庭控制器的设计与实现

    基于CAN总线的家庭控制器的设计与实现  引言   CAN(Controller Area Network)总线是德国Bosch公司为
    发表于 11-07 09:30 729次阅读
    基于<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的家庭<b class='flag-5'>控制器</b>的设计与实现

    CAN总线控制器IP核代码分析

    本内容写出了CAN总线控制器IP核的代码,并做出了详细分析
    发表于 06-28 11:39 6384次阅读

    基于Verilog HDL语言的CAN总线控制器设计及验证

    在此利用Verilog HDL设计了一CAN总线控制器,首先根据协议把整个CAN总线
    发表于 07-31 14:25 8321次阅读
    基于Verilog HDL语言的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>控制器</b>设计及验证

    基于FPGA的CAN总线控制器的设计

    今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,CAN 总线协议解析以及
    的头像 发表于 05-18 09:21 1304次阅读
    基于FPGA的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>控制器</b>的设计

    两款安全地毯控制器的区别

    安全地毯控制器具有转换信号、监测地毯工作状态的功能。与安全地毯配合使用保护一片区域。如果安全地毯出现断线,接线错误等情况,会发出停车信号,安全地毯控制器可分为一拖一控制器和一拖六控制器
    的头像 发表于 06-09 14:41 529次阅读
    <b class='flag-5'>两款</b>安全地毯<b class='flag-5'>控制器</b>的区别

    CAN收发CAN控制器的区别

    CAN总线系统是现代工业自动化和汽车控制系统中常用的通信协议。在CAN总线系统中,CAN收发
    的头像 发表于 05-28 15:44 2833次阅读

    CAN总线控制器是什么意思

    CAN总线控制器(Controller Area Network Bus Controller)是CAN总线通信系统中的核心部件,它扮演着接
    的头像 发表于 09-03 14:16 968次阅读

    CAN总线控制器的工作原理

    CAN(Controller Area Network,控制器局域网)总线控制器的工作原理涉及多个方面,包括消息传输、冲突检测与解决、总线
    的头像 发表于 09-30 11:33 815次阅读

    Diodes推出两款USB Sink控制器

    Diodes公司(Nasdaq: DIOD)新推两款USB Type-C® Power Delivery (PD) 3.1 EPR Sink控制器,助力电子设备迈向标准化充电新时代。这两款控制
    的头像 发表于 10-22 11:46 610次阅读

    如何选择CAN总线控制器

    在现代工业自动化和汽车电子领域,CAN(Controller Area Network)总线因其高可靠性、实时性和灵活性而成为广泛使用的通信协议之一。选择合适的CAN总线
    的头像 发表于 11-12 09:48 226次阅读