基于FT601Q的USB3.0超高速数据采集系统接口设计
2022-08-19顾俊杰常潇倩孟紫腾
顾俊杰,常潇倩,孟紫腾,胡 辉
(北华航天工业学院 电子与控制工程学院,河北 廊坊 065000)
陀螺仪广泛应用于各种惯导产品中,由于陀螺马达在启停过程产生的反电动势会影响其使用寿命,于是设计了陀螺马达启停寿命评估系统,其中的数据采集系统包括两个部分:①陀螺马达正常工作的多参量测试;②陀螺马达断电后产生的反电动势测试。
上代采集卡的设计采用了PCI总线设计方案,结合设计成本及便携性提出了兼容USB接口的设计要求[1]。目前市场众多产品的设计普遍采用USB 2.0的接口设计方案,其数据传输速度达到480 Mb/S(即60 MB/S),能够满足大多数数据传输的速度要求,然而对于一些超高速数据采集设备已不再适用,为了进一步扩展采集卡的适用场景兼容高速数据采集,最终决定采用USB 3.0接口设计方案[2]。
1 总体设计方案
本设计的总体方案如图1所示,笔者重点针对USB 3.0高速数据传输接口进行设计与验证。该电路主要包括以下几个部分:FPGA主控制电路、接口供电模块及其外围配置电路。
图1 数据采集系统的整体方案
图1中FPGA主要负责逻辑控制实现,包括USB 3.0接口控制以及FIFO读写控制功能。外围电路主要用来完成FPGA的配置模式工作,本次配置模式采用主动串行模式(AS)和最常用的JTAG配置模式,并此基础上来实现程序在线调试或者固化[3]。本设计给出两种供电方式:①由USB主机供电;②由外部直流电源直接供电。电源电压经LDO实现不同降压为采集卡各个电路模块提供正常工作电压。
2 硬件电路设计
本部分主要完成电源模块和USB 3.0接口电路的具体实现方案。
2.1 USB 3.0接口电源模块设计
电源模块的设计主要针对USB 3.0的供电部分,不包括数据采集卡的其他部分供电。供电电源由外部5 V直流电源或PC端的USB接口提供。电源部分实现了由5 V到3.3 V和3.3 V到2.5 V、1.8 V及1.2 V电压降稳压功能[4]。具体电路方案,如图2所示。
图2 USB3.0电源模块电路
图2中VBUS_IN为PC端USB接口供电,DC_5V_IN为外部直流电源供电接口。当跳帽连接排针J1中的1和2端子则系统选择由PC机的USB口供电;当跳帽连接2和3端子直接由外部直流电源供电,供电电压为5 V。5 V电压经线性稳压器LMS8117ADT-3.3降压到3.3 V。2.5 V或1.8 V则可由具备使能功能的线性稳压器TLV75801PDBVR对3.3 V电压进行降压实现。设计输出2.5 V兼容1.8 V,当跳帽连接J4的1和2端子输出2.5 V电压;跳帽连接2和3端子则输出1.8 V。
本电源模块的设计中供电方式和输出电压均具有多种兼容性,可在不同情况下选择不同的供电方式或输出电压,供电方式灵活,精度高,驱动能力强。
2.2 USB 3.0接口电路设计
USB 3.0接口又称超高速USB(SuperSpeedUSB),兼容USB 2.0,高达5 Gbps(600 MB/S)的理论传输速度,实际传输速度可达400 MB/S,相比USB 2.0最大供电电流500mA,USB 3.0达到了900 mA,提供了更大的驱动能力。USB 3.0总线保留了USB 2.0信号线D+、D-、VBUS以及GND,同时增加了两队超高速差分信号线:SSTX+& SSTX-、SSRX+ &SSRX-,前者用来发送信号,后者用来接收信号,实现了全双工传输方式[5]。
本次USB 3.0接口电路设计采用的桥接芯片是由FTDI公司生产的FT601Q,其USB传输类型包括控制、批量、中断,内置16 K 32位并行FIFO数据缓存,支持两种工作模式:①“245同步FIFO”模式;②“多通道FIFO”模式,I/O口支持多种电压:1.8 V、2.5 V和3.3 V,支持可配置GPIO,具备远程唤醒、上电复位功能,内置1.0V线性稳压等特点。
2.3 FPGA配置电路
本次主控单元FPGA选用INTEL公司的Cyclone V GX系列5CGXFC5C6F27C7N芯片,针对陀螺马达反电动势的测试工作以及对FT 601Q的逻辑控制等能够完全满足。
由于FPGA片内存储断电丢数,数据无法保存,每次上电烧写程序极不方便,于是为控制电路配置了一片EEPROM存储器,确保系统程序掉电不会丢失,再次上电可直接由EEPROM中将配置程序快速载入到FPGA,方便快捷[6]。本次选用了安森美公司的CAT24C512WE-GT3芯片。该芯片具备写保护功能,由高电平有效信号WP使能,避免其内部数据被修改,3个地址线A0、A1、A2用于多器件工作时器件的地址选择即片选功能,本次电路设计仅使用一片,于是将3个地址线均接地处理,同时将VSS接地,由于不需要写保护功能故将WP也做接地处理。
3 FPGA逻辑设计
为最大化数据传输速度,本接口设计采用FT601Q的“245同步FIFO”总线协议模式。此模式下将FT601Q的CLK设置为100 MHz,然后给到FPGA中并行主FIFO作为其时钟信号;在FIFO读写过程中作为字选通的有效字节分配信号的则是字节使能信号BE[3:0],当字边界在数据传输长度未对齐时,除最后一个字节选通外所有4个字节都有效。数据传输过程,如图3所示。
图3 系统数据流示意图
首先由上位机下发指令经USB3.0接口送到FT601Q,此时FT601Q即可发送低电平有效的RXF_N信号到FPGA,表RX_FIFO中至少有1 byte数据可读,此时只能进行读操作,由FT601Q接收FPGA发来的低电平有效地使能信号OE_N,之后接收到同样低电平有效的读使能信号RD_N,方可读取RX_FIFO中所缓存数据。当被测信号通过模数转换器转换后的数据由FPGA经USB 3.0接口送到PC上位机时,首先由T601Q发送低电平有效的TXE_N信号给FPGA,表TX_FIFO中至少有1byte空间可写入数据,此时只能进行写操作,然后FPGA发送低电平有效的写使能信号WR_N给FT601Q,执行写命令,将要发送的数据写到TX_FIFO中,最后由上位机给出数据请求信号读取TX_FIFO中数据。
3.1 有限状态机的设计与实现
FT601Q内部FIFO读写工作主要由有限状态机来实现,图4中描述了其具体转换过程。
图4 状态机转换图
首先系统复位进入IDLE空闲状态,若RXF_N和BUF_FUL均为低电平,则进入读状态,对FT601Q中的RX_FIFO进行读操作,否则进入中间MIDDLE空闲状态;在读状态下,若RXF_N和BUF_FUL其一变为高电平,也进入中间MIDDLE空闲状态;在MIDDLE状态下,对TXE_N和BUF_EMP进行判断,若均为低电平则进入写状态,对FT601Q中的TX_FIFO进行写操作,否则进入IDLE空闲状态;在写状态下,若TXE_N和BUF_EMP其一变为高电平,也进入IDLE空闲状态。其中BUF_FUL和BUF_EMP分别是主FIFO的满空状态指示信号,高电平有效[7]。
3.2 FIFO读写控制模块
本次FIFO模块设计通过Quartus软件调用IP核生产控制模块,根据系统需求,FIFO大小16 K,位宽设置为32位,深度8192,以此为基础实现FPGA内部数据缓存,通过USB 3.0接口实现与外部PC机进行数据交换,并在上位机上进行数据处理工作4系统测试。
在完成以上硬件电路设计及FPGA逻辑控制模块的编写之后,对整个系统进行测试。利用FTDI官方提供的配置工具FT60X Chip Configuration Programmer对FT601Q配置工作,其中时钟100 MHz,工作模式为“245 同步FIFO”模式[8]。完成FT601Q的配置工作之后,利用FTDI公司官方提供的上位机测试软件对本次设计的接口电路进行数据传输的测试。
最后使用官方提供的上位机测速软件FT600 Data Streamer进行测试,从图5中的测试结果可以看到,以FT601Q为桥接芯片的USB 3.0接口电路其数据读写速度分别可以达到347 MB/S和382 MB/S左右,已基本接近官方提供的400 MB/S的最高传输速度,实现高速性能。
图5 FT601Q接口电路读写速度测试
4 结束语
针对本次陀螺马达反电动势测试系统所设计的USB 3.0接口电路,经过相应的调试与实际测试,其最高传输速度能够达到382 MB/S左右,满足了本次项目需求,同时对于多数高速数据采集场景同样适用。USB 3.0接口的适用不但提高了系统的数据传输速率[9],同时具有灵活的供电方式以及便携等特点,大多数计算机能兼容USB 3.0接口,使其能够随时切换其工作场所,极大地提高了测试效率和设备利用率,具有较广的应用范围。