教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

基于FPGA的USB接口读写设计

来源:网络收集 时间:2026-08-25
导读: Vol.23No.1 January2006 文章编号:1671-7872(2006)01-0076-04安徽工业大学学报第23卷第1期J.ofAnhuiUniversityofTechnology2006年1月 基于FPGA的USB接口读写设计 周

Vol.23No.1

January2006

文章编号:1671-7872(2006)01-0076-04安徽工业大学学报第23卷第1期J.ofAnhuiUniversityofTechnology2006年1月

基于FPGA的USB接口读写设计

周芳

(南京航空航天大学信息科学与技术学院,江苏南京210016)

摘要:介绍了一种用FPGA实现USB接口读写的设计方法。着重分析主循环,中断服务处理器和D12命令接口等几个结构模块的设计。在XilinxISE软件平台上,验证了读写模块的VerilogHDL语言代码。

关键词:USB;FPGA;PDIUSBD12;VerilogHDL

中图分类号:TN402文献标识码:B

DesignofUSBInterfaceRead-WriteBasedonFPGA

ZHOUFang

(CollegeofInformationScience&Technology,NanjingUniversityofAeronautics&Astronautics,Nanjing210016,China)

Abstract:AwaytodesignUSBinterfaceRead-WritebasedonFPGAisintroduced.MainLoop,InterruptServiceProcessorandD12CommandInterface,etcareanalyzedanddesigned,andrealizedbyVerilogHDLinXilinxISE.Keywords:UniversalSerialBus;FPGA;PDIUSBD12;VerilogHDL

引言

就是通用串行总线,是近年来应用在PC领域的新型接口技术。由于USB可以用USB(UniversalSerialBus)

简便有效的方法与多种类型的外设通信,导致了USB接口的设计和编程比较复杂。为了降低设计者的开发难度,使用专用的USB控制器已成为首选方案。

目前市场上供应的USB控制器主要有两种:一种是微控制器(MCU)集成在芯片里面,如CYPRESS的EZ-USB和SIEMENS的C541等;另一种就是纯粹的USB接口芯片,仅用来处理USB通信,由另一个外部MCU管理USB控制器的寄存器、设备描述符的获取和数据包的交换等,USB控制器使用串行口或并行口与

(I2C接口)和PDIUSBD12(并行接口)等。文中所采用的MCU连接。这类芯片主要有PHILIPS的PDIUSBD11

是PHILIPS公司的PDIUSBD12器件。

如今,计算机外围设备市场上使用USB接口的数码相机、扫描仪、U盘和鼠标等设备比较常见,这些设备均可采用外部MCU加USB接口芯片的设计。如果设备的应用比较简单,那么MCU所要处理的事务量不大,它的某些功能不一定能派上用场,这时完全可以考虑用现场可编程门阵列(FPGA)来取代微控制器,管理

设备描述符的获取和数据包的交换等。此外,由于FPGA能够满足低功率和可重配置USB控制器的寄存器、

逻辑解决方案的要求,在复用和可移植性方面,FPGA器件比MCU具有更高的胜算把握[。1]

用FPGA实现USB接口的读写正是居于此思想来设计的,由USB设备控制器PDIUSBD12(以下简称D12)和FPGA组合在一起,以实现与主机之间的数据通信。该方案实现的USB通信便于修改且易于实现,如果USB设备控制器部分是用IP核实现的,还可以与FPGA相结合,作为一个功能模块嵌入到SOC中,可使不同情况最大限度地灵活设计片上系统。

收稿日期:2005-05-10

作者简介:周芳(1979-),女,江苏南京人,硕士研究生,助教,研究方向为数字系统设计与计算机应用。

第1期周芳:基于FPGA的USB接口读写设计771系统结构原理

接口读写设计的重点是USB接口读写部

分,其设计思想主要是基于PDIUSBD12芯片

的应用[2]。

它通过与D12芯片的通信,对主机传来的

数据进行处理,或者按照协议规定向主机发送

数据,实现与主机之间的USB通信。根据读写

模块所要实现的功能,可以将其划分为几个部

分:主循环;中断服务处理器ISP(interrupt

serviceprocessor);D12命令接口;标准请求处

(standardrequestcommand

processor)和RAM数据缓冲区,其结构框图如

图1所示。理器SRCP图1系统层次结构框图

2USB接口读写模块与PDIUSBD12的接口

PDIUSBD12采用通用并行接口实现与读写模块的通信,它们之间的接口主要有多路复用的8位地址/数据总线、地址锁存信号、中断信号、读写信号、片选信号和时钟信号[2],如图2所示。

对于微控制器而言,D12可以看成是一个有8

位数据总线和1位地址线的存储设备;ALE是地址

锁存信号,在多路地址/数据复用总线中,ALE下降

沿锁存地址信息;中断信号为低电平有效并且引脚

上接一个上拉电阻,D12通过该信号通知读写模块图2D12与读写模块之间的接口

需要进行和主机之间的数据处理;读写信号和片选信号均为低电平有效;时钟信号输出时钟的频率为48MHz/(N+1),其中N的数值由D12片内寄存器决定,范围从0到11。读写模块可以通过设置该寄存器的数值来要求D12输出相应的时钟频率,这里所要求的时钟频率是12MHz。此外,由于D12是工作在多路复用地址/数据总线模式下,所以要求D12的地址位A0接固定高电平。

3读写模块的设计

3.1D12命令接口

读写模块是通过对D12输入一系列命令来完成和主机之间的数据传输,这些命令主要包括设置地址、设置工作模式、读中断寄存器、选择端点、端点应答、端点输入和端点输出等。D12命令接口模块的功能就是实现这些命令,它处于整个读写模块的最低层,直接与D12进行数据接口,所以该模块首先要能产生和MCU一样的读写信号时序,其部分VerilogHDL语言描述如下:

assignmcu_data=wr?8'hzz:lamcu_data;

always@(posedgeale)

lamcu_data<=addr;

always@(negedgeale)

lamcu_data<=data_in;

always@(negedgerd)

data_out<=mcu_data;

always@(posedgeclkornegedgerst)

if(!rst)state<=IDLE;

elsestate<=next_state;//数据总线为双向总线//ale上升沿锁定地址//ale下降沿关闭地址信息//读指令//设计一状态机产生读写指令的时序

78

always@(posedgeclk)

begin

next_state=state;安徽工业大学学报2006年//默认时不改变当前状态,状态机设计部 …… 此处隐藏:3702字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于FPGA的USB接口读写设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1803654.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)