书签 分享 收藏 举报 版权申诉 / 34
上传文档赚钱

类型《现代微机原理与接口》课件(研究生)第8章.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2146688
  • 上传时间:2022-03-03
  • 格式:PPT
  • 页数:34
  • 大小:529.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《现代微机原理与接口》课件(研究生)第8章.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    现代微机原理与接口 现代 微机 原理 接口 课件 研究生
    资源描述:

    1、第第8章章 Windows软件接口及应用软件接口及应用 Windows软件接口软件接口 API系统功能接口系统功能接口 计算机硬件资源获取计算机硬件资源获取 Winsock网络编程接口网络编程接口 NetBIOS网络接口网络接口 Windows虚拟仪器技术虚拟仪器技术8.1 软件接口概述软件接口概述 1软件接口的分类 软件接口种类繁多,应用和开发也比较复杂,从系统的角度来看,软件系统大致可分为操作系统软件、应用软件(包括应用系统软件和具体应用的专业软件)等。 软件接口可分为如下三类: (1)操作系统接口类; (2)应用系统接口类; (3)应用软件接口类。 从软件的应用角度来进行软件分类,软件系

    2、统可分为如下几类: (1)操作系统类软件; (2)数据库系统类软件; (3)图形、图像处理系统类软件; (4)办公系统类软件; (5)网络、通信系统类软件; (6)多媒体系统类软件; (7)其他系统类软件。2软件接口功能 Windows软件接口的主要功能是为应用程序的开发提供统一的编程界面,达到使不同的软件系统具有相互利用、共享信息的作用。具体来说,不同的软件接口具有不同的功能。 (1)数据库应用程序编程接口:目前数据库系统种类繁多,按系统规模和功能,数据库系统可以分为大、中、小数据库系统;从应用形式上数据库系统分为网络数据库系统和单机数据库系统;从应用体系上来分,数据库系统分为独立结构(单机

    3、结构)、客户 机 / 服 务 器 ( C l i e n t / S e r v e r ) 结 构 和 浏 览 器 / 服 务 器(Browser/Server)结构。 (2)多媒体编程接口:在计算机技术高速发展的今天,计算机已不在是一个少数掌握高技术的计算机专家手中的计算工具,而发展成为可以完成工程计算、财务管理、CAI教学,还可以充当CD或VCD机,播放CD、VCD。 (3)网络、通信应用程序编程接口:无论WinSock还是NetBIOS等网络编程接口都向程序员提供了网络系统应用程序开发的API 函数。 3软件接口的调用方法 软件接口的调用方法总的来说就是通过动态连接库提供的API函数或

    4、方法来实现的。但是,由于对函数的包装方式不同,就会使应用的方式有所不同。比较显著的就是Microsoft MFC。程序员使用Visual Studio如Visual C+进行Windows编程时通常有两种方式: (1)SDK编程:直接使用Windows API编程,API是指Windows以函数形式对外提供的编程接口。除了作为Windows扩展的部分API(如DirectX、OLE DB)是以COM形式提供外,Windows基本部分的API都是以独立函数的形式提供的,可以直接使用API编程。 (2)MFC编程:微软公司利用C+是对象化的特点,开发了很多C+类。利用这些类对Windows的大部分

    5、对象及与有关的操作进行了封装,这些C+类合起来就形成了微软基本类库MFC。 8.2 API系统功能接口系统功能接口 Windows能够提供三种重要且最基本的任务。 (1)执行基本的输入和输出功能,负责与键盘、鼠标、显示器、打印机、磁盘文件和串行通信设备等打交道。这其中的大多数功能虽然在MS-DOS中也同样支持,但Windows中的基本输入/输出(I/O)函数远比DOS中的丰富。更重要的是,Windows中的I/O函数都是与设备无关的。 (2)内存管理。Windows允许程序动态申请和释放内存,Windows内存管理API允许程序透明地存取扩充内存(Expanded Memory,即由4.0版的

    6、LIM EMS标准所支持的页方式内存)和延伸内存(Extended Memory,1 MB以上的可寻址空问,也译为扩展内存)。在基于80386和 80486的主机上,Windows还提供了对用户透明的虚拟内存(Virtual Memory,利用内存和磁盘之间进行交换的技术来实现的可共享内存)。 (3)支持多任务。Windows支持多任务,即允许两个或多个程序共享 CPU、内存和 I/O设备。Windows允许多任务就意味着Windows的I/O和内存管理API函数能够使多个程序协调地共享资源。 8.2.1 Windows API的功能与作用的功能与作用 1. 模块 在Windows中,模块是指

    7、任何能够装入内存的可执行代码和数据的集合。一个模块或是包含一个用户编制的应用程序,或是一个硬件设备驱动程序,或是一个动态连接库(DLLs)函数,也可能是一个程序中所包含的能被另一个程序所存取的数据资源。 2. 函数 大多数Windows模块包含了一个或多个能被其他模块中的代码所调用的可执行代码,这些代码称为引出函数。由包含这个函数可执行代码的模块引出(Export)该函数;而由调用这个函数的模块引入(Import)该函数。 8.2.2 Windows API应用实例应用实例 在远程工业控制和数据采集中,主计算机(上位机)可利用RS-232C串行接口通过Modem与远程现场计算机(下位机)进行数

    8、据通信,实时采集、控制现场计算机发送来的数据,控制远程计算机的工作等。远程控制的工作原理如图8.1所示。 (1)用Win32 API 函数:在Win32 API函数中主要定义了下面几个串口操作的函数。 (2)用Communication控件:微软提供的MS Communication控件是将串口操作进行封装的OCX控件,使用起来比较方便,也易于操作。在Visual Basic和Visual C+中,通过Active控制加载后可直接使用,但没有Windows API函数那样灵活,实现的功能受到一定的限制。 (3)用第三方厂商提供的OCX控件或DLLs动态链接库等软件包。目前许多软件公司针对串行端

    9、口的控制,提供了相应的软件包,它们使用起来灵活方便,而且功能强大,并且可以跨平台操作。 1RS-232C控制函数 (1)串行口的打开和关闭 Win32系统把文件的概念进行了扩展,无论是文件还是通信设备均可用CreateFile函数打开或创建。该函数的声明为: HANDLE CreateFile(LPCTSTR lpFileName,/文件名 DWORD dwDesiredAccess,/访问模式 DWORD dwShareMode,/共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes,/通常为NULL DWORD dwCreationDistribu

    10、tion,/创建方式 DWORD dwFlagAndAttributes,/文件属性和标志 HANDLE hTemplateFile/临时文件的句柄,通常为NULL ); (2)串行口的初始化 在打开通信设备句柄后,需要对串行口进行一些初始化工作,包括DCB结构、缓冲区大小和超时等的设置。 (3)串行口的读/写操作 读/写串口的函数是ReadFile和WriteFile,可用同步方式执行,也可用 异 步 方 式 执 行 , 这 由 C r e a t e F i l e 函 数 中 是 否 指 定FILE_FLAG_OVERLAPPED来决定,指定为异步方式,未指定则为同步方式。函数ReadF

    11、ile和WriteFile的参数和返回值类似,因此仅列出ReadFile函数的声明: BOOL ReadFile(HANDLE hFile; /文件句柄 LPVOID lpBuffer; /读缓冲区 DWORD nNumberOfBytesToRead; /要求读入的字节数 LPDWORD lpNumberOfBytesRead; /实际读入的字节数 LPOVERLAPPED lpOverlapped /指向一个OVERLAPPED结构 ); 2Modem控制命令 MODEM的状态可以分为命令状态和在线状态两种,命令状态还可以分为在线命令状态和离线命令状态。AT命令由特定的命令前缀“AT”开始

    12、,由命令结束标志回车符结束,可以通过串行端口在MODEM处于命令状态时向其发送。 8.2.3 获取计算机硬件资源获取计算机硬件资源 1. 检测CPU的型号 检测计算机的CPU型号可用GetSystemInfo API函数获得,如将下面的代码添加到Button的Click事件中即可: void _fastcall TForm1:CPUCmdClick(TObject *Sender) SYSTEM_INFO systeminfo; GetSystemInfo (&systeminfo); Memo1-Lines-Add(CPU is:+String( systeminfo.dwProcessor

    13、Type ); 2检测内存容量 获 得 内 存 容 量 的 方 法 与 获 取 C P U 型 号 基 本 相 同 , 不 同 的 是 用GlobalMemoryStatus API函数。其中,成员dwTotalPhys用来获得物理内存总量,而dwAvailPhys获得有效物理内存总量。其检测代码如下: void _fastcall TForm1:MEMCmdClick(TObject *Sender) MEMORYSTATUS memory; memory.dwLength =sizeof(memory); /初始化 GlobalMemoryStatus(&memory); Memo1-Li

    14、nes-Add(物理内存是(Mb):+String(int(memory.dwTotalPhys/1024/102 4); Memo1-Lines-Add(其中可用内存是(Kb):+String(int( memory. DwAvailPhys/1024); 3. 检测可用硬盘空间 许 多 安 装 程 序 和 应 用 程 序 都 有 检 测 硬 盘 空 间 的 操 作 , 这 可 通 过GetDiskFreeSpace API函数来进行。如检测C盘的总容量和可用容量,可用下代码:void _fastcall TForm1:HDCmdClick(TObject *Sender) DWORD se

    15、ctor,byte,cluster,free; long int freespace,totalspace; GetDiskFreeSpace(C:,§or,&byte,&free,&cluster); /获得返回参数 totalspace=int(cluster)*int(byte)*int(sector)/1024/1024; /计算总容量 freespace=int(free)*int(byte)*int(sector)/1024/1024; /计算可用空间 Memo1-Lines-Add(C盘总空间(Mb):+String(totalspace); Memo1-Lines-Ad

    16、d(C盘可用空间(Mb):+String(freespace);4. 检测CD-ROM GetDriveType()函数返回一个06之间的值,依次代表:0未知盘、1不存在、2可移动磁盘、3固定磁盘、4网络磁盘、5CD-ROM、6内存虚拟盘。下面代码可寻找CD-ROM:void _fastcall TForm1:CDROMCmdClick(TObject *Sender) UINT type; char name; for (name=C;nameLines-Add(CD-ROM is:+String(name); 5. 检测声卡配置 通过waveOutGetNumDevs()和midiOutG

    17、etNumDevs()检测波形设备和MIDI设备,利用waveOutGetDevCaps()和midiOutGetDevCaps()获得声音设备的细节资料。void _fastcall TForm1:SoundCardCmdClick(TObject *Sender) int wavedevice,mididevice; WAVEOUTCAPS wavecap; MIDIOUTCAPS midicap; wavedevice=(int)waveOutGetNumDevs(); /波形设备信息 mididevice=(int)midiOutGetNumDevs(); / MIDI设备信息 if

    18、(wavedevice=0) Memo1-Lines-Add (没有发现波形设备); else waveOutGetDevCaps(0,&wavecap,sizeof(WAVEOUTCAPS); Memo1-Lines-Add (当前波形设备:+String(wavecap.szPname); if (mididevice=0) Memo1-Lines-Add (没有发现MIDI设备); else midiOutGetDevCaps(0,&midicap,sizeof(MIDIOUTCAPS); Memo1-Lines-Add (当前MIDI设备:+String(midicap.szPname

    19、); 6. 检测显示器信息 检测色深则要用API函数GetDeviceCaps获得每像素的比特数和色彩的页面数,然后计算2的“每像素的比特数”次幂即得色彩的梯度数,再计算“色彩的梯度数”的“色彩的页面数”次幂才能得色深。由于该段程序用到了幂运算,所以需在程序首部添加#include 语句,程序如下:void _fastcall TForm1:MonitorCmdClick(TObject *Sender) int tcs; long int bpp,cp,tc; Memo1-Lines-Add (显示器分辨率为:+String(Screen-Width)+String (Screen-Heig

    20、ht); bpp=GetDeviceCaps(Form1-Canvas-Handle,BITSPIXEL); tcs=pow(2,bpp); /计算色彩的梯度数 cp= GetDeviceCaps(Form1-Canvas-Handle,PLANES); tc= pow(tcs,cp); /计算色深 Memo1-Lines-Add(总颜色数:+String(tc);8.3 网络编程接口网络编程接口 主要对Windows Socket和NetBIOS的基本功能、原理进行介绍,同时介绍一些网络应用的实用程序,使读者掌握Windows Socket的程序设计方法和基于Internet/Intrane

    21、t远程控制程序的设计方法。 8.3.1 网络协议及服务网络协议及服务 1协议概念 网络协议(也称通信协议)是指在计算机与计算机之间进行通信时,为了实现数据有序的发送和接收,必须遵循的一些事先约定好的规则(标准或约定)。在这些规则中明确地规定了通信时的数据格式、数据传送时序和相应的控制信息、应答信息等内容。 为保证计算机网络的开放性与兼容性,网络协议必须遵循标准化的体系结构,目前是指ISO的OSI标准或TCP/IP协议组标准。 在分层网络中,每层使用定义好的协议与它周围的各层进行通信,同时,当两台主机进行通信时它们的相应层也进行对话。我们把不同网络主机内的各层称为对等实体。对等实体间的通信叫虚通

    22、信,如图8.3所示。 2服务和协议 网络分层的每层为其上层提供专门的通信服务,每层完成的功能是上面各层工作的基础。除了最底层(物理层),上面各层都依赖下一层完成其特定的功能。网络设计人员用每层为其上层提供的服务来指定它的功能。所以这里要分清协议和服务的区别。 3服务模式 网络使用不同的方法在对等实体之间提供同样的通信服务,我们将这些不同的方法叫做服务模式。简言之,服务模式规定了本层怎样实现功能。一般来说,应用程序的要求会指定使用某种特定的服务模式。例如,如果应用程序需要进行差错控制,就应该按照具有差错功能控制的协议设计程序。如果现存的协议不能提供应用程序要求的所有的服务模式,就必须设计自己的协

    23、议来实现所要求的模式。 一般协议所提供的服务模式有以下几种:面向连接的服务、无连接的服务、排序服务、差错控制服务和流量控制服务。 4TCPIP协议组 TCP/IP(Transmission Control ProtocolInternet Protocol)包括传输控制协议和互连网协议。TCP/IP协议组是一个协议的集合,包括TCP、IP、UDP和ICMP,称为TCP/IP协议,它是一个五层通信模型,每层都使用TCP/IP协议与别的主机通信。TCP/IP协议组采用5层协议模型,其TCP/IP、IPX协议层次模型与OSI/RM层次模型比较如图8.4所示。 Windows Sockets(Wins

    24、ock)是一个基于Socket模型的API函数、过程集,Winsock API只能在Microsoft Windows操作系统类(如Windows 9X和Windows NT)中使用。 Windows Sockets是以动态链接库(DLLs)来实现Socket接口的。在Windows中,动态链接库(DLLs)为Windows程序在运行时刻增加新的函数提供了一个标准方法。 1Winsock动态链接库 Windows API提供了一组完成特定任务的函数,Winsock规范将API库分为三类: (1)Winsock API包含的Berkeley Socket函数。 (2)检索有关域名,通信服务和协议

    25、等Internet信息的数据库函数。 (3)Berke1ey Socket例程的Windows专用的扩展函数。 Winsock API函数可分为阻塞的和不阻塞的。阻塞函数在完成其网络操作以前禁止程序调用任何其他Winsock函数。 8.3.2 Winsock接口控制接口控制 2Winsock库函数 Internet程序将在不同的地址类型下工作,如可指定一个像的域名或一个如192.158.20.102.的点分十进制地址。但在Windows网络程序能够处理这些地址之前,程序必须将地址转化为大多数Winsock理解的Socket数据结构。同样,程序在给用户显示主机地址信息时,必须将Socket数据结

    26、构的地址信息转化为用户理解的形式。8.3.2.1 Winsock编程模型编程模型 1建立Socket 程序使用Socket进行网络通信时,必须先建立一个Socket。为了建立Socket,程序要调用Socket函数。下面的程序语句示出了Socket函数的调用例子: socket_handle=socket(protoco1_family,_socket_type,protocol); 2配置一个Socket 为了配置一个Socket,程序可使用Winsock API中不同的函数。程序怎样配置Socket依赖于程序建立的网络连接类型(连接的还是无连接的)和程序起的作用(客户还是原服务器进程)。

    27、3连接一个Socket 面向连接的协议在连接端点之间建立一个虚电路,如TCP这样的面向连接协议,通过在两个端点之间互换确认信息来建立连接。 result=connect(socket_handle,remote_socket_address,address_length); 4使用一个 Socket 程序能够使用Winsock API在一个配置好的Socket上传送和接收数据。 5、6使用一个连接的Socket 下面的程序语句是一个典型的Winsock函数调用:result=send(socket_handle,message_buffer,buffer_length,specia1_flag

    28、s);result= recv(socke_handle,message_buffer,buffer_length,specia1_flags);result=sendto(socket_handle,message_buffer,buffer_length,specia1_flags, socket_address_structure,address_ structure_length);result=recvfrom(socket_handle,message_buffer,buffer_length,specia_flags, socket_address_sturture,addres

    29、s_structure_length); 7Socket描述符 Winsock定义Socket的数据类型,将它用作文件句柄。Winsock规范将Socket定义为无符号数据类型。Winsock用常数INVALID_socket表示无效Socket。 1Visual C+编写网络程序 查询主机IP地址的小实用程序,比如输入域名则可查询其相应的IP地址,也可输入IP地址查询对应的域名。 2Delphi编写网络程序 Delphi和C+Builder是Windows下非常优秀的开发语言,在Delphi和C+Builder中不需直接与Winsock的API打交道,其TClientSocket和TServ

    30、erSocket控件封装了Winsock接口的大部分API,大大简化了Winsock的程序访问。 网络监控系统设计是以“冰河”软件的设计思想,利用Delphi的TClientSocket、TServerSocket控件实现网络计算机的控制。管理员可通过指令可观察或控制被监控的计算机。控制指令有:(1)截取屏幕:观察被控机的当前屏幕,了解被控计算机屏幕显示情况。(2)远程关机:关闭被控的计算机。(3)远程重启:重新启动被控的计算机。(4)锁定机器:封锁被控机的操作,这时键盘、鼠标操作都无效。(5)机器解锁:解除对被控机的封锁。8.3.2.2 Winsock接口编程应用接口编程应用 NetBIOS

    31、是早期流行的网络编程接口,用NetBIOS接口开发的应用程序具有较好的移植性,被大量的应用系统所采用。本节将简单介绍NetBIOS接口的规则及编程方法。 8.3.3.1 NetBIOS概述概述 网络基本输入/输出系统(NetBIOS)是一种用于在数据源和数据目的地之间交换数据的网络接口。NetBIOS可使计算机的应用程序与设备进行通信,应用程序使用特别的命令序列来调用各种NetBIOS功能。因此,NetBIOS通过最低层的规程与某些服务相联系。 数据交换在NetBios的应用程序之间进行,应用程序驻留在LAN所连接的不同的计算机中。同一计算机中的两个NetBIOS应用程序,也可通过NetBIO

    32、S进行通信,而无须通过LAN。IBM的NetBIOS执行都要求LAN适配器,但LAN环境并不严格限制NetBIOS的使用。8.3.3 NetBIOS网络接口网络接口 NetBIOS在网络七层模型中的位置如图8.6所示,在应用程序通信期间,一台指定计算机中的每一层的信息传送工作仅与相临层有关,这种通信方式称为相邻层通信。每一层也间接使其信息传递工作与另一台计算机中的对等层工作相一致,即对等通信。 NetBIOS位于OSI/RM七层参考模型的较高层次,编写NetBIOS接口应用程序基本上与其他层无关。如两个NetBIOS应用程序可使用IBM PC网络适配器进行通信。基本的通信工作可以使用适配器的内

    33、部会话管理规程(SMP)来完成。应用程序也可使用IEEE 802.2逻辑链路控制(LLC)规程的IBM PC LAN支持程序。 NetBIOS是IBM为其LAN提供的5个通信接口之一,这五个通信接口是:适配器卡、先进的程序至程序级通信(APPC)、数据链路控制(DLC)、直接接口和NetBIOS。这些接口与NetBIOS的关系如图8.7所示。 8.3.3.2 NetBIOS通信接口通信接口 NCB称为信息控制块或MCB,通常使用NCB。NCB中有64个字节,由13个字段和作为保留区的14个字节所组成,如表8-5为NCB及字段的定义情况。8.3.3.3 NCBMCB字段字段 C语言定义NCB结构

    34、如下:#define USGC unsigned char#define USGI unsigned#define USGL unsigned longstruct Ncb USGC NcbCommand; /命令代码 USGC NcbCode; /返回码 USGC NcbLsn; /本地会话号 USGC NcbNum; / ADD NAME表入口 char NcbBufferOffset; /I/O缓冲偏移 USGI NcbBufferSegment; /I/O缓冲段 USGI NcbLength; /I/O缓冲区长度 char NcbCallName16; / CALL调用后删除的系统名

    35、char NcbName16; /本地网络适配器名 USGC NcbRto; /接收超时 USGC NcbSto; /发送超时 char *NcbPostRtnOffset; /提交路由偏移 USGI NcbPostRtnSegment; /提交路由段 USGC NcbLanaNUM; /执行cmd命令的网络适配器 USGC NcbCmdCPlt; /0 xFF= 命令完成、失败标志 char NcbReservedArea14; /网卡工作区 ZeroNcb; / NCB计算大小8.3.3.4 NetBIOS网络接口应用例 在网络环境下,基于Win32的应用程序之间可通过NetBIOS接口进

    36、行通信。NetBIOS接口可提供下列命令和服务支持: (1)网络命名注册和验证; (2)会话建立和终止; (3)定向数据传输的可靠连接; (4)不可靠无连接的数据传输(数据报); (5)协议和适配器监视与管理。 NetBIOS接口可通过NCB提交的一组命令,一个应用能够在任何支持NetBIOS接口的协议上发出NetBIOS命令。 例8-3:列出在一个LAN上的所有NetBIOS NAME。 例8-4:获取以太网适配器得到MAC地址。8.4 Windows虚拟仪器技术虚拟仪器技术 虚拟仪器由仪器物理硬件、硬件接口和计算机上运行的虚拟仪器软件三部分构成,如图8.8所示。 8.4.1 虚拟仪器基本结

    37、构虚拟仪器基本结构 1虚拟仪器的主要技术 传统仪器由信号采集和控制、信号分析和处理、结果表达和输出三部分组成,虚拟仪器也不例外,它需要能实现信号采集和控制的插卡、接口等硬件支持,同时还需要能实现各种信号分析、处理,以满足多种测试功能的分析软件的支持。 (1) 硬件技术 数据采集卡:是虚拟仪器最基本的功能部件,完成被测信号的采集。 GPIB接口卡:利用GPIB接口可方便地将微机与电子仪器连接,以实现相互的数据通信。 VXI接口:它是VME总线在仪器领域的扩展应用,能在仪器间实现精确的定时和同步。 现场总线技术:通过现场总线接口,可构成复杂的分布式虚拟仪器系统,它比传统的DCS系统更节约费用,更容

    38、易扩充。 LAN技术:通过LAN端口可实现虚拟仪器的联网,实现网络资源和数据的共享,通过LAN监视和控制远程设备。 (2) 软件开发环境软件开发环境 虚拟仪器的软件需要软件开发工具和编程技术的支持,目前常用的虚拟仪器软件开发工具有Visual C+、C+Builder、Visual Basic、Delphi等,这些语言均可使用动态链接(DLLs)技术和对象链接嵌入(OLE)技术将虚拟仪器软件嵌入到应用系统中,从而构成复杂的应用系统。 目前,有许多仪器厂商推出了自己的虚拟仪器开发平台,其代表产品有: LabVIEW:由美国NI公司开发的图形开发调试和运行程序环境,它为用户提供了简单直观、快速高效

    39、的编程平台,用户可通过类似流程图的形式构建自己的虚拟仪器,而不需用户编程。 LabWindows/CVI:由美国NI公司开发的C程序交互式生成工具,它提供了所见即所得的图形界面编辑功能,600多个源代码级仪器驱动程序,为精通C语言的人员提供了一种可简化程序开发、支持虚拟仪器软件编写的平台,并允许与Visual C+、Borland C+、WATCOM C或Symanter联用。 VEE 4.0:由HP公司提供的可视化编程语言,它大大提高了大型复杂系统的开发效率,支持Windows、HP-UX等不同平台,带有丰富的仪器支持模块和调用其他语言所开发的程序模块。 2虚拟仪器软件 虚拟仪器的软件主要由

    40、硬件驱动程序、控制软件和图形化用户接口等三部分组成。 硬件驱动程序:这是虚拟仪器软件的最底层部分,是真正对仪器硬件实现通信和控制的软件层,主要用于实现对测试信号的采集和控制。目前,驱动程序一般是按模块化和与设备无关性编写,用户可方便地调用各种控制功能,避免了复杂的编程过程和重复开发。 控制软件:用于实现对测试数据的分析、处理和管理(如存储、显示等),处于硬件驱动和图形化用户接口(GUI)之间。它将产生的数据和来自硬件的信息传给GUI,并接收GUI的数据和命令,完成对虚拟仪器的数据的分析和处理,通过驱动程序将用户命令传给硬件。 图形用户接口:这是用户与虚拟仪器进行交互的模块,用于实现测试结果的正

    41、确表达和直观输出显示。它是面向用户设计的,提供有图形和数据的显示控制功能以及受硬件控制的示意图等。 3虚拟仪器应用 目前,虚拟仪器的应用越来越广,在基于计算机的测试、测量、数据采集、监控、控制等方面占有重要的地位。虚拟仪器是计算机硬件、软件技术以及网络通信技术的有效集成,其中软件成了定义、构造虚拟仪器的核心,因此软件技术中的任何新方法都可不同程度地应用到虚拟仪器中,从而推动了测试领域的新技术的发展。 8.4.2 LabVIEW虚拟仪器开发系统虚拟仪器开发系统 LabVIEW是一个完全的、开放式的虚拟仪器开发系统应用软件,利用它组建仪器测试系统和数据采集系统可以大大简化程序的设计。LabVIEW

    42、与Visual C+、 Visual Basic、LabWindows/CVI等编程语言不同,后者采用的是基于文本语言的程序代码,而LabVIEW则是使用图形化程序设计语言,用方框图代替了传统的程序代码。LabVIEW所运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常相似。 LabVIEW包含有专门用于设计数据采集程序和仪器控制程序的功能库和开发工具库。LabVIEW的程序设计实质上就是设计一个个的“虚拟仪器”,即“Vis”。在计算机显示屏幕上利用功能库和开发工具库产生一个前面板(front panel);在后台则利用图形化编程语言编制用于控制前面板的程序。程序的前面板具有与传统仪器类似的界面,可接受用户的鼠标指令。一般来说,每一个VI都可以作为其他VI的调用对象,其功能类似于文本语言的子程序。习题八习题八

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《现代微机原理与接口》课件(研究生)第8章.ppt
    链接地址:https://www.163wenku.com/p-2146688.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库