微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一款集成HUB的USB设备控制器的设计

一款集成HUB的USB设备控制器的设计

时间:12-13 来源:互联网 点击:
近年来,USB技术已经成为计算机领域发展最快的技术之一,得到了广泛的应用。早在1998年,由于USB1.1规范的推出以及Windows98加强了对USB的支持,USB就得到了飞速的发展和普及,各种USB设备不断涌现。2000年,USB2.0规范推出之后,USB一扆只能适用于中低速设备的局面,在高速传输领域也占领了大量的市场份额。2001年推出的USB-OTG解决了大量USB设备之间的直接互连问题,因此USB规范将得到更加迅速的发展。


根据USB规范,USB系统的拓扑结构呈金字塔状,集线器(HUB)是金字塔中不可或缺的部件,是主机与设备之间建立连接的桥梁。根据USB2.0规范,全速USB HUB可以连接低速、全速和高速下行设备(高速设备降为全速运行)。

本文提出一款基于6502 MCU的通用的带HUB的全速USB设备控制器的体系结构,并完成整个芯片的设计。这款芯片可以用来开发带HUB的全速USB设备、全速USB设备和全速USB HUB。

1 系统设计

常见的USB设备控制器的功能结构框图图1所示。收发器用于实现牧师层的USB规范,它包含一个接收器和一个发送器,接收器用于接收和判决总线D+、D-的信号,发送器用于驱动D+、D-的信号。串行接口引擎(SIE)主要用于解析协议层的USB规范,如时钟提取、NRZI编码/解码、比特填充/抽取、CRC校验、PID检测/产生、串并/并串转换等。功能控制器主要用于处理功能层的USB规范。缓冲区是功能控制器与SIE互相通信的桥梁,通常SIE把总线上接收到的数据存放在缓冲区中,供功能控制器读取并解析;同时,功能控制器又会把需要发送的数据存放在缓冲区中,供SIE读取并发送。

集成HUB的USB设备控制器又称为复合设备控制器,它在本质上是两个USB设备,在系统中拥有两个不同的设备地址。因为USB是分时复用的串行总线,在正常情况下,任何时候主机都只能与系统中的某一个设备进行通信,所以复合设备控制器也可以把设备控制器和HUB控制器的很多部件合二为一,分时复用。

本文提出的集成HUB的全速USB设备控制器的设计方案如图2所示。该控制器支持一个上行端口和四个下行端口,并实现了USB键盘的功能。SIE主要负责物理层和协议层的协议解析,MCU主要负责设备层的协议解析,缓冲区是SIE和MCU之间通信的桥梁,SIE把接收到的数据包存放在缓冲区中供MCU读取,MCU把需要发送的数据存放在缓冲区中供SIE读取。数据转发功能主要由HUB转发器实现。

2 SIE设计

在USB HUB内部需要有一个全速SIE用来处理USB规范第八章规定的大部分协议,它的主要功能包括:

·包的识别与组织;

·时钟与数据分离;

·NRZI编码和解码;

·比特填充和提取;

·CRC校验码的识别和产生;

·地址检测;

·PID检测和产生;

·串/并转换和并/串转换。

在设计SIE的时候,根据它的功能又将其分成几个不同的模块,如图3所示。PHY模块主要完成数据的串/并转换和并/串转换、比特填充和提取、NRZI编码和解码、时钟与数据的分离等功能,此模块内部数据主要以串行状态存在。PL模块负责数据包的解析与组织、PID检测和产生、CRC检验码的识别和产生、地址检测等功能。FUNCTION模块完成SIE与MCU的接口逻辑功能。

3 转发器设计

转发器是HUB实现数据转发功能的核心模块。转发器实现的功能主要有:数据转发、帧同步、挂起唤醒处理、总线冲突检测与解决、往低速下行端口发送Keep-alive等。

在设计转发器的时候,根据数据的流向对转发器进行了进一步的模块细分,如图4所示。hub_up模块负责接收来自上行端口的信号,并检测出SOP和EOP;同时转发来自内部端口和下行端口的信号。hub_up模块包含四个子模块,支持四个下行端口,负责接收来自下行端口的信号,并检测出SOP和EOP;同时往下行设备转发合法的下行数据。rpt_engine模块中有一个重要的连接状态机,其状态转换如图5所示,它以数据包为单位控制上行端口和下行端口之间的连接的建立和拆除,同时控制集线器正确地挂起和唤醒。

图6、7

在图5所示的连接状态机中,状态跳转主要通过SOP(包开始)和EOP(包结束)信号实现,所以SOP和EOP信号直接影响状态机的正确跳转,从而影响了转发器的稳定性。检测SOP信号时要考虑两个重要的因素:首先,SOP信号要产生得尽可能快,从而可以较快地打开数据通道,减小数据流驶 SYNC的损失;其次,检测与本地时钟异步的数据流而产生的SOP信号要与本地时钟同步,否则会使寄存器建立时间和保持时间得不到满足。检测EOP信号时也要考虑两个因素:首先,要排除长度不够的SEO的干扰和SEO状态向J状态跳变的抖动干扰;其次,EOP信号也要与本地时钟时步。

全速H

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top