通信控制器、主机端控制器、通信设备、通信系统和方法

文档序号:6387323阅读:131来源:国知局
专利名称:通信控制器、主机端控制器、通信设备、通信系统和方法
技术领域
本发明涉及用于实现主计算机(主机)和其周边设备(装置/功能机装置)之间的USB通信(符合USB规格的数据通信)的作为通信系统的USB系统,以及进行USB规格的USB信号传输的通信控制器。
背景技术
通用串行总线(Universal Serial Bus;以下称为USB)涉及连接到个人计算机等主机使用的周边装置(装置/功能机装置),是为了提高扩展性的自由度而开发的接口规格。而且,这种USB是可用共用的总线来实施主机和各种各样的USB对应装置之间通信的串行接口规格。
在USB中,在原理上,在一个系统之中,可以在同一总线上连接一台主机(USB主机)和最多至127台的装置。它们的连接在物理上形成树形的网络结构。此外,在逻辑上,主机(用户软件)和装置(USB功能机(funtion))处于一对一通信的连接方式。为了维持这样的连接方式,各装置(详细来说,各装置的最下层的协议)以时间分割方式(进行时间分配)与主机进行通信。此外,主机进行时间分割的调度。
在USB1.x中,数据传送速率不同的两个模式,即规定了1.5Mbps的低速模式(LS)和12Mbps的全速模式(FS)。
但是,近年来,在硬盘、DVD(Digital Versatile Disc)等的需要高速数据传送的装置(应用)中,也要采用USB。因此,上述那样的传送速度是不够的。因此,在筹划制定所谓的USB2.0的新规格。在该USB2.0中,追加以480Mbps的速度进行数据传送的高速模式(HS)。
这里,简单地说明USB中的数据通信(数据传送)的结构。USB中的数据传送在主机和装置中分别配有的缓冲器间进行。
装置端的缓冲器是被称为端点的FIFO(First In First Out)缓冲器。各装置可具有最大16个端点。此外,在各端点中,附加用于识别的号码。
而且,主机在数据传送时使用装置的地址和端点号码,接入要求的端点。
再有,端点0(号码为0的端点)从将装置连接到USB之后的状态(配置前的状态)开始被设定,用于与主机之间的控制传送的通信(用于初始化的通信等)。再有,端点0在USB功能中必须存在一个。
此外,主机-装置间的数据通信使用被称为帧的通信框来进行。这种帧按规定周期在主机-装置间重复传送(在LS、FS模式中周期为1ms,而在HS模式中周期为125μs)。而且,所有的数据在该帧中被交换。
此外,这种帧由多个事务处理组成,事务处理由多个分组构成。
分组是构成事务处理的最小通信单位,实际上是被通信的数据的基本单位。此外,在分组中,根据内容,有权标(token)分组、数据分组、信号交换分组等几个种类。而且,将包含多个这样分组的有意义的数据传送的单位的分组称为事务处理。
即,USB中的数据通信在帧中每个事务处理中进行。而且,在一个事务处理中,主机-装置间多个分组被传送。
此外,在上述的权标分组中,包含各装置的地址和端点号码,由此,主机可指定数据通信的对方目的地。
图42是表示USB分组的种别的说明图。如该图所示,在分组中,有权标分组、数据分组(DATA分组)、信号交换分组、以及特殊分组。
此外,在权标分组中,有IN分组、OUT分组、SETUP分组、SOF分组。各自的分组按图42所示的目的来使用。在数据分组中,有DATA分组、DATA1分组等。在信号交换分组中,有ACK分组、NAK分组、STALL分组、NYET分组。而作为特殊分组,有PING分组等。
图43是表示USB的分组格式的说明图。该图所示的PID是分组的识别符,由8位构成。此外,在权标分组中附加CRC5、数据分组中附加CRC16。这些CRC是用于判别接收分组中有无差错的分组。
此外,权标分组之一的SOF(Start of Frame)分组是表示主机发行的帧开始的分组。SOF分组在LS、FS模式中以1ms为周期从主机发行,而在HS模式中以125μs为周期从主机发行。
作为USB2.0规格中的USB主机根据USB功能机来读取数据的方法,有IN事务处理。以下使用图44来说明IN事务处理。
首先,在定时t2201中,从USB主机向USB功能机发送IN分组。接收到所述IN分组的USB功能机在该时刻没有要传送的数据,所以在t2202中向USB主机发送通知该情况的NAK分组。USB主机接收所述NAK分组后,在USB功能机中识别没有要发送的数据,在下一发送定时t2203中再次将IN分组发送到USB功能机。在接收到它的USB功能机中,由于此时存在要传送的数据,所以在t2204定时中向USB主机发送DATA分组。USB主机在预定的时间以内无差错地接收所述DATA分组后,在t2205的定时中向USB功能机发送表示正常接收情况的ACK分组。
由于在所述DATA分组中附加CRC16的符号,所以通过在数据接收端检查该CRC,可以判别接收数据中有无差错。通过CRC16的判别,在判别为数据中有差错时,USB主机不向USB功能机返回分组。即,USB功能机通过接收所述ACK分组,可以识别对USB主机可正常传送数据的情况。USB功能机在预定的时间内不能接收来自USB主机的ACK分组的情况下,识别为IN事务处理以失败结束。
根据所述方法,进行IN事务处理,USB主机可根据USB功能机进行数据的读取。
作为USB2.0规格中的USB主机在USB功能机中写入数据的方法,有OUT事务处理。以下用图46来说明OUT事务处理。
首先,在定时t1901中,USB主机向USB功能机发送OUT分组,在通知开始OUT事务处理后,在t1902中,发送DATA分组。USB功能机进行从USB主机接收的OUT分组和DATA分组的CRC校验,判别接收分组中是否没有差错。在上述接收分组中没有差错时,如果USB功能机处于可处理接收DATA的分组的状态,则将ACK分组返回USB主机,而如果不处于可处理接收DATA的分组的状态,则将NAK分组返回USB主机。此外,在接收分组中有差错时,什么也不返回。在图46中,在接收分组中没有差错,但作为USB功能机处于不能处理接收DATA的分组的状态,在t1903中返回NAK分组。
接收了该NAK分组的USB主机识别USB功能机处于不能处理接收分组的状态,为了掌握USB功能机的状态,在t1904中发送PING分组。如果接收了所述PING分组的USB功能机处于可处理数据的状态,则将ACK分组发送到USB主机,而如果处于不能处理数据的状态,则将NAK分组发送到USB主机。在图46中,在定时t1905中为可进行数据处理的状态,发送ACK分组。
由于返回了与所述PING分组对应的ACK分组,所以USB主机识别USB功能机处于可处理数据的状态。假如在接收了NAK分组的情况下,USB主机识别为USB功能机处于不能处理数据的状态,再次发送PING分组并重复进行,直至USB功能机处于可处理数据的状态。在图46中,接收与PING分组对应的ACK分组,并可识别为USB功能机处于可处理数据的状态,所以在t1906中再次发送OUT分组,而在t1907中再次发送DATA分组。接收了它的USB功能机当前处于可处理数据的状态,所以在接收分组的CRC校验后,如果没有差错,则发送ACK分组。USB主机通过接收所述ACK分组,将OUT分组和DATA分组没有差错地传送到USB功能机,识别被处理,并结束OUT事务处理。
根据上述方法来进行OUT事务处理,USB主机可将数据写入USB功能机。
在USB2.0规格中,在数据信号的传播时间上有限制。
在LS和FS模式中,从USB主机至USB功能机的周转时间必须小于或等于16位时间(1333ns)。即,在与USB主机向USB功能机发送的分组对应的来自USB功能机的回复分组在所述1333ns以内没有到达USB主机的情况下,USB主机看作发送到USB功能机的分组没有正常地到达USB功能机,再发所述分组。
而在HS模式中,从USB主机至USB功能机的周转时间(TA时间)必须小于或等于721位时间(1502ns)。在与USB主机向USB功能机发送的分组对应的来自USB功能机的回复分组在所述1502ns以内没有到达USB主机的情况下,USB主机看作发送到USB功能机的分组没有正常地到达USB功能机,再发所述分组。
在所述IN事务处理中,在USB主机发送IN分组后等待预定的时间、以及USB功能机发送DATA分组后等待预定的时间被确定为USB的时间限制,在LS、FS模式中为1333ns,在HS模式中为1502ns。在各传送模式中,如果不能在所述限制时间以内接收所述DATA分组或ACK分组,则IN事务处理没有正常结束。
此外,在所述OUT事务处理中,USB主机在发送DATA分组后等待预定的时间被确定为USB的时间限制,在LS、FS模式中为1333ns,在HS模式中为1502ns。在各传送模式中,如果不能在所述限制时间以内接收所述ACK分组(或其他的信号交换分组),则OUT事务处理没有正常结束。
这里,说明USB通信中的SETUP事务处理。
SETUP事务处理在USB2.0规格中,在主机上连接装置时,用于进行主机-装置间的系统性连接确立(完成配置)。再有,这种事务处理通过主机对装置的端点0进行数据传送来实行。以下,用图48说明SETUP事务处理。
在SETUP事务处理中,首先在T301中,主机向装置发送SETUP分组,并通知开始SETUP事务处理。然后,主机在T302中,发送DATA分组。装置校验接收的SETUP分组和DATA分组的CRC。
然后,在判别为接收分组中没有差错时,装置在T303中,将ACK分组发送到主机。另一方面,在判断为接收的SETUP分组和DATA分组中有差错的情况下,装置不向主机进行任何返回。
主机通过接收ACK分组,识别已经向装置正确地传送SETUP分组和DATA分组,并结束SETUP事务处理。
再有,在不能从发送DATA分组起的规定时间(最大周转时间)以内接收ACK分组时,主机识别未能向装置正常地传送SETUP分组或DATA分组,即SETUP事务处理失败地结束。然后,向装置再发SETUP分组和DATA分组。根据这样的方法,可进行主机和装置间的SETUP事务处理。
再有,上述最大周转时间(最大TA时间)是上述USB2.0规格中的与数据信号的传播时间有关的限制。即,周转时间(TA时间)是主机或装置的一方对另一方发送分组后,直至接受应答分组的时间。而且,最大TA时间是TA时间的上限,在最大TA时间内没有接收应答分组时,主机判断为对装置的分组发送失败,并再发分组。
再有,最大TA时间在LS和FS模式中,为16位时间(1333ns)。而在HS模式中,为721位时间(1502ns)。
例如,在SETUP事务处理中,主机发送DATA分组后,在经过1333ns(LS、FS)或1502ns(HS)仍不能从装置接收ACK分组时,将SETUP分组和DATA分组再发到装置。
但是,近年来,在数字照相机、PDA(personal digital assistant)等可移动设备中,也搭载USB端子,可与USB对应。
在这些可移动设备和主机的连接中,大多采用叉簧(cradle)方式。即,通过将连接于主机的叉簧的USB连接器和可移动设备的USB连接器进行连接,可进行USB传输。
这些USB连接器具有物理性的接点。因此,因插拔连接器,造成连接器的恶化,不能进行质量高的数据传送。
作为没有上述物理性接点的方法,是在主机和可移动设备之间,使用光来进行空间传输的技术。这样的技术例如记载在专利文献1(日本公开专利公报特开2000-284872号公报(
公开日平成12年10月13日))中。
但是,为了与USB2.0的高速模式完全对应,需要具有480Mbps的传送速度,同时需要将数据进行空间传输。因此,作为主机和装置中配备的光通信部(光学系统和发送接收部),需要具有良好的CDR(Clock Data Recovery)性能,所以导致成本增加。
因此,为了抑制这样的成本增加,考虑降低光通信的传送速度并进行USB2.0的数据传送,但这种情况下,有以下问题。
图45中表示使光通信路径的传送速度例如为100Mbps,比USB2.0的原始速度480Mbps慢的传送速度情况下的IN事务处理的状况。
通过USB主机,在定时t2301发送的IN分组由主机端控制器变换为光信号,并被发送到功能机端控制器。功能机端控制器从接收的光信号中提取USB分组,并发送到USB功能机。这里,功能机端控制器向USB功能机开始发送的定时为t2302的原因是,在对USB功能机的发送中,进行USB原始的480Mbps下的传送。
在t2303时,如果USB功能机完成IN分组的接收,则在t2304中向USB主机发送DATA分组。功能机端控制器将来自USB功能机的DATA分组变换为光信号,并发送到主机端控制器。主机端控制器与功能机端控制器同样等待DATA分组的接收完成后,在t2305中向USB主机发送DATA分组。USB主机在t2306中最初可接收来自USB功能机的DATA分组。
这里,在主机-功能机间的数据传送速度比USB2.0的原始速度慢的情况下(特别是DATA分组长度长的情况),由于t2301至t2306的时间(周转时间)变长,所以会超过最大周转时间(HS模式时的1502ns),IN事务处理没有正常地结束。
图47中表示使光通信路径的传送速度例如为100Mbps,比USB2.0的原始速度480Mbps慢的传送速度情况下的OUT事务处理的状况。
通过USB主机,在定时t2001中发送的OUT分组和在定时t2002中发送的DATA分组由主机端控制器变换为光信号,并被发送到功能机端控制器。功能机端控制器从接收的光信号中提取USB分组,并发送到USB功能机。这里,功能机端控制器向USB功能机开始发送的定时为t2003的原因是,在对USB功能机的发送中进行USB原始的480Mbps下的传送。
在USB功能机没有差错地接收所述OUT分组和DATA分组,并且进行了处理的情况下,在定时t2004中,向USB主机发送ACK分组。功能机端控制器将来自USB功能机的ACK分组变换为光信号,并发送到主机端控制器。主机端控制器与功能机端控制器同样等待ACK分组的接收完成后,在t2005中向USB主机发送ACK分组。USB主机在t2006中最初可接收来自USB功能机的ACK分组。
这里,在主机-功能机间的数据传送速度比USB2.0的原始速度慢的情况下(特别是DATA分组长度长的情况),由于t2001至t2006的时间(周转时间)变长,所以会超过最大周转时间(HS模式时的1502ns),OUT事务处理没有正常地结束。
在上述图47中,表示对于从USB主机发送的OUT分组和DATA分组,从USB功能机应答ACK分组的情况。但是,在OUT事务处理中,根据接收到OUT分组和DATA分组的时刻的USB功能机的状态,还有应答ACK分组以外的信号交换分组(NAK分组等)的情况。这样,即使在USB功能机返回ACK分组以外的信号交换分组的情况下,在该信号交换分组的USB主机中的接收超过最大周转时间的情况下,OUT事务处理没有正常地进行,产生同样的问题。
图49是表示按480Mbps进行主机至主机的光通信部(主机光通信部)的通信、按100Mbps进行主机光通信部至装置的光通信部(装置光通信部)的通信、以及按480Mbps进行装置光通信部至装置的通信情况下的SETUP事务处理状况的时序(T)图。
如图49所示,在T401、T402中,从主机发送的SETUP分组和DATA分组通过主机光通信部而被变换为光信号,以100Mbps发送到装置光通信部。
装置光通信部从接收的光信号中提取SETUP分组和DATA分组,以480Mbps发送到装置(T403)。再有,装置光通信部考虑通信速度的差,可在完全接收SETUP分组和DATA分组后,将其发送到装置。
然后,在装置没有差错地接收SETUP分组和DATA分组,并且进行了处理的情况下,在T404中,向主机发送ACK分组。然后,该ACK分组经由装置光通信部,以100Mbps发送到主机光通信部。
主机光通信部从接收的光信号中提取ACK分组,以480Mbps发送到主机(T405)。然后,在T406中,主机接收来自装置的ACK分组。
但是,在这样的结构中,由于光通信部间的传送速度慢,所以T401至T406的时间(TA时间)变长。特别是在从主机发送的DATA分组的长度(分组长度)大时,TA时间有可能超过规定值(最大TA时间)。
因此,在这样的情况下,主机向装置持续再发使装置正常接收的SETUP分组和DATA分组,不能完成SETUP事务处理。

发明内容
本发明用于解决上述问题,其目的在于,即使在主机-功能机间使用传送速度比USB2.0的原始速度低的通信路径(例如100Mbps的光通信路径)的情况下,也可实现基于USB2.0的IN事务处理的数据传送,或实现没有问题地进行基于USB2.0的OUT事务处理的数据传送的发送接收电路。而且,即使在采用数据传送上需要时间的通信路径的情况下,也提供可实行SETUP事务处理的USB系统。
为了解决上述课题,本发明的通信控制器具有作为主机端控制器的功能,在作为USB上的数据通信进行IN事务处理时,将从主机装置发送的IN分组传送到功能机装置端,并将对于该IN分组作为应答的DATA分组传送到主机装置,该通信控制器包括接收确认部,确认接收来自主机装置的IN分组;存储部,存储从功能机装置端发送来的DATA分组;数据存储确认部,在由所述接收确认部确认了接收来自主机装置的IN分组的时间内,确认在所述存储部中是否存储了DATA分组;以及发送控制部,在由所述数据存储确认部确认没有存储所述DATA分组时,将从主机装置接收的IN分组传送到功能机装置端,同时向主机装置发送NAK分组,而在由所述数据存储确认部确认存储了所述DATA分组时,将所述DATA发送到主机装置。
因此,作为最初从主机装置接收的IN分组的响应,将从功能机装置端发送来的DATA分组存储在存储部中,在从主机装置再发IN分组时,将存储部中存储的DATA分组发送到主机装置。
因此,对于从主机装置再发过来的IN分组,不需要从功能机装置端再次发送DATA分组,即使在主机-功能机间的传送速度为低速时,并且主机-功能机间的传送路径长时,也具有以下效果可在按USB传输规定的限制时间内结束IN事务处理处理。
此外,为了解决上述课题,本发明的通信系统包括具有作为上述记载的主机端控制器功能的通信控制器;以及具有作为功能机端控制器功能的通信控制器,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端。
因此,在上述通信系统中,对于从主机装置再发过来的IN分组,不需要从功能机装置端再次发送DATA分组,即使在主机-功能机间的传送速度为低速时,并且主机-功能机间的传送路径长时,也具有以下效果可在按USB传输规定的限制时间内结束IN事务处理处理。
此外,为了解决上述课题,本发明的通信设备是包括上述记载的通信控制器的结构。
因此,可以获得具有与用上述通信控制器获得的效果相同效果的通信设备。
为了解决上述课题,本发明的通信方法的特征在于确认接收来自主机装置的IN分组,并在该时刻确认是否接收了与作为该IN分组对应的应答的DATA分组,在接收了所述DATA分组的情况下,对于接收的所述IN分组,将该DATA分组发送到主机装置,在没有接收所述DATA分组的情况下,将接收的所述IN分组传送到功能机装置端,同时向主机装置发送NAK分组。
因此,在上述通信方法中,对于从主机装置再发过来的IN分组,不需要从功能机装置端再次发送DATA分组,即使在主机-功能机间的传送速度为低速时,并且主机-功能机间的传送路径长时,也具有以下效果可在按USB传输规定的限制时间内结束IN事务处理处理。
为了解决上述课题,本发明的通信控制器具有作为主机端控制器的功能,在作为USB上的数据通信来进行OUT事务处理时,将从主机装置发送的OUT分组和DATA分组传送到功能机装置端,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置,该通信控制器包括接收确认部,确认接收来自主机装置的OUT分组和DATA分组;存储部,存储从功能机装置侧发送来的信号交换分组;存储确认部,在通过所述接收确认部确认了接收来自主机装置的OUT分组和DATA分组的时刻,确认在所述存储部中是否存储了信号交换分组;以及发送控制部,在通过所述存储确认部确认为没有存储所述信号交换分组时,向主机装置发送NAK分组,而在通过所述存储确认部确认为存储了信号交换分组时,向主机装置发送该信号交换分组。
根据上述结构,作为最初从主机装置接收的OUT分组和DATA分组的响应,将从功能机装置端发送来的信号交换分组存储在存储部中,在从主机装置再发过来的OUT分组和DATA分组时,将存储部中存储的信号交换分组发送到主机装置。
因此,对于可从主机装置再发过来的OUT分组和DATA分组,不需要从功能机装置端再次发送信号交换分组,即使在主机-功能机间的传送速度为低速时,并且主机-功能机间的传送路径长时,也具有以下效果可在按USB传输规定的限制时间内结束OUT事务处理处理。
此外,为了解决上述课题,本发明的通信系统包括具有作为上述记载的主机端控制器功能的通信控制器;以及具有作为功能机端控制器功能的通信控制器,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置端。
因此,在上述通信系统中,对于可从主机装置再发过来的OUT分组和DATA分组,不需要从功能机装置端再次发送信号交换分组,即使在主机-功能机间的传送速度为低速时,并且主机-功能机间的传送路径长时,也具有以下效果可在按USB传输规定的限制时间内结束OUT事务处理处理。
此外,为了解决上述课题,本发明的通信设备是包括上述记载的通信控制器的结构。
因此,可以获得具有与用上述通信控制器获得的效果相同效果的通信设备。
此外,为了解决上述课题,本发明的通信方法是确认接收来自主机装置的OUT分组和DATA分组,并在该时刻确认是否接收与作为该OUT分组和DATA分组对应的应答的信号交换分组,在接收所述信号交换分组的情况下,对于接收的所述OUT分组和DATA分组,将该信号交换分组发送到主机装置,在没有接收所述信号交换分组的情况下,向主机装置发送NAK分组。
因此,在上述通信方法中,对于从主机装置再发过来的OUT分组和DATA分组,不需要从功能机装置端再次发送信号交换分组,即使在主机-功能机间的传送速度为低速时,并且主机-功能机间的传送路径长时,也具有以下效果可在按USB传输规定的限制时间内结束OUT事务处理处理。
此外,本发明的分组通信程序使计算机具有作为上述通信控制器的各部件的功能。
此外,本发明的记录媒体记录上述分组通信程序。
通过将上述记录媒体中记录的分组通信程序装载到计算机系统中,具有以下效果可将上述通信控制器提供给用户。
为了解决上述课题,本发明的主机端控制器(本方主机端控制器)包括USB系统的主机,用于对主机和装置之间的通信进行中继,其特征在于包括主机端控制部,在SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端,另一方面,在接收从装置端向主机发送的ACK分组时,存储该分组,同时在接收从主机向装置再发的SETUP分组和DATA分组时,将所述ACK分组发送到主机。
本方主机端控制器适用于USB系统。这里,USB系统是用于实现主计算机(主机)和其周边设备(装置;USB功能机)之间的USB通信(基于USB规格的数据通信)的通信系统。
而且,本方主机端控制器被配置在USB系统的主机中,对主机和装置之间的通信进行中继。即,本方主机端控制器接受从主机发送的分组并将其发送到装置,同时接收向主机发送的分组,并将其传送到主机。这里,分组是USB系统中进行通信的数据的基本单位。
如上述那样,本方主机端控制器包括主机端控制部,该主机端控制部在SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端。此外,正常(合适)地接收了这些分组的装置向主机发送ACK分组。
再有,这种ACK分组表示正常地接收了SETUP和DATA分组,是来自装置的应答分组。在最大TA时间内未能接收该ACK分组时,主机判断为未能正常地完成(失败)SETUP事务处理。然后,向装置再发SETUP和DATA分组。
特别是本方主机端控制器的主机端控制部在接收到从装置端向主机发送的ACK分组时,将该分组存储在自身控制的存储部。然后,主机端控制部被设定,以在从主机再发SETUP分组和DATA分组时,将存储的ACK分组发送到主机。
这样,在采用本方主机端控制器的USB系统中,在主机再发SETUP分组和DATA分组之后,使主机接收ACK分组。因此,即使在主机-装置间的通信上需要时间,要经过最大TA时间才能使主机直接接收从装置端发送的ACK分组的情况下,也可以使SETUP事务处理完成。
再有,上述的主机-装置间的通信上需要时间的情况是该期间的通信速度缓慢的情况,或该期间的通信路径长的情况等。因此,如果使用本方主机端控制器,则使主机-装置间的通信路径的自由度显著增大。
此外,主机端控制部存储了从装置端接收的ACK分组后,不等待再发SETUP分组和DATA分组,将ACK分组传送到主机就可以。这种情况下,在最大TA时间内使主机接收ACK分组的情况下,在该时刻,SETUP事务处理结束。另一方面,通过主机接收ACK分组时,在超过最大TA时间的情况下,从主机再发SETUP分组/DATA分组,通过主机端控制部,将ACK分组发送到主机。
此外,主机端控制部也可以被设定,以在存储了从装置端接收的ACK分组后,避免对主机发送ACK分组。这种情况下,主机端控制部等待来自主机的再发分组,向主机发送ACK分组。
此外,为了解决上述课题,本发明的USB系统包括主机;装置;本方主机端控制器;以及装置端控制器,配置在装置中,对主机和装置之间的通信进行中继。
因此,在上述USB系统中,即使在主机-装置间的通信上需要时间,要经过最大TA时间才能使主机直接接收从装置端发送的ACK分组的情况下,也可以使SETUP事务处理完成。
为了解决上述课题,本发明的通信控制器对主机和装置之间的通信进行中继,同时具有作为主机端的控制器的功能和作为装置端的控制器的功能,其特征在于包括控制部,其在具有作为主机端的控制器的功能时,并且进行SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端,另一方面,在接收从装置端向主机发送的ACK分组时,存储该分组,同时在接收从主机向装置再发的SETUP分组和DATA分组时,将所述ACK分组发送到主机。
本方通信控制器对主机和装置之间的通信进行中继。此外,本方通信控制器具备作为主机端的控制器的功能和作为装置端的控制器的功能。即,可以具有作为主机端的控制器和装置端的控制器任何一方的控制器的功能。
而且,在本方通信控制器具有作为主机端的控制器功能的情况下,本方通信控制器的控制部在SETUP事务处理时,可将从主机发送的SETUP分组和DATA分组发送到装置端。此外,正常(合适)地接收了这些分组的装置向主机发送ACK分组。
再有,这种ACK分组可以表示已正常地接收SETUP分组和DATA分组,是来自装置的应答分组。在最大TA时间内未能接收该ACK分组时,主机判断为未能正常地完成(失败)SETUP事务处理。然后,向装置再发SETUP分组和DATA分组。
特别是本方通信控制器的控制部在接收到从装置端向主机发送的ACK分组时,将该分组存储在自身控制的存储部。然后,控制部被设定,以在从主机再发SETUP分组和DATA分组时,将存储的ACK分组发送到主机。
这样,如果采用本方通信控制器,则在主机再发SETUP分组和DATA分组之后,使主机接收ACK分组。因此,即使在主机-装置间的通信上需要时间,要经过最大TA时间才能使主机直接接收从装置端发送的ACK分组的情况下,也可以使SETUP事务处理完成。
再有,上述的主机-装置间的通信(数据传送)上需要时间的情况是该期间的通信速度缓慢的情况,或该期间的通信路径长的情况等。因此,如果使用本方通信控制器,则使主机-装置间的通信路径的自由度显著增大。
此外,控制部存储了从装置端接收的ACK分组后,不等待再发SETUP分组和DATA分组,将ACK分组传送到主机就可以。这种情况下,在最大TA时间内使主机接收ACK分组的情况下,在该时刻,SETUP事务处理结束。另一方面,通过主机接收ACK分组时,在超过最大TA时间的情况下,从主机再发SETUP分组/DATA分组,通过控制部,将ACK分组发送到主机。
此外,控制部也可以被设定,以在存储了从装置端接收的ACK分组后,避免对主机发送ACK分组。这种情况下,控制部等待来自主机的再发分组,向主机发送ACK分组。
此外,通过通信控制器具备主机端的控制器的功能和装置端的控制器的功能,可将通信控制器用作主机端的控制器,也可以用作装置端的控制器。因此,不一定需要主机,在各装置间可进行通信的USB-OTG(USBOn-The-Go)的规格下,可以使用本方通信控制器。
此外,为了解决上述课题,本发明的分组通信方法用于在USB系统中的主机和装置之间进行分组通信,其特征在于,该方法包括在SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端的分组发送步骤;避免将从装置端向主机发送的ACK分组传送到主机端的应答避免步骤;以及在从主机向装置再发SETUP分组和DATA分组时,将所述ACK分组发送到主机的应答步骤。
本通信方法是通过上述的本方通信控制器实现的通信方法。因此,如果采用本通信方法,即使在主机-装置间的通信上需要时间,要经过最大TA时间才能使主机直接接收从装置端发送的ACK分组的情况下,也可以使SETUP事务处理完成。而且,使主机-装置间的通信路径的自由度显著增大。
此外,为了解决上述课题,本发明的分组通信程序是使配备在USB系统的主机中的计算机执行本通信方法的分组发送步骤、应答避免步骤、应答步骤的分组通信程序。
通过使上述计算机读取这种程序,可通过该计算机来实现本通信方法的各步骤。
此外,通过将这种程序记录在可由计算机读取的记录媒体,可容易地进行程序的保存和流通。
本发明的其他目的、特征、以及优点,可通过以下所示的记载充分展示。此外,本发明的优势在参照附图的以下说明中将变得明确。


