can控制器的功能特点
以Philips SJA1000 CAN控制器为例:
*支持CAN2.0,包括标准的和扩展的数据和远程帧
*位速率可程控,并有可程控的时钟输出;
*扩展的64字节FIFO接收缓冲器;
*4个字节的验收滤波器;
*时钟频率提高到了24MHz;
*输出驱动器状态可编程;
*可擦写的总线错误计数器;
*当前错误代码寄存器;
*仲裁丢失捕获寄存器;
*28脚DIP/SO封装,引脚及电器特性与82C200兼容。
can控制器的原理
还是以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个寄存器里存放的值相比较,并作出是否接收的判断。