FPGA USB通信实验

文章目录

  • FT232H芯片
  • 一、芯片手册信号定义
  • 二、信号介绍
    • 二、时序介绍
    • USB内部刨析
  • 总结

 


FT232H芯片

因为USB协议较为复杂,所以就诞生了FT232H芯片,封装好留出接口直接使用即可.

此款芯片支持多种不同的协议模式 : 

                               FIFO,I2C,SPI,JTAG

一、芯片手册信号定义

我使用的是FIFO的读写模块就看的fifo的信号定义 : 

 

二、信号介绍

input    CLKOUT;    //芯片输出的60Mhz时钟

input    RXF#;         //芯片数据fifo可读提示信号

input    TXE#;          //芯片数据fifo可写提示信号

output  RD#;           //芯片fifo读使能信号

output  WR#;          //芯片fifo写使能信号
 
output SIWU#;        //芯片唤醒信号(用不到拉高即可)

output OE#;            //芯片fifo数据输出使能

inout   ADBUS[7:0] //芯片输入和输出的8位数据

二、时序介绍

 读时序 

1 : 首先RXF信号拉低(表示有数据待读出,这个时候不能就直接去读数据了,这个时候表示一个预报铃,并不是真实的数据)

2 : 收到RXF低了之后,需要拉低OE使芯片数据输出(过了T6总线上面开始出现有效数据)

3 : (根据手册OE拉低后一个时钟周期在把RD拉低即可)RD拉低后就可以从芯片里面读走数据.(OE晚一个时钟周期也有表示)

 写时序 

1 : fifo没被写满时候拉低TXF(拉低TXF后表示芯片可以接收FPGA发来的数据)

2 :TXF拉低后 , WR拉低这个时候DATA数据就可以写进芯片里面去了.


USB内部刨析 : 

 USB的编码格式 :  NRZI 编码(Non-Return-to-Zero Inverted Code)

 USB 传输的编码就是 NRZI 格式,在 USB 中,电平翻转代表逻辑 0,电平不变代表逻辑1​​​​​​​  =  0变1不变,6个1就补0

传输协议 : 

1.传输数据通信

USB的数据通讯首先是基于传输(transfer)的,传输的类型有:中断传输、批量传输、同步传输、控制传输.

2.事务数据通讯

一次传输由一个或多个事务(transaction)构成,事务可以分为:in事务、out事务、setup事务.

3.包数据通讯

一个事务由一个或多个包(packet)构成,包可分为:令牌包(setup)、数据包(data)、握手包(ack)、特殊包.

4.域数据通讯

一个包由多个域构成,域可分为:同步域(sync)、标识域(pid)、地址域(addr)、端点域(endp)、帧号域(fram)、数据域(data)、校验域(crc).

 

USB传输数据是一包传输 (一包和一包之间没用间隙)(一帧之间有间隙)

Pid : 前四位表示包的类型,后四位表示包的校验(是对前4位的校验,把前四位加起来填写到后四位里面)

总结: 

 USB如果只为完成芯片操作那么可以说是最简单不过了的了,如果要是深层挖掘USB发送原理不会两种语言(FPGA和单片机)一般是搞不定的!

 其中还包括eeprom用单片机程序进行烧写等.

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
基于FPGA的CY7C68013A双向通信实验是一种利用FPGA芯片和CY7C68013A USB芯片进行双向数据传输的实验。在该实验中,通过利用FPGA的可编程性和CY7C68013A的USB接口,可以实现高速、稳定的数据传输。 在实验中,首先需要在FPGA芯片上进行硬件设计和编程,通过FPGA内部的逻辑电路和时钟控制,将需要传输的数据进行处理和加工,然后将其发送给CY7C68013A芯片。 CY7C68013A是一款具有USB接口功能的芯片,它可以将FPGA传输的数据转换成USB信号,通过USB线缆连接到计算机上。在计算机上需要安装相应的驱动和通信软件,以便接收和处理FPGA传输的数据。 在实验中,可以通过编写程序和设置相应的寄存器,控制FPGA和CY7C68013A之间的通信协议和数据传输速率,实现双向通信。例如,可以设置FPGA将数据传输到CY7C68013A的输出寄存器,然后CY7C68013A通过USB接口将数据传输到计算机上,同时,计算机上的通信软件也可以将数据传输给CY7C68013A,然后通过FPGA进行处理。 这种基于FPGA和CY7C68013A的双向通信实验在许多应用中都非常有用,例如工业自动化系统、通信系统等。它具有高速、可靠的特点,能够满足大容量数据的传输需求,并且可以灵活地根据具体应用的要求进行设计和配置。 实施这个实验需要一定的硬件和软件开发经验,但是一旦配置成功,就可以实现高效的双向数据传输,为各种应用场景提供了可靠的通信解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小五头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值