can控制器是CAN局域网控制器的简称,它是德国Bosch公司在1986年为解决现代汽车中众多测量控制部件之间的数据交换而开发的一种串行数据通信总线。CAN?可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。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提供