基于CAN现场总线的发动机测试系统
1. 引言
许多现在正在使用的柴油发动机测试平台都是通过仪表读数来分析、判断一台柴油发动机测试时的工作状态,不仅效率低、精度差,而且综合分析判断能力有限。为了能够更加全面、直观地了解柴油发动机测试过程,迅速发现并排除故障隐患,使测试操作人员提高分析判断能力,结合企业技术改造,我们开发了基于CAN现场总线的柴油发动机测试系统,实现了同时对多台柴油发动机测试过程的监控与测试。
2. 测试系统结构组成
根据柴油发动机的测试要求,本系统主要完成对柴油发动机测试过程中各种传感信号的处理以及柴油机工况数据的采集,并将数据通过CAN总线送上位机,要求处理16路模拟信号、16路I/O信号。采集的参数主要有:机油压力和温度、冷却水温度、进排气温度、燃油液位、启动蓄电池电压、转速等。
柴油发动机测试系统的关键是引入了CAN总线技术,形成基于CAN总线的分布式测控体系模型,如图1所示。由于CAN总线作为现场总线的类型之一,属于开放式底层控制网络,是应用于生产现场、在微机化测量控制设备之间实现双向串行多节点数字通信的系统,因此基于CAN总线的分布式测控系统是开放式的,而不是封闭和专用的[1]。这种测试系统将监控功能分散到每个试车台,每个试车台均由一个CAN智能节点完成监控任务。每个CAN总线节点的组成是相同的,都包括:主控单元、CAN总线通信管理单元、数据采集与处理单元等。各节点通过CAN总线与上位机相连,通过总线完成彼此间的通信。
3. 测试系统硬件设计
柴油发动机测试系统采用两级分布式结构。上位机采用PC机,在上位机的PCI总线插槽中安装了PC-CAN总线适配卡,这样就可以通过CAN总线将上、下位机联系在一起构成控制网络。下位机控制器采用单片机AT89C51和CAN总线控制器SJA1000共同组成的智能节点,它们直接对各现场设备(如:传感器、继电器、电机等进行控制,采集现场数据,并根据接收到的命令或者主动将数据发送到CAN总线。
通过事先设置验收码和验收屏蔽码可以控制智能节点从总线上接收哪些数据或命令。如果某些数据需要进一步复杂的处理(如动态显示),则上位计算机可以从总线上接收数据。当上位机需要对某个节点施加控制动作时,可以采用点对点方式与该节点通讯,而当它要同时对所有节点施加控制动作时,可以采用广播方式将命令发送到总线。这样当系统正常运行时完全可以没有上位机的参与,大大减少了数据的传输量,同时提高了系统的实时性和可靠性。
柴油发动机测试系统的硬件设计主要涉及上位机中的PC-CAN适配卡以及下位机CAN智能节点。这里重点分析CAN智能节点的结构组成。
在图2所示的CAN智能节点中,核心器件是CAN总线控制器SJA1000、CAN总线驱动器82C250以及单片机AT89C51。AT89C51主要有两方面的任务:一是负责对CAN控制器SJA1000的初始化,并通过控制SJA1000实现数据的接收和发送等通信任务;二是负责对现场信号的采集以及对现场设备的控制。
SJA1000是Philips公司的CAN控制器,它实现了CAN总线网络中的数据链路层和物理层功能,通过对其编程,微处理器可以设置它的工作方式,控制它的工作状态,进行数据的发送和接收,把应用层建立在它的基础之上。在本设计中,为了增强CAN总线节点的抗干扰能力,采用SJA1000的具有光电隔离的CAN总线接口。SJA1000的发送输出端TX0与接收输入端RX0、RX1分别经高速集成光电耦合器6N137隔离后与CAN总线接口驱动芯片82C250的TXD和RXD相连,82C250则直接与CAN物理总线相连。
上位机监控软件采用组态软件进行开发。组态软件作为用户可定制功能的软件平台工具,是随着分布式控制系统及计算机控制技术的日趋成熟而发展起来的。
评论