USB系统组成及模块设计

发布者:RadiantEyes最新更新时间:2013-08-31 来源: dzsc关键字:USB系统  通用串行总线  IP核 手机看文章 扫描二维码
随时随地手机看文章

  1 引 言

  USB ,是英文Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。

  随着半导体工艺技术的发展,集成电路设计者能够将愈来愈复杂的功能集成到单硅片上。SoC是将系统集成在一块芯片上,包括微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)等。SoC的一项关键技术即为IP(Intellectual Property)复用技术。IP核是指在电子设计中预先开发的用于系统芯片设计的可复用构件,系统设计者在进行一个复杂设计时将众多IP核在一个芯片上有效集成,从而构成一个功能强大的系统。

  在设计IP核时应注意其可重用性,为了增强IP核的可能重用性,使IP核能更好地适应不同总线结构的SoC平台,可以为IP核设计一个总线接口模块。该模块主要完成片上总线的协议转换和实现,称之为总线适配器(BusAdapter)。其特点为:IP核与外部的片上总线标准无关,其逻辑相对固定,只需对相应的总线适配器进行配置就能够有效地集成于不同片上总线的SoC平台。当前SoC中常用的总线协议有三种分别是:ARM公司的AMBA、Silicore公司的WISHBONE SoC Interconnection Archi—tecture和Ahera的Avalon总线。

  本文实现的USB IP核中,设计了总线适配器,在综合前针对WishBone总线或AMBA ASB总线通过宏定义进行设置,从而使USB IP核能够直接集成于WishBone或AMBA ASB总线的SoC系统中。

2 USB系统组成部分

  系统主要分为三个部分:主机、设备和互连。在任何的系统中,只有一个主机,与主机系统的接口称作主机控制器。他可由硬件、固件和软件综合实现。设备可以分为功能性设备即外设和集线器,前者作为系统的功能扩展设备而后者作为设备的扩展连接点。互连定义了主机和外设的连接和通信方式。包括总线拓扑结构、内部分层关系、数据传输模型和总线访问控制等几个部分。一个简单的系统可以由一台主机和一个外设构成。

3 USB的模块设计

3.1 模块划分

  USB IP核主要是实现了USBl.1协议,在对整个协议分析的基础上,整个IP核共分成五大模块:串行接口引擎模块、协议层模块、端点控制模块、端点存储模块和总线适配器模块。串行接口引擎主要是支持最底层的USB协议,由于USB协议中为了增加抗干扰对比特流进行了“不归零码(Non Return to Zero Invert)”的编解码,同时为了可以从比特流中提取同步信号用了“位填充”和“位剔去”。串行接口主要完成比特流方面的处理。协议层模块则主要是完成解包和打包。在USB协议中,数据缓冲区用了端点(Endpoint)这个概念,不同的缓冲区用了不同的端点号来区分,端点存储模块就是相应的数据缓冲区。端点控制模块主要是端点控制寄存器和端点状态寄存器,对端点进行相应的控制。总线适配器模块主要是在不同总线结构的SoC中,对USB IP核总线接口进行相应的配置,从而可以进行无缝连接到相应的SoC中。USB IP核模块划分如图1所示。 


