收藏 分销(赏)

USB芯片设计规范.doc

上传人:快乐****生活 文档编号:3129963 上传时间:2024-06-19 格式:DOC 页数:28 大小:2.73MB
下载 相关 举报
USB芯片设计规范.doc_第1页
第1页 / 共28页
USB芯片设计规范.doc_第2页
第2页 / 共28页
USB芯片设计规范.doc_第3页
第3页 / 共28页
USB芯片设计规范.doc_第4页
第4页 / 共28页
USB芯片设计规范.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、 文档编号:保密级别:众志-863系统芯片通用串行总线设备控制 芯片设计规范UNITY-863 USBDC Specification 北京大学微处理器研究开发中心此硬件参考手册属机密级,仅供北京大学微处理器研究中心相关成员查看版本说明版本号 日期 描述00100 05/26/2002 完成unity-863 usb specification 初稿目 录版本说明.1目 录2图片目录.3表格目录.41 概述.51,1 功能简述.61.1.1 宏观特性61.1.2 主要功能61.2 Block Diagram.81.3 引脚配置.91.3.1 USB接口描述.92 寄存器配置.102.1 可编程

2、寄存器113 接口和时序.203.1 USB接口描述.213.1.1 USB输入信号223.1.2 USB输出信号22 3.2 主要接口信号时序.23附录一 文档维护人21附录二 文档评审情况21图片目录表格目录. +1 概 述众志-863系统芯片 USBDC(univer serial bus devce control通用串行总线设备控制芯片,以下简称USBDC)是和带有USB主机控制器的设备进行通信的支持部件,实现和带有USB主机控制器的设备进行数据交换。USBDC和APB连接进行寄存器的初始化配置,和DMAC连接进行大量的数据交换。1.1 功能简述1.1.1宏观特性众志-863系统芯片

3、 USBDC具有以下特征:l 48MHZ的系统时钟l USB外挂FIFO,发送和接受FIFO都为128x16l 一个配置,三个端点l DMAC传输方式 1.1.2主要功能INTERFACE模块的功能 暂存数据(读写数据)、地址信号、读写信号FSM模块的功能 把APB的时序转化为USB的时序同时返回FINISH信号和读数据USBDC 使用SYNOPSYS公司的DESIGNWARE,设备端的控制芯片,把有效负载转换为满足协议的数据格式。三个模块连在一起和具有USB主机控制器的设备(主要是PC)进行数据交换。1.2 Block Diagram在UNITY-863中,USBDC和其他模块的连接图如下:

4、图 1 与APB MASTER的连接图 2 与DMAC和RAM的连接1. 3引脚配置本节简要描述USBDC的接口信号,对每一个信号更详细的描述以及时序图参阅第三章接口信号和时序描述。输入输出管脚 总模块输入输出信号和描述参见下表:表1-1总模块输入输出信号信号方向作用描述PCLK输入INTERFACE模块的时钟APB MASTER发出PSEL输入片选信号1 有效PENABLE输入使能信号1 有效PWRITE输入读写信号1 有效PADDR输入地址信号宽度是10PWDATA输入写数据宽度是8PRESETn输入复位信号0 有效USB_CLK输入FSM,USBDC的时钟信号48MHZPRDATA输出读

5、数据宽度是8app2usb_rxpkt_accepted输入OUT事务的ACK信号1 有效app2usb_rxpkt_rejected输入OUT事务的NAK信号1 有效app2usb _rdma_ack输入DMA读请求的响应信号1 有效app2usb _wdma_ack输入DMA写请求的响应信号1 有效app2usb _wdma_data输入DMA写操作的数据信号宽度是16usb2app_rdma_req输出读操作的请求信号1 有效usb2app_wdma_req输出写操作的请求信号1 有效app2usb _rdma_data输出DMA读操作的数据信号宽度是161.3.1 INTERFACE接

6、口信号的描述表1-2 INTERFACE接口信号信号方向作用描述PCLK输入INTERFACE模块的时钟APB MASTER发出PSEL输入片选信号1 有效PENABLE输入使能信号1 有效PWRITE输入读写信号1 有效PADDR输入地址信号宽度是10PWDATA输入写数据宽度是8PRESETn输入复位信号0 有效USB_CLK输入FSM,USBDC的时钟信号48MHZFINISH输入表明FSM已经完成当前操作1 有效RDATA输入FSM返回的数据宽度是8PRDATA输出读数据宽度是8READY 输出准备好信号,有效表明可以进行下一次操作1 有效WDATA输出发给FSM的数据信号宽度是8WR

7、输出发给FSM的读写信号1 有效ADDR输出发给FSM的地址信号宽度是10RSTn输出发给FSM的复位信号0有效1.3.2FSM的接口信号app2usb_rxpkt_accepted输入OUT事务的ACK信号1 有效app2usb_rxpkt_rejected输入OUT事务的NAK信号1 有效app2usb _rdma_ack输入DMA读请求的响应信号1 有效app2usb _wdma_ack输入DMA写请求的响应信号1 有效app2usb _wdma_data输入DMA写操作的数据信号宽度是16usb2app_rdma_req输出读操作的请求信号1 有效usb2app_wdma_req输出写

8、操作的请求信号1 有效app2usb _rdma_data输出DMA读操作的数据信号宽度是16l 与APB的接口的信号说明:APB MASTER和INTERFACE接口的信号PCLK 输入 APB的时钟 PSEL 输入 APB MASTER发出的片选信号 PENABLE 输入 APB MASTER 发出的使能信号。 PWRITE 输入 APB MASTER 发出的读写信号。 PADDR 输入 APB MASTER 发出的地址信号。宽度是10。 PWDATA 输入 APB MASTER 发出的写数据。宽度是8。 PRDATA 输出 APB MASTER 要读回的数据。宽度是8 PRESETn 输

9、入 APB MASTER 发出的复位信号。低电平有效。 READY 输出 准备好信号,表明当前操作已经完成,等待下一个操作。INTERFACE和FSM之间的信号 USB_CLK 输入 USB的时钟(48MHZ) REQ 输入 INTERFACE模块请求FSM对INTERFACE进行读操作。 FINISH 输出 FSM返回给INTERFACE的信号,表明FSM已经完成当前操作。INTERFACE收到这个信号之后,就把HREADY置位。 WDATA 输入 INTERFACE发出的写数据。宽度是8 RDATA 输出 FSM返回给INTERFACE的数据。宽度是8 ADDR 输入 INTERFACE发

10、出的地址信号。宽度是10。 WR 输入 INTERFACE发出的读写信号。 RSTn 输入 INTERFACE发出的复位信号,低电平有效。FSM和USB之间的信号 app_addr 输出 FSM发出的地址信号。 app_wr_n 输出 FSM发出的写信号。低电平有效。 app_rd_n 输出 FSM发出的读信号。低电平有效。 app_reg_sel 输出 FSM发出的片选信号。 app2usb_drdy 输出 FSM发出的准备好信号。 usb2app_drdy 输入 USB发出的准备好信号。 app2usb_data 输出 FSM发出的数据信号。宽度是8。 usb2app_data 输入 US

11、B返回的数据信号。宽度是8。 未说明的电平有效的均为高电平有效。功能描述:工作流程:1INTERFACE和FSM复位,此时READY,FLAG信号置为高电平,REQ清零,等待读写指令。2读写指令发出后,APB会发出地址,读写信号,PSEL,PENABLE.3在PSEL,PENABLE都有效的时候,在PCLK的上升沿,此时把读写信号、地址信号和数据(读操作无数据)保存在INTERFACE里边,同时把HREADY置为无效,并且向FSM发出请求信号REQ。(上次的文档是下一个周期发REQ信号)。4FSM在USB_CLK的上升沿,如果FLAG(请参看说明)和 REQ都为1,就把APB的时序变为USB要

