《工业控制计算机》2010　年第　23　卷第　2　期　单片机的　CAN　通信节点及其与　PC　机的　USB　通信*　CAN　总线是一种串行数据通信协议,其通信接口中集成了　CAN　协议的物理层和数据链路层功能,可完成对数据的成帧处　理。　CAN　协议的一个最大特点是废除了传统的站地址编码,而　代之以对通信数据块编码,　采用这种方法可使网络内节点个数　在理论上不受限制,还可使不同的节点同时收到相同的数据。　本　文介绍了　CAN　总线智能节点,并且应用　PC　和CAN　智能节点、　利用　USB　接口组成通信系统。　1　基于　PIC　单片机的嵌入式　CAN　智能节点的设计　嵌入式　CAN　智能节点以　PIC16F877　单片机作为嵌入式微　控制器,以MCP2510　作为　CAN　控制器,以PCA82C250　作为　CAN　收发器,具有现场、远程控制功能。　MCP2510　是一款独立　CAN　控制器,　是为简化连接　CAN　总线的应用而开发的,主要由三个部分组成:①CAN　协议引擎。　②用来为器件及其运行进行配置的控制逻辑和　SRAM　寄存器。　③SPI　协议模块。　1.1　CAN　通信硬件设计　PIC16F877　通过SPI　接口可以实现与CAN　控制器MCP2510　的无缝连接。　PIC16F877　的I/O资源丰富,　共有　A、　B、C、D、E　五个　I　/　O　口,每个　I　/　O　口除了基本用途外还有一些特　殊功能。　以下是　CAN　节点硬件电路图　1。　1.2　CAN　通信的软件设计　MCP2510　设计可与许多微控制器的串行外设接口(SPI)直　接相连。　外部数据和命令通过　SI　引脚传送到器件中,而数据在　SCK　时钟信号的上升沿传送进去。　MCP2510　在SCK　下降沿通　过SO　引脚发送所有的操作指令(复位、读、写、发送请求、状态　读、位修改)字节。　复位指令的　SPI　发送如图　2　所示。　图2复位指令时序图　MCU　通过　SPI　接口与器件进行通信。　通过使用标准　SPI　读　写命令对寄存器所有读写操作。　所提供的中断引脚提高了系统　的灵活性。　器件上有一个多用途中断引脚,以及各接收缓冲器专　用的中断引脚,　可用于指示有效报文是否被接收和载入各接收　缓冲器。　通过　SPI　接口访问控制寄存器的方式来启动报文发送。　本文中　MCP2510　通过中断进