网站地图    收藏本站    设为首页

上海市柳营路650弄36号302室
销售热线:021-56906880 56982876
图文传值:021-56982876
企业邮箱:dzyb@vip.sina.com

新闻资讯

当前位置:网站首页 -> 新型软件集成和新技艺在摄谱仪器仪表里的应用

新型软件集成和新技艺在摄谱仪器仪表里的应用 [2011/9/5]
1PCI接口的实现
  在PCI总线适配卡的设计中,采用专用的PCI接口来实现PCI接口,设计者不需要将精力投入到复杂的PCI接口功能设计和验证测试上。专用的接口芯片可以实现完整的PCI主控模块和目标接口功能,将复杂的PCI接口转换为简单的接口。在本设计中选用PLX公司通用接口芯片PCI9052,它包含读和写FIFO,以便将32bit、33MHz的PCI总线与总线宽度有可能比它窄或总线速度有可能比它慢的局部总线进行匹配。
  PCI9052有最大5个局部地址空间和4个片选支持,2为PCI9052的信号接口模块图。
  PCI分配资源的数据来源是通过外扩的EEPROM来实现的,根据PCI9052接口芯片的要求,选用Microchip公司支持三线串行接口的EEPROM.在电源上电期间,PCI的RST#信号复位PCI9052内部寄存器。而PCI9052也输出局部复位信号并检查是否存在外部EEPROM,如果存在并且第一个16位字不是FFFFH,则PCI9052加载EEPROM中的数据到PCI9052的内部寄存器中;否则默认值被使用。
  PCI9052配置寄存器仅能由EEPROM或PCI主机处理器写。液位变送器在EEPROM初始化期间,PCI9052用RETRY信号来响应PCI目标访问。给出了本设计中EEPROM和PCI9052的连接电路图。
  EEPROM中配置的主要信息包括:设备识别号、供应商代号、四个局部总线空间的大小以及空间的基地址等。可以事先通过编程器将配置信息写入配置EEPROM中,也可在系统启动后用PLXMon对EEPROM进行操作。
  2系统控制逻辑的实现
  由于CPLD器件掉电后可保存芯片内部程序,无须烦琐的重复烧写,因此本设计采用Altera公司的CPLD器件,作为PCI接口芯片及存储芯片的逻辑控制。考虑到需要使用局部地址/数据各16根线,控制信号线22根,还要为数据采集电路预留些I/O引脚,最后决定采用144脚TQFP封装的EPM3128.
  在本系统中,EPM3128的主要功能是实现PCILocal端的地址译码、DSPLocal端对各个DRAM控制的地址译码、对板上功能选择物位开关的状态进行译码,从而实现对系统功能的配置以及对各芯片的控制信号进行逻辑译码。所有的译码工作都通过VHDL编程语言来实现。综合和编译工作是在Altera公司的QuartusII集成编译环境中完成的。源程序代码请参阅《今日电子》网站本文章的完整版。
  3数据采集电路的实现
  数据采集电路是本系统的关键,数据采集电路设计的好坏将直接影响到本系统的性能。为了实现系统功能的可配置和可扩展性,数据采集模块设计成可配置的模式插接在总线接口母板上,实现对外部信号的数据采集。数据采集模块由高速16位ADC和高性能DSP芯片构成,电容式液位计LTC1608的并行数字接口可方便地与包括TMS320C6713在内的多种DSP通信,并可连接3V或5V逻辑。
  由于对采集精度的高要求,在信号进入ADC之前,需要对模拟信号进行一系列的处理以保证信号的可靠性:模拟信号首先经过电压跟随运算放大器增加输入阻抗,再经过电压比例放大和一阶RC低通滤波,最后输入到ADC.
  具体的信号处理电路如4和5所示。
  正如1所示,硬件设计完成后,要使整个系统工作还需要软件的支持,这些软件包括PCI设备驱动程序、数据处理算法程序和系统控制软件。
  1设备驱动程序设计
  设备驱动程序不是单独存在的,而是相关操作系统内核的一部分,所以需要对操作系统有一定的了解。Windows2000操作系统是32位的多任务非实时操作系统。对整个系统底层的操作和用户与硬件打交道的权力被屏蔽,必须通过操作系统统一管理设备驱动程序和其他内核访问来实现应用软件对硬件的访问。在设计和使用PCI设备时,经常要在软件中对系统资源进行访问,因此只有编制设备驱动程序才能实现对PCI总线设备的完全访问。
  应用程序对设备I/O进行Win32调用,这个调用由I/O系统服务接收。I/O管理器从这个请求构造一个合适的I/O请求包(IRP)。在最简单的情况下,I/O管理器只是把IRP传递给一个设备驱动程序,这个驱动程序与硬件打交道,并完成IRP的处理。I/O管理器把数据和结果返回给Win32和用户应用程序。而一个IRP由一个分层的设备驱动程序栈处理是很常见的。每个驱动程序把该请求划分成更简单的请求。最高层的驱动程序(如文件系统驱动程序)知道文件如何在磁盘上表示,但不知道如何得到数据的细节;中间层次的驱动程序进一步处理请求;最低层的驱动程序与硬件实际打交道。
  本设计选择的硬件驱动程序开发工具是Compuware公司提供的一个驱动程序集成开发包。液位计利用其中的DriverWorks工具可以生成一个PCI总线驱动框架,然后在WDM中实现输入输出处理,可以用KIoRange类来实现。
  在驱动程序框架生成的过程中,我们可以通过向导声明驱动程序中将要使用的资源;通过调用KIoRange类的Initialize函数,可以对资源进行初始化(映射PCI局部空间);应用层通过DeviceIoControl函数向驱动程序发命令来调用KIoRange的成员函数实现应用层对I/O空间的处理。开发PCI母板的Windows驱动程序,就是使PC能正常识别该板卡并分配所需的系统资源。
  2FFT算法的实现
  系统需要针对DSP数据采集模块,开发并实现对模拟信号的采集以及对数据进行FFT(快速傅立叶变换)算法处理的程序。
  作为一般的情况,设:X(n)和X(k)都是复数,因为从实际计算过程看,实数和复数没有区别,唯一不同的是:实数的虚部为零,表达式简单些。而运算过程所有的计算都是对实数进行的,如果信号或频谱是复数,就把最后计算的结果再组合成为复数分量。FFT运算的基本单元是“蝶形单元”,其蝶形运算的基本形式如下式所示:所有蝶形单元的运算可统一表示为(1)式(1)中,A和B是蝶形单元的输入,C和D是输出。同时将表示为(2)式(1)可以表示为虚部和实部形式,带下标R的字符表示实部,带下标I的为虚部,即
  (3)根据算法原理和上面的说明,用C语言编制出一个按时间抽取的FFT算法程序,结构上分为几个部分:首先是码位的倒置,然后根据计算的点数确定蝶形运算的级数,接着是逐级进行蝶形运算,完成FFT运算。
  3应用控制软件的设计
  整个应用控制软件的功能模块框图如6所示。
  基于以上的控制功能模块图,选择使用VC++来实现本系统应用软件的人机界面以及对系统的控制功能。VC++的开发环境集编辑、编译、连接、调试、向导等多项功能于一体,并且提供了目前成为业界标准的MFC类库。
  我们开发的虚拟仪器系统PC端控制软件可实现数据波形显示、端口配置、内存读写以及对仪器的控制功能,其主界面如7所示。
  结语
  本设计实现了基于DSP技术与PCI总线的数据采集处理卡,开发了虚拟式实时多通道FFT的应用程序以及主机监控界面。通过在数据采集卡上集成DSP,使得该卡不但能实时不掉点地采集外界信号,而且能在卡上实现数字滤波、FFT频谱分析。
  整个系统经过综合调试和严格测试后,达到设计需求,业已投入实际使用。
  EPC每个芯片引脚的测试通道反复预估,这样可以节约测试时间和成本。
  试验分析为了验证参数测量单元在负载为小电阻情况下的工作情况,笔者在常温环境下针对不同阻抗的待测单元,分别用无校准IC参数测试单元和校准后的参数测试单元进行测试比对,测试结果如表1所示:校准后的测量单元借助Kelvin技术在小电阻测量的优势,能够在低于50Ω的负载测量中,保持至少提升一个数量级的测量精度优势。而当电阻提高越多,精度优势就越不明显。