课题实验设计2013-2014学年第1学期院别:控制工程学院课程名称:虚拟仪器设计Ⅱ实验名称:基于LabView的出租车计价器设计实验教室:XXX指导教师:XX小组成员(姓名,学号):实验日期:20XX年XX月设计要求本方案设计一个基于LabView的出租车计价器系统,前端用直流电机和红外对管模块产生脉冲并且计数,然后能通过PC机界面实时地显示运行速度和运行的里程以及价格,并且在不同模式下有不同的计费功能。实验设备与软件PC机、LabView2012、KeilC51编程器、STC下载器、Altiumdesigner软件、直流电机、红外对管。方案分析根据系统的设计要求,设计出以下两种方案:方案一、采用NI数据采集卡数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采非电量或者电量信号,送到上位机中进行分析,处理。数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。数据采集卡,即实现数据采集(DAQ)功能的计算机扩展卡,可以通过USB、PXI、PCI、PCIExpress、火线(1394)、PCMCIA、ISA、CompactFlash、485、232、以太网、各种无线网络等总线接入个人计算机。NIPCI6023E多功能数据采集卡(DAQ),200kS/s,12位,16路模拟输入多功能数据采集卡(DAQ)。NIST校准认证书以及70多个信号调理选项,NI-DAQ测量服务软件使配置和测量更简单,高达8路数字I/O线;2个24位计数器集成LabWindows/CVI以及用于VisualBasic和VisualStudio.NET的MeasurementStudio。高度集成LabVIEW相对于M系列NIPCI-6220,可以更低价位购买该板卡并将测量精度和数字I/O提高4倍。将传感器和高电压测量功能添加到支持SCC或SCXI信号调理的E系列设备中,NationalinstrumentsPCI-6023E是使用E系列技术的低价位数据采集板卡,可在大多数应用中实现可靠的高性能数据传输。您可获得高达200kS/s的采样率和12位分辨率的16路单端模拟输入。根据硬盘类型,NIPCI-6023E读写硬盘的速度可高达200kS/s。NI硬件可支持多种操作系统、应用程序开发环境和应用软件。方案二、采用VISA串口通讯VISA是虚拟仪器软件体系结构的缩写(即VirtualInstrumentsSoftwareArchitecture),实质上是一个I/O口软件库及其规范的总称。VISA是应用于仪器编程的标准I/0应用程序接口,是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程,具有很好的兼容性、扩展性和独立性。用户可用一个API控制包括VXI、GPIB及串口仪器在内的不同种类的仪器。它还支持多平台工作、多接口控制,是一个多类型的函数库。在LabVIEW中编写的VISA接口程序,当外部设备变更时,只需要更换几个程序模块即可使用,简单方便而且开发效率高。在LabVIEW中利用VISA节点进行串行通信编程。为了方便用户使用,LabVIEW将这些VISA节点单独组成一个子模块,共包含8个节点,分别实现初始化串口、串口写、串口读、中断以及关闭串口等功能。方案选择NI数据采集卡是常用的数据采集工具,可以实时的多通道的高速采集数据。而且数据采集卡易于操作调试简单。为了更深入的了解VISA串口通讯功能本设计方案选择方案设计二,即是通过前端单片机定时中断计数通过MAX232芯片电平转换功能采用RS232总线传输与VISA串口实现连接和LabView后端程序进行数据通讯,最后通过程序设计实现计价功能和速度的显示等的各种功能。系统具体设计方案基于LabView的出租车计价器系统由硬件和软件共同组成。考虑到工作速度和可靠性、题目精度要求等因素,合理地分配了硬件和软件资源,在进行设计时,充分考虑了件和软件的特点,协调其功能。系统整体电路及程序包括一下部分:1、红外对管和电机组成的脉冲发生电路模块。2、52单片机串口数据处理及发送模块。3、LabViewVISA串口配置。4、LabView速度显示以及价格显示程序。前端硬件模块,用直流电机模拟出租车的发动机转动,假设每转一圈的路程为2m。直流电机每转一圈,红外对管产生一个脉冲。通过stc80C52单片机的计数器实现脉冲计数功能。在stc80C52单片机中配置定时器使之在100ms时间到来时进入定时中断再通过串口通信将数据发给LabView。在stc80C52单片机内部,集成一个串口通信I/O部件UART,支持全双工串行通信,可以将8位字节数据写入UART中,UART自动将该字节的8位二进制数变成串行数据,在不同时刻从TXD引脚输出发送。stc80C52单片机中UART支持两种通信模式,最常用的是异步串行通信模式。异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑“1”状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位,可以是1位、1.5位或2位。停止位是一个字符数据的结束标志。在异步通信中,字符数据以图所示的格式一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑“1”状态,每个字符数据的传送均以逻辑“0”开始。系统电路设计硬件原理图图1硬件原理图当红外接收管D2接收到发射管D1的信号时,接收管D2导通,此时输出低电平;反之,当红外接收管D2未接收到发射管D1的信号时,接收管D2关断,此时输出高电平。由于电机的持续转动,输出信号则不停的出现高低电平信号,从而形成了脉冲信号。实物图图2硬件实物图系统软件设计单片机数据处理流程图图3软件流程图软件程序#includestc12c5a60s2.h#includeintrins.hintii;unsignedlongaa=0;unsignedlongbb=0;charc=0;charcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voidinit(void);voiddelay(){_nop_();_nop_();}voidmain(void){init();TR1=1;while(1){}}voidinit(void){TMOD=0X51;PCON=0x00;//不倍频SCON=0x50;//串口工作在方式1,并且启动串行接收TL0=0xf0;TH0=0xd8;TL1=0;TH1=0;BRT=0XFD;AUXR=0X11;ET0=1;EA=1;ES=1;//开串口中断TR0=1;}voidtim(void)interrupt1using1{unsignedlongcc;TR0=0;TL0=0xf0;TH0=0xd8;aa=TL1+TH1*256;P0=table[aa%10];if(aa==65534){bb++;}c++;if(c==10){c=0;for(ii=0;ii4;ii++){cc=aa+bb*65534;cc=cc(8*ii);SBUF=(unsignedchar)cc;while(!TI);TI=0;}}TR0=1;}LabView软件设计在LabView中,进行串口通信的基本步骤为:1.串口初始化,利用VISA节点设计串口的端口号、波特率、停止位、校验位、数据位。2.读写串口,利用VISARead节点和Write节点对串口进行读写。3.关闭串口,停止所有读写操作。LabView软件设计流程图图4软件流程图一.串口配置该节点主要用于串口初始化图5串口配置图VISA资源名称:指PC的串口名,例:COMl,COM2等。波特率:串口速率,默认为9600bps。数据比特:一帧信息中的位数,LabVIEW中允许5~8位数据,默认为8。奇偶:奇偶校验位,可选为无校验、奇校验或偶校验,默认为无校验。停止位:一帧信息中的停止位的位数,可选为1位、1.5位或2位。接收脉冲显示里程脉冲计数转换成里程信号转换计算速度显示速度夜晚价格白天价格终止符:设置一帧数据的结束符,即当接收串口数据时,当收到终止符时,软件自动结束一帧数据接收。二.串口读取图6串口读取图字节总数:要读取的字节数量。读取缓冲区:PC串口收到的数据。返回数:实际读取的字节数,字节总数应大于或等于返回数,否则会丢数。VISA串口通信传输的是一个8位二进制数据,则最大计数为255。为了扩大计数量程,程序把前端脉冲计数值转换为一个32位的数据,分四次发送数据。然后串口读取把每次传过的数据放在一维数组里面。然后分别索引数组里的数据,再转换成32位数据,进行相应的逻辑移位后进行符合加运算还原最初计数值。最后把数据传给后端程序。三.里程以及价格计算并显示图7里程及价格程序图图8白天和夜晚不同价格程序图四.速度显示图9速度显示程序图反馈节点:保存程序上一次的运行数据。通过反馈节点可以计算延时1s里直流电机转动的路程即是所求的速度。五.串口关闭图10关串口程序图该节点主要用于关闭已打开的串口,释放串口资源,以便串口被其他程序所调用。六.系统运行效果图图11程序运行图实验小结本次设计实验课基本上完成了任务要求,并且更加深入的对LabView里的VISA串口学习。掌握了如何通过串口使下位机和PC机进行通讯。而且还掌握了52单片机定时器、计数器和中断以及单片机串口通讯各个模块的知识。通过本次实验也发现了在一些方面的不足。本实验设计缺点也存在,当前端脉冲频率过高52单片机的中断处理速度有限,当高速转动时串口可能会发错误的数据。这也是在以后系统设计时应该考虑的问题。实践经验表明在进行高速数据采集的时候可以方便的运用NI提供的数据采集卡进行数据采集,它采集数据快速并且通道多,便于操作。VISA串口,在LabView中编写程序的VISA接口程序时,当外部设备变更时,只需要变更几个程序模块既可以使用,简单方便而且开发效率很高。