当前位置:首页 > 工业控制 > 电子设计自动化

摘 要: 在数据采集领域,基于FPGA和USB2.0的数据采集系统具有速度快、容易扩展等特点,因其具有的即插即用的功能,使它能适合更广泛的应用场合。在数据采集与传输控制电路设计部分,给出了该模块的内部结构设计详图,详细论述了FPGA内部各个功能电路的设计思路和具体实现过程。
关键词: USB; 数据采集; FPGA; 固件程序

  数据采集在现代工业生产及科学研究中的重要地位日益突出,并且对实时高速数据采集的要求也不断提高。在信号测量、图像处理、音频信号处理等一些高速、高精度的测量中,都要求进行高速、高精度的数据采集。这就对数据采集系统的设计提出了两个方面的要求:一方面,要求接口简单灵活且有较高的数据传输率;另一方面,由于数据量通常都较大,要求主机能够对数据做出快速反应,并及时进行分析和处理。
  实现数据传输与采集,可选择如下3种方法:
  (1)使用传统的串/并口来进行。使用传统的串口来完成,如RS232,其传输速率为几十kb/s到100 kb/s,而系统所要求的数据传输速率很高,而且还要实现数据的传输与采集同步进行,因此,串口的速率远远达不到实时要求;对于并口,虽然它的传输速率可达到1 Mb/s以上,但由于探测器与主机的相距较远,因此,布线比较复杂。
  (2)采用通用的高速数据采集卡。高速数据采集卡,如ISA或PCI卡来实现数据传输与采集以及数据的存储处理;这些采集卡虽然在数据存取速度上可满足系统要求,但仍然存在很多缺点,比如安装复杂,价格昂贵,兼容性不好而且还要受计算机插槽数量、地址和中断资源的限制,可扩展性也比较差等。
  (3)使用USB2.0通用串行接口总线。USB接口是一种重要的计算机外设接口,它支持热插拔和即插即用,因此使用非常方便,而且传输速率高,USB2.0支持高达480 Mb/s的数据传输速率。USB接口实现了计算机与多个外围设备的简单高速互联;既省去计算机外部过多电缆,又避免了像PCI接口那样的插入式接口板带来的操作危险性及笔记本电脑无处可插的尴尬。因此,将USB技术应用于数据采集非常适合[1-2]。
  经综合考虑,在此选择采用USB2.0接口来完成对数据的传输与采集。
1 数据传输和采集系统方案设计
  数据传输和采集系统主要由三部分组成,USB2.0通道、FPGA的数据双缓冲器、状态寄存器和A/D转换器组成。如图1所示。


  CY7C68013是一款基于USB2.0的芯片,其作用是使主机所发送的命令序列经USB2.0端口输出,实现对数据采集系统的控制;同时把A/D采集的数据以高速的数据序列发送到主机,其中USB2.0提供一个能和计算机连接的数据传输接口。
  FPGA的作用主要是利用内部的SRAM提供对数据输出/输入的双缓冲,采用双缓冲的原因与USB中的大端点所配置的双缓冲类似,均是防止数据的溢出和保证数据传输的连续性。
  A/D转换器的作用是将所要采集的模拟量转换成数字量;通过滤波和放大后,由FPGA接收、缓冲、存储,经USB2.0端口传回至主机工作站。高速A/D转换器采用的是转换速率为20 MHz的MAX1425[3]。
  系统工作过程为:主机通过CY7C68013给数据采集系统一个采样控制命令,该命令存入FPGA的控制寄存器中,FPGA根据该命令向A/D转换器发出相应控制信号;由于ADC采样率为10 MHz,为和PC运行速度相匹配,在FPGA内部生成一个FIFO缓存器。A/D转换器在FPGA的ADC接口控制电路控制下,把模拟信号转换成数字信号,并将指定通道的采样数据存入FPGA内部FIFO缓存。同时FPGA的USB接口控制逻辑查询CY7C68013是否空闲,如果CY7C68013空闲,那么由FPGA的USB接口控制逻辑将指定通道的采样结果从FPGA内部FIFO缓存送入CY7C68013的内部FIFO。当CY7C68013内部的FIFO容量达到一定程度后,CY7C68013自动将数据打包传送到PC机。由于固件程序把CY7C68013设置为特定的自动模式,因此CY7C68013把数据送往PC机期间的所有操作不需要CY7C68013中CPU的干预,从而保证足够的数据传输速率。采样过程中FPGA的USB接口控制逻辑依次取走批量数据,在USB接口打包传送时A/D仍然持续转换,FPGA内部FIFO也被持续写入转换结果。
