掌桥专利:专业的专利平台
掌桥专利
首页

一种通用串列汇流排装置以及存取方法

文献发布时间:2023-06-19 11:52:33


一种通用串列汇流排装置以及存取方法

技术领域

本发明涉及数据存取领域,特别涉及一种通用串列汇流排装置以及存取方法。

背景技术

通用串列汇流排(USB)主要用以连接计算机系统与外部装置。当不同的外部装置利用通用串列汇流排耦接计算机系统时,计算机会自动识别外部装置,并搭配适当的驱动程序,而不需使用者再另行设定或安装驱动程序。

发明内容

本发明提供一种通用串列汇流排装置,包括一数据缓冲存储器、一端点以及一连接端口。数据缓冲存储器包括一第一缓冲区以及一第二缓冲区。第一缓冲区用以存储一第一数据。第二缓冲区用以存储一第二数据。端点对应第一及第二缓冲区。连接端口用以耦接一主机。当主机发出一巨量输入要求时,端点根据一缓冲转换旗标读取第一或第二缓冲区。

在一可能实施例中,当所述缓冲转换旗标为一第一数值时,端点读取第一缓冲区,用以给主机提供一第一数据。当缓冲转换旗标为一第二数值时,端点读取第二缓冲区,用以给主机提供一第二数据。

在另一可能实施例中,在端点开始给主机提供第一数据时,缓冲转换旗标为第二数值。在端点开始给主机提供第二数据时,缓冲转换旗标为第一数值。

本发明还提供一种存取方法,适用于一通用串列汇流排装置。通用串列汇流排装置具有一数据缓冲存储器。数据缓冲存储器包括一第一缓冲区以及一第二缓冲区。本发明的存取方法包括:设定一端点对应第一及第二缓冲区;接收一外部指令;当所述外部指令为一巨量输入要求时,根据一缓冲转换旗标读取第一或第二缓冲区。

在一可能实施例中,当缓冲转换旗标为一第一数值时,读取第一缓冲区,用以提供一第一数据至一外部主机。当缓冲转换旗标为一第二数值时,读取第二缓冲区,用以提供一第二数据至一外部主机。

在另一可能实施例中,在端点开始为外部主机提供所述第一数据时,缓冲转换旗标由第一数值被改变为第二数值。在端点开始为外部主机提供第二数据时,所述缓冲转换旗标由第二数值被改变为第一数值。

本发明的存取方法可经由本发明的通用串列汇流排装置来实现,通用串列汇流排装置为可执行特定功能的硬件,也可以通过程序码的形式存储于存储介质中,并结合特定硬件来实现。当程序码被电子装置、处理器、计算机或机器载入且执行时,电子装置、处理器、计算机或机器变成用以实行本发明的通用串列汇流排装置。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的操作系统的示意图。

图2为本发明的存取方法的一种可能的流程示意图。

附图标号:

100:操作系统;

110:主机;

111:连接端口;

120:通用串列汇流排装置;

128:连接端口;

121~124:端点;

125:数据缓冲存储器;

126、127:缓冲区;

130:连接线;

BUFTOG:缓冲转换旗标。

S211~S216:步骤。

具体实施方式

为了让本发明的目的、特征和优点能更明显易懂,下文特举出实施例,并配合附图,做详细的说明。本发明说明书提供不同的实施例来说明本发明不同实施方式的技术特征。其中,实施例中的各元件的配置仅用以说明,并非用以限制本发明。另外,实施例中图式标号的部分重复,是为了简化说明,并非意指不同实施例之间的关联性。

图1为本发明的操作系统的示意图。如图所示,操作系统100包括一主机110以及一通用串列汇流排(USB)装置120。主机110包括一连接端口111,用以耦接通用串列汇流排装置120。在本实施例中,连接端口111为一USB 2.0连接端口。本发明并不限定通用串列汇流排装置数量。在其它实施例中,主机110可能耦接更多的通用串列汇流排装置。在此例中,主机110为不同的通用串列汇流排装置分配不同的位址。

通用串列汇流排装置120包括端点(endpoint)121~124、一数据缓冲存储器125以及一连接端口128。在一可能实施例中,通用串列汇流排装置120为一全速装置(Full-SpeedDevice),其传输速率最高可达12Mbps。

连接端口128用以耦接主机110。在一可能实施例中,连接端口128透过一连接线130耦接主机110。在另一可能实施例中,连接端口128直接插入主机110的连接端口111。在此例中,连接端口128也是一USB 2.0连接端口。

