计算机.docx
- 文档编号:278274
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:23
- 大小:515.38KB
计算机.docx
《计算机.docx》由会员分享,可在线阅读,更多相关《计算机.docx(23页珍藏版)》请在冰点文库上搜索。
计算机
引言
LabVIEW是NI(NationalInstrument,美国国家仪器)公司推出的一种基于G语言的虚拟仪器(virtualinstrument,VI)开发工具。
LabVIEW是一种用图标代替文本行创建应用程序的图形化编程语言。
传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序。
它用图标表示函数,用连线表示数据流向。
现在才知道LabVIEW软件是一个功能强大,用途广泛,使用简单的软件。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
由于上位机和单片机都具有串口,因此经常使用串口完成二者之间的数据交换,这就需要在上位端设计相应的串口通信程序。
为了使开发出来的界面更具人性化、功能更强,在此采用LabVIEW开发单片机与上位机通信系统,利用虚拟仪器软件绘制图形面板,在上位机上模拟出与之功能相对应的控制面板,实现对仪器的控制、数据的分析处理等功能,从而构建出一个有效的单片机与上位机的串口通信系统。
单片机则采用51系列单片机,晶振为11.0592Hz,采用串口通信方式,波特率为9600b/s,8位数据位,1位停止位,无奇偶校验。
单片机的显示部分用于显示接收到上位机发送来的数据,由HD7279A控制。
HD7279A是一片具有串行接口的可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,这样我们就可以直观地看到上位机发送过来的数据单片机运行后等待上位机传来启动命令和初始控制,根据上位机发送来的不同控制代码做出相应的数据答复,若接收错误则单片机不做响应,上位机重新发送;当接收到上位机发送的停止命令后,单片机做出响应。
单片机的数据存储区开辟了两个缓冲区,分别为数据接收区和数据发送区,一个用来存放上位机发送来的数据帧,另一个用来存放单片机要发送的响应数据。
当进入中断后,单片机将上位机发送来的控制值装人数据接收区并直接在单片机的数码管上显示出来,这样就能方便地判断上位机发送的控制值是否正确,单片机根据其数据管理子程序判定控制值,然后在数据发送区装载响应数据,通过串口发送出去并在上位机的前面板框图中显示出来。
串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线UniversalSerialBus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
在串行通信中,数据通常是在两个站之间传送,按照数据的方向可分为3种基本的传送方式:
单工、半双工和全双工。
这些是本课题国内外研究的现状。
了解了以上的知识,我对论文的编写已经有了初步的打算,我确定研究内容有一下几点:
(1)了解LabVIEW软件的原理和功能。
(2)了解单片机的工作原理。
(3)掌握LabVIEW软件的使用方法。
(4)掌握单片机的使用方法。
(5)分析单片机与LabVIEW之间的串口通信模式。
(6)实现串口通信的软、硬件设计。
1LabVIEW软件的介绍
1.1LabVIEW应用软件概述及作用
LabVIEW是LaboratortVirtualInstumentEngineeringWorkbench缩写,它是一个使用图像符号来编写程序的编程环境,在这点上,它不同于传统的编程语言,如C,C++或Java,这些语言使用文本方式编程。
然而,LabVIEW不仅仅是一种编程语言,它还是为科学家和工程师等设计的一种编程开发环境和运行系统,编程只是这些人工作的一部分。
LabVIEW开发环境可以工作在windows,Mac或Linux系统的计算机上,用LabVIEW编写的应用程序可以运行在上述系统中还可以运行在MicrosoftPocketPC,MicrosoftWindowsCE,PalmOS以及多种嵌入式平台上,包括FPGA、DSP和微处理器[7]。
通过使用LabVIEW功能强大的图形编程语言能过成倍的提高生产率,人们亲切的称这种语言为G语言。
使用传统的编程语言需要花费几周甚至几个月材能编写的程序,用LabVIEW只需要几个小时就可以完成。
因为LabVIEW是专为测量、数据分析并提交结果而设计的,且LabVIEW拥有如此功能众多的图形用户界面又易于编程,使用它对于仿真、结果显示、通用编程甚至讲授基本编程概念也同样是很理想的语言。
与标准的试验室仪器相比,LabVIEW提供了更大的灵活性,因为它是基于软件的,我们虽然不是仪器的生产者,却可以定义仪器的功能。
使用计算机、插入式硬件和LabVIEW共同组成一个可完全配置的虚拟仪器以完成用户的任务。
使用LabVIEW,我们可以根据需要创建所需的任务类型的虚拟仪器,而成本仅仅是传统仪器的一小部分。
当需求变化后,我们可以瞬间修改虚拟仪器[2]。
LabVIEW试图使我们的生活更加轻松。
它拥有庞大的函数和子程序库,这些库可以帮助我们完成编程中的大部分任务,使我们免于被传统编程语言中指针、内存分配以及其他莫名其妙编程问题所困扰。
LabVIEW也包含特定的应用程序库代码,如:
数据采集、通用功能接口总线、串行口仪器控制、数据分析、数据显示、数据储存、Internet通信。
分析库包括了大量实用的函数,包括信号产生、信号处理、滤波器、窗口、统计、回归、线性代数、矩形运算。
LabVIEW应用程序改进了许多工业上的操作,从任何一类的工程和过程控制到生物学、农业、心理学、化学、物理学、教学活动等。
1.2LabVIEW的工作原理
一个LabVIEW程序由一个或多个虚拟仪器(VI)组成。
之所以称之为虚拟仪器是因为他们的外观和操作通常是模拟了实际的物理仪器。
然而,在这些面板之后,它们有类似于流行的编程语言如C或BASIC中的主程序、函数、子程序。
每个LabVIEW都由三个主要部分组成:
前面板、框图和图标。
前面板是VI的交互式用户界面,之所以这样命名是因为它模拟物理仪器的前面板,前面板可包括旋钮、按钮、图形、及其他控件和指示器。
用户可以使用鼠标和键盘进行输入,然后再屏幕上观察程序产生的结果。
框图是VI的源代码,由LabVIEW的图形化编程语言即G语言构成。
框图是实际可执行的程序。
图标是VI的图形表示,会在另外的VI框图中作为一个对象使用。
1.3LabVIEW里的数据存储文件形式
数据的存储就是将采集的数据保存在某种介质中,常见的就是硬盘。
ASCII字节流一种常用的数据文件格式.许多其他软件(如字处理程序或者电子表格程序)都可以访问ASCII格式文件,因此如果测试数据需要用其他软件来处理的话,可以先把所有数据都转换成ASCII字符串,然后存储至文件中。
数据日志文件一一这种文件采用的是只有G语言可以访问的二进制格式。
数据日志文件类似于数据库文件,因为可以把不同的数据类型存储到同一个文件记录中.
二进制字节流一一这种文件的格式是最紧凑的、最快速的存储丈件格式.必须把数据转换成二进制字符串的格式,还必须清楚的知道在对文件读写数据时采用的是哪种数据。
LabVIEW测试数据文件⋯种特定格式的文本文件,以.vim为扩展名.数据测试文件除了数据以外,还保存数据产生的日期时间等信息.
TDM文件格式一一NI测试数据交换文件格式.
ActiveX方式一一调用Word生产测试报表文件。
1.4LabVIEW串口通信模块及其属性
在LabVIEW中,对串行口进行控制的方式通常有两种:
一是利用LabVIEW功能模块的InstrumentI/O->Serial子模块;
二是直接利用LabVIEW功能模块InstrumentI/O->Serial子模块,该程序库中包含进行串行通信操作的一些功能模块。
表1.1通信模块的基本属性
VI名称
VI功能
VISAConfigureSerialPort
初始化VISAresourcename制定的串口通讯参数
VISAWrite
将缓冲区中的数据发送到VISAresourcename自定的串口
VISARead
将VISAresourcename制定串口接收缓冲区中的数据读取指定字节数的数据到计算机内存中
VISASerialBreak
向VISAresourcename指定的串口发送一个暂停信号
VISABytesatSerialport
查询VISAresourcename指定串口接收缓冲区的数据字节数
VISAClose
结束与VISAresourcename指定串口资源之间的会话
VISASetI/OBufferSize
设置VISAresourcename指定串口的输入输出缓冲区大小
VISAFlushI/OBuffer
清空VISAresourcename指定串口的输入输出缓冲区
2硬件电路介绍
2.1单片机的介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(也称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
单片机的应用领域:
1.单片机在智能仪器仪表中的应用;
2.单片机在工业测控中的应用;
3.单片机在计算机网络和通讯技术中的应用;
4.单片机在日常生活及家电中的应用;
5.单片机在办公自动化方面。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
2.2单片机的基本组成
由于本次实验需要89C51单片机,89C51单片机芯片包括[3]:
1.一个8位80C51微处理器(CPU);
2.片内256字节数据存储器RAM/SFR,用以存放可读/写的数据;
3.片内4KB程序存储器FlashROM,用以存放程序、一些原始数据和表格;
4.4个8位并行I/O端口P0-P3,每个端口即用作输入,也可以用作输出;
5.两个16位定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;
6.具有5个中断源,2个中断优先级中断控制系统;
7.一个全双工UART的串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通信;
8.片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接,最高允许震荡频率为24MHZ;
9.89C51单片机与8051相比,具有节点工作方式,即休闲方式及掉电方式。
2.3串口通信
在串行通信中,数据通常是在两个站之间传送,按照数据的方向可分为3种基本的传送方式:
单工、半双工和全双工。
1)单工:
单工通信使用一根导线,信号的传送方和接收方有明确的方向性。
也就是说,通信只在一个方向上进行。
打印机、电视机就是典型的日常单工设备。
2)半双工:
若使用同一根传输线既作为接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式称为半双工。
采用半双工方式时,通信系统每一端的发送器和接收器,通过收发开关分时转接到通信线上,进行方向的切换。
3)全双工:
当数据的发送和接收,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工。
在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传输。
全双工方式无需进行方向的切换。
图2.1单工、半双工和全双工,3种传输方式
2.4同步通信和异步通信
串行通信可分为两种类型,一种是同步通信,另一种是异步通信。
采用同步通信时,将许多字符组成一个组,这样,字符可以一个接一个地传输,但是,在每组信息的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有空隙。
采用异步通信时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数位来作为分隔位。
比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式下的高,因为同步方式下的非数据信息比例比较小。
但是,从另一方面看,同步方式下,要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传传输过程中每1位的位置。
这样一来,如采用同步方式,那么,在传输数据的同时,还必须传输时钟信号。
而在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较相近,即不超过一定的允许范围就行了。
在数据传输中,较为广泛采用异步通信,异步通信时的标准数据格式如图2.2:
图2.2异步通信时的标准数据格式
2.5波特率及RS.232C标准
计算机通信速度的单位称为波特率,波特率是指单位时间内传送的信息量,信息量单位为bit,时间单位为秒,即:
1波特=1位,1秒=1bit/s=1bps。
例如:
如果在异步通信中使用l位起始位、8位数据位、无奇偶校验位、1位停止位,则一帧的长度为10bit,如果应用中要求在1s内传送1000个字符,则需要将波特率设为:
10位/字符。
1000字符/秒=10000bit/s=10000bps。
在异步通信中,接收方和发送方应使用相同的波特率,才能成功传送数据。
串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信。
由于不同设备串行接口的信号线定义、电气规格等特性都不尽相同,因此要使这些设备能够相互连接,需要一个统一的串行通信接口RS一232(又称EIA一RS一323c),是目前较为常用的一种串行通信接口,RS.232标准的全称是EIA—RS一323c标准,其中EIA代表美国电子工业协会,RS代表推荐标准,232是标识号,C代表RS.232的最新一次的修改。
该标准对串行通信的连接电缆和机械、电气特性、信号功能以及传送过程都进行了明确的规定,适合于数据传输速率在0~20000bit范围内的通信。
RS一232C串行通信接口是目前最常用的一种串行接口[10]。
3串口通信系统的建立
3.1系统硬件构成及通信的建立
单片机采用51系列单片机,晶振为11.0592Hz,采用串口通信方式,波特率为9600b/s,8位数据位,1位停止位,无奇偶校验。
单片机的显示部分用于显示接收到上位机发送来的数据,由HD7279A控制。
HD7279A是一片具有串行接口的可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,这样我们就可以直观地看到上位机发送过来的数据。
单片机运行后等待上位机传来启动命令和初始控制,根据上位机发送来的不同控制代码做出相应的数据答复,若接收错误则单片机不做响应,上位机重新发送;当接收到上位机发送的停止命令后,单片机做出响应。
串行接口电路硬件设计:
串行接口硬件电路由RS232串行接口、MAX232芯片和AT89C51单片机三部分构成。
其中。
RS232串行接口用于连接上位PC的RS232串行接口。
MAX232芯片用于衔接RS232串行接口与AT89C51单片机.实现AT89C51单片机输入输出的串口信息与上位PC的RS232串行接口信息的转换。
即AT89C51单片机信号的TTL电平到RS232电平的转换.从而实现二者之间电气特性上的兼容。
进行串行通讯时要满足一定的条件,电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,专用芯片MAX23可以进行转换,我采用了三线制连接串口(如图3.1),也就是说和电脑的9针串口只连接其中的3根线:
第5脚的GND.第2脚的RXD.第3脚的TXD。
MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。
图3.1单片机串口与PC机的串口连接电路
九针串口Serial(PC9)即RS232的接口引脚定义如图3.2:
1CD载波检测、2RXD接收数据、3TXD发送数据、4DTR数据终端准备好、5GND地、6DSR设备准备好、7RTS发送请求、8CTS清除发送、9RI铃声指示为了能够在电脑端看到单片机发出的数据。
图3.2RS232的接口引脚定义
3.2通信程序设计
单片机接口程序采用C51语言编写,包括主程序、参数初始化子程序、数据管理子程序、中断调用程序(包括定时器、串口的中断服务程序)以及数据传输服务。
数据传输等功能均在中断程序中完成。
主程序中断发生后,进人中断服务,接收完数据帧后,调用数据管理子程序完成对数据的分析、处理,然后调用数据传输子程序将响应数据或短应答发送出去,这样就完成了一个数据传输循环周期的处理[5]。
N
Y
图3.3主程序流程图
单片机的数据存储区开辟了两个缓冲区,分别为数据接收区和数据发送区,一个用来存放上位机发送来的数据帧,另一个用来存放单片机要发送的响应数据。
当进入中断后,单片机将上位机发送来的控制值装人数据接收区并直接在单片机的数码管上显示出来,这样就能方便地判断上位机发送的控制值是否正确,单片机根据其数据管理子程序判定控制值,然后在数据发送区装载响应数据,通过串口发送出去并在上位机的前面板框图中显示出来。
4串行通信模块在LabVIEW中的应用
4.1串口VI介绍
在LabVIEW中,VISA称为虚拟仪器软件体系结构(VirtualInstrumentSoftwareArchitecture),作为LabVIEW程序中驱动程序间相互通信的底层功能模块,可以连接不同标准的I/0设备,是一个用来在串口通信设备、VI设备、GPIB设备以及其它基于计算机设备之间通信的函数库。
我们可以在LabVIEW中的InstrumentI/O中的Serial找到与串口VI相对应的模块,其中比较常用的是VISAConfigureserialPort、VISAWrite、VISARead等模块,分别实现串口设置、串口写、串口读等功能。
通过对这几个功能模块的配置和连接,就能开发出符合要求的LabVIEW串行口通信软件。
编程中最关键的是对这几个通信子VI属性的设置和通信流程图的连接。
VISA库驻留于计算机系统中,完成机算机与仪器之间的连接,用以实现对仪器的程序控制,其实质是用于虚拟仪器系统的标准的API。
VISA本身不具备编程能力,它是一个高层API,通过调用底层驱动程序来实现对仪器的编程,其层次如图4.1。
图4.1VISA层次
采用VPP标准的I/O接口软件,其软件结构包含三部分,如图4.2。
图4.2软件结构
与其他现存的I/O接口软件相比。
VISA的I/O控制功能具有如下几个特点:
适用于各种仪器类型(如VXI仪器、GPIB仪器、RS一232串行仪器、消息基器件、寄存器器件、存储器器件等仪器);适用于各种硬件接口类型;适用于单、多处理器结构或分布式网络结构;适用于多种网络机制。
VISA的I/O软件库的源程序是唯一的.其与操作系统及编程语言无关,只是提供了标准形式的API文件作为系统的输出。
4.2串口通讯函数
本文用到的主要口通讯调用函数为:
FunctionsInstrumentI/OVISAAdvancedInterfaceSpecificSerial.
该函数主要用于串口的初始化。
其主要参数意义如下:
VISAresourcename:
VISA资源名称,本文指串口号;
baudrate:
波特率.默认为9600;
databits:
一帧信息中的位数.LabVIEW中允许5—8位数据。
默认值为8位;
stopbits:
帧信息中的停止位的位数,可为1位、l位半或2位;
Parity:
奇偶校验设置。
可为无校验、奇校验或偶校验;
flowcontrol:
该参数数据类型为簇,用于串行通讯中的握手方式。
VISAWrite模块把Writebuffer中的字符串写入指定的设备.返回实际传送的字节数。
VISARead根据指定读取的字节数读入设备中的数据,返回实际传送的字节数。
VISAClose关闭与指定设备的通讯过程.释放系统资源。
本文在实现LabVIEW与AT89C51单片机串口通信的串口通讯设置上.采用波特率为9600,无奇偶校验.8位数据位.1位停止位.禁止软、硬件握手。
4.3上位机串口通信程序设计及流程图
上位机通信程序在程序框图中设计完成,具体如下:
1、串口初始化:
首先完成串口的初始化,在此设置波特率为9600b/s,8位数据位,1位停止位,无奇偶校验。
2、数据的读操作:
系统运行初始化后一直处于等待接收数据状态。
数据采集终端每过一定时间上传一次数据,这个数据是和时间一起上传的,是自动记录数据历史的部分,所以要存储在一个特定的文件夹里,等待后续程序的处理。
3、数据的写操作:
当需要上传某一特定时间段的数据时,需要上位机发送一个命令(即起始时刻和终止时刻的数值)给单片机,这时需退出记录数据状态,向串口发送一个命令串,这个命令在按下上传数据按钮之前就要在起始时刻和终止时刻窗口写好,发送以后延时等待单片机的处理并且等待接收数据,当接收到数据并且在观察窗口显示所需要的数据之后,将“读数据”按钮关闭,系统又处于等待接收定时上传数据状态,使数据不会丢失。
需要注意的是送命令的控制按钮要设计为一个脉冲的形式,否则程序会循环发送命令,不能返回等待定时上传状态。
4、设置VISAWrite/VISARead等相应模块的功能。
本程序主要采用顺序结构实现,具体流程如图4.3所示:
YN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机