USB2.0接口IP核的开发与设计
发布时间:2008/6/3 0:00:00 访问次数:365
系统结构设计
本文所设计的usb 2. 0 接口完全依据于usb 2. 0的协议,可以完成协议的处理和数据的交换。整个系统采用了mcu 固件和硬件电路相结合的设计方法,根据不同的功能以及软硬件实现的难易程度,进行了相应的模块划分。从图1 中可以看出,硬件电路分成4 个模块:收发器,usb 协议控制器,工作模式控制器和缓存控制器。这些模块将在下面具体介绍。
根据协议可知,usb 定义了四种传输类型:控制传输、批量传输、中断传输和同步传输。 其中控制传输是用于支持在设备和主机之间关于设置信息、命令信息和状态信息的传送,是必不可少的,而其他三种传输方式是真正有用的数据传输,是可选的。mcu 作为固件,其功能是协助完成usb 的控制传输,这可使设计简单,因为如果这部分功能使用硬件电路来实现将会变得非常复杂。虽然单片机的速度很慢,远远低于硬件电路,但是对于整个系统来说,控制传输只发生在主机和设备连接的开始阶段和其他传输之前,因此速度稍慢一些对整个系统的在传输速度方面的性能影响不大;但是对于其他传输方式,尤其是同步传输和批量传输来说,这样会降低usb 2. 0 高速传输的性能,是不能容忍的,所以这就决定了其不能参与usb 其他方式的数据传输。
模块设计
收发器( transceiver)
根据utmi(usb transceiver macrocell interface) ①可知,usb 2. 0 接口的收发器主要负责时钟和数据的恢复、位填充和位剥离、nrzi(非归零反转) 的编码和解码、串并和并串的转换、同步字段和包结束码的检测和生成等功能,同时支持高速和全速传输,提供30 mhz(16 位并行数据) 时钟和60 mhz(8位并行数据) 时钟。
因为这部分是usb 2. 0 接口的模拟前端,并且是高速(480 mhz) 的串行信号处理,为了降低设计难度和减小开发周期,本文直接采用了cypress 公司的cy7c 68000 芯片。
工作模式控制器( work mode controller)
根据协议可知,从usb 设备连接到主机的usb 接口的过程中,usb 设备有多种可能的状态。不同的状态实现不同的功能。特别注意的是,如果usb 设备在一段特定的时间内探测不到总线活动时,必须进入挂起态,此时usb 设备保持当前的状态、地址及配置,这样可以有效地降低功耗。当检测到总线上任何非空闲信号时,设备必须被唤醒,回到原来的工作状态。
该模块主要负责usb 设备的状态转换,包括设备与主机的高速握手信号检测、主机复位信号检测、挂起和唤醒状态检测等功能。具体的状态转化过程如图2 所示。
当usb 设备刚刚和主机建立连接时,工作在全速状态,主机发送复位信号,在复位过程中,设备发送chirp k 信号给主机,支持usb 2. 0 的主机接收到此信号后发送3 组交替的chirp k和chirp j信号。设备探测到此信号后,在复位信号结束后就工作在高速(480mbps) 工作状态,否则usb 设备工作在全速(12 mbps) 状态.当设备工作在高速模式下时,直接使用收发器提供的30mhz 的时钟;当设备工作在全速模式下时,此模块要对收发器提供的时钟进行40分频,然后再供给usb 的其他模块单元。这是因为在全速工作模式时,数据传输的串行速率是12mbps ,仅为高速传输的1/ 40。检测总线状态,当接收到来自主机的软复位信号时,此模块负责产生复位信号给整个usb 接口电路。处在任何一种状态的设备都必须接收主机的复位信号。
检测总线状态,当usb设备发现总线上的连续空闲(高速时总线状态为se0 ,全速时总线状态为j ) 时间超过3 ms 时,该模块产生挂起(suspend) 信号给整个usb 2. 0 接口电路,使之进入挂起状态,所有模块都不工作,此时整个电路的功耗会变得很低;处在挂起状态的设备,探测到总线上的非空闲(总线状态一般为k态) 信号时则产生唤醒信号,使整个电路在一定时间内回到全速或高速工作状态。
usb协议控制器( usb protocol controller)
这部分是usb 2. 0 接口电路的核心单元,处理大部分usb2. 0 的协议请求,完成数据的通信。usb总线
系统结构设计
本文所设计的usb 2. 0 接口完全依据于usb 2. 0的协议,可以完成协议的处理和数据的交换。整个系统采用了mcu 固件和硬件电路相结合的设计方法,根据不同的功能以及软硬件实现的难易程度,进行了相应的模块划分。从图1 中可以看出,硬件电路分成4 个模块:收发器,usb 协议控制器,工作模式控制器和缓存控制器。这些模块将在下面具体介绍。
根据协议可知,usb 定义了四种传输类型:控制传输、批量传输、中断传输和同步传输。 其中控制传输是用于支持在设备和主机之间关于设置信息、命令信息和状态信息的传送,是必不可少的,而其他三种传输方式是真正有用的数据传输,是可选的。mcu 作为固件,其功能是协助完成usb 的控制传输,这可使设计简单,因为如果这部分功能使用硬件电路来实现将会变得非常复杂。虽然单片机的速度很慢,远远低于硬件电路,但是对于整个系统来说,控制传输只发生在主机和设备连接的开始阶段和其他传输之前,因此速度稍慢一些对整个系统的在传输速度方面的性能影响不大;但是对于其他传输方式,尤其是同步传输和批量传输来说,这样会降低usb 2. 0 高速传输的性能,是不能容忍的,所以这就决定了其不能参与usb 其他方式的数据传输。
模块设计
收发器( transceiver)
根据utmi(usb transceiver macrocell interface) ①可知,usb 2. 0 接口的收发器主要负责时钟和数据的恢复、位填充和位剥离、nrzi(非归零反转) 的编码和解码、串并和并串的转换、同步字段和包结束码的检测和生成等功能,同时支持高速和全速传输,提供30 mhz(16 位并行数据) 时钟和60 mhz(8位并行数据) 时钟。
因为这部分是usb 2. 0 接口的模拟前端,并且是高速(480 mhz) 的串行信号处理,为了降低设计难度和减小开发周期,本文直接采用了cypress 公司的cy7c 68000 芯片。
工作模式控制器( work mode controller)
根据协议可知,从usb 设备连接到主机的usb 接口的过程中,usb 设备有多种可能的状态。不同的状态实现不同的功能。特别注意的是,如果usb 设备在一段特定的时间内探测不到总线活动时,必须进入挂起态,此时usb 设备保持当前的状态、地址及配置,这样可以有效地降低功耗。当检测到总线上任何非空闲信号时,设备必须被唤醒,回到原来的工作状态。
该模块主要负责usb 设备的状态转换,包括设备与主机的高速握手信号检测、主机复位信号检测、挂起和唤醒状态检测等功能。具体的状态转化过程如图2 所示。
当usb 设备刚刚和主机建立连接时,工作在全速状态,主机发送复位信号,在复位过程中,设备发送chirp k 信号给主机,支持usb 2. 0 的主机接收到此信号后发送3 组交替的chirp k和chirp j信号。设备探测到此信号后,在复位信号结束后就工作在高速(480mbps) 工作状态,否则usb 设备工作在全速(12 mbps) 状态.当设备工作在高速模式下时,直接使用收发器提供的30mhz 的时钟;当设备工作在全速模式下时,此模块要对收发器提供的时钟进行40分频,然后再供给usb 的其他模块单元。这是因为在全速工作模式时,数据传输的串行速率是12mbps ,仅为高速传输的1/ 40。检测总线状态,当接收到来自主机的软复位信号时,此模块负责产生复位信号给整个usb 接口电路。处在任何一种状态的设备都必须接收主机的复位信号。
检测总线状态,当usb设备发现总线上的连续空闲(高速时总线状态为se0 ,全速时总线状态为j ) 时间超过3 ms 时,该模块产生挂起(suspend) 信号给整个usb 2. 0 接口电路,使之进入挂起状态,所有模块都不工作,此时整个电路的功耗会变得很低;处在挂起状态的设备,探测到总线上的非空闲(总线状态一般为k态) 信号时则产生唤醒信号,使整个电路在一定时间内回到全速或高速工作状态。
usb协议控制器( usb protocol controller)
这部分是usb 2. 0 接口电路的核心单元,处理大部分usb2. 0 的协议请求,完成数据的通信。usb总线
深圳服务热线:13751165337 13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)

深圳市碧威特网络技术有限公司
付款方式