基于虚拟仪器技术的车辆监控系统设计
发布时间:2009-04-21 作者:孙树文 杨建武
0 引言
目前,在控制领域,虚拟仪器系统的应用多局限于采集-反馈-控制的点对点方式。而对于多电机的系统,特别是多电机驱动的轨道车辆系统,则需要实现大量的信息采集、分布式的协调控制、实时的反应速度等功能。传统方式硬件构成复杂、走线繁琐、调试安装不便、不易扩展,且没有发挥虚拟仪器的优势,因此本文提出了一种基于CAN(Controller Area Network)总线的虚拟仪器系统的设计方案,将计算机通讯技术、现场总线技术和虚拟仪器技术很好的结合起来,设计出了一套结构简单、实时性高、扩展性强的分布式监控系统,实现了多电机驱动控制与实时监测的车辆监控系统。
1 监控系统的总体结构和功能
基于CAN总线和虚拟仪器技术的车辆监控系统由监控计算机(内置PC-CAN适配卡)、智能节点(n<108)、CAN总线网络组成,其系统结构如图1所示。分布在整个车辆的智能节点按功能可以分为:操作台节点、电机驱动节点、设备控制节点。驱动节点接收操作台发来的控制指令,对驱动电机进行智能控制,并采集车载电源的电压、电流和温度信号,经过处理后发送给监控计算机;设备控制节点接收监控计算机的指令控制相应的车载设备,如照明设备、通风设备、广播设备等;监控计算机可以通过CAN总线网和各个控制节点之间进行实时通信,用图形化编程语言LabVIEW编写虚拟仪表用来显示电源电压、驱动电流、车辆速度、设备状态等信息,从而实现轨道车辆的分布式驱动和集中监控。
CAN智能节点是整个监控系统的核心部分,通过它把分布在车辆上的各种设备连接成统一的系统。每个智能节点使用统一的硬件平台,由微处理器、CAN控制器、CAN收发器和外围电路(如:信号调理、光耦隔离、I2C、拨码开关等)组成。每个节点都可以根据所选择的连接设备来选择不同的工作方式。监控计算机可以选用普通PC或工控机(IPC)。PC-CAN适配卡用来完成CAN总线和监控计算机之间的协议转换,可以选用PCI总线适配卡、ISA总线适配卡或RS232串行通信适配器。各个控制节点之间通过屏蔽双绞线互联构成CAN总线网络,总线两端连接120Ω的阻抗匹配电阻,用来提高系统的稳定性和抗干扰能力。
2 监控系统的硬件设计
由前所述监控系统的总体结构和功能可知,该系统的硬件设计主要是CAN智能节点的设计。智能节点硬件电路设计上采用了模块化结构,由微控制器(CPU)、CAN通信模块、信号采集模块、设备控制模块、参数设置模块组成,驱动节点的整体结构如图2所示。

为了简化设计,提高系统的可靠性和性价比,智能节点选用的是Philips公司的带有在片CAN控制器的P87C591微型控制器。采用自带CAN总线控制器的微处理器,不占用处理器的端口资源,大大简化了接口电路的设计,减少了程序的复杂程度,提高了系统的稳定性。现场智能节点各个组成模块的功能与所选择微处理器相对应的资源如下:
(1)CAN通信模块:CAN总线通信接口电路主要由P87C591的片内CAN驱动器SJA1000、6N137高速光隔、CAN收发器PCA82C250组成。P87C591完成CAN协议的应用层功能;SJA1000完全兼容CAN2.0协议,完成物理层和数据链路层的功能;PCA82C250提供了对总线差动发送和接受数据的功能,有效地提高了总线的抗干扰能力,实现了保护总线、降低射频干扰等功能。为了进一步提高了系统的可靠性,在P87C591和PCA82C250之间光耦(如:6N137等)隔离电路,并且采取了双电源,有效地抑制由总线引入的干扰[1]。
(2)信号采集模块:P87C591自带的6路模拟输入的10位ADC,可设置为8位快速ADC,可以基本满足本系统对采集的精度要求,完成对电机、电池状态的测量任务;采集电路将各个传感器采集到电信号进行调理后,接入微处理器的ADC接口。为抑制共模干扰,放大器基本采用差动输入。CPU得到信息做出相应的判断,并送至不同的子程序进行相应的处理,如:把电池的电压、电流、温度信息通过通信程序发送给监控计算机;若电池电压过低,则自动切断本节点的驱动电机,并把节点的停机信息通知监控计算机。
(3)设备控制模块:CPU接收到控制台发来的控制指令信息,并做出相应的处理。不同的设备接口电路略有不同。如:电机驱动节点是接通驱动电机的主接触器、正反转接触器,通过I2C总线把速度信号传给数字电位计,用来控制电机驱动器的输出电流,进而控制电机转速。若电池的电压、电流、温度的任一项值超出正常值范围时,或接到总线的报警信息,电机控制模块都会做出相应的反应,使驱动单元得到保护。
(4)参数设置模块:报警电压、报警电流、报警温度、波特率等信息通过RS232接口及相应的设置软件存储于基于X25045的E2PROM中,实现节点工作参数现场设定能。节点地址通过拨码开关设置。驱动节点的硬件部分除了以上介绍的以外,还有电源电路以及看门狗电路。电源电路提供所需隔离电源,用于提高节点的稳定性和安全性;看门狗电路主要是保证系统运行的稳定性,在上电、掉电以及警戒情况下复位输出。
3 监控系统的软件设计 从整个车辆监控系统的角度来看,该系统的软件设计主要为两大部分:即监控计算机应用软件设计和现场智能节点软件设计。
3.1监控计算机的软件设计
计算机监控软件主要分为用户应用层、数据分析处理层、虚拟设备驱动程序层及硬件设备驱动层四个部分,其系统流程如图3所示。

用户应用层和用户需求紧密相关,它主要完成的任务是为用户提供各类虚拟仪器的信息监控界面,进行人机交互,也就是通常所说的人机界面(HMI)设计,通过它来显示收集到的实测数据和状态信息,提供驾驶员与控制系统的交互平台;数据分析处理层完成总线数据的接收、分类、判断、处理、发送、存取操作等任务;硬件设备驱动层通过PC-CAN接口卡建立监控计算与CAN总线的连接,并与驱动节点进行数据交换。虚拟设备驱动是由NI公司的LabVIEW所提供的虚拟仪器软件结构体系VISA(Virtual Instrument Software Architecture)完成的,通过动态链接库DLL(Dynamic Link Library)对PC-CAN接口卡的通信函数进行封装,供LabVIEW调用[2]。
3.2智能节点的软件设计现场设备的控制与数据采集是通过智能节点完成得,与硬件设计相一致,智能节点的软件设计也遵循模块化的设计原则,使控制软件具有易读、易扩展和易维护的优点。通过C51语言编写相应的软件模块实现智能节点的各种功能。软件的各功能模块之间通过入口和出口参数相互联系,组合灵活且方便,减少了调试时间,缩短了开发周期[3]。智能节点的软件设计流程如图4所示。3.3智能节点通信程序设计智能节点的通信采用CAN总线2.0A协议,通信模块的软件设计主要由初始化子程序、报文接收子程序、报文发送子程序三部分组成。其中初始化子程序是实现通信的关键,它主要用来完成CAN控制器工作方式的选择,即对P87C591中CAN控制器控制段中的寄存器进行设置。

智能节点与监控计算机之间的数据交换是通过发送程序和接收程序实现的。发送程序流程如图5所示,从图5中可以看出报文发送时只需将等待发送的数据按照特定格式组合成一帧报文,送入SJA1000的发送缓冲区中,然后启动SJA1000发送。在这之前必须先作一些判断,如:是否正在接收,发送缓冲区是否锁定等。当SJA1000正在发送报文时,发送缓冲器被写锁定。所以在放置一个新报文到发送缓冲器之前,主控制器必须检查状态寄存器的“发送缓冲器状态标志”。否则,发送缓冲器被锁定,新的报文不能被写入。一个正在等待的报文会从存储器复制到发送缓冲器后,置位命令寄存器TR标志产生发送请求,发送过程由SJA1000独立完成。图6为报文接收程序流程图,报文接收子程序只负责节点报文的接收。基于SJA1000的报文接有两种方式:中断方式和查询方式。为了保证接收报文的准确性,选择实时性较高的中断方式。在中断方式下,如果SJA1000已接收一个报文,并且报文已通过验收滤波器并放在接收FIFO,那么会产生一个接收中断,通知处理器有报文已经接收。

4 结束语
![]()
本文采用CAN总线技术与虚拟技术相结合的设计思路,使轨道车辆监控系统的功能划分更清晰,设备功能实现更明确,设备对外连线更简洁,系统扩展与集成更容易。实现了软件平台的通用化、软件协议的标准化、硬件结构的统一化,从而保证了系统的可移植性和扩展性,为监控系统的设计提供了一种新思路。经过现场调试,系统可以对车载设备进行实时控制;现场智能节点与监控计算机之间的数据通信稳定可靠,表明了该系统的适用性和可靠性,开发过程中所提出的技术方案和实现方法可以在分布式监控系统及工业底层监控网络的设计中推广应用。参考文献:[1]
饶运涛,邹继军,郑勇芸. 现场总线CAN原理与应用技术[M]. 北京:北京航空航天大学[2] 蒋天伟,荆淑霞,许振忠.基于LabVIEW
7.1开发网络化测控与仿真系统[J],计算机测量与控制,2006年第2期:179-182[3] 蒋建文,林 勇,韩江洪.
CAN总线通信协议的分析和实现[J],计算机工程,2002年第2期:219-221[4] 冯 历,潘松峰,赵正德,张秀虹.
基于CAN总线测控网络系统研究[J],计算机测量与控制,2004年第2期:117-119[5] 李中华.
基于CAN总线的人工气候智能控制器的研究[J],计算机测量与控制,2004年第8期:787-790版社,2003.
附:作者联系方式地址:北京市朝阳区平乐园100号北京工业大学机电学院基础楼406室姓名:孙树文邮编:100124E-mail:
sshwen@bjut.edu.cn 电话:(010)67391621传真:(010)67391617