一种基于PCI总线和DSP技术的虚拟仪器设计
时间:03-16
来源:嵌入式公社 作者:北京理工大学 刘永阳 蒋健 罗弘谞
点击:
传统的虚拟仪器由一块基于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。
与此同时,随着数字信号处理器(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。
- 用双端口RAM实现与PCI总线接口的数据通讯(05-06)
- 基于PCI总线和DSP芯片的图像处理平台的硬件设计(07-06)
- 基于DSP和PCI总线的通用数字信号处理系统(11-13)
- 基于Linux平台的天气雷达高速数据采集系统设计(03-13)
- 基于DSP与PC机的PCI总线高速数据传输 (07-08)
- 基于DSP的内嵌PCI总线的卫星信号仿真器设计方案(03-20)