基于LabVIEW的车辆实时监测系统设计与实现*

2018-10-30 03:14许霜梅
小型内燃机与车辆技术 2018年5期
关键词:PC机子程序串口

许霜梅

(西安职业技术学院 陕西 西安 710000)

引言

随着汽车工业以及计算机信息技术、网络技术的迅猛发展,对车辆运行的实时位置定位和实时性能监控系统已成为研究热点。将计算机、传感器、通信技术等应用于车辆管理系统中,能加强对车辆信息的管理,实时获取车辆位置信息,对车辆运行状态进行实时监控,从而及时发现车辆运行过程中的异常情况,提高车辆运行的安全性、维护性和可靠性。因此,开发一个性能稳定、功能明确的车辆实时监测系统具有重要意义[1]。

本文基于LabVIEW及CAN总线通信技术,设计了一个能对车辆实时位置进行定位和对运行数据进行采集和监控的系统。通过该系统,用户可以定制选择监测项目。该系统具有良好的通用性,可适用于多种应用场合。

1 监测系统总体架构设计

本监测系统主要完成车辆位置定位显示和车辆实时运行状态监测等2大功能。车辆位置定位显示主要是利用车载GPS接收模块获得定位信息,经过RS232串口转发给CAN总线,再经过CAN总线实现与上位机PC的通讯,从而将定位信息显示在LabVIEW上位机软件界面上;实时状态监测的原理是利用车载传感器获得车辆运行状态信息,然后通过CAN总线将车辆状态信息传送到PC端的LabVIEW上位机软件[2]。监测系统总体结构如图1所示。

图1 监测系统总体架构图

从图1可以看出,本监测系统由车载系统和PC端主监测系统等2部分组成。车载系统安装于车辆内部,包括GPS接收模块、串口通信模块、单片机和CAN通信模块等几部分;PC端主监测系统安装于远程PC机上,运行LabVIEW上位机软件。车载CAN总线系统和PC机端的CAN总线节点的通信是通过PCI-CAN总线接口卡完成的。

本监测系统各主要模块的功能如下。

1)GPS接收模块。该模块用于确定车辆位置,硬件使用和芯星通公司生产的UM220模块。UM220模块是GPS/BDS双接收系统模块,优势是在信号微弱或其他复杂环境下依然能保持良好的连续定位和捕获跟踪能力[3]。使用经度、纬度以及经纬度方向对位置进行确定。GPS接收模块的数据不能直接传递给单片机处理,需要先通过USB转串口将数据传递给串口通信模块,然后由串口通信模块将数据转发给单片机进行处理。

2)串口通信模块。串口通信模块的功能是将GPS接收模块的数据传递给单片机。本监测系统使用RS232串口。在对串口通信模块的串口驱动软件进行设计时,需关注串口波特率、端口等设置。

3)单片机。单片机作为监测系统的微处理器,是所有数据的处理单元。本监测系统选用AT89S52型单片机,负责接收GPS的位置数据和传感器数据,对这些数据进行处理后传送给CAN通信模块。

4)传感器。传感器安装在车内各个位置,负责对车辆的各种运行信息如车速、油门开度、挡位、变速器等进行实时监测,并将数据传递给单片机。

5)CAN通信模块。CAN通信模块是由CAN通信控制器SJA1000控制的。SJA1000是一款功能强大且独立的CAN总线控制器[4]。主要用于工业领域中的区域网络控制和移动目标控制。与其他CAN控制器相比,SJA1000具有配置简单、功能强大等优点,经过简单的总线连接就可实现CAN总线的数据层和物理通信层的所有功能。

在主控程序运行时,单片机负责对SJA1000进行初始化,实现数据的接收和发送等通信任务。

6)CAN总线。本监测系统使用的CAN总线驱动器为PCA82C250。它是CAN总线控制器和物理总线之间的接口,在单片机与高速总线电路之间进行连接非常简单,只需要连接数据发送(TRXCAN)、数据接收(RXCAN)和相应的电源管脚即可[5]。

