基于FPGA的USB2.0通讯系统设计
摘要
设计是基于FPGA的USB通讯,设计中采用Cypress公司EZ-FX2LP系列的CY7C68013A作为USB2.0控制芯片,AC606作为FPGA核心开发板,使用VerilogHDL编程语言来编写FPGA程序,利用QuartusⅡ软件进行电路设计和仿真调试,通过异步读写CY7C68013A四个端口的FIFO的数据来实现FPGA与USB芯片之间的数据通信,进而成功完成了USB2.0通讯系统与PC上位机的通信。从仿真结果和实物功能测试来看,本次设计的USB2.0通讯系统能够传输数据和文件,且传输速度基本符合高速传输的要求。
关键词:FPGA;USB2.0;数据传输
目录
TOC\o1-2\h\u
绪论 1
1系统设计方案分析 2
1.1FPGA开发板的选择 2
1.2USB控制芯片的选择 2
1.3系统总体方案 2
2系统硬件电路设计 4
2.1开发板AC606的基本配置 4
2.2USB控制芯片详情 9
3系统软件部分设计 12
3.1开发工具的介绍 12
3.2CY7C68013A固件烧写 12
3.3FPGA程序仿真 13
3.4USB2.0功能测试 14
4结论 22
参考文献 23
附录一:程序清单 24
附录二:设计实物作品图 31
PAGE18
绪论
目前,系统设备正在不断向高速处理、高度灵活性、低功耗的方向发展。而现场可编程门阵列FPGA因其得天独厚的优势已经发展成为实现数字系统的主流平台之一。FPGA具有高度的可重构定制性和高效的并发数据处理能力,在使用FPGA设计外部控制器时,能够做到低功耗开发的同时保持定制电路的灵活更改和高效处理数据的能力,所以更受设计人员的青睐。
USB2.0高速版本的理论传输速度是60MB/s,从USB2.0高速标准被提出一直到今天,USB2.0已经基本上成为电脑的标准接口,键盘鼠标等应用外设均可用USB标准连接在电脑上,而且凭借其可靠的传输速度极大开拓了应用前景。于是本文设计了一种基于FPGA的USB2.0通讯系统,能够安全可靠的传输数据,传输速度可观,在降低开发成本的同时能够保证数据传输的安全稳定,具有一定的实用价值。
1系统设计方案分析
1.1FPGA开发板的选择
AC606是武汉芯路恒科技有限公司针对高校和企业应用市场开发的另一款低成本嵌入式FPGA核心板。核心板在设计时充分考虑了学生群体和工业应用客户的应用需求。开发板的核心芯片的型号是Intel公司EP4CE6E22C8型芯片,这款芯片在使用过程中功耗较低,虽然此芯片是E系列芯片中最低级别的,但是对比其它芯片成本降低了不少,而且丰富的资源能够满足设计所需。AC606开发板提供了丰富的标准外设接口,能够满足本次USB通讯系统的设计开发需求。
1.2USB控制芯片的选择
CY7C68013A包含高速USB2.0通信协议,还有一颗兼容的8051控制器。在此芯片中含16KB的内部RAM,所以将固件程序烧录进芯片内后,用户可以直接运行固件程序,就不需要再外加存储器。在确保USB的兼容性的同时减少了开发时间。使用这款芯片能够在保持设计需要的前提下降低开发成本,所以选择此芯片作为USB控制芯片。
1.3系统总体方案
通过上面的选择,本次设计的所有硬件都被选择出来。CY7C68013A来作为用USB控制芯片;FPGA开发板采用的是AC606核心板。
本设计的具体的系统方案如下图2.1所示:
图1系统框图
2系统硬件电路设计
本章节主要介绍设计中各个部分的电路,其中包括它们的设计原理、工作原理及作用。
2.1开发板AC606的基本配置
主芯片EP4CE6E22C8拥有6272个逻辑单元,两个通用锁相环,180个用户IO管脚,276480bit嵌入式存储资源,里面包含有时钟晶振电路,JTAG接口电路,程序存储电路,USB供电电路等。
开发板原理图如下:
图2原理图
晶振是为整个电路产生稳定的频率用的。若想产生出各部分所需的不同频率,这就需要用到晶振了。FPGA开发板提供的50Mhz时钟晶振电路如下图所示:
图3时钟晶振电路
设计中采用的是标准的JTAG接法(10脚),TCK是JTAG的测试时钟,TMS控制模式选择,TDI是数据输入端,TDO是数据输出端,JTAG接口电路如下:
图4JTAG接口电路
FPGA开发板的三个按键电路如下图所示:
图5按键电路
串行FLASH芯片W25Q16,拥有2M字节的存储空间,使用SPI接口,默认作为FP