控制工程师论坛

现场总线

CAN控制器的选择

xilinxue
xilinxue

2009-02-13

由于目前在DeviceNet节点上被广泛采用的CAN控制器芯片为Philips的SJA1000和Intel的82527两种CAN控制器芯片。下面对它们各自的主要特性作一个介绍。 

1.Intel 82527 CAN控制器
 

  *支持CAN2.0,包括标准的和扩展的数据和远程帧;
  *可程控全局屏蔽,包括标准和扩展信息标识符;
  *具有15个报文缓冲区,每个数据长度为8字节,包括14个TX/RX缓冲区,一个带可程控屏蔽的RX缓冲区;
  *可变CPU接口,包括多路8位总线(Intel或Motorola方式)、多路16位总线、8位非多路总线(同步/异步)以及串行接口;
  *位速率可程控,并有可程控的时钟输出;
  *可变中断结构;
  *可对输出驱动器和输入比较器结构进行设置;
  *两个8位双向I/O口;
  *44脚PLCC封装,引脚与82526兼容。

  Intel 82527控制器芯片是Intel公司Intel 82526 CAN控制器芯片的替代产品,也是支持CAN规范2.0B标准和扩展报文格式的第一个CAN控制器芯片。Intel 82527具有一个功能强大的CPU接口,它可以直接接口至不同的CPU,并可以配置为16位分时复用的地址/数据总线接口,使其可以更充分的利用16位或32位CPU的强大功能。此外,当不需要并行CPU接口时,82527提供了灵活有效的串行接口进行通讯。
  82527提供功能强大的15个每个8字节数据长度的报文缓冲区。除最后一个报文缓冲区外,每个报文缓冲区都可以配置为发送或接收,最后一个缓冲区为一个仅具有特定屏蔽设计的报文接收缓存器,以允许选择不同的报文标识符组进行接收。82527同时提供实现报文滤波的全局屏蔽性能,可以全局性的屏蔽到来报文的任何标识符,可编程的全局屏蔽性能适用于标准的和扩展的两种报文格式。
  82527的CAN控制器通过在片双口RAM与微控制器进行数据交换。微控制器将要传送的数据信息,包括数据位组长度、标识符、数据传输方向、数据帧或远程帧等包装成多达15的通讯目标送人双端口RAM,82527可以自动完成这些通讯目标的传送。

2.Philips SJA1000 CAN控制器
 
  *支持CAN2.0,包括标准的和扩展的数据和远程帧
  *位速率可程控,并有可程控的时钟输出;
  *扩展的64字节FIFO接收缓冲器;
  *4个字节的验收滤波器;
  *时钟频率提高到了24MHz;
  *输出驱动器状态可编程;
  *可擦写的总线错误计数器;
  *当前错误代码寄存器;
  *仲裁丢失捕获寄存器;
  *28脚DIP/SO封装,引脚及电器特性与82C200兼容。

  Philips SJA1000是Philips公司于99年推出的全新CAN控制器芯片,用来取代以得到广泛使用的82C200 CAN控制器芯片。Philips SJA1000在82C200的基础之上增加了一些新的特性,为采用SJA1000 CAN芯片进行DeviceNet 接入产品设计的用户提供了方便和更大的灵活性。
  SJA1000的64字节FIFO接收缓冲器使网络设备可以接收更多的报文而不会因为接受缓冲区太小而拒收报文,同时SJA1000采用了4个字节的验收滤波器,可以对DeviceNet报文的整个报文头部进行接收前的检验。
  SJA1000在总线错误管理上比起82C200也有很多改进,SJA1000设有可进行读写操作的错误计数器,增加了错误认可中断和可编程的错误警告中断,并提供了当前错误代码寄存器以标记错误发生的类型、状态和位置。
  针对DeviceNet的特点,SJA1000提供了一种仅听模式,使DeviceNet节点的自动波特率检测和热插拔通过软件更为容易得到实现。SJA1000还增加了仲裁丢失中断,通过仲裁丢失捕获寄存器可以获得仲裁丢失的位置。图1是SJA1000的功能方块流图。
SJA1000功能方块图

  其中CAN核心模块根据CAN总线协议控制数据帧的发送和接收;接口管理逻辑模块提供SJA1000与主微处理器或其它设备的连接,主微处理器可以通过数据/地址复用总线和读写控制逻辑访问SJA1000的所有寄存器;发送缓冲区可以存储一个完整的标准或扩展的报文,当主微处理器要求SJA1000发送报文时,接口管理逻辑操纵CAN核心模块将发送缓冲区中的报文发送到CAN总线上;当接收一个报文时,CAN核心模块首先将总线上的串行位流数据转换位并行数据,然后交给接收过虑模块进行识别,决定该报文是否为主微处理器所要求的报文类别,所有接收的报文可以存放在接收先进先出队列,根据不同的工作模式和数据长度,该队列可以存放最多32个报文,然后用户可以灵活地对报文分为不同地优先级和中断处理服务。
  SJA1000可直接连接两类主要的处理器家族:Intel公司的80C51系列和Motorola公司的68xx系列,其芯片外围专门有一个模式管脚用了选择CPU的类型。SJA1000提供了8位地址/数据复用总线和读/写控制信号与CPU交换数据,我们可以将SJA1000看作映射到主微处理器的外围存取器I/O设备。SJA1000与80C51系列微处理器地典型应用如图2所示:
  SJA1000通过2个8位寄存器来支持对报文的过滤功能,将应用不关心的报文拒之门外将提供处理期的性能,因为大多数应用都是通过中断的方式交换数据,所以正确的使用过滤功能可以为中断处理函数赢得时间。SJA1000提供一个接收编码寄存器(Acceptance Code Register)和一个接收屏蔽寄存器(Acceptance Mask Register)。接收过滤模块将CAN报文的11位标识符的高8位于这2个寄存器里存放的值相比较,并作出是否接收的判断,其在基本模式(BasicCAN Mode)下工作原理如图3所示:
  假设接收编码寄存器ACR和接收屏蔽寄存器AMR的值如下表所示:
回帖

评论2

总共 , 当前 /
首页 | 登录 | 注册 | 返回顶部↑
手机版 | 电脑版
版权所有 Copyright(C) 2016 CE China