摘 要:该文介绍了CAN总线的基本特点和智能节点数字量及开关量输入输出的设计实现,并给出了软件编制的方法。
关键词:CAN总线;SJA1000;智能节点
Abstract: the paper describes the protocol and co
ncept of CAN bus as well as the way to design and make a intelligent co
ntrol node which can receive ,transmit digital and switching input or output signals ,It also gives out the software design.
Key word: CAN bus, SJA1000, intelligent node
1 引言 随着计算机科学的发展和以其为核心的4C技术(计算机技术、自动控制技术、通讯技术、CRT显示技术)越来越深入的应用到工业生产的各个环节,并引起了自动化系统结构的优化和变革,逐步形成了以网络集成自动化为基础的控制系统。现场总线就是顺应这一趋势发展起来的。随着现场总线技术的不断发展和世界很多大公司连续的技术投入,而现场总线控制系统(field co
ntrol system,FCS)在数据交换的实时性、准确性等方面取得了突破性的进展。该文结合笔者的实践阐述了一个通用的CAN总线智能节点的设计,是在现场总线系统中分布于现场的一个子系统,能实现数据采集与闭环控制,而根据需要加入适当算法以后还可以实现智能控制。
2 CAN总线概述 CAN(Co
ntrol Area Network)总线是一种支持分布式实时控制系统的串行通信局域网。由于其高性能、高可靠性、实时性等优点,已广泛应用于控制系统中的检测和执行机构之间的数据通信。它具有以下一些技术特性:(1)多主方式工作,非破坏性的基于优先权的总线仲裁技术;(2)借助接收滤波实现多地址的帧传送;(3)数据采用短帧结构,受干扰率低,数据帧的信息CRC校验及其它错误检测措施;(4)发送期间丢失仲裁或由于出错而遭破获的帧可以自动重发;(5)对于严重错误具有自动关闭总线功能,使总线其它操作不受影响。CAN总线符合ISO11898标准,最大传输速率可达1MB/s(传输距离最大为40m),最大传输距离为10km(传输速率约为5K),传输介质可为双绞线、
同轴电缆等。由于CAN总线是一种很有发展前景的现场总线,得到了国际上很多大公司的支持。其硬件接口简单,编程方便,系统容易集成。基于CAN总线的以上特点,它特别适用于系统分布比较分散、实时性要求高、现场环境干扰大的场合。
3 利用CAN智能节点的系统构成 由于CAN总线采用多主方式工作,可挂多达110个节点。控制系统的构成由计算机和智能节点组成,如图1所示:与DCS控制系统不一样的是它的拓扑结构。不是所有的下位机以上位机为中心,而是所有的节点(包括上位计算机)都以“平等主体”的形式挂接在总线上。[align=center]
图1 CAN总线系统结构图[/align] 智能节点能够采集现场数据,并根据接收到的命令或者主动将数据发送到CAN总线。通过事先设置验收码和验收屏蔽码可以控制智能节点从总线上接收哪些数据或命令。如果某些数据需要进一步复杂的处理,则上位计算机可以从总线上接收数据。当上位机需要对某个节点施加控制动作时,可以采用点对点方式与该节点通讯;而当它要同时对所有节点施加控制动作时,可以采用广播方式将命令发送到总线。这样当系统正常运行时完全可以没有上位机的参与。大大减少了数据的传输量,同时提高了系统的实时性和可靠性。
4 智能节点的硬件设计 CAN智能测控节点具有现场数据采集、控制及CAN总线通信功能,可以与监控站及其它CAN智能测控节点传送各种参数,并接收来自监控站的命令和数据,用来调整和改变控制状态。因此,在基于CAN现场总线的嵌入式ARM控制系统中,控制节点直接接触控制对象,在系统中起着关键的作用。智能节点需3个脉冲量输入、5个开关量输入、7个开关量输出,2路模拟量输入、2路模拟量输出,结构示意图如图2。为了实现对现场开关量的检测与控制,该节点设计了开关量I/O通道,可实现4路开关量输入和4路开关量输出。4路开关量输入经光电耦合器隔离后,输入单片机的I/O口。4路开关量输出由P1口的引脚输出,经继电器驱动,向外提供无源开关量控制信号。模拟量输入经放大、A/D转换后输入单片机,从单片机输出的控制量经D/A转换后经过放大控制相应的执行器。[align=center]
图2 智能节点结构示意图[/align] CAN智能节点的结构原理图如图3所示:节点的核心器件是PHILIPS公司生产的CAN控制器(SJA1000)和CAN驱动器(PCA82C250)以及微控制器(单片机)。SJA1000是集成的独立CAN控制器(与PHILIPS早期的CAN控制器PCA82C200完全兼容),它负责完成CAN总线通信协议的物理层和数据链路层的功能。对于微处理器来说,它相当于一个存储器I/O映象设备。SJA1000片内有控制寄存器、命令寄存器、状态寄存器、中断寄存器和收、发寄存器等,[align=center]
图3 智能节点电路原理图[/align] 单片机就是通过读写这些寄存器来实现对SJA1000的控制;芯片的TX0、TX1、RX0、RX1引脚用于与CAN总线的接口。PCA82C250是专门用于CAN总线收发驱动的9脚芯片,TXD、RXD引脚分别接收和发送经驱动后的信号;双绞线(同轴
电缆)传输介质分别接至CANH、CANL引脚,必须注意的一点是CANH、CANL之间要加上120Ω的终端匹配电阻。考虑到现场有各种各样的干扰,在CAN控制器和驱动器之间加了高速光耦隔离器件 (6N137);由于CAN控制器和微控制器内部都有自己的时钟产生电路,为了让两者之间协调,外加晶振在CAN控制器上作为整个系统时钟;并将CAN控制器的时钟输出作为微控制器的时钟输入;SJA1000的中断输出信号/INT接到单片机的INT1中断;通过中断方式实现单片机与CAN控制器的通信;同时为了使CAN控制器和微控制器能同时可靠的复位,外加了手动复位电路。
5 节点的软件设计 智能节点的软件设计大体可以分为两个部分:一部分为初始化,其中包括单片机的初始化和CAN控制器的初始化;另一部分为节点实际要完成的数据采集和对执行机构的控制功能,初始化以后,节点就可以工作。但要完成实际的任务,还要设计出应用层软件。采用模糊控制算法,控制结构如图4,软件流程如图5。[align=center]
图4 模糊控制系统结构图[/align] 系统软件所实现的功能为:采样n时刻A/D转换输出值,与系统设定值和上次采样值e(n-1)比较得n时刻偏差e(n);和偏差变化率ec(n);选择合适的量化因子ke和kc,由相应的模糊化规则得到模糊值E(n)和EC(n),分析E(n)和EC(n)的变化趋势以确定是否加入积分环节。然后,根据E(n)和EC(n)的值直接查程序存储器内的模糊控制总表或进行积分运算得到模糊控制增量。最后,对加入或不加入的模糊控制增量采用最大隶属度原则进行模糊判决,选择适当的比例因子ku得到控制增量△u,计算△u+u(n-1)的值,即可得n时刻的控制量。该值可通过CAN总线传送给其它智能单元,进行D/A转换后即可控制现场设备或上位机做进一步的处理以协调整个系统各控制单元的正常、有效的运行。智能控制单元在处理以上任务的同时还要完成与CAN总线数据通信和对现场设备的状态显示与报警。由离线方式计算出的模糊控制总表可以直接以矩阵的形式写入芯片内部程序存储器,其软件设计流程如图5所示。[align=center]
图5 智能单元模糊控制实现程序框图[/align] 经实践调试的结果表明:该智能节点的设计和实施方案是成功的。能可靠的运行和完成要求的任务,控制信息在现场进行处理,而管理层则在上位机中实现。体现了CAN总线高性能、高可靠性的特点。
参考文献: [1]郭素敏、向凤红 基于can总线的智能数据采集系统设计 昆明理工大学学报 [2]迟东明,司栋森.CAN总线在停车场灯光智能控制系统中的应用[J].微计算机信息,2005,2:46-47 [3]陆前锋、刘波、陈明昭 基于SJA1000的CAN总线智能控制系统设计 仪器仪表 [4]邬宽明 CAN总线原理和应用系统设计[M]北京:北京航空航天大学出版社 [5]PHILIPS SJA1000 Stand-alone CAN co
ntroller DATA SHEET[Z]2000