两种CAN微控制器MCP2510与SJA1000的比较

来源:互联网 发布:淘宝致富王软件 编辑:程序博客网 时间:2024/05/10 07:14

 两种CAN微控制器MCP2510与SJA1000的比较

 

MCP21510

SJA1000

引脚

18

28

发送缓冲器

三个发送缓冲器。每个发送缓冲器占据14 字节的SRAM,并映射到存储器中。其中第一字节TXBNCTRL 是与报文缓冲器相关的控制寄存器。 该寄存器中的信息决定了报文在何种条件下被发送,并在报文发送时指示其状态。用5个字节来载标准和扩展标识符以及其它报文仲裁信息。 最后8个字节用来装载等待发送的报文的八个可能的数据字节

一个发送缓冲器TXB,长13个字节。

接受缓冲器

有两个报文接收缓冲器。每个接收缓冲器配备有多个验收滤波器。除上述专用接收缓冲器外,MCP2510 还具有单独的报文集成缓冲器 (MAB) ,可作为第三个接收缓冲器。

一个接收缓冲器RXB,长13个字节。但有一个接收FIFORXFIFO),长64个字节。RXB作为RXFIFO的一个窗口,被CPU访问。CPU在此FIFO的支持下,可以在处理一条报文的同时接收其它报文。

MCU接口

通过SPI接口与MCU进行数据传输,最高数据传输速率可达5 Mbps。支持SPI模式0011。与SJA1000不同的是,MCUMCP2510的接收缓冲器和发送缓冲器的操作,必须通过SPI接口用MCP2510内置读写命令来完成。

通过8根地址/数据复合总线与MCU交换数据。

 

软件设计时需要注意以下问题:

因为MCP2510在初始化完成后处于默认Configuration模式下,所以就需要在MCP2510的初始化完后将其置为Normal模式,否则MCP2510将一直停留在Configuration模式下,不能正常进行工作。将MCP2510Normal模式可通过使用MCP2510内置的BitModify(位修改)4指令向CANCTRL控制字写入一个0字节来实现。
     ②
在对MCP2510进行任何操作之前,都要由微处理器向MCP2510的片选CS输出一个低电平,使得MCP2510选通。
     ③
在执行MCP2510操作时,发送完读指令及其地址码之后,仍然需要向MCP2510提供时钟,以接收到的数据。可以通过向MCP2510发送一个0字节来实现。
     ④
在对MCP2510完成任意操作后,都要延时一段时间,使其有足够的时间来准备接收下次操作的命令,防止出现MCP2510的情况。

 

 

一般来讲,SJA1000要与总线式单片机接口,单片机对SJA1000的操作和对外存储器的操作是一样的。最简单的就是89C51+SJA1000PHILIPSARM多数是非总线式单片机,所以不方便。但2119PHILIPSARM中带CAN控制器最便宜的一款,有2CAN控制器。无论是做CAN节点还是CAN中继器都是合适的选择。