您现在的位置是:首页 > 汽车

基于现场总线与虚拟仪器的车辆监控系统

2019-12-28 18:26:38

1 引言

  目前,在控制领域,虚拟仪器系统的应用多局限于采集-反馈-控制的点对点方式。而对于多电机的系统,特别是多电机驱动的蓄电池车辆系统,则需要实现大量的信息采集、分布式的协调控制、实时的反应速度等功能。传统方式硬件组成复杂、走线繁琐、调试安装不便、不易扩展,且没有发挥虚拟仪器的优势,因此本文提出了一种基于CAN(Controller Area Network)总线的虚拟仪器系统的设计方案,将计算机通讯、现场总线技术和虚拟仪器的概念很好的结合起来,设计出了一套结构简单、实时性高、扩展性强的分布式监控系统,在复杂控制系统中实现了多电机控制与监测的实时调节、控制效果的数字化和图形化。

2 总体方案的提出

图1 系统的总框图

设计系统原则是在实用、可靠、经济的原则基础上,保证系统不仅能满足应用需要,而且要有灵活性、可扩展性和通用性。该系统是由虚拟仪器技术、Modbus总线协议、CAN总线优化组合成而成,系统的构成原理图如图1所示。系统是利用PC机实现对多台电机、多组电池及其它辅助设备进行监控。主要由上位机、电池管理系统、电机控制系统、其它辅助控制系统组成。各个控制器之间通过CAN总线进行通信,以实现控制指令的发送和接收、传感器测量数据的共享等,从而提高系统的控制性能。

  电机控制器实现采集电机的电枢电流、电机转速,判断工况,接收设定转速等功能;电池管理控制器实现采集电池温度、电压、电流、接收控制指令等功能。上位机用图形化编程语言LabVIEW编写,程序以虚拟仪表的形式实时显示电机转速、车速、电池的荷电状态等值,并通过操作上位机发控制指令,控制电机电池的状态。CAN节点是本系统的核心部分,通过它把各个分散的部分连接成统一的系统。每个CAN节点使用统一的硬件平台,实现不同的工作方式,每个节点都可以独立的选择所连接设备及工作方式。

3 CAN节点硬件设计

  对于车用电控单元来说,为了简化设计,提高可靠性,采用集成的自带CAN总线控制器的微处理器。自带CAN总线控制器的微处理器,不占用处理器的端口资源,可以大大简化接口电路的设计,减少程序的复杂程度,提高系统的稳定性,本系统选用Philips的高性能微控制器P87C591。图2为节点硬件设计的功能框图,针对节点功能要求与所选择微处理器资源,叙述如下:

  (1) 全双工增强型UART,带有可编程波特率发生器,按规定的Modbus协议来完成RS232/RS485通讯;在硬件实现上,RS485总线端使用的是收发器MAX481;RS232总线端使用的是收发器MAX232。为了实现串口通道的切换,在该系统中专门设置了跳线槽,用于手动选择,通过设定不同的输入信号值,选择相应的数据通道。

图2节点硬件功能框图

  (2) 微处理器P87C591片内集成并增强了SJA1000(独立的CAN控制器)的功能,完全兼容CAN2.0协议,可完成CAN总线数据的收发等通信任务;CAN接口电路使用CAN总线收发器PCA82C250,为了增加系统的可靠性和抗干扰能力,在P87C591和PCA82C250之间增加相应的光电隔离电路。(3) 自带的6路模拟输入的10位ADC,可设置为8位快速ADC,可以基本满足本系统对采集的精度要求,完成对电机、电池状态的测量任务;对模拟信号的采集,采集电路将各个测试点传感器电信号进行调理(滤波、放大、电量转换)后,接入微处理器的ADC接口。为抑制共模干扰,放大器基本采用差动输入。

  (4) 2个8位分辨率的脉宽调制输出(PWM)为电机控制器提供控制信号,完成对电机速率的调节。与51系列兼容的可编程I/O口(准双向、推挽、高阻和开漏),为数字信号提供通道,负责开关量的读取与设置。

  (5) 16K字节内部程序存储器,可以满足本系统的程序空间。带字节方式主和从功能的I2C总线串行I/O口,可方便的和外围存储芯片接口,实现数据的存储功能。

  硬件部分除了以上主要部分外,还有电源电路、扩展存储器、以及看门狗电路。电源电路提供所需隔离电源,用于提高节点的稳定性和安全性;E2PROM通过I2C串行总线存放系统的某些参数;看门狗电路主要是保证系统运行的稳定性,在上电、掉电以及警戒情况下复位输出。

4 系统软件设计

4.1上位机软件的设计

  虚拟仪器软件主要分为用户应用层、虚拟设备驱动程序层及硬件设备驱动层三个层次。用户应用层和用户需求紧密相关,它主要完成两个任务:一、为用户提供各类测试仪器的虚拟界面,进行人机交互,也就是通常所说的界面设计,通过它来显示收集实测数据和状态信息,提供用户与系统的交互平台;二、完成对数据的分类、判断、处理,串口通信,数据的存取操作等任务。