12、求的时序,同时把FLAG置为0。5FSM从USB得到数据和结束信号FINISH之后,把数据(如果写操作此时没有数据),放到INTERFACE里边,同时向INTERFACE发出HREADY的置位信号。6等待软件的查询。一些说明: 对软件查询的要求:当发现READY为高时,如果上次发出的指令为写指令,这时可以对USB进行读写。如果上次发出的是读指令,就把数据读走。我们在APB的PENABLE,PSEL两个信号都有效时的时钟上升沿把地址,读写信号和写数据保存在INTERFACE。在PSEL下降沿我们向FSM发出一个请求信号REQ(因为两个时钟频率不同,一个为166MHZ,一个为48MHZ,所以REQ

13、至少要4个166时钟宽度才能保证FSM的时钟采样到正确的REQ为了防止REQ信号被采样两次,要设一个标志信号FLAG,在时钟(USB时钟)上升沿采样到REQ有效之后,就把标志信号FLAG清零。系统复位时标志信号FLAG置1,这样就防止被采样两次。FSM采样到数据和控制信号之后,FSM按照USB的时钟和要求的时序发给USB,当USB操作完成之后,发数据(写操作不返回数据)和FINISH信号给FSM,FSM接到这个信后之后,把数据发到INTERFACE,并且置位信号READY。FSM的时钟和USB的时钟一致。INTERFACE的时钟和APB的时钟保持一致。因为两个时钟频率相差比较大,所以复位信号的

14、宽度要求很宽,至少为3个USB时钟周期(48MHZ)。寄存器的读写数据总线宽度是8。 l 与DMAC的接口信号的说明: APP2USB_RXPKT_ACCEPTED DMAC通知USB发出一个OUT事务的ACK信号。APP2USB_RXPKT_REJECTED DMAC通知USB发出一个OUT事务的NAK信号或者是IN 令牌(标志)的NAK信号。APP2USB_RXMEM_AVAIL DMAC发出的RAM是否还有空间的信号。USB2APP_RDMA_REQ USB发出的DMA读操作的请求信号。APP2USB_RDMA_ACK DMAC对USB读请求的响应信号。USB2APP_WDMA_REQ

15、USB发出的DMA写操作的请求信号。APP2USB_WDMA_ACK DMAC对USB写请求的响应信号。USB2APP_EPINDEX USB发出的信号,表明当前要操作的端点号和端点的方向。这个信号和DMA当前的地址构成了对RAM操作的地址。宽度是5。USB2APP_RDMA_DATA 读操作的数据线。APP2USB_WDMA_DATA 写操作的数据线。 DMA的传输方式采用INCREMNTING方式,传输类型为BULK传输。DMAC和USB接口的时钟和USB的时钟一致,并且时序关系和徐兴文已经协商好了,他给出的信号和时序关系符合USB的要求。USB采用外挂FIFO的方式,FIFO的宽度采用h

16、alfword(16位),深度采用32位 。这样FIFO正好可以容纳一个包的大小。 操作流程:l 写操作当USB发出DMA写请求后,DMAC会发出响应信号,如果当前RAM没有数据时或者DMAC忙,DMAC就不同意当前的操作。否则DMAC发出响应ACK,同时把数据放到总线上。USB就会在ACK等于1 的时钟的上升沿读取数据。送出数据(读操作)l 读操作 当USB发出DMA读请求,同时把数据放到总线上。就DMAC会发出响应信号ACK,。DMAC就会在ACK 的下一个时钟的读取数据。DMAC数据读取操作结束之后,会发出ACK或者NAK 响应。主要信号时序图: 寄存器配置:DW_usbd MacroC

17、ore有一个可见的能被编程的寄存器组,他用来对管理配置、控制、监视USB的所有操作。具体的寄存器组以及如何管理说明如下: 所有的寄存器按照功能可以分为三类:l 终端信息寄存器组l 请求、控制和状态寄存器组l 统计寄存器组 她们的功能基于两个出发点:l 保持当前与配置相关的信息l 保持状态和中断控制 终端信息寄存器组:Core中对于每个终端都给分配一个24字节的寄存器块,块内的寄存器说明如下: 寄存器名字: ep_bEndpoitAddress 寄存器宽度(bits): 8 属性: 只读 偏址: h000 复位值: 寄存器名字: ep_bmAttributes 寄存器宽度(bits): 8 属性

18、: 对Endpoint 0只读,别的Endpoint读/写 偏址: h001 复位值: 寄存器名字: ep_wMaxpacketSize 寄存器宽度(bits): 16 属性: 读/写 偏址: h002 复位值: 寄存器名字: ep_bInterfaceNumber 寄存器宽度(bits): 8 属性: 读/写 偏址: h004 复位值: h00寄存器名字: ep_stat 寄存器宽度(bits): 8 属性: Bits7,5,3,2,0:读/写,屏蔽 Bits6,4:保留 Bits1:读/写 偏址: h005 复位值: h00寄存器名字: ep_setup_bmRequestType 寄存器

19、宽度(bits): 8 属性: 读/写 偏址: h006 复位值: h00寄存器名字: ep_setup_bRequest 寄存器宽度(bits): 8 属性: 只读 偏址: h007 复位值: h00 寄存器名字: ep_setup_wValue 寄存器宽度(bits): 16 属性: 只读 偏址: h008(低位在h008,高位在h009) 复位值: h0000 寄存器名字: ep_setup_wIndex 寄存器宽度(bits): 16 属性: 只读,屏蔽 偏址: h00A(低位在h00A,高位在h00B) 复位值: h0000 寄存器名字: ep_setup_wLength 寄存器宽度

20、(bits): 16 属性: 只读 偏址: h00C(低位在h00C,高位在h00D)复位值: h0000寄存器名字: ep_synchFrame 寄存器宽度(bits): 16 属性: 读/写 偏址: h00E(低位在h00E,高位在h00F) 复位值: h0000 寄存器名字: app_intr 寄存器宽度(bits): 8 属性: 读/写,屏蔽 偏址: h000复位值: h00 寄存器名字: app_imask 寄存器宽度(bits): 8 属性: 读/写 偏址: h001复位值: hFF 寄存器名字: app_ctrl 寄存器宽度(bits): 8 属性: 读/写 偏址: h002复位

21、值: h00 寄存器名字: ep_info 寄存器宽度(bits): 8 属性: 只读,Bits4,3,2,1,0屏蔽 偏址: h003复位值: h00寄存器名字: cfg_bConfigurationValue 寄存器宽度(bits): 8 属性: 读/写 偏址: h004复位值: h00寄存器名字: cfg_bmAttributes 寄存器宽度(bits): 8属性: Bit7:只读 Bit6:读/写,屏蔽 Bit5:读/写 Bits4-0:保留 偏址: h005复位值: h00寄存器名字: dev_speed 寄存器宽度(bits): 8属性: Bits7-2:保留 Bits1-0:只读

22、 偏址: h006复位值: h00寄存器名字: frame_number 寄存器宽度(bits): 16 属性: 只读 偏址: h00E(低位在h00E,高位在h00F)复位值: h0000寄存器名字: ep_transaction0 寄存器宽度(bits): 16 属性: 读/写 偏址: h010(低位在h010,高位在h011)复位值: h0000寄存器名字: ep_transaction1 寄存器宽度(bits): 16 属性: 读/写 偏址: h012(低位在h012,高位在h013)复位值: h0000寄存器名字: app_ifUpdate 寄存器宽度(bits): 16 属性: 只

23、写 偏址: h014复位值: N/A 寄存器名字: cfg_interface0 寄存器宽度(bits): 16 属性: 读/写 偏址: h040复位值: h0000寄存器名字: pkt_passed_ctr 寄存器宽度(bits): 16 属性: 读/写 偏址: h080(低位在h080,高位在h081)复位值: h0000寄存器名字: pkt_dropped_ctr 寄存器宽度(bits): 16 属性: 读/写 偏址: h082(低位在h082,高位在h083)复位值: h0000寄存器名字: crc_err_ctr 寄存器宽度(bits): 16 属性: 读/写 偏址: h084(低位

24、在h084,高位在h085)复位值: h0000寄存器名字: bitstuff_err_ctr 寄存器宽度(bits): 16 属性: 读/写 偏址: h086(低位在h086,高位在h087)复位值: h0000寄存器名字: pid_err_ctr 寄存器宽度(bits): 16 属性: 读/写 偏址: h088(低位在h088,高位在h089)复位值: h0000寄存器名字: framing_err_ctr 寄存器宽度(bits): 16 属性: 读/写 偏址: h08A(低位在h08A,高位在h08B)复位值: h0000寄存器名字: txpkt_ctr 寄存器宽度(bits): 16

25、属性: 读/写 偏址: h08C(低位在h08C,高位在h08D)复位值: h0000寄存器名字: stat_ctr_ov 寄存器宽度(bits): 8 属性: 读/写 偏址: h08E复位值: h00USB的参数配置 它分为两部分:一是在coreConsultant工具中直接输入的数据,另一是由coreConsultant 间接产生的数据。 一,直接数据: Configurable Feature Options USB Data Rate Requirement full speed PHY type classical (1.1) Clock frequency ratio betwee

26、n DPLL and other Classical core modules 1x Number of concurrent interface per configuration 1 Number of additional IN endpoints (Excluding default control endpoint 0) 1 Number of additional OUT endpoints (Excluding default control endpoint 0) 1 Bandwidth-matching FIFO controller depth (matches RAM d

27、epth) 128 Bandwidth-matching FIFO controller width (matches applications data port width) 16bits Location of RAMs for bandwidth-matching FIFO Controllers internalEndpoint 0 maximum packet size 64bytesEndpoint 1 IN transfer type bulkEndpoint 1 OUT transfer type bulkEndpoint 1 IN MaxPacketSize 8Endpoi

28、nt 1 OUT MaxPacketSize 8Check to Enable Control-Endpoint Capabilities true二,间接数据: fiforam_data_width 16 : RAM的数据宽度位16 fiforam_be_data_width 2 : 用以指示数据是否有效,需要2个比特 fifo_addr_width 7 : RAM的寻址宽度 log2_fifo_depth 7 一些常量:(列出它们,可能在软件编程的时候会用到)a) Device State Machine(DSM)的状态定义: DSM_ATTACHED 0 DSM_POWRED 1 DSM

29、_DEFAULT 2 DSM_ADDRESS 3 DSM_CONFIGURED 4 DSM_NCSUSPEND 5 DSM_SUSPEND 6b) 数据的PID定义:D0_PID 4b0001D1_PID 4b0010D2_PID 4b0100MD_PID 4b1000c) 对被选择的控制命令回复寄存器的定义。NOTE:这些代码由CSM产生,由TSM读。 SELECT_NOTHING 0 SELECT_CONFIGURATION 1 SELECT_INTERFACE 2 SELECT_DEVICE_STATUS 3 SELECT_DEVICE_INTERFACE 4 SELECT_ENDPOINT_STATUS 5 SELECT_TEATURE_REMWKP 6 SELECT_TEATURE_EPHALT 7 SELECT_TEATURE_TSTMODE 8 SELECT_SYNCH_FRAME 9d) 功能选择器(FEATURE selectors)的定义FEATURE_REMOTE_WAKEUP 1 FEATURE_ENDPOINT_HALT 0 FEATURE_TEST_MODE 2 e) 对IN处理状态机(transaction state machine)的状态定义:

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 品牌综合 > 行业标准/行业规范

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服