CN1551592B - 数据传输控制装置、电子设备及数据传输控制方法 - Google Patents
数据传输控制装置、电子设备及数据传输控制方法 Download PDFInfo
- Publication number
- CN1551592B CN1551592B CN2004100372903A CN200410037290A CN1551592B CN 1551592 B CN1551592 B CN 1551592B CN 2004100372903 A CN2004100372903 A CN 2004100372903A CN 200410037290 A CN200410037290 A CN 200410037290A CN 1551592 B CN1551592 B CN 1551592B
- Authority
- CN
- China
- Prior art keywords
- hub
- data
- bag
- transmission
- data transfer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种数据传输控制装置(100),包括:集线器专用数据存储单元(110),用于存储在与集线器之间传输的包;包信息发送单元(120),用于周期性地向所述集线器发出询问所述集线器状态有无变化的令牌包;包信息接收单元(130),用于接收所述集线器返回的对应于所述令牌包的应答包;传输控制器(160),用于控制将包信息接收单元所接收的应答包写入集线器专用数据存储单元,同时,控制发生表示所述集线器的状态已改变的中断。
Description
技术领域
本发明涉及数据传输控制装置、电子设备以及数据传输控制方法。
背景技术
过去,作为电脑和***设备(广义上讲,指电子设备)连接用的接口规格一般采用公知的USB(Universal Serial Bus通用串行总线)。USB的优点是可以用相同规格的连接器连接鼠标、键盘、以及打印机等设备,同时还有可以实现即插即用和热插拔的优点。另外,制定了备受瞩目的USB2.0接口标准,该标准不仅与过去的USB1.1标准兼容,而且数据传输速度与USB1.1相比得到极大的提高,可实现480Mbps(位每秒)(HS模式)的数据传输速度。
根据USB,采用以个人计算机为代表的主机中心连接方式(总线拓扑)。主机获取连接在总线上的设备相关信息(设备描述符),对设备分配固有的地址。并且主机进行设备间的数据传输调度,在与各设备的终端(端点)之间进行数据传输。
另外,采用USB,通过设置集线器(HUB)可以把主机和多个设备连接起来。采用USB为了实现所谓的即插即用和热插拔,接通电源之后,在集线器上重新连接设备或拔掉设备时,主机获取集线器的状态,再次进行调度。因此,主机和其它设备一样,在与集 线器之间设定作为逻辑通信路径的信道(pipe管),周期性地监视集线器的状态变化。
可是,即使对于为监视集线器而设定的信道,也和在其他设备之间设定的信道一样,占有主机上的资源。因此,尽管集线器的状态变化并不频繁,但为监视集线器,也使用主机上的有限资源,因此资源得不到有效利用。
发明内容
鉴于以上的技术缺欠,本发明的目的在于提供一种在连接集线器的情况下,也能够有效利用资源的数据传输控制装置和包括该装置的电子设备以及数据传输的控制方法。
为解决上述技术问题,本发明涉及一种数据传输用的数据传输控制装置,其包括:包缓冲器,用于存储对方设备和所述数据传输控制装置之间的包;包信息发送单元,其周期性地向所述集线器发送询问所述集线器状态有无变化的令牌包;包信息接收单元,用于接收所述集线器发回来的对应于所述令牌包的应答包;集线器专用数据存储单元,设置于与所述包缓冲器分开的区域,用于储存所述应答包;以及传输控制器,在进行将所述包信息接收单元接收的所述应答包写入所述集线器专用数据存储单元的控制的同时,对发生表示所述集线器的状态已改变的中断进行控制。
另外,在本发明涉及的数据传输控制装置中,所述传输控制器以所述应答包不是表示没有应回复的数据的NAK包为条件,在对所述应答包写入集线器专用数据存储单元进行写入控制的同时,还可以对发生表示集线器的状态已改变的中断进行控制。
其中,集线器有多条通道,设备被连接在通道上。由于借助于这种集线器连接多个设备,因此本发明涉及的数据传输控制装置能够和多个设备之间进行数据传输。
在本发明中,设有集线器专用数据存储单元,在发送令牌包,周期性的询问集线器的状态有无变化时,用于与该集线器之间的数据传输专用。并且,当收到集线器对应于令牌包发回来的应答包时,识别该应答包是否是NAK包,如果识别为不是NAK包时,就将接收到的应答包写入集线器专用数据存储单元,而且,发生表示集线器的状态已改变的中断。因此,通过中断接到通知的处理单元,比如,读取集线器专用数据存储单元,识别集线器的状态变化,并能够根据其变化对数据传输控制装置进行相应的设定。
当应答包是NAK包时,也可以不对接收的应答包进行处理。
根据本发明,对监视集线器变化所用的传输,不分配确保与其它设备之间传输用的资源,而是由专用的数据存储单元配给。因此,当集线器的状态变化不频繁时,不消耗可确保与其它设备之间传输的资源,不会使可设定的传输自由度下降。
另外,由于只有在集线器的状态被识别为已有变化的情况下,才将应答包写入集线器专用数据存储单元,因此,可以将集线器专用数据存储单元的存储区控制在最低限。
在本发明涉及的数据传输控制装置中,包括包缓冲器,用于确保在与各端点(终端)之间传输的包被存储在各个信道(pipe管)区里的多个信道区。所述集线器专用数据存储单元的存储区也可以与所述包缓冲器的存储区分开设置。
根据本发明,集线器专用数据存储单元与确保在与各端点之间传输的包被存储在各个信道区里的多个信道区的包缓冲器各自具有物理上不同的构成,因此,可以提供不减少普通用的包缓冲器的存储区,对集线器的状态进行监视的数据传输控制装置。
在本发明涉及的数据传输控制装置中可以包括:包缓冲器,其用于确保多个信道区,以使与各端点之间传输的包被存储在各个信道区里;传输模式设定寄存器,用于指定集线器专用传输模式或普通传输模式用的数据设定。当被所述传输模式设定寄存器设定成集线器专用传输模式时,将所述集线器专用数据存储单元的存储区分配给与作为端点的集线器之间的传输;当被所述传输模式设定寄存器设定成普通传输模式时,也可以将所述包缓冲器的存储区分配给在与集线器为端点之间的传输。
在本发明中,设有传输模式设定寄存器,可以指定集线器专用传输模式或普通传输模式,并且只有在被指定成集线器专用传输模式时,才能把所述集线器专用数据存储单元的存储区分配给与作为端点的集线器之间的传输。这样一来,由于集线器监视用的传输不分配固定的资源,因此能够有效利用资源,提高数据传输设定的自由度。
在本发明涉及的数据传输控制装置中,还可以包括具有指定位的传输条件寄存器,用于指定使用了所述集线器专用数据存储单元的数据传输的开始,在所述指定位为有效状态时,所述包信息发送单元发送所述令牌包。
在本发明涉及的数据传输控制装置中,还可以在所述指定位变成有效之后至变成无效的期间,所述包信息发送单元周期性的继续发送所述令牌包。
根据本发明,由于使用传输条件寄存器中含有的指定位,能周期性的连续发送令牌包,因此,可以使处理单元对频率低的中断控制简单化。
本发明涉及的数据传输控制装置,也可以进行以USB(通用串行总线)规格为标准的数据传输。
在本发明涉及的数据传输控制装置中,还可以包括状态控制器,该控制器通过多种状态变换,控制主机工作或***设备工作。其中,多种状态变换,包括控制作为主机工作的主机工作的状态和控制作为***设备工作的***设备工作的状态;所述传输控制器,包括在主机工作时,作为主机进行数据传输的主机控制器;和在***设备工作时,作为***设备进行数据传输的***设备控制器。在主机工作时,包缓冲器确保多个信道区,所述主机控制器在所述多个信道区中的一个区和对应于该信道区的端点之间传输包。在***设备工作时,包缓冲器确保多个端点区,所述***设备控制器在所述多个端点区中的一个区和主机之间传输包。其中,在主机工作时,以所述应答包不是表示没有应发回数据的NAK包为条件,通过所述传输控制器将所述应答包写入所述集线器专用数据存储单元的同时,对发生表示所述集线器的状态已改变的中断进行控制。
本发明涉及的数据传输控制装置,还可以根据USB的OTG(On-The-Go)规格传输数据。
根据本发明,可以实现所谓的双功能设备的功能。并且,在实现双功能设备的功能基础上,可以提供监视集线器不浪费资源的数据传输控制装置。
本发明涉及一种电子设备,其包括上述的任一数据传输控制装置和控制所述数据传输控制装置的处理器。
本发明涉及一种数据传输用的数据传输控制方法。即,周期性地发送询问集线器的状态有无变化的令牌包;接收所述集线器发来的对应于所述令牌包的应答包,所述应答包以不是第一包为条件,将所述应答包写入所述集线器专用数据存储单元的同时,发生表示所述集线器的状态已变化的中断,所述第一包表示没有应回复信息的数据。
附图说明
图1表示主机与设备的连接关系的示意图。
图2A、图2B、图2C是关于USB的OTG规格示意图。
图3A、图3B是关于SRP及HNP的顺序示意图。
图4是本实施方式的数据传输控制装置的构成概要方框图。
图5是表示集线器构成例的方框图。
图6是表示状态变化位的构成例示意图。
图7A、图7B是中断IN传输的事务处理示意图。
图8表示本实施方式的数据传输控制装置的详细构成示例图。
图9A、图9B是关于信道区和端点区的示意图。
图10表示OTG控制器的详细构成示例图。
图11表示主机控制器的详细构成示例图。
图12表示主机控制器传输模式的设定动作概要流程图。
图13表示主机控制器的集线器专用传输模式动作概要流程图。
图14表示***设备控制器的详细构成示例图。
图15表示缓冲控制器的详细构成示例图。
图16A、图16B、图16C是各种电子设备的内部方框图示例。
图17A、图17B、图17C是各种电子设备的外观图示例。
具体实施方式
以下,就本发明的最佳实施方式用图纸加以详细说明。
以下说明的实施方式不是对权利要求范围所记载的本发明的内容的不当限定。以下说明的全部构成不一定是本发明的必须构成要素。
1.USB的数据传输
首先,就USB(广义上指串行总线)的数据传输进行简单地说明。对USB而言,主机具有数据传输的主导权。即,启动数据传输的事务处理是主机,与数据传输有关的大部分控制是由主机完成,因此,设备(靶)只要简单地响应来自主机的要求即可。这样,可以使设备一侧的处理和构成简单化,即使作为设备内置的CPU(Central Processing Unit)(广义上指处理器)也可以采用低价位的产品。
在USB中,为了实现这样的主机主导的数据传输,在设备一侧准备了如图1所示的端点(终端)(Endpoint)(EP0~EP15)。在USB中,在与主机和一个设备之间可以持有多条逻辑通信路径(信道pipe),将各信道的设备一侧的端称为端点。各端点通过至少可物理存储相当于1包的数据的FIFO存储器实现。
端点可根据设备地址和端点编号可指定根本意义上的地址。即、主机通过指定设备地址和端点编号,可以随意向所需的端点发送数据,或接收所需端点发来的数据。另外,端点的构成方法在设备一侧是任意的,在进行计数(枚举enumeration)处理时,主机能够掌握端点编号的分配以及被分配到各端点上的存储区的数据量等。
2.USB的OTG(On-The-Go)规格
在USB中,制定了被称作OTG规格的接口规格,该规格可使连接在主机上的设备具有主机功能。根据OTG规格,设备与设备 连接,能够进行依照USB规格的数据传输。比如,数码相机和打印机直接连接,可以打印数码相机的图像。还有,将数码相机和数字式摄像机连接到存储装置上,便可保存数据。
2.1 A设备、B设备
在OTG规格中,作为连接器的规格,被定义成图2A所示的Mini-A插头、Mini-B插头。作为能连接Mini-A插头、Mini-B插头双方的连接器被定义成Mini-AB插孔(receptacle)。
比如,如图2B,如果电子设备P与USB电缆的Mini-A插头连接,电子设备Q与Mini-B插头连接,那么,电子设备P就被设定成A设备,电子设备Q就被设定成B设备。另一方面,如图2C所示,如果Mini-B插头和Mini-A插头与电子设备P、Q连接,那么,电子设备P、Q就分别被设定成B设备和A设备。
在Mini-A插头里面,ID针脚与GND连接,在Mini-B插头里面,ID针脚处于悬空状态。电子设备用内置的负载电阻,通过检测ID针脚的电压电平,判断本身是与Mini-A插头连接还是与Mini-B插头连接。
在OTG规格中,A设备(主)变成电源(VBUS)供给侧(供给源),B设备(从)变成接受供电侧(接受方)。另外,A设备通过默认(弃权)变成主机,B设备通过默认变成***设备。***设备作为USB2.0规格中的设备工作。
2.2双功能设备
在OTG规格中,把可具有可作为主机(简易主机)工作和具有作为***设备工作的设备定义成双功能设备(Dual-Role Device)。
双功能设备可以作为主机工作,还可以作为***设备工作。被双功能设备连接的对方,如果是过去的USB规格中的主机或***设备时,双功能设备只发挥一种功能。即、连接对方如果是主机,双功能设备就变成***设备,连接对方若是***设备,双功能设备则变成主机。
另外,当连接对方是双功能设备时,两个双功能设备能互换成主机和***设备。
2.3 SRP、HNP
双功能设备具有图3A、图3B所示的会话开始请求程序SRP(Session Request Protocol,会话请求协议)和主机交换程序HNP(Host Negotiation Protocol主机谈判协议)的功能。
这里,会话开始请求程序SRP是B设备请求A设备供给VBUS(电源)的协议。
在OTG规格中,不使用总线的A设备可以停止供给VBUS。因此,A设备比如是小型携带式设备时,能防止浪费功率消耗。当A设备停止供给VBUS,而B设备请求供给VBUS时,使用该SRP,请求A设备恢复供给VBUS。
图3A表示SRP的概要。如图3A所示,B设备通过进行数据线脉冲调制(Data-line Pulsing)或VBUS脉冲调制,要求A设备供给VBUS。然后,在A设备开始供给VBUS之后,B设备作为***设备(Peripheral operation)开始工作,A设备作为主机(hostoperation)开始工作。
如图2A~图2C所描述的那样,双功能设备之间连接时,连接Mini-A插头一侧的A设备变成默认(default)的主机,连接Mini-B 插头侧的B设备变成默认的***设备。于是,采用OTG规格,即使不进行插头的插拔,主机和***设备的功能也可以互换。HNP就是该主机和***设备的作用互换的协议。
图3B表示HNP的概要。作为默认主机工作的A设备,结束使用总线时,总线则变成空闲状态。之后,当B设备将数据信号线DP(D+)的负载电阻变成无效时,A设备就将数据信号线DP的负载电阻变成有效。因此,A设备的任务是由主机变成***设备,作为***设备开始工作。B设备的任务是由***设备变成主机,作为主机开始工作。
之后,当B设备结束使用总线,A设备将数据信号线DP的负载电阻变成无效时,B设备就将数据信号线DP的负载电阻变成有效。因此,B设备的任务是由主机返回到***设备,作为***设备重新开始工作。A设备的任务是由***设备返回到主机,作为主机重新开始工作。
根据以上说明的OTG,使手机和数码相机等携带式设备作为USB的主机工作,携带式设备之间可以按照定向方式连接,传输数据。因此,在USB接口上能够产生新的附加值,开辟前所未有的应用。
3.数据传输控制装置
图4表示本实施方式的数据传输控制装置构成要素。在图4中,含有采用本实施方式的数据传输控制装置100的电子设备10与集线器200连接。电子设备10通过总线20,在与集线器200之间传输数据(包)。该数据传输受控于电子设备10中所含的数据传输控制装置100的控制。集线器200的各路通道,包括与其它电子设备(***设备)连接的多路通道P1~Pn(n为2以上的整数),于是, 在电子设备10和各路通道所连接的其它电子设备之间便可实现数据传输。
电子设备10包括处理单元50和数据传输控制装置100。处理单元50对数据传输控制装置100等整个电子设备10进行控制。处理单元50包括由ASIC(专用集成电路)等构成的应用设备(应用层的设备)、CPU(广义上指处理器)、ROM(只读存储器)、RAM(随机存取存储器)。作为应用设备包括例如,控制硬盘驱动器和光盘驱动器等的媒体驱动的设备以及控制打印机和扫描仪的设备和MPEG编码器、MPEG译码器等设备。
控制数据传输控制装置100的固件(程序)在CPU上可以工作。处理单元50的ROM存储控制程序和各种数据。处理单元50的RAM成为CPU和数据传输控制装置100的工作区和数据储存区。
另外,电子设备10可以包括显示单元和操作单元。电子设备10的显示单元对用户显示输出各种信息。操作单元是供用户操作电子设备的。作为这类电子设备有光盘驱动器(CD-ROM、DVD)、光磁盘(MO)、硬盘驱动器、TV(电视机)、TV(电视机)调谐器、VTR(录像机)、摄像机、音响设备、电话机、投影设备、电脑、电子笔记本、PDA或文字处理机等等。
数据传输控制装置100包括:集线器专用数据存储单元110、包信息发送单元120、包信息接收单元140、包缓冲器150、传输控制器160和收发器单元162。
处理单元50在与通过总线20连接的设备之间设定逻辑信道。即、处理单元50对在与设备之间传输的种类、传输的方向、传输量等进行设定。如图4所示,在总线20上连接集线器200时,处理单元50在与集线器200通道上连接的设备之间设定信道。因此, 处理单元50需要掌握集线器200的通道状态,识别在各通道上连接的设备。
于是,数据传输控制装置100在与集线器200之间设定监视用的信道,按照一定的周期向集线器200发送令牌包(广义上指令牌),以应答包(广义上指应答数据)的形式获取集线器200的状态信息。这里,集线器200的状态比如是指集线器200的通道使用状态或通道的连接状态。处理单元50对数据传输控制装置100获取的应答包进行解析,从中掌握在集线器200的各路通道上连接的设备情况,进行信道设定。
此时,处理单元50确保已设定的信道一端的集线器或每个设备(端点)的资源,利用数据传输控制装置100对数据传输进行控制。即、数据传输控制装置100确保每一个端点的包缓冲器150的区域。
这样一来,资源已被分配的数据传输控制装置100,利用传输控制器160控制的包信息发送单元120和包信息接收单元140,通过收发器单元162和总线20,在与端点之间传输数据。再具体讲,数据传输控制装置100,用包缓冲器150进行数据传输。包缓冲器150确保在与各端点之间传输的包(数据)被存储在各个信道区里的多个信道区。数据传输控制装置100,在包缓冲器150所设的区域,对每个端点边进行包的写入和读取,边传输数据。
当端点是集线器200时,数据传输控制装置100对该端点分配集线器专用存储单元110。在集线器专用数据存储单元110中,存储通过与集线器200之间设定的信道与集线器200之间被传输的包(广义上指数据)。
包信息发送单元120包括令牌包生成单元122、数据包生成单元124和信号交换包生成单元126。包信息发送单元120的令牌包 生成单元122,作为令牌的发送单元,按照一定的周期向集线器200发送询问集线器200的状态有无变化的令牌包。数据包生成单元124生成数据包。生成的数据包,通过总线20利用包信息发送单元120发送。信号交换包生成单元126生成信号交换包。信号交换包通过总线20利用包信息发送单元120发送。
当集线器200通过总线20接收由数据传输控制装置100发来的令牌包时,就立即发回对应于该令牌包的应答包。应答包包括表示集线器200的状态已发生变化或集线器200的状态没有发生变化的数据。作为表示集线器200的状态没有变化的数据,有表示集线器200没有应发回数据的NAK包。
由集线器200发回来的应答包,通过数据传输控制装置100的收发器单元162,被包信息接收单元140接收。即、包信息接收单元140接收由集线器200发回来的对应于令牌包的应答包。被包信息接收单元140接收的应答包,由传输控制器160进行解析。
传输控制器160,识别来自集线器200的应答包是否是表示集线器200的状态没有变化的NAK包(第1包)。当应答包被识别为NAK包时,传输控制器160则判断集线器200的状态没有变化,于是便等待接收与下一次发送的令牌包相对应的应答包。另外,当应答包被识别为不是NAK包时,传输控制器160则判断集线器200的状态已发生变化,控制将应答包写入集线器专用存储单元110的同时,对处理单元50发生表示集线器200的状态已经变化的中断进行控制,就这样通过发生的中断,将此情况通报给处理单元50。
接受由来自传输控制器的控制而发生的中断的处理单元50受固件控制。处理单元50,比如,读取集线器专用数据存储单元110中存储的应答包,解析集线器200的状态发生了什么样的变化,根据变化后的集线器200的状态,重新组建相应的信道,采取措施防止与集线器200连接的设备发生过电流等。
象这样,在数据传输控制装置100中设有集线器专用数据存储单元110。通过设定的监视集线器用的信道进行的数据传输时,不分配包缓冲器150,而是分配集线器专用数据存储单元110。即、集线器专用数据存储单元110的存储区与包缓冲器150分开设置。这样一来,尽管集线器的状态变化次数比较少,也不需要分配一般用的有限的资源,因此,资源能得以有效运用。另外,由于表示集线器的状态已改变的包数据量比较少,即使采用寄存器等硬件构成集线器专用数据存储单元110,其影响也不大,所以,与其增加硬件,莫不如有效利用资源的效果更好。
数据传输控制装置100还可以包括传输模式设定寄存器170。此时,在传输模式设定寄存器170中,指定集线器专用传输模式的传输或常规传输模式用的设定数据,比如,利用处理单元50进行设定。
为控制集线器专用传输模式的传输,被传输模式设定寄存器170设定成指定的设定数据时,通过在与集线器200之间设定的信道进行的传输,则变成集线器专用传输模式的传输。按照集线器专用传输模式传输时,数据传输控制装置100的集线器专用数据存储单元110作为资源被分配。即、集线器专用数据存储单元110的存储区,作为资源被分配给在与集线器为端点的之间的传输。
为控制普通传输模式的传输,被传输模式设定寄存器170设定指定的设定数据时,通过在与集线器200之间设定的信道进行的传输,则变成普通传输模式的传输。按照普通传输模式传输时,数据传输控制装置100的包缓冲器150作为资源被分配。即、包缓冲器150的存储区,作为资源被分配给在与集线器为端点之间的传输。
这样一来,在通用的包缓冲器150上不分配资源,只是在与集线器之间设定信道时,作为资源,可以分配集线器专用数据存储单元110,因此,能有效利用资源。
数据传输控制装置100还可以包括传输条件寄存器180。传输条件寄存器180,有指定用集线器专用数据存储单元110开始传输数据的指定位。
包信息发送单元120,当指定位处于有效状态(active state)时,发送令牌包。在指定位变成有效状态之后至变成无效状态期间,包信息发送单元120作为令牌的发送单元,按照一定的周期继续发送令牌包。由于采用这种方法监视集线器200,可以使处理单元50对次数少的中断控制简单化。
4. 数据传输控制装置的构成例
以下,以本实施方式中的数据传输控制装置100,进行根据USB的OTG规格的数据传输控制情况为例,对具体构架进行说明。此时,数据传输控制装置100作为主机工作时,数据传输控制装置100监视集线器200的状态变化。
首先,就集线器200加以说明。
图5表示集线器200的功能方框构成例概要。集线器200,作为采用USB规格的集线器发挥功能,如图4所示,通过总线20与数据传输控制装置100连接。
集线器200含有P1~Pn个通道。设备通过USB(总线)被连接在各个通道上。集线器200包括:令牌信息接收单元210、状态变化位生成单元220、数据包生成单元230、NAK(NegativeAcknowledgement否定应答包)包生成单元240、应答包信息发送单元250。
令牌信息接收单元210,接收由数据传输控制装置100发来的令牌包。采用USB规格的数据传输控制装置100,如后面所描述的 那样,包信息发送单元120发送传输的种类为中断传输,传输的方向为IN方向的令牌包。
状态变化位生成单元220,生成表示集线器200状态变化情况的状态变化位。集线器200的状态可以看成是通道P1~Pn的状态。在通道被***电缆或拔掉电缆时,状态变化位则表示此通道的状态已发生变化。
图6表示状态变化位的说明图。状态变化位包括:当各通道的变化被检测出来时表示为[1]的变化检测位和表示集线器200的状态已发生变化的集线器变化检测位。例如,根据集线器变化检测位,可以判断集线器的状态是否已发生变化。根据集线器变化检测位,可以识别哪个通道发生了变化。
在组建与集线器200之间的信道时,用描述符在数据传输控制装置100上识别集线器200的通道数。因此,以字节长度单位处理的状态变化位,即使集线器200的通道数不是8的倍数,也能很容易地识别出究竟是哪路通道发生了变化。
在图5中,数据包生成单元230,作为令牌信息接收单元210接收的令牌包所对应的应答包,生成包含由状态变化位生成单元220生成的状态变化位的应答包。
NAK包生成单元240,生成NAK包。NAK包对应于在令牌信息接收单元210接收的来自数据传输控制装置100的令牌包,在集线器没有应传输的数据时,NAK包被返回。
应答包信息发送单元250,对应于令牌信息接收单元210接收的令牌包,通过总线20将数据包生成单元230生成的应答包或在NAK包生成单元240生成的NAK包,发送给数据传输控制装置100。
图7A、图7B表示在数据传输控制装置100和集线器200之间进行事务处理的说明图。图7A表示集线器200的状态有变化时进行的事务处理例的模式图。图7B表示集线器200的状态没有变化时进行事务处理例的模式图。
USB当数据传输控制装置100对集线器200询问其状态有无变化时,采用传输方向为IN方向的中断传输。中断传输中,原则上分为3个阶段,即、令牌阶段、数据阶段和信号交换阶段。在各个阶段传输USB规定的包。USB的包用SYNC字段开始,用EOP(End-of-Packet结束包)结束。
首先,在令牌阶段,数据传输控制装置100向集线器200发送IN令牌包。IN令牌包,包括包标识符PID(包标识字段)、地址字段ADDR、端点字段ENDP和CRC(循环冗余校验)。利用地址字段ADR和端点字段ENDP指定端点。传输方向用PID指定。
集线器200接收来自数据传输控制装置100的IN令牌包,当其状态有变化时,在数据阶段作为应答包将IN数据发回。IN数据包括包标识符PID、数据字段DATA和CRC。在包标识符PID中,互相赋予DATA0的标识符和DATA1的标识符。在数据字段DATA,设定包括图6所示的状态变化位的包。
接收了来自集线器200的IN数据的数据传输控制装置100,在信号交换中将ACK(已收到)包发回集线器200。通过发回ACK包,通知集线器200接收正常。ACK包只是由包标识符PID构成的。在包标识符PID中设定表示这是ACK包的标识符。
另外,收到了来自数据传输控制装置100的IN令牌包的集线器200,在其状态没有变化时,如图7B所示,在数据阶段中作为应答包将NAK包发回来。NAK包是在图5的NAK包生成单元240生成的。利用发回来的NAK包,通知数据传输控制装置100没有 应返回的数据。NAK包也和ACK包一样,只是由包标识符PID构成的。在包标识符PID中,设定表示这是NAK包的标识符。
其次,对能够监视图5所示的集线器200,并且采用USB的OTG规格的数据传输控制装置100的详细构成例进行说明。
图8表示数据传输控制装置100的详细构成例。
数据传输控制装置100包括:收发器310、OTG控制器320、HC/PC转换电路330、传输控制器340、寄存器单元370、缓冲控制器380、包缓冲器390、接口电路400、时钟控制器410。数据传输控制装置100,不需要包括图8的所有电路块,也可以省略其中的单元电路块。
图4中的包信息发送单元120、包信息接收单元140和传输控制器160由传输控制器340实现其功能。图4中的收发器单元162,依靠收发器310、HC/PC转换电路330和传输控制器340实现其功能。图4中的集线器专用数据存储单元110,依靠寄存器单元370实现其功能。图4中的包缓冲器150依靠包缓冲器390实现其功能。图4中的传输模式设定寄存器170和传输条件寄存器180,依靠寄存器单元370实现其功能。
收发器310(以下通称为Xcvr)是采用差动数据信号DP、DM,接收发送按照USB规格传输的数据的电路,包括USB的物理层(PHY)电路312。再具体讲,收发器310生成DP、DM的线路状态(J、K、SE0等),并且,进行串行/并行转换、并行/串行转换、位填充、位不填充、NRZI解码、NRZI编码等。收发器310也可以设置在数据传输控制装置的外部。
OTG控制器320(广义上指状态控制器。以下,通称为OTGC)为实现OTG的SRP功能和HNP功能(参照图3A、图3B)而进行 各种处理。即、OTG控制器320通过变换多种状态,控制主机工作和***设备工作。多种状态变换包括以主机的身份工作的主机工作状态和以***设备的身份工作的***设备工作状态等。同时,还根据这些状态的变换,对主机工作和***设备工作进行切换控制。
再具体讲,在OTG规格中被定义成双功能设备作为A设备时(参照图2B、图2C)的状态变换和作为B设备时的状态变换。OTG控制器320包括实现这些状态变换用的状态设备。另外,OTG控制器320还包括检测USB的数据线状态和VBUS电平、ID针脚状态(监视)的电路。OTG控制器320包含的状态设备根据这些检测信息,使状态发生变化(例如,主机、***设备、停止或空闲等状态)。此时的状态变换可以利用硬件实现,也可以通过固件在寄存器上设定状态指令来实现。状态一转换,OTG控制器320就在变换后,根据状态控制VBUS,控制DP、DM的负载电阻或下位电阻的连接或非连接。并且对传输控制器340中包含的主机控制器350(以下通称HC)、以及***设备控制器360(以下通称PC)的允许或禁止进行控制。
HC/PC转换电路330(HC/PC·公用电路)对收发器310和主机控制器350或***设备控制器360之间的连接进行转换控制。对收发器310下达生成USB的数据(DP、DM)的线路状态指令。由HC/PC选择器332对连接进行转换控制,由线路状态控制器334给出线路状态生成指令。
例如,OTG控制器320在主机工作时(主机状态时),当HC启动信号变成有效信号时,HC/PC转换电路330(HC/PC选择器332)就将收发器310和主机控制器350连接在一起。OTG控制器320在***设备工作时(***设备状态时),当PC的启动信号变成有效信号时,HC/PC转换电路330就将收发器310和***设备控制器360 连接在一起。于是,便可使主机控制器350和***设备控制器360产生排斥动作。
传输控制器340是控制通过USB(广义上指总线)传输数据的电路,包括主机控制器350(HC)和***设备控制器360(PC)。
其中,主机控制器350是在主机工作时(来自OTG控制器320的HC启动处于有效状态时),对作为主机身份的数据传输进行控制的电路。即、主机控制器350在主机工作时,通过HC/PC转换电路330与收发器310连接。然后,主机控制器350根据在寄存器单元370的传输条件寄存器单元372上设定的传输条件信息,对端点进行事务处理。接着,在被包缓冲器390确保的信道区(PIPE0~PIPEe。以下通称PIPE)和该信道区所对应的端点之间进行数据包传输。
再具体讲,主机控制器350对多条信道之间的传输进行调停、帧的时间管理、传输调度、重发管理等。还通过寄存器单元370,对信道传输的传输条件信息(操作信息)进行管理。还进行事务处理管理、包的生成或分解、下达停止、重新开始或变成复位状态的指令。
另外,***设备控制器360是在***设备工作时(OTG控制器320输出的PC启动信号变成有效信号时),作为***设备进行数据传输控制的电路。
即、***设备控制器360,在***设备工作时,通过HC/PC转换电路330与收发器310连接。然后,根据寄存器单元370的传输条件寄存器单元372所设定的传输条件信息,在被包缓冲器390确保的端点区(EP0~Epe。以下通称EP)和主机之间传输数据。
再具体讲,***设备控制器360通过寄存器单元370管理端点传输的传输条件信息(操作信息)。还进行事务处理管理,生成或分解包,发出生成远程唤醒信号的指令。
端点可以分配唯一的地址,是***设备(设备)上的点(部分)。主机和***设备(设备)之间的数据传输全都经过此端点。事务处理由令牌包和可任选的数据包以及可任选的信号交换包构成。
寄存器单元370包括进行各种控制用的寄存器,即、数据传输(信道传输、端点传输)控制、缓冲存取控制、缓冲管理、中断控制、数据块控制或DMA控制等用的寄存器。寄存器单元370包括的寄存器也可以采用RAM等的存储器,还可以采用D触发器等。寄存器单元370的寄存器不集中在一处,也可以分散布置成各个方块(HC、PC、OTGC、Xcvr等)。
寄存器单元370包括传输条件寄存器单元372、集线器专用数据存储单元374。传输条件寄存器单元372包括存储传输条件信息的存储器,该存储器存储主机工作时,在被包缓冲器390确保的信道区(PIPE0~PIPEe)和端点之间的传输数据的传输条件信息(传输控制信息)。作为这种存储传输条件信息的寄存器,还可以包括图4中的传输模式设定寄存器170。各传输条件寄存器与包缓冲器390的各个信道区对应设置。
在***设备工作时,包缓冲器390确保端点区(EP0~Epe)。根据传输条件寄存器单元372所设定的传输条件信息,在数据传输控制装置和主机之间传输数据。
集线器专用数据存储单元374,在主机工作时,作为在物理上和被包缓冲器390确保的信道区不同的区域,将在与集线器为端点之间传输的数据包暂存起来。
缓冲控制器380(FIFO管理器),对包缓冲器390的存取(读-写)进行控制,并进行区域管理。再具体讲,利用CPU(广义上指处理单元)、DMA、USB生成存入包缓冲器390的地址并进行管理。而且,对CPU、DMA、USB向包缓冲器390的存取进行调停。
例如,在主机工作时,包缓冲器380设定(确立)接口电路400(CPU或DMA)与包缓冲器390之间的数据传输路径以及包缓冲器390与主机控制器350(USB)之间的数据传输路径。
另一方面,在***设备工作时,缓冲控制器380设定接口电路400(CPU或DMA)与包缓冲器390之间的数据传输路径,以及包缓冲器390与***设备控制器360(USB)之间的数据传输路径。
包缓冲器390(FIFO、包存储器、缓冲器)的用途是将通过USB传输的数据(发送数据或接收数据)暂时存储起来。包缓冲器390例如,可以用RAM等构成。包缓冲器390也可以设置在数据传输控制装置的外部(也可以用外设存储器)
主机工作时,包缓冲器390当作信道传输用的FIFO(快进快出)使用。即、包缓冲器390为对应于USB(总线)的各个端点,确保信道区PIPE0~PIPEe(广义上指缓冲区)。在与各个信道区对应的各端点之间传输的数据(发送数据或接收数据),被存储在各个信道区PIPE0~PIPEe里。
被包缓冲器390确保的缓冲区(主机工作时,在信道区设定的区域;***设备工作时,在端点区设定的区域),设定先输入的信息先输出的存储区(FIFO区)。
另外,PIPE0是在控制传输用的端点0专用的信道区,PIPEa~PIPEe是可对任意的端点分配的通用信道区。
即,在USB中,端点0被设定成控制传输的专用端点。因此,如同本实施方式,由于把PIPE0定为控制传输的专用信道区,可以防止用户混乱。还有,由于把PIPE0~PIPEe定为对任意的端点可分配的信道区,因此,能使端点对应的信道区发生动态变化,从而提高信道传输编排的自由度,提高数据传输的效率。
根据本实施方式,在主机工作时,监视在USB上连接的集线器用的缓冲区,被设定在物理上与包缓冲器390不同的集线器专用数据存储单元110上。因此,消除了包缓冲器390分配的信道区的浪费问题。
接口电路400是用在不同于USB的其它总线DMA(***存储器)总线和CPU总线以及缓冲器390之间进行数据传输的电路。接口电路400包括在缓冲器390和外部***存储器之间,传输DMA用的DMA处理器电路402。还包括在包缓冲器390和外部的CPU之间传输PIO(并行输入输出)用的CPU接口电路404。CPU(处理单元)也可以内置于数据传输控制装置100内。
时钟控制器410根据内装的PLL或外部输入时钟,生成在数据传输控制装置内部使用的各种时钟。
4.1信道区、端点区
根据本实施方式,如图9A所示,在主机工作时,在包缓冲器390确保(allocate分配)信道区PIPE0~PIPEe。于是,在各个信道区PIPE0~PIPEe和***设备的各个端点之间传输数据(包)。
这里,采用本实施方式的信道区的‘信道’,和在USB中定义的‘信道’(表示设备上的端点和主机软件之间的关系的逻辑的抽象化、逻辑路径)的含义多少有些不同。
如图9A所示,本实施方式的信道区与USB(总线)连接的***设备的各个端点相对应,并且被分配在包缓冲器390上。例如,在图9A中,信道区PIPEa对应于***设备1的端点1(批量输入bulk IN),PIPEb对应于***设备1的端点2(批量输出bulk OUT)。PIPEc对应于***设备2的端点1(批量IN),PIPEd对应于***设备2的端点2(批量OUT)。PIPEe对应于***设备3的端点1(中断IN)。另外,PIPE0是控制传输端点0的专用信道区。而集线器专用数据存储单元374是把集线器200作为端点(中断IN),分配给集线器专用的信道区。
在图9A例中,在信道区PIPEa和***设备1的端点1之间,传输USB的批量输入,在PIPEb和***设备1的端点2之间,批量输出传输。在PIPEc和***设备2的端点1之间,批量输入传输。在PIPEd和***设备2的端点2之间,批量输出传输。在PIPEe和***设备3的端点1之间,传输中断输入。在集线器专用数据存储单元374和集线器200之间,可进行中断输入(IN)传输。
这样,根据本实施方式,在信道区(通用)和与其对应的端点之间,可进行任意的数据传输(同步传输、批量传输、中断传输)。把集线器200当作端点时,可以在集线器专用信道区和集线器200之间,进行中断输入传输。
根据本实施方式,在信道区和与其对应的端点之间,按照预设的数据单位(根据总数据量指定的数据单位)进行数据传输。此时的数据单位,比如,可以考虑根据IRP(I/O请求包)请求传输的数据单位或将其分成适当大小的数据单位等。将对端点的该数据单位的数据传输(连续的事务处理),在本实施方式中可以称其为‘信道(pipe)’。存储这种‘信道’数据(发送数据、接收数据)的区域为信道区。
如果用通用的信道区的预设的数据单位的传输结束,则该信道区可以释放。然后,被释放了的通用信道区,可以分配给任意端点。这样,根据本实施方式,可以使信道区和端点的对应设置发生动态变化。
根据本实施方式,如图9B所示,在***设备工作时,包缓冲器390确保(设定)端点区EP0~Epe。然后,在各端点区EP0~Epe和主机(主机控制器、***存储器)之间传输数据。
这样一来,根据本实施方式,在主机工作时,将包缓冲器100的缓冲区分配给信道区,在***设备工作时,分配给端点区。因此,在主机工作时和***设备工作时,可以共享(兼用)包缓冲器390的资源,能够节省包缓冲器390的使用存储容量。
信道区、端点区的个数为任意,不限定于6个。
4.2各组块的详细构成
下面就各个组块的详细构成加以说明。
4.2.1 OTG控制器
图10表示OTG控制器320的构成例。
OTG控制器320包括OTG寄存器单元322。该OTG寄存器单元322包括OTG控制器320的监视寄存器和控制寄存器。还包括被固件(CPU)写入的OTG状态指令的解码电路。
OTG控制器320包括OTG控制电路323。而且,OTG控制电路323包括对OTG状态进行管理的OTG管理电路324、检测ID管脚的电压电平的ID检测电路325、以及检测VBUS的电压电平的VBUS检测电路326。还包括根据收发器310发送的线路状态信息(J、K、SE0等)检测USB总线状态(复位、重新开始等)的线路状态检测电路327。
OTG控制器320包括计时的定时器328。线路状态检测电路327根据收发器310发送的线路状态信息和定时器328的计时信息,检测USB总线的状态。
为使OTG状态变换,应检测的信息是ID、VBUS的电压电平和DP/DM的线路状态。本实施方式的OTG控制器320对这些信息进行检测,并且通过监视寄存器,传给固件(CPU)。
固件根据这些检测信息,使自身的状态变换的同时,用OTG状态指令将下次应变换的状态传给OTG控制器320。
OTG控制器320对OTG状态指令进行译码,根据译码结果,进行VBUS的驱动控制、负载/卸载电阻的连接控制等,从而实现图3A、图3B中说明的SRP和HNP。
这样一来,根据本实施方式,每种状态的OTG控制由OTG控制器320承担,固件可以集中精力对状态变换进行管理。其结果,与所有的状态控制均靠固件完成的情况相比,能够减轻固件(CPU)的处理负荷的同时还能有效开发固件。
其次,固件也可不进行OTG的状态变换的判断,可以由硬件电路判断。或者,还可以由固件(软件)实现OTG控制器320的几乎所有的处理(例如,VBUS控制、负载/卸载电阻控制、ID检测、VBUS检测以及线路状态检测除外的处理)。
4.2.2主机控制器(HC)
图11表示主机控制器350的构成例。在图11中,还给出了主机控制器350和收发器310以及寄存器单元370(图8)的逻辑连接关系。
寄存器单元370包括用于对信道x(x为0、a~e中的任意一个)的信道传进行输控制的信道控制寄存器单元420。信道控制寄存器单元420包括信道设定寄存器422。信道设定寄存器422在通过固件,在事先决定了的字段上设定规定的数据时,对主机控制器350输出启动信道x的事务处理的事务处理开始信号TranGo。另外,在信道设定寄存器422,利用固件设定普通传输模式或集线器专用传输模式中的任意一种传输模式,再将与被设定的传输模式对应的传输模式信号输出给主机控制器350。即,信道设定寄存器422发挥图4中的传输模式设定寄存器170的功能。进一步,在信道设定寄存器422利用固件,设定监视集线器用的中断传输的传输周期,将被设定的传输周期设定值所对应的信号输出给主机控制器350。
信道控制寄存器单元420,还包括集线器数据接收中断寄存器424和集线器接收数据寄存器426。若由主机控制器350对集线器数据接收中断寄存器424设定集线器中断信号,则能对固件发生集线器数据接收中断,通知监视的集线器状态已发生变化的情况。另外在集线器接收数据寄存器426中,还存储用于检测来自监视的集线器的应答包中的至少检测该集线器状态变化的状态变化位。即,集线器接收数据寄存器426发挥着图4中的集线器专用数据存储单元110、或图8中的集线器专用数据存储单元374的功能。固件(CPU)通过读取集线器接收数据寄存器426中所存储的状态变化位,可以识别集线器的状态究竟发生了怎样的变化。
这种信道控制寄存器单元420,如果被设定成集线器专用传输模式,信道x的传输种类和传输方向最好分别固定设定成中断传输和其传输方向为IN方向(中断IN传输)。
在采用上述构成的信道控制寄存器420中,可以在每个信道设置,也可以对信道0、a~e中的任意一个进行设置。
采用上述构成的信道寄存器单元420的主机控制器350包括HC序列管理电路352。HC序列管理电路352进行信道传输(用信道区的数据传输)的调停、时间管理、信道传输的编排和重发管理。
更具体而言,HC序列管理电路352对帧码进行计数,下达SOF(Start-Of-Frame帧起始)包的发送指令。并且,在各帧的前头优先进行为了实行同步传输的处理,或者在同步传输之后,进行为了优先处理中断传输的处理。以及,按照信道传输的顺序,进行指示各信道传输的处理。还进行连续事务处理的次数管理,剩余的帧时间确认处理。对***设备返回来的信号交换包(ACK、NAK)进行处理。还有,对事务处理时的错误进行处理。
主机控制器350包括靶信道管理电路354。靶信道管理电路354对寄存器单元370的传输条件寄存器所设定的传输条件信息进行搬运处理。对事务处理管理电路358下达传输指令。
再具体讲,靶信道管理电路354,进行传输条件的信息选择处理,或进行中断信号的生成处理。因此,靶信道管理电路354包括信道传输控制电路355和集线器数据接收中断生成电路356。
通过信道设定寄存器422设定成集线器专用传输模式时,信道传输控制电路355就按照信道设定寄存器422所设定的传输周期,进行周期控制中断IN传输。集线器数据接收中断生成电路356借助于事务处理管理电路358来解析接收包,当判断为集线器的状态已改变时发生集线器中断,在集线器接收中断寄存器424上设定集线器中断信号。
主机控制器350,包括事务处理管理电路358。事务处理管理电路358对传输包的种类及传输顺序进行管理(事务处理的序列管理)。并且还对超时进行监视处理,另外,对事务处理结束进行通知处理。
主机控制器350包括包处理电路359。包处理电路359进行包的生成和分解处理。而且,进行PID的校验和CRC的解码和编码。还负责缓冲区的包的有效载荷读写处理和SOF包的发送处理。对收发数据进行计数处理。
向集线器发送IN令牌,接收该集线器响应的应答包之后,利用包处理电路359进行PID校验。当该应答包被识别为NAK包时,不对应答包进行处理,而是等待接收下一个应答包。另一方面,经过包处理电路359进行PID校验了的应答包,被识别为不是NAK包时,将该应答包作为集线器的数据,存储到集线器接收数据寄存器426里。
图12表示主机控制器350的传输模式设定动作概要。
首先,在主机控制器350的初期状态下,信道x的信道传输被设定成普通传输模式(步骤S10)。
然后,利用固件,对信道设定寄存器422有写入时(步骤S11:Y)、写入数据为集线器专用传输模式的设定数据时(步骤S12:Y)、将信道x的信道传输设定成集线器专用传输模式(步骤S13)。之后,在已满足复位信号输入等所规定的结束条件的前提条件下(步骤S14:Y)结束一系列的处理(结束)。
在步骤S11中,对信道设定寄存器422没有写入时(步骤S11:N)、或者在步骤S12中,写入信道设定寄存器422的数据没有设定成集线器专用传输模式用的数据时(步骤S12:N),进行到步骤S14,没有满足所规定的结束条件时(步骤S14:N),返回步骤S11。
图13表示主机控制器350的集线器专用传输模式的动作概要。
首先,确认传输模式是否是集线器专用传输模式(步骤S20)。利用信道设定寄存器422,将信道x的信道传输设定成集线器专用传输模式时(步骤S21:Y);利用信道设定寄存器422,设定事务处理开始信号TranGo,而且,在传输条件寄存器上,将指定关于信道x传输数据开始用的指定位设定成了有效(步骤S22:Y)的条件下,例如,靶信道管理电路354开始进行中断IN传输的事务处理(步骤S23)。以此,发行中断IN令牌包。之后,到传输条件寄存器的指定位在变成无效为止,信道传输控制电路355,根据信道设定寄存器422所设定的传输周期设定值,开始周期性地事务处理,进行中断IN传输。
其后,包处理电路359,通过收发器310,等待接收来自集线器的应答包(步骤S24:N)。当接收到应答包时(步骤S24:Y)、识别是否是NAK包(第一包)(步骤S25)。
当接收的包被识别为NAK包时(步骤S25:Y),则返回步骤S22。
另外,当接收的包被识别为不是NAK包时(步骤S25:N),包处理电路359就将接收的包存储到集线器接收数据寄存器426里(步骤S26),然后,将该情况通知给事务处理管理电路358和靶信道管理电路354。
接着,事务处理管理电路358发送信号交换包(步骤S27),靶信道管理电路354利用集线器接收中断生成电路356,发生集线器中断(步骤S28)。
在步骤S21,利用信道设定寄存器422,信道x的信道传输没有被设定成集线器专用传输模式时(S21:N),作为普通传输模式,按照USB的OTG规格传输数据(步骤S29)。
在步骤S28、步骤S29之后紧接着在已满足复位信号输入等所规定的结束条件的前提条件下(步骤S30:Y),结束一系列的处理(结束)。在步骤S30,没有满足规定的结束条件时(步骤S30:N),或在步骤S22传输条件寄存器的指定位变成无效时(步骤S22:N)、返回步骤S20。
如此,根据本实施方式,在集线器专用传输模式中,为了监视集线器只采用集线器接收数据寄存器426,而不需要确保包缓冲器390的资源。
图14表示***设备控制器360的构成例。
***设备控制器360包括事务处理管理电路362和包处理电路364。事务处理管理电路362和包处理电路364基本进行和主机控制器350的事务处理管理电路358及包处理电路359同样的处理。
4.2.3缓冲控制器
图15表示缓冲控制器380的构成例。
缓冲控制器380包括区域分配(allocation)电路382。该区域分配电路382是确保包缓冲器390的缓冲区(主机工作时设定为信道区、***设备工作时设定为端点区的区域)的电路。
在区域分配电路382中,根据最大包尺寸(广义上指页面尺寸)以及页数计算缓冲区的区域尺寸、起始地址、终止地址等。并且,各缓冲区的写入指针、读出指针,与数据的传输方向相适应,被分配为DMA用指针、CPU用指针、USB用指针。
另外,各缓冲区的写入指针、读出指示字的指针信息(位置信息),保持在寄存器单元370的各传输条件寄存器(PIPE/EP寄存器)中。
指针管理电路384是在更新指针的同时,生成存储在包缓冲器390的实际地址的电路。更具体而言,基于被区域分配电路382分配的各种指针,生成CPU用地址、DMA用地址、和USB用地址。而且,每次从CPU(CPU接口电路)、DMA(DMA处理器电路)存取时,或每次结束USB(HC或PC)处理(ACK、NAK等信息交换收发)时进行指针的更新处理。并且,更新后的指针信息,通过区域分配电路382写回到寄存器单元370的各传输条件寄存器。
缓冲器管理电路386是管理包缓冲器390的存储的电路。缓冲器管理电路386,接收从指针管理电路384的地址等,进行包缓冲器390的数据输入和输出、以及地址、输出启动、写入启动、读出启动等输出。
另外,缓冲器管理电路386从中调停来自CPU(CPU接口电路)、DMA(DMA处理器电路)、以及USB(主机控制器或***设备控制器)的存取。基于这个调停结果,将CPU用地址、DMA用地址、USB用地址的任何一个作为包缓冲器390的存取地址输出,设定CPU、DMA或USB与包缓冲器390之间的数据传输路经。
HC/PC选择器388,控制缓冲器管理电路386(缓冲控制器380)和主机控制器350(HC)或***设备控制器360(PC)之间的连接的转换。例如,主机工作时,连接主机控制器350和缓冲器管理电路386,***设备工作时,连接***设备控制器360和缓冲器管理电路386。而且,这种连接的转换控制是基于从OTG控制器320(OTGC)的HC/PC启动信号进行的。
5.电子设备
接下来,以包括本实施方式的数据传输控制装置的电子设备为例加以说明。
例如,图16A是电子设备之一的打印机内部方框图,图17A是其外观图。CPU 510(处理器)进行***整体的控制等。操作单元511是用户操作打印机所需部分。控制程序、字型等存储在ROM516中,而RAM 517(***存储器)具有作为CPU 510的作业区域的功能。DMAC 518是不通过CPU 510传输数据的DMA控制器。显示面板519用于将打印机的工作状态传达给用户。
从个人电脑、数码相机、数码摄像机等其他设备通过USB传输过来的串行印刷数据(文字数据、图像数据),被数据传输控制装置500转换为并行印刷数据。而且,转换后的并行印刷数据,通过CPU 510或DMAC 518被送到印刷处理单元(打印机引擎)512。之后,在印刷处理单元512对并行印刷数据进行预设的处理,通过由打印头等组成的印刷单元(进行数据输出处理的装置)514在纸上印刷输出。
图16B是电子设备之一的数码相机内部方框图,图17B是其外观图。CPU 520用于整个***的控制等。操作单元521(快门按钮、操作按钮等)是用户操作数码相机用的部分。由ROM 526存储控制程序等;而RAM 527具有作为CPU 520的作业区的功能。DMAC528是DMA控制器。
由CCD、镜头等组成的拍摄单元(进行数据的获取处理的装置)由522拍摄图像,图像处理单元524处理拍摄的图像数据。并且,CPU 520或DMAC 528将处理后的图像数据传输到数据传输控制装置500。数据传输控制装置500将并行图像数据转换为串行数据,通过USB发送到打印机、存储装置、个人电脑等其他设备。
图16C给出了电子设备之一的CD-RW驱动器(存储装置)内部方框图,图17C是其外观图。CPU 530用于***整体控制等。操作单元531是用户操作CD-RW用的。控制程序等存储在ROM 536, 而RAM 537具有作为CPU 530的作业区的功能。DMAC 538是DMA控制器。
通过激光器、电动机、光学***等组成的读出&写入单元(进行数据的获取处理的装置和进行数据的记忆处理的装置)533从CD-RW 532读出的数据,被输入到信号处理单元534,进行错误订正处理等预设的信号处理。而且,将经过信号处理后的数据通过CPU 530或DMAC 538传输到数据传输控制装置500。数据传输控制装置500将该并行数据转换为串行数据,通过USB发送到其他设备。
另一方面,通过USB从其他机器传输过来的串行数据,由数据传输控制装置500转换为并行数据。并且,该并行数据通过CPU530或DMAC 538传输到信号处理单元534。之后,在信号处理单元534对该并行数据施加预设的信号处理,并通过读出&写入单元533存储到CD-RW 532。
另外,在图16A、图16B、图16C中,除了CPU 510、520、530之外,在数据传输控制装置500中还可以另外设置用于数据传输控制的CPU。
如果将本实施例的数据传输控制装置应用于电子设备,可以制造具有OTG功能的电子设备。即,可能给电子设备赋予主机的功能,可能赋予设备功能,能够开创出前所未有的应用。
另外,将本实施例的数据传输控制装置应用于电子设备,可减轻组装到电子设备上的CPU(处理器)的处理负荷,可以使用廉价的CPU。还有,CPU可以从容地进行数据传输控制处理以外的其他处理,并且可以提高电子设备的性能,降低成本。另外,可以简化在CPU上工作的固件的程序,缩短电子设备的开发周期。
此外,可以适用本实施例的数据传输控制装置的电子设备,除了上文提到的以外,还可以想到很多,例如:各种光盘驱动器(CD-ROM、DVD),光磁盘驱动器(MO)、硬盘驱动器、数码相机、手机、扫描仪、TV、VTR、音响设备、电话机、投影设备、个人电脑、电子记事本、或文字处理器等。
并且,本发明并不仅限于本实施例,在本发明的主题范围之内可以采取各种变形实施。
例如,本发明的数据传输控制装置的构成,并不仅限于图4等说明的内容,可以采用各种变形方式实施。
并且,在数据传输控制装置中,配置了集线器专用的数据记忆单元,但并不仅限于此,也可以配置设备专用的数据记忆单元。
并且,数据传输控制装置的各组块(HC、PC、OTGC等)的构成,也并不仅限于本实施例说明的内容,可以采用各种变形方式实施。
另外,在说明书的描述中,引用术语(OTG控制器、CPU·固件、主机控制器·***设备控制器、USB、信道区·端点区等)时标注了其广义术语(状态控制器、处理器、传输控制器、总线、缓冲区等),在说明书的其他描述中也可以置换成广义术语。
另外,在本发明中的从属权利要求涉及的发明中,其构成也可以省略被从属权利要求中的部分构成要件。另外,本发明的独立权利要求1涉及的发明也可以从属于其它的独立权利要求。
另外,在本实施例中描述了USB的OTG规格适用例,但本发明适用的并不限于OTG规格。也就是说,不仅USB的OTG,本发 明还适用于原来的USB1.1、USB2.0以及在此基础上发展更新后的规格的数据传输。
尽管本发明已经参照附图和优选实施例进行了说明,但是,对于本领域的技术人员来说,本发明可以有各种更改和变化。本发明的各种更改、变化和等同替换均由所附的权利要求书的内容涵盖。
Claims (11)
1.一种用于数据传输的数据传输控制装置,其特征在于包括:
包缓冲器,用于存储对方设备和所述数据传输控制装置之间的包;
包信息发送单元,用于周期性地向集线器发送询问所述集线器状态有无变化的令牌包;
包信息接收单元,用于接收所述集线器返回的对应于所述令牌包的应答包;
集线器专用数据存储单元,设置于与所述包缓冲器分开的区域,用于储存所述应答包;以及
传输控制器,用于在控制将所述包信息接收单元接收的所述应答包写入所述集线器专用数据存储单元的同时,控制发生表示所述集线器的状态已改变的中断。
2.根据权利要求1所述数据传输控制装置,其特征在于:
所述传输控制器以所述应答包不是NAK包为条件,在控制将所述应答包写入集线器专用数据存储单元的同时,控制发生表示集线器的状态已改变的中断;所述NAK包是表示没有应返回数据的包。
3.根据权利要求1所述数据传输控制装置,其特征在于:
在所述包缓冲器上分配多个信道区,在所述多个信道区的各信道区中存储在多个端点中的每一个端点与所述数据传输控制装置之间传送的包。
4.根据权利要求1所述数据传输控制装置,其特征在于包括:
传输模式设定寄存器,其设定用于指定集线器专用传输模式或普通传输模式的设定数据;
其中,在所述包缓冲器中分配多个信道区,在所述多个信道区的各信道区中存储在多个端点中的每一个端点与所述数据传输控制装置之间传送的包,
当被所述传输模式设定寄存器设定成集线器专用传输模式时,在所述集线器专用数据存储单元中分配用于存储在所述集线器与所述数据传送控制装置之间传送的包的存储区;
当被所述传输模式设定寄存器设定成普通传输模式时,在所述集线器专用数据存储单元中不分配存储区。
5.根据权利要求1所述数据传输控制装置,其特征在于包括具有指定位的传输条件寄存器,用于指定使用了所述集线器专用数据存储单元的数据传输的开始;
在所述指定位为有效状态时,所述包信息发送单元发出所述令牌包。
6.根据权利要求5所述数据传输控制装置,其特征在于:在所述指定位变成有效之后至变成无效的期间内,所述包信息发送单元周期性地持续发出所述令牌包。
7.根据权利要求1所述的数据传输控制装置,其特征在于其根据USB(Universal Serial Bus,通用串行总线)规格传输数据。
8.根据权利要求1所述数据传输控制装置,其特征在于包括状态控制器,用于通过多种状态的转换来控制作为主机进行工作的所述主机工作或作为***设备进行工作的所述***设备工作,所述多种状态包括作为主机工作的主机工作状态和作为***设备工作的***设备工作状态;
所述传输控制器,包括:主机控制器,为了进行作为主机而工作的所述主机工作,而进行数据传输;以及***设备控制器,为了进行作为所述***设备而工作的所述***设备工作,而进行数据传输;
其中,在进行作为主机而工作的主机工作时,在包缓冲器上分配多个信道区,所述主机控制器在所述多个信道区中的一个区和对应于所述一个信道区的端点之间进行包传输;
在进行作为***设备而工作的所述***设备工作时,由包缓冲器确保多个端点区,所述***设备控制器在所述多个端点区中的一个区和进行作为***设备工作的所述***设备工作时的主机之间进行包传输;
在进行作为主机工作的所述主机工作时,以所述应答包不是NAK包为条件,由所述传输控制器在控制所述集线器专用数据存储单元写入所述应答包的同时,控制发生表示所述集线器的状态已改变的中断,所述NAK包是表示没有应返回数据的包。
9.根据权利要求8所述数据传输控制装置,其特征在于其根据USB的OTG(On-The-Go)规格传输数据。
10.一种电子设备,其特征在于包括权利要求1所述的数据传输控制装置和控制所述数据传输控制装置的处理器。
11.一种用于数据传输控制装置的数据传输的数据传输控制方法,其中,所述数据传输控制装置包括集线器专用数据存储单元和包缓冲器,其特征在于:
周期性地发出询问集线器的状态有无变化的令牌包;
接收所述集线器发来的对应于所述令牌包的应答包;
所述应答包以不是第一包为条件,将所述应答包写入所述集线器专用数据存储单元的同时,发生表示所述集线器的状态已变化的中断,所述第一包表示没有应返回数据,
其中,所述集线器专用数据存储单元设置于与所述包缓冲器分开的区域;
对方设备和所述数据传输控制装置之间的包存储于所述包缓冲器中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003-127806 | 2003-05-06 | ||
JP2003127806A JP3632695B2 (ja) | 2003-05-06 | 2003-05-06 | データ転送制御装置、電子機器及びデータ転送制御方法 |
JP2003127806 | 2003-05-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1551592A CN1551592A (zh) | 2004-12-01 |
CN1551592B true CN1551592B (zh) | 2011-07-06 |
Family
ID=33504183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004100372903A Expired - Fee Related CN1551592B (zh) | 2003-05-06 | 2004-04-30 | 数据传输控制装置、电子设备及数据传输控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7505461B2 (zh) |
JP (1) | JP3632695B2 (zh) |
CN (1) | CN1551592B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI247216B (en) * | 2004-04-09 | 2006-01-11 | Prolific Technology Inc | USB transmission interface device capable of reducing working current |
US8595394B1 (en) | 2003-06-26 | 2013-11-26 | Nvidia Corporation | Method and system for dynamic buffering of disk I/O command chains |
US8683132B1 (en) | 2003-09-29 | 2014-03-25 | Nvidia Corporation | Memory controller for sequentially prefetching data for a processor of a computer system |
US8356142B1 (en) | 2003-11-12 | 2013-01-15 | Nvidia Corporation | Memory controller for non-sequentially prefetching data for a processor of a computer system |
US8700808B2 (en) | 2003-12-01 | 2014-04-15 | Nvidia Corporation | Hardware support system for accelerated disk I/O |
TWM267773U (en) * | 2004-12-08 | 2005-06-11 | Cheng-Chun Chang | Digital image capturing device having master control function |
US8356143B1 (en) | 2004-10-22 | 2013-01-15 | NVIDIA Corporatin | Prefetch mechanism for bus master memory access |
JP4337783B2 (ja) * | 2005-06-30 | 2009-09-30 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
CN104408003B (zh) * | 2006-12-22 | 2018-06-05 | 高通股份有限公司 | 增强的无线usb协议和集线器 |
US8356128B2 (en) | 2008-09-16 | 2013-01-15 | Nvidia Corporation | Method and system of reducing latencies associated with resource allocation by using multiple arbiters |
US8370552B2 (en) | 2008-10-14 | 2013-02-05 | Nvidia Corporation | Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions |
US7895385B2 (en) * | 2008-12-09 | 2011-02-22 | Nvidia Corporation | Establishing communication over serial buses in a slave device |
CN102301360B (zh) * | 2009-01-29 | 2015-08-05 | 惠普开发有限公司 | 有选择地向多个发送计算机传送***设备的数据 |
US8698823B2 (en) | 2009-04-08 | 2014-04-15 | Nvidia Corporation | System and method for deadlock-free pipelining |
JP5456434B2 (ja) * | 2009-10-22 | 2014-03-26 | ルネサスエレクトロニクス株式会社 | パイプ調停回路、パイプ調停方法 |
JP5521620B2 (ja) * | 2010-02-19 | 2014-06-18 | 富士通株式会社 | 中継装置、仮想マシンシステム及び中継方法 |
US9330031B2 (en) | 2011-12-09 | 2016-05-03 | Nvidia Corporation | System and method for calibration of serial links using a serial-to-parallel loopback |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
JP6266308B2 (ja) * | 2013-11-07 | 2018-01-24 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10122576B2 (en) | 2015-03-17 | 2018-11-06 | Microsoft Technology Licensing, Llc | Intelligent role selection for dual-role devices |
JP6578899B2 (ja) * | 2015-11-13 | 2019-09-25 | 株式会社ジェイテクト | 通信システムおよび通信ネットワークの情報生成方法 |
CN106250785A (zh) * | 2016-08-17 | 2016-12-21 | 成都市和平科技有限责任公司 | 一种数据中断传输的保护方法和基于该保护方法的数据存储器 |
US10354501B2 (en) * | 2016-11-08 | 2019-07-16 | The Boeing Company | Autonomous, low energy, access indication system |
CN106649161B (zh) * | 2016-12-13 | 2023-11-14 | 广东工业大学 | 一种电脑与电脑之间的数据传输装置 |
JP2023108954A (ja) | 2022-01-26 | 2023-08-07 | 東芝テック株式会社 | 監視装置及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4982400A (en) * | 1988-12-29 | 1991-01-01 | Intel Corporation | Ring bus hub for a star local area network |
CN1380615A (zh) * | 2001-04-09 | 2002-11-20 | 华邦电子股份有限公司 | 具有多个上游端口的usb集线器及使用该集线器的电脑*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10303948A (ja) | 1997-04-28 | 1998-11-13 | Canon Inc | 通信装置およびその方法 |
US6941326B2 (en) * | 2001-01-24 | 2005-09-06 | Microsoft Corporation | Accounting for update notifications in synchronizing data that may be represented by different data structures |
JP3558059B2 (ja) * | 2001-08-10 | 2004-08-25 | セイコーエプソン株式会社 | 電源制御回路及び電子機器 |
US6732171B2 (en) * | 2002-05-31 | 2004-05-04 | Lefthand Networks, Inc. | Distributed network storage system with virtualization |
US7469343B2 (en) * | 2003-05-02 | 2008-12-23 | Microsoft Corporation | Dynamic substitution of USB data for on-the-fly encryption/decryption |
-
2003
- 2003-05-06 JP JP2003127806A patent/JP3632695B2/ja not_active Expired - Fee Related
-
2004
- 2004-04-29 US US10/834,192 patent/US7505461B2/en not_active Expired - Fee Related
- 2004-04-30 CN CN2004100372903A patent/CN1551592B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4982400A (en) * | 1988-12-29 | 1991-01-01 | Intel Corporation | Ring bus hub for a star local area network |
CN1380615A (zh) * | 2001-04-09 | 2002-11-20 | 华邦电子股份有限公司 | 具有多个上游端口的usb集线器及使用该集线器的电脑*** |
Non-Patent Citations (3)
Title |
---|
陈启美,王胜,丁传锁,陈锁柱.USB集线器规范.电子自动化设备21 7.2001,21(7),76. |
陈启美,王胜,丁传锁,陈锁柱.USB集线器规范.电子自动化设备21 7.2001,21(7),76. * |
马伟,邵贝贝.O T G 补充协议开辟U S B 的新篇章.电子产品世界.2002,68-69. * |
Also Published As
Publication number | Publication date |
---|---|
JP2004334417A (ja) | 2004-11-25 |
JP3632695B2 (ja) | 2005-03-23 |
CN1551592A (zh) | 2004-12-01 |
US20050002391A1 (en) | 2005-01-06 |
US7505461B2 (en) | 2009-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1551592B (zh) | 数据传输控制装置、电子设备及数据传输控制方法 | |
JP3636157B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3649226B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2004021613A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
US9680972B2 (en) | SD switch box in a cellular handset | |
US7337382B2 (en) | Data transfer control device, electronic instrument, and data transfer control method | |
JP2008502976A (ja) | 分割トランザクションを処理するためのバス・コントローラ | |
JP3726898B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3755594B2 (ja) | データ転送制御装置及び電子機器 | |
US7469304B2 (en) | Data transfer control device, electronic equipment, and method for a data transfer through a bus, the data transfer control device including a register and a packet buffer that are commonly used during a host operation and a peripheral operation | |
TWI233553B (en) | Bus system and bus interface for connection to a bus | |
JP2002342260A (ja) | Usb送信制御回路およびその制御方法 | |
JP3614161B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP3636160B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP2005504393A (ja) | バス・システムおよびバス・インターフェース | |
JP2000269961A (ja) | Usbホストとネットワークとの間のデータ転送素子と、この転送を制御するフロー制御方法 | |
JP4127069B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JP4127071B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
JPH07319841A (ja) | シリアル制御装置 | |
CN116610601A (zh) | 一种数据传输装置及其控制方法、装置、介质 | |
JP2003316734A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
KR20010054137A (ko) | 시스템 효율을 향상시키는 버스 제어방법 | |
JP2004021976A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110706 Termination date: 20210430 |
|
CF01 | Termination of patent right due to non-payment of annual fee |