|       摘要:本文介绍了CAN总线的技术特点、CAN总线控制器SJA1000和82C250的硬件结构和功能,SJA1000和82C250在智能传感器中的硬件电路和软件设计。       关键词:CAN总线;总线控制器SJA1000;总线收发器82C250;智能传感器       前言       随着自动化程度的提高和信息的网络化进程,所需要的测控点和测控参量越来越多,使得一个自动控制系统日益庞大而复杂。对于一个系统来说,需要的传感器数目成倍增加。为了使各智能仪表与上位机能实时、高速、准确地通信,选择较理想的现场总线则是很关键的。现场总线是开放型控制系统,是用于现场总线仪表与控制室之间的一种全数字化、串行、双向、多站的通讯网络。CAN是其中很有发展前景的一种现场总线。在网络化的系统中,每只传感器作为一个智能节点挂接在CAN总线上,整个系统如图1所示。 
       图1CAN总线系统框图       1CAN总线的技术特点       a)CAN通信速率为(5kB/s)/10km、(1MB/s)/40m,其节点数可达110个,传输介质采用双绞线、同轴电缆和光纤等;       b)采用点对点,一点对多点及全局广播等几种方式发送接收数据;       c)采用非破坏性总线优先级仲裁技术。当两个节点同时向网络上发送信息时优先级低的节点主动停止发送数据,而优先级高的节点可不受影响地继续发送信息。因此。按节点类型分成不同的优先级,可以满足不同的实时要求;       d)可实现全分布式多机系统,且无主、从机之分,每个节点均主动发送报文,用此特点可以方便地构成多机备份系统;e)支持四类报文帧:数据帧、远程帧、出错帧、超载帧。它采用短帧结构,每帧有效字节数为8个。这样,传输时间短,受干扰的概率低,且具有较好的检错结果。       此外,CAN采用循环冗余校验;其节点具有自动关闭的功能。由于带有CAN总线接口的传感器种类还不多,价格也较贵,为了使总线能与上位机更好的实时的通信,可以自行设计一种由8051单片机和SJAl000独立CAN总线控制为核心构成的智能节点。在普通传感器基础上形成可接收8路模拟量输入的智能传感器网络。       2 SJAl000的硬件结构和功能       如图2所示,SJAl000从逻辑上可分为7个部分:       a)IML(接口管理逻辑)IML用于解释来自CPU的命令,分配信息缓冲区并向CPU提供中断及状态信息;       b)发送缓冲区TXB 13字节长存储器,外部CPU将要发送的信息写入此缓冲区;       c)接收缓冲区RXB 接收缓冲区为64字节的CPU接收信息的FIFO寄存器;       d)接收过滤器ACF 对接收到的信息ID与ACF内容相比较以决定是否接收信息;       e)位流处理器BSP 用来控制发送、接收缓冲区及CAN总线的数据流;       f)定时逻辑BTL 用于控制CAN总线上数据的传输速率与同步;       g)错误管理逻辑EML 按CAN协议进行错误管理。 
       图2 SJAl000逻辑框图       3 CAN总线在智能传感器网络中的应用       以一路信号采集为例。图3是CAN控制器和收发器与单片机及ADC0809的接口电路图。CAN控制器采用PHILIPSSJA1000,单片机采用89C51,主要完成信号的采集和对信号的预处理,并把经过处理的数据传给上位机。82C250是CAN控制器SJA1000与CAN物理总线的接口器件,它驱动总线差动接收或发送。考虑到现场有各种各样的干扰,在CAN控制器和驱动器之间加了高速光耦隔离器件(6N137)。由于CAN控制器和反馈控制器内部都有自己的时钟产生电路,为了使两者协调,外加的晶振在CAN控制器上作为整个系统的时钟,且将CAN控制器的时钟输出作为微控制器的时钟输入;SJAl000的中断输出接至CPU的INT1端;通过中断方式实现单片机与CAN控制器的通信;同时为了使CAN控制器和微控制器能同时可靠复位,外加了手动复位电路。另外,由于ADC0809转换器具有三态输出锁存功能,可以直接与89C51的总线相连,在系统中把ADC0809转换器当作外部RAM单元对待。 
       图3 硬件电路图       4 软件设计       智能传感器作为一个节点的软件设计主要包括两部分:一部分为初始化单片机和SJAl000,另一部分为节点实际要完成的数据采集和对执行机构的控制功能。对CAN控制器的初始化,对各个寄存器分别写入不同的内容,其中CAN控制器与单片机之间采用中断方式通信。其流程如图4所示。  
 图4 中断流程图
       SJAl000的初始化程序为:       MOVA,#0BH        04H为ACR寄存器地址 00H为CR寄存器的地址       MOVDPTR,#8000H       MOVX@DPTR,A开放错误和接收中断,SJA1000进入复位模式       MOVDPTR,#8004H       MOVA,#02H       MOVX@DPTR,A       INCDPTR05H为AMR寄存器地址。设为全部收       MOVA,#FFH       MOVX@DPTR,A       INCDPTR       MOVA,#01H06H为BTR0的寄存器地址       MOVX@DPTR,A       INCDPTR       MOVA,#FFH07H为BTRl的寄存器地址,写BTR0和BTRl,波特率设为160K       MOVX@DPTR,A       INCDPTR       MOVA,#0AH08H为OCR寄存器地址,SJAl000采用正常模式输出       MOVX@DPTR,A       MOVA,#OFH       MOVDPTR,#801FH1FH为CDR寄存器地址,使微控制器与SJAl000的时钟相同       MOVX@DPTR,A       MOVA,#0AH       MOVDPTR,#8000H       MOVX@DPTR,A写CR寄存器使SJAl000进入工作模式       RET       5 结 语       将CAN总线应用于智能传感器中,使传感器获得的信号能通过总线实时地、可靠地、高速而准确地进行传输。同时,由于整个智能传感器网络采用全数字化的通信,因此总线也具有很好的抗干扰能力,即使在重负荷下也不会出现网络瘫痪的情况,这些优越性能是其它现场总线所不及的。 |