专利名称:Usb时序自适应装置、接口及其通讯方法
技术领域:
本发明涉及一种通用串行总线USB(Universal Serial Bus)技术,具体说,涉及一种USB时序自适应装置、接口及其通讯方法。
背景技术:
通用串行总线USB(Universal Serial Bus)是由Intel等厂商制定的连接计算机与具有USB接口的多种外设之间通信的串行总线。USB总线最多可支持127个USB外设连接到计算机系统。
USB外设可以采用内部电源(+5V,500mA),也可外接USB电源。
USB1.1的传输速率最高为12Mb/s(低速外设的标准速率为1.5Mb/s,高速外设的标准速率为12Mb/s)。USB2.0标准的速度比USB1.0/1.1快40倍,达480Mb/s。使USB推广到硬盘、电缆调制解调器、信息家电网络产品和其他的快速外设。
在USB2.0设备中有一个叫作PHY的物理层IP来专门处理模拟信号和高速数字信号,最终把高速的串行信号转为较低速(30M/60M)的并行信号输出给协议层。
PHY和协议层之间的接口称为UTMI。UTMI(USB2.0 TransceiverMacrocell Interface)是针对USB2.0的信号特点进行定义的,此接口主要是处理物理底层的USB协议及信号,可与SIE整合设计成专用ASIC芯片,也可独立作为物理层(PHY)的收发器芯片。
协议层的逻辑需要使用由PHY输出的时钟,称为usbclk(30M/60M)。当PHY输出数据时,协议层用usbclk对PHY产生的并行数据和控制信号进行采样。当协议层输出数据时,该数据是由usbclk时钟域的逻辑产生的。在FPGA prototype时用分立的PHY芯片,PHY和协议层接口部分的时钟和普通信号的延时不好控制,时钟和数据信号、控制信号之间的时序关系变得不好。
如图1所示,usbclk(USB CLOCK)是USB的时钟信号,信号0是理想的usbclk正沿采集信号,能够和数据信号相匹配,在信号0的条件下,物理层和协议层能够正常通讯。但是,在有些情况下,经采样后的信号和reset信号是不匹配的,使得协议层在收到reset信号后不能够及时收到交互性命令。例如,当信号1快于usbclk时钟信号时,信号1不能够被usbclk正沿A触发,在B沿被采样,协议层在收到reset信号后不能够及时收到经过采样的信号1,导致协议层与PHY的通信错误。
发明内容
本发明所解决的技术问题是提供一种USB装置的时序自适应接口,使得USB装置的物理层和协议层在接口处的时钟和数据的相位关系发生畸变时也能够正确进行通讯。
USB装置的时序自适应接口,所述USB装置包括物理层和协议层,所述时序自适应接口包括有设置于物理层和协议层之间的接口,所述时序自适应接口还包括有设置于物理层和协议层之间的负沿寄存器和多路选择器,其中,多路选择器,设置有第一输入端、第二输入端和输出端,所述输出端与协议层连接,所述物理层向协议层传送信号的数据线或者控制线与多路选择器的第一输入端相连;负沿寄存器,设置有时钟输入端、数据输入端和输出端,所述数据输入端与多路选择器的第一输入端相连,所述负沿寄存器的输出端和所述多路选择器的第二输入端相连接,该负沿寄存器通过USB装置时钟信号的负沿触发,用于将其数据输入端的输入信号延迟后输出,在所述USB装置插入计算机系统时,多路选择器选择其第一输入端的输入信号作为输出端信号,在所述物理层和协议层通讯出现错误时,多路选择器选择经过负沿寄存器的第二输入端的输入信号作为输出端信号。
优选的,所述多路选择器包括有用于选择输入信号的控制端,所述控制端由协议层控制。
优选的,所述负沿寄存器将数据输入端的输入信号延迟半个时钟周期后输出到多路选择器。
本发明所解决的另外一个技术问题是提供一种USB时序自适应装置,使得USB装置的物理层和协议层在接口处的时钟和数据的相位关系发生畸变时也能够正确进行通讯。
USB时序自适应装置包括物理层和协议层,以及物理层和协议层之间的接口,协议层包括控制器、微控制单元,其特征在于,所述控制器和物理层之间设置有负沿寄存器和多路选择器,其中,多路选择器,设置有第一输入端、第二输入端和输出端,所述输出端与控制器连接,所述物理层向控制器传送信号的数据线或者控制线与多路选择器的第一输入端相连;负沿寄存器,设置有时钟输入端、数据输入端和输出端,所述数据输入端与多路选择器的第一输入端相连,所述负沿寄存器的输出端和所述多路选择器的第二输入端相连接,该负沿寄存器通过USB时序自适应装置时钟信号的负沿触发,用于将其数据输入端的输入信号延迟后输出,在所述USB时序自适应装置插入计算机系统时,多路选择器选择其第一输入端的输入信号作为输出端信号,在所述物理层和协议层通讯出现错误时,多路选择器选择经过负沿寄存器的第二输入端的输入信号作为输出端信号。
优选的,所述负沿寄存器将数据输入端的输入信号延迟半个时钟周期后输出到多路选择器。
优选的,所述多路选择器包括有用于选择输入信号的控制端,所述控制端由微控制单元控制。
优选的,在所述USB时序自适应装置插入计算机系统时,所述计算机系统发送reset命令和交互性命令给USB时序自适应装置,此时,所述交互性命令经过多路选择器的第一输入端进入控制器,如果微控制单元经由所述控制器收到reset命令后规定时间内收到了交互性命令,则认为物理层和协议层通讯正常,否则认为物理层和协议层通讯出现错误时。
优选的,在物理层和协议层通讯出现错误时,微控制单元向物理层发送命令,使USB时序自适应装置在不掉电的情况下模拟实现拔出又插入的动作,之后,所述计算机系统重新发送reset命令和交互性命令给微控制单元,此时,所述交互性命令经过负沿寄存器后由多路选择器的第二输入端进入控制器。
优选的,所述物理层的串行数据线和计算机系统相连接。
本发明所解决的技术问题是提供一种USB装置的时序自适应通讯方法。
USB装置的时序自适应通讯方法包括如下步骤(1)将USB装置插入计算机系统,所述计算机系统对插入的USB装置进行枚举,发出reset信号和交互性命令;(2)如果协议层在收到reset命令后规定时间内收到了交互性命令,则认为物理层和协议层通讯正常,否则进行下述步骤;(3)协议层发送命令到物理层,使物理层实现一次软插拔,计算机系统对USB装置进行枚举,重新发出reset信号和交互性命令;(4)将重新发出的交互性命令延迟后发送到协议层。
进一步,步骤(1)中所述的reset信号不受usbclk时钟信号干扰。
进一步,步骤(2)具体为,当协议层收到reset命令后,如果在规定的时间内收到交互性命令,则实现协议层和物理层的正确通讯;如果在规定的时间内没有收到交互性命令时,协议层则发出命令到多路选择器,使多路选择器选择输入来自负沿寄存器的信号。
进一步,步骤(5)中所述负沿寄存器通过USB装置时钟信号的负沿触发,将从物理层采集的数据信号延迟半个时钟周期后输出。
当物理层和协议层的通讯出现问题时,通过对物理层的状态进行重新设置,使得PC机对USB设备进行重新枚举,实现了在USB装置不掉电的情况下的“软插拔”。通过负沿寄存器和多路选择器可以使协议层采用正确的时钟信号和物理层进行通讯,使得USB物理层和协议层即使在接口处的时钟和数据的相位关系发生畸变时,也能够正确进行通讯,并且,本发明技术方案能够自动适应多种时序相位变化。
图1是现有技术中,PHY和协议层在接口处时钟和数据的相位关系发生畸变时的时序图;图2是USB时序自适应装置的结构示意图;图3是PHY和协议层在接口处时钟和数据的相位关系发生畸变时的时序图。
具体实施例方式
下面参照附图对本发明的优选实施例作详细描述。
本发明优选实施例中,现场可编程门阵列FPGA(Field ProgrammableGate Array)是一个芯片,其内部包含有USB控制器、MCU和一些其他逻辑。USB收发器和所述FPGA是分立式的,其也可以被称为物理层(PHY)。然而,需要指出的是,在其他实施例中,USB收发器也可能被集成到FPGA内。
总体来说,本发明提供的USB时序自适应装置通过在协议层与物理层之间的接口(UTMI)加入了一级通过usbclk负沿触发的负沿寄存器,将这级负沿寄存器的输出信号送给协议层内部使用,来解决协议层与物理层之间因时钟信号和数据信号的相位关系发生畸变而导致的通讯错误的问题。
参照图2所示,在一个实施例中,所述USB时序自适应装置(也可以被简称为USB装置)可以是USB式硬盘、USB式MP3或U盘等USB设备。所述USB时序自适应装置包括物理层(PHY)1、负沿寄存器2、多路选择器(MUX)3、协议层,其中,协议层包含微控制单元(Micro Control Unit,简称MCU)5及USB控制器4,USB控制器4用于处理底层的信号,微控制单元(MCU)5用于完成上层的USB协议以及应用的功能,在微控制单元(MCU)5里设置有固件程序(Firmware)。
负沿寄存器2和多路选择器(MUX)3设置在物理层(PHY)1和控制器4之间的UTMI接口上。负沿寄存器2设置有一个输出端和两个输入端,两个输入端分别为时钟输入端和数据输入端。多路选择器(MUX)3设置有第一输入端、第二输入端、输出端和控制端。微控制单元(MCU)5设置有状态寄存器,该状态寄存器和多路选择器(MUX)3的控制端相连接,用于改变多路选择器(MUX)3选择的输入信号。
负沿寄存器2的时钟输入端和物理层(PHY)1的输出时钟信号线相连接,其数据输入端与物理层(PHY)1向USB控制器4传送信号的数据线或者控制线相连接,负沿寄存器2的输出端和多路选择器(MUX)3的第二输入端相连接,该负沿寄存器2是由USB时钟信号的负沿触发,用于将其数据输入端的输入信号延迟半个时钟周期后输出。多路选择器(MUX)3的第一输入端和负沿寄存器2的数据输入端相连接,输出端和USB控制器4相连接。在默认状态下,该多路选择器(MUX)3将会选择其第一输入端的输入信号作为输出信号,并输出至USB控制器4;在通讯出现错误时,固件程序通过改变多路选择器(MUX)3的输出,使多路选择器(MUX)3选择其第二输入端的输入信号作为输出信号,并输出至USB控制器4。
物理层(PHY)1将USB串行数据线6(D+和D-)送进来的串行信号转成并行信号传给协议层的USB控制器4。在向外发送数据时,协议层的USB控制器4输出并行信号,物理层(PHY)1将该信号转成串行信号传到USB串行数据线6(D+和D-)上。
当硬盘、电缆调制解调器或者信息家电网络产品等USB装置插入计算机时,PC机和USB装置之间首先有一个枚举过程。该过程具体为PC机发出reset信号,其中PC机发出的reset信号不受usbclk时钟信号影响,协议层的USB控制器4会准确地接收该reset信号,并把这个事件通知微控制单元(MCU)5内部的固件程序(firmware);随后,PC机发出交互性命令,协议层的USB控制器4会接收并识别所述交互性命令,并把这个事件通知微控制单元(MCU)5内部的固件程序(firmware);之后,物理层(PHY)1和协议层进行正确通讯。
如果USB控制器4未能识别交互性命令,则USB控制器4不会通知微控制单元(MCU)5的固件程序(firmware),固件程序(firmware)自接到reset信号后USB标准规定的时间内未收到USB控制器的通知,则认为物理层1和协议层之间通讯出现错误。这种情况可能是由于USB控制器4由于时序的原因而导致的。在通讯错误时,固件程序通过改变微控制单元(MCU)5中的状态寄存器的状态来控制多路选择器(MUX)3的控制端,并最终使多路选择器(MUX)3选择其第二输入端的输入信号作为输出信号。接下来,固件程序(firmware)向物理层(PHY)1发送命令,物理层(PHY)1检测到由固件程序(firmware)发送来的命令后,使USB装置的物理层1作一次“软插拔”(Soft disconnect)的动作,即USB装置不掉电,而PC机认为USB装置拔出又重新插入。PC机会对此时的USB装置再次进行枚举,即,重新发出reset信号和交互性命令。在重新枚举中,该重发的reset信号通过物理层1、USB控制器4到达微控制单元5的固件程序(firmware),此时,由于多路选择器3选定了其第二输入端的输入信号,负沿寄存器2将第二次进入的交互命令延迟半个时钟周期后经多路选择器3输出到USB控制器4。USB控制器4对这个经过延迟的交互命令进行识别,如果USB控制器4将其确认为交互命令,所述USB控制器4将此事件通知微控制单元(MCU)5的固件程序(firmware),从而实现了交互性命令在物理层1和协议层之间正确通讯。
如图3所示,usbclk时钟信号是USB的时钟信号,信号0是理想的usbclk采样信号,在信号0的条件下,固件程序(firmware)能够正常接收到采集后的信号0,从而实现正常通讯。
由于usbclk时钟信号和数据信号、控制信号之间的相位关系不好确定,有时候会出现畸变。如图3中所示的信号1有一个只有一个时钟周期宽的高电平信号。这个信号应该产生于A沿,在B沿被采样。当该信号传输延时小于usbclk时钟信号时,该信号在B沿到来之前已经变低,不能够在B沿被采集。但是,经过负沿触发器2采集的信号2在usbclk的负沿能够得到触发,并且在B沿能够被采集、然后通过多路选择器3和控制器4进入到微控制单元5,固件程序(firmware)能够正常接收到信号1,从而实现了正常通讯。
本发明的USB时序自适应通讯方法包括如下步骤(1)PC机对USB装置进行首次枚举。
当USB装置插入PC机后,PC机发出不受usbclk时钟信号干扰的reset信号。该reset信号通过物理层1、协议层的USB控制器4到达微控制单元5的固件程序(firmware),firmware自接到reset信号后开始计时。
PC机发出交互命令,经过物理层1采集这些交互性命令通过多路选择器(MUX)3的第一输入端进入,输出到USB控制器4,USB控制器4对该进入的交互性命令进行识别,如果USB控制器4将其确认为交互命令,USB控制器4将此事件通知微控制单元(MCU)5的固件程序(firmware),从而实现了交互性命令在物理层1和协议层之间正确通讯由固件程序(firmware)进行处理和应答该进入的交互性命令。如果USB控制器4未能识别所述交互命令,则USB控制器4不会通知微控制单元(MCU)5的固件程序(firmware),firmware自接到reset信号后USB标准规定的时间内未收到USB控制器的通知,则认为物理层1和协议层之间通讯错误。
(2)在物理层1和协议层之间出现通讯错误时,进行纠错处理。
在通讯错误时,固件程序通过改变MCU中的状态寄存器的状态来控制多路选择器(MUX)3的控制端,并最终使多路选择器(MUX)3选择其第二输入端的输入信号作为输出信号。
同时,固件程序(firmware)向物理层(PHY)1发送命令,物理层(PHY)1检测到由固件程序(firmware)发送来的命令后,在一段时间内(这个时间长度由firmware中的计数器决定),物理层(PHY)1从出错时的状态到拔出状态,再从拔出状态回到USB装置正常插入状态,即物理层(PHY)1相当于做出一个模拟拔出(Soff disconnect)又重新插入的动作。通过物理层1状态的变化,使USB装置在不掉电的情况下实现一次“软插拔”(Soffdisconnect)。此时,PC机认为一个新的USB装置又重新插入。
(3)PC机对USB装置进行第二次枚举。
PC机会对此时的USB装置再次进行枚举,即,重新发出reset信号和交互性命令。在重新枚举过程中,该重发的reset信号通过物理层1、USB控制器4到达微控制单元5的固件程序(firmware)。
此时,由于多路选择器3选定了其第二输入端的输入信号,因此PC再次发出的交互命令经过物理层1到达负沿寄存器2,负沿寄存器2将该第二次进入的交互命令延迟半个时钟周期后经多路选择器3输出到USB控制器4,USB控制器4对这个经过延迟的交互命令进行识别确认。如果USB控制器4将其确认为交互命令,将此事件通知微控制单元(MCU)5的固件程序(firmware),从而实现了交互性命令在物理层1和协议层之间正确通讯。
这样,在PC重新枚举时,通过负沿寄存器2将PC发出的交互命令推迟半个周期,就能使控制器4能够正确识别PC发出的交互命令,并将其通知微控制单元5的固件程序(firmware),这样就可以完成物理层和协议层之间的正确通讯。
权利要求
1.一种USB装置的时序自适应接口,所述USB装置包括物理层和协议层,所述时序自适应接口包括有设置于物理层和协议层之间的接口,其特征在于,所述时序自适应接口还包括有设置于物理层和协议层之间的负沿寄存器和多路选择器,其中,多路选择器,设置有第一输入端、第二输入端和输出端,所述输出端与协议层连接,所述物理层向协议层传送信号的数据线或者控制线与多路选择器的第一输入端相连;负沿寄存器,设置有时钟输入端、数据输入端和输出端,所述数据输入端与多路选择器的第一输入端相连,所述负沿寄存器的输出端和所述多路选择器的第二输入端相连接,该负沿寄存器通过USB装置时钟信号的负沿触发,用于将其数据输入端的输入信号延迟后输出,在所述USB装置插入计算机系统时,多路选择器选择其第一输入端的输入信号作为输出端信号,在所述物理层和协议层通讯出现错误时,多路选择器选择经过负沿寄存器的第二输入端的输入信号作为输出端信号。
2.根据权利要求1所述的USB时序自适应接口,其特征在于,所述多路选择器包括有用于选择输入信号的控制端,所述控制端由协议层控制。
3.根据权利要求1所述的USB时序自适应接口,其特征在于,所述负沿寄存器将数据输入端的输入信号延迟半个时钟周期后输出到多路选择器。
4.一种USB时序自适应装置,包括物理层和协议层,以及物理层和协议层之间的接口,协议层包括控制器、微控制单元,其特征在于,所述控制器和物理层之间设置有负沿寄存器和多路选择器,其中,多路选择器,设置有第一输入端、第二输入端和输出端,所述输出端与控制器连接,所述物理层向控制器传送信号的数据线或者控制线与多路选择器的第一输入端相连;负沿寄存器,设置有时钟输入端、数据输入端和输出端,所述数据输入端与多路选择器的第一输入端相连,所述负沿寄存器的输出端和所述多路选择器的第二输入端相连接,该负沿寄存器通过USB时序自适应装置时钟信号的负沿触发,用于将其数据输入端的输入信号延迟后输出,在所述USB时序自适应装置插入计算机系统时,多路选择器选择其第一输入端的输入信号作为输出端信号,在所述物理层和协议层通讯出现错误时,多路选择器选择经过负沿寄存器的第二输入端的输入信号作为输出端信号。
5.根据权利要求4所述的USB时序自适应装置,其特征在于,所述负沿寄存器将数据输入端的输入信号延迟半个时钟周期后输出到多路选择器。
6.根据权利要求4所述的USB时序自适应装置,其特征在于,所述多路选择器包括有用于选择输入信号的控制端,所述控制端由微控制单元控制。
7.根据权利要求4所述的USB时序自适应装置,其特征在于,在所述USB时序自适应装置插入计算机系统时,所述计算机系统发送reset命令和交互性命令给USB时序自适应装置,此时,所述交互性命令经过多路选择器的第一输入端进入控制器,如果微控制单元经由所述控制器收到reset命令后规定时间内收到了交互性命令,则认为物理层和协议层通讯正常,否则认为物理层和协议层通讯出现错误时。
8.根据权利要求7所述的USB时序自适应装置,其特征在于,在物理层和协议层通讯出现错误时,微控制单元向物理层发送命令,使USB时序自适应装置在不掉电的情况下模拟实现拔出又插入的动作,之后,所述计算机系统重新发送reset命令和交互性命令给微控制单元,此时,所述交互性命令经过负沿寄存器后由多路选择器的第二输入端进入控制器。
9.根据权利要求4所述的USB时序自适应装置,其特征在于,所述物理层的串行数据线和计算机系统相连接。
10.一种USB装置的时序自适应通讯方法,所述USB装置包括物理层和协议层,所述方法包括如下步骤(1)将USB装置插入计算机系统,所述计算机系统对插入的USB装置进行枚举,发出reset信号和交互性命令;(2)如果协议层在收到reset命令后规定时间内收到了交互性命令,则认为物理层和协议层通讯正常,否则进行下述步骤;(3)协议层发送命令到物理层,使物理层实现一次软插拔,计算机系统对USB装置进行枚举,重新发出reset信号和交互性命令;(4)将重新发出的交互性命令延迟后发送到协议层。
11.根据权利要求10所述的USB装置的时序自适应通讯方法,其特征在于,步骤(1)中所述的reset信号不受usbclk时钟信号干扰。
12.根据权利要求10所述的USB装置的时序自适应通讯方法,其特征在于,步骤(2)具体为,当协议层收到reset命令后,如果在规定的时间内收到交互性命令,则实现协议层和物理层的正确通讯;如果在规定的时间内没有收到交互性命令时,协议层则发出命令到多路选择器,使多路选择器选择输入来自负沿寄存器的信号。
13.根据权利要求10所述的USB装置的时序自适应通讯方法,其特征在于,步骤(5)中所述负沿寄存器通过USB装置时钟信号的负沿触发,将从物理层采集的数据信号延迟半个时钟周期后输出。
全文摘要
本发明公开了一种USB装置的时序自适应接口,所述时序自适应接口包括有设置于物理层和协议层之间的接口,所述时序自适应接口还包括有设置于物理层和协议层之间的负沿寄存器和多路选择器,多路选择器设置有第一输入端、第二输入端和输出端,所述输出端与协议层连接,所述物理层向协议层传送信号的数据线或者控制线与多路选择器的第一输入端相连;负沿寄存器设置有时钟输入端、数据输入端和输出端,所述数据输入端与多路选择器的第一输入端相连,所述负沿寄存器的输出端和所述多路选择器的第二输入端相连接,该负沿寄存器通过USB装置时钟信号的负沿触发。本发明还公开了USB的时序自适应装置和USB装置的时序自适应方法。
文档编号H04L29/08GK1870656SQ20061001228
公开日2006年11月29日 申请日期2006年6月15日 优先权日2006年6月15日
发明者朱小琳, 温小勇 申请人:北京中星微电子有限公司