这样一种总线系统在USB规范中被加以公开。该USB规定是由一组公司颁布的,包括Compaq Computer Corporation,Hewlett-PackardCompany,Intel Corporation,Lucent Technologies Inc,MicrosoftCorporation,NEC Corporation,and Koninklijke PhilipsElectronics N.V.。下面将对有助于完全理解本发明的USB的各个方面加以说明。有关USB的进一步的背景信息可以参照USB规范的2.0版本。
USB是一种标准的总线,设计用于支持个人计算机和多种外围设备,如Webcam,打印机,扫描仪,话筒以及键盘之间的数据交换。因此,该USB取代了诸如RS-232C串行端口,并行端口和PS/2接口的现有接口。USB的进一步开发,就如在USB On-The-Go(USB OTG)中那样,瞄准用另外的装置取代这种个人计算机的一种总线系统。
在像USB系统的总线系统中,电子总线站往总线相互连接。通常一个总线站包括用于处理或发生数据以及控制该数据流动的处理器或计算系统。USB站定义为主机(如个人计算机)和设备(外围设备)。一般而言,在任何USB系统中只有一台主机。主机中的USB接口也叫做主机控制器。主机控制器可以用硬件,固件或软件之组合实现。USB设备定义为集线器,它提供另外的附着点或功能,因而为系统提供能力。集线器指明一种USB设备的附着或移去。主机判断新附着的USB设备是集线器还是功能,并将一唯一的USB地址赋给该USB设备。所有的USB设备都是用一唯一的USB地址访问。每一设备还额外支持一个或多个可用以和主机通信的端点。以下的说明将限于定义为功能的USB设备。
该USB是一种轮询总线。主机控制器指明所有的数据传输。多数总线交易牵涉到高至3个包的传送。每次交易始于主机控制器按计划发送一USB包以说明该交易的类型和方向,该USB设备的地址以及端点号。这种包叫做“令牌数据分组”。被寻址的该USB设备通过将合适的地址域译码选择其自身。在一给定的交易中,数据的传输既可以从主机至设备,也可以从设备至主机。数据传输的方向是在令牌包内加以规定的。然后该交易源将一数据送出或者指明没有数据要传输。一般而言,其终点将以一交换包作为回应,指明该次传输是否成功。
USB结构包括三种基本的数据传输类型:(1)等时传输:在主机和设备之间周期性的连续通信,典型地用于时间关联信息,这种传输类型占用具有预先商定等待时间的USB频宽的预先商定量;(2)中断传输:低频,有界等待时间的通信,典型地用于诸如字符的非同步数据或带有人的感觉回波或反馈响应特性的坐标,和;(3)批量传输:非周期的,大包突发性通信,典型地用于可以使用任何可用带宽和也可以延迟至有带宽可供使用的数据。
通常两种类型的总线站,主机和设备,包括处理器或计算系统,用于处理或发生数据,或控制数据的流动,或二者兼有。
如上面所述的USB系统的直接实现可能导致通信中的明显的定时问题,这一方面发生在该主机处理器和总线接口之间,另一方面是在主机的总线接口和设备之间。对于非同步传输尤以如此。在这些传输中,涉及实时数据,主机周期性地向USB设备发送令牌包,在每一令牌包之后是一个数据分组的传输,即可以是从主机到USB设备,也可以是从设备到主机。由于数据的实时性质,主机处理器和主机的总线接口之间的通信必须同主机总线接口和USB设备之间的通信一致,否则数据将会丢失。
美国专利6145045,尽管是专注于USB设备非同步传输期间的通信定时问题,但对上述问题却提供了部分解决方案。该专利公共了一种总线站,这种总线站包括一总线接口,1个处理器,1个第一缓冲器,一个第二缓冲器。在第一(微)帧期间,该处理器同第一缓冲器通信(如读或写数据),而总线和第二缓冲器及第一缓冲器通信以便将数据从第二缓冲器发送至第二站或将来自第二站的数据写入第二缓冲器。在随第一(微)帧之后的第二(微)帧期间,处理器同第二缓冲器通信(如读或写数据),而总线和第一缓冲器及第一站通信以便将来自第二缓冲器的数据发送到第二站或将从第二站接收到的数据写入第一缓冲器。通常,总线接口中断该处理器以通知处理器它应当将新的信息写入缓冲器之一或者从缓冲器之一读出信息。
通常对于USB系统,特别是USB OTG系统,总线站中的总线接口,例如主机,最好是能和大多处理器及计算系统兼容。但是,有多种处理器有着相当长的中断响应时间而不适合,如果将它们用于总线站,如主机,可能导致数据的丢失或不可靠。
本发明的目标之一是增大处理器和包括第一站和第二站的总线系统的第一站内的总线接口之间的通信定时灵活性。
为此,本发明提供一种如本文开头所规定的总线系统,其特征为
所说的第一站包括可中断处理器,包括缓冲器的存储器元件,和总线接口。
其中所说的可中断处理器可以操作从发生多串消息属性;
其中所说的处理器可以进一步操作以从该多串消息属性中将第一串消息属性发送给所说的缓冲器,并且根据从所说总线接口收到的中断信号从该多串消息属性中发送第二串消息属性;
其中所说的缓冲器具有该处理器可加以调整的存储容量使之适合储存该消息属性的第一串和该消息属性的第二串。
其中所说的总线接口可以操作以从所说的缓冲器提取第一串消息属性,从该消息属性发生该消息属性的第一串,将该第一串消息送至第二站和将中断信号送至所说的处理器。
在操作中,第一站内的处理器需要按实时基准向第二站提供信息。为此目的,该处理器需要向所说的总线接口提供该消息属性。该总线接口从所说的消息属性发生一消息,然后将它送至第二站。
在常规途径中,该总线接口将第一消息送至该总线接口或送至与该总线接口相关的缓冲器。然后,如有必要,该总线接口将从该缓冲器提取第一消息属性,从该第一消息属性发生第一消息,并将该第一消息送至所说的第二站。在该总线接口需要第二消息属性时,它送出一中断信号至该处理器。此后,该处理器通过将第二消息属性发送至缓冲器或总线接口而对其响应。最后,如有必要,总线接口将从缓冲器提取该第二消息属性,从该第二消息属性发生第二消息,并将该第二消息送至第二站。
如果在发送中断信号至处理器和发送第二消息属性之间存在有长的等待时间,换言之,如果该处理器有着长的中断响应时间,则这种等待势将导致所说的消息属性过晚到达总线接口,结果使数据丢失或不可靠。这样一种处理器不可能很适合用于这种总线系统之内。因此由于对严格的中断响应时间的要求,常规途径限制了对处理器的选择。
在从总线接口收到中断信号之后允许处理器提前发生一串消息属性而不是单个消息的消息属性,该处理器有着充分的时间给以响应,因而具有消除长的中断响应时间的优点。通过让处理器调节所说的缓冲器的存储容量至其自身的需要,该总线接口可以同多种处理器兼容并确保该缓冲器的存储容量不会无端地选择过大。其结果是,只要可能,用于储存短串消息属性,或者刚好是该消息之一的消息属性的是具有小存储容量的缓冲器,而在需要时,用于储存较大消息串的是具有大存储容量的缓冲器。这样就增大了处理器和总线系统的第一站内的总线接口之间的通信定时的灵活性。
作为实例,处理器可能具有关于到达第二站的数据品质的信息,例如包括有被探测到的差错号。如果该品质劣于某一水准,该处理器可以决定增大缓冲器的存储容量。而且,如仅要求小存储容量的缓冲器,则可以将更多的空间分配给所说的存储器元件内用于其它目的的其它缓冲器。
根据本发明的这种总线系统的一种实施分案其特征如下
所说的存储元件包括用于储存第一串消息属性的第一缓冲器和用于储存第二串消息属性的第二缓冲器;和
所说的总线接口可以操作以从该第一缓冲器提取第一串消息属性,而所说的处理器将该第二串消息属性发送至第二缓冲器。
在这种实施方案的运作中,在该处理器,经由总线接口,至第二站之间的通信中不存在直接的链接。根据该处理器和第一缓冲器之间的链接的定时该第一串消息属性被送往第一缓冲器。在此之后,根据该处理器和第二缓冲器之间的链接的定时该第二串消息属性被送往第二缓冲器。同时,所说的缓冲器定期将消息送至第二站,该消息是从储存在第一缓冲器内的第一串消息属性发生的。对该处理器和第二缓冲器之间的该链接的定时的唯一限制是第二串消息属性的传输应当是在该总线接口需要从该第二串消息属性中提取消息属性时完成。
根据本发明的该总线系统的一种进一步实施方案的特征为该消息属性包括定时信息和有效负载,如合适的话。在这种方式中,该总线接口决定所说消息的正确定时而不要处理器干预的能力得以增大。而且,在消息属性中,包括可能包含有实时数据的有效负载简化了处理器和总线接口之间的通信,因为在两者之间无需另外的通信链接用于支持所说的有效负载。也不要求该总线接口将正确的实时数据分配给正确的消息的额外的处理。
根据本发明的一种进一步实施方案其特征为
该总线接口可以操作于周期性地从第二站接收有着数据项的消息;
该总线接口可以进一步操作以从所接收的消息提取该数据项,从所接收的消息提取定时信息,将该定时信息同来自储存在所说的缓冲器中的第一串消息属性的该消息属性的定时信息进行比较,并且当所提取的定时信息与储存在缓冲器中的第一串消息属性的该消息属性的定时信息相匹配时,将所提取的数据项添加到所说的有效负载。
所说的处理器可以操作以根据来自总线接口的进一步中断信号从来自储存在缓冲器中的第一串消息属性的消息属性中提取该有效负载。
这种实施方案在处理器要求来自第二站的定时数据时简化了该处理器和总线接口之间的通信。在这种情况下,该处理器优选发送消息属性串而无实际的有效负载。但是,在所说的缓冲器之内,该消息属性串的储存就如同该消息属性包含有效负载一样。在这种方式中,有预留的空间以便将有效负载添加到所说的消息属性。所说的有效负载是通过所说的总线接口添加的。该总线接口从所收到的消息提取定时信息并且将该定时信息同所说的消息属性中的定时信息加以比较。如果发现它是相符合的,则总线接口将该提取的数据项作为有效负载添加到该消息属性。然后处理器提取该消息属性的有效负载。该处理器在从总线接口收到进一步的中断信号之后优选提取有效负载。因此为实现从第二站至处理器的实时传输并无额外的要求。
根据本发明,在本文第二段说明中所定义的总线接口的特征为
该总线接口包括控制器和包括有缓冲器的存储器元件,
其中所说的缓冲器具有的存储容量可由处理器加以调节并适合于储存来自处理器接收到的多串消息属性的第一串消息属性和在已经收到经由所说的中断输出的中断信号之后从该处理器收到的多串消息属性的第二串消息属性;
其中所说的控制器可以操作以从所说的缓冲器提取第一串消息属性,从该第一串消息属性发生第一串消息属性,将该第一串消息属性送往用于所说总线的连接,并将所说的中断信号送往处理器。
根据本发明的该总线接口的一种实施方案其特征为
该总线接口包括进一步的缓冲器;
该缓冲器可以操作以从处理器接收存储容量控制项;和
该控制器可以操作以从所说的进一步的缓冲器提取存储容量控制项,根据包含在该存储容量控制项内的信息,该控制器可以操作以调节所说的存储容量。
这种实施方案简化了处理器和总线接口之间的通信。该处理器通知总线接口它所要求的存储容量。该总线接口对所说的存储容量做出实际的调节。例如,如果该处理器探测出到达第二站的该实时数据的品质已经下降到低于某一水准时,这样的调节甚至可以在操作期间进行。
本发明的所有这些和其它方面可以从对下面实施方案所做的说明变得更为清晰。
图1展示在USB规范的2.0版本中规定的等时交易格式。在USB内,所有USB通信都是由主机起始的。所有的USB设备用唯一的USB地址访问。每一设备还额外支持主机可以与之通信的一个或多个端点。
该USB支持功能数据和控制该USB主机和USB设备之间的交换。USB数据的传输发生在主机软件和USB设备上的一特殊端点之间。该USB结构了解三种基本的传输类型:
等时传输:等时的或流式实时数据,它有着预先商定的等待时间占用预先商定的USB带宽大小;
中断传输:非同步交互式数据,诸如有着人感觉回波或反馈响应特性的字符或坐标,和;
批量传输:非同步块传输数据,它以相对大的和突发性量发生和使用并具有宽广的动态范围及传输约束。
如果没有交易进行,USB系统处于怠机方式101。包括数据传输的等时总线交易涉及到二个级,设置级102和数据级103。包括数据传输的等时总线交易涉及二个不同包的传输,例如,令牌包104,105和数据分组106,107。等时交易不支持交换包传输或重试能力的状态相位。
等时交易可以由IN传输或OUT传输组成。在IN传输情形下,USB主机通过发送一IN令牌104开始其交易。在收到IN令牌104之后,USB设备将以数据分组106的方式将数据返回。如果,例如,由于总线差错,USB设备没有收到IN令牌104或者消息不可靠,该USB设备将不返回数据分组106。这种情况用图中的线108表明。在完成IN传输之后,USB系统返回到怠机状态101。
在OUT传输情形下,USB主机通过发送OUT令牌105开始其交易。该USB主机随后用数据分组107发送数据。在完成OUT传输之后,USB系统返回至怠机状态101。
图2是显示按本发明的一种总线系统的方框图。该总线系统201包括承担USB主机角色的第一站202,以及作为USB设备的第二站203和204。站202,203和204通过总线连接205相连。图中对第一站202的展示更为详细。第一站202包括可中断处理器206和总线接口207。该总线接口包括存储器元件208和控制器209,而存储器元件208又包括第一缓冲器和第二缓冲器。没有必要将存储器元件208作为该总线接口的部件。在一种替代方案中,可以将存储器元件208放置在第一站202内,但是在该总线接口之外。处理器206和控制器209有对存储器元件208之内的第一和第二缓冲器的访问。该控制器连接到总线连接205。而且,控制器209具有至处理器209的中断连接210。
在USB主机202和USB设备203,204之间的等时通信是由第一缓冲器和第二缓冲器的双缓冲数据所支持的。在这种等时通信中,数据是定期地-每一(微)帧-从该USB主机发送至该USB设备203,204或反方向行之。下面的实例展示了这一点,此处其等时数据是从USB主机202传送到USB设备203,204。
在N(微)帧的第一时间段,第一串N消息的消息属性由处理器206写入第一缓冲器。这些消息属性包括该消息的USB帧数和有效负载。在紧随第一时间段之后的N(微)帧的第二时间段期间,控制器209从第一缓冲器提取该消息属性并发送第一串N等时消息。在该同一时间段,处理器206,多控制器209经由中断输出210发送的中断信号的触发,将用于第二串N消息的消息属性写入第二缓冲器。在紧随第二时间段的第三个N(微)帧的时间段期间,控制器209从第二缓冲器提取该消息属性并发送第二串N等时消息。在同一时段,处理器206,受控制器209经由中断输出210发送的中断信号的触发,将用于第三串N消息的消息属性写入第一缓冲器。在下一步的时间段内,这种过程继续进行,每一次控制器209从一个缓冲器内提取在前一时间段内由处理器206写入的N消息属性串,与此同时,该处理器206,受控制器209经由中断输出210发送的中断信号的触发,将一串新的N消息属性写入别的缓冲器。
每个时段的宽度N可以由处理器206调节。为此处理器206将包括时宽N的控制项写入第三数据缓冲器。该数据缓冲器可以是存储器元件208的部件,或者也可以是控制器209内的一个寄存器。依据在第三缓冲器内的时宽N,该控制器209调节第一缓冲器和第二缓冲器的存储容量使之可以准确地储存N消息属性。在该存储器元件208中的任何剩余空间可以用于其它目的。
举例来说,如果写入控制项中的N的值是4,则该处理器206必须将4消息属性串,包括帧数和有效负载,写入第一缓冲器或第二缓冲器。该处理器206对于控制器209经由中断输出210发送的中断信号具有4微秒时间加以响应并写入4消息属性串。在同一时间段内,该控制器从由处理器206写入的消息属性的以前的串发生4等时消息并将它发送给另的缓冲器。
显然,在这种方式中控制器209可以和多种处理器206兼容。对于有着相对长的中断响应时间的处理器其N的值将相对大。对于有着短的中断响应时间的处理器,N的值将相对小。N的最小值等于1。
图3A是显示用于数据传输的交易的消息图。该消息图展示对由OUT传输组成的等时交易的图2的系统操作。从上到下时间t增大。处理器206和存储器元件208内的第一缓冲器之间的信息交换用第一根线301和第二根线302之间的箭头横线表示。处理器206和存储器元件208内的第二缓冲器之间的信息交换用图中第一根线301和第三根线303之间的箭头横线表示。处理器206和总线接口207之间的信息交换用图中第一根线301和第4根线304之间的箭头横线表示。存储器元件208的第一缓冲器和总线接口207之间的信息交换用图中第二根线302和第4根线304之间的箭头横线表示。存储器元件208的第二缓冲器和总线接口207之间的信息交换用图中第三根线303和第4根线304之间的箭头横线表示。总线接口207和第二站203之间的信息交换用图中的第4根线304和第5根线305之间的箭头横线表示。
在第一时间期306内,处理器206在第一写入动作309内将第一串消息属性写入第一缓冲器。该第一串消息属性包括对两次等时USB传输的属性。随后总线接口207发送一中断信号310至处理器206。
在第二时间期307内,总线接口207从储存在第一缓冲器内的第一串消息属性提取第一等时USB传输的属性311。然后,在第一USB(微)帧内,该总线接口207将一OUT令牌312发送至第二站203,204。在该OUT令牌之后是数据分组313。然后该总线接口207从储存在第一缓冲器中的第一串消息属性提取第二等时USB传输的属性314。在第二USB(微)帧内,该总线接口207将第二OUT令牌发送给第二站203,204。随后是第二数据分组316。与此同时,根据中断信号310,处理器206在第二写入动作317中将第二串消息属性写入第二缓冲器。该第二串消息属性包括对两次等时USB传输的属性。在发送该第二数据分组316之后,总线接口207将第二中断信号318发送给处理器206。
在第三时间期308内,总线接口207从储存在第二缓冲器中的第二串消息属性提取第三等时USB传输的属性319。然后,在第三USB(微)帧内,总线接口207将第三OUT令牌320发送给第二站203,204。紧随该OUT令牌之后是第三数据分组321。此后总线接口207从储存在第二缓冲器中的第二串消息属性提取第4等时USB传输的属性322。在第4(微)帧内,总线接口207则向第二站203,204发送第4OUT令牌323。紧随此后是第4数据分组324。与此同时,根据第二中断信号318,处理器206在第三写动作326内将第三串消息属性写入第一缓冲器。该第三串消息属性包括对两次等时USB传输的属性。在发送该第二数据分组316之后,总线接口207将第三中断信号328送至处理器206。
写入第一缓冲器和第二缓冲器内的消息属性包括USB(微)帧数和有效负载形式的定时信息,应当在该帧内由该(微)帧数表明的实时数据部分。因此该总线接口207可以对该传输加以处理而不要求处理器206方面为提供该实时数据的进一步动作。用这种方式简化了处理器206和总线接口207之间的通信,因为在二者之间为提供实时数据而不要求额外的通信链接。而且,为了将正确的实时数据赋给正确的等时USB传输,也不要该总线接口的额外处理。
显然,如图3A中所示和如上所讨论的通信只是展示性实例,用于阐明该总线系统的功能,因而该总线系统的功能既不局限于所示的通信,也不局限于所展示的顺序。
图3B是展示对数据传输的交易的消息图。该消息图展示用于由IN传输组成的等时交易的图2的系统操作。从上往下,时间t增大。处理器206和存储器元件208内的第一缓冲器之间的信息交换用图中第一根线301和第二根线302之间的箭头横线表示。处理器206和存储器元件208内的第二缓冲器之间的信息交换用第一线301和第三线303之间的箭头横线表示。处理器206和总线接口207之间的信息交换用第一线301和第4线304之间的箭头横线表示。存储器元件208中的第一缓冲器和总线接口207之间的信息交换用图中第二线302和第4线304之间的箭头横线表示。存储器元件208中的第二缓冲器和总线接口207之间的信息交换用图中第三线303和第4根线304之间的箭头横线表示。总线接口207和第二站203,204之间的信息交换用图中第4根线304和第5线305之间的箭头横线表示。
在第一时间期329内,处理器329在第一写动作332内将第一串消息属性写入第一缓冲器。该第一串消息属性包括对两次等时USB传输的属性。然后总线接口207将中断信号333发送给处理器206。
在第二时间期330内,总线接口207从储存在第一缓冲器中的第一串消息属性提取第一等时USB传输的属性334。然后,在第一USB(微)帧内,总线接口207将IN令牌335发送给第二站203,204。被寻址的USB设备通过发送数据分组326对该IN令牌335给以响应。在总线接口207的第一写动作337内,数据分组336中的数据作为有效负载被加到来自储存在第一缓冲器中的第一串消息属性的第一消息属性。然后,总线接口207从储存在第一缓冲器的第一串消息属性提取第二等时USB传输的属性338。此后,在第二USB(微)帧内,总线接口207将IN令牌发送给第二站203,204。被寻址的USB设备通过发送数据分组340对该IN令牌339给以响应。在总线接口207的第二动作341内,数据分组340内的数据作为有效负载被加到来自储存在第一缓冲器内的第一串消息属性的第二消息属性。总线接口207将第二中断信号343发送给处理器206。与此同时,根据中断信号333,处理器206在第二写动作342中将第二串消息属性写入第二缓冲器。该第二串消息属性包括对两次等时USB传输的属性。
在第三时间期331内,总线接口207从储存在第二缓冲器内的第二串消息属性提取第三等时USB传输的属性344。然后,在第三USB(微)帧内,总线接口207将IN令牌345发送给第二站203,204。该被寻址的USB设备通过发送数据分组346对IN令牌345给以响应。在总线接口207的第三写动作347内,数据分组346之内的数据作为有效负载被加到来自储存在第二缓冲器内的第二串消息属性的第一消息属性。然后该总线接口207从储存在第二缓冲器内的第二串消息属性提取第4等时USB传输的属性348。此后,在第二USB(微)帧内,总线接口207将IN令牌349发送给第二站203,204。该被寻址的USB设备通过发送数据分组350对IN令牌349给以响应。在总线接口207的第4写动作内,数据分组350内的数据作为有效负载被加到来自储存在第一缓冲器内的第二串消息属性的消息属性。总线接口207据此向处理器206发送第二中断信号354。与此同时,根据中断信号333,处理器206在第一读动作352内读出储存在第一缓冲器内的第一串消息属性。这些消息属性,作为有效负载,包括由被寻址的USB设备发送的在数据分组336和340中的数据。然后处理器206在第三写动作342内将第三串消息属性写入第一缓冲器。该第三串消息属性包括对两次等时USB传输的属性。
显然,如图2B所示及上面所讨论的通信只是展示性实例,用以理解该总线系统的功能,因而该总线系统的功能并不局限于所示的通信,也不局限于所示的顺序。
图4是展示按本发明的一种总线接口的方框图。图中所示的方框图是总线接口集成电路的方框图。该总线接口集成电路401具有双重作用。它既可以作为USB设备为总线站的部件,也可以作为USB主机为总线站的部件。这一点在USB的“On-The-Go”(OTG)装置中是特别有用的。这样一样OTG装置,例如,可以是数字化相机,个人数字化辅助设备,或示波器,在某些操作方式中它经USB连接到,例如,海量存储装置(例如,硬盘驱动,光记录仪,或固态记录仪),打印机,或手机。在这种操作方式中,USB OTG应当作为USB主机。在另一种操作方式中,USB OTG经由USB连接到,例如,个人计算机。在这种操作方式中,该USB OTG装置应作为USB设备。USB OTG装置的总线接口集成电路工作的模式可以是软件决定的,并且受该USB OTG装置内的处理器控制。
如果该USB OTG装置是便携式的,它易于包括在总线接口集成电路关闭某些功能块时可用的低功耗方式,或者在,例如,低总线通信量或完全没有总线通信量的时间期内从较低时钟速率运行。这样一种低功率模式可以通过包括所谓的远距离叫醒特征而得以增强,这种远距离叫醒特征受该USB OTG装置的处理器控制使之返回某些或全部功能块的操作,或增大该总线接口集成电路的时钟速率。
该远距离叫醒特征,例如,在该处理器预期总线通信量增大的情况下可以被激活。
总线接口集成电路401包括主处理器的连接402,在该总线接口集成电路401当作USB主机工作时用于连接到USB的连接403,以及在该总线接口集成电路401作为USB设备工作时用于连接到USB的连接404。注意,在实际实行时,连接403和404可以共享同一I/O终端,而内部的多路复用器负责总线信号的内部路由。如果保证连接403不是同时使用的话,这样一种实施办法可能是优越的。
该总线接口集成电路401进一步包括主机-设备多路复用器405,定时块406,主机接口407,设备接口408,主机控制器409,设备控制器410,主机存储器元件411,设备存储器元件412,主机收发机413,以及设备收发机414。
主机-设备多路复用器405经连接402与处理器相连。该多路复用器405决定该有着处理器的总线接口集成电路401,优先在该处理器的控制之下,的内部路由。如果该总线接口集成电路401作为USB主机工作,则主机-设备多路复用器405将主机控制器409经主机接口407连接到处理器。如果该总线接口集成电路401作为USB设备工作,则主机-设备多路复用器405将设备控制器410经由设备接口408连接到处理器。主控制器409经主机收发机413访问总线连接403。设备控制器410经设备收发机414访问总线连接404。
主机存储器元件411既可以经主机-设备多路复用器405被主机控制器409访问,也可以被处理器访问。它可以用于,例如,储存由处理器发出的请求属性和用于储存主机控制器411和USB设备之间的通信结果。
设备存储器元件412既可以经主机-设备多路复用器405被设备控制器410访问,也可以被处理器访问。它可以用于,例如,储存由处理器发生的缓冲数据,该数据应当被送往USB主机。
为支持总线接口集成电路和多种处理器之间的兼容,主机存储器元件411和设备存储器元件412最好是既在直接存储器访问(DMA)方式又在并行输入-输出方式都可对该处理器加以访问。
能支持处理器和总线接口集成电路401的存储器元件之间的多种通信方式是有益的。这样可以对处理器有广泛的选择。例如,一种更为精细的计算系统将支持DMA操作。如果该总线接口也支持DMA操作,则处理器上的通信被进一步简化。另一方面,在一种不够精细的总线站内,处理器处理所有的通信而不要DMA控制器的支持。在这种情形下,该总线接口需要支持总线接口同并行输入-输出方式中的处理器之间的数据交换。
虽然上面所讨论的实施方案涉及一种总线接口集成电路,显然本领域内的技术人员将理解,可以在不同的集成电路和分立组件内埋置本图中的不同功能块和功能块组。因此与本方块图所描述的总线接口相关的其它实施方案可以包括执行不同块功能的多个集成电路和分立组件。
同对总线系统的要求有关,用集成电路来实现总线接口是有着优越性的。在一个集成电路内的功能集成可以降低组件的数量和实现面积的最小化,因此可以减小包括有总线接口的总线站的物理尺寸。而且,将总线接口用集成电路实现将使功耗降低。
同对总线系统的要求有关,用多个集成电路和分立电子组件,尽可能多地使用标准建造块,实现总线接口是有优越性的。这样降低了总线接口的成本价格。
图5是展示总线系统的第一站内的控制器和处理器之间通信的方框图。该方框图显示控制器209,处理器206,第一缓冲器501和第二缓冲器502,以及用于储存控制项的和第三缓冲器503,该控制项决定第一缓冲器501和第二缓冲器502的存储容量。在处理器206开始将消息属性串写入第一缓冲器501和第二缓冲器502之前,该处理器将一值N写入第三缓冲器503,该值N是每一串将包括的消息属性数。控制器209从第三缓冲器提取该值N,并相应地对第一缓冲器501和第二缓冲器502的存储容量加以调整。
在第一缓冲器501内,符号504表示一串中的第一消息属性的位置,505表示同一串中第二消息属性的位置,506表示同一串中最后一个,第n个消息属性的位置。507表示同一串中余下消息属性的位置。
在第二缓冲器502内,符号508表示第二串中第一消息属性的位置,509表示同一串中第二消息属性的位置,510表示同一串中最后一个,第n个消息属性的位置。511表示同一串中佘下消息属性的位置。
该消息属性分成两部分,传输描述符或头标512和有效负载或数据513。在OUT传输情况下,该有效负载513是应当包括数据分组内从USB主机被送往被寻址的USB设备的数据。在IN传输时,该有效负载开始是一无载空间,尔后由所寻址的USB设备发送的数据分组内所包含的数据填充。该传输描述符亦被控制器209用来储存交易的结果。正因为如此,处理器206和控制器209都需要对第一缓冲器501和第二缓冲器502进行读和写的访问。
下面所示为该传输描述符的格式。所示格式由8位字节组成,和字节0,字节1,...,字节7表示。每个字节由8位(比特)组成。
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
字节0 |
实际字节(7:0) |
字节1 |
完成码 |
有效 |
触发开关 |
实际字节(9:8) |
字节2 |
最大分组大小(7:0) |
字节3 |
端点数(3:0) |
最后 |
速度 |
最大分组大小(9:8) |
字节4 |
总字节(7:0) |
字节5 |
0 |
0 |
保留 |
保留 |
方向令牌(1:0) |
总字节(9:8) |
字节6 |
1 |
设备地址 |
字节7 |
起始帧号(7:0) |
下面的表用以说明上表中各参数的含义。
名称 |
长度(位) |
说明 |
实际字节 |
10 |
包含被传输的字节数 |
完成码 |
4 |
表明对相关描述符的最后交易是如何完成的,包括差错的发生 |
有效 |
1 |
表明交易是否执行 |
触发 |
1 |
用于发生或比较数据PID值在每次成功传输或收到数据分组后加以更新 |
最大分组大小 |
10 |
表明可以发送至或从单个数据分组内的相关端点的最大字节数 |
保留 |
1 |
没使用 |
速度 |
1 |
表明相关端点的速度 |
总字节 |
10 |
表明被传输的总字节数 |
方向令牌 |
2 |
表明传输描述符是否同IN传输或OUT传输相关 |
设备地址 |
7 |
表明应当被寻址的USB设备地址 |
起始帧号 |
8 |
表明何时应发送等时分组 |