专利名称:基于fpga和usb总线的高速数据采集与传输方法
技术领域:
本发明涉及一种新型的基于FPGA和USB2.0总线的高速数据采集与传输方法 与系统。
二背景技术:
数据采集作为获取信息的基本手段,已经广泛应用于各个领域。现在常用的数 据采集方式主要是基于ISA、 PCI的插卡式数据采集卡,这些数据采集卡存在以下缺 陷安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差; 在一些电磁干扰强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。同 时,现在工程上对数据采集的速度与精度要求越来越高,传统的微控制器与接口总线 已经不能满足这一要求。
三
发明内容
本发明的目的是提供一种基于FPGA和USB总线(串行总线)的高速数据采 集与传输系统,充分利用FPGA的强大硬件功能,完成系统中数据同步、缓存控制和 USB传输控制,构成一个片上系统使得数据采集系统的使用、安装更为方便灵活,具 有更快的采集、传输速率,而且支持热插拔,使用方便。
本发明的目的是这样实现的基于FPGA和USB总线的高速数据采集与传输方 法,在模数转换模块、FPGA模块、缓存模块和USB传输模块共四个模块的基础上 向上位PC计算机进行数据采集与传输
1)模数转换模块实现将输入的待采集信号转换为数字信号的功能。模数转换模 块接受外部输入的待采集模拟信号和来自FPGA模块的采样时钟输入信号,模数转换 模块将转换后的数字信号数据输出给FPGA模块。2) FPGA模块完成将所述数字信 号数据缓存到片外的DDR SDRAM的任务,并通过构建以FPGA模块的处理器为核 心的片上嵌入式系统与USB模块协同工作将数据转移到PC机上。FPGA模块接受来 自模数转换模块的数字信号数据,通过FPGA内建的异步数据FIFO和DDR控制器 将数据缓存到缓存模块内,缓存模块是片外的DDR SDRAM存储器,
3)缓存模块用于缓存模数转换模块输出的数字信号数据。缓存模块是(由两 片32MB的DDR SDRAM存储器)构成的乒乓存储结构,FPGA模块内部的DDR控 制器部分负责对该存储器件的读写操作,将数字信号数据暂存于缓存模块。缓存模块 内兵乓存储结构单片存储器的数据存满后,触发FPGA模块的处理器为核心的片上嵌 入式系统控制器的程序(PowerPC405内的程序)将缓存模块内数据转移到USB控制 器的内部RAM中。
4) USB传输模块最终将存储于缓存模块中的数字信号数据传输到PC机。USB 传输模块响应主机发出的USB传输命令,与PowerPC405协同工作,将采集到的数据 传输到主机。
基于FPGA和USB总线的高速数据采集与传输系统,系统由模数转换模块,FPGA模块,缓存模块和USB传输模块共四个模块组成;FPGA模块中的数字时钟管 理单元DCM连接模数转换模块的采样控制端,模数转换模块输出连接FPGA的异步数 据口 FIFO, FPGA的DDR控制器连接缓存模块的输出;由FPGA模块2中的DCM1 、 异步数据FIFO, DDR控制器和缓存模块3完成数据采集;GPIO控制器7接USB传 输模块4的硬件复位端;由FPGA模块2中的DCM2、 GPIO控制器7,外设控制器 EPC、 PowerPC405处理器11、 DDR控制器12构成的片上嵌入式系统与USB传输模 块4共同完成数据传输功能。系统中大部分起控制、辅助作用的硬件电路通过对FPGA 模块的逻辑编程实现。模数转换模块1的采样时钟由FPGA模块的DCM1提供,FPGA 模块提供的采样时钟经过模数转换模块1中的时钟输入电路5输入到ADC的时钟输 入端。USB传输模块4的硬件复位、固件下载和程序启动通过FPGA模块2中的 DCM2、 GPIO控制器7、外设控制器EPC、 PowerPC405、 DDR控制器构成的片上嵌 入式系统。
本发明的有益效果是
1) ,采用通过对FPGA的配置来提供系统采样时钟的方法,降低了采样时钟产 生电路对数据采集系统的干扰,提高了系统的稳定性,且使得采样时钟的改变变得方 便,灵活,可根据应用中实际待采样信号的特征方便灵活地更改系统的采样时钟。
2) , FPGA引脚配置的灵活多变使得系统中采样精度的变化变得方便,在模数转 化模块使用具有新的转换精度的ADC部件之后只需对FPGA的引脚做相应的扩展配 置即可适应新的ADC采样输出,使得系统具有很好的可扩展性。
3) , FPGA的应用使得系统中数据同步部件,缓存控制部件,USB传输控制部 件集中在一片FPGA内部实现,构成一个片上系统,简化了数据采集与传输系统的硬 件设计,提高了系统的可靠性,降低了系统成本。
4) , USB2.0总线使得系统具有更快的传输速率(器件合适,传输速度可以达到 200M/s 以上),且支持热插拔,方便使用。
四
图l为本发明的系统结构框图2为模数转换模块的时钟输入电路; 图3为FPGA内部模块结构框图; 图4为USB接口功能程序流程图; 图5为PowerPC405程序流程图; 图6为control位的测试并置位操作;
五、 具体实施方案
如图所示,具体而言,数据采集和缓存由FPGA模块2中的DCM1和异步数据 FIFO, DDR控制器12和缓存模块3共同完成。数据传输功能由FPGA模块2中的 DCM2、 GPIO控制器7,外设控制器EPC、 PowerPC405处理器11 、 DDR控制器12 构成的片上嵌入式系统与USB传输模块4共同完成。系统中大部分起控制、辅助作 用的硬件电路通过对FPGA模块的逻辑编程实现。模数转换模块1的采样时钟由FPGA模块的DCM1提供,FPGA模块提供的采样时钟经过模数转换模块1中的时钟输入电 路5输入到ADC的时钟输入端。USB传输模块4的硬件复位、固件下载和程序启动 通过FPGA模块2中的DCM2、 GPIO控制器7、外设控制器EPC、 PowerPC405、 DDR 控制器构成的片上嵌入式系统完成。
图1所示,基于FPGA和USB2.0总线的高速数据采集与传输系统包括模数转 换模块l、 FPGA模块2、缓存模块3、 USB传输模块4。其中
1) ,模数转换模块接受外部输入的待采样模拟信号,并在FPGA模块提供的采 样时钟的驱动下将输入的模拟信号转换为数字信号。模数转换模块的时钟输入电路如 图2所示,FPGA模块提供的系统采样时钟由SMA接口输入,经过一49欧姆的匹配 电阻R4和隔直电容C3后输入进入到高速反相器74VHC04的输入端Al ,经两级反 向后得到系统的采样时钟CLK。电位器R1和电阻R2, R3构成一分压电路,提供输 入到74VHC04引脚Al的直流偏置,此直流电压用来调整采样时钟CLK的占空比。
2) ,通过对FPGA芯片的逻辑开发,对FPGA芯片内部的逻辑资源进行配置, 得到FPGA内部结构模块框图如图3所示。
包括两个数字时钟管理单元DCM1和DCM2,数字时钟管理单元对FPGA的时 钟资源进行管理分配,提供系统所需要的大部分时钟资源。其中DCM1输出两路时 钟CLK1和CLK2, CLK1通过FPGA内部的时钟缓冲器一分为二分别供前端模数转 换模块的采样时钟和FPGA内异步数据FIFO的写数据时钟;CLK2也一分为二分别 作为异步数据FIFO的读数据时钟和DDR控制器的主操作时钟。DCM2输出的三路 时钟CLK3,CLK4和CLK5分别作为PowerPC405处理器的主时钟和外设控制器EPC 的操作时钟和GPIO控制器的时钟。
由于模数转换模块的采样时钟一般不等于DDR控制器的操作时钟,模数转换模 块输出的数据对于DDR控制器来说是一个异步时钟信号。故模数转换模块输出的数 据先通过一个异步数据FIFO来进行同步。异步数据FIFO的读写时钟频率分别为DDR 控制器的主时钟频率和模数模块的采样时钟频率。当数据FIFO中缓存的数据达到一 定数量将触发FIFO的将满信号,此信启动FIFO的读使能信号,将数据输出至DDR 控制器。
DDR控制器数的据输入端与FIFO的数据输出端相连,当FIFO数据输出端有数 据输出时,DDR控制器负责将数据缓存至片外的DDR SDRAM存储器内。
以PowerPC405处理器为核心,包括DCM2 , DDR控制器,GPIO控制器和外 设控制器EPC在FPGA内构建了一个片上嵌入式系统。外设控制器EPC负责管理通 过HPI接口方式连接到该系统上的USB控制器;GPIO控制器的信号输入引脚连接至 USB控制器的硬件复位引脚,负责对USB控制器HPI连接方式的硬件复位;DDR控 制器负责响应PowerPC405的读内存命令,对片外缓存DDR SDRAM进行读操作; DCM2负责该嵌入式系统的时钟分配。PowerPC405上的程序流程图如图5所示。 PowerPC405往GPIO控制器的寄存器写入控制字,GPIO响应控制命令,在相应的输 出引脚输出USB芯片的复位控制信号,完成USB控制器的HPI连接方式的硬件复位;此后PowerPC405读入USB固件的配置文件,并通过HPI接口将USB固件下载到 USB片内内存中,完成USB固件的下载;接下来PowerPC405通过HPI接口接连发 送USB软复位命令和程序跳转命令,USB固件开始运行;在这之后PowerPC405进 入填充USB传输数据结构阶段,不断将缓存模块内的数据传输到USB片内RAM中。 3), USB模块主要负责响应主机的传输命令完成数据到主机的传输任务。由于 USB的硬件复位以及固件的下载等工作已经由FPGA模块完成,USB模块的任务就 只剩下响应主机传输命令,USB接口的程序流程图如图4所示。其中USB数据帧结 构是USB芯片厂商定义的一个固定的数据结构,其数据部分的内容由流程图中的"初 始化数据缓存区"中的数据缓存区填充,该数据缓存为程序中定义在USB片内的一 块数据结构,由USB控制器和PowerPC405共享,PowerPC405对该数据结构主要进 行写操作,不断将暂存在片外缓存模块中的数据写入该数据结构,USB控制器读取该 数据结构的内容,并将其发送给主机。为了有效控制PowerPC405和USB芯片对该数 据结构的操作,在该数据结构中定义了一个控制位control,引入了测试并置位操作 TAS, PowerPC405和USB芯片根据control的状态执行相应的读写操作,并对control 的值进行修改。对control位的TAS操作如图6所示。
权利要求
1,基于FPGA和USB总线的高速数据采集与传输方法,其特征是在模数转换模块、FPGA模块、缓存模块和USB传输模块共四个模块的基础上向上位PC计算机进行数据采集与传输1)模数转换模块实现将输入的待采集信号转换为数字信号的功能,模数转换模块接受外部输入的待采集模拟信号和来自FPGA模块的采样时钟输入信号,模数转换模块将转换后的数字信号数据输出给FPGA模;2)FPGA模块完成将所述数字信号数据缓存到片外的DDR SDRAM的任务,并通过构建以FPGA模块的处理器为核心的片上嵌入式系统与USB模块协同工作将数据转移到PC机上;FPGA模块接受来自模数转换模块的数字信号数据,通过FPGA内建的异步数据FIFO和DDR控制器将数据缓存到缓存模块内,缓存模块是片外的DDR SDRAM存储器,3)缓存模块用于缓存模数转换模块输出的数字信号数据;缓存模块是由两片32MB的DDR SDRAM存储器构成的乒乓存储结构,FPGA模块内部的DDR控制器部分负责对该存储器件的读写操作,将数字信号数据暂存于缓存模块;缓存模块内乒乓存储结构单片存储器的数据存满后,触发FPGA模块的处理器为核心的片上嵌入式系统控制器的程序将缓存模块内数据转移到USB控制器的内部RAM中;4)USB传输模块最终将存储于缓存模块中的数字信号数据传输到PC机USB传输模块响应主机发出的USB传输命令,与FPGA模块的处理器协同工作,将采集到的数据传输到主机。
2、基于FPGA和USB总线的高速数据采集与传输系统,系统由模数转换模块, FPGA模块,缓存模块和USB传输模块共四个模块组成;FPGA模块中的数字时钟管 理单元DCM连接模数转换模块的采样控制端,模数转换模块输出连接FPGA的异步数 据口 FIFO, FPGA的DDR控制器连接缓存模块的输出;由FPGA模块2中的DCM1 、 异步数据FIFO, DDR控制器和缓存模块3完成数据釆集;GPIO控制器7接USB传 输模块4的硬件复位端;由FPGA模块2中的DCM2、 GPIO控制器7,外设控制器 EPC、 PowerPC405处理器11、 DDR控制器12构成的片上嵌入式系统与USB传输模 块4共同完成数据传输功能。系统中大部分起控制、辅助作用的硬件电路通过对FPGA 模块的逻辑编程实现。模数转换模块1的采样时钟由FPGA模块的DCM1提供,FPGA 模块提供的采样时钟经过模数转换模块1中的时钟输入电路5输入到ADC的时钟输 入端。USB传输模块4的硬件复位、固件下载和程序启动通过FPGA模块2中的 DCM2、 GPIO控制器7、外设控制器EPC、 PowerPC405、 DDR控制器构成的片上嵌 入式系统。基于FPGA和USB2.0总线的高速数据釆集与传输系统,包括模数转换模块(1 )、 FPGA模块(2)、缓存模块(3)、 USB传输模块(4),其特征在于1),数据采集与缓存功能由模数转换模块(1 ), FPGA模块(2)中的DCM1 (8),异步数据FIFO (9), DDR控制器(12)和缓存模块(3)共同完成。2),数据传输功能由FPGA模块(2)中的DCM2 (6)、 GPIO控制器(7),外设控制器EPC (10)、 PowerPC405处理器(11)、 DDR控制器(12)构成的片上嵌入式系统与USB传输模块(4)共同完成。
3,根据权利要求1所述的基于FPGA和USB2.0总线的高速数据采集与传输系统,其特征在于系统中大部分起控制、辅助作用的硬件电路通过对FPGA模块(2)的逻辑编程实现。
4,根据权利要求1所述的基于FPGA和USB2.0总线的高速数据采集与传输系 统,其特征在于模数转换模块(1)的采样时钟由FPGA模块(2)的DCM1 (8) 提供,FPGA模块(2)提供的采样时钟经过模数转换模块(1)中的时钟输入电路(5) 输入到ADC的时钟输入端。
5,根据权利要求1所述的基于FPGA和USB2.0总线的高速数据采集与传输系 统,其特征在于USB传输模块(4)的硬件复位、固件下载和程序启动通过FPGA 模块(2)中的DCM2 (6)、 GPIO控制器(7)、外设控制器EPC (10)、 PowerPC405 (11)、 DDR控制器(12)构成的片上嵌入式系统完成。
全文摘要
基于FPGA和USB总线的高速数据采集与传输方法,在模数转换模块、FPGA模块、缓存模块和USB传输模块共四个模块的基础上向上位PC计算机进行数据采集与传输1)模数转换模块实现将输入的待采集信号转换为数字信号的功能,模数转换模块接受外部输入的待采集模拟信号和来自FPGA模块的采样时钟输入信号,模数转换模块将转换后的数字信号数据输出给FPGA模块;2)FPGA模块完成将所述数字信号数据缓存到片外的DDR SDRAM的任务;3)缓存模块用于缓存模数转换模块输出的数字信号数据;4)USB传输模块将存储于缓存模块中的数字信号数据与FPGA模块的处理器协同工作,将数据传输到主机。
文档编号G06F13/38GK101408902SQ200810156589
公开日2009年4月15日 申请日期2008年10月6日 优先权日2008年10月6日
发明者沈庆宏, 田敏雄, 都思丹, 黄勇才 申请人:南京大学