基于CAN总线的电工实验指导系统设计
扫描二维码
随时随地手机看文章
引 言
在生产现场控制系统中,智能设备与常规电气设备的安装、调试与维护需要相当数量的电气技术人员,如何高效、批量、规范地培养高级电气操作人员是教仪厂商急需解决的问题。它要求设备具备通信功能,让教师能掌握训练过程的动态指标,从而了解学员的实际实验情况,可对实验过程进行控制,实现分类指导。
本文通过对CAN(控制器局域网)协议及其应用的研究,利用CAN通信控制器、CAN收发器以及增强型微控制器等元器件,研制并开发一种基于CAN总线的应用系统--电工实验指导系统,在电工实验室开出网络化实验教学课程,从而改变常规教学方法的不足,让学生更加自主、灵活地完成其实验任务,并可根据自己的情况进行扩展实验,为建立开放性实验实训设施基地打下良好的基础,还能使学员体会到网络实验的实际价值,了解CAN总线控制技术的基本知识。
1 CAN总线网络通信层的模型与协议
针对不同的应用领域可选择不同的应用规范,对于一般的应用领域,采用"命令-响应"模式的通信协议,就可以实现可靠而有效的"主-从"式通信网络。如果需要进行大量数据交换或通信方式灵活的CAN网络,则可采用一些标准的多主通信协议,如HilonB协议,或者采用CAN2.0协议中远程帧定义。在汽车电子产品领域,通常参考或直接采用J1939等标准规范。在电力通信设计领域,则常采用DeviceNETV2.0规范,该规范己被我国采纳国家标准。在智能楼宇通信领域,一般使用Modbus协议或延用RS-485模式的"主-从"协议。
本系统在建立实际CAN总线通信网络时,使用CAN底层硬件来实现对物理层、数据链路层的控制。应用CAN2.0A/B协议规定的通信检错等机制保证CAN总线通信网络的可靠性,建立了用户协议层的通信协议,并对网络上的通信数据流进行解释与管理。其用户协议层(应用层)通信协议由数据帧和远程帧格式定义来实现,属于"主-从"式结构。
2 硬件系统的组成与模块硬件的设计
基于现场总线的电工实验指导系统的硬件主要由主机、接口卡、智能节点(从机)组成。主机中有应用程序和数据库等文件;接口卡是CAN实现通信的桥梁,同时,在网络中它也作为一个节点;智能节点由基于现场总线、单片机技术的数据采集与传输模块以及实际操作接线装置等组成。节点能够在计算机的控制下对学生的电工实验进行智能指导。
2.1 数据采集与传输模块的设计
数据采集与传输模块可分为5个主要部分,即:由单片机AT89S52组成的主机部分;由SJA1000、PCA82C250、光电隔离电路等组成的CAN总线控制及接口部分;由+5V基准电压源、驱动三极管、LED指示灯、数码管组成的电源与显示部分;采用4片8255作为I/O口的扩展,并与操作工位后端接口等电路组成的数据转换与采集部分;实际操作工位。
AT89S52单片机作为主机,负责对SJA1000进行初始化,通过控制SJA1000实现数据的接收和发送等通信,实施对实验数据的采集,采用P1口控制动态扫描显示与指导实验相关的数据等。选用74L,S373作为地址锁存器,用74LS138对8255、SJA1000进行片选。
2.1.1 CAN总线控制及接口部分
在从机的运行过程中,由于主控CPU需完成多项工作任务,在要求具有一定的灵活性的同时,还需使系统具有一定的可扩展性,因此,从机中的CAN控制器选用Philips公司的SJA1000。选用PCA82C250作为CAN总线的收发器,它也是CAN协议控制器与物理层之问的接口,具有抗瞬变、抗射频和抗电磁干扰的性能,内部的限流电路具有电路短路时对传送输出级进行保护的功能。在节点(工位机)与介质之间加入光耦电路,即SJA1000的TX0和RX0并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连。6N137为高速光隔器件,作为外线路与系统之问的隔离,并采用两个完全隔离电源VCC和VDD分别对光耦两部分电路供电,从而达到信号之间的完全隔离,这样可有效地提高系统的抗干扰能力和内部系统的安全性。SJA1000的ADO~AD7连接到AT89S52的P0口,CS连接到74LS138的Y4端口,Y4为0时CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读写操作,SJA1000的RD、WR、ALE分别与AT89S52的对应引脚相连,可将INT接AT89S52的INT0或INT1。AT89S52可通过中断或查询方式访问SJA1000,也可将INT接AT89S52的其他端口,采用查询方式访问SJA1000。接口电路如图1所示。
2.1.2 数据转换与采集部分
1)数据转换电路的设计
根据电气控制原理的分析与研究,从中优化出一种比较通用的接线方法,让对应的点按操作顺序依次向CPU的I/O口提供一定规则的+5 V电平,即可完成采样和数字量的转换。学生操作工位的正面为与实际接线端子插孔,其背面为与之相连的信号线,信号线的另一端与8255的某一固定的端口相接。
2)采样电路的设计
工位面机采用4片8255作为I/O口的扩展,并通过20 kΩ下拉电阻与操作工位后端对应的接线端子相接。在8255初始化时,让其工作于普通读方式,此时,如果某端子为高电平,则在对应的8255 I/O口可采集到高电平。如果所有接线端子均为高电平,则总电流会接近7805的最大输出电流。因此,需采用分相、分电路的方法进行实验指导操作,完成实验的指导任务。 2.1.3 单片机对硬件电路各部分访问的地址
硬件电路原理图设计好后,其访问地址即可根据具体的情况予以确定。本文采用P2.5~2.7口控制74LS138,分别对4片8255和SJA1000进行片选和访问。其访问地址如表1所示。
3 CAN总线电工实验系统节点软件
3.1 数据采集与显示在节点中的实现
本文采用AT89S52单片机作为工位(节点)系统的控制、数据采集和显示的核心,使用Keil uVision2集成开发环境进行软件的开发与调试。
由于从机需要完成显示、数据采集与传输等功能,因此至少需采用2个中断源进行程序控制,即INT0和T0。其中:INT0用于指示CAN总线数据的接收与发送等进程的外部中断;T0控制显示扫描时钟等。数据采样过程分为两种情况:一是初始化时的自动初始采样;二是在程序的运行过程中,当接收到数据帧时,自动执行一次采样。
1)显示部分的功能与过程分析
显示电路的功能有3种:显示初始化成功、有关出错和对学生实验步骤进行指示等信息。这些信息可由用户根据硬件结构和软件的需要自行定义。本文采用74LS47译码驱动集成电路进行驱动与显示控制。通过软件的运行,使P1口分别控制6个数码管共阳端的通断,同时,由P0口向74LS47译码驱动电路提供数据,实现了显示的动态扫描控制。初始化正常时自定义显示为004321,正常运行时显示课题号、相号、接线步骤标号或出错时显示错误标志号。
2)数据采集的原理与过程分析
数据采集的原理是:CPU通过其P2口的相应引脚控制向与其对应的分相首端子提供+5 V电平,其余接点按一定规则用信号线相连,从而使每个端子上出现0电平或高电平,这样对应端子的状态可通过8255读取。即按一定顺序接线时,可在对应的8255口读到不同的采样数据。8255的每一个端口均可读到一个8位二进制数(1字节),将这些数据与实验操作步骤关联,从而使每次操作得到不同的数据。本系统需4片8255,一次采样可得到12个8位二进制数。
在单片机的RAM空间设置一个20字节的数组作为采集数据的存储空间。在上电复位时,使8255均初始化为普通读方式,并向数组中写入初始化数据。正常运行后,每接收到一个数据帧就进行一次数据的采集。所采集的数据直接按CAN总线通信的帧格式对数组中的内容进行更新,以备读取与上传。数据采集的存储地址与内容如表2所示。
3.2 通信软件的设计
本文中主站采用PC15121接口卡作为接口设备,在通信方式与协议确定后,主站与从站的通信可调用该产品的接口函数来实现。从站(工位)CAN节点的控制软件采用模块化设计方法。主要有5个模块:SJA1000初始化模块、SJA1000接收数据模块、SJA1000发送数据模块、SJA1000错误处理模块;系统的其他任务模块。
3.3 智能节点程序的运行
从机的主要功能为硬件的初始化、进入正常的显示、等待中断事件的发生、接收数据帧、数据处理并送显、等待接收远程帧并返回所需的数据帧和数据的采集等。其主程序流程如图2所示。外部中断服务程序流程如图3所示。
在主机程序设计中,接口程序与数据处理的算法设计是关键。其中,主机接口卡可作为一个智能节点,网络中的数据通信主要是对该卡的操作。
4 结束语
本文对CAN总线网络的软硬件系统进行了分析与研究,采用了一种基于CAN总线的组网协议与数据传输方式,并将其应用于电工实验指导系统中,以"主一从"通信模式实现网络通信,达到了预期目标。设备能满足实验环境的需要。