3.2 串口接口引擎

  串口接口引擎主要是完成USB协议中比特流的处理。根据数据的传输方向可分为发送部分和接收部分。发送部分即为USB设备给USB主机发送数据,接收部分则为USB设备从USB主机那里接收数据。如图2所示。 

  接收部分:从同步域中恢复出12

  MHz的时钟信号,接收主机过来的比特流对其进行不归零码(NRZI)解码,剔除位填充然后进行串并转换,最后将转换后的数据以字节的形式传给协议层。接收部分还要能判断出一个包的开始,在USB传输过程中,是以包为单位的,因此接收部分首先要测包的开始SOP(Start

  of Packet),所有包都是从同步字段(SYNC)开始的,同步字段是产生最大的边缘转换密度(Endge Transition

  Density)的编码序例。以NR—ZI编码的二进制串“KJKJKJKK”同步字段最后2位是同步字段结束的标记,同时标志了包标识符(Pacekt

  Iden一tiler,PID)的开始。只有当检测到包SOP才开始后面的NRZI解码、去位填充和串并操作,否则就继续处于等待阶段。

  在接收部分还需要有检错部分,在检查到传输过来的数据有错误时,要进行相应的错误处理。如在NRZI解码后,在对数据进行去位填充时发现了有连续7个“1”则可以认为数据在传输过程中出现了错误,数据包已经损坏,必须通知协议层。在接收部分需要特别注意的是:在接收USB主机过来数据时,是不同的时钟域,因此必须考虑到亚稳态问题。在本设计中,由于只处理单个比特信号,因此用了两级寄存器来消除亚稳态。

  发送部分:将协议层打包好的加上同步字段,然后进行并串转换,将字节形式转换成比特流形式,接着根据协议将数据进行位填充和NRZI编码,通过D+和D一信号传送给USB主机。这个同步字段也是告诉USB主机有一个新数据包发送过来了,在发送部分还要产生包结束EOP(End of Packet)的信号。[page]

3.3 USB协议层

  协议层主要分成三个子模块:解包模块、打包模块和协议引擎模块。这一层主要是将经过串口接口引擎模块过来的数据进行解包,剔除USB协议中的信息。同时将端点中要发送的数据,在协议引擎控制下进行相应的打包,然后通过SIE模块传送给USB主机。

3.3.1 解包模块
   
  本模块主要将接收到的信息包数据进行解析,解析出包标识(PID),端点地址和USB设备地址以及包含在包中的有效数据。在解包时,对令牌包进行CRC5校验,对数据包进CRCl6检验,若出错则进行相应的出错处理。从上面所述可知,任何包都有同步字段而同步字段在串口接口引擎模块中已经除去了,因此本模块不用关心同步字段。整个解包数据流如图3所示。

   

    整个解包过程如下:首先判断接收的包是什么包,若为TOKEN包(0UT或IN或SOF或SETUP或ACK或NAK或STALL或PRE)则转入到TOKEN包的处理进程,若为数据包(DATA0或DATAl)则转入到DATA包的处理进程。在TOKEN包或DATA包中若发现数据有错则丢弃此包并报错。
3.3.2 打包模块
 
  根据PE送来的PID组织相应的信息包,把要发送的数据安排在相应的数据包,或者组织令牌包。发送令牌包时,不必产生CRC5校验位。在发送数据包时,需要把有效数据的CRCl6校验位放在末尾一起发送。这个模块主要就是如何把协议层引擎模块送过来的数据进行打包,打包的概念其实质就是把要发送的数据根据其相应的信息安排相应的发送顺序。同样打包的过程中也不用考虑同步字段,同步字段在串口接口引擎层加入。整个打包数据流如图4所示。
 
3.3.3 协议层引擎模块
 
  在USB设备中,某一个时刻和主机通信的只能是一个端点,当前操作都基于这个端点地址。主机不能同时和几个端点进行通信,端点的属性在设备和主机刚开始连接时进行的枚举过程中已经确定,保存在各端点对应的寄存器中,比如是IN还是OUT端点,是支持控制传输、批量传输还是中断传输的端点等。协议引擎模块是整个协议层的核心控制单元,控制了其他所有模块的工作方式,根据当前端点的配置或当前状态处理传输事务,并在传输事务中实时更新控制与状态寄存器。他的功能包括:有效处理IN,OUT和SETUP事务,确定当前传输事务要操作的端点地址,正确应答各种包和管理数据的发送和接收,同时实现USB协议中的错误恢复机制。
 
