- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于SOPC的高速数据采集系统的分析与设计
录入:edatop.com 点击:
2.3 FPGA器件EPIC60240C6
FPGA (Field Programmable Gate Array)即现场可编程门阵列。本设计选用的是ALTERA公司的EPIC60240芯片,该芯片的工作电压为1.5 V,存储器密度可达5980个逻辑单元,它包含20个128x36位RAM块,总的RAM空间达92160位,此外还内嵌了2个锁相环电路和一个用于连接SDRAM的特定双数据率接口,故可支持多种不同的I/O标准。事实上,这里的FPGA除了可以直接编程以进行逻辑控制外,也可在此基础上构建SOPC系统,以便使用软、硬件协同方法,与SDRAM构成一个大容量的FIFO来对SDRAM以及MD转换器进行控制,同时完成与USB器件的协同工作。
2.4 SOPC及其设计
SOPC (System on a Programmable Chip)即可编程片上系统。它可以由单个芯片完成整个系统的主要逻辑功能;这种可编程系统具有灵活的设计方式,而且可裁减、可扩充、可升级。本设计采用ALTERA公司率先推出的SOPC解决方案,来将处理器、存储、I/O口等系统所需集成到一个FPGA器件上,并对其进行软、硬件配置,从而实现对数据的采集、传输、显示控制。图3所示是其SOPC系统框图。
3数据采集系统软件设计
本系统软件包括SOPC系统程序、USB固件程序、驱动程序和应用程序等4个方面的设计。其中SOPC系统程序和USB固件程序是整个程序设计的核心。
3.1 SOPC系统程序设计
基于QuartusII和Nios的SOPC设计流程如图4所示。
本系统中的SOPC系统软件设计是指在FPGA中配置ALTERA公司NiosII嵌入式处理器的硬件环境。其中NiosII处理器的配置可基于QuartusII,它是ALTERA公司的大规模FPGA/CPLD开发工具。为了进行Nios处理器的开发,通常要在Quartus里装入NiosII的软硬件开发工具,同时在提供的开发包中使用软件SOPC Builder开发工具加载NiosII核和外围接口,并定义相应的指令,然后对系统进行综合后,再下载到FPGA中,就可以完成特定功能的处理器设计。
3.2 USB固件程序设计
CY68013芯片的固件程序主要负责处理PC机发来的各种USB设备请求,并与外围电路进行数据传输。CYPRESS公司提供的固件程序框架中的两个程序分别是FW.C和PERIPH.C。其中FW.C是固件运行的主程序文件,负责处理各种USB设备请求,包含程序框架的MAIN函数,它可管理整个51内核的运行。而对于PERIPH.C,则必须将PERIPH.C实例化,以实现所需的功能。固件程序中最重要的是TD_init()和TD_poll()两个函数。TD_Init函数负责对CY7C68013的初始化,它一般在固件运行开始时调用;TD_poll函数是数据采集的执行子程序,它首先判断内部端点6的缓冲区和外部FIFO缓冲器是否非空,如满足条件,则启动A/D转换,并根据USB设备工作在高速和全速的不同来设置不同的传输计数。本设计中将接收数据端点6设为SLAVE FIFO模式,并使用AUTO IN模式来接收FPGA发来的数据,数据流由外部FIFO控制器控制,并直接传人端点6的FIFO,以等待主机提取。这里,CY7C68013仅作为数据通道,CPU不参与此过程。因此,只需在固件的初始化程序中配置好端点6的SLAVE FIFO接口模式,剩下的传输控制和其它的工作则可由FPGA来完成。以下是针对本设计的部分固件程序:
3.3 USB驱动程序设计
Windows下的USB驱动程序通常由3部分组成:USB设备驱动程序、USB总线驱动程序和USB主控制器驱动程序。其中,Windows操作系统已经提供了处于驱动程序栈底的USB总线驱动程序和USB主控制器驱动程序。而USB设备驱动程序则要由设备开发者编写。它应能通过向USB总线驱动程序发送包含URB(USB Request Block)的IRP(I/O Request Packet)来实现USB外设之间的信息交换。本设计采用Jungo公司的Win Driver进行驱动程序开发,并根据Win Driver提供的驱动向导和用户需要,来自动生成代码框架,从而简化驱动程序的开发。
3.4应用程序设计
本设计采用NI公司的虚拟仪器(VI)开发平台Labview来进行应用程序的设计。VI包括三部分:前面板、框图程序和图标/连接器。其中前面板用于设置输入数值和观察输出量。每一个前面板都对应着一段框图程序。框图程序可用Labview图形编程语言—G语言来编写。图标/连接器是子VI可被其它Ⅵ调用的接口。图标是子VI在其它程序框图中被调用的节点表现形式;而连接器则是节点数据的输入/输出口。连接器端口与前面板的控制和显示一一对应。
4结束语
本文介绍了一种基于SOPC和USB2.0接口的高速数据采集系统及其虚拟仪器的设计方法。实验表明,基于本设计的高速数据采集系统具有抗干扰、可靠性高、失码率低等优点。
编辑:博子
FPGA (Field Programmable Gate Array)即现场可编程门阵列。本设计选用的是ALTERA公司的EPIC60240芯片,该芯片的工作电压为1.5 V,存储器密度可达5980个逻辑单元,它包含20个128x36位RAM块,总的RAM空间达92160位,此外还内嵌了2个锁相环电路和一个用于连接SDRAM的特定双数据率接口,故可支持多种不同的I/O标准。事实上,这里的FPGA除了可以直接编程以进行逻辑控制外,也可在此基础上构建SOPC系统,以便使用软、硬件协同方法,与SDRAM构成一个大容量的FIFO来对SDRAM以及MD转换器进行控制,同时完成与USB器件的协同工作。
2.4 SOPC及其设计
SOPC (System on a Programmable Chip)即可编程片上系统。它可以由单个芯片完成整个系统的主要逻辑功能;这种可编程系统具有灵活的设计方式,而且可裁减、可扩充、可升级。本设计采用ALTERA公司率先推出的SOPC解决方案,来将处理器、存储、I/O口等系统所需集成到一个FPGA器件上,并对其进行软、硬件配置,从而实现对数据的采集、传输、显示控制。图3所示是其SOPC系统框图。
3数据采集系统软件设计
本系统软件包括SOPC系统程序、USB固件程序、驱动程序和应用程序等4个方面的设计。其中SOPC系统程序和USB固件程序是整个程序设计的核心。
3.1 SOPC系统程序设计
基于QuartusII和Nios的SOPC设计流程如图4所示。
本系统中的SOPC系统软件设计是指在FPGA中配置ALTERA公司NiosII嵌入式处理器的硬件环境。其中NiosII处理器的配置可基于QuartusII,它是ALTERA公司的大规模FPGA/CPLD开发工具。为了进行Nios处理器的开发,通常要在Quartus里装入NiosII的软硬件开发工具,同时在提供的开发包中使用软件SOPC Builder开发工具加载NiosII核和外围接口,并定义相应的指令,然后对系统进行综合后,再下载到FPGA中,就可以完成特定功能的处理器设计。
3.2 USB固件程序设计
CY68013芯片的固件程序主要负责处理PC机发来的各种USB设备请求,并与外围电路进行数据传输。CYPRESS公司提供的固件程序框架中的两个程序分别是FW.C和PERIPH.C。其中FW.C是固件运行的主程序文件,负责处理各种USB设备请求,包含程序框架的MAIN函数,它可管理整个51内核的运行。而对于PERIPH.C,则必须将PERIPH.C实例化,以实现所需的功能。固件程序中最重要的是TD_init()和TD_poll()两个函数。TD_Init函数负责对CY7C68013的初始化,它一般在固件运行开始时调用;TD_poll函数是数据采集的执行子程序,它首先判断内部端点6的缓冲区和外部FIFO缓冲器是否非空,如满足条件,则启动A/D转换,并根据USB设备工作在高速和全速的不同来设置不同的传输计数。本设计中将接收数据端点6设为SLAVE FIFO模式,并使用AUTO IN模式来接收FPGA发来的数据,数据流由外部FIFO控制器控制,并直接传人端点6的FIFO,以等待主机提取。这里,CY7C68013仅作为数据通道,CPU不参与此过程。因此,只需在固件的初始化程序中配置好端点6的SLAVE FIFO接口模式,剩下的传输控制和其它的工作则可由FPGA来完成。以下是针对本设计的部分固件程序:
3.3 USB驱动程序设计
Windows下的USB驱动程序通常由3部分组成:USB设备驱动程序、USB总线驱动程序和USB主控制器驱动程序。其中,Windows操作系统已经提供了处于驱动程序栈底的USB总线驱动程序和USB主控制器驱动程序。而USB设备驱动程序则要由设备开发者编写。它应能通过向USB总线驱动程序发送包含URB(USB Request Block)的IRP(I/O Request Packet)来实现USB外设之间的信息交换。本设计采用Jungo公司的Win Driver进行驱动程序开发,并根据Win Driver提供的驱动向导和用户需要,来自动生成代码框架,从而简化驱动程序的开发。
3.4应用程序设计
本设计采用NI公司的虚拟仪器(VI)开发平台Labview来进行应用程序的设计。VI包括三部分:前面板、框图程序和图标/连接器。其中前面板用于设置输入数值和观察输出量。每一个前面板都对应着一段框图程序。框图程序可用Labview图形编程语言—G语言来编写。图标/连接器是子VI可被其它Ⅵ调用的接口。图标是子VI在其它程序框图中被调用的节点表现形式;而连接器则是节点数据的输入/输出口。连接器端口与前面板的控制和显示一一对应。
4结束语
本文介绍了一种基于SOPC和USB2.0接口的高速数据采集系统及其虚拟仪器的设计方法。实验表明,基于本设计的高速数据采集系统具有抗干扰、可靠性高、失码率低等优点。
编辑:博子
上一篇:三警合一
城市应急联动系统解决方案
下一篇:多核芯片未充分利用
并行编程无进展