USB通讯基于FPGA的CY7C68013A实现(1)

最近要写一个USB的通讯协议,实现USB的数据收发,以前做过一些UART、IIC、SPI的通讯,一开始还以为USB 也是这样,本来还以为很简单,结果越做越复杂,经过两三周的时间,终于实现了整个USB通讯,包括数据的上传、下传、数据的解析等,回想自己在网上找资料的时候,零零散散的查找还挺费劲,就打算自己把学习过程记录下来,虽说功能已经实现,很多东西还都是自己的理解,不一定对,希望能对其他人有点用用处。

从哪里开始

我们在用单片机编写UART之类的通讯协议时,首先想到的应该是时序图,在这种以前模式下,数据都是我们自己一位、一位的按照时钟周期发送出去,这也导致了这些通讯协议数据发送的速率问题,比如我们常见的串口波特率常见的9600,14400,最大一般115200,对于USB2.0的设备数据传输速度可以达到上百Mbps,USB3.0已经达到了GMbps,如此快的通讯速度使得USB不能采用传统的数据收发方式。
在刚开始学习USB的时候,还是推荐大家先去搜一搜USB的介绍资料,大概了解USB是怎么回事就够了,太详细的东西大概率看不懂,也没必要,很多问题都是在设计过程中遇到并解决的。
我这里使用的是Cypress公司的CY7C68013A的芯片,是一个USB2.0微处理器,这个芯片内嵌了增强型的8051微控制器(需要用kei单独对其编写、下载代码,用来配置USB,类似初始化的感觉,虽然8051也可以用来做数据的搬运,但这并没有实际的意义,在一般使用中8051只用来做配置,数据的收发通过ENDPIONT端点完成,8051来配置这些端点的工作模式)。
我这里还有一些当初看过的文档,中英文的都有,先放到这里吧,希望对大家有点用,今天就写这点吧,大家还是要劳逸结合的,随缘续下一篇吧,下一篇介绍一下68013的芯片引脚吧。

文档

1.180896_CY7C68013-A华诺开发文档
2.CY7C68013A-56LTXC
3.USB 中文
4.001-92463_AN61345_-_Designing_With_EZ-USB_FX2LP_Slave_FIFO_Interface
5.CY7C68013A_USB_Board_Manual
6.EZ-USB® FX2LP Datasheet
7.EZ-USB® Technical Reference Manual

链接:https://pan.baidu.com/s/1ZixfvWsOqX-CQOO9Whz_EQ
提取码:lnaj

你可能感兴趣的:(USB,68013A,fpga开发,嵌入式硬件)