1 引言
CAN,全称为“Controller Area Network”,即控制器局域网,是一种国际标准的,高性价的现场总线,在自动控制领域具有重要作用。CAN是一种多主方式的串行通讯总线,具有较高的实时性能,因此,广泛应用于汽车工业、航空工业、工业控制、安全防护等领域。
由于PC机无CAN接口,因此,PC机与智能节点构成CAN总线系统可采用RS232/CAN、并口/CAN、USB/CAN、ISA卡/CAN以及PCI卡/CAN方式接入。而采用RS232/CAN接入时,需采用CAN/RS232接口标准转换。针对这一问题,提出了CAN/RS232智能电平转换器设计方案,以SJAl000作为独立CAN控制器,完成CAN通信协议。并在SJAl000与驱动器之间连接高速光耦,从而实现总线各点间的电气隔离。
2 硬件电路设计
CAN/RS232智能电平转换器硬件电路主要由微处理器AT89C52、独立CAN通讯控制器 SJAl000、CAN总线驱动器82C250、高速光电耦合器6N136、TTL电平与RS232电平转换器ICL232、LED数码管显示电路以及为 SJAl000提供初始地址的拨码电路组成,其结构框图如图1所示。
3 CAN控制器SJAlOOO
SJAl000是一款独立CAN控制器,应用于移动目标和工业局域区域网控制领域。该器件是Philips公司CAN控制器PCA82C200的替代产品。SJAl000具有两种工作模式,本设计采用PeliCAN工作模式。
3.1 SJAl000与AT89C52的接口设计
SJAl000与AT89C52的接口电路如图2所示。AT89C52负责sJAl000的初始化,控制SJAl000来实现数据的接收和发送等通讯任务。SJAl000的ADO~AD7连接至AT89C52的P0端口,CS连接至AT89C52的 P3.4(AT89C52的定时器T0不起作用)。当P3.4为0时,AT89C52选中SJAl000,并通过访问外部RAM低地址区实现P0端口的读/写操作,从而对SJAl000相应寄存器执行读/写操作。SJAl000的RD、WR、ALE引脚分别与AT89C52的对应引脚相连,SJAl000 的INT引脚接AT89C52的INTO引脚。AT89C52还可通过中断方式访问SJAl000。为了增强系统的稳定性,采用双晶体振荡器, AT89C52采用11.059 2 MHz的晶体振荡器,SJAl000选用16 MHz的晶体振荡器。复位电路可选用DSl232,其输出引脚ARES与SRES分别与AT89C5l的RESET引脚和SJAl000的RESET引脚相连。