CN101071406A - 接口可配置的通用串行总线控制器 - Google Patents

接口可配置的通用串行总线控制器 Download PDF

Info

Publication number
CN101071406A
CN101071406A CN200710019710.9A CN200710019710A CN101071406A CN 101071406 A CN101071406 A CN 101071406A CN 200710019710 A CN200710019710 A CN 200710019710A CN 101071406 A CN101071406 A CN 101071406A
Authority
CN
China
Prior art keywords
interface
module
usb
configurable
bit wide
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200710019710.9A
Other languages
English (en)
Other versions
CN100462952C (zh
Inventor
高明伦
许盛
李伟
李丽
娄孝祥
何书专
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CNB2007100197109A priority Critical patent/CN100462952C/zh
Publication of CN101071406A publication Critical patent/CN101071406A/zh
Application granted granted Critical
Publication of CN100462952C publication Critical patent/CN100462952C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种接口可配置的USB控制器,包含USB标准收发单元接口控制模块、端点(ENDPOINT)控制逻辑模块、控制状态机模块、可配置位宽的接口控制模块;USB标准收发单元接口控制模块接收从主机传来的数据包,并进行解析,在控制状态机模块的控制下将数据分发到各端点控制逻辑模块,并且通过接口控制模块与微处理器和FIFO(先进先出单元)进行通讯。本发明符合USB2.0规范要求,支持高达480Mbps的传输速率,它提供了可配置的微处理器接口和先进先出(FIFO)接口,能够以IP核的形式方便地与多种微控制器核相连接集成,并且也易于集成在AMBATM、VCITM、OCPTM等多种片上***(SOC)体系架构中。

Description

接口可配置的通用串行总线控制器
一、技术领域
本发明涉及一种数字集成电路USB设备接口装置,具体地说是一种可以广泛地应用于USB2.0体系的设备中,尤其可方便地集成在需要USB接口的片上***(SOC)中的接口可配置的USB控制器。
二、背景技术
USB是英文Universal Serial Bus的缩写,中文含义是″通用串行总线″。它是应用在PC领域的新型接口技术。早在1995年,就已经有PC带有USB接口了,但由于缺乏软件及硬件设备的支持,这些PC机的USB口都是闲置未用的。1998年后随着微软在Windows中内置了对USB接口的支持模块,加上USB设备的日渐增多,USB逐步走进了实用阶段。
USB接口支持即插即用,支持主机***和USB***设备之间的数据传输,通过一个4针的标准插头,采用菊花链形式把外设连接起来。USB的速度要比标准的串行口快得多,USB1.1规范的数据传输率可达1.5~12Mbps(而串行口最多115Kbps)。USB2.0可以提供接口向下兼容和360~480Mbps的传输速率。
USB连接了USB设备和USB主机,USB的物理连接是有层次性的星型结构。每个网络集线器是在星型的中心,每条线段是点点连接。从主机到集线器或其功能部件,或从集线器到集线器或其功能部件,图1是USB***的拓扑结构图。
USB规范中将USB分为五个部分:主机控制器、控制器驱动程序、USB芯片驱动程序、USB设备以及针对不同USB设备的客户驱动程序。在任何USB***中,只有一个主机。USB和主机***的接口称作主机控制器,主机控制器可由硬件、固件和软件综合实现。根集线器是由主机***整合的,用以提供更多的连接点。
图2是USB通讯模型层次关系图,由图2可见:主机与设备都被划分成不同的层次。主机上垂直的箭头是实际的信息流。设备上对应的接口是基于不同实现的。在主机与设备之间的所有通信最终都是通过USB的电缆进行,然而,在上层的水平层之间存在逻辑的主机—设备信息流。主机上的客户软件和设备功能部件之间的通信是基于实际的应用需求及设备所能提供的能力。客户软件与功能部件之间的透明通信的要求,决定主机和设备下层部件的功能以及它们的接口(interface)。
USB的带宽容量可以容纳多种不同的数据流,因此保证USB上可以连接大量设备,如可以容纳从1B+D直到T1速率范围的电信设备。同时USB支持在同一时刻不同设备具有不同比特率,并具有一个动态变动的范围。
根据设备对***资源需求的不同,在USB规范中规定了四种不同的数据传输方式:批(Bulk)传输方式、控制传输方式(Control)、中断传输方式(Interrupt)和同步传输方式(Isochronous),这些传输方式各有特点,分别用于不同的场所。
(1)批处理事务
批处理事务类型的特点是以错误检测和重试的方式保证主机和功能部件之间的数据无错发送的能力。批处理事务是由标记,数据和握手包构成的三时相事务。
主机总是通过配置事件初始化总线传送的第一个事务为DATAO PID。第二个事务使用DATA1 PID,并且,剩余的后继数据传送轮流切换。数据包发送器根据ACK的接收情况来切换而接收器根据数据包的接收(receipt)和验收的情况切换。
(2)控制传送事务
控制传送最少有2个事务阶段:建立和状态。控制传送可以有选择性地包括建立和状态阶段之间的数据阶段。在建立阶段,建立事务用于向功能部件的控制端口传输信息。建立事务在格式上类似于输出,但是使用的是建立而不是输出ID包标识符(PID)。收到建立的功能部件必须接收建立数据并用ACK应答,如果数据被损坏,则丢弃数据且不返回握手。
当控制端口在控制传送的数据和状态阶段中发送停止(STALL)握手的时候,必须对以后所有对此端口的访问返回STALL握手,直到收到建立PID为止。端口收到建立PID之后,不应返回STALL握手。
(3)中断传输方式
中断事务可由输入或输出构成。一旦收到输入标记,功能部件便可返回数据、暂时不能传输(NAK)的握手包或停止(STALL)的握手包。如果端口没有新的中断信息,即没有等待事务的中断可供返回,功能部件在数据时相返回NAK握手。如果中断端口的停止特征被设置了,功能部件将返回STALL握手。如果中断是等待事务的,功能部件像数据包那样返回中断信息。作为对数据包接收的反应,主机如果数据无错地被接收则发出ACK握手,或者如果数据包损坏则不返回握手。
(4)同步传输方式
同步(ISO)事务有标记和数据时相,而没有握手时相。ISO事务不支持握手时相或重试能力。
功能设备是一种通过USB总线进行发送接收数据和控制信息的USB设备,通过一根电缆连接在集线器的某个端口上,功能设备一般是一种相互无关的外设。然而一个物理单元中可以有多个功能部件和一个内置集线器,并利用一根USB电缆,这通常被称为复合设备,即一个集线器连向主机,并有一个或多个不可拆卸的USB设备连在其上。
当设备被连接、编号后,该设备就拥有一个唯一的USB地址。设备就是通过该USB地址***作的,每一个USB设备通过一个或多个通道与主机通讯。所有USB设备必须在零号端口上有一指定的通道,每个USB设备的USB控制通道将与之相连。通过此控制通道,所有的USB设备都列入一个共同的准入机制,以获得控制操作的信息。
客户软件要求通信数据在主机上的一个缓冲区和USB设备上的一个端点(ENDPOINT)之间进行。主机控制器或USB设备(取决于数据传送方向)将数据打包后在USB上传。由主机控制器(HC)协调何时用总线访问在USB上传递数据。
一个端点(ENDPOINT)是一个可唯一识别的USB设备的窗口,它是主机与设备间通信流的一个结束点。一系列相互独立的端点在一起构成了USB逻辑设备。每个逻辑设备有一个唯一的地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是在设备设计时被给定的。每个端点都是一个简单的连接点,或者支持数据流进设备,或者支持其流出设备,两者不可得兼。
作为USB设备的控制器,其作用就是建立端点与主机之间的联系,并对各种传输进行控制。随着便携式电子设备如数码相机、MP3等日益普及,USB设备控制器的需求也越来越大。USB设备控制器的工作需要有微控制器的控制,目前市场上主要的USB设备控制器都提供了与8051微控制器的8位接口以满足要求,现有USB设备控制器的缺点是:不适应集成电路ASIC(Application Specific Integrated Circuit特定用途集成电路)和SOC的发展,单一化的接口位宽没有办法匹配多种微控制器和SOC架构,限制了USB设备控制器的发展。
三、发明内容
本发明的目的在于提供一种接口可配置的USB控制器,该控制器克服了现有技术的不足,通过对接口配置,使其能够方便地在集成电路(ASIC)设计以及多种SOC体系架构设计中实现重用,提高了可集成性,适应于集成电路SOC发展的需要。
本发明的目的是通过以下技术方案来实现的:
一种接口可配置的USB控制器,其特征在于:它包含USB标准收发单元接口控制模块(UTMI)、端点(ENDPOINT)控制逻辑模块、控制状态机模块和可配置位宽的接口控制模块;USB标准收发单元接口控制模块接收从主机传来的数据包,并进行解析,在控制状态机模块的控制下将数据分发到端点控制逻辑模块,并且通过可配置位宽的接口控制模块与微处理器和外接先进先出缓冲器(FIFO buffer)进行通讯。
本发明所述的接口可配置的USB控制器满足USB2.0规范要求,支持全速(12Mbps)和高速(480Mbps)两种速率传输,支持USB标准请求,自动地实现从USB接口到微处理器接口的“桥梁”功能。
本发明中所述可配置位宽的接口控制模块设有一组同步的微处理器读/写接口,其数据总线位宽可以配置成适应不同连接要求的8位或16位或32位;可配置位宽的接口控制模块提供一个可编程的选择位宽信号,当数据总线被配置为16位或32位宽而微处理器为8位时,位宽信号用来决定数据总线中相应的字节有效。例如:数据总线配置为32位,需要与8051相连接,通过位宽选择信号size和地址偏移量选择数据总线4个字节中相应的一个。
当数据总线位宽被配置为32位时,微控制器通过这个微控制器接口与该USB控制器端点(ENDPOINT)FIFO buffer连接的情况如下表1所示:
  数据位宽Size[1:0]   Data bus[31:0](微控制器接口数据总线)
  [31:24]   [23:16]   [15:8]   [7:0]
  10   有效   有效   有效   有效   32位连接
  01   有效   有效   16位连接
  00   有效   8位连接
表1
例如:数据总线配置为32位,需要与8051相连接,通过size信号选择数据总线4个字节中的[7:0]有效。
端点FIFO buffer的地址为OX084H到OXOFFH,表2是当数据总线位宽被配置为16位时,微控制器通过这个微控制器接口与该USB控制器端点(ENDPOINT)FIFO buffer连接的情况如下表2所示:
数据位宽Size[0]     Data bus[15:0](微控制器接口数据总线)
    [15:8]   [7:0]
1     有效   有效   16位连接
0   有效   8位连接
表2
本发明中所述可配置位宽的接口控制模块设有与端点缓冲器(ENDPOINT buffer)直接连接的从先进先出单元(Slave FIFO)接口。这个接口也可以配置成8位/16位/32位宽,这样可以方便地与外部内存模块(DMA)相连接。这个slave FIFO接口是与微控制器时钟CLKCPU上升沿同步的,这个slave FIFO接口包含:空、满、有效等状态信号;读、写信号;端点地址和数据总线。这些信号须由外部的FIFO“master”控制。
该模块提供了数据有效选择信号Data Valid对FIFO数据总线进行有效字节选择,选择情况如表3所示。
Data valid[3:0](fifooutdvo或fifoindvi) Data bus[31:0](fifooutdatao或fifoindatai)
[31:24] [23:16] [15:8] [7:0]
0000
0001 有效
0011 有效 有效
0111 有效 有效 有效
1111 有效 有效 有效 有效
表3
本发明充分利用参数配置的方法,在满足USB设备传输速率要求的前提下,提高了USE设备控制器的易集成性。它的可配置性使其能够方便地在ASIC设计以及SOC设计中实现重用。适用于日益普及的便携式消费电子产品,满足这些电子产品与PC主机高速数据传输的要求。
研究表明,本发明可以以IP核的形式方便地与多种微控制器核相连接集成,并且也易于集成在AMBATM、VCITM、OCPTM等多种SOC体系架构中。适应于消费类电子产品的传输需要和集成电路SOC的发展。
本发明具有如下特点:
(1)它是一种USB设备控制器,适用于以消费类电子产品为代表的USB设备中,同时又可以方便地以IP软核、硬核的形式重用于ASIC或SOC中。
(2)可以进行微控制器接口和slave FIFO位宽配置,并且提供了选择端口在数据总线上进行有效字节选择。这使得本发明适用于多种微控制器连接和SOC体系集成。
(3)符合USB2.0规范,可以提供最高480Mbps的传输速率,可以满足当前电子产品与PC(个人电脑)主机的传输要求。
四、附图说明
图1:USB***的拓扑结构;
图2:USB通信模型层次关系图;
图3:接口可配置的USB控制器结构框图;
图4:微控制器读时序图;
图5:微控制器写时序图;
图6:微控制器接口总线字节选择示意图;
图7:Slave FIFO接口框图;
图8:通过slave FIFO接口往IN端点写数据时序图;
图9:通过slave FIFO接口从OUT端点读数据时序图。
五、具体实施方式
为了对本发明有更进一步的了解,下面结合附图进行详细说明。
一种本发明所述的接口可配制的USB控制器,如图3所示,它包含USB标准收发单元接口控制模块1、端点(ENDPOINT)控制逻辑模块2、控制状态机模块3、可配置位宽的接口控制模块4,USB标准收发单元接口控制模块1接收从主机传来的数据包,并进行解析,在控制状态机模块3的控制下将数据分发到各端点控制逻辑模块2,并且通过可配置位宽的接口控制模块4与微处理器和FIFO进行通讯。
其中,可配置位宽的接口控制模块4是本发明的重点,该模块是一个同步接口模块,是ENDPOINT buffer、FIFO、微控制器、特殊功能寄存器5之间交换数据的控制中心。它包括微控制器接口和slave FIFO接口两个部分。
图4是微控制器读时序图,当读连接建立之后,读端口(uprd)、地址总线(upaddr)和数据选择信号(size)必须保持有效至少两个微控制器时钟周期(clkcpu),而且读连接可以被延长。微控制器数据输出总线(Updatao)上的读出数据在读使能信号(uprd)为高电平一个clkcpu周期之后有效。
图5是微控制器写时序图,写使能(upwr)、数据输入总线(updatai)、地址总线(upaddr)和数据选择信号(size)须保持至少一个clkcpu周期有效,写连接同样可以被延长至更多的时钟周期。当upwr信号有效(高电平)时,在clkcpu时钟的上升沿,数据从updatai写入USB控制器内部寄存器。
图6是微控制器接口总线字节选择示意图。本发明的微控制器接口可以配置成8位、16位或32位宽。当数据总线被配置成为16位或32位宽时,size信号用来选择总线上哪一个字节有效。参见表1和表2。
图7是Slave FIFO接口框图。本发明中Slave FIFO接口的时钟与微控制器接口的相同,它的位宽由参数配置决定.Slave FIFO接口可以配置为8位、16位或32位宽。如图7所示,信号FIFO输入有效(Fifoindvi)和FIFO输出有效(fifooutdvo)的值说明数据总线上有多少字节是有效,数据总线上的每一个字节都有一个相对应的有效位。结束信号(Fifoend、fifooutskip)用来结束包传递并指向端点缓冲器(ENDPOINT buffer)。外部FIFO控制器(master FIFO)驱动FIFO读使能(fifooutrd)和FIFO写使能(fifoinwr)的输入。Master FIFO从输出端点(OUT ENDPOINT)读数据,向输入端点(IN ENDPOINT)写数据。在每一个微控制器时钟上升沿到来时,由FIFO读使能控制数据从OUT端点读出,由FIFO写使能控制数据向IN端点写入,当满信号(FIFOfifoinfull)被设置,说明所对应的输入缓冲(In buffer)已经写满,相应地当空信号(fifooutempty)被设置,说明所对应得输出缓冲(Out buffer)已经读空。FIFO地址信号(Fifoaddr)用来选择端点号,端点1-端点15可以用来传输数据。当fifoaddr=0,读、写连接都被禁止。
图8是通过slave FIFO接口往IN端点写数据时序图。Fifoaddr信号用来选择合适的端点(ENDPOINT)号。当数据总线(fifoindatai)配置为8位宽时,数据有效信号(fifoindvi)始终设为“1”,当fifoindvi配置成16位或32位宽时,fifoindvi输入指示数据总线上哪个字节有效。当满足(1)外部FIFO“master”使得写信号(fifoinwr)有效;(2)外部FIFO“master”设置相应的有效位为“1”;(3)fifoinfull信号为“0”(未写满)时,fifoindatai总线上的数据有效,数据写入FIFO IN buffer。
图9是通过slave FIFO接口从OUT端点读数据时序图。Fifoaddr信号用来选择合适的端点号。在开始读数据之前,外部FIFO“master”需要声明fifoaddr信号有效至少一个时钟周期。当数据总线(fifooutdatao)配置为8位宽时,有效选择信号(fifooutdvo)一直有效;当fifooutdatao配置为16位或32位宽时,fifooutdvo输出指示fifooutdatao总线上哪一个字节有效。当满足(1)外部FIFO“master”使读信号(fifooutrd)有效;(2)相应有效位置“1”;(3)FIFO空信号(fifooutempty)为“0”(未读空)时,fifooutdatao总线上的数据有效,数据从OUT端点读出。本发明的实例经过以下一系列步骤完成:
①功能建模,搭建测试平台模型;
②划分模块,进行RTL级HDL编码,并对测试平台进行行为级编码,完成本发明的RTL级设计和功能仿真;
③使用Design Compiler软件对RTL级代码综合,通过静态时序分析和门级仿真;
④采用0.18微米工艺库进行布局布线,并通过相应的分析和检查。
本发明最高传输速率为480Mbps,有着良好的重用性和易集成性。

Claims (3)

1、一种接口可配置的USB控制器,其特征在于:它包含USB标准收发单元接口控制模块(1)、端点控制逻辑模块(2)、控制状态机模块(3)、可配置位宽的接口控制模块(4);USB标准收发单元接口控制模块(1)接收从主机传来的数据包,并进行解析,在控制状态机模块(3)的控制下将数据分发到端点控制逻辑模块(2),并且通过可配置位宽的接口控制模块(4)与微处理器和外部先进先出缓冲器进行通讯。
2、根据权利要求1所述的接口可配置的USB控制器,其特征在于:所述可配置位宽的接口控制模块(4)设有一组同步的微处理器读/写接口,其数据总线位宽可以配置成适应不同连接要求的8位或16位或32位;可配置位宽的接口控制模块(4)提供一个可编程的选择位宽信号,当数据总线被配置为16位或32位宽而微处理器为8位时,位宽信号用来决定数据总线中相应的字节有效。
3、根据权利要求1所述的接口可配置的USB控制器,其特征在于:可配置位宽的接口控制模块(4)设有与端点缓冲器直接连接的从先进先出接口。
CNB2007100197109A 2007-02-06 2007-02-06 接口可配置的通用串行总线控制器 Expired - Fee Related CN100462952C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100197109A CN100462952C (zh) 2007-02-06 2007-02-06 接口可配置的通用串行总线控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100197109A CN100462952C (zh) 2007-02-06 2007-02-06 接口可配置的通用串行总线控制器

Publications (2)

Publication Number Publication Date
CN101071406A true CN101071406A (zh) 2007-11-14
CN100462952C CN100462952C (zh) 2009-02-18

Family

ID=38898636

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100197109A Expired - Fee Related CN100462952C (zh) 2007-02-06 2007-02-06 接口可配置的通用串行总线控制器

Country Status (1)

Country Link
CN (1) CN100462952C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599053B (zh) * 2008-06-05 2011-05-25 联想(北京)有限公司 支持多种传输协议的串行接口控制器及控制方法
CN104731746A (zh) * 2013-12-20 2015-06-24 上海华虹集成电路有限责任公司 设备控制器装置
CN113283464A (zh) * 2021-03-30 2021-08-20 长芯盛(武汉)科技有限公司 一种支持usb信号链路训练的usb插头及传输***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
DE10042633C2 (de) * 2000-08-30 2002-06-20 Infineon Technologies Ag Erkennung eines Geräte-Anschlußzustands beim USB
US7586888B2 (en) * 2005-02-17 2009-09-08 Mobitrum Corporation Method and system for mesh network embedded devices

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599053B (zh) * 2008-06-05 2011-05-25 联想(北京)有限公司 支持多种传输协议的串行接口控制器及控制方法
CN104731746A (zh) * 2013-12-20 2015-06-24 上海华虹集成电路有限责任公司 设备控制器装置
CN113283464A (zh) * 2021-03-30 2021-08-20 长芯盛(武汉)科技有限公司 一种支持usb信号链路训练的usb插头及传输***
CN113283464B (zh) * 2021-03-30 2022-05-17 长芯盛(武汉)科技有限公司 一种支持usb信号链路训练的usb插头及传输***

Also Published As

Publication number Publication date
CN100462952C (zh) 2009-02-18

Similar Documents

Publication Publication Date Title
CN102023954B (zh) 具有多路i2c总线的装置、处理器、***主板及工控计算机
KR100572165B1 (ko) 유니버셜 직렬 버스 디바이스 컨트롤러
CN102023956B (zh) 集成电路芯片中串行外设从器件接口结构及数据读写方法
CN110471872B (zh) 一种基于zynq芯片实现m-lvds总线数据交互***和方法
CN101604301B (zh) 使用绑定选择在pci配置空间中转换的适配器
CN101587462B (zh) 高速数据通信链路中的usb数据传输装置及其数据传输方法
CN102420877B (zh) 一种多模式高速智能异步串口通信模块及实现方法
CN104156333A (zh) 一种基于fpga的uart多接口扩展***和方法
CN103164314A (zh) 基于异步物理层接口的PCIe接口芯片硬件验证方法
CN100462952C (zh) 接口可配置的通用串行总线控制器
US7610415B2 (en) System and method for processing data streams
CN101655825B (zh) 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法
WO2001082089A2 (en) Modular computer system
CN104484302A (zh) 基于usb接口的实现两台主机之间双向通信与控制的***
TWI727581B (zh) 資料傳輸系統
CN101576867B (zh) 一种扩展通用异步串行接口方法、装置和***
CN112035399A (zh) 一种基于fpga的spi从机模块实现方法
Wu et al. The research and implementation of interfacing based on PCI express
CN112732511A (zh) 一种基于hdlc协议高性能高速同步422仿真器板卡
Depari et al. IEEE1451 smart sensors supporting USB connectivity
EP1161727B1 (en) Bus bridge
EP1188120B1 (en) Computer docking system and method
Sipala Development and characterization of a USB communication between two microcontrollers general purpose STM32 to analyze the digital IP in order to improve its performance
Mahapatra et al. FPGA implementation of UTMI and protocol layer of USB 2.0
CHAITANYA et al. Design of UART Interface for SPI Flash

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090218

Termination date: 20160206

CF01 Termination of patent right due to non-payment of annual fee