基于LabVIEW的交通仿真教学仪器开发

基于LabVIEW的交通仿真教学仪器开发

王文村1王新建2于飞3王杰4朱建勇5

(1、4、5、日照市技师学院电气技术系山东日照276826;2、天津职业技术师范大学汽车与交通学院300222;

3、江苏汽车技师学院江苏扬州225003)

摘要:我们设计开发了一套交通仿真教学仪器。在虚拟仪器环境下利用VISA软件工具包,精心编写上位机程序,建立10个SubVI,与下位机进行实时串口通信。以KeilC为开发工具,对下位机进行编程控制。系统可实时对217个LED灯组成的交通信号灯进行控制,实现整体造型的保存、读取、显示和清除功能。最后,经实验验证,所开发教学仪器能够实现预期功能。

关键词:交通仿真单片机LabVIEW

虚拟仪器的概念是由美国国家仪器公司(NationalInstrument,简称NI)公司提出来的,是指在通用的计算机平台上,用户根据自己的需求定义和设计具有测试功能的仪器系统,即虚拟仪器是由用户利用一些基本硬件及软件编程技术组成的各种各样的仪器系统。由于其所采用的图形化编程语言使得程序外观非常漂亮,易于吸引学习者的注意,更易于被学习者接受和理解。我们调研了我国17所处于不同地域、具有不同办学水平的高职院校,其中有6所为交通部认定的交通职业教育示范院校。经调查统计,开设汽车电子技术专业的有14所,占调查总数的82.4%。同时,我们调查了北京市10所中职院校,开设汽车电子技术专业的学校有3所,占调查总数的30%。数据中,高职院校与市场需求密切联系,调研数据说明目前我国汽车工业需要大量的懂得汽车电子技术原理的专业人才和师资人才。同时,目前交通运输行业技术不断发展,智能交通应用日益广泛。在日常的专业教学工作中,要让交通运输、汽车运用工程和汽车服务工程等专业的学生,特别是中高职院校学生,更形象、更直观地掌握微机控制的基本原理,例如串口通信原理,就需要设计开发新的操作简单、界面直观、能够清晰反映专业理论知识并且能够进行实验训练的专业交通仿真教学仪器。本论文基于LabVIEW虚拟仪器平台,安装VISA软件工具包进行串口通信,在上位机通过程序化语言编程,建立由36个字节数据组成的数据包,通过串口进行发送;下位机以KeilC为开发工具进行C语言程序设计,主要完成串口通信的数据接收,以及LED屏的显示;硬件系统采用P89V51RD2芯片,设计开发RBH674电路板作为下位机的控制硬件,设计开发RBH671作为LED交通信号显示屏。该教学仿真系统可实现多个LED灯的实时点亮、点灭的功能,以及整体造型的保存、读取和清除功能。

一、上位机软件设计

LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)作为虚拟仪器的平台,是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程根据语句和指令的先后顺序决定程序的执行顺序,而LabVIEW则采用数据流编程方式,程序框图节点之间的数据流向决定了程序的执行顺序。虚拟仪器具有功能灵活,可由用户自己定义,程序速度和可靠性高,数据可以进行编辑、存储和打印,开发周期短,大大节省开发费用,价格低廉等优点,故在测控测量、机电控制、教育教学、仿真等领域应用面极广。

1.串口通信程序设计

在LabVIEW中进行串口通信编程需要安装VISA软件驱动。VISA是仪器编程的标准I/OAPI,可控制GPIB、串口、USB、以太网、PXI或VXI仪器,并根据使用仪器的类型调用相应的驱动程序,用户无需学习各种仪器的通信协议。VISA独立于操作系统、总线和编程环境。换言之,无论使用何种设备、操作系统和编程语言,均使用相同的API。

在本实验系统中,串口发送的数据包总共占36字节,其格式分别为:起始位(1字节)+目标地址(1字节)+本地地址(1字节)+功能号(1字节)+实际数据(28字节)+校验和(1字节)+包长低8位(1字节)+包长高8位(1字节)+停止位(1字节)。真正需要传送的只是其中28字节的以16进制显示的实际数据。上位机串口学生程序前面板如下图1所示。

图1.上位机串口通信程序前面板

2.数据转换以及控制设计

下位机的单片机在进行串口接收、进行显示屏显示控制编程时所需的数据一般是以16进制显示的。例如F1,表示的就是11110001。但是由于LabVIEW中数据的发送是16位16进制数据,例如F401表示1111010000000001,所以实际发送的28个数据就变成了14个。而通常情况下,LabVIEW串口接收或发送的都是字符串,所以如果需要发送或者接收十六进制数值,就需要在接收和发送之前进行相应的转换。其次,要实现1个发送键就控制217个小灯的亮灭,就需要多个数组组成字符串,同时还需考虑字符与LED灯之间的逻辑关系。最后,对上位机串口传送的数据包需要进行校验,方能组成十六进制数据进行发送。图2所示为控制8个LED灯亮灭的数据转换程序。

图2.数据类型转换程序图

3.LED模型相关设计

为了保存LED模型,还需要进行LabVIEW数据文件的保存和读取,以备后期继续管理和分析使用。根据数据的存取方式和结构,LabVIEW可将数据保存为文本文件、二进制文件。对于本系统而言,由于数据量不大,且需要随时可以调用读取显示,所以选择以文本文件的方式进行程序的保存。如图3所示为数据保存的程序框图。数据读取与之类似,只是区别在于对保存的数据进行字符串到十六进制数据的转换。数据清零则需要设置LED屏和上位机同时接收数据包,方可实现同步清零。同时,为了增强教学仿真系统的趣味性,提高学习环境的舒适性,增加了GIF动画。为便于学生实验学习时的视力保护,设计程序前的面板主题颜色为绿色。

