文章目录
- 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位的校验,把前四位加起来填写到后四位里面)