3.4 端点控制模块和端点模块
 
  端点模块:端点其实就是USB进行通信时,用于存数据的缓冲区,为了提高数据存取的速度,本IP核的端点设计成FIFO。端点控制模块:主要是端点控制寄存器和端点状态寄存器,此模块中包含了USB IP核的顶层控制和状态寄存器。如USB设备的状态控制寄存器、设备地址寄存器、中断屏蔽寄存器和中断源寄存器等。为了增加灵活性,在设计时针对每一个端点分别设计了设置和功能相同但地址不同的寄存器,包括端点的控制状态寄存器、中断源寄存器、中断屏蔽寄存器、缓冲区的指针寄存器。端点根据协议可以配置1到16个,在实际设计中根据本身系统需要可以对USB IP核配置端点数,增加了USB IP核端点可扩展性。
 
3.5 总线适配器模块
 
  此模块是为了提高本IP核的可重用性而设计的。他主要包括WishBone总线接口、AMBA ASB总线接口和相应的配置寄存器。若使用于WishBone总线结构的SoC中,则在综合前通过宏定义进行设置启用WishBone总线接口,这样整个USB IP核可以无缝接入WishBone总线结构的SoC中。若使用于AMBA ASB总线结构的SoC中,则在综合前通过宏定义进行设置启用AMBA总线接口无缝接入其SoC中。由于是在综合前通过宏定义的,因此在实际综合的时候,只会将宏定义的总线模块综合成实际电路,而不会两个总线接口模块都给综合,节省资源。同时当此IP核要应用于其他的总线结构SoC中,如Altera的Avalon总线,则只要根据此总线协议再设计一个总线接口模块,在综合时启用此总线接口模块就可以将此IP核直接应用于此SoC中。因此本USB IP核对于不同总线的SoC利用总线适配器使具体较强灵活性,可重用性强。
 
4 FPGA验证
 
  本USB IP核已经应用于一款数据采集单芯片系统中。因此在进行FPGA验证时,是将此IP核嵌入于此单芯片系统中进行的。此单芯片系统中嵌入UART模块可与PC机的串口进行通信,此系统中的增强型8051MCU核对整个USB IP核进行相应的控制。FPGA验证采用了Xilinx公司的ISE集成开发环境,在调试的过程中用了ChipSeope Pro软逻辑分析仪。硬件平台用Xilinx公司的Virtex4系列中XC4VLX60器件。
  整个过程如下:

  (1)USB从设备与PC机的USB接口连接,此时USB从设备要完成设备枚举的过程。

  (2)设备枚举完成PC机会提示驱动程序还没有装,要求加载驱动程序在PC机上加驱动程序,USB的驱动程序直接与PC机的操作系统联系,项目中的USB接口是在Windows XP操作系统中调试的。

  (3)在驱动程序加载完成后,PC机会提示“现在可以正常通讯”,表明现在可以利用USB的应用层软件进行通信了。

  (4)将数据从PC机的应用层输入,通过USB接口发给嵌入USB IP核的数据采集SoC芯片,然后通过其中的SoC中UART将数据返回给PC机,经过比较两者数据完全相同,验证表明了此IP核的正确。

  图5是在进行IP核FPGA验证时,设备枚举阶段PC的USB主机发送给USB IP核的帧开始(SOF)包。
  
 
    fs_clk为从PC机发过来的比特流恢复过来的12 MHz的时钟信号。rx_data表示收到的数据,如图5所示在rx_valid高电平时,表明收到的rx_data是有效的,从图中可以看出收到了十六进制数“A5—43—85”,此包正是PC机发给USB IP核的SOF包。rxdp和rx_dn是串口接口引擎模块中的信号,他经过一个三态门与图1所示的D+和D一相连接。由图中可以看出,在“85”收到时,rxdp和rx_dn的波形表明收到了PC机发过来的两个fS_clk时钟周期的“SE0”表示包结束的信号。