图3.LED模型数据保存程序图

二、系统硬件设计

如图4、图5所示,本系统基于P89V51RD2芯片,设计开发了RBH674电路板作为下位机的控制硬件,设计开发了RBH671作为LED交通信号显示屏。P89V51RD2是一款80C51微控制器,包括64KB片内FLASH程序存储器和1KB的数据存储器、SPI(串行外围接口)总线和增强型UART,支持ISP(在系统烧录)在线编程,具有8个中断源和4个中断优先级。该芯片应用简单,功能强大。

图4.RBH674实物图图5.RBH671实物图

RBH674的作用是与上位机通信和通过下位机设定的程序控制LED显示单元及其他硬件单元。单片机与上位机通信采用三线制,将单片机和PC串口的3个引脚(RXD、TXD、GND)分别连在一起,而其他信号线如握手信号线均不用,采用软件握手的方式,从而完成通信。设计开发RBH671作为LED交通信号显示单元,主要由28块74LS595串连与217个LED灯组成。

三、下位机软件设计

单片机的工作要受到上位机控制,接收上位机指令,按照指令要求去点亮LED灯是本仿真系统正常工作的要求。所以本系统下位机需要实现的主要功能有:(1)与上位机进行通信;(2)对上位机发来的数据进行处理;(3)控制LED显示屏工作。本仿真系统在KeilC环境下编写单片机程序,进行下位机控制。

1.串口通信

主程序主要完成的功能包括打开单片机中断允许位,对下位机的工作状态进行初始化,设置串口工作状态,准备接收上位机的指令。因此其初始化主要包括进行串行口控制寄存器SCON、中断允许寄存器IE、中断优先级寄存器IP进行设置,同时还需设置相应串行口工作方式下的定时器初值,从而保证与上位机具有相同的波特率,为后面接收处理数据做好准备。其中,串行中断程序用来接收上位机发送的数据指令,一旦接收到符合本地地址的数据就请求单片机中断,来将接收到的数据放入目标数组中保存;当没有数据到达时,串行中断就处在等待状态。当串行中断触发后单片机的中断服务程序如下所示:

voidCom_Interrupt(void)interrupt4using3

{

if(!RI)return;

SerRcvBuff[SerRcvPtr]=SBUF;

RI=0;

SBUF=SerRcvBuff[SerRcvPtr];

while(!TI);

TI=0;

SerRcvPtr++;

if(SerRcvPtr==RcvMax)SerRcvPtr=0;

2.数据处理函数

上位机与下位机通信过程中发送的数据包按照一定的通信协议进行打包和解包,并有校验功能,保证了传递数据的正确性,维护了系统的正常工作。系统在接收到来自上位机的指令后,要对接收到的数据包进行处理。进行数据校验,保证数据的正确性,保留有用的数据,并根据指令将数据发送到LED显示屏,控制LED显示屏按照上位机的指令工作。数据处理函数的作用首先是从缓冲区取数据,然后要对数据包进行解包,确定目标地址与本机地址吻合,同时数据包起始位和终止位数据校验和、包长低8位、高8位计算准确。在校验无误的基础上,才将接收到的数据包中真正有用的实际数据部分提取出来,用于LED灯的显示控制。

四、结束语

鉴于虚拟仪器平台的广泛应用以及交通运输专业教学仪器开发的必要性,本文围绕交通运输专业学生的学习内容和学习特点,设计开发了基于LabVIEW和KeilC软件的交通仿真教学仪器。在PC机用LabVIEW进行图形化编程设计,通过安装VISA工具包、数据格式转换、系统前面板的设置方式进行串口通信,基于KeilC软件编写下位机程序控制LED屏中小灯的亮灭,来说明微机通信、控制原理,最终仪器设计界面如图6所示。

图6.系统上位机运行图

通过该教学仪器的开发,学生可掌握如下核心实验内容:

(1)熟悉LabVIEW程序开发环境,学会运用LabVIEW编写简单程序,满足一般数据采集实验的要求。

(2)掌握单片机的工作原理,掌握单片机编程,在KeilC环境下编写C语言单片机程序,实现下位机的控制显示等功能。

(3)掌握单片机和计算机的串口通信原理。

设计结果表明,该教学仪器操作简单、运行可靠,可在LED显示单元中实时显示上位机软件模型,并可对整体模型进行保存、读取、清除。系统有助于交通运输类专业学生对软件编程、硬件设计、通信原理、交通信息控制等方面知识的学习。同时,鉴于虚拟仪器平台的优点,该系统还可在日后的教学中根据教学培养计划要求进一步改进,以满足学生的学习、实验需要。

参考文献

[1]陈锡辉张银鸿LabVIEW8.20程序设计从入门到精通[M].清华大学出版社,2008。

[2]阮奇帧我和LabVIEW[M].北京航空航天大学出版社,2009。

[3]王少华郭珊珊王新建等交通运输职业教育研究[J].教育教学论坛,2012,(S1),216—217。

[4]武剑李巴津基于LabVIEW的普通数据采集卡驱动研究[J].《现代电子技术》,2009,(12),149—151。

[5]朱墨吴国清基于LabVIEW同步控制的数据采集监控仿真平台[J].计算机仿真,2006,23,(2)。

[6]刘少聪赵静丁浩基于单片机的交通信号灯控制系统设计[J].数字技术与应用,2011,(6),122—125。

[7]周功明周陈琛城市交通信号灯控制系统的设计与仿真[J].绵阳师范学院学报(自然科学版),2009,28,(2),28—32。

标签:;  ;  ;  

基于LabVIEW的交通仿真教学仪器开发
下载Doc文档

猜你喜欢