图1是表示本发明的一实施方式的图,是表示实施方式1的发送接收系统的主要部分结构的方框图。
图2是表示实施方式1的发送接收系统的主机端控制器的状态机的动作流程图。
图3是表示实施方式1的发送接收系统的功能机端控制器的状态机的动作流程图。
图4是表示实施方式2的发送接收系统的主机端控制器的状态机的动作流程图。
图5是表示实施方式2的发送接收系统的功能机端控制器的状态机的动作流程图。
图6是表示实施方式2的发送接收系统中的IN事务处理的定时图。
图7是表示USB2.0中各传送模式的DATA分组最大长度的图。
图8是表示实施方式3的发送接收系统的主要部分结构的方框图。
图9是表示实施方式4的发送接收系统的主要部分结构的方框图。
图10是表示实施方式5的发送接收系统的主要部分结构的方框图。
图11是表示实施方式6的发送接收系统的主要部分结构的方框图。
图12是表示实施方式6的发送接收系统的主机端控制器的状态机的动作流程图。
图13是表示实施方式7的发送接收系统的主要部分结构的方框图。
图14是表示实施方式7的发送接收系统的主机端控制器的状态机的动作流程图。
图15是表示实施方式7的发送接收系统的功能机端控制器的状态机的动作流程图。
图16是表示实施方式8的USB分组和低速通信路径中的分组格式的图。
图17是表示实施方式9的发送接收系统的主要部分结构的方框图。
图18是表示实施方式9和18中的速度协调处理的定时图。
图19是表示实施方式9、18和19中的发送接收系统的主机端控制器的速度协调状态机(SNSM)的动作的定时图。
图20是表示实施方式9、18和19中的发送接收系统的功能机(装置)端控制器的速度协调状态机(SNSM)的动作的定时图。
图21是表示具备主机端控制器的功能和装置端控制器的功能的通信控制器的图。
图22是表示本发明一实施方式的图,是表示实施方式10的发送接收系统的主要部分结构的方框图。
图23是表示实施方式10的发送接收系统的主机端控制器的状态机的动作流程图。
图24是表示实施方式10的发送接收系统的主机端控制器的状态机中的与接收PING分组有关的动作的流程图。
图25是表示实施方式10的发送接收系统的功能机端控制器的状态机的动作流程图。
图26是表示实施方式11的发送接收系统的主要部分结构的方框图。
图27是表示实施方式12的发送接收系统的主要部分结构的方框图。
图28是表示实施方式13的发送接收系统的主要部分结构的方框图。
图29是表示实施方式14的发送接收系统的主要部分结构的方框图。
图30是表示实施方式15的发送接收系统的主机端控制器的状态机中的与接收PING分组有关的动作的流程图。
图31是表示实施方式16的USB分组和低速通信路径中的分组格式的图。
图32是表示实施方式17的发送接收系统的主机端控制器的状态机中的与接收PING分组有关的动作的流程图。
图33是表示实施方式18的发送接收系统的主要部分结构的方框图。
图34是表示具备主机端控制器的功能和装置端控制器的功能的通信控制器的图。
图35是表示本发明一实施方式的USB系统结构的方框图。
图36是表示图35所示的USB系统的主机端控制器的主机SM的SETUP事务处理中的动作流程的流程图。
图37是表示图35所示的USB系统的装置端控制器的数据SM的SETUP事务处理中的动作流程的流程图。
图38是表示图35所示的USB系统的速度协调例子的定时图。
图39是表示在图35所示的USB系统中传送的DATA分组结构的说明图。
图40是表示图35所示的USB系统的装置端控制器的其他结构的方框图。
图41是表示具备主机端控制器的功能和装置端控制器的功能的通信控制器的图。
图42是表示USB2.0中的分组种类的图。
图43是表示USB2.0中的代表性分组的分组格式图。
图44是表示USB2.0中的IN事务处理的定时图。
图45是表示用低速通信路径进行USB2.0中的IN事务处理情况下的分组传送状况的定时图。
图46是表示USB2.0中的OUT事务处理的定时图。
图47是表示用低速通信路径进行USB2.0中的OUT事务处理情况下的分组传送状况的定时图。
图48是表示SETUP事务处理的例子的定时图。
图49是表示现有的USB系统中的SETUP事务处理的定时图。
具体实施例方式
在以下的实施方式1至9中,表示没有问题地进行基于USB2.0的IN事务处理的数据传送的发送接收系统的结构。而在实施方式10至18中,表示没有问题地进行基于USB2.0的OUT事务处理的数据传送的发送接收系统的结构。而且,在实施方式19中,表示即使采用数据传送上需要时间的通信路径,也可实行SETUP事务处理的USB系统的结构。
此外,后述的图7、以及图18~20可用于多个实施方式的说明,上述各图用于多个实施方式的说明。
在根据图1至图3来说明本发明的一实施方式时,如下所述。
首先,实施方式1的发送接收系统的概略结构示于图1。图1所示的发送接收系统由主机端控制器100和功能机端控制器110构成。此外,在连接到USB主机端的主机端控制器100和连接到USB功能机端的功能机端控制器110之间进行作为USB主机(主机装置)的设备与作为USB功能机(功能机装置)的设备之间的通信。
此外,图1中的主机端控制器100和功能机端控制器110中间的通信通过光通信部件进行,设该光通信部件具有与USB规格确定的传送速度相同或其以下的传送速度。
主机端控制器100接收来自USB主机的信号后,将其发送到功能机端控制器110,而接收来自功能机端控制器110的信号后,将其向USB主机发送。主机端控制器100除了用USB电缆与USB主机连接之外,也可以用USB电缆与USB集线器的下流端口连接。此外,作为USB主机和USB集线器的一部分,怎样构成都可以。
功能机端控制器110将接收来自主机端控制器100的信号的情况发送到USB功能机,并在接收来自USB功能机的信号后,将其向主机端控制器100发送。功能机端控制器110除了用USB电缆与USB功能机连接以外,也可以用USB电缆与USB集线器的上流端口连接。此外,作为USB功能机和USB集线器的一部分,怎样构成都可以。
以下说明主机端控制器100和功能机端控制器110的各主要结构部件。
主机端控制器100包括主机端状态机101、USB接收机102、FIFO103、调制电路104、光发送机105、光接收机106、解调电路107、FIFO(存储部件)108、USB发送机109。而功能机端控制器110包括功能机端状态机111、光接收机112、解调电路113、FIFO114、USB发送机115、USB接收机116、FIFO117、调制电路118、光发送机119。再有,上述主机端状态机101与本申请技术方案范围中记载的接收确认部件、数据存储部件、发送控制部件、以及再发请求部件对应。
在主机端控制器100中,从USB主机发送并由USB接收机102接收的USB信号,通过主机端状态机101进行信号及分组解析,同时通过FIFO103来存储分组。主机端控制器100和功能机端控制器110间的通信路径的速度与USB的通信路径相比为相同或为低速,所以该FIFO103在所述通信路径中进行传送分组时的定时调整。
主机端状态机101在来自USB主机的接收分组为IN分组或ACK分组时,进行向功能机端控制器110的分组传送。即,在主机端控制器100中,如果从USB主机接收判断为即使传送也可以的分组,则主机端状态机101向调制电路104通知开始该分组的发送及调制。由此,存储在FIFO103中的分组被调制电路104调制,通过光发送机105向功能机端控制器110发送。
在本实施方式的说明中,将主机端控制器100和功能机端控制器101之间(以下,称为主机-功能机间)的通信路径作为光通信路径,所以光发送机105例如为发光二极管或激光,但光通信路径是采用光纤的有线通信路径,是空间通信都没有问题。在采用光纤的情况下,可进行长距离传输,在空间通信的情况下,由于没有光缆,所以便利性提高。
在调制电路104中,在将主机-装置间的通信路径作为光通信时,例如选择8B10B等的调制方法,但上述通信路径不必限定于光,例如即使为无线也可以。该情况下,在调制电路104中,也可以采用其他调制方式。此外,主机-装置间的通信方式也可以选择半双工通信和全双工通信的任何一种方式,而如果选择全双工通信,则由于光发送机105始终发光,所以不需要在分组中附加前置码,关系到提高通信路径的使用效率。
此外,在主机端控制器100从USB主机接受了接收IN分组或ACK分组的情况下,主机端控制器100在该时刻未从功能机端控制器110接收DATA分组。因此,主机端状态机101经由FIFO108和USB发送机109,将NAK分组发送到USB主机。由此,主机端控制器100可对USB主机通知没有从功能机端控制器110接收到DATA分组。
另一方面,如果通过功能机端控制器110的光接收机112接收从主机端控制器100向功能机端控制器110发送的信号,则通过解调电路113例如进行8B10B解调后,通过功能机端状态机111来解释该分组的内容。这里,光接收机112例如是光电二极管,但如上所述,因主机-功能机间的通信路径的种类而有所不同,在无线的情况下为接收天线。上述分组被判断为是来自主机端控制器100的IN分组或ACK分组时,该分组被存储在FIFO114中。此外,功能机端状态机111等待来自主机端控制器100的分组接收结束,并将该分组通过USB发送机115作为USB信号发送到USB功能机。
这样,如果USB功能机接收从功能机端控制器110的USB发送机发送的IN分组,则USB功能机在具有要发送的DATA时将DATA分组发送到功能机端控制器110,而在没有要发送的DATA时将NAK分组发送到功能机端控制器110。由功能机端控制器110的USB接收机116接收的所述DATA分组或NAK分组通过功能机端状态机111来解释该分组的内容,同时被存储在FIFO117中。然后,通过调制电路118例如进行8B10B调制,经由光发送机119,作为光信号向主机端控制器100发送。
通过主机端控制器100的光接收机106接收的信号被解调电路107例如进行8B10B解调,通过主机端状态机101来识别该接收信号是DATA分组或NAK分组,并通过FIFO108来存储该分组。
此外,如上述那样,对于最初发送的IN分组,从主机端控制器100返回NAK分组,所以USB主机向主机端控制器100再次发送IN分组。在通过USB接收机102再次接收了IN分组的时刻,如果是FIFO108中存储的所述DATA分组或NAK分组,则主机端控制器100将该分组发送到USB主机。
此外,与NAK分组相关联,在主机端控制器100从USB主机接收了IN分组时,即使在没有从功能机端控制器110接收DATA分组的情况下,也与来自功能机端控制器110的NAK分组无关,从主机端控制器100对USB主机进行发送。
如以上那样,在主机端控制器100中,用FIFO108存储从USB主机最初接收的作为与IN分组对应的应答的DATA分组或NAK分组,并在从USB主机再发来IN分组时,将FIFO108中存储的DATA分组或NAK分组发送到USB主机。由此,即使在USB主机和USB功能机之间与USB规格相比存在低速的通信路径,对于可再发的IN分组,不再次进行主机-功能机间的通信,而可以将DATA分组或NAK分组在限制时间内可靠地发送到USB主机,所以可以没有问题地进行IN事务处理。
这里,用图2来说明本发明实施方式1的主机端控制器100的主机端状态机101的动作。
S201是判别从USB主机接收的分组是否为IN分组的步骤。在为IN分组的情况下,转移至S202,而在为IN分组以外的分组时,再次转移到S201。
S202是向功能机端控制器110发送IN分组的步骤。在发送结束后,转移至S203。
S203是判别从功能机端控制器110能否接收DATA分组的步骤。在接收DATA分组时转移至S205,而在没有接收时转移至S204。
S204是对USB主机发送NAK分组的步骤。在发送NAK分组后转移至S201。
S205是判断接收的DATA分组是否正确的步骤。在DATA分组不正确时转移至S206,在DATA分组正确时转移至S207。
S206是向USB功能机请求再发DATA分组的步骤。在该再发请求后,转移至S201。
S207是向USB主机发送DATA分组的步骤。在发送该DATA分组后,结束IN事务处理。
下面,用图3说明本发明实施方式1的功能机端控制器110的功能机端状态机111的动作。
S301是判别从主机端控制器100接收的分组是否为IN分组的步骤。在为IN分组时转移至S302,在为除此以外的分组时再次转移至S302。
S302是对USB功能机发送IN分组的步骤。在发送IN分组后,在启动定时器后转移至S303。
S303是判别从USB功能机接收的分组的步骤。在为DATA分组时转移至S305,在为NAK分组时转移至S304,而在经过预定的时间并超时时转移至S301。
S304是向主机端控制器100发送NAK分组的步骤。在发送NAK分组后转移至S301。
S305是向主机端控制器100发送DATA分组的步骤。在向主机端控制器100发送DATA分组后转移至S306。
S306是向USB功能机发送ACK分组的步骤。在发送ACK分组后,结束IN事务处理。
如上述那样,在主机端控制器100中通过安装进行图2所示动作的状态机,而在功能机端控制器110中通过安装进行图3所示动作的状态机,即使主机端控制器100和功能机端控制器110的通信路径与USB相同或为低速,也可以没有问题地进行IN事务处理。
再有,在上述图2的处理中,主机端控制器100将从USB主机接收的IN分组在S202中传送到功能机端控制器110。但是,在主机端控制器100处于可对USB主机发送DATA分组时,不需要将上述IN分组发送到功能机端控制器110。严格地说,如果该IN分组到达USB功能机,则USB功能机有可能产生新的DATA分组,所以这样的情况下,最好是不将IN分组传送到USB功能机。
因此,在主机端控制器100从USB主机接收了IN分组的时刻,在从功能机端控制器110接收DATA分组的情况下,例如进行不将上述IN分组发送到功能机端控制器110的控制。或者,考虑以下方法在功能机端控制器110发送DATA分组后,忽略来自主机端控制器100的IN分组,直至从主机端控制器100接收ACK分组。
根据图4至图7说明本发明的另一实施方式时,如下所述。
本实施方式2的发送接收系统的概略结构与实施方式1中的图1所示的结构相同,各主要结构部件具有与实施方式1的发送接收系统相同的功能,所以省略详细的说明。
首先,用图4来说明实施方式2的主机端控制器100的主机端状态机101的动作。
S401是判别从USB主机接收的分组是否为IN分组的步骤。在为IN分组时转移至S402,而在为除此以外的分组时再次转移至S401。
S402是向功能机端控制器110发送IN分组的步骤。在结束发送IN分组后转移至S403。
S403是判别是否在从功能机端控制器110接收DATA分组的步骤。在接收DATA分组时转移至S405,而在没有接收时转移至S404。
S404是向USB主机发送NAK分组的步骤。在结束发送NAK分组后转移至S401。
S405是向USB主机发送DATA分组的步骤。在结束发送DATA分组后,在启动定时器后,转移至S406。
S406是判别是否从USB主机接收了ACK分组的步骤。在接收了ACK分组时转移至S407,在没有接收ACK分组,经过预定的时间并超时时转移至S401。
S407是对功能机端控制器110发送ACK分组的步骤。在发送ACK分组后,结束IN事务处理。
下面,用图5说明实施方式2的功能机端控制器110的功能机端状态机111的动作。
S501是判别从主机端控制器100接收的分组是否为IN分组的步骤。在为IN分组时,转移至S502,而在为除此以外的分组时,再次转移至S501。
S502是保持IN分组的步骤。在保持IN分组后,转移至S503。
S503是向USB功能机发送IN分组的步骤。在结束发送IN分组后,在启动定时器后,转移至S504。
S504是判别从USB功能机接收的分组的步骤。在为DATA分组时转移至S506,在为NAK分组时转移至S505,而在没有接收DATA分组和NAK分组,经过预定的时间并超时时转移至S501。
S505是向主机端控制器100发送NAK分组的步骤。在结束发送NAK分组后,转移至S501。
S506是判别是否在从主机端控制器100接收ACK分组的步骤。在接收ACK分组时转移至S508,而在没有接收时转移至S507。
S507是向主机端控制器100发送DATA分组的步骤。在结束发送DATA分组后,转移至S501。
S508是对USB功能机发送预先保存的IN分组的步骤。在结束发送IN分组后,转移至S522。
S509是从USB功能机接收DATA分组的步骤。在DATA分组结束后,转移至S510。
S510是向USB功能机发送ACK分组的步骤。在向USB功能机结束发送ACK分组后,结束IN事务处理。
如上述那样,在主机端控制器100通过安装进行图4所示动作的状态机,而在功能机端控制器110中通过安装进行图5所示动作的状态机,即使主机端控制器100和功能机端控制器110的通信路径与USB相同或为低速,也可以没有问题地进行IN事务处理。如果归纳上述图4和图5的处理,则为图6所示的定时图。
此外,在从功能机端控制器110接收,并发送到USB主机的DATA分组差错的情况下,主机端控制器100不从USB主机接收ACK分组,所以不对USB功能机发送ACK分组,只在正确地传送DATA分组时,可正常结束IN事务处理。即,在上述处理中,在主机-功能机间的通信路径中DATA分组中产生差错时,由于功能机端控制器110不将ACK分组发送到USB功能机,所以可以防止IN事务处理异常结束,可以进行更稳定的分组传送。
在实施方式1和实施方式2中,在主机端控制器100中,在从USB主机接收IN分组时,只在从功能机端控制器110完全接收了DATA分组的情况下,可对USB主机发送DATA分组。其原因是,在DATA分组的分组格式中不存在意味着分组长度的字段(field),在将来自低速通信路径的接收数据传送到USB的高速通信路径时,可靠地进行传送而不遗漏DATA。但是,在USB2.0中,在图7所示的各传送模式中,DATA分组的分组长度的上限确定了分组的最大长度。
根据图8说明本发明的另一实施方式时,如下所述。
首先,实施方式3的发送接收系统的概略结构示于图8。图8所示的发送接收系统由主机端控制器120和功能机端控制器110构成。主机端控制器120包括主机端状态机101、USB接收机102、FIFO103、调制电路104、光发送机105、光接收机106、解调电路107、FIFO108、USB发送机109、计数器(数据量确认部件)121。在主机端控制器120中,计数器121以外的主要结构部件都具有与图1所示的主机端控制器100相同的结构和功能,所以省略详细的说明。此外,由于图8中的功能机端控制器110与图1所示的功能机端控制器110相同,所以也省略其详细的说明。
计数器121是在将从功能机端控制器110接收的DATA分组写入FIFO108时,其值仅增加被写入的DATA分组部分的计数器。
这里,在上述实施方式1和2中,从主机端控制器100向USB主机的DATA分组的发送,在主机端控制器100中完全结束接收DATA分组后才开始。这是因为在主机-功能机间的通信路径中的传送速度比主机端控制器100和USB主机之间的传送速度(USB规格确定的传送速度)低的情况下,如果在结束接收来自功能机端控制器110的DATA分组前开始对USB主机传送DATA分组,则有不进行正常的传送处理的可能性。即,在上述情况下,在结束接收来自功能机端控制器110的DATA分组前,在主机端控制器100中存储DATA分组的FIFO108为EMPTY,有产生对USB主机不能连续传送DATA分组的不良情况的可能性。
但是,例如在主机端控制器100和USB主机之间的传送为同步传送时,FIFO108中存储的DATA分组的数据量没有达到与图7所示的同步传送时的最大分组长度的3072字节相当的值的状态下,在USB2.0的通信路径中即使开始发送DATA分组,如果在其后的发送中FIFO108不变为EMPTY,则不等待来自功能机端控制器110的DATA分组的接收结束,即使对USB通信路径发送DATA分组,也不产生上述不良情况。
因此,在本实施方式3的主机端控制器120中,从功能机端控制器110接收DATA分组,在将该DATA分组存储在FIFO108时,用计数器121来管理存储的DATA分组的数据量的值。而且,如果即使当时开始对USB主机传送DATA分组,计数器121管理的值也不大于或等于FIFO108为EMPTY的值,则通过不等待结束接收来自功能机端控制器110的DATA分组而开始向USB主机发送DATA分组,从而可加快DATA分组的发送定时,可提高作为整体的传送速度。
此外,在主机端控制器100和USB主机之间的传送方式不是同步传送,进行最大数据长度比同步传送小的批量传送的应用时,可降低上述计数器的设定值,可进一步提高作为整体的传送速度。
根据图9说明本发明的另一实施方式时,如下所述。
首先,实施方式4的发送接收系统的概略结构示于图9。图9所示的发送接收系统由主机端控制器130和功能机端控制器110构成。主机端控制器130包括主机端状态机101、USB接收机102、FIFO103、调制电路104、光发送机105、光接收机106、解调电路107、FIFO108、USB发送机109、CRC校验电路(差错解析部件)131。在主机端控制器130中,CRC校验电路131以外的主要结构部件都具有与图1所示的主机端控制器100相同的结构和功能,所以省略详细的说明。此外,由于图9中的功能机端控制器110与图1所示的功能机端控制器110相同,所以也省略其详细的说明。
CRC校验电路131计算从功能机端控制器110接收的DATA分组中的CRC(Cyclic Redundancy Check)16,可判别在接收的DATA分组中是否有差错。由CRC校验电路131判断为有差错的DATA分组被主机端状态机101废弃,不作为USB分组发送,从而降低发送需要的电力,同时可抑制因USB主机接收差错的分组而产生的不能预期的异常动作。
根据图10说明本发明的另一实施方式时,如下所述。
首先,实施方式5的发送接收系统的概略结构示于图10。图10所示的发送接收系统由主机端控制器100和功能机端控制器140构成。功能机端控制器140包括功能机端状态机111、光接收机112、解调电路113、FIFO114、USB发送机115、USB接收机116、FIFO117、调制电路118、光发送机119、CRC校验电路(差错解析部件)141。在功能机端控制器140中,CRC校验电路141以外的主要结构部件都具有与图1所示的功能机端控制器110相同的结构和功能,所以省略详细的说明。此外,由于图10中的主机端控制器100与图1所示的主机端控制器100相同,所以也省略其详细的说明。
CRC校验电路141计算从USB功能机接收的DATA分组中的CRC16,可判别在接收的DATA分组中是否有差错。这里,在从USB功能机接收的DATA分组中有差错时,即使将其传送到主机端控制器100也没有意义,这种情况下的对主机-功能机间的低速通信路径的DATA分组的传送无效。因此,如果通过CRC校验电路141判断为有差错的DATA分组即使在传送的中途也放弃该分组的发送,从而可抑制低速通信路径的传送效率恶化。
根据图11和图12说明本发明的又一实施方式时,如下所述。
首先,实施方式6的发送接收系统的概略结构示于图11。图11所示的发送接收系统由主机端控制器150和功能机端控制器110构成。主机端控制器150包括主机端状态机101、USB接收机102、FIFO103、调制电路104、光发送机105、光接收机106、解调电路107、FIFO(存储部件)151、USB发送机109、CRC校验电路131。在主机端控制器150中,FIFO151以外的主要结构部件都具有与图9所示的主机端控制器130相同的结构和功能,所以省略详细的说明。此外,由于图11中的功能机端控制器110与图1所示的功能机端控制器110相同,所以也省略其详细的说明。
主机端控制器150进行控制,以在接收来自功能机端控制器110的DATA分组时,主机端状态机101将接收的DATA分组写入FIFO151。此外,在FIFO151中存储了DATA分组的状态下,主机端控制器150从USB主机再接收IN分组时,将FIFO151中存储的DATA分组发送到USB主机。
该FIFO151在发送DATA分组时,预先保存读指针(read pointer)的值。主机端状态机101在将DATA分组发送到USB主机后,在预定的一定时间内不从USB主机接收ACK分组的情况下,在USB主机和主机端控制器150之间的通信路径中,判断为发生了数据差错。然后,主机端状态机101将读指针设定为上述的读指针的值,在从USB主机接收下个IN分组后,再次将相同的DATA分组发送到USB主机。
这种情况下,通过FIFO151中的读指针的控制,实现DATA分组的再发,但即使通过用RAM等保存开始地址来实现这种再发处理也没有问题。此外,在具备CRC校验电路131时,由于通过CRC校验电路131可判别来自功能机端控制器110的接收DATA分组是否正确,所以也可以只在判别为接收DATA分组正确的情况下,进行上述再发处理的控制。
这里,用图12说明本发明实施方式6的主机端控制器150的主机端状态机101的动作。
S1101是判别是否从USB主机接收了IN分组的步骤。在接收了IN分组时转移至S1101,而在接收了除此以外的分组时再次转移至S1101。
S1102是向功能机端控制器110发送IN分组的步骤。在结束发送IN分组后转移至S1103。
S1103是判别是否在从功能机端控制器110接收DATA分组的步骤。在接收DATA分组时转移至S1105,在没有接收时转移至S1104。
S1104是对USB主机发送NAK分组的步骤。在结束发送NAK分组后转移至S1101。
S1105是对USB主机发送DATA分组的步骤。在结束发送DATA分组后,开始定时,并转移至S1106。
S1106是判别是否从USB主机接收了ACK分组的步骤。在接收了ACK分组时转移至S1107,而在没有接收ACK分组,经过预定的时间并超时时转移至S1108。
S1107是对USB功能机发送ACK分组的步骤。在结束发送ACK分组后结束IN事务处理。
S1108是判别是否从USB主机接收了IN分组的步骤。在接收了IN分组时转移至S1105,而在接收了除此以外的分组时再次转移至S1108。
在主机端控制器150中,通过进行上述的状态机的动作,在主机端控制器150对USB主机发送DATA分组时,在USB主机和主机端控制器150之间发生数据差错时,也可进行DATA分组的再发处理。
根据图13和图14说明本发明的又一实施方式时,如下所述。
首先,实施方式7的发送接收系统的概略结构示于图13。图13所示的发送接收系统由主机端控制器100和功能机端控制器160构成。功能机端控制器160包括功能机端状态机111、光接收机112、解调电路113、FIFO114、USB发送机115、USB接收机116、FIFO161、调制电路118、光发送机119、CRC校验电路141。在功能机端控制器160中,FIFO161以外的主要结构部件都具有与图10所示的功能机端控制器140相同的结构和功能,所以省略详细的说明。此外,由于图13中的主机端控制器100与图1所示的主机端控制器100相同,所以也省略其详细的说明。
功能机端控制器160进行控制,以在从USB功能机接收DATA分组时,功能机端状态机111将接收的DATA分组写入FIFO161。此外,上述DATA分组通过调制电路118例如进行8B10B调制,并对主机端控制器100发送。
该FIFO161在发送DATA分组时,预先保存读指针的值。在功能机端状态机111从主机端控制器100接收了再发请求时,将读指针设定为所述读指针的值,再次向主机端控制器100发送相同的DATA分组。
这种情况下,通过FIFO161中的读指针的控制,实现DATA分组的再发,但即使通过用RAM等保存开始地址来实现这种再发处理也没有问题。此外,在具备CRC校验电路141时,由于通过CRC校验电路141可判别接收来自USB功能机的DATA分组是否正确,所以也可以只在判别为接收DATA分组正确的情况下,进行上述再发处理的控制。
这里,用图14说明本发明实施方式7的主机端控制器100的主机端状态机101的动作。再有,与该再发处理有关的主机端状态机101可装入实施方式1或实施方式2所示的主机端控制器100的状态机中,也可以按单独方式存在。
S1301是判别从功能机端控制器160接收的分组是否为DATA分组的步骤。在为DATA分组时转移至S1302,而在为除此以外的分组时再次转移至S1301。
S1302是判别在接收DATA分组中是否有差错的步骤。在没有差错时不进行再发请求并结束处理。而在有差错时转移至S1303。
S1303是对功能机端控制器160请求再发DATA分组的步骤。在再发请求结束后转移至S1301。
通过进行上述动作,在主机端控制器100和功能机端控制器160之间的通信路径中,在DATA分组中产生差错的情况下,主机端控制器100可对功能机端控制器160通知这种状况。
下面,用图15说明实施方式7的功能机端控制器160的功能机端状态机111的动作。再有,与该再发处理有关的功能机端状态机111可装入实施方式1或实施方式2所示的主机端控制器160的状态机中,或也可以按单独方式存在。
S1401是判别从USB功能机接收的分组是否为DATA分组的步骤。在为DATA分组时转移至S1402,而在为除此以外的分组时再次转移至S1401。
S1402是向主机端控制器100发送DATA分组的步骤。在结束发送DATA分组后转移至S1403。
S1403是判别从主机端控制器100接收的信号的步骤。如果是再发请求,则转移至S1402,而如果是ACK分组时,则不进行再发处理而结束处理。
通过进行上述动作,根据来自主机端控制器100的再发请求,功能机端控制器160例如通过重新设定FIFO161的读指针,可进行再发处理。
此外,功能机端控制器160从主机端控制器100接受再发请求时,向USB功能机发送IN分组,并将作为其回复接收的DATA分组发送到USB主机。
根据图16说明本发明另一实施方式时,如以下所述。
图16表示本实施方式8的分组格式。在图16中,USB分组是按USB规格规定的传送速度进行通信的数据分组的分组格式,而低速用分组是变换为用于低速通信路径的分组格式。即,低速用分组是功能机端控制器向主机端控制器发送DATA分组时的分组格式。
如图16所示,在低速用分组中,在USB分组的CRC16之后,设置所谓CRC_OK的字段。在功能机端控制器保存的DATA分组中没有差错时,在上述CRC_OK的字段中输入表示该情况的值(设立表示该情况的标记),而在保存的DATA分组中有差错时,同样输入该情况并向主机端控制器发送该DATA分组。由此,可将功能机端控制器保存的DATA分组是否为可再发的分组的信息通知主机端控制器。在主机端控制器中,通过监视上述CRC_OK的字段,假如判断为在接收DATA分组中有差错时,对于功能机端控制器,可进行是否请求再发的控制。
根据图17至图20说明本发明的另一实施方式时,如以下所述。
首先,实施方式9的发送接收系统的概略结构示于图17。图17所示的发送接收系统由主机端控制器170和功能机端控制器180构成。主机端控制器170包括主机端状态机101、USB接收机102、FIFO103、调制电路104、光发送机105、光接收机106、解调电路107、FIFO108、USB发送机109、速度协调状态机171、差错检测电路172、定时器173。在主机端控制器170中,速度协调状态机171、差错检测电路172以外的主要结构部件具有与图1所示的主机端控制器100相同的结构和功能,所以省略详细的说明。此外,功能机端控制器180包括功能机端状态机111、光接收机112、解调电路113、FIFO114、USB发送机115、USB接收机116、FIFO117、调制电路118、光发送机119、速度协调状态机181、差错检测电路182、定时器183。在功能机端控制器180中,速度协调状态机181、差错检测电路182以外的主要结构部件具有与图1所示的功能机端控制器110相同的结构和功能,所以省略详细的说明。
速度协调状态机171和181在主机端控制器170和功能机端控制器180之间进行速度协调(传送速度调整),是用于从多个传送速度中选择一个传送速度的状态机。差错检测电路172、182是进行低速通信路径(在图17中,为主机-功能机间的光通信路径)的差错检测的电路。再有,这种速度协调在IN事务处理实行前进行。
用图18说明速度协调的动作。再有,图18中的速度协调的协议为一例,本发明不限定于该协议。
主机端控制器170的速度协调状态机171在t1401中按规定的传送速度开始发送keep_speed信号,而与发送keep_speed信号的同时使定时器启动。再有,keep_speed信号是用于确定传送速度的一个发送码(请求信号),是向功能机端控制器180请求维持当前的传送速度的信号。
另一方面,在功能机端控制器180中,通过信号检测信号来确认该keep_speed信号的接收后,在t1402中,使定时器启动,同时对主机端控制器170开始发送keep_speed信号。
主机端控制器170和功能机端控制器180分别在预定的时间T的期间持续发送特定的发送码。
在t1403中,从主机端控制器170发送的keep_speed信号在光通信路径中产生位差错(bit error),功能机端控制器180未能正常接收时,在t1404中,功能机端控制器180向主机端控制器170发送lower_speed信号,取代keep_speed信号。该lower_speed信号是用于确定传送速度的一个请求信号,是向接收方(主机端控制器170)请求降低传送速度的信号。
在接收了来自功能机端控制器180的lower_speed信号的主机端控制器170中,在当前的传送速度A中,识别为功能机端控制器180没有正常地进行接收。然后,对于功能机端控制器180,发送lower_speed信号(在t1405中,将发送码切换为lower_speed)。
在t1406中,功能机端控制器180通过从主机端控制器170接收lower_speed信号,判断为自身发送的lower_speed信号被主机端控制器170识别。
然后,分别在主机端控制器170和功能机端控制器180中经过规定时间T后,由于在该时刻发送接收的信号是lower_speed信号,所以主机端控制器170和功能机端控制器180将传送速度例如降低一半(A/2)。
即,在t1407中,主机端控制器170按传送速度A/2开始发送keep_speed信号,同时使定时器再启动。另一方面,在t1408中,功能机端控制器180也以传送速度A/2开始发送keep_speed信号,同时使定时器再启动。
然后,在主机端控制器170和功能机端控制器180双方中没有检测出差错并经过规定时间T后,主机端控制器170和功能机端控制器180在t1409、t1410中,开始发送作为速度协调的结束信号(结束请求)的End_Nego信号。然后,主机端控制器170和功能机端控制器180分别在接收到来自对方设备的End_Nego信号时,结束速度协调,转移到有效状态。
这里,用图19说明主机端控制器170中的速度协调状态机171的动作。
状态ST0是速度协调的开始状态。这里,速度协调状态机171使发送码为keep_speed信号,在将定时器再启动后,转移到状态ST1。
状态ST1是进行速度协调的状态。这里,速度协调状态机171在接收码中有差错,或接收到来自对方设备(功能机端控制器180)的lower_speed信号时,将发送码切换为lower_speed。
此外,速度协调状态机171在经过规定时间T后,在发送码为lower_speed信号时转移到状态ST0,而在发送码为keep_speed时转移到状态ST2。
这里,在转移到状态ST0时,使传送速度例如为相对于当前传送速度的一半(传送速度的下降的幅度(程度)可设定为用户要求的值。而且,该幅度预先存储在速度协调状态机171中)。
另一方面,在转移到状态ST2时,将发送码切换到End_Nego信号。该状态ST2是确认速度协调结束的状态。在从对方设备(功能机端控制器180)接收End_Nego信号后,结束速度协调,转移到有效状态。
下面,用图20说明功能机端控制器180中的速度协调状态机181的动作。
状态ST0、ST1、ST2的各状态中的动作与速度协调状态机171的动作相同。
状态ST0之前的状态ST4是判别是否从主机端控制器170接收了请求信号的状态。在从光接收机112(或其他接收信号检测电路)接收了信号检测信号时,速度协调状态机181将状态转移到状态ST0。
通过主机端控制器170和功能机端控制器180分别构成上述的状态机,可从多个传送速度中确定一个传送速度。
差错检测电路172和182进行主机-功能机间的光通信路径中的位差错的检测。具体地说,例如在8B10B解调时进行表检查,在接收到表中没有的字符时为差错。这里不涉及有关这种差错的定义。
在速度协调结束后,如果为有效状态,则根据差错检测电路172和182获得的差错数和定时器173及183的测量值,可测定一定时间内的差错数(差错率)。在所述差错率比预定的值大时,判断为通信路径的质量变差(例如可移动设备和PC(Personal Computer)间的通信中的可移动设备和PC的通信距离的变化等),所以放弃当前的传送速度下的通信,再次进行速度协调,在再确定可进行正常的通信的传送速度后,通过进行IN事务处理,可正常地进行数据传送。
此外,在本实施方式的说明中,假设主机-功能机间的光通信路径的传送速度比USB的原始速度低,但如果将来可制造更便宜的高速的光收发器,则可考虑采用主机-功能机间的光通信路径中可进行USB原始速度下的数据传送的通信部件。这样的情况下,首先按与USB的原始速度相当的速度(8B10B调制的情况下,为600Mbps)进行速度协调,假如在差错率变差的情况下,不进行基于本发明的状态机的分组控制,通过进行纯粹的重复,可进行USB2.0的纯粹光化,可以防止数据传送速度的下降。
然后,如果不能按600Mbps正常地通信,则在降低传送速度后,通过本发明的状态机来控制分组,并可进行IN事务处理。即,通过按速度协调的结果来判断基于状态机的控制的开通(ON)、关断(OFF),从而可按最高效率的方法来进行分组传送。
再有,上述实施方式1至9的说明论述了主机-功能机间的通信速度与USB的原始速度相比为低速,解决在现有的传输方式中按USB规定的限制时间内的通信没有完成的课题。但是,即使是主机-功能机间的通信速度与USB的原始速度相等的情况,在主机-功能机间的通信路径非常长时(例如数百米的光纤),周转时间变长,有可能在限制时间内不能结束IN事务处理。这是因为在USB的规格中,根据USB集线器的级数(最大6级)的重复时间和USB的电缆长度(最大5米),来确定最大周转时间。在这样的主机-功能机间的通信路径非常长,在现有的传输方式中按USB规定的限制时间内的通信没有完成的情况下,也可采用本发明的传输方法。
此外,在上述实施方式1至9的说明中,假设为USB2.0规格,而在USB2.0规格中主机端和功能机端的功能被分别固定。即,USB2.0规格下的数据交换将PC作为USB主机,在该PC上连接作为USB功能机的装置(数字照相机或打印机等)。
但是,近年来,制定了所谓的USB-OTG(USB-On-The-Go)规格,不需要普通USB系统中必要的PC(USB主机)。即,在USB-OTG规格中,由于可在没有PC(USB主机)下在USB设备之间进行数据的发送接收,所以便利性提高。在USB-OTG中,根据连接的电缆的连接器的种类,可作为USB主机动作,也可作为USB功能机动作。
在USB-OTG中,与USB2.0同样,支持LS(1.5Mbps)、FS(12Mbps)、HS(480Mbps)的传送速度。此外,USB-OTG对应的设备可作为USB主机动作,也可作为USB功能机动作。此外,在USB-OTG规格中,追加了所谓的miniAB的新的连接器种类。该miniAB可连接具有miniA、miniB双方插头的电缆,根据连接的电缆的插头的形状,在连接了miniA时,作为USB主机动作,而在连接了miniB时,作为USB功能机动作。此外,根据所谓的HNP(Host Negotiation Protocol)的新协议,在连接了电缆的状态下,追加了动态地交错主机和功能机的功能的机构。即,在USB-OTG中,被连接的设备是USB主机还是USB功能机,由电缆的连接器的种类或USB-OTG确定的HNP(Host Negotiation Protocol)来决定。
即,在将本发明应用于USB-OTG时,USB主机和USB功能机的作用不固定,根据被传输的数据的方向,其作用可被替换。同样,主机端控制器和功能机端控制器的其作用也不固定,根据被传输的数据的方向,其作用可被替换,所以如图21所示,一个通信控制器190具有主机端控制器和功能机端控制器两方的功能就可以。为此,在各控制器的状态机中,也可以装入具有主机端控制器和功能机端控制器两方功能并可动作的程序。
此外,在上述实施方式1至9的说明中,主机端控制器和功能机端控制器间的通信为全双工通信。由此,在主机-功能机间的通信中,可没有半双工通信时必要的前置码,可以提高通信路径的使用效率。当然,按半双工通信来构筑系统也没有问题。
在本发明的发送接收系统中,如用以上的实施方式说明的那样,即使是按比USB原始速度慢的速度(例如100Mbps)进行USB主机-主机端控制器-功能机端控制器-USB功能机间的数据传送的情况,与按USB原始速度(480Mbps)进行USB主机和USB功能机间的数据传送的情况相比,也有可获得作为整体大体相同的传送速度的情况。
例如,在使用闪存等的低速数据传送(50Mbps)的应用的情况下,通过连续实施上述IN事务处理,与HDD等的高速数据传送(200Mbps左右)采用必要的应用的情况相比,需要将IN事务处理间的时间增长。即,在使用高速数据传送的应用时,事务处理间的时间变长。
因此,在按本发明的方法进行IN事务处理时,尽管一次IN事务处理所需的时间比按USB原始速度进行主机-功能机间的数据传送情况要长,但如果在事务处理间要求的时间内结束,则下一IN事务处理开始时间不会比USB原始速度情况的IN事务处理开始时间慢。即,将主机-功能机间采用低速通信路径的情况和按USB原始速度进行通信的情况进行比较,其结果是作为整体的传送速度没有变化。
此外,在将USB2.0单纯地进行光化时,例如采用8B10B的调制方式时,需要具有480×10/8=600Mbps的频带的光收发器。满足它的光收发器为LD(激光二极管)。另一方面,在采用本发明,可用低速的通信路径进行USB2.0的传送时,在低速通信路径例如为100Mbps时,满足它的光收发器为LED(发光二极管)。如果比较LD和LED,LED一方绝对便宜,根据本发明的结构,可削减光收发器的成本。
而且,在控制器中,例如将主机端控制器与USB主机一体化,没有其他的金属端口,仅为光端口的结构时,控制器所需的频带从600Mbps极大地降低到100Mbps。这意味着可通过便宜的制造工序,制作控制器,根据本发明,同样可削减成本。
根据以上,在使用低速的应用时,根据本发明,可削减成本,作为低速的应用,例如在搭载了闪存的携带电话、数字照相机等设备中,可认为本发明是有效的。
在上述实施方式1至9中说明的发送接收系统中,在主机端控制器100中确认接收来自USB主机的IN分组后,将该IN分组发送到功能机端控制器110,并从功能机端接收DATA分组。接收的DATA分组用FIFO108临时存储,在从USB主机再次接收到IN分组时,将FIFO108中存储的DATA分组发送到USB主机。
因此,根据上述发送接收系统,即使是在主机-功能机间使用传送速度比USB2.0的原始速度低的通信路径的情况,也可没有问题地进行基于USB2.0的IN事务处理的数据传送。
此外,在上述实施方式1至9中说明的本发明,可以应用于以下各种通信设备即使主机-功能机间的传送速度为低速,通过正常进行IN事务处理而不知觉周转时间的发送接收系统,用USB进行数据通信。
根据图22至图25、以及图7说明本发明的另一实施方式时,如以下所述。
首先,实施方式10的发送接收系统(通信系统)的概略结构示于图22。图22所示的发送接收系统由主机端控制器1100和功能机端控制器1110构成。此外,作为USB主机(主机装置)的设备和作为USB功能机(功能机装置)设备之间的通信,在连接于USB主机端的主机端控制器1100和连接于USB功能机端的功能机端控制器1110之间进行。
此外,图22中的主机端控制器1100和功能机端控制器1110之间的通信通过光通信部件进行,设该光通信部件具有与USB规格确定的传送速度相同或小于等于它的传送速度。
主机端控制器1100接收来自USB主机的信号并将其发送到功能机端控制器1110,而且接收来自功能机端控制器1110的信号并将其向USB主机发送。主机端控制器1100除了用USB电缆与USB主机连接以外,也可以用USB电缆与USB集线器的下流端口连接。而作为USB主机和USB集线器的一部分,怎样构成都可以。
功能机端控制器1110接收来自主机端控制器1100的信号并将其发送到USB功能机,并且接收来自USB功能机的信号并将其向主机端控制器1100发送。功能机端控制器1110除了用USB电缆与USB功能机连接以外,也可以用USB电缆与USB集线器的上流端口连接。而作为USB功能机和USB集线器的一部分,怎样构成都可以。
以下,说明主机端控制器1100和功能机端控制器1110的各主要结构部件。
主机端控制器1100包括主机端状态机1101、USB接收机1102、FIFO1103、调制电路1104、光发送机1105、光接收机1106、解调电路1107、FIFO(存储部件)1108、USB发送机1109。而功能机端控制器1110包括功能机端状态机(再发请求部件)1111、光接收机1112、解调电路1113、FIFO1114、USB发送机1115、USB接收机1116、FIFO1117、调制电路1118、光发送机1119。再有,上述主机端状态机1101与本申请技术方案范围中所述的接收确认部件、存储确认部件、以及发送控制部件对应。
在主机端控制器1100中,在从USB主机发送并由USB接收机1102接收的USB信号,通过主机端状态机1101,进行信号和分组解析,同时通过FIFO1103来存储分组。与主机端控制器1100和功能机端控制器1110间的通信路径与USB的通信路径相比为相同或低速,所以该FIFO1103进行向所述通信路径传送分组时的定时调整。
在来自USB主机的接收分组为OUT分组或DATA分组时,主机端状态机1101进行对功能机端控制器1110的分组传送。即,在主机端控制器1100中,在从USB主机接收判断为即使传送也可以的分组时,主机端状态机1101向调制电路1104通知开始该分组的发送及调制。由此,将FIFO1103中存储的分组用调制电路1104进行调制,通过光发送机1105向功能机端控制器1110发送。
在本实施方式的说明中,将主机端控制器1100和功能机端控制器1110之间(以下,称为主机-功能机间)的通信路径形成为光通信路径,所以光发送机1105例如为发光二极管或激光,但光通信路径也可以是采用光纤的有线通信路径,即使是空间通信也没有问题。在采用光纤的情况下,可进行长距离传输,在空间通信的情况下,由于无光缆,所以便利性提高。
此外,在调制电路1104中,在主机-功能机间的通信路径为光通信时,例如选择8B10B等的调制方法,但上述通信路径不必限定于光,例如即使无线方式也可以。该情况下,在调制电路1104中采用其他调制方式也可以。此外,主机-功能机间的通信方式选择半双工通信和全双工通信的任何一个就可以,而如果选择全双工通信,由于光发送机1105始终发光,不需要在分组中附加前置码,所以关系到提高通信路径的使用效率。
此外,在主机端控制器1100从USB主机最初接受了接收OUT分组或DATA分组的情况下,主机端控制器1100在该时刻不从功能机端控制器1110接收ACK分组。因此,主机端状态机1101经由FIFO1108和USB发送机1109,将NAK分组发送到USB主机。由此,主机端控制器1100可对USB主机通知USB功能机未能处理DATA分组,并不能结束OUT事务处理。
另一方面,如果通过功能机端控制器1110的光接收机1112接收从主机端控制器1100向功能机端控制器1110发送的信号,则通过解调电路1113例如进行8B10B解调后,通过功能机端状态机1111来解释该分组的内容。这里,光接收机1112例如是光电二极管,但如上所述,因主机-装置间的通信路径的种类而有所不同,在无线方式的情况下为接收天线。上述分组被判断为是来自主机端控制器1100的OUT分组或DATA分组时,该分组被存储在FIFO1114中。此外,功能机端状态机1111等待来自主机端控制器1100的分组接收结束,并将该分组通过USB发送机1115作为USB信号发送到USB功能机。
这样,如果USB功能机接收从功能机端控制器1110的USB发送机1115发送的OUT分组和DATA分组,则USB功能机根据当时的状态来进行以下任何一种动作。
在DATA分组被正常地接收,接收的DATA分组中没有差错,结束DATA分组的处理,并且在端点中还有裕度时,USB功能机将ACK分组发送到功能机端控制器1110。在DATA分组被正常地接收,接收的DATA分组中没有差错,结束DATA分组的处理,并且端点中没有裕度时,USB功能机将NYET分组发送到功能机端控制器1110。在DATA分组被正常地接收,接收的DATA分组中没有差错,但USB功能机的端点中不空,不能进行DATA分组的处理时,USB功能机将NAK分组发送到功能机端控制器1110。在USB功能机不能处理接收分组的状态(USB功能机为异常状态,不能进行其以后的IN事务处理、OUT事务处理等的数据传送的状态)时,USB功能机将STALL分组发送到功能机端控制器1110。而在接收的DATA分组中有差错时,USB功能机不对功能机端控制器1110进行任何返回。
由功能机端控制器1110的USB接收机1116接收的ACK分组、NYET分组、NAK分组、或STALL分组,通过功能机端状态机1111来解释该分组的内容,同时被存储在FIFO1117中。然后,通过调制电路1118例如进行8B10B调制,经由光发送机1119,作为光信号向主机端控制器1100发送。
通过主机端控制器1100的光接收机1106接收的信号被解调电路1107例如进行8B10B解调,通过主机端状态机1101来识别该接收信号是ACK分组、NYET分组、NAK分组、STALL分组的各信号交换分组后,通过FIFO1108来存储该分组。
此外,如上述那样,对于最初发送的OUT分组和DATA分组,从主机端控制器1100返回NAK分组,所以USB主机需要对主机端控制器1100再次发送OUT分组和DATA分组。在通过USB接收机1102再次接收OUT分组和DATA分组时,如果是FIFO1108中存储的信号交换分组,则主机端控制器1100将该信号交换分组发送到USB主机。
此外,与NAK分组相关联,在主机端控制器1100从USB主机接收了OUT分组和DATA分组时,即使在没有从功能机端控制器1110接收任何信号交换分组的情况下,也与接收来自功能机端控制器1110的NAK分组无关,从主机端控制器1100对USB主机进行发送。
这里,在最初的OUT分组和DATA分组的发送后,为了对主机端控制器1100再发OUT分组和DATA分组,USB主机例如进行以下的动作。
即,USB主机对于最初的OUT分组和DATA分组的发送,从主机端控制器1100返回NAK分组,对于该NAK分组,将PING分组发送到主机端控制器1100。然后,主机端控制器1100将与该PING分组对应的ACK分组发回到USB主机就可以。USB主机通过接收该ACK分组,将OUT分组和DATA分组再发到主机端控制器1100。
再有,在接收了被再发来的OUT分组和DATA分组的主机端控制器1100中,如果该时刻在从功能机端控制器1110接收信号交换分组,则也可以将其向USB主机发送。另一方面,如果不在接收信号交换分组,向USB主机再次发送NAK分组,则主机端控制器1100重复进行上述处理,直至功能机端控制器1110接收到信号交换分组。
如以上那样,在主机端控制器1100中,用FIFO1108存储从USB主机最初接收的作为与OUT分组和DATA分组对应的应答的信号交换分组(ACK分组、NYET分组、NAK分组、或STALL分组),并在可从USB主机再发OUT分组和DATA分组时,将FIFO1108中存储的信号交换分组发送到USB主机。由此,即使在USB主机和USB功能机之间与USB规格相比存在低速的通信路径,对于OUT分组和DATA分组,不再次进行主机-功能机间的通信,而可以将信号交换分组在限制时间内可靠地发送到USB主机,所以可以没有问题地进行OUT事务处理。
这里,用图23来说明本发明实施方式10的主机端控制器1100的主机端状态机1101的动作。
S2201是判别是否从USB主机接收了OUT分组的步骤。在接收了OUT分组时转移至S2202,而在接收了OUT分组以外的分组时,再次转移到S2201。
S2202是向功能机端控制器1110发送OUT分组的步骤。在结束发送OUT分组后,转移至S2203。
S2203是判别是否接收了DATA分组的步骤。在接收了DATA分组时转移至S2204,而在接收了除此以外的分组时转移至S2201。这里,在接收了DATA分组以外的分组时转移至S2201的原因是,正常动作中,在S2201中接收OUT分组后,必须继续接收DATA分组,而在接收了除此以外的分组时判断为异常动作。
S2204是将DATA分组发送到功能机端控制器1110的步骤。在开始发送DATA分组后,转移至S2205。
S2205是在接收来自USB主机的OUT分组和DATA分组时,判别是否为从功能机端控制器1110接收的信号交换分组的步骤。在接收了ACK、NYET、STALL分组的任何一个时转移至S2207,而接收NAK分组或没有接收任何分组时转移至S2206。
S2206是向USB主机发送NAK分组的步骤。在结束发送NAK分组后转移至S2201。
S2207是将接收到的信号交换分组(ACK、NYET、STALL分组的任何一个)发送到USB主机的步骤。在结束发送后,结束OUT事务处理。
再有,在上述S2207中发送的信号交换分组为NYET分组时,USB功能机已正常地结束基于本次的OUT事务处理的DATA分组,而在端点不空,就进行下一OUT事务处理时,根据定时,有可能成为不能处理DATA分组的状态。因此,在USB主机接收到NYET分组时,可进行以下流程控制在下一OUT事务处理中,首先发送PING分组,在USB功能机的端点中确认有空后,发送OUT分组和DATA分组。根据上述,即使是NYET分组,OUT事务处理也正常地结束。
此外,在上述S2207中发送的信号交换分组为STALL分组时,USB功能机因某些原因而处于变为异常状态的状态。因此,在USB主机接收到STALL分组时,USB主机识别为USB功能机处于异常状态,将OUT事务处理异常结束。然后,每当从USB主机向USB功能机发送所述异常状态的解除分组后,变为可进行分组传送的状态。即,通过STALL分组,将OUT事务处理强制结束。
在上述图23的S2206的处理中,在主机端控制器1100向USB主机发送NAK分组后,USB主机向主机端控制器1100发送PING分组,或再次发送OUT分组和DATA分组。在发送PING分组时,在主机端控制器1100中,接收到PING分组时的主机端状态机1101的动作示于图24。再有,进行该动作的状态机只记述与PING分组有关的状态转移,可构成在图23所示的OUT事务处理的状态机内,也可以独立地存在。
S2301是判别从USB主机接收的分组是否为PING分组的步骤。在为PING分组时转移至S2302,而在为除此以外的分组时再次转移至S2301。
S2302是对USB主机发送ACK分组的步骤。在结束发送ACK分组后,结束与PING分组有关的处理。而接收的PING分组可对功能机端控制器发送,也可以不发送。
通过在主机端控制器1100内具有上述状态机,在OUT事务处理中即使主机端控制器1100接收了PING分组,通过始终返回ACK分组,可使USB主机再次输出OUT分组和DATA分组。
下面,用图25说明本发明实施方式10的功能机端控制器1110的功能机端状态机1111的动作。
S2401是判别从主机端控制器1100接收的分组是否为OUT分组和DATA分组的步骤。在为OUT分组和DATA分组时转移至S2402,在为除此以外的分组时再次转移至S2401。
S2402是向USB功能机发送OUT分组和DATA分组的步骤。在结束发送OUT分组和DATA分组后,启动定时器,并转移至S2403。
S2403是判别从USB功能机是否接收了信号交换分组(ACK、NYET、STALL分组的其中之一)的步骤。在接收了信号交换分组时转移至S2404,而在没有接收信号交换分组,经过预定的时间并超时时转移至S2401。
S2404是向主机端控制器发送信号交换分组的步骤。在结束发送信号交换分组后,结束OUT事务处理。
如上述那样,在主机端控制器1100中,通过安装进行图23和图24所示动作的状态机,而在功能机端控制器1110中通过安装进行图25所示动作的状态机,即使主机端控制器1100和功能机端控制器1110的通信路径与USB相同或为低速,也可以没有问题地进行OUT事务处理。
再有,在上述图2的处理中,主机端控制器1100将从USB主机接收的OUT分组和DATA分组在S2202、S2204中传送到功能机端控制器1110。但是,在主机端控制器1100处于可对USB主机发送ACK分组时,不需要将上述OUT分组和DATA分组发送到功能机端控制器1110。严格地说,USB功能机在发送与OUT分组和DATA分组对应的ACK分组时认为OUT事务处理结束,所以这样的情况下,最好是不将OUT分组和DATA分组传送到USB功能机。
因此,在主机端控制器1100从USB主机接收OUT分组和DATA分组时,在从功能机端控制器1110接收ACK分组的情况下,可考虑进行不将上述OUT分组和DATA分组发送到功能机端控制器1110的控制。
在实施方式10中,在功能机端控制器1110中,在从USB主机接收OUT分组和DATA分组时,只在完全接收这些分组后,才能对USB功能机发送OUT分组和DATA分组。其原因是,在DATA分组的分组格式中不存在意味着分组长度的字段,在将来自低速通信路径的接收数据传送到USB的高速通信路径时,不遗漏DATA,可靠地进行传送。但是,在USB2.0中,在图7所示的各传送模式中,DATA分组的分组长度的上限确定了分组的最大长度。
根据图26说明本发明的另一实施方式时,如以下所述。
首先,实施方式11的发送接收系统的概略结构示于图26。图26所示的发送接收系统由主机端控制器1100和功能机端控制器1120构成。功能机端控制器1120包括功能机端状态机1111、光接收机1112、解调电路1113、FIFO1114、USB发送机1115、USB接收机1116、FIFO1117、调制电路1118、光发送机1119、计数器(数据量确认部件)121。在功能机端控制器1120中,计数器121以外的主要结构部件都具有与图22所示的功能机端控制器1110相同的结构和功能,所以省略详细的说明。而图26中的主机端控制器1100与图22所示的主机端控制器1100相同,所以也省略其详细的说明。
计数器121是在将从主机端控制器1100接收的DATA分组写入FIFO1114时,将其值增加被写入的DATA部分的计数器。
这里,在上述实施方式10中,从功能机端控制器1110向USB功能机的DATA分组的发送,在功能机端控制器1110中完全结束DATA分组的接收后开始。这是因为在主机-功能机间的通信路径中的传送速度比功能机端控制器1110和USB功能机之间的传送速度(USB规格确定的传送速度)低时,如果在结束接收来自主机端控制器1100的DATA分组前开始对USB功能机的DATA分组的传送,则有不进行正常的传送处理的可能性。即,在上述情况下,在结束接收来自主机端控制器1100的DATA分组前,在功能机端控制器1110中存储DATA分组的FIFO1114为EMPTY,有可能产生对于USB功能机不能连续传送DATA分组的不良状况。
但是,例如在功能机端控制器1110和USB功能机之间的传送为同步传送时,FIFO1114中存储的DATA分组的数据量没有达到与上述图7中所示的同步传送时的最大分组长度的3072字节相当的值的状态下,即使向USB2.0的通信路径开始发送DATA分组,在其后的发送中,如果FIFO1114不变为EMPTY,则即使不等待来自主机端控制器1100的DATA分组的接收结束,对USB通信路径发送DATA分组,也不产生上述不良状况。
因此,在本实施方式11的功能机端控制器1120中,在从主机端控制器1100接收DATA分组,并将该DATA分组存储在FIFO1114中时,用计数器121来管理存储的DATA分组的数据量的值。而且,即使在该时刻开始向USB功能机传送DATA分组,如果由计数器121管理的值不大于或等于FIFO1114变为EMPTY的值,则通过不等待结束接收来自主机端控制器1100的DATA分组而开始向USB功能机发送DATA分组,可以将DATA分组的发送定时加快,可提高作为整体的传送速度。
此外,在功能机端控制器1120和USB功能机之间的传送方式不是同步传送,进行最大数据长度比同步传送小的批量传送的应用时,可降低上述计数器的设定值,进一步提高作为整体的传送速度。
根据图27说明本发明的另一实施方式时,如以下所述。
首先,实施方式12的发送接收系统的概略结构示于图27。图27所示的发送接收系统由主机端控制器1100和功能机端控制器1130构成。功能机端控制器1130包括功能机端状态机1111、光接收机1112、解调电路1113、FIFO1114、USB发送机1115、USB接收机1116、FIFO1117、调制电路1118、光发送机1119、CRC校验电路(差错解析部件)131。在功能机端控制器1130中,CRC校验电路131以外的主要结构部件都具有与图22所示的功能机端控制器1110相同的结构和功能,所以省略详细的说明。而图27中的主机端控制器1100与图22所示的主机端控制器1100相同,所以也省略其详细的说明。
CRC校验电路131计算从主机端控制器1100接收的DATA分组中的CRC(Cyclic Redundancy Check)16,判别接收的DATA分组中是否有差错。由CRC校验电路131判断为有差错的DATA分组被功能机端状态机1111废弃,不作为USB分组发送,从而降低发送需要的电力,同时可抑制因USB主机接收差错的分组而产生的不能预期的异常动作。
根据图28说明本发明的另一实施方式时,如以下所述。
首先,实施方式13的发送接收系统的概略结构示于图28。图28所示的发送接收系统由主机端控制器1140和功能机端控制器1110构成。主机端控制器1140包括主机端状态机1101、USB接收机1102、FIFO1103、调制电路1104、光发送机1105、光接收机1106、解调电路1107、FIFO1108、USB发送机1109、CRC校验电路(差错解析部件)141。在主机端控制器1140中,CRC校验电路141以外的主要结构部件都具有与图22所示的主机端控制器1100相同的结构和功能,所以省略详细的说明。而图28中的功能机端控制器1110与图22所示的功能机端控制器1110相同,所以也省略其详细的说明。
CRC校验电路141计算从USB主机接收的DATA分组中的CRC16,可判别接收的DATA分组中是否有差错。这里,在从USB主机接收的DATA分组中有差错时,即使将其传送到功能机端控制器1110也没有意义,这种情况下的主机-功能机间的对低速通信路径的DATA分组的传送无效。因此,如果通过CRC校验电路141判断为有差错的DATA分组,即使在传送的中途也放弃该分组的发送,从而可抑制低速通信路径的传送效率恶化。
根据图29说明本发明的另一实施方式时,如下所述。
首先,实施方式14的发送接收系统的概略结构示于图29。图29所示的发送接收系统由主机端控制器1100和功能机端控制器1150构成。功能机端控制器1150包括功能机端状态机1111、光接收机1112、解调电路1113、FIFO1151、USB发送机1115、USB接收机1116、FIFO1117、调制电路1118、光发送机1119。在功能机端控制器1150中,FIFO1151以外的主要结构部件都具有与图22所示的功能机端控制器1110相同的结构和功能,所以省略详细的说明。而图29中的主机端控制器1100与图22所示的主机端控制器1100相同,所以也省略其详细的说明。
功能机端控制器1150进行控制,以在接收来自主机端控制器1100的DATA分组后,功能机端状态机1111将接收的DATA分组写入FIFO1151。
该FIFO1151在发送OUT分组和DATA分组时,预先保存读指针的值。在功能机端状态机1111将OUT分组和DATA分组发送到USB功能机后,在预定的一定时间内没有从USB功能机接收ACK分组时,判断为在USB功能机和功能机端控制器1150之间的通信路径中产生数据差错。然后,功能机端状态机1111将所述读指针的值设定为读指针,在经过预定的一定时间后,再次发送相同的OUT分组和DATA分组。
这种情况下,通过FIFO1151中的读指针的控制,实现DATA分组的再发,但即使通过用RAM等保存开始地址来实现这种再发处理也没有问题。此外,在功能机端控制器中,具备图27所示的CRC校验电路131,通过CRC校验电路131可判别接收来自功能机端控制器1110的接收DATA分组是否正确,可以只在判别为接收DATA分组正确的情况下,进行上述再发处理的控制。
根据图30说明本发明的另一实施方式时,如下所述。
在上述实施方式10的图24的处理中,主机端控制器1100为了从USB主机再次发送OUT分组和DATA分组,在从USB主机接收到PING分组时,进行与其对应的发送ACK分组的处理。但是,在这种处理中,即使主机端控制器1100接收与上述ACK分组对应、USB主机可再发的OUT分组和DATA分组,如果在该时刻不从功能机端接收ACK分组,则主机端控制器1100不能向USB主机发回ACK分组。因此,DATA分组的分组长度长时,在USB主机和主机端控制器1100间的USB通信路径的使用效率上产生浪费。
此外,在主机端控制器1100接收PING分组前接收的DATA分组差错时,对于该差错的DATA分组,主机端控制器1100不可能从功能机端控制器1110接收ACK分组。这种情况下,主机端控制器1100必须对USB主机再次输出OUT分组和DATA分组,但在实施方式10中没有考虑这样的情况下的处理。
在本实施方式15中,表示以下方法降低上述USB通信路径的使用效率的浪费,而且在由主机端控制器1100接收的DATA分组中有差错时,向USB主机再次发送OUT分组和DATA分组。
本实施方式15的发送接收系统的概略结构与实施方式13的图28所示的结构相同,各主要结构部件具有与实施方式13的发送接收系统相同的功能,所以省略详细的说明。
首先,用图30来说明实施方式15的主机端控制器1140的主机端状态机1101的动作。再有,进行这种状态转移的状态机只记述与PING分组有关的状态转移,可构成在上述的OUT事务处理的状态机内,也可以独立地存在。
S3001是判别从USB主机接收的分组是否为PING分组的步骤。在为PING分组时转移至S3002,在为除此以外的分组时再次转移至S3001。
S3002是通过CRC校验电路141来判别在上次接收的DATA分组中是否有差错的步骤。在接收没有差错的正确的DATA分组时转移至S3003,而在接收DATA分组中有差错时转移至S3005。
S3003是接收上述PING分组时,判别是否在从功能机端控制器1110接收ACK分组的步骤。在接收了ACK分组时转移至S3005,而在没有接收ACK分组时转移至S3004。
S3004是对USB主机发送NAK分组的步骤。在结束发送NAK分组后,转移至S3001。
S3005是对USB主机发送ACK分组的步骤。在结束发送ACK分组后,结束与PING分组有关的处理。此外,接收的PING分组可对功能机端控制器发送,也可以不发送。
如上述那样,在主机端控制器1140中,通过安装进行图30所示动作的状态机,主机端控制器1140只在必要时,可对USB主机输出OUT分组和DATA分组。即,在主机端控制器1140中,在从功能机端控制器1110接收ACK分组的状态和上次的接收DATA分组中有差错的状态下,在从USB主机接收PING分组时,向USB主机返回ACK分组并输出OUT分组和DATA分组,在除此以外的状态下,通过返回与PING分组对应的NAK分组,可以避免发送无用的OUT分组和DATA分组。
根据图31说明本发明的另一实施方式时,如下所述。
在图31中表示本实施方式16的分组格式。在图31中,USB分组是按USB规格规定的传送速度进行通信的数据分组的分组格式,而低速用分组是变换为用于低速通信路径的分组格式。即,低速用分组是功能机端控制器向主机端控制器发送DATA分组时的分组格式。
如图31所示,在低速用分组中,在USB分组的CRC16之后,设置所谓CRC_OK的字段。在功能机端控制器保存的DATA分组中没有差错时,在上述CRC_OK的字段中输入表示该情况的值(设立表示该情况的标记),而在保存的DATA分组中有差错时,同样输入该情况并向主机端控制器发送该DATA分组。由此,可将主机端控制器保存的DATA分组是否为可再发的分组的信息通知功能机端控制器。在功能机端控制器中,通过监视上述CRCOK的字段,假如判断为在接收DATA分组中有差错时,对于主机端控制器,可进行是否请求再发的控制。
根据图32说明本发明的另一实施方式时,如以下所述。
在本实施方式17中表示以下方法在主机端控制器和功能机端控制器间产生数据差错,主机端控制器从功能机端控制器接收再发请求时,主机端控制器准备正确的DATA分组。
本实施方式17的发送接收系统的概略结构与实施方式12的图27所示的结构相同,各主要结构部件具有与实施方式12的发送接收系统相同的功能,所以省略详细的说明。
首先,用图32说明实施方式17的主机端控制器1100的主机端状态机1101的动作。再有,进行这种状态转移的状态机只记述与PING分组有关的状态转移,可构成在所述的OUT事务处理的状态机内,也可以独立地存在。
S3201是判别从USB主机接收的分组是否为PING分组的步骤。在为PING分组时转移至S3202,而在为除此以外的分组时再次转移至S3201。
S3202是判别是否从功能机端控制器接收DATA分组的再发请求的步骤。在接收了再发请求时转移至S3204,而在没有接收再发请求时转移至S3203。
S3203是对USB主机发送NAK分组的步骤。在结束发送NAK分组后转移至S3201。
S3204是对USB主机发送ACK分组的步骤。在结束发送ACK分组后结束与PING分组有关的处理。
如上述那样,在主机端控制器1100中,通过安装进行图32所示动作的状态机,主机端控制器1110在主机端控制器和功能机端控制器间产生数据差错时,通过对于USB主机发送的PING分组返回ACK分组,可向USB主机输出OUT分组和DATA分组,可对功能机端控制器再次发送OUT分组和DATA分组。
根据图33和图18至图20说明本发明的另一实施方式时,如以下所述。
首先,实施方式18的发送接收系统的概略结构示于图33。图33所示的发送接收系统由主机端控制器1160和功能机端控制器1170构成。主机端控制器1160包括主机端状态机1101、USB接收机1102、FIFO1103、调制电路1104、光发送机1105、光接收机1106、解调电路1107、FIFO1108、USB发送机1109、速度协调状态机1161、差错检测电路1162。在主机端控制器1160中,速度协调状态机1161、差错检测电路1162以外的主要结构部件都具有与图22所示的主机端控制器1100相同的结构和功能,所以省略详细的说明。而功能机端控制器1170包括功能机端状态机1111、光接收机1112、解调电路1113、FIFO1114、USB发送机1115、USB接收机1116、FIFO1117、调制电路1118、光发送机1119、速度协调状态机1171、差错检测电路1172。在功能机端控制器1170中,速度协调状态机1171、差错检测电路1172以外的主要结构部件都具有与图22所示的功能机端控制器1110相同的结构和功能,所以省略详细的说明。
速度协调状态机1161和1171在主机端控制器1160和功能机端控制器1170之间进行速度协调(传送速度调整),是用于从多个传送速度中选择一个传送速度的状态机。差错检测电路1162、1172是进行低速通信路径(在图33中,主机-功能机间的光通信路径)的差错检测的电路。再有,该速度协调在OUT事务处理的实行前进行。此外,在以下中,根据上述实施方式9中所示的图18至图20来说明。
用图18来说明速度协调的动作。再有,图18中的速度协调的协议是一例,本发明不限定于该协议。
主机端控制器1160的速度协调状态机1161在t1401中,按规定的传送速度A开始发送keep_speed信号,而且,在发送keep_speed信号的同时使定时器启动。再有,keep_speed信号是用于决定传送速度的一个发送码(请求信号),是向功能机端控制器1170请求维持当前的传送速度的信号。
另一方面,在功能机端控制器1170中,通过同步信号确认接收该keep_speed信号后,在t1402中,使定时器启动,同时开始对主机端控制器1160发送keep_speed信号。
主机端控制器1160和功能机端控制器1170分别在预定的时间T期间继续发送特定的发送码。
在t1403中,从主机端控制器1160发送的keep_speed信号在光通信路径中产生位差错(bit error),功能机端控制器1170不能正常地接收的情况下,功能机端控制器1170在t1404中,向主机端控制器1160发送lower_speed信号,取代keep_speed信号。该lower_speed信号是用于决定传送速度的一个请求信号,是向接收方(主机端控制器1160)请求降低传送速度的信号。
在接收了来自功能机端控制器1170的lower_speed信号的主机端控制器1160中,在当前的传送速度A中,识别为功能机端控制器1170没有正常地进行接收。然后,对于功能机端控制器1170,发送lower_speed信号(在t1405中,将发送码切换为lower_speed)。
在t1406中,功能机端控制器1170通过从主机端控制器1160接收lower_speed信号,判断为自身发送的lower_speed信号被主机端控制器1160识别。
然后,分别在主机端控制器1160和功能机端控制器1170中经过规定时间T后,由于在该时刻发送接收的信号是lower_speed信号,所以主机端控制器1160和功能机端控制器1170将传送速度例如降低一半(A/2)。
即,在t1407中,主机端控制器1160按传送速度A/2开始发送keep_speed信号,同时使定时器再启动。另一方面,在t1408中,功能机端控制器1170也以传送速度A/2开始发送keep_speed信号,同时使定时器再启动。
然后,在主机端控制器1160和功能机端控制器1170双方中没有检测出差错并经过规定时间T后,主机端控制器1160和功能机端控制器1170在t1409、t1410中,开始发送作为速度协调的结束信号(结束请求)的End_Nego信号。然后,主机端控制器1160和功能机端控制器1170分别在接收到来自对方设备的End_Nego信号时,结束速度协调,转移到有效状态。
这里,用图19说明主机端控制器1160中的速度协调状态机1161的动作。
状态ST0是速度协调的开始状态。这里,速度协调状态机1161使发送码为keep_speed信号,在将定时器再启动后,转移到状态ST1。
状态ST1是进行速度协调的状态。这里,速度协调状态机1161在接收码中有差错,或接收到来自对方设备(功能机端控制器1170)的lower_speed信号时,将发送码切换为lower_speed。
此外,速度协调状态机1161在经过规定时间T后,在发送码为lower_speed信号时转移到状态ST0,而在发送码为keep_speed时转移到状态ST2。
这里,在转移到状态ST0时,使传送速度例如为相对于当前传送速度的一半(传送速度的下降的幅度(程度)可设定为用户要求的值。而且,该幅度预先存储在速度协调状态机1161中)。
另一方面,在转移到状态ST2时,将发送码切换到End_Nego信号。该状态ST2是确认速度协调结束的状态。在从对方设备(功能机端控制器1170)接收End_Nego信号后,结束速度协调,转移到有效状态。
下面,用图20说明功能机端控制器1170中的速度协调状态机1171的动作。
状态ST0、ST1、ST2的各状态中的动作与速度协调状态机1161的动作相同。
状态ST0之前的状态ST4是判别是否从主机端控制器1160接收了请求信号的状态。在从光接收机1112(或其他接收信号检测电路)接收了信号检测信号时,速度协调状态机1171将状态转移到状态ST0。
通过主机端控制器1160和功能机端控制器1170分别构成上述的状态机,可从多个传送速度中确定一个传送速度。
差错检测电路1162和1172进行主机-功能机间的光通信路径中的位差错的检测。具体地说,例如在8B10B解调时进行表检查,在接收到表中没有的字符时为差错。这里不涉及有关这种差错的定义。
在速度协调结束后,如果为有效状态,则根据差错检测电路1162和1172获得的差错数和定时器1163及1173的测量值,可测定一定时间内的差错数(差错率)。在所述差错率比预定的值大时,判断为通信路径的质量变差(例如可移动设备和PC(Personal Computer)间的通信中的可移动设备和PC的通信距离的变化等),所以放弃当前的传送速度下的通信,再次进行速度协调,在再确定可进行正常的通信的传送速度后,通过进行OUT事务处理,可正常地进行数据传送。
此外,在本实施方式的说明中,假设主机-功能机间的光通信路径的传送速度比USB的原始速度低,但如果将来可制造更便宜的高速的光收发器,则可考虑采用主机-功能机间的光通信路径中可进行USB原始速度下的数据传送的通信部件。这样的情况下,首先按与USB的原始速度相当的速度(8B10B调制的情况下,为600Mbps)进行速度协调,假如在差错率变差的情况下,不进行基于本发明的状态机的分组控制,通过进行纯粹的重复,可进行USB2.0的纯粹光化,可以防止数据传送速度的下降。
然后,如果不能按600Mbps正常地通信,则在降低传送速度后,通过本发明的状态机来控制分组,并可进行OUT事务处理。即,通过按速度协调的结果来判断基于状态机的控制的开通(ON)、关断(OFF),从而可按最高效率的方法来进行分组传送。
再有,上述实施方式10至18的说明论述了主机-功能机间的通信速度与USB的原始速度相比为低速,解决在现有的传输方式中按USB规定的限制时间内的通信没有完成的课题。但是,即使是主机-功能机间的通信速度与USB的原始速度相等的情况,在主机-功能机间的通信路径非常长时(例如数百米的光纤),周转时间变长,有可能在限制时间内不能结束OUT事务处理。这是因为在USB的规格中,根据USB集线器的级数(最大6级)的重复时间和USB的电缆长度(最大5米),来确定最大周转时间。在这样的主机-功能机间的通信路径非常长,在现有的传输方式中按USB规定的限制时间内的通信没有完成的情况下,也可采用本发明的传输方法。
此外,在上述实施方式10至18的说明中,假设为USB2.0规格,而在USB2.0规格中主机端和功能机端的功能被分别固定。即,USB2.0规格下的数据交换将PC作为USB主机,在该PC上连接作为USB功能机的装置(数字照相机或打印机等)。
但是,近年来,制定了所谓的USB-OTG(USB-On-The-Go)规格,不需要普通USB系统中必要的PC(USB主机)。即,在USB-OTG规格中,由于可在没有PC(USB主机)下在USB设备之间进行数据的发送接收,所以便利性提高。在USB-OTG中,根据连接的电缆的连接器的种类,可作为USB主机动作,也可作为USB功能机动作。
在USB-OTG中,与USB2.0同样,支持LS(1.5Mbps)、FS(12Mbps)、HS(480Mbps)的传送速度。此外,USB-OTG对应的设备可作为USB主机动作,也可作为USB功能机动作。此外,在USB-OTG规格中,追加了所谓的miniAB的新的连接器种类。该miniAB可连接具有miniA、miniB双方插头的电缆,根据连接的电缆的插头的形状,在连接了miniA时,作为USB主机动作,而在连接了miniB时,作为USB功能机动作。此外,根据所谓的HNP(Host Negotiation Protocol)的新协议,在连接了电缆的状态下,追加了动态地交错主机和功能机的功能的机构。即,在USB-OTG中,被连接的设备是USB主机还是USB功能机,由电缆的连接器的种类或USB-OTG确定的HNP(Host Negotiation Protocol)来决定。
即,在将本发明应用于USB-OTG时,USB主机和USB功能机的作用不固定,根据被传输的数据的方向,其作用可被替换。同样,主机端控制器和功能机端控制器的其作用也不固定,根据被传输的数据的方向,其作用可被替换,所以如图34所示,一个通信控制器190具有主机端控制器和功能机端控制器两方的功能就可以。为此,在各控制器的状态机中,也可以装入具有主机端控制器和功能机端控制器两方功能并可动作的程序。
此外,在上述实施方式10至18的说明中,主机端控制器和功能机端控制器间的通信为全双工通信。由此,在主机-功能机间的通信中,可没有半双工通信时必要的前置码,可以提高通信路径的使用效率。当然,按半双工通信来构筑系统也没有问题。
在本发明的发送接收系统中,如用以上的实施方式说明的那样,即使是按比USB原始速度慢的速度(例如100Mbps)进行USB主机-主机端控制器-功能机端控制器-USB功能机间的数据传送的情况,与按USB原始速度(480Mbps)进行USB主机和USB功能机间的数据传送的情况相比,也有可获得作为整体大体相同的传送速度的情况。
例如,在使用闪存等的低速数据传送(50Mbps)的应用的情况下,通过连续实施上述OUT事务处理,与HDD等的高速数据传送(200Mbps左右)采用必要的应用的情况相比,需要将OUT事务处理间的时间增长。即,在使用高速数据传送的应用时,事务处理间的时间变短,使用低速数据传送的应用时,事务处理时间表变长。
因此,在按本发明的方法进行OUT事务处理时,尽管一次OUT事务处理所需的时间比按USB原始速度进行主机-功能机间的数据传送情况要长,但如果在事务处理间要求的时间内结束,则下一OUT事务处理开始时间不比USB原始速度情况的OUT事务处理开始时间慢。即,将主机-功能机间采用低速通信路径的情况和按USB原始速度进行通信的情况进行比较,其结果是作为整体的传送速度没有变化。
此外,在将USB2.0单纯地进行光化时,例如采用8B10B的调制方式时,需要具有480×10/8=600Mbps的频带的光收发器。满足它的光收发器为LD(激光二极管)。另一方面,在采用本发明,可用低速的通信路径进行USB2.0的传送时,在低速通信路径例如为100Mbps时,满足它的光收发器为LED(发光二极管)。如果比较LD和LED,LED一方绝对便宜,根据本发明的结构,可削减光收发器的成本。
而且,在控制器中,例如将主机端控制器与USB主机一体化,没有其他的金属端口,仅为光端口的结构时,控制器所需的频带从600Mbps极大地降低到100Mbps。这意味着可通过便宜的制造工序,制作控制器,根据本发明,同样可削减成本。
根据以上,在使用低速的应用时,根据本发明,可削减成本,作为低速的应用,例如在搭载了闪存的携带电话、数字照相机等设备中,可认为本发明是有效的。
在上述实施方式10至18中说明的发送接收系统中,在主机端控制器1100中确认接收来自USB主机的OUT分组和DATA分组后,将这些分组发送到功能机端控制器1110,并从功能机端接收ACK分组。接收的ACK分组用FIFO1108临时存储,在从USB主机再次接收到OUT分组和DATA分组时,将FIFO108中存储的DATA分组发送到USB主机。
因此,根据上述发送接收系统,即使是在主机-功能机间使用传送速度比USB2.0的原始速度低的通信路径的情况,也可没有问题地进行基于USB2.0的OUT事务处理的数据传送。
此外,在上述实施方式10至18中说明的本发明,可以应用以下各种通信设备即使主机-功能机间的传送速度为低速,通过正常进行OUT事务处理而不知觉周转时间的发送接收系统,用USB进行数据通信。
根据图35至图41说明本发明的另一实施方式时,如以下那样。
本实施方式的USB系统是用于实现主计算机(主机)和其周边设备(装置)之间的USB通信(采用USB2.0的数据通信)的通信系统。
图35是表示本系统结构的方框图。如该图所示,本系统是包括主机2010、主机端控制器2011、装置端控制器2012、装置2013的结构。
主机(USB主机)2010是作为本系统父机的个人计算机,控制所有的USB通信。而装置(USB功能机、USB装置)2013是与主机2010进行通信的子机(节点),具有打印机和DVD驱动器等作为主机的周边设备的功能。
主机端控制器2011通过USB电缆与主机2010连接,对主机2010和外部(装置2013)之间的USB通信进行中继。即,主机端控制器2011接收从主机2010发送的分组并将其发送到外部,同时接收向主机2010发送的分组,并传送到主机2010。
装置端控制器2012通过USB电缆与装置2013连接,对装置2013和主机2010之间的USB通信进行中继。即,装置端控制器2012接收从装置2013发送的分组并将其发送到主机2010,同时接收向装置2013发送的分组,并传送到装置2013。
此外,在本系统中,将控制器2011/2012之间通过USB对应的光无线通信来连接。即,在本系统中,经由控制器2011/2012的光无线通信来实行主机2010和装置2013之间的USB通信。再有,控制器2011/2012间的光无线通信中的数据传送速度为100Mbps,与USB2.0的高速模式(HS)时的数据传送速度(480Mbps)相比为低速。
这里,说明作为本系统的特征性结构的控制器2011/2012的结构。如图35所示,主机端控制器2011是包括USB接收机2020、发送FIFO2021、调制电路2022、光发送机2023、光接收机2024、解调电路2025、接收FIFO2026、USB发送机2027、差错检测电路2028、定时器2029、速度协调状态机(SNSM)2030、CRC校验电路2031和主机端状态机(主机SM)2032的结构。
另一方面,装置端控制器2012是在主机端控制器2011的结构中,取代主机SM2032,而包括装置端状态机(装置SM)2042的结构。
USB接收机2020用USB电缆与主机2010或装置2013连接,接收从它们发送的USB信号(包含分组的信号)。
发送FIFO2021临时保存USB接收机2020接收的分组。即,如上述那样,控制器2011/2012间的通信速度(100Mbps)与USB电缆中的最高通信速度(HS;480Mbps)相比为低速。因此,发送FIFO2021用于通过光通信传送(重发)分组时的定时调整。
调制电路2022对分组进行调制(光调制),以可通过光通信发送到外部。作为调制电路2022的调制方法,例如可采用8B10B。光发送机2023将调制电路2022调制后的分组发送到外部,由发光二极管装置或激光装置构成。
光接收机2024接收从外部接收的光调制后的分组,例如由光电二极管构成。再有,光接收机2024从外部接收任何的光信号后,将信号检测信号发送到SM2032(装置SM2042)或SNSM2030。该信号检测信号是用于判别有无接收信号的信号。解调电路2025对通过光接收机2024接收的分组进行解调,以可用USB电缆进行通信。作为解调电路2025的解调方法,例如可采用8B10B。
接收FIFO(存储部)2026临时保存解调后的分组。此外,接收FIFO2026与发送FIFO2021同样,用于通过USB电缆传送(重发)分组时的定时调整,以便补偿USB电缆方式的数据发送和光通信方式的数据接收的速度差。
差错检测电路2028是判别在解调电路2025解调的分组(或其他信号)中是否有因光调制或解调产生的差错(光差错)的电路。
CRC校验电路2033通过对分组中的差错检测码(CRC5或CRC16)进行解析,来调查在通过解调电路2025解调的分组中(特别是DATA分组)是否有分组差错(与USB的规格不对应的不适合的部分)。
USB发送机2027用USB电缆连接主机2010或装置2013,对它们发送保存在接收FIFO2026中的分组(包含分组的USB信号)。定时器2029是用于主机SM2032或装置SM2042的定时器(时间测量器)。SNSM(速度设定部)2030是用于进行后述的速度协调的控制部。
主机SM(主机端控制部)32对主机端控制器2011的所有处理进行控制,是控制器11的中枢部。同样,装置端控制器2012的装置SM(装置端控制部)2042具有作为对控制器12的所有处理进行控制的中枢部的功能。
这里,说明本系统的数据通信动作。首先,说明装置2013的连接时的动作。装置2013经由控制器2011/2012连接到本系统时,首先,主机2010检测装置2013的电源。这通过确认流过四条USB电缆的信号线(D+、D-、电源(VBUS)、GND)的信号中的VBUS信号来进行。
接着,主机2010检测装置2013的速度(对应的模式)。然后,在与全速模式(FS)或高速模式(HS)对应的情况下,主机2010将D+信号上拉。另一方面,在仅与低速模式(LS)对应的情况下,主机2010将D-信号上拉。
再有,在以下中,设装置2013对应于HS。
接着,主机2010使D+信号线和D-信号线同时为大于或等于10ms的低电平(SE0状态),并将装置2013的总线复位。然后,装置2013将HS特有的信号(称为CHIRP)经由控制器2011/2012发送到主机2010。此外,主机2010也经由控制器2011/2012对装置2013发送HS特有的信号。
由此,主机SM2032和装置SM2042确认主机2010和装置2013的通信模式为HS。然后,主机SM2032和装置SM2042控制SNSM2030,进行控制器2011/2012间的速度协调(后述)。由此,确立(结束)主机2010和装置2013的连接(总线)。
在装置2013被连接到本系统后,在主机2010/装置2013间,经由控制器2011/2012实施数据传送。
以下,说明作为本系统的特征动作的SETUP事务处理。
在该事务处理中,主机2010对主机端控制器2011发送包含SETUP分组和DATA分组的USB信号。在主机端控制器2011中,通过主机端控制器2011的USB接收机2020来接收该信号。
接收该信号后,主机SM2032对CRC校验电路2033进行控制,判别在包含于接收的USB信号中的SETUP分组和DATA分组中是否没有分组差错。然后,在判断为有分组差错时,主机SM2032废弃接收的分组。另一方面,在没有分组差错时,主机SM2032将接收的SETUP分组和DATA分组保存在发送FIFO2021中。
然后,主机SM2032对调制电路2022进行控制,生成(光调制)在发送FIFO2021中保存的包含SETUP分组和DATA分组的光信号。然后,主机SM2032对光发送机2023进行控制,对装置控制器2012发送生成的光信号。
从主机端控制器2011发送的光信号被装置端控制器2012的光接收机2024接收。接收它后,装置SM2042对解调电路2025进行控制,对光信号内的SETUP分组和DATA进行解调,并存储在接收FIFO2026中。
然后,对接收的所有分组进行解调并存储在接收FIFO2026中后,装置SM2042对差错检测电路2028进行控制,判断在SETUP分组和DATA分组中是否有光差错。再有,装置SM2042在判断为接收的分组中有差错时,将该分组从接收FIFO2026中除去(废弃)。此外,装置SM2042对CRC校验电路2033进行控制,判断存储在接收FIFO2026中的SETUP分组和DATA分组中有无分组差错。然后,在没有分组差错的情况下,对USB发送机2027进行控制,将包含这些分组的USB信号按规定的定时发送到装置2013。
接收了SETUP分组和DATA分组的装置2013判断DATA分组中有无分组差错。然后,在判断为没有差错时,装置2013向装置端控制器2012发送ACK分组(包含该分组的USB信号)。另一方面,在有差错时,装置2013什么也不发送。
发送到装置端控制器2012的ACK分组被USB接收机2020接收。接收它后,装置SM2042掌握接收的分组的内容(为ACK分组),将该分组存储在发送FIFO2021中。
然后,装置SM2042对调制电路2022进行控制,生成(光调制)包含在发送FIFO2021中保存的ACK分组的光信号。然后,装置SM2042对光发送机2023进行控制,对主机端控制器2011发送生成的光信号。
从装置端控制器2012发送的光信号被主机端控制器2011的光接收机2024接收。接收它后,主机SM2032对解调电路2025进行控制,对光信号的分组进行解调,并存储在接收FIFO2026中。然后,在对所有接收的分组进行解调后,主机SM2032对差错检测电路2028进行控制,判断在解调后获得的分组中是否有光差错,从接收FIFO2026中废弃有光差错的分组。
然后,主机SM2032在确认为接收FIFO2026中保存的分组是ACK分组时,避免将该分组发送到主机2010。
此外,在主机2010中,尽管向装置2013发送SETUP分组/DATA分组,但即使经过最大TA时间,也不能接收ACK分组。因此,判断为SETUP事务处理失败,再发SETUP分组和DATA分组。
主机端控制器2011的主机SM2032从主机2010接收了再发需要的SETUP分组和DATA分组时,将这些分组废弃而不保存在发送FIFO2021中。然后,将存储于接收FIFO2026中的ACK分组向主机2010发送。
图36是表示SETUP事务处理中的主机SM2032的动作的流程图。如该图所示,主机SM2032在从主机2010接收了SETUP分组时(S4011),将该分组发送到装置端控制器2012(S4012)。再有,主机SM2032在接收了其他分组时,由于不是SETUP事务处理,所以进行与USB的规则对应的其他处理。
然后,主机SM2032在SETUP分组之后,判断是否从主机2010接收了DATA分组(S4013)。然后,在接收了其他分组时,主机SM2032判断为在SETUP事务处理中有差错,将处理返回到S4011。另一方面,在S4013中接收了DATA分组时,主机SM2032将该分组发送到装置端控制器2012(S4014)。
然后,主机SM2032待机发送来自装置端控制器2012的ACK分组(S4015)。然后,在待机时间超过规定时间时(使用定时器2029进行判断),主机SM2032判断为不能对装置2013适当发送SETUP分组/DATA分组,将处理返回到S4011。
另一方面,在规定时间内接收了ACK分组时,主机SM2032待机从主机2010再发SETUP分组和DATA分组(S4016)。然后,在待机时间超过规定时间时(使用定时器2029进行判断),主机SM2032判断为在SETUP事务处理中产生了差错(麻烦),将处理返回到S4011。
此外,主机SM2032在规定时间内从主机2010接收了SETUP分组和DATA分组时,将接收FIFO2026中保存的ACK分组发送到主机2010(S4017),并结束处理。
图37是表示SETUP事务处理中的装置SM2042的动作流程图。如该图所示,装置SM2042在从主机端控制器2011接收了SETUP分组和DATA分组时(S4012),将这些分组发送到装置2013(S4022)。再有,装置SM2042在接收了其他分组时,由于不是SETUP事务处理,所以进行与USB规则对应的其他处理。
然后,装置SM2042使定时器2029启动,同时待机来自装置2013的ACK分组的发送(S4023)。然后,在待机时间超过规定时间时(使用定时器2029进行判断),装置SM2042判断为不能对装置2013合适地发送SETUP分组/DATA分组(不具备装置端控制器2012/装置2013间的通信),将处理返回到S4021(超时)。
另一方面,在规定时间内接收了ACK分组时,装置SM2042将该ACK分组发送到主机端控制器2011(S4024),并结束处理。
如以上那样,主机端控制器2011的主机SM2032在接收了从装置端控制器2012向主机2010发送的ACK分组时,将该分组存储在进行自身控制的接收FIFO2026中。
然后,主机SM2032进行设定,以在从主机2010再发SETUP分组和DATA分组时,将存储的ACK分组发送到主机2010。
这样,在采用主机端控制器2011的USB系统中,在主机2010再发SETUP分组和DATA分组之后,使主机2010接收ACK分组。因此,在主机2010-装置2013间的通信上需要时间,如果使主机2010直接接收从装置端控制器2012发送的ACK分组,则即使超过最大TA时间,也可使SETUP事务处理完成。
再有,上述那样的主机2010-装置2013间的通信上需要时间的情况,有控制器2011/2012间的通信速度慢的情况、或它们之间的通信路径长的情况等。因此,如果使用主机端控制器2011,则使主机2010-装置2013间的通信路径的自由度明显增大。
此外,主机端控制器2011的主机SM2032进行设定,以在将从主机2010发送的SETUP分组和DATA分组发送到装置端控制器2012时,判断DATA分组中有无差错。然后,主机SM2032在DATA分组中有差错时,避免发送该分组。
由此,可以避免对装置端控制器2012发送有差错(光差错、分组差错)的分组,可以防止发送无用的分组。
此外,在本系统中,装置SM2042在从主机端控制器2011接收的DATA分组中有差错(光差错、分组差错)时,可避免将该DATA分组传送到装置2013。由此,可以避免对装置2013发送有差错的分组,可以防止发送无用的分组。
如上述那样,主机SM2032、装置SM2042不向装置端发送有差错的分组。因此,可抑制发送成本(功率等),同时可防止因向装置2013发送有差错的分组产生的发生装置2013的不能预期的异常动作。
此外,主机SM2032、装置SM2042在接收的分组中有差错时,废弃该分组。即,主机SM2032、装置SM2042将接收的分组保存在接收FIFO2026中,但如上述那样,通过废弃有差错的分组,来避免无效地使用接收FIFO2026的存储区。
下面,说明上述速度协调。
该速度协调是用于决定控制器2011/2012间的光无线通信的数据传送速度的处理。图38是表示该处理的定时图。
图19是表示该处理中的主机端控制器2011的SNSM2030的动作说明图。而图20是表示该处理中的装置端控制器2012的SNSM2030的动作说明图。
主机端控制器2011的SNSM2030在T1201中,对光发送机2023进行控制,按规定的传送速度A开始发送keep_speed信号,并使定时器2029再启动(复位后立即启动)。再有,keep_speed信号是用于决定传送速度的一个发送码(请求信号),是向接收方(装置端控制器2012)请求维持当前的传送速度的信号。
另一方面,在装置端控制器2012中,接收了该keep_speed信号的光接收机2024首先将信号检测信号传送到SNSM2030。接收它后,SNSM2030使定时器2029再启动,同时对光发送机2023进行控制,开始对主机端控制器2011发送keep_speed信号。此外,SNSM2030对解调电路2025、差错检测电路2028进行控制,判断接收的keep_speed信号中有无差错。
然后,如图38所示,在T1203中从主机端控制器2011发送的keep_speed信号在光无线通信路径中产生位差错(bit error),装置端控制器未能正常地接收时,装置端控制器2012的SNSM2030在T1204中,取代keep_speed信号,向主机端控制器1160发送lower_speed信号,取代keep_speed信号。
该lower_speed信号是用于决定传送速度的一个请求信号,是向接收方(主机端控制器2011)请求降低传送速度的信号。在接收了lower_speed信号的装置端控制器2012中,SNSM2030识别为在当前的传送速度A中没有正常地进行装置传送。然后,对于装置端控制器2012,发送lower_speed信号(将发送码切换为lower_speed)。
装置端控制器2012的SNSM2030通过从主机端控制器2011接收lower_speed信号,判断为自身发送的lower_speed信号被主机端控制器2011识别。
然后,经过规定时间Ta后,控制器2011/2012的SNSM2030因该时刻发送接收的信号是lower_speed信号,所以将传送速度例如降低一半(A/2)。即,在T1207中,主机端控制器2011的SNSM2030按传送速度A/2开始发送keep_speed信号,同时使定时器2029再启动。
另一方面,装置端控制器2012的SNSM2030根据来自光接收机2024的信号检测信号,开始发送keep_speed信号,同时使定时器2029再启动。
然后,在控制器2011/2012双方中没有检测出差错并经过规定时间Ta后,控制器2011/2012的SNSM2030开始发送接收作为速度协调的结束信号(结束请求)的End_Nego信号。然后,SNSM2030在接收到来自对方设备的End_Nego信号时,结束速度协调,转移到有效状态。
这里,用图19说明主机端控制器2011中的SNSM2030的动作。
状态ST0是速度协调的开始状态。这里,主机端控制器2011的SNSM2030使发送码为keep_speed信号,在将定时器2029再启动后,转移到状态ST1。
状态ST1是进行速度协调的状态。主机端控制器2011的SNSM2030在接收码中有差错,或接收了来自对方设备(装置端控制器2012)的lower_speed信号时,将发送码切换为lower_speed。
此外,主机端控制器2011的SNSM2030在经过规定时间Ta后,在发送码为lower_speed信号时转移到状态ST0,而在发送码为keep_speed时转移到状态ST2。
这里,在转移到状态ST0时,使传送速度例如为相对于当前传送速度的一半(传送速度的下降的幅度(程度)可设定为用户要求的值。而且,该幅度预先存储在速度协调状态机1161中)。
另一方面,在转移到状态ST2时,将发送码切换到End_Nego信号。该状态ST2是确认速度协调结束的状态。在从对方设备(装置端控制器2012)接收End_Nego信号后,结束速度协调,转移到有效状态。
下面,用图20说明装置端控制器2012中的SNSM2030的动作。
状态ST0、ST1、ST2的各状态中的动作与主机端控制器2011的SNSM2030的动作相同。
状态ST0之前的状态ST4是判别是否从主机端控制器2011接收了请求信号的状态。在从光接收机2024(或其他接收信号检测电路)接收了信号检测信号时,SNSM2030转移到状态ST0。
再有,上述keep_speed信号、lower_speed信号、End_Nego信号可以是分组(具有特定格式的字符串),也可以由特定的字符构成。
此外,在上述中,在确认主机2010和装置2013之间的通信模式(速度)后,进行速度协调。但是,关于速度协调,只要在主机2010/装置2013间的通信开始之前,按任意的定时进行就可以。
此外,在上述中,主机2010和主机端控制器2011之间、以及装置端控制器2012和装置2013之间为用USB电缆连接的状态,进行速度协调。但是,不限于此,如果控制器2011/2012间为可通信的状态,则即使在控制器2011/2012和主机2010/装置2013通过USB电缆连接前也可实施速度协调。
再有,在本实施方式中,主机SM2032避免将从装置端控制器2012接收的ACK分组发送到主机2010,而且,在从主机2010接受了SETUP分组和DATA分组的再发时,将ACK分组发送到主机2010。
但是,主机SM2032进行设定,以在从装置端控制器2012接收了ACK分组时,判断在最大TA时间内能否将该ACK分组传送到主机2010。
这种情况下,主机SM2032在判断为最大TA时间内不能传送ACK分组时,如上述那样,避免对主机2010传送ACK分组并等待再发SETUP分组/DATA分组。另一方面,在判断为最大TA时间内可传送ACK分组时,不等待来自主机2010的SETUP分组/DATA分组的再发,将ACK分组传送到主机2010。
此外,主机SM2032也可以这样设定在从装置端控制器2012接收了ACK分组时,将该ACK分组原封不动地传送到主机2010。这种情况下,ACK分组被主机2010接收时,如果在经过最大TA时间前,则SETUP事务处理到此结束。
另一方面,如果经过最大TA时间后,则主机2010再发SETUP分组/DATA分组。然后,主机SM2032根据该再发,将接收FIFO2026中保存的ACK分组发送到主机2010。
此外,主机SM2032在上述速度协调中,在可将控制器2011/2012间的光无线通信的速度设定为与USB电缆相同的速度(480Mbps)时,也可以不避免传送上述那样的ACK分组。
即,这样的情况下,在最大TA时间内可将ACK分组传送到主机2010的可能性大。因此,即使主机SM2032将从装置端控制器2012接收的ACK分组原封不动传送(重发)到主机2010,也可完成SETUP事务处理。但是,即使在这种情况下,主机SM2032当然避免将从装置端控制器2012接收的ACK分组发送到主机2010,而且,在从主机2010接受再发SETUP分组和DATA分组时,将ACK分组发送到主机2010就可以。
此外,上述速度协调后,最好是主机SM2032、装置SM2042的至少一方使用差错检测电路2028(或CRC校验电路2033),计算控制器2011/2012间的分组发送接收中的差错率。这里,差错率是将差错的发生次数除以发送接收次数所得的值(差错发生率)。
然后,主机SM2032、装置SM2042在该差错率大于或等于规定值时,最好对SNSM2030进行控制,使控制器2011/2012间的通信速度下降。由此,使通信速度过高引起的差错率下降。
再有,在本实施方式中,主机SM2032对CRC校验电路2033进行控制,判别USB信号中包含的SETUP分组和DATA分组中是否有差错。
但是,不限于此,主机SM2032使CRC校验电路2033只判断DATA分组的差错也可以。这种情况下,只在DATA分组中有分组差错时,才废弃SETUP分组和DATA分组。SETUP分组比DATA分组短,产生分组差错的概率非常低。因此,即使只调查DATA分组的分组差错,也可进行适当的通信。
此外,在本实施方式中,装置SM2042在从主机端控制器2011接收了SETUP分组和DATA分组时,对差错检测电路2028进行控制并判断有无光差错后,对CRC校验电路2033进行控制,判断有无分组差错。
但是,此时,也可以省略差错检测电路2028的光差错的校验。即,通常在对分组进行光调制时产生差错的情况下,分组不符合USB的规定。因此,这样的差错可通过CRC校验电路2033作为分组差错来捕获。
此外,装置SM2042与上述主机SM2032的情况同样,也可以只对DATA分组进行CRC校验电路2033的分组差错校验。
此外,在本实施方式中,主机端控制器2011的主机SM2032对CRC校验电路2033进行控制,使其判别从主机2010发送的USB信号中包含的SETUP分组和DATA分组中是否差错后,将分组发送到装置端控制器2012。
但是,不限于此,主机SM2032也可以被这样设定在分组差错校验前,从接收的部分起依次向装置端控制器2012发送从主机2010发送的SETUP分组和DATA分组。
这种情况下,主机SM2032对差错检测电路2028/CRC校验电路2033进行控制,判别对装置端控制器2012的分组发送中有无分组差错就可以。然后,主机SM2032在发现差错时,最好是立即中断发送。由此,由于可抑制控制器2011/2012间的无用的分组传送,所以可抑制作为低速通信路径的控制器2011/2012间的传送效率的恶化。
此外,在将从主机2010接收中的分组依次发送到装置端控制器2012时,主机SM2032被进行设定,以在完全结束接收分组时(已经发送一部分时),对CRC校验电路2033进行控制,判断有无分组差错,并将判断结果添加在要发送的分组的末尾。
图39(a)是表示通常的DATA分组的说明图,图39(b)是表示上述情况下对装置端控制器2012发送的DATA分组(低速分组)的说明图。如该图所示,在这种结构中,主机SM2032将与有无分组差错有关的信息添加在分组的末尾(CRC16之后的字段)。即,没有分组差错时,如图39(b)所示,主机SM2032设立(添加)“CRC_OK”的标记(无差错标记)。另一方面,在有分组差错时,主机SM2032在DATA分组的末尾设立“CRC_NG”的标记(差错标记)。
由此,装置端控制器2012的装置SM2042可在接收的分组中识别分组差错。而且,装置SM2042还可以掌握该分组差错在主机端控制器2011中的分组的某一阶段已经产生。
此外,在本系统中,最好是设定装置端控制器2012的装置SM2042,以在判断为从主机端控制器2011发送的分组中有分组差错时,对主机端控制器2011,可请求再发分组。
在这种结构中,接受这样的再发请求的主机端控制器2011的主机SM2032,将发送FIFO2021中保存的分组再发到装置端控制器2012。由此,不等待主机2010的再发,可以将DATA分组发送到装置端。
再有,在这种结构中,主机SM2032最好是在发送到主机端控制器2011的分组中,设立使用图39(b)说明的标记(无差错标记、差错标记)。即,这种情况下,装置SM2042对于设立差错标记的分组,可以判断为在从主机2010发送到主机端控制器2011的阶段已经产生分组差错。因此,装置SM2042不进行与这样的分组有关的再发请求,仅对设立无差错标记的分组,进行再发请求就可以。由此,可抑制发送无用的分组。
此外,在图37所示的处理中,装置SM2042未能在规定时间内从装置2013接收ACK分组时(S4023),判断为对装置2013不能适当地发送SETUP分组/DATA分组(不具备装置端控制器2012/装置2013间的通信),作为超时,将处理返回到S4021。但是,不限于此,这种情况下,装置SM2042也可以向装置2013再发SETUP分组和DATA分组。
在这种结构中,装置SM2042在从主机端控制器2011接收SETUP分组和DATA分组并存储在接收FIFO2026中时,存储这些分组的接收FIFO2026中的位置(读指针值)(存储的部位可以是接收FIFO2026,也可以是未图示的其他存储器)。
然后,装置SM2042在将SETUP分组和DATA分组发送到装置2013后,未能在规定时间内从装置2013接收ACK分组时,使这些分组中的接收FIFO2026中的保存位置(读指针值)与接收FIFO2026的读指针(未图示)一致。然后,装置SM2042从该位置读取SETUP分组和DATA分组,并再发到装置2013。
由此,即使在装置端控制器2012/装置2013间不具备通信的情况下,也不使主机2010、主机端控制器2011动作,可将SETUP分组和DATA分组再发到装置2013。
再有,在上述中,通过控制接收FIFO2026的读指针,来实现再发。但是,不限于此,装置SM2042将接收FIFO2026中的分组的保存位置(开始地址)保存在装置端控制器2012中具有的其他存储装置(RAM等)中,使用它来读取分组,并实行再发就可以。
此外,在本实施方式中,装置SM2042通过CRC校验电路2033来判断从主机端控制器2011接收的分组中有无分组差错,只将没有差错的分组发送到装置2013。但是,不限于此,装置SM2042不进行这样的分组差错校验,而将接收FIFO2026中保存的所有分组发送到装置2013就可以。即使是这种情况,接收了有差错的分组的装置2013也不将ACK分组发回装置端控制器2012。
此外,在这种结构中,也可以进行上述装置端控制器2012/装置2013间的分组再发。这种情况下,装置SM2042最好是使用CRC校验电路2033,对从接收FIFO2026读取的分组,在再发前,调查有无分组差错。然后,装置SM2042最好是在有分组差错时,避免再发分组。
此外,在本实施方式中,装置端控制器2012的装置SM2042在对从主机端控制器2011接收的所有分组进行解调后,发送到装置2013。其中的原因之一是,如果从接收的部分向装置2013高速(480Mbps)传送低速通信路径(控制器2011/2012间;100Mbps)发送来的分组,则由于发送速度比接收速度快,所以在发送中有产生遗漏(接收FIFO2026变空(empty))的可能性。
因此,装置SM2042最好是根据接收的分组的大小,计算“即使对装置2013高速开始分组传送,在发送中也不产生遗漏的接收量的稳定接收量”。然后,在接收分组的接收量达到稳定接收量时,最好是开始对装置2013的传送。
再有,在USB2.0中,如图7所示,对于各种传送模式、传送速度,确定分组的最大长度。但是,在SETUP事务处理中,对于被装置端控制器2012接收的SETUP分组,预先确定其大小。此外,对于接续SETUP分组接收的DATA分组,其大小确定为8字节。因此,装置SM2042对于SETUP事务处理,可计算上述那样的稳定接收量。
图40是表示使用这样的稳定接收量,可向装置2013发送分组的装置端控制器2012的结构说明图。如该图所示,该装置端控制器2012是在图35所示的装置端控制器2012的结构中,具有计数器2034的结构。
在该结构中,装置SM2042首先计算与SETUP事务处理有关的稳定接收量。然后,将从主机端控制器2011接收的分组(特别是DATA分组)存储(写入)在接收FIFO2026中时,根据存储的数据量来增加计数器2034的值。然后,装置SM2042在计数器2034达到与上述稳定接收量对应的值时,对装置2013开始发送分组。
因此,在该结构中,在SETUP事务处理中,装置SM2042不待机至从主机端控制器2011接收所有分组,就可开始向装置2013的分组传送。由此,使SETUP事务处理整体的处理速度加快。
如上述那样,在SETUP事务处理中,DATA分组的大小为8字节。因此,由于可以降低设定稳定接收量,所以与其他事务处理相比,使传送速度加快。再有,这种情况下,装置SM2042在将DATA分组发送到装置2013的中途,发现DATA分组的差错时,最好是中止DATA分组的传送。由此,省去发送无用的分组。
此外,在本实施方式中,控制器2011/2012间的光无线通信中的数据传送速度为100Mbps。但是,不限于此,控制器2011/2012间的传送速度为任意的值也可以(可与采用USB电缆的传送速度相同,或比其快也可以)。
控制器2011/2012间的传送速度即使在大于或等于主机2010/主机端控制器2011间和装置端控制器2012/装置2013间的传送速度(USB电缆中的传送速度)时,在从主机2010至装置2013的通信路径长时(例如,作为控制器2011/2012间的通信路径,使用数百米的光缆等),有时也不能在最大TA时间内将ACK分组传送到主机2010。
这种情况下,如本系统那样,根据来自主机2010的SETUP分组/DATA分组的再发,通过主机SM2032将ACK分组传送到主机2010,从而使SETUP事务处理正常地完成。再有,在USB规格中,根据USB集线器的级数(最大6级)的重发时间和USB的电缆长度(最大5m),来确定最大TA时间。
此外,控制器2011/2012间的传送速度在大于或等于主机2010/装置端控制器2011间的传送速度时,主机SM2032最好是在完全接收了从主机2010接收的分组(特别是DATA分组)后,才开始对装置端控制器2012的传送。由此,在对装置端控制器2012的分组发送中,可以防止中断(在发送中产生遗漏)要发送的数据。
此外,这种情况下,主机SM2032也可以根据从主机2010接收的DATA分组的大小,来计算‘即使对主机端控制器2011高速开始分组传送,也不在发送中产生遗漏的接收量的稳定接收量’。然后,最好是进行设定,以在接收分组的接收量达到稳定接收量时,开始对主机端控制器2011的传送。
此外,在本实施方式中,控制器2011/2012间通过光无线通信来连接。但是,不限于此,控制器2011/2012间也可以用光缆进行通信。再有,在使用光缆时,可进行分组的长距离传输。此外,在使用光无线通信(空间通信)时,由于无电缆,所以便利性提高。
此外,作为控制器2011/2012间的通信方式,可采用半双工通信和全双工通信的任何一个。这里,全双工通信是可将从主机至装置的发送、以及从装置至主机的发送并行实行的通信方式。如果选择全双工通信,则使发光二极管或激光二极管构成的光发送机2023始终发光。因此,不需要在分组中附加前置码,使通信路径的通信效率(使用效率)提高。
这里,在全双工通信中光发送机2023始终发光的理由是,从主机2010或装置2013对USB接收机2020直接重发被接收的分组。
此外,通过光发送机2023始终发光,可容易地进行控制器2011/2012间的连接/切断。即,在半双工通信的情况下,在光接收机2024没有接受光大于或等于一定时间时,判断为控制器2011/2012间的连接被切断。另一方面,在全双工通信中,在连接状态下光发送机2023始终发光,对方控制器的光接收机2024始终为光接收状态。因而,在将连接切断时,停止光发送机2023的发光。由此,在光接收机2024没有接收光的阶段,可判断为连接被切断。由此,与半双工通信相比,可以缩短切断需要的时间。
此外,在控制器2011/2012间不是通过光,而是通过普通的电波的无线通信来连接也可以。这种情况下,最好是适当设定调制电路2022、解调电路2025的调制/解调方式。此外,光接收机2024为接收电波的接收天线。
此外,上述前置码在分组的接收端中,通过时钟数据复原电路(未图示),是用于取得时钟的同步的必要的信号。通常,使用“1010”图案的连续。前置码的时间是不能发送DATA分组的时间。因此,因前置码而产生无用的时间。在全双工通信的情况下,主机端控制器和装置控制器始终发送信号,所以不需要在每个分组中取得时钟同步。即,不需要前置码。因此,在全双工通信中,传送效率提高。
此外,在本实施方式中,用USB电缆将控制器2011/2012与主机2010或装置2013连接。但是,不限于此,也可以将主机端控制器2011连接到连接于主机2010的USB集线器的下流端口。此外,也可以将主机端控制器2011作为主机2010或USB集线器的一部分来构成。此外,也可以用USB电缆将装置端控制器2012与USB集线器的上流端口连接。此外,也可以作为装置或USB集线器的一部分来构成。
此外,在本系统中,主机SM2032和装置SM2042实际上为同样的部件,主机端控制器2011和装置端控制器2012大体上为相同的结构。因此,本系统是可只将一种控制器分别配置在主机2010和装置2013上来构筑的系统。
此外,在本实施方式中,在控制器2011/2012中,包括差错检测电路2028、CRC校验电路2033。但是,在不检测被发送的分组的差错的结构中,不需要包括差错检测电路2028/CRC校验电路2033。此外,也可以通过主机SM2032/装置SM2042来检测差错。
此外,在本实施方式中,在控制器2011/2012中包括定时器2029。但是,不限于此,如果是主机SM2032/装置SM2042不使用定时器的情况,则在控制器2011/2012中不需要包括定时器2029。这样的情况,例如有在图36所示的S4015、S4016中,在不设定与分组接收有关的主机SM2032的待机时间的上限的情况,或在图37所示的S4023中,不设定与ACK分组的接收有关的装置SM2042的待机时间的上限的情况(没有超时的情况)等。
此外,在本实施方式中,在控制器2011/2012中包括SNSM2030。但是,不限于此,在不进行上述速度协调,使控制器2011/2012间的通信速度一定的结构中,不需要在控制器2011/2012中包括SNSM2030。
此外,在本实施方式中,主机2010为个人计算机。但是,不限于此,作为主机2010,可使用装置2013,只要是作为USB父机的设备,任何设备都可以。
此外,在本实施方式中,在主机2010和装置2013的连接确立后,装置端控制器2012的装置SM2042将SOF分组发送到装置2013。此外,在接收了从主机2010向装置2013发送的SOF分组时,主机端控制器2011的主机SM2032避免将该分组发送到装置端控制器2012。
但是,不限于此,也可以对本系统进行设定,以与普通的USB系统同样,主机端控制器2011的主机SM2032向装置端控制器重发从主机2010发送的SOF分组,装置端控制器2012的装置SM2042向主机2010重发从主机2010发送的SOF分组。
即,本系统按USB原始的最高速度的高速模式(HS;480Mbps)来进行主机2010/主机端控制器2011间、以及装置端控制器2012/装置2013间的通信。然后,在控制器2011/2012间进行设定,以进行比其慢的100Mbps的光通信(光无线,或基于光缆的通信)。
这里,在控制器2011/2012间的光通信的数据传送速度为480Mbps时,例如如果使用8B10B的调制方式,则需要具有480×10/8=600Mbps频带的光发送机和光接收机(光收发器)。因而,为了获得这样的光发送机,需要使用LD(激光二极管)。
另一方面,在控制器2011/2012间的光通信中的数据传送速度为100Mbps时,可以使用LED(发光二极管)来构成光发送机2023。因而,如果比较LD和LED,则LED绝对便宜。
因此,通过减缓控制器2011/2012间的光通信的速度,可以按低成本来构成控制器2011/2012(光发送机2023)。此外,通过使用光通信,可以避免使用USB电缆造成的限制(电缆长度等)。
此外,最好是进行控制器2011/2012间的数据通信的部件仅为光发送机2023、光接收机2024,因而端口(通信端子)仅为光发送机2023、光接收机2024的光端口(不使用金属端口)。此外,最好是将控制器2011/2012与主机2010或装置2013一体化。如果这样构成,控制器2011/2012必需的频带从600Mbps明显减低至100Mbps。由此,通过低价的制造工序,可以制成控制器2011/2012。
再有,作为装置2013,在采用数据传送速度慢的装置(例如闪存;50Mbps左右)时,完成事务处理所需的时间极大地取决于装置2013的传送速度。因此,对于控制器2011/2012间的数据传送速度来说,如果比装置2013的速度快,则在事务处理的完成时间上不产生大的影响。
因此,可以将本发明的USB系统表现为具有以下特征的USB系统在包括主机、装置、配备于主机中并对主机和装置之间的通信进行中继的主机端控制器、配备于装置中并对主机和装置之间的通信进行中继的装置端控制器的USB系统中,以光通信进行控制器间的数据传送来设定,而且,光通信的数据传送速度比USB2.0中的高速模式的数据传送速度慢。此外,即使将控制器2011/2012间形成为不使用光的其他通信路径(基于电波的无线通信等),通过减缓传送速度,可以削减控制器2011/2012的成本。因此,可以将本发明的USB系统表现为具有以下特征的USB系统在包括主机、装置、配备于主机中并对主机和装置之间的通信进行中继的主机端控制器、配备于装置中并对主机和装置之间的通信进行中继的装置端控制器的USB系统中,控制器间的数据传送速度比USB2.0中的高速模式的数据传送速度慢。
此外,在上述实施方式的说明中,假设USB2.0规格,而在USB2.0规格中主机端和装置端的功能分别固定。即,USB2.0规格下的数据的交换以PC作为USB主机,在该PC上连接作为USB装置的装置(数字照相机或打印机等)。
但是,近年来,制定了所谓的USB-OTG(USB-On-The-Go)规格,不需要普通USB系统中必要的PC(USB主机)。即,在USB-OTG规格中,由于可在没有PC(USB主机)下在USB设备之间进行数据的发送接收,所以便利性提高。在USB-OTG中,根据连接的电缆的连接器的种类,可作为USB主机动作,也可作为USB功能机动作。
在USB-OTG中,与USB2.0同样,支持LS(1.5Mbps)、FS(12Mbps)、HS(480Mbps)的传送速度。此外,USB-OTG对应的设备可作为USB主机动作,也可作为USB装置动作。此外,在USB-OTG规格中,追加了所谓的miniAB的新的连接器种类。该miniAB可连接具有miniA、minib双方插头的电缆,根据连接的电缆的插头的形状,在连接了miniA时,作为USB主机动作,而在连接了miniB时,作为USB装置动作。此外,根据所谓的HNP(Host Negotiation Protocol)的新协议,在连接了电缆的状态下,追加了动态地交错主机和功能机的功能的机构。即,在USB-OTG中,被连接的设备是USB主机还是USB装置,由电缆的连接器的种类或USB-OTG确定的HNP(Host Negotiation Protocol)来决定。
即,在将本发明应用于USB-OTG时,USB主机和USB装置的作用不固定,根据被传输的数据的方向,其作用可被替换。同样,主机端控制器和装置端控制器的其作用也不固定,根据被传输的数据的方向,其作用可被替换,所以如图41所示,一个通信控制器2014具有主机端控制器2011和功能机端控制器2012两方的功能就可以。为此,在各控制器的状态机中,也可以装入具有主机端控制器和装置端控制器两方功能并可动作的程序。再有,在这种结构的情况下,主机端状态机和装置端状态机相当于技术方案范围中记载的控制部。
此外,在本实施方式中,通过装置SM2042的控制来进行装置端控制器2012中的所有处理。但是,不限于此,将用于进行这些处理的程序记录在记录介质中,取代装置SM2042而使用可读取该程序的信息处理装置(也可以是装置2013的一部分)就可以。
此外,同样地,通过主机SM2032来进行主机端控制器2011中的所有处理,但也可以将用于进行这些处理的程序记录在记录介质中,取代主机SM2032而使用可读取程序的信息处理装置(也可以是主机2010的一部分)。
在该结构中,信息处理装置的运算装置(CPU或MPU)读取记录于记录介质中的程序后执行处理。因此,可以说该程序本身实现处理。
这里,作为上述信息处理装置,除了一般的计算机(工作站或个人计算机)以外,可以使用安装于计算机中的功能扩展端口或功能扩展单元。
此外,上述程序是实现处理的软件的程序代码(实行形式程序、中间码程序、源程序等)。这种程序可单独使用,也可以与其他程序(OS等)组合使用。此外,这种程序也可以是在从记录介质读取后,临时存储在装置内的存储器(RAM)等中,然后被再次读取后执行。
记录程序的记录介质,可以是容易与信息处理装置分离的记录介质,也可固定在装置中,而且,也可以作为外部存储设备与装置相连。
作为这样的记录介质,可以采用录像带或盒式带等磁带、软盘(注册商标)或硬盘等磁盘、CD-ROM、MO、MD、DVD、CR-D等光盘(光磁盘)、IC卡、光卡等存储卡、掩模型ROM、EPROM、EEPROM、快闪ROM等半导体存储器等。此外,也可以使用经由网络(内联网、因特网等)与信息处理装置连接的记录介质。这种情况下,信息处理装置通过经由网络下载来取得程序。即,也可以经由网络(连接到有线线路或无线线路的网络)等传输媒体(流动性地保存程序的媒体)来取得上述程序。再有,用于进行下载的程序,最好是被预先存储在装置内(或发送端装置/接收端装置内)。
此外,本发明是这样的技术在USB传输中的SETUP事务处理中,在与USB2.0的原始速度相比,使用传送速度低的通信路径时(在现有的方法中,因USB的时间性限制而不能正常地结束的情况),没有问题地进行基于USB2.0的SETUP事务处理的数据传送。
因此,可以将本发明的技术如下表现如果主机端控制器在从USB主机接收SETUP分组和DATA分组时没有从装置端控制器接收ACK分组,则在其后将从装置端控制器发送来的ACK分组存储在存储部件(FIFO)中,在接收了ACK分组后,再次从USB主机接收SETUP分组和DATA分组时,将存储在存储部件中的ACK分组发送到USB主机。
在现有的USB传输的SETUP事务处理中,在发送来自USB主机的SETUP分组和DATA分组后,需要在规定的限制时间(最大TA时间)以内用USB主机接收来自USB装置的回复分组(ACK分组),在主机一装置间的通信路径中的通信速度比USB的原始速度低时,存在没有在上述限制时间以内接收回复分组,SETUP事务处理没有正常结束的问题。
此外,在以往,主机端控制器为了接收SETUP分组,向USB装置传送该分组,等待接收回复分组来进行处理,所以在因主机-装置间通信速度的问题而不能在上述限制时间以内结束处理的情况下,即使USB主机重复进行SETUP分组的发送,也不能正常地结束SETUP事务处理。
相反,在上述结构中,主机端控制器用存储部件存储作为对最初发送的SETUP分组的回复的ACK分组,在从USB主机再发来SETUP分组时,通过将存储部件中存储的ACK分组发送到USB主机,不察觉TA时间(超时),可正常地进行SETUP事务处理。
此外,也可以说本发明涉及USB规格中的USB信号的传输方法和传输装置。此外,在USB中,为了维持连接方式,最下层的协议以时间分割进行通信,主机进行调度。此外,USB上的数据通信按被称为事务处理的单位来进行。该事务处理由令牌分组、数据分组、以及被称为信号交换分组的分组构成。主机必须按事务处理开始时发行的令牌分组开始,根据包含于令牌分组中的地址和端点,对应的装置产生响应。
端点是用于存储传送数据的FIFO缓冲器,USB主机和USB装置的数据的交换必然经由端点来实行。USB装置可具有最大16个端点,为了识别多个端点,在端点上附加号码。USB主机在数据传送时通过USB装置的USB地址和端点进行访问。端点之中0号端点被称为端点0,在USB装置中必须存在一个。该端点0在控制传送时被用于通过SETUP分组进行的初始化。此外,在图19中,装置在T403开始发送的原因是,对于装置,必须按USB原始的480Mbps进行发送。
此外,在本发明中,也可以构成为连接到USB主机端的主机端控制器和连接到USB装置端的装置端控制器。主机端控制器接收来自USB主机的信号后将其发送到USB装置,并将来自装置端控制器的信号向USB主机发送,但除了用USB电缆与USB主机连接以外,也可以用USB电缆与USB集线器的下流的端口连接。此外,也可以作为USB主机或USB集线器的一部分来构成。装置端控制器将来自主机端控制器的信号发送到USB装置,并将来自USB装置的信号向主机端控制器发送,但除了用USB电缆与USB装置连接以外,也可以用USB电缆与USB集线器的上流的端口连接。此外,也可以作为USB装置或USB集线器的一部分来构成。
此外,发送FIFO2021在主机端控制器和装置端控制器间的通信路径与USB的通信路径相比为相同或低速时,进行向所述相同或低速的通信路径重发分组时的定时调整就可以。此外,在本系统中,主机SM2032在IN事务处理、OUT事务处理、SETUP事务处理的各事务处理中,根据预定的规则,与USB主机和装置端控制器进行分组的交换。
此外,在本系统中,主机SM2032在将从主机2010接收的SETUP分组和DATA分组发送到装置端控制器2012时,未从装置端控制器2012接收ACK分组。因此,不向主机2010进行任何返回。由此,对于主机2010,可能识别为装置2013不能正常地接收SETUP分组和DATA分组,不能结束SETUP事务处理。
此外,在装置端控制器2012中,在接收了OUT分组和DATA分组时,只在从主机端控制器完全接收了DATA分组时,才对USB装置发送DATA分组。其原因是,在DATA分组的分组格式中不存在意味着分组长度的字段,在将来自低速通信路径的接收数据重发到USB的高速通信路径时可靠地进行重发而没有DATA的遗漏。在USB2.0中,如图7所示,在各传送模式中,确定了分组的最大长度。然后,SETUP事务处理中的SETUP分组之后的主机装置的长度被确定为8字节,根据分组的解析,对于SETUP分组之后的DATA分组,被认为能够不等待结束接收DATA分组,就可向USB装置开始发送DATA分组。
此外,图40所示的计数器2034是在从主机端控制器2011接收的DATA分组被写入装置端控制器2012的接收FIFO2026时,只增加被写入的DATA部分的值的计数器。计数器2034的值无论是没有达到与图7中所示的同步传送时的最大分组长度的3072字节相当的值,还是向USB2.0的通信路径开始发送,只要大于或等于不使接收FIFO2026为EMPTY的值,就可以不等待DATA分组的接收结束而对USB通信路径进行发送。计算上述的计数器2034的值,如果计数器2034的值大于或等于该值,则通过不等待DATA分组的发送结束就开始发送,可以加快DATA分组的发送定时,可提高作为整体的传送速度。此外,如上述那样,由于SETUP分组之后的DATA分组固定为8字节,所以对于SETUP分组之后的DATA分组,可降低上述计数器2034的设定值,可进一步提高作为整体的传送速度。
此外,图39(a)是USB数据分组的分组格式,图39(b)是变换为低速通信路径的分组格式,在主机端控制器接收DATA分组时,是向装置端控制器发送的分组格式。此外,在本系统中,如图39(b)所示,在USB分组的CRC16之后,设置所谓CRC_OK的字段。在装置端控制器保存的DATA分组中没有差错时,在上述CRC_OK的字段中输入表示该情况的值,而在保存的DATA分组中有差错时,通过同样输入该情况,可将主机端控制器保存的DATA分组是否为可再发的分组的信息通知装置端控制器,在装置端控制器中,通过监视上述CRC_OK字段,假如在判定为接收DATA分组中有差错时,对于主机端控制器,可进行是否进行再发请求的控制。
此外,装置端控制器2012的CRC校验电路2033计算从主机端控制器2011接收的DATA分组中的CRC16,可判别在接收DATA分组中是否有差错。通过CRC校验电路2033,废弃判断为有差错的DATA分组,作为USB分组,通过不发送,从而降低发送所需的功率,同时可抑制因USB装置接收有所述差错的分组产生的不能预期的异常动作。此外,主机端控制器2011的CRC校验电路2033计算从主机2010接收的DATA分组中的CRC16,可判别在接收DATA分组中是否有差错。判断为有差错时的对低速通信路径的DATA分组的重发是无效的重发。因此,在判断为有差错时,通过即使在重发的中途也停止分组的发送,从而可抑制低速通信路径的传送效率的恶化。
此外,也可以如下设定装置端控制器2012。即,装置SM2042从主机端控制器2011接收SETUP分组和DATA分组时,将SETUP分组和DATA分组写入接收FIFO2026。该接收FIFO2026在发送SETUP分组和DATA分组时,预先保存读指针的值。在将SETUP分组和DATA分组发送到USB装置后,在预定的一定时间期间内没有接收到ACK分组时,装置SM2042判断为在装置2013和装置端控制器2012之间的通信路径中产生了数据差错,将读指针设定为上述读指针的值,并在经过预定的一定时间后,再次发送相同的SETUP分组和DATA分组。这种情况下,通过控制接收FIFO2026的读指针,来实现再发,但即使通过用RAM等保存开始地址,实现再发也没有问题。此外,通过CRC校验电路2033,可判别接收DATA分组是否正确,所以能够只在判别为接收DATA分组正确时,可进行上述再发处理的控制。
此外,根据本实施方式所示的方法,即使在USB主机和USB装置之间存在比USB的原始速度慢的通信速度,也可正常地进行SETUP事务处理。此外,通过监视FIFO内的数据量,可控制合适的DATA分组的发送定时,可提高相同速度或低速的通信路径的使用效率。此外,通过在主机端控制器、装置端控制器内设置CRC校验电路,可进行差错检测,通过再发处理等,可进行稳定性更高的数据通信。
此外,通过设置速度协调电路,可在最合适的传送速度中,进行数据通信。此外,通过进行全双工通信,可以提高通信路径的使用效率。此外,作为低速通信路径,通过使用光纤,可增长相同或低速的通信路径的距离,应用范围扩大。此外,作为低速通信路径,通过采用使用电波的无线,可防止连接器恶化,而且由于无电缆,使用的便利性好。此外,作为低速通信路径,通过采用使用光的空间传输,可防止连接器恶化,可进行高速的空间传输。
此外,也可以说本发明的目的在于,即使在使用传送速度比USB2.0的原始速度低的通信路径(例如100Mbps的光通信路径)的情况下,也可没有问题地进行基于USB2.0的SETUP事务处理的数据传送。也可以将用于实现这样的目的的本发明的结构作为以下第一~十八发送接收电路和第一发送接收方法来表现。
即,第一发送接收电路是具有可按与USB规格确定的传送速度相同或其以下的传送速度进行传送的接口的发送接收电路,由连接到USB主机或USB集线器的下流侧的端口、作为USB主机或USB集线器的一部分构成的主机端控制器,以及连接到USB装置或USB集线器的上流侧的端口,作为USB装置或USB集线器的一部分构成的装置端控制器来构成,两控制器有FIFO、状态机,在主机端控制器中,具有接收了SETUP分组后立即向装置端控制器重发SETUP分组,而在接收DATA分组后立即向装置端控制器重发DATA分组,从装置端控制器接收ACK分组后,向USB主机发送ACK分组的特征,而在装置端控制器中,具有将从主机端控制器送来的SETUP分组和DATA分组重发到USB装置,将从USB装置接收的分组重发到主机端控制器的特征。由此,即使在USB主机和USB装置之间插入传送速度比USB2.0规格慢的通信路径,也不察觉周转时间,可正常地进行SETUP事务处理。
第二发送接收电路为上述第一发送接收电路,在装置端控制器中,具有如果来自主机端控制器的接收FIFO的接收数据量比预定的值多,则向USB装置开始发送DATA分组而不等待数据接收完成的特征。由此,可以减少DATA分组的接收完成前的等待时间,可提高总线的传送效率。第三发送接收电路为上述第一发送接收电路,在装置端控制器中,具有通过对从主机端控制器接收的分组进行差错检测符号的解析,在判断为有差错的情况下,废弃分组的特征。由此,装置端控制器对于USB装置,可抑制发送差错的分组,与低消耗功率相关联,同时可降低不能预期的USB装置的异常动作。
第四发送接收电路为上述第一发送接收电路,在主机端控制器中,具有通过对从USB主机接收的分组进行差错检测符号的解析,在判断为有差错的情况下,直接停止对装置端控制器的分组发送的特征。由此,可抑制因发送接收差错的分组造成的总线的低效率。第五发送接收电路为上述第一发送接收电路,在装置端控制器中,具有在对于发送到USB装置的DATA分组没有返回ACK分组的情况下,经过预定的一定时间后,再次将SETUP分组和DATA分组再发到USB装置的特征。由此,可缩短USB装置和装置端控制器间的通信路径中的对分组差错的处理时间。
第六发送接收电路为上述第五发送接收电路,具有特别是只在上述DATA分组中没有差错的情况下,进行SETUP分组和DATA分组的再发的特征。由此,可抑制因将差错的分组再发到USB主机造成的总线使用效率的下降。第七发送接收电路为上述第一发送接收电路,在装置端控制器中,具有在判断为从主机端控制器接收的DATA分组有差错的情况下,向主机端控制器请求再发的特征。由此,在主机端控制器和装置端控制器间的通信路径中,在分组中产生差错时,可对主机端控制器通知该情况。
第八发送接收电路为上述第七发送接收电路,在主机端控制器中,具有在接收了上述再发请求的情况下,再发DATA分组的特征。由此,可进行相对于主机端控制器和装置端控制器间的通信路径中产生了分组差错的再发处理。第九发送接收电路为上述第七发送接收电路,具有所述再发处理只在保存没有差错的DATA分组时进行的特征。
由此,对于USB主机和主机端控制器间产生的差错分组,不进行再发处理,可减轻通信路径的使用效率的下降。第十发送接收电路为上述第七发送接收电路,具有在上述相同或低速通信路径的分组格式中设置主机端控制器保存的分组没有差错的标记的特征。由此,装置端控制器可对主机端控制器通知保存没有差错的数据。
第十一发送接收电路为上述第十发送接收电路,具有在装置端控制器判断为从主机端控制器接收的分组有差错的情况下,根据上述标记,只在确认为主机端控制器保存没有差错的DATA分组的情况下进行再发请求的特征。由此,可抑制因有差错的分组的传送造成的通信路径的使用效率的下降。
第十二发送接收电路为上述第一发送接收电路,具有可进行多个传送速度的发送接收电路和收发器,进行与对方节点的速度协调的特征。由此,在可按多个传送速度进行传送的主机端控制器和装置端控制器中,可按相同的传送速度进行分组传送。第十三发送接收电路为上述第十二发送接收电路,具有通过上述速度协调,在判断为可按大于或等于预定的传送速度进行通信的情况下,不通过上述状态机进行分组的控制和对USB主机及装置的分组发送定时,只进行调制解调来进行分组的重发的特征。由此,在判断为通信路径的传送速度充分满足上述最大周转时间的情况下,可进行USB2.0的数据传送而不导致数据传送速度的下降。
第十四发送接收电路为上述第十二发送接收电路,具有解析上述相同或低速的通信路径的差错率,在判断为比预定的差错率差的情况下,降低传送速度来进行通信的特征。由此,假如在判断为通信路径的质量差的情况下,通过降低传送速度,从而可在质量良好的通信路径中,进行数据传送。第十五发送接收电路是适用于上述第一发送接收电路至第十四发送接收电路的其中一个的发送接收电路,具有全双工通信的特征。由此,可没有在半双工通信中必需的前置码,可提高通信路径的使用效率。
第十六发送接收电路为适用于上述第一发送接收电路至第十五发送接收电路的其中一个的发送接收电路,具有使用光纤的长距离通信的特征。由此,可增长USB主机和USB装置的距离,应用范围扩大。第十七发送接收电路是适用于上述第一发送接收电路至第十四发送接收电路的其中一个的发送接收电路,具有主机端控制器和装置端控制器间使用电波的无线通信的特征。由此,变为无电缆,可防止连接器的恶化等。
第十八为适用于上述第一发送接收电路至第十五发送接收电路的其中一个的发送接收电路,具有主机端控制器和装置端控制器间使用光的空间传输的特征。由此,变为无电缆,可防止连接器的恶化等,同时可进行高速的空间传输。此外,第一发送接收方法具有用于实现上述第一发送接收电路至第十八发送接收电路的发送接收方法的特征。
在上述实施方式19中说明的USB系统中,主机端控制器2011的主机SM2032在接收了从装置端控制器2012向主机2010发送的ACK分组时,将该分组存储在接收FIFO2026中。然后,主机SM2032在从主机2010再发SETUP分组和DATA分组时,将存储的ACK分组发送到主机2010。因此,主机2010-装置2013间的通信需要时间,即使使主机2010直接接收从装置端控制器2012发送的ACK分组而超过最大TA时间的情况下,也可完成SETUP事务处理。
因此,通过上述USB系统,即使采用数据传送需要时间的通信路径的情况下,也可实行SETUP事务处理。
此外,在上述实施方式19中说明的本发明可用于为了实现主计算机(主机)和其周边设备(装置)间的USB通信(符合USB规格的数据通信)的作为通信系统的USB系统,以及USB系统中的主机、装置中配置的通信控制器(主机端控制器、装置端控制器)。
如以上那样,本发明的通信控制器具有作为主机端控制器的功能,在作为USB上的数据通信进行IN事务处理时,将从主机装置发送的IN分组传送到功能机装置端,并将作为对于该IN分组应答的DATA分组传送到主机装置,该通信控制器包括接收确认部件,确认接收来自主机装置的IN分组;存储部件,存储从功能机装置端发送来的DATA分组;数据存储确认部件,在由所述接收确认部件确认了接收来自主机装置的IN分组的时间内,确认在所述存储部件中是否存储了DATA分组;以及发送控制部件,在由所述数据存储确认部件确认没有存储所述DATA分组时,将从主机装置接收的IN分组传送到功能机装置端,而在由所述数据存储确认部件确认存储了所述DATA分组时,将所述DATA发送到主机装置。
此外,所述通信控制器还具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,在从主机装置端接收IN分组时保持该分组,在从主机装置端接收到发送到主机装置端的相对于DATA分组的ACK分组的情况下,将所述保持的IN分组发送到功能机装置,并在从功能机装置接收到相对于该IN分组的DATA分组的时刻,将ACK分组发送到功能机装置。
因此,在主机-功能机间的通信路径中DATA分组中产生差错时,功能机端控制器不将ACK分组发送到功能机装置,所以可以防止IN事务处理异常结束,具有可进行更稳定的分组传送的效果。
所述通信控制器为以下结构与来自主机装置的IN分组的接收和向主机装置的DATA分组的发送相关联的传送速度为USB规格中确定的传送速度,与IN分组的向功能机装置端的发送和来自功能机装置端的DATA分组的接收相关联的传送速度比USB规格中确定的传送速度低,而且,具有数据量确认部件,确认将从功能机装置端接收的DATA分组存储在所述存储部件时的存储数据量,所述发送控制部件在所述数据量确认部件确认的接收数据量比预定的值多的时刻,开始向主机装置发送DATA分组。
因此,即使在主机-功能机间的通信路径中的传送速度比主机端控制器和主机装置之间的传送速度(USB规格规定的传送速度)低的情况下,如果所述预定的值大于或等于即使在该时刻开始DATA分组的对主机装置的传送,存储部件件也不变为EMPTY的值,则可以不等待来自功能机装置端的DATA分组的接收结束就开始发送DATA分组。因此,可加快DATA分组的发送定时,具有提高作为整体的传送速度的效果。
此外,所述通信控制器为以下结构具有差错解析部件,对从功能机装置端接收的DATA分组是否包含差错进行解析,所述发送控制部件在通过所述差错解析部件判断为接收的DATA分组差错时,废弃该DATA分组,并不将其传送到主机装置。
因此,具有降低发送所需的功率,同时可抑制因USB主机接收有差错的分组产生不能预期的异常动作的效果。
所述通信控制器为以下结构具有差错解析部件,对从功能机装置端接收的DATA分组是否包含差错进行解析,所述发送控制部件在通过所述差错解析部件判断为接收的DATA分组差错时,在该时刻中止向主机装置发送DATA分组。
因此,通过即使在传送的中途也停止发送所述DATA分组,从而具有抑制低速通信路径的传送效率的恶化的效果。
此外,所述通信控制器为以下结构在将DATA分组发送到主机装置后,所述接收确认部件确认是否从主机装置返回与该DATA分组对应的ACK分组,在将DATA分组发送到主机装置后,通过所述接收确认部件确认没有接收ACK分组,确认接收下一IN分组的情况下,所述发送控制部件进行将与上次发送到主机装置的DATA分组相同的DATA分组发送到主机装置的再发处理。
因此,在主机端控制器对主机装置发送DATA分组时,在主机装置和主机端控制器之间产生数据差错的情况下,具有可不向功能机装置端请求再次发送DATA分组,而进行DATA分组的再发处理的效果。
此外,所述通信控制器为以下结构具有差错解析部件,对从功能机装置端接收的DATA分组是否包含差错进行解析,所述发送控制部件只在通过所述差错解析部件确认本方设备保存的DATA分组中没有差错的情况下,才进行所述再发处理。
因此,在所述通信控制器具有作为主机端控制器功能的情况下,具有只在判别为接收DATA分组正确时,才进行对主机装置的再发处理的效果。
此外,所述通信控制器为以下结构,包括差错解析部件,对从功能机装置端接收的DATA分组是否包含差错进行解析;以及再发请求部件,在通过所述差错解析部件判断为接收的DATA分组差错的情况下,向功能机装置端进行DATA分组的再发请求。
因此,通过进行上述动作,具有在主机-功能机间的通信路径中,在DATA分组中产生差错时,主机端控制器可对功能机装置端通知该情况的效果。
此外,所述通信控制器为以下结构所述通信控制器还具有作为功能端控制器的功能,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,在从主机端控制器接收到再发请求时,进行将与上次发送到主机端控制器的DATA分组相同的DATA分组发送到主机端控制器的再发处理。
因此,具有根据来自主机端控制器的再发请求来进行来自功能机端控制器的再发处理的效果。
此外,所述通信控制器为以下结构具有差错解析部件,对从功能机装置接收的DATA分组是否包含差错进行解析,所述发送控制部件只在通过所述差错解析部件确认为本方设备保存的DATA分组中没有差错的情况下,才进行所述再发处理。
因此,在所述通信控制器具有作为功能机端控制器功能的情况下,具有只在判别为接收DATA分组正确时,才进行对主机端控制器的再发处理的效果。
此外,所述通信控制器为以下结构在通过所述差错解析部件确认为本方设备保存的DATA分组中没有差错时,在向主机装置发送的DATA分组的分组格式中,设立表示在该DATA分组中没有差错的标记。
因此,具有将功能机端控制器保存的DATA分组是否为可再发的分组的信息通知主机装置端的效果。
此外,所述通信控制器为以下结构在从功能机端控制器接收DATA分组,并通过所述差错解析部件检测在该DATA分组中有差错的情况下,在该DATA分组中设立表示由所述功能机端控制器保存的DATA分组中有无差错的标记,只在通过该标记确认为功能机装置端保存没有差错的DATA分组的情况下,才进行所述再发请求。
因此,具有在判断为接收DATA分组中有差错时,可对功能机端控制器进行再发请求的效果。
此外,所述通信控制器为以下结构所述通信控制器还具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,在从主机端控制器接收到再发请求时,对功能机装置发送IN分组,并将相对于该发送所接收的DATA分组发送到主机端控制器。
因此,具有可根据来自主机端控制器的再发请求来进行来自功能机端控制器的再发处理的效果。
此外,所述通信控制器为以下结构在实行所述IN事务处理前,与通信对方端的通信控制器进行传送速度调整。
因此,具有在主机-功能机间的通信路径中,实际的通信为可能的传送速度,并且可在需要以上设定不降低传送速度的传送速度的效果。
此外,所述通信控制器为以下结构在所述传送速度调整中,在判断为可按USB规格中确定的传送速度进行通信的情况下,发送到通信对方端的通信控制器的各分组不进行分组的发送定时控制,只进行调制解调并向对方端的通信控制器传送。
因此,具有在判断为主机-功能机间的通信路径中的传送速度充分满足所述最大超时的情况下,可进行USB2.0的数据传送而不导致数据传送速度的下降的效果。
此外,所述通信控制器为以下结构对与通信对方端的通信控制器之间的通信路径中的差错率进行解析,并在判断为该差错率比预定的差错率差的情况下,进行所述传送速度调整并降低传送速度。
因此,具有假如在判断为主机-功能机间的通信路径中的质量差的情况下,通过降低传送速度,可在质量良好的通信路径中进行数据传送的效果。
此外,所述通信控制器为以下结构在与通信对方端的通信控制器之间,进行全双工通信。
因此,具有在主机-功能机间的通信路径中,可没有半双工通信时必要的前置码,提高通信路径的使用效率的效果。
此外,所述通信控制器为以下结构与通信对方端的通信控制器之间的通信通过使用光纤的通信路径方式来进行。
因此,具有可在主机-功能机间的通信中进行长距离传输的效果。
此外,所述通信控制器为以下结构与通信对方端的通信控制器之间的通信通过使用电波的无线方式来进行,或者,与通信对方端的通信控制器之间的通信通过使用光的空间传输方式来进行。
因此,具有在主机-功能机间的通信中,因无电缆而提高便利性的效果。
此外,如以上那样,本发明的另一通信控制器具有作为功能机端控制器的功能,在作为USB上的数据通信来进行IN事务处理时,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,它为以下结构在从主机装置端接收到IN分组时保存该分组,在从主机装置端接收到与发送到主机装置端的DATA分组对应的ACK分组的情况下,将所述保存的IN分组发送到USB功能机,并在从功能机装置接收到对于该IN分组的DATA分组时刻,将ACK分组发送到功能机装置。
此外,如以上那样,本发明的另一通信控制器具有作为功能机端控制器的功能,在作为USB上的数据通信来进行IN事务处理时,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,它为以下结构在从主机端控制器接收到再发请求时,进行将与上次发送到主机端控制器的DATA分组相同的DATA分组发送到主机端控制器的再发处理。
此外,所述通信控制器为以下结构对从功能机装置接收的DATA分组是否包含差错进行解析,只在通过所述解析确认为设备自身保存的DATA分组中没有差错的情况下,才进行所述再发处理。
此外,所述通信控制器为以下结构在通过所述解析确认为本方设备保存的DATA分组中没有差错的情况下,在向主机装置发送的DATA分组的分组格式中,设立表示在该DATA分组中没有差错的标记。
此外,如以上那样,本发明的另一通信控制器具有作为功能机端控制器的功能,在作为USB上的数据通信来进行IN事务处理时,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,它为以下结构在从主机端控制器接收到再发请求时,对功能机装置发送IN分组,并将与此对应接收的DATA分组发送到主机端控制器。
此外,如以上那样,本发明的通信系统包括具有作为上述记载的主机端控制器功能的通信控制器;以及具有作为功能机端控制器功能的通信控制器,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端。
此外,如以上那样,本发明的通信设备包括上述记载的通信控制器。
此外,如以上那样,本发明的通信方法的特征在于确认接收来自主机装置的IN分组,并在该时刻确认是否接收与作为该IN分组对应的应答的DATA分组,在接收所述DATA分组的情况下,对于接收的所述IN分组,将该DATA分组发送到主机装置,在没有接收所述DATA分组的情况下,将接收的所述IN分组传送到功能机装置端,同时向主机装置发送NAK分组。
此外,本发明的分组通信程序用于使计算机具有所述通信控制器的各部件的功能。通过将所述分组通信程序装载在计算机系统中,具有可向用户提供所述通信控制器的效果。
此外,本发明的记录介质用于记录所述分组通信程序。通过将记录于所述记录介质中的分组通信程序,具有可向用户提供所述通信控制器的效果。
如以上那样,本发明的通信控制器具有作为主机端控制器的功能,在作为USB上的数据通信来进行OUT事务处理时,将从主机装置发送的OUT分组和DATA分组传送到功能机装置端,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置,该通信控制器包括接收确认部件,确认接收来自主机装置的OUT分组和DATA分组;存储部件,存储从功能机装置侧发送来的信号交换分组;存储确认部件,在通过所述接收确认部件确认了接收来自主机装置的OUT分组和DATA分组的时刻,确认在所述存储部件中是否存储了信号交换分组;以及发送控制部件,在通过所述存储确认部件确认为没有存储所述信号交换分组时,向主机装置发送NAK分组,而在通过所述存储确认部件确认为存储了信号交换分组时,向主机装置发送该信号交换分组。
此外,所述通信控制器为以下结构所述通信控制器具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置端,与接收来自主机端控制器的OUT分组和DATA分组及发送到主机端控制器的信号交换分组有关的传送速度比USB规格确定的传送速度低,与对功能机装置发送OUT分组和DATA分组的及接收来自功能机装置的信号交换分组有关的传送速度为USB规格确定的传送速度,而且,具有数据量确认部件,确认将从主机端控制器接收的OUT分组和DATA分组存储在所述存储部件时的存储数据量,所述发送控制部件在通过所述数据量确认部件确认的接收数据量比预定的值多的时刻,开始向功能机装置发送OUT分组和DATA分组。
根据上述结构,即使在主机-功能机间的通信路径中的传送速度比功能机端控制器和功能机装置之间的传送速度(USB规格确定的传送速度)低时,如果上述预定的值大于或等于即使在该时刻开始向USB主机传送OUT分组和DATA分组也不使存储部件变为EMPTY的值,则可开始发送DATA分组而不等待来自主机装置端的OUT分组和DATA分组的接收结束。因此,具有可以加快OUT分组和DATA分组的发送定时,提高作为整体的传送速度的效果。
此外,所述通信控制器为以下结构所述通信控制器具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置端,还具有差错解析部件,对从主机端控制器接收的DATA分组是否包含差错进行解析,在通过所述差错解析部件判断为接收的DATA分组差错时,所述发送控制部件废弃该DATA分组,并不将其传送到功能机装置。
因此,具有可降低发送所需的功率,同时抑制因功能机装置接收有差错的分组产生的不能预期的异常动作的效果。
此外,所述通信控制器为以下结构具有差错解析部件,对从主机装置接收的DATA分组是否包含差错进行解析,在通过所述差错解析部件判断为接收的DATA分组差错时,所述发送控制部件在该时刻中止向功能机端控制器发送DATA分组。
因此,通过即使在传送中途也停止发送所述DATA分组,具有抑制低速通信路径的传送效率的恶化的效果。
此外,所述通信控制器为以下结构所述通信控制器具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置端,在向功能机装置发送DATA分组后,所述接收确认部件确认是否从功能机装置已返回与该DATA分组对应的ACK分组,在向功能机装置发送DATA分组后,在规定时间内通过所述接收确认部件没有确认出接收ACK分组时,所述发送控制部件进行将与上次发送到功能机装置的分组相同的OUT分组和DATA分组发送到功能机装置的再发处理。
因此,具有在功能机端控制器对功能机装置发送DATA分组时,在功能机装置和功能机端控制器之间产生数据差错时,可不向主机装置端请求再次发送DATA分组,就进行DATA分组的再发处理的效果。
此外,所述通信控制器为以下结构具有差错解析部件,对从主机端控制器接收的DATA分组是否包含差错进行解析,所述发送控制部件只在通过所述差错解析部件确认为本方设备保存的DATA分组中没有差错时,才进行所述再发处理。
因此,具有在所述通信控制器具有作为功能机端控制器功能时,只在判别为接收DATA分组正确的情况下,才可进行对功能机装置的再发处理的效果。
此外,所述通信控制器为以下结构在从主机装置接收到PING分组时,所述发送控制部件对主机装置发送ACK分组。
因此,具有可对主机装置再次发送OUT分组和DATA分组的效果。
此外,所述通信控制器为以下结构具有差错解析部件,对从主机装置接收的DATA分组是否包含差错进行解析,在从主机装置接收PING分组时,所述发送控制部件在通过所述差错解析部件判断为接收的DATA分组差错时,或在从功能机端控制器接收与此前发送的DATA分组对应的ACK分组时,对主机装置发送ACK分组,在除此以外的情况下,对主机装置发送NAK分组。
因此,具有只在需要主机端控制器时,可对主机装置再次发送OUT分组和DATA分组,抑制因DATA分组造成的主机装置和主机端控制器间的通信路径的使用效率的下降的效果。
此外,所述通信控制器为以下结构所述通信控制器具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置端,还具有差错解析部件,对从主机端控制器接收的DATA分组是否包含差错进行解析;以及再发请求部件,在通过所述差错解析部件判断为接收的DATA分组差错时,向主机端控制器进行DATA分组的再发请求。
因此,具有在主机-功能机间的通信路径中,在DATA分组中产生差错时,功能机端控制器可对主机装置端通知该情况的效果。
此外,所述通信控制器为以下结构在从功能机端控制器接收到再发请求时,进行将与上次发送到功能机端控制器的DATA分组相同的DATA分组发送到功能机端控制器的再发处理。
因此,具有根据来自功能机端控制器的再发请求来进行来自主机端控制器的再发处理的效果。
此外,所述通信控制器为以下结构具有差错解析部件,对从主机装置接收的DATA分组是否包含差错进行解析,所述发送控制部件只在通过所述差错解析部件确认为本方设备保存的DATA分组中没有差错时,才进行所述再发处理。
因此,具有只在判别为接收DATA分组正确时,才可进行对功能机端控制器的再发处理的效果。
此外,所述通信控制器为以下结构在通过所述差错解析部件确认为本方设备保存的DATA分组中没有差错时,在向功能机端控制器发送的DATA分组的分组格式中,设立表示在该DATA分组中没有差错的标记。
因此,具有可将主机端控制器保存的DATA分组是否为可再发的分组的信息通知功能机装置端的效果。
此外,所述通信控制器为以下结构在从主机端控制器接收DATA分组,并通过所述差错解析部件检测出在该DATA分组中有差错时,表示所述主机端控制器保存的DATA分组中有无差错的标记设定在接收的DATA分组中,只在通过该标记确认为在主机端控制器侧中保存没有差错的DATA分组时,才进行所述再发处理。
因此,具有在判断为接收DATA分组中有差错时,可对主机端控制器进行再发请求的效果。
此外,所述通信控制器为以下结构从功能机端控制器接收再发请求,然后从主机装置接收到PING分组时,所述发送控制部件对主机装置发送ACK分组。
因此,具有在主机端控制器没有保存没有差错的DATA分组时,可使主机装置再次输出DATA分组的效果。
此外,所述通信控制器为以下结构在实行所述OUT事务处理之前,进行与通信对方端的通信控制器的传送速度调整。
因此,具有在主机-功能机间的通信路径中,实际的通信为可能的传送速度,并且可在必要以上设定不降低传送速度的传送速度的效果。
此外,所述通信控制器为以下结构在所述传送速度调整中,在判定为可按USB规格确定的传送速度进行通信时,发送到通信对方端的通信控制器的各分组不进行分组的发送定时控制,只进行调制解调并进行向对方端的通信控制器的传送。
因此,具有在判断为主机-功能机间的通信路径中的传送速度充分满足所述最大周转时间的情况下,可进行USB2.0的数据传送而不导致数据传送速度的下降的效果。
此外,所述通信控制器为以下结构在对与通信对方端的通信控制器之间的通信路径中的差错率进行解析,并判断为该差错率比预定的差错率差的情况下,进行所述传送速度调整并降低传送速度。
因此,具有在假如判断为主机-功能机间的通信路径中的质量差时,通过降低传送速度,可在质量良好的通信路径中进行数据传送的效果。
此外,所述通信控制器为以下结构在与通信对方端的通信控制器之间,进行全双工通信。
因此,具有在主机-功能机间的通信中,可没有半双工通信时所需的前置码,提高通信路径的使用效率的效果。
此外,所述通信控制器为以下结构与通信对方端的通信控制器之间的通信通过采用光纤的通信路径方式来进行。
因此,具有在主机-功能机间的通信中可长距离传输的效果。
此外,所述通信控制器为以下结构与通信对方端的通信控制器之间的通信通过采用电波的无线方式来进行,或者与通信对方端的通信控制器之间的通信通过采用光的空间传输方式来进行。
因此,具有在主机-功能机间的通信中因无电缆而提高便利性的效果。
此外,如以上那样,本发明的通信控制器具有作为功能机端控制器的功能,在作为USB上的数据通信来进行OUT事务处理时,将从主机装置发送的OUT分组和DATA分组传送到功能机装置端,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置,它为以下结构与主机装置的发送有关的传送速度比USB规格确定的传送速度低,与对功能机装置的发送有关的传送速度为USB规格确定的传送速度,在接收从主机装置端发送的OUT分组和DATA分组完成的时刻,开始向功能机装置传送该OUT分组和DATA分组。
此外,如以上那样,本发明的通信控制器具有作为功能机端控制器的功能,在作为USB上的数据通信来进行OUT事务处理时,将从主机装置发送的OUT分组和DATA分组传送到功能机装置端,并将作为与该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置,它为以下结构与主机装置的发送有关的传送速度比USB规格确定的传送速度低,与对功能机装置的发送有关的传送速度为USB规格确定的传送速度,具有数据量确认部件,确认将从主机端控制器接收的OUT分组和DATA分组存储在所述存储部件时的存储数据量,在通过所述数据量确认部件确认的接收数据量比预定的值多的时刻,所述发送控制部件开始向功能机装置发送OUT分组和DATA分组。
此外,所述通信控制器为以下结构在向功能机装置发送了DATA分组后,确认是否从功能机装置返回了与该DATA分组对应的ACK分组,在从发送DATA分组起的规定时间内,通过所述接收确认部件没有确认出接收ACK分组时,进行将与上次发送到功能机装置的分组相同的OUT分组和DATA分组发送到功能机装置的再发处理。
此外,所述通信控制器为以下结构对从主机端控制器接收的DATA分组是否包含差错进行解析,只在通过所述解析确认为本方设备保存的DATA分组中没有差错时,才进行所述再发处理。
此外,所述通信控制器为以下结构在对从主机装置端接收的DATA分组是否包含差错进行解析,通过所述解析,在判断为接收的DATA分组差错时,向主机端控制器进行DATA分组的再发请求。
此外,所述通信控制器为以下结构在从主机装置端接收DATA分组,并检测出在该DATA分组中有差错时,在接收的DATA分组中设立表示由所述功能机端控制器保存的DATA分组中有无差错的标记,只在通过该标记确认为主机端控制器端保存没有差错的DATA分组的情况下,才进行所述再发请求。
此外,如以上那样,本发明的通信系统包括通信控制器,具有作为所述记载的主机端控制器的功能;以及具有作为功能机端控制器功能的通信控制器,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将与作为该OUT分组和DATA分组对应的应答的信号交换分组传送到主机装置端。
此外,如以上那样,本发明的通信设备包括上述记载的通信控制器。
此外,如以上那样,本发明的通信方法如下确认接收来自主机装置的OUT分组和DATA分组,并在该时刻确认是否接收作为与该OUT分组和DATA分组对应的应答的信号交换分组,在接收了所述信号交换分组时,对应于接收的所述OUT分组和DATA分组,将该信号交换分组发送到主机装置,在没有接收所述信号交换分组时,向主机装置发送NAK分组。
此外,本发明的分组通信程序使计算机具有作为上述通信控制器的各部件的功能。通过将所述分组通信程序装载在计算机系统中,具有可向用户提供所述通信控制器的效果。
此外,本发明的记录介质用于记录所述分组通信程序。通过将记录于所述记录介质中的分组通信程序装载在计算机系统中,具有可向用户提供所述通信控制器的效果。
本发明的主机端控制器(本方主机端控制器)包括USB系统的主机,用于对主机和装置之间的通信进行中继,其特征在于包括主机端控制部件,在SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端,另一方面,在接收从装置端向主机发送的ACK分组时,存储该分组,同时在接收从主机向装置再发的SETUP分组和DATA分组时,将所述ACK分组发送到主机。
此外,主机端控制部在存储了从装置端接收的ACK分组后,不等待再发SETUP分组和DATA分组,将ACK分组传送到主机就可以。此外,也可以将主机端控制部进行设定,以在存储了从装置端接收的ACK分组后,避免对主机发送ACK分组。
此外,本方主机端控制器的主机端控制部最好是在将从主机发送的SETUP分组和DATA分组发送到装置端时,判断DATA分组中有无差错。而且,这种情况下,最好是设定主机端控制部,以在DATA分组中有差错时,避免发送该分组。
由此,由于可避免对装置端发送有差错的分组,所以可以防止发送无用的分组。再有,例如,上述那样的分组的差错,通过解析分组中添加的差错检测码(CRC)来进行。
此外,本发明的USB系统包括主机;装置;本方主机端控制器;以及装置端控制器,配置在装置中,对主机和装置之间的通信进行中继。
此外,在本方系统中,最好是装置端控制器包括装置端控制部。该装置端控制部在SETUP事务处理时,将从本方主机端控制器发送的SETUP分组和DATA分组发送到装置,另一方面将从装置发送的ACK分组发送到本方主机端控制器。
此外,也可以将该装置端控制部进行设定,以在从主机端控制器接收DATA分组并将其传送到装置时,在完全接收DATA分组后,开始传送。这是因为在控制器间的通信速度比装置端控制器和装置之间的通信速度慢时,防止在对装置的发送中产生遗漏。
此外,也可以设定装置端控制部,以在DATA分组的接收量超过稳定接收量时,开始对装置的DATA分组的传送。这里,稳定接收量是即使对装置开始DATA分组的传送,在发送上也不产生遗漏的接收量。也可以用该结构来防止上述的发送的遗漏。
此外,在本方系统中,装置端控制部在从本方主机端控制器接收的DATA分组中有差错时,最好是避免将该DATA分组传送到装置。由此,由于可避免对装置发送有差错的分组,所以可防止发送无用的分组。再有,如上述那样,分组的差错可通过对添加在分组中的差错检测码(CRC)进行解析等来进行。
此外,在该结构中,装置端控制部最好是在接收的分组中有差错时,废弃该分组。装置端控制部将接收的分组保存在装置端控制器内的存储器中,但如上所述,通过废弃有差错的分组,可避免无用地使用存储器的存储区。
此外,在SETUP事务处理中,有时装置接收SETUP和DATA分组失败。这是因为分组的差错或与发送接收有关的不良状况(故障)等。这样的情况下,装置不返回表示能够正常接收分组的ACK分组。
因此,最好是装置端控制部被设定,以在对装置发送SETUP分组和DATA分组后,在规定时间以内未能接收到ACK分组时,可对装置再发SETUP分组和DATA分组。
由此,不实行通过主机或主机端控制器来再发分组,只通过装置端控制器的动作,可向装置再发分组。
此外,这种情况下,装置端控制部最好在对装置再发SETUP分组和DATA分组前,判断DATA分组中有无差错。然后,进行设定,以在DATA分组中有差错时,避免再发DATA分组。由此,可以防止再发送无用的分组。
此外,最好是装置端控制部被设定,以在判断为从本方主机端控制器接收的DATA分组中有差错时,对本方主机端控制器请求再发DATA分组。而且,这种情况下,最好是设定本方主机端控制器的主机端控制部,以根据从装置端控制部接收的再发请求,再发DATA分组。由此,不等待来自主机的再发,就可以取得没有差错的合适的DATA分组。
此外,这种情况下,最好是设定主机端控制部,以只在具有没有差错的DATA分组时,再发该DATA分组。由此,可以防止再发无用的分组。
此外,最好是将该主机端控制部进行设定,以在从主机接收DATA分组并传送到装置端控制器时,在完全接收DATA分组后,才开始进行传送。这是因为在控制器间的通信速度比主机和本方主机端控制器之间的通信速度慢时,防止在对装置端控制器的发送中产生遗漏。
此外,也可以将主机端控制部进行设定,以在DATA分组的接收量超过稳定接收量时,从接收的部分起依次开始对装置端控制器的DATA分组的传送。这里,稳定接收量是即使对装置开始DATA分组的传送,在发送上也不产生遗漏的接收量。该结构也可防止上述的发送遗漏。
此外,这样的情况下,主机端控制部在完全结束接收DATA分组时,处于已经传送了一部分DATA分组的状态。此时,主机端控制部最好是检测该分组中有无差错,将表示检测结果的标记添加在DATA分组的末尾并发送到装置端控制器。
这种情况下,对于设立了表示有差错的标记(差错标记)的分组,装置端控制部可以判断为在从主机发送到本方主机端控制器的阶段已经产生差错。因此,装置端控制部最好是对于这样的分组不传送到装置,只将设立了表示没有差错的标记(无差错标记)的分组传送到装置。由此,可以避免发送无用的分组。
此外,在该结构中,装置端控制部在判断为从主机端控制器接收的DATA分组中有差错的情况下,在DATA分组中添加了无差错标记的情况下,最好是对本方主机端控制器请求再发DATA分组。然后,将主机端控制部进行设定,以根据从装置端控制部接收的再发请求,再发DATA分组。
即,在设立了无差错标记的DATA分组中有差错时,装置端控制部对于该分组,判断为在从主机发送到本方主机端控制器的阶段没有产生差错。因此,通过使本方主机端控制器再发DATA分组,不等待来自主机的再发,就可以取得没有差错的合适的DATA分组。
此外,在本方系统中,主机端控制器和装置端控制器最好包括设定两控制器间的通信速度的速度设定部。
此外,在该结构中,通过速度设定部,将控制器间的通信速度设定为大于或等于规定值的情况下,主机端控制部在接收到从装置端向主机发送的ACK分组时,最好将该分组传送到主机端。
这里,上述的规定值例如是将通常速度(符合USB规格的通常的速度;例如HS中的480Mbps)范围的来自装置的ACK分组在最大TA时间内可直接传送(重发)到主机的速度所对应的值。
即,在这样的情况下,即使不经由主机再发,在最大TA时间内,也可将从装置端控制器发送的ACK分组直接传送到主机的可能性大。因此,即使将从装置端控制器接收的ACK分组原封不动地传送(重发)到主机,主机端控制部也可完成SETUP事务处理。
此外,在本方系统中,在速度设定部设定通信速度后,主机端控制部和装置端控制部的至少一方(或速度设定部)最好是计算控制器中的分组发送接收中的差错率。这里,差错率是将差错的发生次数除以发送接收次数所得的值(差错发生率)。此外,这种情况下,速度设定部最好是在差错率大于或等于规定值的情况下,降低控制器间的通信速度。由此,可使因通信速度过高造成的差错率降低。
此外,在本方系统中,两控制器间的通信路径中的通信方式最好是全双工通信。由此,由于可没有在半双工通信中必要的前置码,所以提高控制器间的通信效率。
此外,在本方系统中,通过光缆(光纤)来形成两控制器间的通信路径就可以。由此,可进行分组的长距离传输。
此外,通过光无线通信或使用电波的无线通信来进行两控制器间的通信就可以。此外,在使用无线通信(空间通信)的情况下,由于无电缆,所以便利性(控制器的配置自由度等)提高。
如以上那样,本发明的通信控制器对主机和装置之间的通信进行中继,同时具有作为主机端的控制器的功能和作为装置端的控制器的功能,其特征在于包括控制部件,其在具有作为主机端的控制器的功能时,并且进行SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端,另一方面,在接收从装置端向主机发送的ACK分组时,存储该分组,同时在接收从主机向装置再发的SETUP分组和DATA分组时,将所述ACK分组发送到主机。
此外,本方通信控制器的控制部最好是在将从主机发送的SETUP分组和DATA分组发送到装置端时,判断DATA分组中有无差错。而且,这种情况下,控制部被设定,以在DATA分组中有差错时,避免发送该分组。
由此,由于可以避免对装置端发送有差错的分组,所以可以防止发送无用的分组。再有,例如,上述那样的分组的差错,通过解析分组中添加的差错检测码(CRC)来进行。
此外,该控制部被设定,以在从主机接收DATA分组并传送到装置端时,在完全接收DATA分组后,才开始进行传送。这是因为在控制器间的通信速度比主机和本方通信控制器之间的通信速度慢的情况下,防止在对装置端的发送上产生遗漏。
此外,控制部也可以被设定,以在DATA分组的接收量超过稳定接收量时,从接收的部分起依次开始对装置端的DATA分组的传送。这里,稳定接收量是即使对装置开始DATA分组的传送,在发送上也不产生遗漏的接收量。也可以用该结构来防止上述的发送的遗漏。
此外,这样的情况下,控制部在完全结束接收DATA分组时,处于已经传送了一部分DATA分组的状态。此时,控制部最好是检测该分组中有无差错,将表示检测结果的标记添加在DATA分组的末尾并发送到装置端。
这种情况下,对于设立了表示有差错的标记(差错标记)的分组,装置端可以判断为在从主机发送到本方主机端控制器的阶段已经产生差错。因此,装置端最好是对于这样的分组不传送到装置,只将设立了表示没有差错的标记(无差错标记)的分组传送到装置。由此,可以避免发送无用的分组。
此外,控制部在本方通信控制器具有作为装置端的控制器功能的情况下,在SETUP事务处理时,将从主机端发送的SETUP分组和DATA分组发送到装置,另一方面,将从装置发送的ACK分组发送到主机端。
此外,该控制部也可以被设定,以在从主机端接收DATA分组并传送到装置时,在完全接收DATA分组后,才开始进行传送。这是因为在本方通信控制器和主机端控制器之间的通信速度比本方通信控制器和装置之间的通信速度慢时,防止在对装置的发送中产生遗漏。
此外,控制部也可以被设定,以在本方通信控制器具有作为装置端的控制器功能时,在从主机端接收DATA分组并传送到装置时,在DATA分组的接收量超过稳定接收量时,才开始对装置的DATA分组的传送。这里,稳定接收量是即使对装置开始DATA分组的传送,在发送上也不产生遗漏的接收量。也可以用该结构来防止上述的发送的遗漏。
此外,控制部在本方通信控制器具有作为装置端的控制器功能时,在从主机端接收的DATA分组中有差错的情况下,最好是避免将该DATA分组传送到装置。由此,由于可避免对装置发送有差错的分组,所以可以防止发送无用的分组。再有,如上述那样,分组的差错通过解析分组中添加的差错检测码(CRC)等来进行。
此外,在该结构中,控制部最好是在接收的分组中有差错时废弃该分组。控制部将接收的分组保存在本方通信控制器内的存储器中,但如上述那样,通过废弃有差错的分组,来避免无效地使用存储器的存储区。
此外,在本方通信控制器具有作为装置端控制器功能的情况下,在SETUP事务处理中,有时装置接收SETUP和DATA分组失败。这是因为分组的差错或与发送接收有关的不良状况(故障)等。这样的情况下,装置不返回表示已正常接收分组的ACK分组。
因此,最好是控制部被设定,以在对装置发送SETUP分组和DATA分组后,在规定时间以内未能接收到ACK分组时,可对装置再发SETUP分组和DATA分组。
由此,不实行通过主机或主机端控制器来再发分组,只通过本方通信控制器的动作,可向装置再发分组。
此外,这种情况下,控制部最好在对装置再发SETUP分组和DATA分组前,判断DATA分组中有无差错。然后,进行设定,以在DATA分组中有差错时,避免再发DATA分组。由此,可以防止再发送无用的分组。
此外,本发明的分组通信方法(本发明通信方法),用于在USB系统中的主机和装置之间进行分组通信,其特征在于,该方法包括在SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端的分组发送步骤;避免将从装置端向主机发送的ACK分组传送到主机端的应答避免步骤;以及在从主机向装置再发SETUP分组和DATA分组时,将所述ACK分组发送到主机的应答步骤。
此外,本发明的分组通信程序是使USB系统的主机中配置的计算机执行本方通信方法的分组发送步骤、应答回避步骤、应答步骤的分组通信程序。
此外,通过将该程序记录在计算机可读取的记录介质上,可容易地进行程序的保存/流通。
本发明的详细的说明事项中形成的具体的实施方式或实施例毕竟用于使本发明的技术内容清楚,不是限于这样的具体例并被狭义地解释,在本发明的精神和权利要求书记载的范围内,可进行各种变更实施。
权利要求
1.一种通信控制器,具有作为主机端控制器的功能,在作为USB上的数据通信进行IN事务处理时,将从主机装置发送的IN分组传送到功能机装置端,并将对于该IN分组作为应答的DATA分组传送到主机装置,其特征在于,该通信控制器包括接收确认部,确认接收来自主机装置的IN分组;存储部,存储从功能机装置端发送来的DATA分组;数据存储确认部,在由所述接收确认部确认了接收来自主机装置的IN分组的时刻,确认在所述存储部中是否存储了DATA分组;以及发送控制部,在由所述数据存储确认部确认没有存储所述DATA分组时,将从主机装置接收的IN分组传送到功能机装置端,同时向主机装置发送NAK分组,而在由所述数据存储确认部确认存储了所述DATA分组时,将所述DATA分组发送到主机装置。
2.如权利要求1所述的通信控制器,其特征在于所述通信控制器还具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,在从主机装置端接收IN分组时保持该分组,在从主机装置端接收到发送到主机装置端的相对于DATA分组的ACK分组的情况下,将所述保持的IN分组发送到功能机装置,并在从功能机装置接收到相对于该IN分组的DATA分组的时刻,将ACK分组发送到功能机装置。
3.如权利要求1所述的通信控制器,其特征在于与来自主机装置的IN分组的接收和向主机装置的DATA分组的发送相关联的传送速度为USB规格中确定的传送速度,与IN分组的向功能机装置端的发送和来自功能机装置端的DATA分组的接收相关联的传送速度比USB规格中确定的传送速度低,而且,具有数据量确认部,确认将从功能机装置端接收的DATA分组存储在所述存储部时的存储数据量,所述发送控制部在所述数据量确认部确认的接收数据量比预定的值多的时刻,开始向主机装置发送DATA分组。
4.如权利要求1所述的通信控制器,其特征在于具有差错解析部,对从功能机装置端接收的DATA分组是否包含差错进行解析,所述发送控制部在通过所述差错解析部判断为接收的DATA分组有差错时,废弃该DATA分组,并不将其传送到主机装置。
5.如权利要求1所述的通信控制器,其特征在于具有差错解析部,对从功能机装置端接收的DATA分组是否包含差错进行解析,所述发送控制部在通过所述差错解析部判断为接收的DATA分组有差错时,在该时刻中止向主机装置发送DATA分组。
6.如权利要求1所述的通信控制器,其特征在于在将DATA分组发送到主机装置后,所述接收确认部确认与该DATA分组对应的ACK分组是否已从主机装置返回,在将DATA分组发送到主机装置后,通过所述接收确认部确认没有接收ACK分组,而确认接收了下一IN分组的情况下,所述发送控制部进行将与上次发送到主机装置的DATA分组相同的DATA分组发送到主机装置的再发处理。
7.如权利要求6所述的通信控制器,其特征在于具有差错解析部,对从功能机装置端接收的DATA分组是否包含差错进行解析,所述发送控制部只在通过所述差错解析部确认本方设备保存的DATA分组中没有差错的情况下,才进行所述再发处理。
8.如权利要求1所述的通信控制器,其特征在于,包括差错解析部,对从功能机装置端接收的DATA分组是否包含差错进行解析;以及再发请求部,在通过所述差错解析部判断为接收的DATA分组有差错的情况下,向功能机装置端进行DATA分组的再发请求。
9.如权利要求1所述的通信控制器,其特征在于所述通信控制器还具有作为功能端控制器的功能,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,在从主机端控制器接收到再发请求时,进行将与上次发送到主机端控制器的DATA分组相同的DATA分组发送到主机端控制器的再发处理。
10.如权利要求9所述的通信控制器,其特征在于具有差错解析部,对从功能机装置接收的DATA分组是否包含差错进行解析,所述发送控制部只在通过所述差错解析部确认为本方设备保存的DATA分组中没有差错的情况下,才进行所述再发处理。
11.如权利要求10所述的通信控制器,其特征在于在通过所述差错解析部确认为本方设备保存的DATA分组中没有差错时,在向主机装置发送的DATA分组的分组格式中,设立表示在该DATA分组中没有差错的标记。
12.如权利要求8所述的通信控制器,其特征在于在从功能机端控制器接收DATA分组、并通过所述差错解析部检测出在该DATA分组中有差错的情况下,在接收的DATA分组中设立表示由所述功能机端控制器保存的DATA分组中有无差错的标记,只在通过该标记确认为功能机装置端保存没有差错的DATA分组的情况下,才进行所述再发请求。
13.如权利要求1所述的通信控制器,其特征在于所述通信控制器还具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,在从主机端控制器接收到再发请求时,对功能机装置发送IN分组,并将相对于该发送所接收的DATA分组发送到主机端控制器。
14.如权利要求1所述的通信控制器,其特征在于在实行所述IN事务处理前,与通信对方端的通信控制器进行传送速度调整。
15.如权利要求14所述的通信控制器,其特征在于在所述传送速度调整中,在判断为可按USB规格中确定的传送速度进行通信的情况下,被发送到通信对方端的通信控制器的各分组不进行分组的发送定时控制,只进行调制解调并向对方端的通信控制器传送。
16.如权利要求14所述的通信控制器,其特征在于对与通信对方端的通信控制器之间的通信路径中的差错率进行解析,并在判断为该差错率比预定的差错率差的情况下,进行所述传送速度调整并降低传送速度。
17.如权利要求1至16任何一项所述的通信控制器,其特征在于在与通信对方端的通信控制器之间,进行全双工通信。
18.如权利要求1至16任何一项所述的通信控制器,其特征在于与通信对方端的通信控制器之间的通信通过使用光纤的通信路径方式来进行。
19.如权利要求1至16任何一项所述的通信控制器,其特征在于与通信对方端的通信控制器之间的通信通过使用电波的无线方式来进行。
20.如权利要求1至16任何一项所述的通信控制器,其特征在于与通信对方端的通信控制器之间的通信通过使用光的空间传输方式来进行。
21.一种通信控制器,具有作为功能机端控制器的功能,在作为USB上的数据通信来进行IN事务处理时,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,其特征在于在从主机装置端接收到IN分组时保存该分组,在从主机装置端接收到与发送到主机装置端的DATA分组对应的ACK分组的情况下,将所述保存的IN分组发送到USB功能机,并在从功能机装置接收到对于该IN分组的DATA分组时刻,将ACK分组发送到功能机装置。
22.一种通信控制器,具有作为功能机端控制器的功能,在作为USB上的数据通信来进行IN事务处理时,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,其特征在于在从主机端控制器接收到再发请求时,进行将与上次发送到主机端控制器的DATA分组相同的DATA分组发送到主机端控制器的再发处理。
23.如权利要求22所述的通信控制器,其特征在于对从功能机装置接收的DATA分组是否包含差错进行解析,只在通过所述解析确认为设备自身保存的DATA分组中没有差错的情况下,才进行所述再发处理。
24.如权利要求23所述的通信控制器,其特征在于在通过所述解析确认为本方设备保存的DATA分组中没有差错的情况下,在向主机装置发送的DATA分组的分组格式中,设立表示在该DATA分组中没有差错的标记。
25.一种通信控制器,具有作为功能机端控制器的功能,在作为USB上的数据通信来进行IN事务处理时,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端,其特征在于在从主机端控制器接收到再发请求时,对功能机装置发送IN分组,并将与此对应接收的DATA分组发送到主机端控制器。
26.一种通信系统,其特征在于,包括上述权利要求1、3、4、5、6、7、8、12、14、15、16任何一项所述的具有作为主机端控制器功能的通信控制器;以及具有作为功能机端控制器功能的通信控制器,将从主机装置端发送的USB规格的IN分组传送到功能机装置,并将作为对于该IN分组的应答的DATA分组传送到主机装置端。
27.一种通信设备,包括权利要求1至16、以及21至25任何一项所述的通信控制器。
28.一种通信方法,其特征在于确认接收来自主机装置的IN分组,并在该时刻确认是否接收作为对于该IN分组的应答的DATA分组,在接收所述DATA分组的情况下,对于接收的所述IN分组,将该DATA分组发送到主机装置,在没有接收所述DATA分组的情况下,将接收的所述IN分组传送到功能机装置端,同时向主机装置发送NAK分组。
29.一种通信控制器,具有作为主机端控制器的功能,在作为USB上的数据通信来进行OUT事务处理时,将从主机装置发送的OUT分组和DATA分组传送到功能机装置端,并将作为对于该OUT分组和DATA分组的应答的信号交换分组传送到主机装置,其特征在于,该通信控制器包括接收确认部,确认接收来自主机装置的OUT分组和DATA分组;存储部,存储从功能机装置侧发送来的信号交换分组;存储确认部,在通过所述接收确认部确认了接收来自主机装置的OUT分组和DATA分组的时刻,确认在所述存储部中是否存储了信号交换分组;以及发送控制部,在通过所述存储确认部确认为没有存储所述信号交换分组时,向主机装置发送NAK分组,而在通过所述存储确认部确认为存储了信号交换分组时,向主机装置发送该信号交换分组。
30.如权利要求29所述的通信控制器,其特征在于所述通信控制器具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为对于该OUT分组和DATA分组的应答的信号交换分组传送到主机装置端,与接收来自主机端控制器的OUT分组和DATA分组及发送到主机端控制器的信号交换分组有关的传送速度比USB规格确定的传送速度低,与对功能机装置发送OUT分组和DATA分组的及接收来自功能机装置的信号交换分组有关的传送速度为USB规格确定的传送速度,而且,具有数据量确认部,确认将从主机端控制器接收的OUT分组和DATA分组存储在所述存储部时的存储数据量,所述发送控制部在通过所述数据量确认部确认的接收数据量比预定的值多的时刻,开始向功能机装置发送OUT分组和DATA分组。
31.如权利要求29所述的通信控制器,其特征在于所述通信控制器具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为对于该OUT分组和DATA分组的应答的信号交换分组传送到主机装置端,还具有差错解析部,对从主机端控制器接收的DATA分组是否包含差错进行解析,在通过所述差错解析部判断为接收的DATA分组有差错时,所述发送控制部废弃该DATA分组,并不将其传送到功能机装置。
32.如权利要求29所述的通信控制器,其特征在于具有差错解析部,对从主机装置接收的DATA分组是否包含差错进行解析,在通过所述差错解析部判断为接收的DATA分组有差错时,所述发送控制部在该时刻中止向功能机端控制器发送DATA分组。
33.如权利要求29所述的通信控制器,其特征在于所述通信控制器具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为对于该OUT分组和DATA分组的应答的信号交换分组传送到主机装置端,在向功能机装置发送DATA分组后,所述接收确认部确认与该DATA分组对应的ACK分组是否已从功能机装置返回,在向功能机装置发送DATA分组后,在规定时间内通过所述接收确认部没有确认出接收ACK分组时,所述发送控制部进行将与上次发送到功能机装置的分组相同的OUT分组和DATA分组发送到功能机装置的再发处理。
34.如权利要求33所述的通信控制器,其特征在于具有差错解析部,对从主机端控制器接收的DATA分组是否包含差错进行解析,所述发送控制部只在通过所述差错解析部确认为本方设备保存的DATA分组中没有差错时,才进行所述再发处理。
35.如权利要求29所述的通信控制器,其特征在于在从主机装置接收到PING分组时,所述发送控制部对主机装置发送ACK分组。
36.如权利要求29所述的通信控制器,其特征在于具有差错解析部,对从主机装置接收的DATA分组是否包含差错进行解析,在从主机装置接收了PING分组时,所述发送控制部在通过所述差错解析部判断为接收的DATA分组有差错时,或在从功能机端控制器接收与此前发送的DATA分组对应的ACK分组时,对主机装置发送ACK分组,在除此以外的情况下,对主机装置发送NAK分组。
37.如权利要求29所述的通信控制器,其特征在于所述通信控制器具有作为功能机端控制器的功能,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为对于该OUT分组和DATA分组的应答的信号交换分组传送到主机装置端,还具有差错解析部,对从主机端控制器接收的DATA分组是否包含差错进行解析;以及再发请求部,在通过所述差错解析部判断为接收的DATA分组有差错时,向主机端控制器进行DATA分组的再发请求。
38.如权利要求29所述的通信控制器,其特征在于在从功能机端控制器接收到再发请求时,进行将与上次发送到功能机端控制器的DATA分组相同的DATA分组发送到功能机端控制器的再发处理。
39.如权利要求38所述的通信控制器,其特征在于具有差错解析部,对从主机装置接收的DATA分组是否包含差错进行解析,所述发送控制部只在通过所述差错解析部确认为本方设备保存的DATA分组中没有差错时,才进行所述再发处理。
40.如权利要求39所述的通信控制器,其特征在于在通过所述差错解析部确认为本方设备保存的DATA分组中没有差错时,在向功能机端控制器发送的DATA分组的分组格式中,设立表示在该DATA分组中没有差错的标记。
41.如权利要求37所述的通信控制器,其特征在于在从主机端控制器接收DATA分组,并通过所述差错解析部检测出在该DATA分组中有差错时,将表示所述主机端控制器保存的DATA分组中有无差错的标记设定在接收的DATA分组中,只在通过该标记确认为在主机端控制器侧中保存没有差错的DATA分组时,才进行所述再发处理。
42.如权利要求29所述的通信控制器,其特征在于从功能机端控制器接收再发请求,然后从主机装置接收到PING分组时,所述发送控制部对主机装置发送ACK分组。
43.如权利要求29所述的通信控制器,其特征在于在实行所述OUT事务处理之前,与通信对方端的通信控制器进行传送速度调整。
44.如权利要求43所述的通信控制器,其特征在于在所述传送速度调整中,在判定为可按USB规格确定的传送速度进行通信时,发送到通信对方端的通信控制器的各分组不进行分组的发送定时控制,只进行调制解调并进行向对方端的通信控制器的传送。
45.如权利要求43所述的通信控制器,其特征在于在对与通信对方端的通信控制器之间的通信路径中的差错率进行解析、并判断为该差错率比预定的差错率差的情况下,进行所述传送速度调整并降低传送速度。
46.如权利要求29至45任何一项所述的通信控制器,其特征在于在与通信对方端的通信控制器之间,进行全双工通信。
47.如权利要求29至45任何一项所述的通信控制器,其特征在于与通信对方端的通信控制器之间的通信通过采用光纤的通信路径方式来进行。
48.如权利要求29至45任何一项所述的通信控制器,其特征在于与通信对方端的通信控制器之间的通信通过采用电波的无线方式来进行。
49.如权利要求29至45任何一项所述的通信控制器,其特征在于与通信对方端的通信控制器之间的通信通过采用光的空间传输方式来进行。
50.一种通信控制器,具有作为功能机端控制器的功能,在作为USB上的数据通信来进行OUT事务处理时,将从主机装置发送的USB规格的OUT分组和DATA分组传送到功能机装置端,并将作为对于该OUT分组和DATA分组的应答的信号交换分组传送到主机装置,其特征在于与主机装置端的发送有关的传送速度比USB规格确定的传送速度低,与对功能机装置的发送有关的传送速度为USB规格确定的传送速度,在接收从主机装置端发送的OUT分组和DATA分组完成的时刻,开始向功能机装置传送该OUT分组和DATA分组。
51.一种通信控制器,具有作为功能机端控制器的功能,在作为USB上的数据通信来进行OUT事务处理时,将从主机装置发送的USB规格的OUT分组和DATA分组传送到功能机装置端,并将作为对于该OUT分组和DATA分组的应答的信号交换分组传送到主机装置,其特征在于与主机装置端的发送有关的传送速度比USB规格确定的传送速度低,与对功能机装置的发送有关的传送速度为USB规格确定的传送速度,具有数据量确认部,确认将从主机端控制器接收的OUT分组和DATA分组存储在所述存储部时的存储数据量,在通过所述数据量确认部确认的接收数据量比预定的值多的时刻,所述发送控制部开始向功能机装置发送OUT分组和DATA分组。
52.如权利要求50或51所述的通信控制器,其特征在于在向功能机装置发送了DATA分组后,确认是否从功能机装置返回与该DATA分组对应的ACK分组,在从发送DATA分组起的规定时间内,通过所述接收确认部没有确认出接收ACK分组时,进行将与上次发送到功能机装置的分组相同的OUT分组和DATA分组发送到功能机装置的再发处理。
53.如权利要求52所述的通信控制器,其特征在于对从主机端控制器接收的DATA分组是否包含差错进行解析,只在通过所述解析确认为本方设备保存的DATA分组中没有差错时,才进行所述再发处理。
54.如权利要求50或51所述的通信控制器,其特征在于在对从主机装置端接收的DATA分组是否包含差错进行解析,通过所述解析,在判断为接收的DATA分组有差错时,向主机端控制器进行DATA分组的再发请求。
55.如权利要求54所述的通信控制器,其特征在于在从主机装置端接收DATA分组,并检测出在该DATA分组中有差错时,在接收的DATA分组中设立表示由所述功能机端控制器保存的DATA分组中有无差错的标记,只在通过该标记确认为主机端控制器端保存没有差错的DATA分组的情况下,才进行所述再发请求。
56.一种通信系统,其特征在于,包括通信控制器,具有作为上述权利要求29、32、35、36、38、39、40、以及42任何一项所述的主机端控制器的功能;以及具有作为功能机端控制器功能的通信控制器,将从主机装置端发送的USB规格的OUT分组和DATA分组传送到功能机装置,并将作为对于该OUT分组和DATA分组的应答的信号交换分组传送到主机装置端。
57.一种通信设备,包括权利要求29至45、50和51任何一项所述的通信控制器。
58.一种通信方法,其特征在于确认接收来自主机装置的OUT分组和DATA分组,并在该时刻确认是否接收了作为对于该OUT分组和DATA分组的应答的信号交换分组,在接收了所述信号交换分组时,对应于接收的所述OUT分组和DATA分组,将该信号交换分组发送到主机装置,在没有接收所述信号交换分组时,向主机装置发送NAK分组。
59.一种主机端控制器,包括USB系统的主机,用于对主机和装置之间的通信进行中继,其特征在于包括主机端控制部,其中在SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端,另一方面,在接收了从装置端向主机发送的ACK分组时,存储该分组,同时在接收了从主机向装置再发的SETUP分组和DATA分组时,将所述ACK分组发送到主机。
60.如权利要求59所述的主机端控制器,其特征在于对所述主机端控制部进行设定,以在将从主机发送的SETUP分组和DATA分组发送到装置端时,判断DATA分组中有无差错,在有差错的情况下,避免发送该DATA分组。
61.一种USB系统,包括主机;装置;权利要求59所述的主机端控制器;以及装置端控制器,配置在装置中,对主机和装置之间的通信进行中继。
62.如权利要求61所述的USB系统,其特征在于所述装置端控制器包括装置端控制部,将从主机端控制器发送的SETUP分组和DATA分组发送到装置,另一方面将从装置发送的ACK分组发送到主机端控制器。
63.如权利要求62所述的USB系统,其特征在于对所述装置端控制部进行设定,以在从主机端控制器接收DATA分组并将其传送到装置时,在DATA分组的接收量超过稳定接收量时,开始对装置传送DATA分组。
64.如权利要求62所述的USB系统,其特征在于对所述装置端控制部进行设定,以在从主机端控制器接收的DATA分组中有差错的情况下,避免将该DATA分组传送到装置。
65.如权利要求62所述的USB系统,其特征在于对所述装置端控制部进行设定,以在对装置发送SETUP分组和DATA分组后,不能在规定时间以内接收ACK分组时,对装置再发SETUP分组和DATA分组。
66.如权利要求65所述的USB系统,其特征在于对所述装置端控制部进行设定,以在对装置再发SETUP分组和DATA分组之前,判断DATA分组中有无差错,在有差错的情况下,避免所述再发。
67.如权利要求62所述的USB系统,其特征在于在判断为从主机端控制器接收的DATA分组有差错的情况下,所述装置端控制部对主机端控制器请求再发DATA分组,对所述主机端控制部进行设定,以根据从装置端控制部接受的再发请求,再发DATA分组。
68.如权利要求67所述的USB系统,其特征在于所述主机端控制部只在具有无差错的DATA分组的情况下,再发该DATA分组。
69.如权利要求62所述的USB系统,其特征在于所述主机端控制部将从主机发送的DATA分组从接收的部分起依次发送到装置端控制器,同时在完全接收到DATA分组时,检测该分组中有无差错,将表示检测结果的标记添加在DATA分组的末尾,并将其发送到装置端控制器。
70.如权利要求68所述的USB系统,其特征在于所述装置端控制部在判断为从主机端控制器接收的DATA分组中有差错时,并在添加了表示DATA分组中没有差错的标记时,对主机端控制器请求再发DATA分组,对所述主机端控制部进行设定,以根据从装置端控制部接受的再发请求,再发DATA分组。
71.如权利要求62所述的USB系统,其特征在于所述主机端控制器和装置端控制器包括设定两控制器间的通信速度的速度设定部。
72.如权利要求71所述的USB系统,其特征在于在通过所述速度设定部将控制器间的通信速度设定得大于或等于规定值的情况下,主机端控制部在接收了从装置端向主机发送的ACK分组时,将该分组传送到主机端。
73.如权利要求71所述的USB系统,其特征在于所述主机端控制部和装置端控制部的至少一方计算两控制器间的分组的发送接收中的差错率,在该差错率大于或等于规定值时,所述速度设定部使控制器间的通信速度降低。
74.如权利要求62所述的USB系统,其特征在于所述两控制器间的通信路径中的通信方式为全双工通信。
75.如权利要求62所述的USB系统,其特征在于所述两控制器间的通信路径通过光缆方式形成。
76.如权利要求62所述的USB系统,其特征在于所述两控制器间的通信通过光无线通信方式进行。
77.如权利要求62所述的USB系统,其特征在于所述两控制器间的通信通过采用电波的无线通信方式进行。
78.一种通信控制器,对主机和装置之间的通信进行中继,同时具有作为主机端的控制器的功能和作为装置端的控制器的功能,其特征在于包括控制部,其在具有作为主机端的控制器的功能时,并且进行SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端,另一方面,在接收了从装置端向主机发送的ACK分组时,存储该分组,同时在接收了从主机向装置再发的SETUP分组和DATA分组时,将所述ACK分组发送到主机。
79.如权利要求78所述的通信控制器,其特征在于所述控制部被设定,以在将从主机发送的SETUP分组和DATA分组发送到装置端时,判断DATA分组中有无差错,在有差错的情况下,避免发送该DATA分组。
80.如权利要求78所述的通信控制器,其特征在于所述控制部将从主机发送的DATA分组从接收的部分起依次发送到装置端,同时在完全接收了DATA分组时,检测该分组中有无差错,将表示检测结果的标记添加在DATA分组的末尾并将其发送到装置端。
81.如权利要求78所述的通信控制器,其特征在于在具有作为装置端的控制器功能的情况下,并且在进行SETUP事务处理时,所述控制部将从主机端发送的SETUP分组和DATA分组发送到装置,另一方面,将从装置发送的ACK分组发送到主机端。
82.如权利要求81所述的通信控制器,其特征在于所述控制部被设定,以在从主机端接收DATA分组并将其传送到装置时,在DATA分组的接收量超过稳定接收量时,开始传送对于装置的DATA分组。
83.如权利要求81所述的通信控制器,其特征在于所述控制部被设定,以在从主机端接收的DATA分组中有差错的情况下,避免将该DATA分组传送到装置。
84.如权利要求81所述的通信控制器,其特征在于所述控制部被设定,以在对装置发送SETUP分组和DATA分组后,不能在规定时间以内接收ACK分组时,可对装置再发SETUP分组和DATA分组。
85.如权利要求84所述的通信控制器,其特征在于所述控制部被设定,以在对装置再发SETUP分组和DATA分组之前,判断DATA分组中有无差错,在有差错的情况下,避免所述再发。
86.一种分组通信方法,用于在USB系统中的主机和装置之间进行分组通信,其特征在于,该方法包括在SETUP事务处理时,将从主机发送的SETUP分组和DATA分组发送到装置端的分组发送步骤;避免将从装置端向主机发送的ACK分组传送到主机端的应答避免步骤;以及在从主机向装置再发SETUP分组和DATA分组时,将所述ACK分组发送到主机的应答步骤。
全文摘要
本发明的发送接收系统在主机端控制器中确认接收来自USB主机的IN分组后,将该IN分组传送到功能机端控制器,从功能机端接收DATA分组。接收的DATA分组用FIFO临时存储,在从USB主机再次接收到IN分组的时刻,向USB主机发送FIFO中存储的DATA分组。
文档编号G06F13/42GK1604562SQ20041001202
公开日2005年4月6日 申请日期2004年9月28日 优先权日2003年9月29日
发明者深江文博, 直江仁志, 酒井宏仁, 大泽升平 申请人:夏普株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1