2 硬件设计
  系统的硬件由模数转换接口电路、数据采集与传输控制电路和接口电路构成。
2.1 模数转换电路设计
  模数转换接口电路是整个系统的重要组成部分,它由低通滤波器、多路选择开关和A/D转换器构成,如图2所示。在系统中起这个作用的核心器件是A/D转换芯片MAX1425。


  8路模拟输入信号分别经过由运放THS4052构成的抗混叠低通滤波器去除高频成分,防止信号产生“混叠现象”。1/8模拟信号选择器根据来自FPGA板的地址码,控制模拟信号选择器74HC4051选通8路输入中的其中一路到输出端,送到模数转换器MAX1425将模拟信号转换为数字信号。MAX1425的控制信号由FPGA板提供,MAX1425在控制信号的作用下,以适当的时序完成转换工作。
2.2 数据采集与传输控制电路
  数据采集与传输控制电路的开发工作主要集中在FPGA上。FPGA负责在EZ-USB FX2与ADC芯片之间的缓冲与控制。一边与ADC接口,另一边与USB接口,产生数据采集、通道切换、A/D转换、FIFO所需的全部控制信号,实现对传输数据的缓存、读/写控制、时钟、输出使能、端点的选择以及对ADC的控制等功能。
  FPGA内部设计框图如图3所示,由FIFO、USB接口控制状态机、ADC接口控制状态机、三态门缓冲器、控制寄存器组几部分构成。图中由右向左的宽箭头表示数据流,FD[9:0]是与USB接口芯片连接的双向数据总线。由左向右的宽箭头表示传送来自PC机的控制信号。单线箭头表示输入输出及FPGA内部各个模块间的控制信号线。


  从数据流向看,数据在ADC接口控制状态机的协调下,通过ADC接口送入FPGA的FIFO中,经过FIFO的缓冲后,在USB接口控制状态机的协调下对三态门进行控制:当USB接口控制状态机对三态门的输出为高时,三态门开启,数据通过三态门传输到FPGA外的USB接口;当USB接口控制状态机对三态门的控制输出为低时,三态门呈现高阻态,FPGA的这几个引脚此时作为输入引脚。此种状态下,来自PC机的控制信号通过USB接口芯片CY7C68013从FD[15:0]送入FPGA中,在USB接口控制状态机的控制下,来自PC的控制信息存入控制寄存器组。并由ADC接口控制状态机来控制送往FPGA外的ADC接口,作为对ADC的控制,如通道的选择。
2.2.1 FPGA内ADC接口模块设计[4]
  MAX1425和74HC4051的控制信号都由FPGA产生,接口电路如图4所示。


  FPGA的工作时钟为60 MHz,该时钟经分频成10 MHz提供给MAX1425作为工作时钟,同时也作为FPGA内其他逻辑的工作时钟。由FPGA内状态机控制当CS#为低和ADC_Convst为高,MAX1425进入采样保持状态。当Clock的第一个上升沿到来,MAX1425开始转换。RD#输出为低,MAX1425把转换结果放到数据总线上,FPGA开始读入10位数据(FD[15:0]中10~15六位数据线悬空,使数据线和AD的位数匹配)。
  FPGA控制寄存器的Sel[0:2]信号作为74HC4051的通道选择信号,从而从8路模拟信号中选择1路作为MAX1425的输入。完成一次转换后,当ADC_Convst再次为高时,开始下一轮转换。  
2.2.2 FPGA内USB接口模块设计
  如图5所示是Slave模式下FX2与FPGA的连接示意图。右边是EZ-USBFx2芯片CY7C68013的引脚,左边是FPGA中USB接口模块部分对应的信号[5-6]。


2.2.3 FPGA内USB接口控制状态机的设计
  FPGA内USB接口控制状态机的状态转移图如图6所示。状态个数共有6个,复位信号的模式设置为异步复位。状态机主要分为读、写两部分,包括读取EP2中所包含的命令,然后存到FPGA的控制寄存器组中,以及将FPGA的FIFO中的数据读出,然后写入EP6端点缓冲区[7]。


  该状态机工作过程为:
  (1) 系统加电或复位后,状态机进入空闲状态(idle )。
  (2) 在空闲状态下,当EP2不空时,进入read_0。状态,从EP2中读出PC发下来的控制命令。随后进入read_1状态,把命令存到FPGA内控制寄存器中,并把FPGA内的FIFO清空(fifo_aclr1=′1′ ),以准备存储采样数据。之后再回到idle状态。
  (3)在空闲状态下,当EP2为空(Fx2_empty=′0′),而FPGA的FIFO不为空,即其中有数可读(empty=0)并且EP6不满时,进入write_0状态。这里之所以要看EP2是否为空,是想优先处理PC通过EP2传来的命令。在write_0状态下,选中对CY7C68013的EP6操作(ADDR=2’h2),同时从FPGA内部的FIFO中读出一个数据;之后进入write_1状态,在此状态下,把数据写入CY7C68013。然后进入write_2状态,而write_2状态的输出与idle状态相同,目的是提供一个时钟周期的延迟。这是因为FPGA工作于60 MHz的时钟下,比CY7C68013快,所以加入这样一个延迟以保证可靠的数据传输[8]。
3 软件设计
  数据采集系统的软件设计包括了三部分,如图7所示。CY7C68013的固件,Windows平台上USB设备驱动程序和应用程序。


  在Windows操作平台下,当有新的设备接入时,操作系统就会依据设备回传的有关信息自动地调用相应的设备驱动程序。当USB设备的设备驱动程序装载后,主机应用程序通过USB设备驱动程序与系统USBDI(USB Device Interface)进行通信,然后由系统产生USB数据的传送动作。固件则是运行在外设接口芯片中的代码,用以响应各种来自系统的USB标准请求,完成各种数据的交换工作和事务处理。
 固件架构实现了与USB兼容的外围设备所需的基本功能。经过链接(link)最小的描述符表文件,并对该架构做适当的修改或添加部分代码,就可以构建出完全兼容的设备固件架构。通过链接Cypress所提供的子程序码,就有可能逐渐地构建出完全兼容功能的设备,固件程序的流程图如图8所示[9-10]。


 基于FPGA和USB2.0的高速实时数据采集系统采用FPGA、微控制器和计算机的混合系统,采用计算机的USB接口作为数据传输接口。软件设计工作包括MCU的Firmware(固件程序)的设计、计算机上USB接口驱动程序的设计、计算机上应用程序的设计等部分。MCU在FPGA和计算机之间起着桥梁的作用,它要对USB接口进行控制,实现与计算机的通信,接受计算机的控制,要对它与FPGA的接口进行设置和控制,还会与FPGA进行对话,以实现对FPGA的工作模式的设置。
  由于系统开发过程中涉及了硬件设计、微控制器软件设计和PC机软件设计,因此本设计的难度表现在软、硬件的混合设计,MCU软件和PC机软件的联合设计等综合技能和全面的软、硬件知识。
参考文献
[1] 胡晓军,张爱成.USB接口开发技术. 西安: 西安电子科技大学出版社,2005.
[2] 杨金岩,郑应强,张振仁. 8051单片机数据传输接口扩展技术与应用实例.北京:人民邮电出版社,2005.
[3] 高光天.模数转换器应用技术.北京:科学出版社,2000.
[4] Texas instruments.MAX1425 Datasheet,SBAS215, 2001.
[5] 王成,薛小刚,钟信潮.FPGA/CPLD设计工具Xilinx ISE使用详解.北京:人民邮电出版社,2005.
[6] 李晖,田书林.基于DSP和FPGA的高精度数据采集卡设计.电子设计应用,2006(10).
[7] 许永和.8051单片机USB接口程序设计.北京:北京航空航天大学出版社,2004.
[8] 虞鹤松,张飘,范刚.LED显示屏高速数据通讯接口设计[J]. 国外电子元器件, 2005(2):56-59.
[9] 徐爱钧,彭秀华.单片机高级语言C51应用程序设计. 北京:电子工业出版社,1998.
[10] 夏宇闻.Verilog数字系统设计教程.北京:北京航空航天大学出版社,2004.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京——2024年4月30日 亚马逊云科技持续引领云上数据服务创新,助力企业构建全面的数据基座以充分发挥数据潜力,加速生成式AI技术落地。在生成式AI时代,数据是企业脱颖而出的关键——基础模型依赖于大规模高质量数据集,生...

关键字: 生成式AI 数据 模型

全新的专有模型导入功能让客户更轻松地将其专属模型导入到Amazon Bedrock中,从而充分利用Amazon Bedrock的强大功能。全新的模型评估功能使客户能够广泛且便捷地选择完全托管模型,包括RAG优化的新版Am...

关键字: 生成式AI 基础模型 数据

2024年4月17日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)将在2024年4月25日欧洲证券交易所开盘前公布202...

关键字: 半导体 数据

数据占满我们的电子设备已成常态,为了满足广大用户的需求,NAS应运而生。然而,对于许多普通用户来说,NAS设备的设置和使用却常常令人望而却步。不过,铁威马TOS 6的出现,不仅功能强大,而且操作简便,即使是初次接触NAS...

关键字: 数据 电子设备 NAS

机器学习作为人工智能领域的重要组成部分,其过程涉及到多个核心环节。本文将详细阐述机器学习的四个主要步骤:数据准备、模型选择、模型训练与评估,以及模型部署与应用,以揭示机器学习从数据到应用的完整流程。

关键字: 数据 人工智能 机器学习

机器学习算法是人工智能领域中的核心技术之一,它通过对大量数据进行学习,自动发现数据中的规律和模式,从而实现对新数据的预测、分类、聚类等任务。本文将深入探讨机器学习算法的基本过程,包括数据准备、模型选择、训练与评估等关键步...

关键字: 数据 人工智能 机器学习

随着人工智能(AI)技术的迅速发展,人们对于通用人工智能(AGI,即Artificial General Intelligence)的期待也日益高涨。通用人工智能指的是具备像人类一样全面智能的计算机系统,能够执行各种复杂...

关键字: 人工智能 计算机 数据

在数字化时代,数据的数量和价值飞速增长,如何安全、有效地存储和管理这些数据成为了一个重要的问题。刻录机,作为一种同时具有数据存储和备份功能的设备,在这方面发挥着越来越重要的作用。本文将向大家介绍刻录机的定义、工作原理以及...

关键字: 刻录机 数据

在数字时代,数据已经成为企业的重要资产。随着云计算技术的快速发展,云服务器已成为企业和个人存储数据的重要平台。然而,数据的存储和处理也面临着多种安全威胁。本文将探讨如何使用云服务器确保存储数据的安全性。

关键字: 数据 云服务

摘要:针对窃电手法的隐蔽化和专业化,为减少公司范围内窃电行为,大力整治用电市场秩序,保持反窃电高压态势,结合当前新疆反窃查违工作中的实际,依托用电信息采集系统,融合多源系统数据,采用开盖记录+计量异常途径对用电行为进行分...

关键字: 计量异常 采集系统 用电行为分析
关闭
关闭