CAN总线能解决巨大的数据交互问题,摆脱了传统的用导线进行点对点连接的传输方式,节点之间通过报文广播和报文传递的方式进行连接,发送节点和接收节点之间可以建立一对一、一对多或多对一的联系。能灵活地建立连接,快捷高效地进行数据传输。

7)PCI-CAN总线接口卡。由于PC机本身不带CAN接口,所以,PC机和车载CAN网络是不能直接互联的。为了解决这个问题,将计算机自带的PCI通讯接口转换为CAN总线接口,即通过PCI-CAN总线接口卡给计算机增加CAN总线接口功能。

本监测系统使用NI公司生产的PCI-CAN/XS CAN接口卡,内置SJA1000CAN控制器和PCA82C250总线驱动器,能实现PC机和车载系统之间的高速通信。

2 监测系统软件设计

本监测系统软件设计的总体思想是:

1)实现GPS接收模块通过串口通信模块与单片机的通信;

2)实现单片机与CAN通信模块的通信;

3)实现传感器通过单片机向CAN通信模块转发数据的功能。

通过总结,本监测系统软件需完成3大功能:

1)GPS模块向单片机发送数据,单片机在完成数据处理之后将数据转发给CAN;

2)传感器向单片机发送数据,单片机在完成数据处理之后转发给CAN;

3)CAN将单片机发送过来的数据发送到PC机端,在LabVIEW上位机软件上进行显示。

通过分析,将本监测系统的程序分为如下几个部分:

1)主控程序。完成串口初始化和CAN接口卡的初始化和配置;

2)CAN通讯子程序。用于接收和保存从单片机传出的经过处理的串口通信模块数据和传感器的数据;

3)数据处理与显示子程序。用于观察接收到的车辆位置信息和车辆运行状态信息,可按需求显示不同的数据及处理结果,并进行保存;

4)监测子程序。用于设置数据属性,绘制车辆状态信息的变化曲线;

5)串口通讯子程序。接收GPS模块发来的数据,并发送给单片机。

以上程序在软件运行时按先后顺序独立运行,当软件启动时,主控程序运行,根据用户需求对其它4个子程序进行实时调度,并将子程序的运行结果传递给相关功能面板的显示控件,然后反馈给用户。以上5个程序模块之间的关系如图2所示。

图2 各程序模块之间的关系

3 监测系统软件实现

3.1 主控程序实现

主控程序负责所有其他模块的调用、程序执行流程的控制、串口通讯模块和CAN通讯模块的初始化以及所有人机交互的工作。设置while循环来进行各模块的调用和切换。在程序运行时,需在循环中不断检测串口和CAN是否存在待接收的数据,为串口通讯模块和CAN通讯模块设置2个缓冲区:发送缓冲区和接收缓冲区,从而保证不丢失数据。

主控程序对串口模块的初始化主要是完成串口基本参数的设置,包括波特率、数据位、停止位及校验方式等。本监测系统中,波特率设置为115 200 bit/s,数据位设置为8位,停止位设置为1位,校验方式设置为奇校验。

主控程序对CAN通讯模块的初始化主要是对SJA1000CAN控制器进行初始化。SJA1000CAN控制器的初始化配置在复位模式下进行,主要完成SJA1000控制器的寄存器的配置,包括时钟分频寄存器、总线定时寄存器、输出控制寄存器等的配置。

3.2 CAN通讯子程序实现

CAN通讯子程序的核心是CAN通讯协议的实现,主要内容是通讯帧的组织和发送。CAN通讯协议分为3层:物理层、数据链路层和应用层,物理层和数据链路层的功能由CAN接口器件即硬件完成,开发人员需要关注的是应用层的开发。应用层的主要任务是完成单片机与SJA1000通讯控制器之间的数据交互,包括数据发送和接收,即单片机把待发送的数据发送给SJA1000控制器,SJA1000控制器将数据发送给CAN总线;另外,SJA1000控制器从CAN总线接收到数据后发送给单片机。所以,SJA1000控制器相当于单片机CPU和CAN总线之间的数据中转站。

