基于PXI总线的虚拟数字示波器软件设计

2013-02-05 16:55:57来源: 21IC

测试总线在近几十年发展非常迅速:从早期的通用接口总线GPIB到近期的VXI、外围设备接口总线(Peripheral Component Interconnection,PCI)、PXI、IEEE1394、通用串行(Universal Serial Bus,USB)测试总线。其中PXI总线是最新一代的测试总线技术,是PCI总线在测试领域的扩展(PCI eXtensions for Instruments),于1997年被美国NI公司首次提出,并于次年被采用为工业标准。PXI总线可简单地认为是MicorosoftWindows、Compact PCI(CPCI)和VXI技术的综合:机械规范方面采用CPCI的核心技术,即欧式插卡机械机构和气密式针孔接头,特别适用于恶劣的工业环境;电气规范方面在保持了PCI/CPCI总线所有优点的前提下增加了专门的系统参考时钟、触发总线、星形触发总线和模块间的局部总线,以此来满足高精度的定时、同步与数据通信要求;软件规范方面也与PCI/CPCI一致,核心是Microsoft公司的Windows操作系统,所以PXI系统与PC兼容,方便选择很多现成的应用软件开发工具。PXI总线系统将PC机性能价格的优势、CPCI优越的机械性能和VXI易于系统集成化等优点集合了起来,所以是当今发展最快的总线技术。迄今为止,已经有美国NI等数十家公司推出PXI(CPCI)模块上千种。基于此,本文采用PXI总线,利用现有的PXI工控机及高速数据采集板,设计了基于PXI总线的虚拟数字存储示波器软件。

基于PXI总线的数字示波器硬件与软件结构

硬件结构
数字示波器硬件即通常说的数据采集板,其原理框图如图1所示(图中省略电源和时钟部分):双通道被测信号经过模拟信号调理通道送入高速模数转换器,所得数字数据先送入2个先入先出(First In First Out,FIFO)缓存再送给本地总现最后由接口芯片PCI9030送入PXI机箱中。硬件的控制和状态读取需要根据用户指令由相应的软件完成,送入PXI工控机的数据也要由软件进行处理,最后得到显示波形和测量结果。

图1 PXI数据采集板原理框图

软件构成
Windows系统为了保证系统的安全性、稳定性和可移植性,对系统底层操作采取了屏蔽的措施,利用设备驱动程序将硬件与用户隔开。所以,软件分为两部分:底层设备驱动程序、高层应用软件。设备驱动程序从广义上来讲是指直接操作硬件的一组函数,完成硬件控制和数据采集。驱动程序在装入后成为操作系统内核的一部分。高层应用软件可以认为是虚拟示波器用户态程序,将用户界面,即面板上各种开关、按钮等控件以及波形、测量数据结果显示区和数据采集、数据分析联系在一起。当用户在界面上发出一定的命令后,应用程序首先调用应用程序接口(Application Programming Interface,API)函数,相关的系统服务将调用内核模式的驱动程序实现API,将命令信息转换成数据采集板认识的数据格式,按照数据采集板的物理地址送到底层硬件。同时数据采集板采集到的数据和底层硬件的各种状态信息也通过API传送给应用程序做显示和控制用。

驱动程序开发

Windows驱动程序编制可以采用Windows设备驱动程序开发包(Device Drivers Kit,DDK),但需要程序员了解复杂的操作系统内核。简捷的方法是利用KRFTech公司的设备驱动程序开发工具WinDriver。WinDriver是主要用于编写针对ISA/PCI插卡和USB等硬件设备驱动程序的工具包。对于硬件的访问,应用程序从WinDriver用户模式库调用WinDriver的功能接口,再由这个功能调用WinDriver的内核模块,即WinDriver自身提供的的驱动程序WinDriver.vxd和WinDriver.sys去完成硬件的访问。

分析数据采集板,知道驱动程序要完成的基本功能包括设备初始化、对I/O和内存的读写、直接存储器存取(Direct Memory Access,DMA)以及中断等操作。首先利用WinDriver完成对硬件的诊断操作,获得数据采集板硬件参数,如端口地址范围、I/O方式、存储器地址、内存映射方式、中断号等。然后再根据硬件的这些参数生成一些源代码和框架函数,如:
SHBK_HANDLE SHBK_LocateAndOpenBoard(DWORD dwVendorID,DWORD dwDeviceID,BOOL
fUseInt)//定位并开启数据采集板;
void SHBK_EnableDisableInterrupts(SHBK_HANDLE hSHBK)//定义开启或终止中断;
DWORD SHBK_ReadPCIReg(SHBK_HANDLE hSHBK, DWORD dwReg)//读配置寄存器;
BYTE SHBK_ReadByte (SHBK_HANDLE hSHBK, SHBK_ADDR addrSpace, DWORD dwOffset)//读出某内存1字节内容,该内存地址为基地址加偏移量dwOffset;
void SHBK_WriteByte (SHBK_HANDLE hSHBK, SHBK_ADDR addrSpace, DWORD dwOffset, BYTE
data)//向内存写内容为data的1字节数据。

限于篇幅,只是举例给出了小部分函数,所有函数都未给出具体的实现代码。利用所有这些框架函数可以对硬件直接进行操作,为方便多个功能均要引用它们,将其封装在一个动态连接库(Down-Line Load,DLL)中,再根据实际的硬件设计进行调用,通过对内存和IO进行具体读写操作,编制对数据采集板硬件进行操作的功能函数,这些功能函数也被封装在此DLL中,供给高层应用软件调用。

[1] [2]

关键字:PXI总线  虚拟数字示波器  数据采集

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2013/0205/article_6811.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
PXI总线
虚拟数字示波器
数据采集

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved