一种基于PCI总线和DSP技术的虚拟仪器设计

发布者:梦中徐来最新更新时间:2010-03-03 来源: 今日电子关键字:PCI总线  DSP  虚拟仪器  FFT算法 手机看文章 扫描二维码
随时随地手机看文章

    传统的虚拟仪器由一块基于PCI总线的直接利用A/D和D/A芯片构成的数据采集板卡和相应的软件组成,但随着计算机网络技术的迅速发展,越来越多的数据需要由计算机处理、存储和传输,由于通用计算机本身的特点,它们通常不适于进行实时性要求很高的数字信号处理,因此这种虚拟仪器不能满足现实应用对数据实时处理能力、数据传输能力以及数据管理能力所提出的越来越高的要求。
与此同时,随着数字信号处理器(DSP)性价比的不断提高,其应用领域飞速扩展,从而使基于PCI总线和DSP技术的新型虚拟仪器应运而生。

系统的基本框架

    笔者设计的基于PCI总线和DSP技术的虚拟仪器的基本框架如图1所示。

    整个系统是基于模块化的设计理念来实现的,该系统的开发主要有以下几步:1)设计一块基于PCI总线的母板,该板上有自己定义的总线接插件,以及整个系统的逻辑控制单元和数据缓冲存储芯片;2)设计数据采集模块和数据输出模块;3)开发PCI母板的Windows驱动程序,使PC能正常识别该板卡并分配所需系统资源;4)开发系统下位机DSP数据采集模块的程序,实现对模拟信号的采集以及数据的FFT算法处理;5)开发系统上位机PC的控制软件,实现数据波形显示、端口配置、内存读写以及对仪器的控制功能。

图1 虚拟仪器系统的基本框架

系统的硬件设计

    由图1可见,本虚拟仪器系统首先要有一块基于PCI总线的母板,该板上有自定义的总线接插件,可以插接其他基于该总线的数据采集DSP子板,此外,该板上还有整个系统的逻辑控制单元以及数据缓冲存储芯片;其他各个功能模块都基于该扩展板来实现;各个模块之间数据的存储和传输可以通过双端口RAM来实现,我们选用Cypress公司8K×16b高速双口RAM芯片CY7C025V,因为它的时序与DSP时序相配,特别适用于DSP与PC之间大量数据的高速双向传送。

    1 PCI接口的实现

    在PCI总线适配卡的设计中,采用专用的PCI接口芯片来实现PCI接口,设计者不需要将精力投入到复杂的PCI接口功能设计和验证测试上。专用的接口芯片可以实现完整的PCI主控模块和目标接口功能,将复杂的PCI接口转换为简单的接口。在本设计中选用PLX公司通用接口芯片PCI9052,它包含读和写FIFO,以便将32bit、33MHz的PCI总线与总线宽度有可能比它窄或总线速度有可能比它慢的局部总线进行匹配。PCI9052有最大5个局部地址空间和4个片选支持,图2为PCI9052的信号接口模块图。

图2 PCI9052信号接口

    PCI分配资源的数据来源是通过外扩的EEPROM来实现的,根据PCI9052接口芯片的要求,选用Microchip公司支持三线串行接口的EEPROM。在电源上电期间,PCI的RST#信号复位PCI9052内部寄存器。而PCI9052也输出局部复位信号(LRESET#)并检查是否存在外部EEPROM,如果存在并且第一个16位字不是FFFFH,则PCI9052加载EEPROM中的数据到PCI9052的内部寄存器中;否则默认值被使用。PCI9052配置寄存器仅能由EEPROM或PCI主机处理器写。在EEPROM初始化期间,PCI9052用RETRY信号来响应PCI目标访问。图3给出了本设计中EEPROM(93CS46)和PCI9052的连接电路图。

图3 EEPROM和PCI9052的连接电路图

    EEPROM中配置的主要信息包括:设备识别号、供应商代号、四个局部总线空间的大小以及空间的基地址等。可以事先通过编程器将配置信息写入配置EEPROM中,也可在系统启动后用PLXMon对EEPROM进行操作。

    2 系统控制逻辑的实现

    由于CPLD器件掉电后可保存芯片内部程序,无须烦琐的重复烧写,因此本设计采用Altera公司的CPLD器件,作为PCI接口芯片及存储芯片的逻辑控制。考虑到需要使用局部地址/数据各16根线,控制信号线22根,还要为数据采集电路预留些I/O引脚,最后决定采用144脚TQFP封装的EPM3128。

    在本系统中,EPM3128的主要功能是实现PCI Local端的地址译码、DSP Local端对各个DRAM控制的地址译码、对板上功能选择开关的状态进行译码,从而实现对系统功能的配置以及对各芯片的控制信号进行逻辑译码。所有的译码工作都通过VHDL编程语言来实现。综合和编译工作是在Altera公司的QuartusII集成编译环境中完成的。源程序代码请参阅《今日电子》网站本文章的完整版。

    3 数据采集电路的实现

    数据采集电路是本系统的关键,数据采集电路设计的好坏将直接影响到本系统的性能。为了实现系统功能的可配置和可扩展性,数据采集模块设计成可配置的模式插接在总线接口母板上,实现对外部信号的数据采集。数据采集模块由高速16位adc(LTC1608)和高性能DSP芯片(TMS320C6713)构成,LTC1608的并行数字接口可方便地与包括TMS320C6713在内的多种DSP通信,并可连接3V或5V逻辑。

    由于对采集精度的高要求,在信号进入ADC之前,需要对模拟信号进行一系列的处理以保证信号的可靠性:模拟信号首先经过电压跟随运算放大器增加输入阻抗,再经过电压比例放大和一阶RC低通滤波,最后输入到ADC。

图4 输入信号处理电路原理图

图5 LTC1608 A/D芯片引脚连接电路图

    具体的信号处理电路如图4和图5所示。

系统软件设计

    正如图1所示,硬件设计完成后,要使整个系统工作还需要软件的支持,这些软件包括PCI设备驱动程序、数据处理算法程序和系统控制软件。

    1 设备驱动程序设计

    设备驱动程序不是单独存在的,而是相关操作系统内核的一部分,所以需要对操作系统有一定的了解。Windows 2000操作系统是32位的多任务非实时操作系统。对整个系统底层的操作和用户与硬件打交道的权力被屏蔽,必须通过操作系统统一管理设备驱动程序和其他内核访问来实现应用软件对硬件的访问。在设计和使用PCI设备时,经常要在软件中对系统资源进行访问,因此只有编制设备驱动程序才能实现对PCI总线设备的完全访问。

    应用程序对设备I/O进行Win32调用,这个调用由I/O系统服务接收。I/O管理器从这个请求构造一个合适的I/O请求包(IRP)。在最简单的情况下,I/O管理器只是把IRP传递给一个设备驱动程序,这个驱动程序与硬件打交道,并完成IRP的处理。I/O管理器把数据和结果返回给Win32和用户应用程序。而一个IRP由一个分层的设备驱动程序栈处理是很常见的。每个驱动程序把该请求划分成更简单的请求。最高层的驱动程序(如文件系统驱动程序)知道文件如何在磁盘上表示,但不知道如何得到数据的细节;中间层次的驱动程序进一步处理请求;最低层的驱动程序与硬件实际打交道。

    本设计选择的硬件驱动程序开发工具是Compuware公司提供的一个驱动程序集成开发包(DriverStudio)。利用其中的DriverWorks工具可以生成一个PCI总线驱动框架,然后在WDM中实现输入输出处理,可以用KIoRange类来实现。

    在驱动程序框架生成的过程中,我们可以通过向导声明驱动程序中将要使用的资源;通过调用KIoRange类的Initialize()函数,可以对资源进行初始化(映射PCI局部空间);应用层通过DeviceIoControl函数向驱动程序发命令来调用KIoRange的成员函数实现应用层对I/O空间的处理。开发PCI母板的windows驱动程序,就是使PC能正常识别该板卡并分配所需的系统资源。

    2 FFT算法的实现

    系统需要针对DSP数据采集模块,开发并实现对模拟信号的采集以及对数据进行FFT(快速傅立叶变换)算法处理的程序。

    作为一般的情况,设:x(n)和 X(k)都是复数,因为从实际计算过程看,实数和复数没有区别,唯一不同的是:实数的虚部为零,表达式简单些。而运算过程所有的计算都是对实数进行的,如果信号或频谱是复数,就把最后计算的结果再组合成为复数分量。FFT运算的基本单元是“蝶形单元”,其蝶形运算的基本形式如下式所示:

    所有蝶形单元的运算可统一表示为

               (1)

式(1)中,A和B是蝶形单元的输入,C和D是输出。同时将表示为

        (2)

式(1)可以表示为虚部和实部形式,带下标R的字符表示实部,带下标I的为虚部,即

     (3)

    根据算法原理和上面的说明,用C语言编制出一个按时间抽取的FFT算法程序,结构上分为几个部分:首先是码位的倒置,然后根据计算的点数确定蝶形运算的级数,接着是逐级进行蝶形运算,完成FFT运算。

    3 应用控制软件的设计

图6 控制软件功能模块框图

    整个应用控制软件的功能模块框图如图6所示。

    基于以上的控制功能模块图,选择使用VC++来实现本系统应用软件的人机界面以及对系统的控制功能。VC++的开发环境集编辑、编译、连接、调试、向导等多项功能于一体,并且提供了目前成为业界标准的MFC(Microsoft Application Foundation Classes)类库。

    我们开发的虚拟仪器系统PC端控制软件可实现数据波形显示、端口配置、内存读写以及对仪器的控制功能,其主界面如图7所示。

图7 程序主界面

结语

    本设计实现了基于DSP技术与PCI总线的数据采集处理卡,开发了虚拟式实时多通道FFT频谱分析仪的应用程序以及主机监控界面。通过在数据采集卡上集成DSP,使得该卡不但能实时不掉点地采集外界信号,而且能在卡上实现数字滤波、FFT频谱分析。

    整个系统经过综合调试和严格测试后,达到设计需求,业已投入实际使用。

关键字:PCI总线  DSP  虚拟仪器  FFT算法 引用地址:一种基于PCI总线和DSP技术的虚拟仪器设计

上一篇:基于DSP+CPLD的伺服控制卡的设计
下一篇:一种基于FPGA/DSP的灵巧干扰平台设计与实现

推荐阅读最新更新时间:2024-05-02 21:00

用TMS320 DSP和FPGA实现电能质量监测
内容摘要:提出用TMS320LF2407和FPGA实现电能监测的一种方案,阐述各模块的设计和实现方法,本方案中,FPGA用于采样16路交流信号并进行64次谐波分析;DSP和于电力参数的计算。为了提高其通用性,还用FPGA设计了与外界通信的并口、串口模块,并实现了同TMS320LF2407的并行和串行通信。 script language=javascript src="/a_dir_d/ads_250x250.js" /script   随着人们对电能质量要求的日益提高,如何保证电能质量就成为一个热门话题。电能质量监测的一项主要内容是谐波检测,即对多路模拟信号进行采集并进行谐波分析。本系统对16路50Hz模块信号
[嵌入式]
用TMS320 <font color='red'>DSP</font>和FPGA实现电能质量监测
DSP和FPGA在大尺寸激光数控加工系统中的运用
激光切割和雕刻以其精度高、视觉效果好等特性,被广泛运用于广告业和航模制造业。在大尺寸激光加工系统的开发过程中,加工速度与加工精度是首先要解决的问题。解决速度问题的一般方法是在电机每次运动前、后设置加、减速区,但这会使加工数据总量成倍增加。除此之外,庞大的数据计算量也需要一个专门的高性能处理器来实现。 FPGA(现场可编程门阵列)在并行信号处理方面具有极大的优势。本系统采用FPGA作为加工数据的执行器件。这种解决方案突出的特点是让运动控制的处理部分以独立的、硬件性方式展开,增加系统的性能和可靠性,从而有效地解决了用单纯的MCU或DSP系统处理的带宽限制,以及用户系统软件和运动控制软件混杂性的问题。 当今国内外市场上已经陆续出现类似的
[嵌入式]
<font color='red'>DSP</font>和FPGA在大尺寸激光数控加工系统中的运用
联发科收购基带DSP IP供应商Coresonic
联发科(MTK)今天上午召开董事会,会议通过了由联发科技并购瑞典数字信号处理 (Digital Signal Processor Cores) 技术领导厂商Coresonic AB(扩芯),不过具体收购数额并没有透露。联发科技希望通过此并购案更加强化无线通讯相关产品架构与技术,其合并效益将能使联发科技相关产品解决方案更具市场竞争优势。此并购案完成后,Coresonic AB 将成为联发科技位于欧洲的另一个全资子公司。 手机芯片市场的整合早就已经开始,新岸线公司市场营销副总裁杨宇欣曾经表示:“在最近的一年里,我们看到了多起企业并购,包括英特尔14亿美元收购英飞凌无线业务部门、高通32亿美元收购WiFi技术供应商Atheros以及n
[手机便携]
采用PCI9052设计PCI总线运动控制卡
引言 运动控制技术在工业、办公和家庭等自动化方面的应用日益广泛,控制形式也由以机械提供动力驱动的简单启停控制,发展到对其位置、速度、加速度、转矩等的精确控制。原先的“电机拖动”、“电气传动”已经发展到“运动控制”的新阶段。 运动控制芯片 PCI总线是一种先进的高性能32/64位地址数据复用局部总线,可以同时支持多组外围设备。实现PCI总线接口的方法主要有两种:一是采用CPLD或FPGA设计PCI接口,这种方法比较灵活,但是其难度较大,设计周期也较长。二是采用专用的PCI接口芯片,可以大大减少设计者的工作量,从而缩短开发周期,降低开发成本。本运动控制卡采用PLX公司的PCI9052接口芯片进行设计,该芯片符合PCI2.1规范。
[工业控制]
Inuitive选择CEVA-XM4智能视觉DSP用于下一代3D计算机视觉SoC
专注于智能互联设备的全球领先信号处理IP授权许可厂商CEVA公司宣布先进的深度感知、计算机视觉和图像处理SoC器件开发商Inuitive公司已经获得CEVA-XM4智能视觉DSP授权许可,并已部署于下一代AR/VR 和计算机视觉SoC器件NU4000。 Inuitive将利用CEVA-XM4来运行复杂的实时深度感知、特征跟踪、目标识别、深度学习和其它视觉相关算法,瞄准包括增强现实和虚拟现实头戴耳机、无人机、消费机器人、360度摄像机和深度传感器的一系列移动设备。此外,开发商和OEM厂商将能够在Inuitive SoC中充分利用CEVA-XM4的开放式可编程特性,经由软件增添具有差异化的特性和算法,包括能够通过CEVA 深度神经网
[物联网]
虚拟仪器技术助力柴油机系统故障诊断
  随着科学技术的发展,现在计算机已成为故障诊断设备中不可或缺的支撑环境,我们可以利用其丰富的软硬件资源提高数据采集的精度和数据的处理分析能力。传统仪器中的数据处理、结果显示等很多功能都可以由计算机软件来实现,只要辅以相应的传感器和数据采集设备,即可组成一套一般仪器所没有的特殊功能的故障诊断系统。这就运用了方兴未艾的虚拟仪器技术。   虚拟仪器(Virtual instrument)是计算机技术同仪器技术深层次结合产生的全新概念的仪器,是对传统仪器概念的重大突破,是仪器领域内的一次革命。虚拟仪器是继第一代仪器——模拟式仪表、第二代仪器——分立元件式仪表、第三代仪表——数字式仪表、第四代仪器——智能化仪器之后的新一代仪器。在NI公
[测试测量]
基于DSP的两相无刷直流电机转速控制系统
0 引 言 稀土永磁无刷直流电机采用高性能的稀土永磁材料和非接触换相技术,体积小,效率高,无电火花,工作可靠,同时又具有类似普通直流电动机的调速性能,广泛应用于航空航天、精密仪器和工业控制自动化等领域。无刷直流电机采用电子换相装置,没有机械电刷;采用永磁体转子,没有激磁损耗;发热的电枢绕组置于外围的定子上,散热性好,效率高,过载能力强,无换相火花,在高转速领域尤为适合,是高速电机的一个重点发展方向。 目前,在一些特殊领域,对电机体积、连线数目以及可靠性等方面有着严格要求,在这些场合,无位置传感器无刷直流电机(BLDCM)就成了理想的选择。课题利用DSP,CPLD等数字化设计技术构建了一个体积较小的高转速、高可靠性电机转速控
[工业控制]
基于<font color='red'>DSP</font>的两相无刷直流电机转速控制系统
基于DSP的数字示波器GUI的开发
随着嵌入式系统应用领域的不断扩大,系统复杂性也在不断提高。所以在嵌入式系统中实现用户图形化(GUI),已经成为大势所趋。在测量仪器中,图形化界面也是广泛采用,一种是嵌入操作系统,大多数的用户图形化界面(GUI)都是在操作系统(如OS、WinCE、Linix)的支持下, 调用系统的各种API函数实现的。这些操作系统为实现GUI提供了大量的库函数,也为编程人员提供了界面设计的良好平台。但是这种嵌入技术,对硬件要求高,相当于嵌入一台计算机,如利用WinCE就可以十分方便的设计出具有Windows风格的图形界面。另一种是,直接利用DSP技术,开发小型系统。这种系统精简,对硬件要求低,但功能相对单一。 本文这款数字示波器是普源精电(RIG
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved