首页 工作计划 工作总结 事迹材料 心得体会 述职报告 疫情防控 思想汇报 自查报告 党建材料 策划方案 教案设计 范文大全
  • 主题教育
  • 党课下载
  • 党史学习
  • 振兴乡镇
  • 工作汇报
  • 不忘初心
  • 规章制度
  • 谈话记录
  • 扫黑除恶
  • 共同富裕
  • 脱贫攻坚
  • 整改报告
  • 工作要点
  • 对照材料
  • 调查报告
  • 教育整顿
  • 观后感
  • 申请书
  • 讲话稿
  • 致辞稿
  • 评语
  • 口号
  • 发言稿
  • 读后感
  • 治国理政
  • 学习强国
  • 公文范文
  • 基于FPGA和USB2.0的多路音频信号采集系统

    时间:2023-05-29 08:20:07 来源:正远范文网 本文已影响 正远范文网手机站

    【摘要】本文介绍了一种基于FPGA与USB2.0的多路音频信号采集系统。采用XILINX公司的FPGA为控制芯片,以USB2.0为接口实现FPGA和PC机之间的高速数据传输。通过软硬件技术的结合实现了对多路音频模拟信号的采集。并介绍了固件(fireware)和USB设备驱动软件的开发。

    【关键词】USB;FPGA;音频信号采集

    1概述

    本文设计了一种多路音频信号采集系统,该系统单位时间内采集的海量数据需要在规定时间内快速传回PC,采用通用串行总线USB2.0接口,它是一种标准的总线接口,有较高的传输速率(USB2.0总线规范理论速率480Mbit/s),并且具有即插即用和易扩展的特性。

    2硬件设计

    2.1多路音频信号采集系统结构

    多路音频信号采集系统框图如图1所示。系统主要由A/D转换模块、FPGA驱动和控制模块及USB2.0接口传输模块3部分组成。本文拟为16路的模拟音频信号采集方案,因所采用的音频AD芯片PCM3000可对两路模拟音频信号进行模/数转换,故需采用8片PCM3000将16路模拟音频数字化后得到8路速率为2.304Mbit/s的串行数据输出送至FPGA内。在FPGA内经数字复接模块按8:1复接成1路18.432Mbit/s高速数字信号后缓存在XC3S400内部配置的FIFO中。然后判断当FIFO中的数据达到512 B时,向USB2.0控制器中同步写入数据。由于USB设置为AUTO-IN模式,可以直接把FIFO中数据自动传输到PC上位机硬盘文件中,因而可完成音频信号的采集、传输及存储。

    2.2USB2.0芯片结构及应用

    USB2.0接口芯片选用CYPRESS公司的EZ-USB FX2(CY7C68013 56脚SOPP)。FX2定义了7个端点。其中EP0IN&OUT、EPlIN、EPlOUT是64byte的端点缓存,只能由FX2的固件访问,支持块、中断和同步传输;EP2、EP4、EP6和EP8是高带宽、大缓冲端点缓冲区,无需固件干涉即可同片外设备进行高带宽数据传输,在高速模式下,EP4、EP8都是512字节的双缓存,而EP2、EP6可以由固件来配置成512或1024字节的多重缓存。

    本系统我们配置端点EP2、EP6为slave FIFO模

    USB模块主要完成两种功能:(1)通过EZ-USB FX2实现把数据传输到PC机。此时FIFO中的数据先写入EP6。(2)接收来自PC机的命令数据。此时命令数据从PC机通过USB接口传输到EP2,然后读取EP2的数据到FIFO控制单元的命令分析器中。

    USB接口控制单元状态机工作如下:

    (1)当FPGA上电或者复位后,状态机进入空闲状态(IDEL)。

    (2)在空闲状态下,当EP2不空(EP2_EMPTY=0)时,进入读命令状态(READ_COMMAND),此时令EP_ADDR[1:0]=00,FD[15:0]的传输方向由EP2指向FPGA,控制单元从EP2中读出PC机传来的控制命令。

    (3)随后进入分析命令状态(ANALYSE_COMMAND),命令包括设置时钟、采样率、开始或停止A/D转换等;

    (4)优先处理PC机通过EP2传来的命令,因此优先查看EP2的空状态。在分析命令状态下,当EP2为空(EP2_FF=1)且EP6不满(EP6_ FF=0)时,进入写数据状态(WRITE_DATA)。

    (5)随后进入传输数据状态(TRANS_DATA)。如果采集命令一直维持有效(START=’1’)且EP6不满(EP6_FF=‘0’),则又回到写数据状态。如果采集命令无效(START=’0’)则回到IDLE状态。重新枚举、端点配置、控制和监测USB的活动,根据PC主机的命令与外围电路进行数据交换等。Cypress公司为用户提供了一个固件程序框架,是通用性强的模块化程序。在框架的基础上,用户只需要编写Function. C文件即可完成USB功能开发。主要包括:Slave FIFO模式的初始化和用户自定义请求。

    驱动程序开发系统包括两个USB驱动程序:一个驱动专用于下载芯片的固件程序ccdloader.sys,另一个通用驱动程序ccdusb.sys用来实现USB设备与应用程序的通信和控制。芯片固件程序在主机上,当系统上电时,前者将其下载到芯片的RAM中,并由增强型8051微处理器执行。当固件下载完成后,模拟一次断开重新连接,此时下载的固件响应USB枚举,并加载USB设备通用驱动程序。USB的驱动程序是WDM类型,可以使用Windows DDK,WinDriver,DriverStudio开发。

    应用程序通过USB驱动程序与USB接口进行通信。本设计使用LabVIEW设计应用程序。LabVIEW为用户提供了简单、直观、易学的图形编程法,相比于传统的编程语言,LabVIEW能大量地节省开发时间。用户通过LabVIEW应用程序可以进行对数据采集系统的控制,而且采集到的数据在控制界面中实时显示。

    本文介绍了一种较为通用的基于FPGA与USB2.0接口的多路音频信号采集系统的设计方法,通过FPGA软核在数据采集系统中的灵活应用,解决了硬件电路设计繁琐复杂的问题,而且便于开发者对产品进行修改优化,可以大幅度地缩短产品的开发时间。本系统通过了硬软件的联合调试,系统工作正常,稳定性良好。

    推荐访问:多路 信号 采集系统 音频 FPGA