当前位置:首页 > 新闻资讯 > FPGA之家动态 >

【教程】FPGA高速传输驱动逻辑测试

时间:2024-07-27      来源:网络搜集 关于我们 0

一、确定方案和目的

    今天我们继续学习FPGA+FT232HQ高速传输通道方案,FT232H系类的基于FIFO的传输方案,FPGA能够做到精准时间与多任务;

    对于高速变化的信号需要应用高速ADC采集,今天来完成高速采集板卡原理的流程的学习,主要知识是FPGA芯片的编程到上位机的高速传输通道测试,内容步骤如下:

1.学习FT232HQ数据高速传输方法和时序逻辑2.手动调试FT232HQ芯片,进行高速读取,实现上位机读取数据响应3.学习FPGA数字电路设计方法,熟练基本语法4.联调实现250kHz快速上传锯齿波形数据;5.主控芯片等待USB芯片到来的读取信号 关键词:LabviewFT232H,FIFO,高速数据传输备注1:手机微信可浏览相关高清图片;备注2:labview 8.5以上,FT232函数集合包

二、FT232HQ芯片简介

        FT232H芯片是一款USB转UART、SPI、I2C、JTAG、FIFO等多种接口的单芯片解决方案。它具有高集成度,支持USB2.0 480M速度,并能在芯片上处理整个USB协议,无需开发USB协议驱动。FT232H芯片的特点包括:01.USB转UART:串口波特率可达12Mbps/s。02.USB转parallel FIFO:FIFO通道速度可达8MB/s,采用同步FIFO方式,更可达到30MB/s。

03.快速传输一定要设计差分走线等避免谐振共振现象发生;

04.可配置为各种行业标准的串行或并行接口,如UART、FIFO、JTAG、SPI(MASTER)或I2C模式。04.引入了FT1248接口,并支持CPU-Style FIFO模式、bit-bang和快速串行接口模式。具有多协议同步串行引擎(MPSSE),用于简化同步串行协议(USB转JTAG、I2C、SPI(MASTER)或bit-bang)设计。05.UART传输数据速率高达12Mbaud(RS232数据速率受外部电平转换器限制)。06.USB到异步245FIFO模式,传输数据速率高达8Mbyte/Sec。07.USB到同步245并行FIFO模式,传输速度高达40Mbytes/Sec。支持具有可配置宽度、双向数据总线(1、2、4或8位宽)的专有半双工FT1248接口。

三、高速传输逻辑    01. FT232HQ芯片默认是串口模式,安装驱动也是安装串口驱动即可;

    02. FT232HQ芯片使用特殊功能是需要进行配置芯片的,使用FT_Prog软件设置;

    03. 配置内容是修改数据模式和应用哪个dll文件进行通信交互,Hardware含有5中模式,不同模式下的通信原理逻辑有所不同,Dirver有D2xx模式和串口COM模式;

    04.引入了FT1248接口,并支持CPU-Style FIFO模式、bit-bang和快速串行接口模式。

    05. 因芯片内部有不掉电存储区域,配置FT232芯片一次后,就不需要再次配置该参数;Hardware含有5种模式,不同模式下的通信原理逻辑有所不同,Dirver有D2xx模式和串口COM模式;

    06. 配置完的FT232HQ芯片在执行特殊功能时,会根据IO功能表单来分配专用引脚,ADBUS0-ADBUS7为数据IO、ACBUS0-ACBUS9是特殊功能的IO接口;07. 本次数据传输逻辑为ACBUS3(WR)收到脉冲后,数据存储FIFO空间,等到目标尺寸的脉冲数目后,将数据上传给电脑端;

    08. 电脑在读取数据过程中也需要通知FT232HQ芯片,方法是TXE或者RXE的状态;

    09. 使用FT232HQ芯片需要提供一个非常精确时间和数据通道;所以选择FPGA作为设备对接芯片;

    10. 不选择51单片机或者STM32的原因是:芯片执行多任务的时间精准度问题,经过实践得出FPGA存在设计难度大,而且设计思维需要紧靠数字电路知识;    11. 逻辑一分频器:时钟的输出,需要使用分频器或者定时器实现,传输速度需要匹配测试;

    12. 逻辑二计数器:时钟输出计数器,上升沿触发计数,通过计数来判定实际输出数据量;

    13. 逻辑三锁存器:将FIFO的数据输出功能,需要注意在读取边沿到来前,保证输出数据装载完毕;

    14. 逻辑四信号触发:上位机控制FT232HQ芯片后,会有状态IO电平改变,ACBUS2端口会在读数据时候拉低,完毕后恢复高电平;

四、FPGA芯片数字逻辑实现    01. FPGA芯片的优势是时间精准控制,自由度非常高;

    02. FPGA芯片的思想是数字电路,所以我们要建立数字电路模型:分频器输出同步时钟节拍,计数器来做数据个数统计,锁存器发送数据,信号触发启动和复位电路;

    03. 需要配合FT232芯片的工作是:等待控制电平信号拉低,下降沿触发后启动输出时钟,锁存器根据输出时钟变化来进行数据输出;

    04. 扩展锁存器的数据来源部分该处教程省略,后续调整难易程度后将会介绍;

    05. 使用高云FPGA芯片因为:价格优势、封装IO数量优势、国产优势;

    06. 易错点提醒:module 名称( 变量定义 )注意逗号语法的使用;output和reg语句的联合定义;赋值操作要遵循数字电路原理,综合单线赋值,不能多线冲突;/*****FPGA文件**************************************/module askpc( input sys_clk, input data_rxf, output reg data_clkout, output reg [2:0] data_busio);reg data_clk;reg [23:0] counter;reg [23:0] counter0;reg data_CLKDIV_En;reg data_time_done;reg [15:0] data_send_i;//产生要用到的时间基准always @(posedge sys_clk)begin counter0=counter0+1; if(counter0==27)data_clk=~data_clk; if(counter0==27)counter0=0;endalways @(posedge data_clk)begin    //脉冲翻转 if(data_rxf==0 && data_time_done==0 ) data_clkout=~data_clkout; else        data_clkout=0;     //脉冲计数器 if(data_rxf==0 && data_time_done==0 ) counter=counter+1; else        counter=0;    //计数器置位  if(counter>2000)data_time_done=1;    //计数器复位    if(data_rxf==1)data_time_done=0;  endalways @(posedge data_clkout)begin    //锁存器更换数据,调试使用加一    if(data_rxf==0 && data_time_done==0 ) data_busio=data_busio+1; else data_busio=0; endendmodule/*****物理约束配置文件**************************************/IO_LOC "data_busio[0]" 11;IO_LOC "data_busio[1]" 17;IO_LOC "data_busio[2]" 18;IO_LOC "data_clkout" 9;IO_LOC "data_rxf" 10;

五、实际效果与调试记录

    01. 先使用高云云源软件配合下载器将编译电路放入FPGA芯片(写入内部Flash);    02. 使用逻辑分析仪来观察步时钟节拍,目标能够输出指定个数脉冲,锁存器数据有效;

    03. FT芯片模块+FPGA芯片+上位机labview程序组装完毕,运行测试,效果能够看到三角波形;

    04.   if(counter>2000)data_time_done=1;   是控制单次触发脉冲输出个数;

    05.   if(counter0==27)   是控制单位脉冲的维持时间(周期或者频率),根据晶振计算;

六、调试笔记

    01. 调试工具:逻辑分析仪、面包板套件2个拼接、高云FPGA模块、FT232HQ模块、USB扩展器等;

    02. 高云FPGA软件的使用需要申请注册文件激活,提供MAC地址,注意确保电脑系统时间正常;

    03、FT的函数SetBitmode可操作GPIO,Read函数在每个模式都是通用的;

    04、FT232H后续的规划是配合FPGA芯片实现高速数据传输类的作业要求;

   05、FT232H相关资料请前往官网进行查询下载,配置软件FT_Prog,本教程使用labview2018软件作为技术支持;

    06、本教程均为原创技术技术分享,版权归千里优选教学基地所有;

七、相关资料指南(EN)

FT232HQ官方数据手册

https://ftdichip.com/products/ft232hq/

FT_Prog芯片配置软件地址

https://ftdichip.com/utilities/#ft_prog

FT232HQ官方API手册https://ftdichip.com/software-examples/code-examples/labview-examples/FT232HQ介绍与应用(Verilog实现)https://blog.csdn.net/weixin_56608779/article/details/125743832
注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言