400 likes | 496 Views
第二讲 以软件定义的模块化仪器系统. 回顾 : 仪器系统的技术发展. 真空管技术. 晶体管技术 ( 集成电路 ). 以软件为中心 的自定义系统. 1920. 1965. 2010. 以软件为中心的发展趋势. 原始数据. 用户 自定义 功能. 模块化仪器 / 分立仪器. PC 处理器 软件. 总线. 信号. 配置. 软件是 ( 合成仪器 ) 测试系统的核心 … ,软件的任务就是去定义和控制硬件 …. —— Frost & Sullivan 2006 全球合成仪器测试设备报告. 模块化 I/O 架构. 可替换、升级、自定义. 原始数据.
E N D
回顾: 仪器系统的技术发展 真空管技术 晶体管技术 (集成电路) 以软件为中心 的自定义系统 1920 1965 2010
以软件为中心的发展趋势 原始数据 用户自定义功能 模块化仪器 /分立仪器 PC处理器 软件 总线 信号 配置 软件是(合成仪器)测试系统的核心…,软件的任务就是去定义和控制硬件… ——Frost & Sullivan 2006全球合成仪器测试设备报告
模块化I/O架构 可替换、升级、自定义 原始数据 用户自定义功能 模块化I/O PC处理器 软件 总线 信号 配置 虚拟仪器——软件定义的模块化硬件架构是英国国防部未来测试系统核心的必备技术 ——Marcus Ransom上校, 英国国防部
以软件定义的模块化仪器系统 自定义数据处理、分析、显示、共享等 软件 传输原始数据; 控制模块化仪器I/O之间的定时与同步 数据总线与定时同步 采集模拟/数字信号 … 模块化I/O 模块化I/O 模块化I/O 模块化I/O 模块化I/O
以软件定义的模块化仪器系统 使系统级的设计和自定义成为可能 通过软件开发所要实现的自定义系统功能 软件 紧密集成不同的硬件模块 数据总线与定时同步 通常是现成的模块化硬件,可直接从厂商购买;也可自行开发特殊模块 … 模块化I/O 模块化I/O 模块化I/O 模块化I/O 模块化I/O
以软件定义的模块化仪器系统 使系统具有更好的长期可维护性 可通过软件开发随时增添更多功能 选择标准化的总线技术可以确保不同厂商模块之间的互操作性,并且保证系统所采用的技术体系具有长生命周期 软件 数据总线与定时同步 模块化硬件架构使系统升级和维护成本更低,也更易于进行扩展 … 模块化I/O 模块化I/O 模块化I/O 模块化I/O 模块化I/O
以软件定义的模块化仪器系统 便于利用最新技术 通过高效的软件开发工具可以显著降低利用最新技术的复杂度 软件 基于PC的标准总线技术随着PC技术的演进而不断增强性能,同时可以保持后向兼容 数据总线与定时同步 模块化架构便于在短时间内集成最新技术 … 模块化I/O 模块化I/O 模块化I/O 模块化I/O 模块化I/O
以基于PXI总线的模块化系统为例 PXI: PCI eXtension for Instrumentation 集成高性能CPU的系统控制器可运行各种软件程序;可通过编程自定义系统功能 集成高速数据传输总线及定时同步总线的机箱背板 模块化架构可以根据需要选择合适的I/O模块,并且便于系统维护和升级
PXI机箱背板 由第2槽 (定时槽位) 发出的星型触发总线, 通过等长度路由设计到达其他各槽, 使各槽位之间触发信号偏差小于1ns 机箱背板上集成了一个10MHz的专用系统参考时钟, 为各槽位提供精确的定时参考信号 控制器槽位 数据总线 8条TTL传输线组成的触发总线, 允许系统中任意模块都可产生触发信号
PXI模块与机箱背板的连接 PXI增加了J2接口部分,主要是PXI所特有的定时和同步触发总线 PXI 和 CompactPCI 的J1接口是一样的, 主要是PCI数据总线
PXI模块化仪器不断提升的性能指标 NI PXI-4071 7½-digit FlexDMM 业界最快、最精确的数字万用表 NI PXI-5922, 24-bit, 15 MS/s 业界最高分辨率数字化仪 28 26 • Agilent N6030A, 15-bit, 1.25GS/s • 业界最高更新速率的PXI AWG 24 22 20 分辨率 (Bits) 18 16 14 • PhaseMatrix PXI-1420 26.5GHz • 业界最高频PXI下变频器 12 10 8 6 4 1 10 100 1K 10K 100K 1M 10M 100M 1G 10G 100G • NI PXIe-5186 8-bit, 12.5GS/s • 业界最高性能PXI数字化仪 采样率 (S/s) 传统台式仪器 1997 2004 2005 2010 2011
众多主流仪器厂商的支持 PXI系统联盟 (PXISA) 成立于1998年, 目前有70多家会员厂商
基于PXI平台的模块种类 用于自动化测试与控制的模块化I/O 模拟输入/ 输出 数字输入/ 输出 计数器/ 定时器 带有FPGA的可重配置I/O 机器视觉 运动控制 信号调理 温度/ 应变/ 压力/ 加速度 LVDT/RVDT . . . 示波器/ 数字化仪 函数发生器/ 任意波形发生器 动态信号分析仪 高速数字I/O 数字万用表/ LCR表 开关 射频信号发生器 矢量信号发生器 矢量信号分析仪 矢量网络分析仪 可编程电源/ 源测量单元 . . . 总线接口 以太网, USB, 1394 SATA, ATA/IDE, SCSI GPIB CAN/ LIN/ FlexRay DeviceNet RS-232, RS-485 VXI/VME 边界扫描/ JTAG MIL-STD-1553, ARINC PCMCIA/ CardBus Profibus . . . 其他 IRIG-B, GPS, 1588同步 磁盘阵列接口 反射内存 光纤传感器接口 故障注入模块 电源仿真器 HDMI解码 . . .
PXI的广泛应用 数据采集、自动化测试、控制… 现场数据采集系统 实验室自动化验证测试 生产线测试应用 工业现场控制
通过PXI等模块化仪器平台集成最新技术 …… Multicore More Gen2/Gen3 PCI Express Data Converter 结合高效的软件工具可进一步降低使用这些新技术的复杂度 FPGA Cloud Computing Virtualization PXI 具体将在《虚拟仪器技术的最新发展》专题深入介绍
进一步发展: 集成PCI Express技术 • 将PCI Express总线融合到PXI中, 形成PXI Express(PXIe) • 进一步显著扩展传输总线带宽 • 基于差分串行的PCI Express总线,实现高达2GB/s每槽专属带宽 • 硬件接口仍可兼容大部分原有PXI模块 • 软件完全兼容 • PXI Express的超高带宽对于射频/宽带中频、图像采集、高速并行数字I/O等应用具有重要意义 具体将在《虚拟仪器技术的最新发展》专题深入介绍
对于模块化平台的软件编程 测试管理软件 • 模块化平台的软件层次 测控系统开发软件环境 如TestStand等 驱动软件 软件 如LabVIEW等 处理总线平台 如PCI / PXI / USB等 如NI-DAQmx等 模块化I/O 各种模块化仪器
模块化硬件驱动 • 驱动的重要性:“承上启下,连接软硬” • 一般由模块化仪器厂商提供 • 提供若干API (应用程序接口),可供应用开发环境软件调用 • 通常提供C/C++、LabVIEW及VB下的API接口,供使用相关开发语言的开发者调用 • 功能性 • 同样的硬件通过不同的驱动软件可“暴露”不同程度的开放功能给用户 • 好的驱动应该尽可能使用户能访问到较多的硬件功能,具有更高灵活性 • 易用性 • 除了提供应用程序接口外,好的驱动程序还应提供硬件诊断、调试、维护管理等功能,从而进一步方便开发者的使用
多种总线和平台共存 • 许多实际的测控系统内都存在多种仪器总线 • 由历史发展和特殊的具体应用所决定 GPIB: 分立仪器的常用接口; 特殊用途的仪器 Ethernet/LAN/LXI: 分布式/远程系统 • PXI/CompactPCI • 最高带宽; 最低延时 • 集成的同步功能 • 集成多种总线接口 USB: 即插即用 VXI: 较早的模块化平台, 需要继续维护现有系统
常见总线的带宽和延时比较 PCI/PXI (Express) 具有最佳的传输带宽和延时特性,因此最适合作为混合总线系统的核心 (不会成为数据传输的瓶颈)
混合总线测控系统举例 软件 通过软件整合混合总线应用,降低复杂性 445.5 mm x 177 mm x 434.8 mm PXI 选择具有高吞吐量、低延时的PXI作为混合测试系统的核心 1个嵌入式PC 1个定时控制设备 1个100 MS/s, 14-bit 的数字化仪(2通道) 1个7 ½ 位的DMM 1个100 M 高速数字I/O 2个100 MS/s, 16-bit的任意波形发生器(共4通道) 1个大电流通用继电器开关 1个500 MHz多路复用器矩阵 1个Ultra2 SCSI接口 1个1 MS/s, 12-bit模拟输出(8通道) 1个GPIB控制器和千兆以太网接口 2个声音和振动分析设备(共16通道) 1个6.6 GHzRF下变频器 1个IF数字化仪 1个空槽用于扩展 基于GPIB/USB/LXI/串行总线以及用于VXI的MXI总线整合其他仪器平台 (通过PXI控制器上的接口及其他专用接口模块连接)
问题 • 在实际的混合总线测控系统中,除了基于PXI、PCI、VXI等平台的模块化仪器之外,还往往需要对基于其他总线的台式仪器进行控制和通信 • 总线从硬件上保障了通信的进行,软件方面如何实施?
仪器控制 (Instrument Control) • 仪器控制 • 基于PC技术的控制器通过仪器总线连接分立仪器,对分立仪器参数进行配置和控制,并获取分立仪器的测量数据的过程 • 基于PC技术的控制器: 如个人电脑、服务器、PXI控制器等 • 仪器总线: GPIB、串口、USB、LAN等 • 涉及的关键技术 • 总线技术 (总线的电气连接定义) • 软件驱动 • 概念说明 • 其实通过PCI / PXI / VXI 等总线对模块化仪器进行控制和数据操作也属于仪器控制,而且软件层次也是类似的,只不过往往这些模块化仪器已提供完善的驱动,使开发者不必关心底层的仪器控制和通信技术
仪器控制的软件层次 开发软件环境 如LabVIEW等 仪器驱动程序 针对特定仪器,如Agilent 34401A驱动 VISA 都属于 驱动层 对不同接口的抽象层 接口硬件驱动 如488.2驱动、串口驱动等 软件开发环境其实可以直接通过各种接口硬件驱动来与分立仪器通信,但是VISA可以使该过程简化;而如果针对某一特定仪器已经有了专用的仪器驱动程序,则可进一步简化仪器控制的过程
VISA • 虚拟仪器软件架构 (Virtual Instrument Software Architecture) • 可通过高层次的API调用底层驱动 • 可以控制基于GPIB、串口、USB、VXI以及其他总线的仪器,针对不同的仪器选择所调用的底层驱动(如串口驱动或GPIB驱动),使上层用户不必关心,简化了仪器控制
SCPI —— 与仪器“交谈”时的“语言” • GPIB、串口等接口总线和接口驱动、VISA等软件层建立了通信链路 • 相当于电话线 • 具体“通话”时传递信息的语言——SCPI • Standard Commands for Programmable Instruments • 本质上就是一些命令字符集,由一些主流仪器厂商在1990年定义,可查询具体仪器手册查询所支持的控制字符 • 一些SCPI命令举例 • *IDN? 查询设备ID号 • *RST 设备reset • *TST? 自检 • MEAS? 读取测量结果
仪器驱动程序 • 针对某一特定仪器提供的一组API函数,可供应用开发者直接在应用开发软件环境中调用 • 用户不需要通过SCPI与仪器打交道,也不需要学习底层硬件接口编程控制甚至不需要学习VISA编程 • 使用更加直观,进一步简化了仪器控制操作 • 模块化仪器厂商对模块化仪器所提供的驱动API也属于仪器驱动程序 • 可以访问ni.com/idnet,免费获取9,000多种不同厂商的仪器驱动程序
IVI——Interchangeable Virtual Instrumentation • 也是一种仪器驱动软件层技术:“可互换虚拟仪器” • 仍然基于VISA技术,由国际组织制定规范 • 将具有相似功能的仪器归为一类抽象出其特征,进而开发出针对这一类仪器的驱动 • 针对具体仪器的仪器驱动程序: 针对某一仪器, 如HP34401A • IVI驱动: 针对某一类仪器, 如数字万用表, 示波器… • 优缺点 • 更加灵活 • 安装、配置、修改相对较复杂
混合总线的虚拟仪器系统架构总结 测试系统管理软件 测控系统开发软件环境 模块化仪器 驱动 IVI 或 VISA+底层接口驱动 现成 仪器 驱动 内部仪器总线 分立式仪器总线 模块化仪器 分立式仪器
本课程对应学习重点 测试系统管理软件 仅要求有所了解 以LabVIEW学习为主,是课程重点 测控系统开发软件环境 模块化仪器 驱动 IVI 或 VISA+底层接口驱动 现成 仪器 驱动 主要使用DAQmx驱动 不作为学习重点,今后工作中如有需要可自学,较容易贯通 使用方法与模块化仪器驱动基本一样 本课程使用基于USB总线的NI ELVIS/myDAQ,虽然是外部总线,不过可看做基于USB总线的模块化仪器,在编程使用方面,与基于其他总线的模块化仪器是完全一样的 内部仪器总线 分立式仪器总线 模块化仪器 分立式仪器
系统开发软件环境 常见的开发环境 • NI LabVIEW • 直观的图形化开发编程环境,有时LabVIEW语言也叫G语言 • 内置丰富的测控相关控件和处理函数 • 本课程学习的主要语言
应用开发环境LabVIEW 提供大量现成的符合测控系统风格的前面板控件,简化界面设计与数据表达 直观的数据流编程方式,符合工程思维方式,并且无需学习文本编程语法规则,容易上手
LabVIEW与硬件的无缝连接 通过VISA进行仪器控制 通过IVI控制仪器 模块化仪器 通过Plug&Play仪器驱动 进行仪器控制
PXI Systems LabVIEW与硬件的无缝连接 (续) 代码可发布到不同的执行对象,包括嵌入式控制器、FPGA等 LabVIEW MPU/MCU LabVIEW FPGA LabVIEW `` Real-Time LabVIEW Desktop Custom Design Personal Computers CompactRIO Single-Board RIO
LabVIEW集成的诸多功能 • 基于配置的助手工具简化开发 • 多种模块和工具包加速应用开发 • 内置超过1,000种信号处理与分析函数 • 近10种射频与无线协议工具包 • 机器视觉、运动控制 • 报表生成, 数据库连接 • 更多… • 针对多核处理器的优化 • 大型项目开发 • 软件配置管理 • 源代码控制
应用开发环境(续) 其他常见的一些开发环境 • NI LabWindows/CVI • 基于标准C的虚拟仪器开发环境 • 同样集成了测控相关的控件和函数,相比单纯的C/C++开发环境可简化开发过程 • Microsoft Visual Studio • 支持VB.net、C#等基于.NET的开发语言 • 进一步结合NI Measurement Studio可简化测控系统的开发
测试系统管理软件 系统管理软件提供了测试系统的软件框架,并且将共用的一些功能抽象出来提供现成的功能,从而简化测试系统软件框架的搭建,并确保软件架构的稳健性;此外,一些系统管理软件还可以对测试序列进行并行优化,从而优化硬件资源的使用效率 系统管理软件 测试结果报告 测试参数 测试序列引擎 处理模型 操作员界面 测试组件1 测试组件2 测试组件3 测试开发软件编写的具体测试程序 (可能由不同开发环境编写而成) 测试程序 测试程序 测试程序 驱动 驱动 驱动 I/O I/O I/O
总结与后续学习 • 基于LabVIEW进行虚拟仪器系统开发 • 今天课堂重点介绍了基于PXI总线的模块化仪器以及分立式仪器的控制等内容;由于教学条件限制,后续虚拟仪器实验及练习所使用的硬件平台主要是基于USB总线的NI ELVIS和NI myDAQ • 操作使用和软件编程基本是一样的,如今后实际工作中应用基于PCI/PXI或其他总线的硬件设备,应能够很快上手 • 课后准备: • 安装LabVIEW学生版软件, 建议结合参考书熟悉LabVIEW的编程开发环境