端点121~124耦接于连接端口128与数据缓冲存储器125之间。端点121~124对应不同型态的传输。在本实施例中,端点121~124共用数据缓冲存储器125。在一可能实施例中,每一端点通过一相对应的虚拟管线(virtual pipe)与主机110沟通。本发明并不限定端点的数量。在其它实施例中,通用串列汇流排装置120可能具有更多的端点。

主机110利用通用串列汇流排装置120内的至少一端点,使能一相对应的功能。举例而言,如果通用串列汇流排装置120同时具有鼠标及U盘功能时,主机110可能利用通用串列汇流排装置120内部的一第一特定端点,进行一中断传输(interrupt transfer),用以启动鼠标功能。在此例中,所述第一特定端点进行一中断输入(interrupt IN)传输。另外,主机110可能利用通用串列汇流排装置120内部的一第二特定端点以及一第三特定端点,进行一巨量传输(bulk transfer),用以读出数据或是写入数据。在此例中,第二特定端点进行一巨量输入(bulk IN)传输,第三特定端点进行一巨量输出(bulk OUT)传输。因此,当主机110想使用通用串列汇流排装置120的一特定功能时,主机110只需指定相对应的端点,便可使用通用串列汇流排装置120的功能。

在本实施例中,端点121及122进行一控制传输(control transfers),用于控制传输命令及状态操作,如设定USB装置、取得USB装置的资讯、发送指令到USB装置等。在一可能实施例中,端点121进行一控制输入(control IN)传输,用以提供数据缓冲存储器125的数据至主机110,而端点122进行一控制输出(control OUT)传输,用以将来自主机110的输出数据写入数据缓冲存储器125。另外,端点123及124进行一批次传输(Bulk Transfers),用于大量数据传输。在本实施例中,端点123进行一巨量输入传输,用以将数据缓冲存储器125的数据提供给主机110,端点124进行一巨量输出传输,用以将来自主机110的输出数据写入数据缓冲存储器125。在本实施例中,端点123对应数据缓冲存储器125的缓冲区126及127。在其它实施例中,通用串列汇流排装置120还可具有其它端点,用以进行中断传输。在此例中,进行中断传输的端点利用固定速度,传输少量数据。

本发明并不限定数据缓冲存储器125的种类。在一可能实施例中,数据缓冲存储器125为一挥发性存储器(Volatile Memory),如动态随机存取存储器(Dynamic RandomAccess Memory;DRAM)或是静态随机存取存储器(Static Random Access Memory;SRAM)。在一可能实施例中,数据缓冲存储器125的存储空间为512Bytes。

另外,本发明并不限定缓冲区126及127的大小。在一可能实施例中,缓冲区126的存储空间相同于缓冲区127的存储空间。举例而言,缓冲区126及127的存储空间均为64Bytes。在本实施例中,缓冲区126的起始位址为0108,其结束位址为0147,缓冲区127的起始位址为01C8,其结束位址为0207。因此,缓冲区127与缓冲区126不相邻。在其它实例中,缓冲区127可能与缓冲区126相邻。在此例中,缓冲区126的结束位址为0147,而缓冲区127的起始位址为0148。

在本实施例中,当主机110发出一巨量输入要求(Bulk IN transfer)时,端点123根据一缓冲转换旗标(buffer toggle flag)BUFTOG读取缓冲区126或缓冲区127。在一可能实施例中,缓冲转换旗标BUFTOG的初始值为一数值0。由于缓冲转换旗标BUFTOG为数值0,故一写入电路(未显示)在缓冲区126中写入一数据DT1。此时,如果主机110发出一巨量输入要求,由于缓冲转换旗标BUFTOG为数值0,故端点123读取缓冲区126,用以给主机110提供数据DT1。

在端点123开始给主机110提供数据DT1时,一硬体架构(未显示)改变缓冲转换旗标BUFTOG为一数值1。由于所述缓冲转换旗标BUFTOG为数值1,故一写入电路(未显示)在缓冲区127中写入一数据DT2。因此,当主机110再次发出一巨量输入要求时,由于所述缓冲转换旗标BUFTOG为数值1,故端点123读取缓冲区127,用以给主机110提供数据DT2。

当端点123开始给主机110提供数据DT2时,所述硬体架构改变缓冲转换旗标BUFTOG为数值0。因此,一写入电路(未显示)在缓冲区126中写入一数据DT3。此时,如果主机110再次发出一巨量输入要求,由于缓冲转换旗标BUFTOG为数值0,故端点123读取缓冲区126,用以给主机110提供数据DT3。