图3 上位机程序示意图

  其中串口的设备驱动是由VISA完成的,LabVIEW所提供的VISA是虚拟仪器软件结构体系(Virtual Instrument Software Architecture)简称。VISA是在所有LabVIEW工作平台上控制VXI、GPIB、RS232以及其他种类仪器的接口程序库。VISA是由组成VXI plug&play系统联盟的35家最大的仪器仪表公司所统一采用的标准。采用了VISA标准,就可以不考虑时间及仪器 I/O选择项,驱动软件可以相互兼容使用。

4.2节点程序设计

图4 节点主程序框图

  图4为主程序框图。它描述了通用模块设计的基本流程,根据读入跳线的状态和读入存储器中设定的状态,决定本模块的作用及本模块的工作方式。选定了工作方式以后,重新进行各自的初始化,主要包括I/O端口的配置、CAN中断的设置、验收滤波器的设置、串口工作方式设置、定时器方式设置、波特率设置以及串口I2C的相关设置。在完成初始化设置后,就可以回到工作状态,进入各自的主循环。以下分别介绍各个工作方式的实现:

  1) 总线转换的实现

  通用串口到CAN接口转换工作方式的设计,主要是实现CAN总线数据与RS232/485总线数据之间的互连通信以及系统的升级。通过内置CAN控制器控制总线工作状态,结合软件设计,实现通用串口与CAN接口通信的目的。Modbus规定了两种传输模式ASCII或RTU,本系统选择使用RTU模式。Modbus协议报文与CAN总线报文相互转化时,由于标准的CAN协议有11位ID,而Modbus协议的地址为一个字节,为便于转换将其ID分为3位和8位两部分,前3位用于判断报文所属类型,后8位为每个模块的ID值。例如11位Modbus协议报文向CAN口转发时转化格式规定如图5。CAN总线向串口转发时需经过收集、排队、转发三个过程。收集是因为作为上位机操作的返回帧,有时会返回多个节点的数

图5 Modbus11位报文转换为CAN标准帧

  据,CAN作为串口总线也必须分时的通知并接收每个指定要求返回值的节点的数据。排队是因为如果有上位机的返回请求,就把这种数据先发送,其它数据暂存,发送返回后再发送,否则会认为返回的值是错误的。经过排队的数据依次向上位机发送。

  2) 监控电机的实现

  此工作方式完成电机的监控,首先要初始化包括(串口关闭、I2C设定,CAN的初始化,设置接收滤波器),读取设定参数后进入主循环。该节点是智能节点,已经具备独立控制电机运行的能力,上位机只负责向其发送控制继电器开断的开关量与设定电机速度的数字量,节点收到后会自动调节电机使其达到设定的工作速率,此方式可以大大减轻总线负担,提高系统的实时性。作为智能节点本身负责根据预设控制算法调节电机外,还肩负着采集电机运行状态(电流、电压、温度、转速)、判断异常状态、实时发送数据等工作。

  3) 监控电池的实现

  电机是由电池提供的电能驱动的,电池的状态不仅反映本身的工作状态而且可以间接反映电机的运行状态。电池的电流、电压、温度都有各自的阀值,正常工况下,各个节点按照规定的时序向上位机发送自身状态;当处于不正常工作状态时,模块判断出现问题的原因并采取相应的措施,并及时的通过CAN总线向上位机报告。如果是不可修复的通信错误,不能继续通讯,本节点自动完成关闭电池、电机的任务,本套驱动器自动退出工作,并使电机处于浮动状态,保证正常运行的车辆不受阻碍。

  4) 模块设定的实现

  根据跳线的设置,程序开启时会判断什么时候进入设定工作方式。当用户需要对某一节点设置时,上位机运行设置软件,上位机与模块通过串口相连接,节点进入设定工作方式(此方式是针对单一模块逐一设置的),上位机发送相应功能码读取模块参数,发送相应功能码修改模块参数。可以设置的模块参数包括本模块的地址、与模块相连的设备、串口与设备通信的波特率等,这些参数都是存储在I2C接口的存储器中。

  5) 其它标准设备的实现

  Modbus规约是MODICOM公司开发的一个为很多厂商支持的开放规约,标准的Modbus是使用RS-232C兼容串行接口,本模块串口通讯就是遵循Modbus协议,因此在扩展上有更大的灵活性,只要上位机有一定的程序相对应,符合Modbus协议的工控设备就可以通过本模块轻松的挂接在CAN总线上。

5 结束语

  采用总线技术与虚拟技术相结合的设计思路,使系统功能划分更清晰,设备功能实现更明确,设备对外连线更简洁,系统扩展与集成更容易。实现了软件平台的通用化、软件协议的标准化、硬件结构的统一化,从而保证了系统的可移植性和可扩展性,为监控系统的设计提供了一种新思路。系统实际运作情况表明,系统设计思路正确,系统实时性、稳定性、灵活性均能达到该车辆的设计要求。

  本文作者创新点:把虚拟仪器技术、Modbus协议与CAN总线组成一个统一的系统,并且在统一的硬件平台上满足了各种不同功能需求。