基于LABview的串口通讯系统设计毕业设计论文.docx
《基于LABview的串口通讯系统设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于LABview的串口通讯系统设计毕业设计论文.docx(60页珍藏版)》请在冰点文库上搜索。
基于LABview的串口通讯系统设计毕业设计论文
毕业论文(设计)
基于LABVIEW的串口通信控制器设计
基于LABview的串口通讯系统设计
摘要
虚拟仪器是现代计算机技术同仪器技术深层次结合的全新概念仪器,实质是利用计算机显示器的显示功能模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用计算机强大的软件功能实现信号数据的运算、分析和处理,完成各种测试功能的一种计算机仪器系统。
本文介绍了利用LabVIEW语言来实现上、下位机之间通信的方法,并从软、硬件两个方面阐述了设计思想。
从实现PC机PC机之间的串口通信出发,先实现双PC机之间的数据发送、返还和接收,进而设计了以PC机作为上位机,以飞思卡尔8位单片机作为下位机的基于labview软件的串口通信系统。
经过实验调试,系统达到了预期的通信目标。
应用先进的虚拟仪器软件LABVIEW,大大降低了串口通讯复杂程度,减小了软件设计的工作量,能够大大降低投资成本。
在实际应用中有巨大的使用价值。
关键词:
虚拟仪器;Labview;串口通信;单片机
DesignoftheserialcommunicationsystemBasedonLabVIEW
Abstract
Virtualinstrumentisthemoderncomputertechnologycombinedwiththeinstrumentationofthenewconceptofdeep-levelinstruments,inrealtermsistheuseofanalogcomputermonitorsdisplaycontrolpanel,traditionalinstruments,invariousformstoexpresstheoutputmeasurements,usingcomputersoftwarefeaturestoachieveastrongsignalOperationdata,analysisandprocessing,tocompleteavarietyoftestingcapabilitiesofacomputerinstrumentsystem
ThisarticledescribestheuseofLabVIEWtoimplementthelanguage,thenextmethodofcommunicationbetweenthecrewandfromthesoftwareandhardwarearetwoaspectsofthedesign.PC-PC,fromtheimplementationofserialcommunicationbetweenthedeparture,thefirsttoachievedoublethedatabetweenthePC,sendandreturn,receive,andthendesignedaPC,asthehostcomputertoFreescale8-bitmicrocontrollerbasedonalowermachineLabVIEWsoftwareserialcommunicationsystem.Afterexperimentaldebugging,thesystemachievedthedesiredcommunicationgoals.
TheapplicationofadvancedvirtualinstrumentsoftwareLabVIEW,greatlyreducesthecomplexityofserialcommunication,reducetheworkloadofthesoftwaredesigncangreatlyreducetheinvestmentcost.Inpractice,thereistremendousvalueinuse.
Keywords:
virtualinstrument;Labview;serialcommunication;microcontroller
第1章绪论
1.1课题的背景和意义
目前以计算机为上位机和以单片机为下位机的集散式控制系统被广泛的应用于工业检测和控制系统中。
由于PC机的分析处理能力强,处理速度快,而单片机价格低廉、体积小、使用灵活方便,所以主机一般采用PC机,而从机则采用单片机。
串行通信是一种常用的数据传输方法,虽然它的传输速度慢,但它占用的通信线路少,成本低,在工程的通信方式上仍有重要地位。
通过PC机的RS-232串行接口与单片机之间串行通信是主要的通信手段。
本文从实现基于labview的PC机PC机之间的串口通信出发,先实现双PC机之间的数据发送和返还、接收,进而设计了以PC机作为上位机,以飞思卡尔8位单片机作为下位机的串口通信系统。
1.2虚拟仪器的概念
1.2.1虚拟仪器的特点
虚拟仪器与传统仪器技术不同,虚拟仪器在通用计算机平台上通过数据采集设备,然后根据用户的实际需求就可以构建起不同的系统。
所以虚拟仪器实际上是一个按照用户的实际需求组成的数据采集系统[1]。
虚拟仪器采用了通用的硬件,各种仪器的差异主要是软件,它主要使用计算机显示器的显示功能来显示模拟传统仪器的控制面板,这就可以用多种形式输出检测结果,即实用又美观。
目前,计算机和仪器的密切结合并且结合的越来越紧密是仪器发展的一个重要方向[2]。
虚拟仪器系统可以归纳为图1.1。
图1.1虚拟仪器系统
具体来说,虚拟仪器有以下特点:
(1)虚拟仪器利用了计算机丰富的软件资源。
这样就可以使部分仪器的硬件软件化,增加了系统灵活性,并且节省了资源。
另外,计算机还能实时、直接地对测试数据进行各种分析与处理[1]。
(2)因为虚拟仪器融合了计算机的硬件资源,计算机来直接处理这些应用,这样就大大的增强了传统仪器的功能,突破了传统仪器在数据处理、显示、传输、存储等方面的限制。
(3)虚拟仪器基于计算机总线和模块化仪器的总线,这样就使仪器的硬件实现了模块化,就可以方便地构建模块化的虚拟仪器[3]。
(4)当今世界的计算机技术和相关的技术发展十分迅速,虚拟仪器也是建立在此基础上的,因此虚拟仪器随着计算机更新的速度快,功能越来与强大[4]。
(5)由于计算机的体系是开放式的,所以虚拟仪器的硬件和软件都具有开放性、可重复使用的特点。
因此,用户可根据自己的需要,选用不同厂家的产品,而且硬件还可以互换,这样就使虚拟仪器系统更为灵活[4]。
1.2.2虚拟仪器和传统仪器的区别
每一个虚拟仪器都是由软件和硬件两部分够成。
但是由于虚拟仪器具很大的灵活性,功能可以通过不同的采集卡和程序改变。
因此这种灵活的构建方式大大节约了成本[5]。
传统厂商的仪器都是功能由厂商定义,并且已经预封装好软件和硬件,所以功能比较单一,使用上也没有任何的灵活性。
而虚拟仪器系统的功能则完全由用户自己定义,所需要的也仅仅是通用的计算机平台和数据采集卡[6]。
所以,利用虚拟仪器可以创造出高效且功能强大的仪器。
通过表1.1我们可以更直观的看出虚拟仪器与传统仪器的区别。
表1.1虚拟仪器与传统仪器的区别
虚拟仪器
传统仪器
用户自己定义仪器功能
厂家定义各种功能
与各种仪器连接简单
借口较少,只能与特定仪器连接
仪器研发需要时间较短
仪器研发需要时间较长
仪器压法费用低
仪器研发费用较大
随着硬件、软件升级,简单容易
升级困难
重复利用简单
重复利用困难
存数空间几乎可以无限扩展
存储空间有限
研发主要是软件设计
研发主要是硬件设计
1.3虚拟仪器概述
虚拟仪器(VirtualInsturment,简称VI),即是在以通用计算机(PC)为核心的硬件平台上,由用户设计定义、具有虚拟面板、测试功能由测试软件实现的一种计算机仪器系统。
虚拟仪器技术就是利用性能高的模块化硬件,结合灵活高效的软件来完成各种测试、测量和自动化的应用。
灵活高效的软件能够开发出完全符合用户的自定义界面,模块化的硬件能方便灵活地提供全面的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。
因为同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势就能充分发挥出来[7]。
虚拟仪器是基于计算机的仪器。
计算机和仪器的密切结合并且结合的越来越紧密是目前仪器发展的一个重要方向[7]。
粗略地讲计算机与仪器的结合有两种方式:
一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器,像目前的单片机设计。
但是仪器的功能较为单一,不具有通用性;另外一种方式就是是将仪器装入计算机,以通用的计算机(PC)硬件及操作系统为依托,实现各种仪器的功能[8]。
虚拟仪器主要是指这种方式。
常见的虚拟仪方案如图1.2所示。
图1.2虚拟仪器方案
1.3.1虚拟仪器方案的组成
1、高效的软件。
软件是虚拟仪器技术中最重要的部分。
使用正确的软件工具并通过设计或调用特定的程序模块,工程师们可以高效地创建自己的应用以及友好的人机交互界面。
NI公司提供的行业标准图形化编程软件——LabVIEW,不仅能轻松方便地完成与各种软硬件的连接,更能提供强大的后续数据处理能力,设置数据处理、转换、存储的方式,并将结果显示给用户。
此外,NI提供了更多交互式的测量工具和更高层的系统管理软件工具,满足客户对高性能应用的需求。
2、模块化的I/O硬件。
面对如今日益复杂的测试测量应用,NI提供了全方位的软硬件的解决方案。
无论用户是使用PCI、PXI、PCMCIA、USB或者是1394总线,NI都能提供相应的模块化的硬件产品,产品种类从数据采集、信号处理、声音和振动测量、视觉、运动、仪器控制、分布式I/O到CAN接口等工业通信,应有尽有。
NI高性能的硬件产品结合灵活的开发软件,可以为负责测试和设计工作的工程师们创建完全自定义的测量系统,满足各种独特的应用要求。
目前,NI已经达到了每两个工作日推出一款硬件产品的速度,大大拓宽了用户的选择面。
3、用于集成的软硬件平台。
NI首先提出的专为测试任务设计的PXI硬件平台,已经成为当今测试、测量和自动化应用的标准平台,它的开放式构架、灵活性和PC技术的成本优势,为测量和自动化行业带来了一场翻天覆地的变革。
由NI发起的PXI系统联盟现已吸引了68家厂商,联盟属下的产品数量也已激增至近千种。
1.3.2虚拟仪器方案的优势
虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。
只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少以及出色的集成这四大优势。
1、性能高
虚拟仪器技术是在现代PC技术的基础上发展起来的,所以完全“继承”了现代PC技术的各种优点,包括高性能的微处理器和文件I/O,使得在数据导入硬盘的同时就能实时地对数据进行复杂的分析处理[9]。
另外,目前最新的计算机技术(如多核、PCIExpress等)也在不断的推动虚拟仪器技术的发展,使虚拟仪器的优势更大。
2、扩展性强
虚拟仪器具有强大的灵活性,仅仅需更新计算机或者测量的硬件设备,就可以方便的改进整个现有系统。
3、开发时间少
在驱动和应用两个层面上,虚拟仪器能把计算机、仪器仪表和通讯方面的最新技术结合在一起。
这些新技术在方便用户操作的同时,也提供了高灵活性和强大的功能,轻松地配置、创建、发布、扩展、维护和修改高性能、低成本的测量和控制解决方案[10]。
4、出色的集成度
虚拟仪器技术从本质上说是一个集成的软硬件概念。
随着产品在功能上不断地趋于复杂,常常需要把多个测量设备集成到一起来满足完整的测试需求,但是连接和集成这些不同设备总是要耗费大量的时间[10]。
NI公司的虚拟仪器软件提供了标准的接口,这样可以帮助用户轻松地将多个测量设备集成到一个系统之中,提高了效率,减少了任务的复杂性[11]。
1.4虚拟仪器的发展与现状
在虚拟仪器出现之前,传统仪器设备就是普通的模拟测量设备。
每一种仪器就是一种完全封闭的专用系统[12]。
如果想存储或者进一步处理数据,就需要人工继续操作。
虚拟仪器从最初的概念提出到现在日趋成熟的技术,这些都离不开计算机技术的飞速。
简单来说,随着计算机技术的发展,虚拟仪器的发展大致经历了以下几个阶段。
第一阶段是使用计算机增强传统仪器的功能。
由于计算机技术的长足发展和接口的统一,计算机和外界通信成为可能,只要把仪器和计算机通过特定的接口相连接,用户就可以通过计算机控制仪器的功能,这使得用计算机控制测控仪器成为一种趋势[13]。
第二阶段是开放式的通用接口和仪器硬件构成。
随着时代的发展,仪器的硬件出现了技术进步:
插入式的计算机数据采集卡和仪器总线标准的确立。
这些新的技术使仪器的构成和接口得以统一和不断开放,这样就慢慢地消除了原来由用户定义和供应商定义的仪器功能的区别[14]。
第三阶段,虚拟仪器构架和结构得到了广泛认同和采用。
在硬件和软件领域产生许多行业标准,有几个虚拟仪器平台已经得到广泛的应用并有趋势逐渐成为虚拟仪器行业标准。
然后用户可以把许多仪器的功能通过软件编写的方式封装起来用虚拟仪器实现[14]。
第四阶段,虚拟仪器编程的行业标准产生了,接口、总线、传输等都有通过统一的标准,虚拟仪器的作者只要把大部分精力放在程序的开发和仪器功能的设计上就可以了,就不需要考虑这些问题[15]。
在以上阶段中,可以看出在虚拟仪器技术发展中有两个特别突出的标志:
一个是各种总线标准的建立和应用,它从硬件标准上为虚拟仪器铺平了道路;另一个是图形化编程语言的出现,用户不再面对枯燥的代码,这就使用户把更多的精力放在程序的流程和效率上面。
1.5虚拟仪器的应用
1监控方面
用虚拟仪器系统可以随时采集和记录从传感去传来的数据,并对之进行统计、数字滤波、频域分析等处理,从而实现监控功能。
2检测方面
在实验室中,利用虚拟仪器开发工具开发专用虚拟仪器系统,可以把一台个人计算机编成一组检测仪器,用于数据/图像采集、控制与模拟。
中国农业大学的研究人员利虚拟仪器开发平台开发了用于精密播种机性能检测的实验室自动化系统。
3教育方面
现在,随着虚拟仪器系统的广泛应用,越来越多的教学部门也开始用它来建立教学系统,不仅大大节省了开支,而且由于虚拟仪器系统具有灵活、可重用性强等优点,是的教学方法也更加灵活。
4电信方面
由于虚拟仪器具有灵活的图形用户接口和强大的检测功能,同时又能与GPIB和VXI一起兼容,因此很多工程师和研究人员都把它用于电信检测和场测试。
1.6课题实现内容
本课题研究基于LabVIEW的串口通信系统。
包括PC与PC之间串口通信和PC与单片机之间串口通信两个部分。
下文从设计思想及软、硬件设计方面予以介绍。
第2章虚拟仪器与LabVIEW
2.1LabVIEW简介
LabVIEW是实验室虚拟仪器集成环境(LaboratoryVirtualInstrumentEngineeringWorkbench)的简称,它是美国国家仪器公司(NATIONAIINSTRUMENTS,简称NI)的创新软件产品。
LabVIEW为用户构造自己的仪器系统提供了完美的解决途径。
虚拟仪器通过软件将计算机硬件资源与仪器硬件有机地融合为一个整体,这就把计算机中含有的强大的计算处理能力和仪器硬件的测量、控制能力结合在一起,大大缩小了仪器硬件的成本和体积和开发时间。
虚拟仪器随着与计算机的发展而发展,它还与网络及其他周边设备进行互联,我们只需改变软件程序就就可以不断扩展增强虚拟仪器的测量功能,并且这十分简单[16]。
LabVIEW也是一种通用的编程系统,它具有各种各样、功能强大、简单易用的函数库,这些函数库里包含着包括数据采集、网络传输、串行仪器控制、数据分析、数据显示及数据存储等功能。
LabVIEW也有完善的仿真、调试工具,如设置断点、单步等,十分方便用户调试。
此外LabVIEW有动态连续的跟踪方式,利用此功能可以动态、连续地观察程序中的数据及其变化情况,这比其它语言的开发环境更加方便、更加有效。
LabVIEW采用图形化编程语言——G语言,它所产生的程序是框图的形式,这种形式易学易用,因为G语言可在很短的时间内掌握并应用到实践中去。
图形化的程序设计编程比传统的编程语言简单直观,并且开发效率高。
随着虚拟仪器技术的不断发展,这种图形化的编程语言一定会通行的标准[17]。
2.2LabVIEW的基本特点
1具有良好的图形用户界面。
用LabVIEW可以在计算机屏幕上产生出类似于传统仪器的面板,包括按钮、旋钮、开关、图形显示组件、控制组件等等。
这些组件都具有高仿真度[18]。
2比起其它的语言来说编程简单、由于采用图形化的语言——G语言,用图形化的方式编写程序。
3具有良好的模块化和层次结构的特点。
用LabVIEW编写的VI即可以作为顶层程序使用,还可以作为其它大型程序的子程序进行调用。
4LabVIEW软件中提供功能强大程序调试工具。
程序调试工具可以在源代码中可以设置断点,可以单步执行,也可以启动。
2.3LabVIEW创建虚拟仪器过程
LabVIEW里包含很多函数库和开发库,其中就有专门用于设计数据采集程序和仪器控制程序的。
用LabVIEW进行的程序设计本质上就是设计一个又一个的小“虚拟仪器”,即“vis”。
编程时在计算机显示屏幕上能看到各种控件的前面版(FrontPanel),十分简洁和传统仪器没有什么区别;但是在后台就是程序框图,这些框图都是利用G语言来编写出来的。
由于程序的前面板具有与传统仪器的界面相类似,前面板可以接受鼠标和键盘命令。
程序里每一个Vl都可以被其他VI调用,也可以单独使用,不受任何限制。
在LabVIEW中创建虚拟仪器的过程主要分为四步:
1建立新VI
启动LabVIEW程序,单机VI按钮,建立一个新VI程序。
这是将同时打开LabVIEW的前面板和后面板(框图程序面板)。
在前面板中显示控件选板,在后面板中显示函数选板。
在两个面板中都显示工具选板。
2创建虚拟仪器的前面板。
虚拟仪器的前面板类似于普通仪器的面板,它是图形化的用户界面,用于设置输入数值和观察输出量,是人、机交互的窗口。
它有着各种控件:
按钮、旋钮、开关、图形显示组件和其它显示显示组件等等。
前面板对象按照功能可以分为控制、指示和修饰3种。
控制是用户设置和修改VI程序中输入量的接口:
指示则用于显示VI程序产生或输出的数据。
如果将一个VI程序比作一台仪器的话,那么控制就是仪器的数据输入端口和控制开关,而指示则是仪器的显示窗口,用于显示测量结果。
我们通过鼠标和键盘输入数据、点击按钮,就可以在计算机显示器上直接观看结果,十分方便快捷。
若想要在数字控制中输入或修改数值,只需要用工具模板的操作工具点击控制部件和增减按钮,或者用操作工具或标签工具双击数值栏进行输入数值修改。
3创建框图程序。
在软件前面板窗口的主菜单windows窗口中选择ShowDiagram就可以将前面板窗口切换到框图程序窗口,这时我们就会看到与前面板对应的端口和框图。
框图程序由节点、端口和连线组成。
节点是VI程序中的执行元素,类似于文本编程语言程序中的语句、函数或者子程序。
端口是数据在框图程序部分和前面板之间传输的通道接口,以及数据在框图程序的节点之间传输的接口。
端口类似于文本程序中的参数和常数。
连线是端口间的数据通道,类似于文本程序中的复制语句。
数据时单向流动的,从源端口向一个或多个目的端口流动。
不同的线型代表不同的数据类型,每种数据类型还以不同的颜色予以强调。
根据需要在功能模板中找到所需的节点,并将节点图标放置到框图程序窗口。
用数据连线将这些端口和节点的图标连接起来,就形成了一个完整的框图程序。
4运行和调试程序。
在LabVIEW中,我们可以通过运行和连续运行这两种方法来运行程序。
如果运行时候一个VI程序存在语法错误,那么在面板工具条上的运行按钮将会变成一个折断的箭头,这就表示程序不能被执行需要修改。
这时这个按钮就被称作错误列表。
点击此按钮,在LabVIEW中就会弹出错误清单的窗口,里面罗列的就是程序中的错误,选用Find功能,那么出错的对象或端口就会变成高亮显示出来。
在调试程序时可以利用单步执行、设置断点、设置探针等方法来显示数据流动方向。
2.4本章小结
本章对LabVIEW软件进行了介绍,包括软件的发展历程,软件的特点。
对LabVIEW创建虚拟仪器过程做了大致的描述。
第3章串行通信
3.1串行通信的概念和特点
串行通信是指使用一条数据线(另外需要地线,可能还需要控制线),将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。
其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。
使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。
如图3.1所示。
图3.1串行通信
串行通信的特点是:
数据传送按位顺序进行,最少值只需要一根传输线即可完成,节省传输线。
与并行通信相比还有较为显著的优点,传输距离长,可以几米到几千米。
在长距离内串行数据传送速率比并行数据传送速率快,串行通信的通信时钟频率容易提高,串行通信的干扰能力十分强,其信号间的互相干扰完全可以忽略。
但是串行通信传送速率比并行通信慢很多,并行通信时间为T,则串行时间为NT。
正是由于串行通信的接线少、成本低,因此它在数据采集和控制系统中得到了广泛的应用,产品也多种多样。
RS-232的通信距离一般为15米,波仕电子的RS-232可以达到500米以上。
3.2串行通信的分类
串行传输中,数据时一位一位按照到达的顺序依次传输的,每位数据的发送的接受都需要时钟来控制,发送端通过发送时钟确定数据位的开始和结束,接受端需要在适当的时间间隔对数据流进行采样来正确的识别数据。
接收端和发送端必须保持步调一致,否则数据传输就会出现差错。
为了解决以上问题,串行通信可采用以下两种方法:
同步通信和异步通信。
3.2.1同步通信
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。
这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。
它们均由同步字符、数据字符和校验字符(CRC)组成。
其中同步字符位于帧开头,用于确认数据字符的开始。
数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。
同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。
3.2.2异步通信
串行异步通信即RS232通信,是主机与外部硬件设备的常用通讯方式。
可以双向传输。
如卫星信号接收版收到的数据传导到计算机处理,主要使用串行异步通信处理。
异步通信中,有两个比较重要的指标:
字符帧格式和波特率。
数据通常以字符或者字节为单位组成字符帧传送。
字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。
发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。
接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)