在端点123开始给主机110提供数据DT3时,所述硬体架构(未显示)改变缓冲转换旗标BUFTOG为数值1。由于缓冲转换旗标BUFTOG为数值1,故一写入电路(未显示)在缓冲区127中写入一数据DT4。因此,当主机110再次发出一巨量输入要求时,由于缓冲转换旗标BUFTOG为数值1,故端点123读取缓冲区127,用以给主机110提供数据DT4。

由于主机110只通过通用串列汇流排装置120内单一端点(如123),便可读取两缓冲区的数据,而不需透过两端点读取两缓冲区的数据,故可避免因端点的短缺造成无法同时实现复合装置的多功能的情况,进而减少通用串列汇流排装置120内部实现一功能时的端点使用数量。另外,通过使用两个缓冲区,可减少通用串列汇流排装置120暂时无数据传送至主机110或无法接收来自主机110的数据的情况发生,因而提高通用串列汇流排装置120的效率。此外,通过判断缓冲转换旗标BUFTOG的数值,便可在两缓冲区间自动切换,将数据事先写入空闲的缓冲区中,因而提高存取速度。

图2为本发明的存取方法的一种可能的流程示意图。本发明的存取方法适用于通用串列汇流排装置中。所述通用串列汇流排装置具有一数据缓冲存储器。所述数据缓冲存储器包括一第一缓冲区以及一第二缓冲区。本发明并不限定数据缓冲存储器的种类及大小。在一可能实施例中,所述数据缓冲存储器为一静态随机存取存储器,其具有512Bytes的存储空间。

首先,设定通用串列汇流排装置内的一端点对应第一及第二缓冲区(步骤S211)。在一可能实施例中,所述端点用以进行一巨量输入传输。本发明并不限定第一及第二缓冲区在数据缓冲存储器中的位置。在一可能实施例中,第一缓冲区与第二缓冲区相邻或不相邻。在其它实施例中,第一缓冲区的存储空间与第二缓冲区的存储空间可能相同,也可能不同。

接着,接收一外部指令(步骤S212)。在本实施例中,外部指令由一主机所提供。主机通过外部指令,要求通用串列汇流排装置输出数据,或是给通用串列汇流排装置提供数据。当外部指令为一巨量输入要求时,根据一缓冲转换旗标,读取第一或第二缓冲区(步骤S213)。

在本实施例中,步骤S213包括步骤S214~S216。步骤S214为判断缓冲转换旗标是否为一第一数值(如0)。当缓冲转换旗标为第一数值时,读取第一缓冲区,用以给主机提供一第一数据(步骤S215)。在一可能实施例中,在开始给主机提供第一数据后,改变缓冲转换旗标为一第二数值(如1)。此时,第一缓冲区的写入优先权高于第二缓冲区的写入优先权。在此例中,如果有新的数据(如称第三数据)要写入时,会优先写在第一缓冲区。

当缓冲转换旗标不为第一数值(如为数值1)时,读取第二缓冲区(步骤S216),用以给主机提供一第二数据。此时,由于缓冲转换旗标不为第一数值,故将一第三数据写入第一缓冲区。另外,在开始给主机提供第二数据时,改变缓冲转换旗标为第一数值。此时,第二缓冲区的写入优先权高于第一缓冲区的写入优先权。因此,如果有新的数据(如称第四数据)要写入时,会优先写在第二缓冲区。

本发明的存取方法,或特定型态或其部份,可以以程序码的型态存在。程序码可存储于存储介质,如软盘、光盘、硬盘,或是任何其他机器可读取(如计算机可读取)存储媒体,或是不限于外在形式的计算机程序产品,其中,当程序码被机器,如计算机载入且执行时,此机器变成用以参与本发明的通用串列汇流排装置。

程序码也可通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如计算机接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。

除非另作定义,在此所有词汇(包含技术与科学词汇)均属本发明所属技术领域中具有通常知识者的一般理解。此外,除非明白表示,词汇在一般字典中的定义应解释为与其相关技术领域的文章中的意义一致,而不应解释为理想状态或过分正式的语态。

虽然本发明已以上述较佳实施例揭露,然其并非用以限定本发明,任何所属技术领域中的技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰。举例来说,本发明实施例所述的系统、装置或是方法可以硬件、软件或硬件以及软件的组合的实体实施例加以实现。因此本发明的保护范围当以权利要求所限定的保护范围为准。

相关技术
  • 一种通用串列汇流排装置以及存取方法
  • 通用串列汇流排装置
技术分类

06120113084102