本监测系统应用CAN2.0B协议,在通讯中采用查询方式发送报文,采用中断方式接收报文。

CAN通讯子程序主要包括发送数据和接受数据等2部分。

发送数据时,首先应检查发送缓冲器的状态,由“发送缓冲器状态标志(TBS)”控制,只有该标志为空闲时才能发送报文。如果SJA1000正在发送报文,则TBS标志位为忙,需要等待SJA1000控制器发送完成后,才能发送本次报文。即将发送的报文应首先发送到发送缓冲器,等待SJA1000控制器从缓冲器中提取数据并发送。

接收数据时,从总线接收到的报文首先放在接收缓冲区中,由“接收缓冲器状态标志RBS”控制是否可以接收数据。该标志位显示为空闲时才能接收缓冲区中的数据。

3.3 数据处理与显示子程序实现

本监测系统的数据处理模块分为GPS数据处理模块和CAN总线数据处理模块。

GPS数据处理过程为:单片机通过串口接收GPS数据,GPS每秒钟发送一个数据包,包括经度、纬度等信息。通过单片机解析后将数据转发给CAN总线,CAN总线再将数据发送到PC机端。CAN总线数据处理模块处理的数据包括2类:GPS发送的位置数据和传感器发送的车辆实时运行信息。CAN总线对这2类数据不加以区分,传送到PC机端,由PC机端的LabVIEW上位机软件进行分析提取。CAN总线控制器接收到报文后向单片机发送中断请求,单片机响应中断后进入相应的中断处理程序。

显示子程序为PC机端的LabVIEW上位机软件,主要功能是读取CAN总线发送给PC机的2类数据并进行解析,正确显示这些数据,如位置信息和车辆运行状态信息,点击相应的选项选择,查看相应的选项。

3.4 监测子程序实现

监测子程序的主要功能是对数据进行处理和分析。CAN总线传送的数据是由真实的GPS位置信息经过CAN协议转换后得到的,传感器数据也是直接由传感器采集得到的,这些原始数据不利于用户直接观测,需对数据进行转换和处理。经过相应的数据处理程序处理后,输出直观且更易理解的数据,在数据监测功能面板可实时查看。

3.5 串口通讯子程序实现

本监测系统中的串口通讯程序与其他系统的串口通讯程序存在差别,由于GPS实时地向监测系统传送的数据量非常大,有可能出现数据接收缓冲区满溢出的情况。本监测系统采用双缓冲区的方式避免这种情况,2个缓冲区轮流接收数据,一个缓冲区满了后,转由另一个缓冲区接收数据。这样循环更换缓冲区,可充分利用单片机有限的内存资源。同时,设计2个接口:comReceive和comSend来接收和发送数据。

4 监测系统运行

PC机端和车载系统之间通过CAN总线接口卡实现通讯。本监测系统可完成车辆实时运行位置的显示和车辆运行过程中的状态信息显示。该监测系统PC机端显示的车辆位置定位信息和实时状态信息如图3所示。

图3 车辆位置信息显示

5 结论

本文所设计的基于LabVIEW的车辆实时监测系统通过CAN总线接收传感器信号和经GPS/BDS处理过的位置信息,并对接收到的传感器信号和位置信息进行运算处理,实现对车辆的实时位置和车辆实时状态的监测。测试结果表明,该监测系统硬件构成简单,软件界面友好,操作方便,可根据用户需求定制所需的数据监测方式。该监测系统适用于任何支持CAN通信且配有相应通信接口的传感器,有很好的通用性,且具有较高的准确性和稳定性。

猜你喜欢
PC机子程序串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
船舶电子设备串口数据的软件共享方法
VC.NET下实现dsPIC单片机与PC机的通信
基于单片机与PC机的电气量采集系统设计
串口技术的实物调试和虚拟仿真联合教学模式
浅谈子程序在数控车编程中的应用
VIVID3彩色超声仪结构原理及维修
子程序在数控车加工槽中的应用探索