5 结 语

  本USB IP核在设计时,充分考虑到可重用性,其USB端点可进行相应的配置和扩展。同时针对目前SoC中常用的WishBone总线和AMBA ASB总线结构设计了总线适配器,在综合前进行相关的宏定义就可以无缝接入SoC中。本USB IP核在实际项目中,与MCU核以及其他的IP核集成于一款数据采集SoC芯片中,该数据采集SoC已经处于版图后仿真阶段,即将流片。
关键字:USB系统  通用串行总线  IP核 引用地址:USB系统组成及模块设计

上一篇:USB2.0主机控制器IP核的设计
下一篇:一种USB-RS232转换模块设计

推荐阅读最新更新时间:2024-05-02 22:45

Microchip推出模拟电阻式USB触摸屏控制器
全新控制器提供立即可用的芯片或板上产品,配备适用于大多数主要操作系统的免费驱动程序 全球领先的整合单片机、模拟器件和闪存专利解决方案的供应商——Microchip Technology Inc.(美国微芯科技公司)宣布,推出mTouch™ AR1100模拟电阻式USB触摸屏控制器。AR1100控制器基于AR1000模拟电阻式触摸屏控制器系列,是一种高性能、USB即插即用器件,具备先进的校准功能,充当USB鼠标或单输入数字化仪。全新控制器提供立即可用的芯片或板上产品,可利用适用于大多数主要操作系统的免费驱动程序支持所有4线、5线和8线触摸屏。若客户需要一个嵌入式触摸控制器以广泛支持其整个标准电阻式触摸产品组合,AR1100是一个理
[嵌入式]
Microchip推出模拟电阻式<font color='red'>USB</font>触摸屏控制器
USB Type-C和Quick Charge概览
USB 和Quick Charge(QC)是当前市场两大新的供电标准,也是市场趋势。这两大标准的共同特点是输出 需要调节。安森美 推出的单电感H桥升降压 NCP81239可以适配宽输入电压范围和宽输出电压范围,特别适合用于USB type-c或QC 3.0等需要根据用电设备要求进行电压调节的应用。芯片集成的I2C接口可和外部的 (MCU)配合进行输出电压的步进调整,且可在同一个type-c端口实现多种快充协议如 USB PD type-c、QC 2.0/3.0,能对接苹果LighTIng 接口快充协议,和三星接口快充协议等。 USB type-c和Quick Charge概览 1. USB Type-C 电子产品如电脑
[电源管理]
在智能手机中实现USB 2.0端口共享
移动设备需要许多信号处理集成电路(IC)以满足用户各种不同的功能要求。典型的智能手机包含一个通信处理器、一个应用处理器和一个功率管理IC,它们都必需共享单个USB端口,并以480Mbps的高速USB数据速率进行通信。本文专门介绍一些能够解决该问题的方案,并对从USB集线器到简单模拟开关的各种不同解决方案进行比较。 智能手机的一种设计方式是让内部的功率管理器件来控制单个USB2.0端口,这可以通过采用一个3:1的多路复用USB开关把USB 2.0端口转向自身来完成。默认情况下,其也可转向应用处理器,用来实现大多数多媒体功能性(比如MP3播放或视频处理)。还可转向通信处理器,用于无线电通信,可实现数据访问或通话(见图1)。这
[手机便携]
在智能手机中实现<font color='red'>USB</font> 2.0端口共享
Connective Peripherals USB Type-C串口适配器电缆问市
Connective Peripherals现在可以向全球市场提供配备USB - C型终端的转换器电缆解决方案。这些来自FTDI批准的模块/电缆分包商的新电缆将对工程师具有相当大的价值,有助于促进现代电子硬件与传统设备和外设的互连。覆盖USB-to-RS232, USB-to-TTL和USB-to-MPSSE数据接口,它们可以提供在全速或高速版本。 Connective Peripherals是目前市场上唯一一家提供C型终端高速成型电缆的供应商。这些电缆重量轻,但结构坚固可靠,长度多种多样,包括0.1米、0.5米、1.0米和1.8米(取决于特定型号指定)。 这些符合FCC和CE标准的电缆的关键用途与嵌入式系统开发和评估活
[网络通信]
Connective Peripherals <font color='red'>USB</font> Type-C串口适配器电缆问市
USB3.0中五分频电路设计
引言   USB 3. 0 是通用串行总线( Universal Serial Bus)的最新规范, 该规范由英特尔等大公司发起, 其最高传输速度可达5 Gb/ s,并且兼容USB 2. 0 及以下接口标准。物理层的并串/ 串并转换电路是U SB 3. 0 的重要组成部分, 在发送端将经过8 b/ 10 b 编码的10 位并行数据转换成串行数据并传输到驱动电路, 在接收端将经过CDR( Clock and Data Recovery) 恢复出来的串行数据转换成10 位并行数据。在并串/ 串并转换过程中,同时存在着时钟频率的转换, 若串行数据采用时钟上下沿双沿输出,则串行数据传输频率降低一半, 并行传输时钟为串行传输时钟的1
[模拟电子]
<font color='red'>USB</font>3.0中五分频电路设计
iOS 13新截图:新一代iPhone要上USB-C接口?
为了让iPad摆脱“大号玩具”的称号,苹果正在努力改造这个产品线,比如单独列出一个iPad OS系统,就是最好的证明。   之前,苹果在iPad产品线上引入了USB-C接口,而新的iOS 13系统中还加入了鼠标模式,这大大提高了工作效率,是不是iPhone也要遵循这样的升级路线呢?   现在,网上流传的一张谍照显示,iOS 13的系统恢复模式下清楚地显示了一个UBC-C插头,这个图标与此前旧版系统的Lightning插头完全不同。   之前就曾有消息称,新一代iPhone可能全面转向USB-C接口,从而结束了用户拥有快速充电头却必须要另外购买线缆才能快速充电的窘境,不过目前还没有确切消息证明上述这就是苹果在推动,并打算发
[手机便携]
让设备轻松升级的独立式USB Type-C 输电控制器
意法半导体推出 STUSB4500独立式USB Type-C 输电控制器 。集供电和充电为一体的标准USB-C接口兼具便利性和环境效益。如今STUSB4500将把这些优势延伸到到各类消费、工业和医疗产品。 STUSB4500是一款通过相关行业认证的独立式USB PD控制器,专为使用一条USB-C线缆供电的受电端应用优化设计,用户可以按照自己的应用方案轻松地自定义STUSB4500的设置。 根据存放在内部非易失性存储器内的默认电源配置文件(PDO),STUSB4500控制器会执行意法半导体独有的算法,与供电设备协商输电协议,无需任何内部支持(自动运行模式),这使其成为自动大功率配置文件充电的理想选择,特别适合给无电量的
[电源管理]
让设备轻松升级的独立式<font color='red'>USB</font> Type-C 输电控制器
外媒爆料:下代入门级iPad大改款 A14芯片还有5G/USB-C也有了
外媒9to5Mac报道称,苹果公司未来的入门级iPad会采用A14仿生芯片、USB-C借口,并支持5G连接。    此前,他们就曾从消息源头获知,苹果新一代iPad Air的细节,也就是M1芯片并支持5G连接 ——事实证明,该报道是正确的。    目前定价为329美元的入门级iPad是该系列中最实惠的 iPad。出于这个原因,苹果已经多年没改变他的设计,目前还是有home键的版本,接口也是Lightning而不是更现代的USB-C。    今年,看起来苹果终于要给低价iPad进行更重大的升级了。 9to5Mac看到的信息显示,新的第 10代 iPad(代号 J272Ω将配备USB-C端口而不是Lightning。这意味着苹果终
[手机便携]
外媒爆料:下代入门级iPad大改款 A14芯片还有5G/<font color='red'>USB</font>-C也有了
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved