单片机与SJA1000 CAN控制器接口电路
图为C8051F020型单片机与SJA1000型控制器的硬件连接电路原理。SJA1000占用了0x8000-0x80FF的外部RAM空间。当单片机访问以上空间时片选信号会选中SJA1000。
C8051F020有高低2个外部存储器接口。因此,SJA1000的AD0-AD7连接到C8051F020的高端口P7口,CS连接到基址为0x8000的外部存储器片选信号。当C8051F020访问地址0x8000-0x80FF时,CPU可对SJA1000执行相应的读/写操作。SJA1000的RD、WR和ALE分别与C8051F020的对应引脚相连,INT接C8051F020的INT0引脚,于是C8051F020可通过中断方式访问SJA1000。SJA1000的复位信号RST为低电平有效。C8051F020的AD0-AD7口用于地址/数据的输入/输出,将其配置为漏极开路方式,利用4.7kΩ上拉电阻器拉至5V。通过设置数字交叉开关,将C8051F020的外部中断引脚配置到P2.7口。
CAN能够使用多种物理介质,例如双绞线和光纤等。该设计方案采用双绞线。信号以差分电压传送,2条信号线为CAN_H和CAN_L,静态时为2.5V,此时状态表示逻辑"1",也叫做"隐性"。CAN_H比CAN_L高,表示逻辑"0",称为"显性",此时CAN_H=3.5V,CAN_L=1.5V。TJA1050型CAN总线收发器是CAN协议控制器和物理总线之间的接口,CAN总线上二端节点须加60Ω电阻器和47nF电容器将信号吸收,以避免信号反射。为了增强CAN总线节点的抗干扰能力,SJA1000的TX1与RX1通过6N137型高速光耦后与TJA1050相连。这样就很好地实现了总线上各CAN节点间的电气隔离。其中,光耦部分电路的2个电源VCC和V_CAN必须完全隔离,否则采用光耦就是失去了意义。电源的完全隔离可采用小功率电源隔离模块和通过带多个5V隔离输出的开关电源模块实现。
- RS232通信网络与CAN总线通信网络互联设计(10-17)