一种数据传输的系统与方法转让专利
申请号 : CN201010129143.4
文献号 : CN101788972A
文献日 : 2010-07-28
发明人 : 赖瑾 , 徐步衡 , 汤金宽
申请人 : 威盛电子股份有限公司
摘要 :
权利要求 :
1.一种数据传输系统,其包含:
一第一控制电路,耦接于一第一设备,用于解码由该第一设备发出的一第一格式的数据包;
一转译电路,耦接于该第一控制电路,用于接收该解码后的第一格式的数据包,并将该解码后的第一格式的数据包转译为一第二格式的数据包;以及一第二控制电路,耦接于该转译电路,用于将该第二格式的数据包传送到一主机,其中,该第一设备的数据传输速度低于一第二设备的数据传输速度,该数据传输系统向下兼容于该第一设备。
2.如权利要求1所述的数据传输系统,其中,该第一控制电路包含:一串行接口引擎,用以解码该第一格式的数据包,并得到一设备描述符。
3.如权利要求2所述的数据传输系统,其中,该第一控制电路包含:一旁路开关,耦接于该主机,当一微控制单元由该设备描述符判断该数据传输系统不支持该第一设备时,该第一设备经由该旁路开关耦接到该主机。
4.如权利要求2所述的数据传输系统,其中,当该第一设备耦接到该数据传输系统时,该串行接口引擎发送一描述符给该第一设备,并接收该第一设备响应于该描述符而发送的该第一格式的数据包。
5.如权利要求2所述的数据传输系统,其中,该转译电路中包含:一存储单元,用于存储该设备描述符;以及
一第一转译器,用于将该设备描述符转译为该第二格式的数据包。
6.如权利要求1所述的数据传输系统,其中,该第二控制电路中包含:一控制器,用于将该第二格式的数据包传送到该主机,并在一微控制单元控制下进行第二设备的枚举,以使该主机认为有正确的第二设备的连接。
7.如权利要求1所述的数据传输系统,其中,该转译电路包含:一第一转译器,耦接于该主机,用于解码该主机发出一第二格式的传输发起指令以得到相应的包标示和数据;
一存储单元,用以存储该相应的包标示和数据;以及一第二转译器,用于将该相应的包标示和数据转译为该第一格式的数据包。
8.如权利要求7所述的数据传输系统,其中,该第一控制电路包含:一串行接口引擎,用于将该第一格式的数据包传送给该第一设备,并接收该第一设备响应于该第一格式的数据包而发出的一传输回应,该串行接口引擎解码该传输回应以得到解码后的该传输回应相应的包标示和数据,并将解码后的该传输回应相应的包标示和数据存储到该存储单元中。
9.如权利要求8所述的数据传输系统,其中,由一微控制单元判断该传输回应是否需要被传输到该主机,当该微控制单元判断该传输回应不需要被传输到该主机时,该微控制单元通知该主机有错误产生;以及当该微控制单元判断该传输回应需要被传输到该主机时,该第一转译器将解码后的该传输回应相应的包标示和数据转译为该第二格式的数据包。
10.如权利要求1所述的数据传输系统,其中,该第一控制电路包含:一信号质量调整电路,经由一微控制单元来编程该第一设备的信号参数;以及一时序控制电路,用于编程该第一格式的数据包传输的时序间隔与传输重试的时间间隔。
11.一种数据传输方法,该数据传输方法包含以下步骤:解码由一第一设备发出的一第一格式的数据包;
接收该解码后的第一格式的数据包,并将该解码后的第一格式的数据包转译为一第二格式的数据包;以及将该第二格式的数据包传送到一主机,
其中,该第一设备的数据传输速度低于一第二设备的数据传输速度,该数据传输方法向下兼容于该第一设备。
12.如权利要求11所述的数据传输方法,其中,该数据传输方法还包含:解码该第一格式的数据包,并得到一设备描述符。
13.如权利要求12所述的数据传输方法,其中,该数据传输方法还包含:根据该设备描述符判断不支持该第一设备时,将该第一设备耦接到该主机。
14.如权利要求11所述的数据传输方法,其中,该数据传输方法还包含:当连接该第一设备时,发送一描述符给该第一设备;以及接收该第一设备响应于该描述符而发送的该第一格式的数据包。
15.如权利要求12所述的数据传输方法,其中,该数据传输方法还包含:转译该设备描述符为该第二格式的数据包。
16.如权利要求11所述的数据传输方法,其中,该数据传输方法还包含:将该第二格式的数据包传送到该主机,并进行第二设备的枚举,以使该主机认为有正确的第二设备的连接。
17.如权利要求11所述的数据传输方法,其中,该数据传输方法还包含:解码该主机发出的一第二格式的传输发起指令以得到相应的包标示和数据;以及将该相应的包标示和数据转译为该第一格式的数据包。
18.如权利要求17所述的数据传输方法,其中,该数据传输方法还包含:将该第一格式的数据包传送给该第一设备;
接收该第一设备响应于该第一格式的数据包而发出的一传输回应;
解码该传输回应以得到解码后的该传输回应相应的包标示和数据。
19.如权利要求18所述的数据传输方法,其中,该数据传输方法还包含:判断该传输回应是否需要被传输到该主机,当判断该传输回应不需要被传输到该主机时,通知该主机有错误产生;以及当判断该传输回应需要被传输到该主机时,将解码后的该传输回应相应的包标示和数据转译为该第二格式的数据包。
20.如权利要求11所述的数据传输系统,其中,该数据传输方法还包含:编程该第一设备的信号参数;以及
编程该第一格式的数据包传输的时序间隔与传输重试的时间间隔。
说明书 :
技术领域
本发明是有关于数据传输系统与方法,特别是有关于一种串行(serial)设备的数据传输系统与方法。
背景技术
在USB2.0协议中,USB2.0的集线器(HUB)可以兼容USB1.0的设备。图1为包含USB2.0的HUB和USB3.0的HUB的USB3.0系统示意图,如图1所示,在USB2.0HUB101中包含一USB2.0事务转译器(transactiontranslator)103,可以将USB1.0格式的数据转译为USB2.0格式的数据,使USB1.0的设备109转译成USB2.0的设备,以便与主机107间以USB2.0协议进行数据传输。而在USB3.0协议中,并未规定USB3.0的HUB可以兼容USB2.0的设备。亦即在图1中,USB3.0的HUB105中并未包含类似于USB2.0事务转译器103的事务转译器,USB2.0设备111只能通过USB2.0HUB101与主机107间以USB2.0协议进行数据传输。由此可见,即使在支持以USB3.0协议进行数据传输的系统中,USB2.0的设备仍旧无法以较高的速率与主机间进行数据传输,USB2.0设备无法使用USB3.0系统中10倍于USB2.0系统的带宽(bandwidth),这将很不利于USB3.0系统性能的提高。因此,需要一种可以将USB2.0设备转译为USB3.0设备进行数据传输的系统与方法,以提高USB3.0系统中USB2.0设备的传输速度,提高USB3.0系统的性能。
发明内容
本发明揭露一种数据传输方法,该数据传输方法包含以下步骤:解码由第一设备发出的第一格式的数据包;接收该解码后的第一格式的数据包,并将该解码后的第一格式的数据包转译为第二格式的数据包;以及将该第二格式的数据包传送到一主机。其中,该第一设备的数据传输速度低于一第二设备的数据传输速度,该数据传输方法向下兼容于该第一设备。
附图说明
图1为包含USB2.0的HUB和USB3.0的HUB的USB3.0系统示意图;
图2是显示本发明较佳实施例的USB3.0事务转译器的架构图;
图3是显示本发明图2中USB2.0控制电路201的具体实施例的架构图;
图4是显示本发明图2中USB3.0转译电路209和USB3.0控制电路203的具体实施例的架构图;
图5是使用本发明图2-图4中的装置,将USB2.0设备转译为USB3.0设备以使主机认为有USB3.0设备连接的流程图;及
图6是使用本发明图2-图4中的装置,将USB2.0设备中的数据依据USB3.0协议进行数据传输的流程图。
具体实施方式
图2是显示本发明较佳实施例的USB3.0事务转译器的架构图。如图2所示,USB3.0事务转译器20包含USB2.0控制电路201,微控制单元(MicroControl Unit,MCU)205,USB3.0转译电路209和USB3.0控制电路203。USB2.0控制电路201耦接于USB3.0事务转译器20外部的USB2.0设备211,用于测量USB2.0设备的数据传输速度,解码USB2.0设备211发出的USB2.0格式的数据,以及负责USB3.0转译电路209与USB2.0设备211间的数据传输等。USB3.0转译电路209耦接于USB2.0控制电路201,用于进行协议转译(protocol convert),即将需要转译为USB3.0格式的USB2.0格式的数据进行转译,将需要转译为USB2.0格式的USB3.0格式的数据进行转译以及暂存需要转译的数据等。USB 3.0控制电路203耦接于USB3.0转译电路209,用于进行USB3.0设备的枚举流程(emulation flow)以确认有正确的USB3.0设备的连接,以及负责USB3.0转译电路209与主机207间的数据传输等。MCU 205耦接于控制电路201,USB3.0转译电路209和USB3.0控制电路203,用于控制各模块间的数据传输。在一实施例中,可以由其它逻辑电路来耦接于控制电路201,USB3.0转译电路209和USB3.0控制电路203,用于控制各模块间的数据传输。
在一实施例中,每一USB2.0设备211对应一相应的USB3.0事务转译器20,该USB3.0事务转译器20负责USB2.0设备211与主机207间的数据传输,USB3.0事务转译器20与图1中的USB3.0HUB105是相互独立的。在另一实施例中,USB3.0事务转译器20位于USB3.0HUB105中,该USB3.0事务转译器20可对多个USB2.0设备211进行转译。
在一实施例中,USB3.0事务转译器可耦接于USB1.0的设备与主机之间,以便将USB1.0的设备(包括低速和全速两种)转译为USB3.0的设备,以使USB1.0的设备的数据以较高的速度在USB3.0系统中传输。
图3是显示本发明图2中USB2.0控制电路201的具体实施例的架构图。如图3所示,USB2.0控制电路201包含USB2.0接口301,USB2.0端口控制器303,USB2.0串行接口引擎305和旁路开关307。USB2.0接口301耦接于USB2.0设备211,用于USB2.0控制电路201与USB2.0设备211间的数据传输。
通常主机需要兼容多种USB设备,因此其输出的信号质量可以保证其和大多数USB设备进行正常通信,但是却无法为每个USB设备都提供最好的信号链路。在一实施例中,当每一USB2.0设备211对应一相应的USB3.0事务转译器20时,USB2.0接口301中包含一对应的信号质量调整电路307,该信号质量调整电路307可根据该USB3.0事务转译器20连接的USB2.0设备211的具体情况,来调整信号传输的质量。例如,信号调整电路307可以在MCU的控制下编程(program)USB2.0设备的信号参数,例如,信号的上升时间,下降时间,时钟恢复电路的参数等等,以使USB2.0控制电路201与USB2.0设备211间的接口传输更加稳定,减少传输错误的产生。信号调整电路307可以大幅度提高USB2.0设备的传输速度,使得USB2.0设备的实际传输速度进一步提高。
在一般的系统中,由于每一主机对应多个USB设备,因此多个数据包间的传输间隔是固定的,例如为5us,若所连接的USB设备数据传输速率较快,例如数据包间的传输间隔可以为2us。由于多个数据包间的时序间隔是固定的,则数据包间的传输只能以此固定间隔进行,数据传输的性能无法得到提高。若所连接的USB设备数据传输速率较慢,例如数据包间的时序间隔为7us,则在经过5us后,USB设备未能为下一数据包的传输做好准备,则USB设备会发出未准备(not ready)信号,并经过很长的时间间隔,例如10us后,主机再进行数据包传输的重试,这也将对数据传输的性能造成很大影响。在一实施例中,当每一USB2.0设备211对应一相应的USB3.0事务转译器20时,USB2.0控制电路201还包含一时序控制电路309,该时序控制电路309可根据该USB3.0事务转译器20连接的USB2.0设备211的具体情况,来编程数据包传输的时序间隔,这将会大大提高据传输的性能。同时,时序控制电路309还可以编程主机收到设备未准备信号后到进行数据包传输重试的时间间隔,减少设备空闲等待的时间,以获得更好的传输性能。在一实施例中,该时序控制电路309位于USB2.0串行接口引擎305中。
USB2.0端口控制器303耦接于USB2.0接口301,用于测量USB2.0设备的数据传输速度。USB2.0串行接口引擎305耦接于USB2.0端口控制器303,USB2.0串行接口引擎305可在MCU 205的控制下,发送数据给USB2.0设备211,并可用于解码USB2.0设备211发出的USB2.0格式的数据。
旁路开关307耦接于USB2.0接口301,当USB3.0事务转译器20不支持该USB2.0设备211,USB2.0设备211通过USB2.0接口301耦接到旁路开关307,并由旁路开关307直接耦接到主机207,此时,USB2.0设备211无法由USB3.0事务转译器20转译为USB3.0设备,USB2.0设备211只能以USB2.0协议进行数据传输。在一实施例中,当该USB2.0设备211为USB2.0的HUB时,USB3.0事务转译器20不支持该USB2.0设备211。
图4是显示本发明图2中USB3.0转译电路209和USB3.0控制电路203的具体实施例的架构图。如图4所示,USB3.0转译电路209包含USB2.0转译器401,存储单元403和USB3.0转译器405。USB2.0转译器401耦接于USB2.0控制电路201,将需要转译为USB2.0格式的USB3.0格式的数据进行转译。存储单元403耦接于USB2.0转译器401和USB3.0转译器405之间,用于暂存需要转译的数据。在一实施例中,该存储单元403包含控制寄存单元(control register file)和先进先出存储单元(FIFO)。该存储单元可以为任意类型的寄存器及静态存储器(SRAM)。USB3.0转译器405用于将需要转译为USB3.0格式的USB2.0格式的数据进行转译。
图4中的USB3.0控制电路203包含USB3.0控制器407和USB3.0接口409。USB3.0接口409耦接于主机207,用于USB3.0控制电路203与主机207间的数据传输。USB3.0控制器407耦接于MCU 205和USB3.0转译电路209,USB3.0控制器407可以在MCU 205的控制下于进行USB3.0设备的枚举流程,以使该主机207认为有正确的USB3.0设备的连接,USB3.0控制器407也可在MCU 205的控制下向主机207发出响应于USB3.0格式的传输发起指令的响应指令。
图5是使用本发明图2-图4中的装置,将USB2.0设备转译为USB3.0设备以使主机认为有USB3.0设备连接的流程图。
在步骤501,USB2.0设备211连接到USB2.0接口301。
在步骤503,USB2.0端口控制器303测量此USB2.0设备211的传输速度,并将此传输速度传送给MCU 205。
在步骤505,USB2.0串行接口引擎305在MCU 205的控制下,发送一描述符(descriptor)给USB2.0设备211。
在步骤507,USB2.0设备211响应该描述符而发送一数据包(packet)给USB2.0串行接口引擎305。
在步骤509,USB2.0串行接口引擎305将该数据包解码以得到相应的设备描述符,并将此设备描述符存储到存储单元403中。
在步骤511,MCU 205读取存储在存储单元403中的设备描述符,并判断此设备描述符是否被USB3.0事务转译器20支持。如果USB3.0事务转译器20不支持该USB2.0设备211,则流程进入到步骤513,在一实施例中,当该USB2.0设备211为USB2.0的HUB时,USB3.0事务转译器20不支持该USB2.0设备211。如果USB3.0事务转译器20支持该USB2.0设备211,则流程进入到步骤515。
在步骤513,USB2.0设备211通过USB2.0接口301耦接到旁路开关307,并由旁路开关307直接耦接到主机207,此时,USB2.0设备211无法由USB3.0事务转译器20转译为USB3.0设备,USB2.0设备211只能以USB2.0协议进行数据传输。
在步骤515,USB3.0转译器405将存储在存储单元403中的设备描述符转译成USB3.0格式的数据包,并将该USB3.0格式数据包传送到USB3.0控制器407。
在步骤517,USB3.0控制器407通过USB3.0接口409将该USB3.0格式数据包传送到主机207,使主机207判定到有USB3.0设备的连接。
在步骤519,USB3.0控制器407在MCU 205的控制下进行USB3.0设备的枚举流程,并使该主机207认为有正确的USB3.0设备的连接。流程结束于步骤519。
图6是使用本发明图2-图4中的装置,将USB2.0设备中的数据依据USB3.0协议进行数据传输的流程图。
在步骤601,在主机207认为有正确的USB3.0设备的连接后,主机207中发出一USB3.0格式的传输发起指令(require token)。
在步骤603,USB3.0控制器407通过USB3.0接口409接收该USB3.0格式的传输发起指令,并将该USB3.0格式的传输发起指令传送到USB3.0转译器405。
在步骤605,USB3.0转译器405将该USB3.0格式的传输发起指令解码,并将解码得到的该USB3.0格式的传输发起指令相应的包标示(packet ID)和相关数据等内容存储到存储单元403。
在步骤607,USB3.0控制器407在MCU 205的控制下向主机207发出响应于该USB3.0格式的传输发起指令的响应指令。
在步骤609,USB2.0转译器401将存储在存储单元403中的该USB3.0格式的传输发起指令相应的包标示和相关数据等内容转译成USB2.0格式的数据包,并将该USB2.0格式的数据包传送到USB2.0串行接口引擎305。
在步骤611,USB2.0串行接口引擎305通过USB2.0接口301将该USB2.0格式的数据包传送到USB2.0设备211。
在步骤613,USB2.0设备211接收该USB2.0格式的数据包,并且响应于该USB2.0格式的数据包而发出一USB2.0格式的传输回应(response)。
在步骤615,USB2.0串行接口引擎305通过USB2.0接口301接收该USB2.0格式的传输回应,并将该USB2.0格式的传输回应解码,并将解码得到的该USB2.0格式的传输回应相应的包标示和相关数据等内容存储到存储单元403。
在步骤617,MCU 205控制USB2.0串行接口引擎305发送一流程控制包(flow control packet)给USB2.0设备211,并判断该传输回应是否需要被传输到主机207,当该传输回应不需要被传输到主机207时,流程进入到步骤619,当该传输回应需要被传输到主机207时,流程进入到步骤621。
在步骤619,MCU 205进行重试流程(retry flow)并通知主机207有错误发生。
在步骤621,USB3.0转译器405将存储在存储单元403该USB2.0格式的传输回应相应的包标示和相关数据等内容转译成USB3.0格式的数据包,并将该USB3.0格式的数据包传送到USB3.0控制器407。
在步骤623,USB3.0控制器407通过USB3.0接口409将该USB3.0格式的数据包传送到主机207。
在步骤625,主机207接收该USB3.0格式的数据包,并发出一确认信号(ACK)。流程结束于步骤625。
使用本发明中的USB3.0事务转译器,可以使USB2.0设备与主机间以点对点方式(point to point)连接,从而增加数据传输的带宽。而使主机将USB2.0设备识别成USB3.0设备,将会使USB2.0设备享受到USB3.0设备的低功耗效能,其数据流量(throughput)和传输性能都会有大幅度的提高。将USB2.0设备转译为USB3.0设备仅为本发明的一具体实施例,本领域技术人员可以想到,所有进行串行传输的设备间均可进行类似的转译,以使低速传输的设备可以转译为高速传输的设备,以提高数据传输的性能。
上述的实施例仅为说明本发明的技术思想及特点,其目的在使本领域技术人员能了解本发明的内容并据以实施,当不能以之限定本发明的权利要求范围,即凡其它未脱离本发明所揭示精神所完成的各种等效改变或修饰都涵盖在本发明所揭露的范围内,均应包含在上述的权利要求范围内。