CN115883645A - 通信配置方法、电子设备及存储介质 - Google Patents
通信配置方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115883645A CN115883645A CN202211483157.5A CN202211483157A CN115883645A CN 115883645 A CN115883645 A CN 115883645A CN 202211483157 A CN202211483157 A CN 202211483157A CN 115883645 A CN115883645 A CN 115883645A
- Authority
- CN
- China
- Prior art keywords
- endpoint
- data
- common
- target
- slave
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000007812 deficiency Effects 0.000 claims abstract description 5
- 230000005540 biological transmission Effects 0.000 claims description 51
- 238000004590 computer program Methods 0.000 claims description 22
- 238000012795 verification Methods 0.000 claims description 10
- 238000003672 processing method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请适用于数据通信技术领域,提供了通信配置方法、电子设备及存储介质,其中,方法包括:根据需要通信的主机与从机分别对应的端点信息和通信所需的管道信息,确定主机和从机是否存在端点资源缺乏情况;在主机和从机中的至少一者存在端点资源缺乏情况时,确定主机与从机之间的共用端点及共用端点对应的多个目标管道;根据主机的第一资源配置信息、从机的第二资源配置信息和共用端点对应的各目标管道,生成共用端点的端点共用描述信息;根据共用端点的端点共用描述信息,对主机和从机进行通信配置。本申请通过在主机与从机之间配置共用端点,实现在主机和从机中的至少一者存在端点资源缺乏情况时,主机与从机之间可以正常通信。
Description
技术领域
本申请属于数据通信技术领域,尤其涉及一种通信配置方法、电子设备及存储介质。
背景技术
USB总线是一种很流行和通用的总线,端点是USB总线上的基本通讯单元。管道是USB主机与USB从机之间的逻辑通讯通道,一个管道由一个或多个端点组成。根据USB规范,一个USB主机或一个USB从机上通常最多有16个输出端点和16个输入端点;出于成本或其它原因,有些USB设备上甚至只有三四个输入端点或者输出端点。也即是,USB总线上的端点数目是极其有限的。
实际应用中,由于端点的极其有限性,当一个应用场景中使用较多的管道时,有限的端点可能不足以支撑所有的管道,导致应用的功能不能充分、完备地实现,甚至可能导致通讯完全无法正常进行。
发明内容
本申请实施例提供了通信配置方法、电子设备及存储介质,旨在解决相关技术中,有限的端点不足以支撑所有的管道,导致应用的功能不能充分、完备地实现,甚至可能导致通讯完全无法正常进行的问题。
第一方面,本申请实施例提供了一种通信配置方法,该方法包括:
根据需要通信的主机与从机分别对应的端点信息和通信所需的管道信息,确定主机和从机是否存在端点资源缺乏情况;
在主机和从机中的至少一者存在端点资源缺乏情况时,确定主机与从机之间的共用端点及共用端点对应的多个目标管道,共用端点为被多个目标管道共用的端点;
根据主机的第一资源配置信息、从机的第二资源配置信息和共用端点对应的各目标管道,生成共用端点的端点共用描述信息;
根据共用端点的端点共用描述信息,对主机和从机进行通信配置。
第二方面,本申请实施例提供了一种通信配置装置,包括:
信息确定单元,用于根据需要通信的主机与从机分别对应的端点信息和通信所需的管道信息,确定主机和从机是否存在端点资源缺乏情况;
共用确定单元,用于在主机和从机中的至少一者存在端点资源缺乏情况时,确定主机与从机之间的共用端点及共用端点对应的多个目标管道,共用端点为被多个目标管道共用的端点;
信息生成单元,用于根据主机的第一资源配置信息、从机的第二资源配置信息和共用端点对应的各目标管道,生成共用端点的端点共用描述信息;
信息配置单元,用于根据共用端点的端点共用描述信息,对主机和从机进行通信配置。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一项通信配置方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现上述任一项通信配置方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述任一项通信配置方法。
本申请实施例与相关技术相比存在的有益效果是:通过在主机与从机之间配置共用端点,实现在主机和从机中的至少一者存在端点资源缺乏情况时,主机与从机之间可以正常通信。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的一种通信配置方法的流程示意图;
图2A是本申请实施例提供的目标数据排列方式为定长排列方式时的端点共用描述信息的信息结构示意图;
图2B是本申请实施例提供的目标数据排列方式为全体变长排列方式时的端点共用描述信息的信息结构示意图;
图2C是本申请实施例提供的目标数据排列方式为个别变长排列方式时的端点共用描述信息的信息结构示意图;
图3是本申请实施例提供的另一种通信配置方法的流程示意图;
图4是本申请实施例提供的一种通信配置装置的结构示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请的技术方案,下面通过以下实施例来进行说明。
实施例一
请参阅图1,本申请实施例提供一种通信配置方法,如图1所示,通信配置方法可以包括如下步骤101-步骤104。
步骤101,根据需要通信的主机与从机分别对应的端点信息和通信所需的管道信息,确定主机和从机是否存在端点资源缺乏情况。
其中,上述端点信息通常用于指示端点数目和端点的传输方向。上述管道信息通常用于指示管道数目和管道的传输方向。
本申请中,主机通常是指USB主机,从机通常是指USB从机。USB主机与USB从机之间通过USB总线进行通信。上述通信所需的管道信息通常是主机与从机正常通信所需的各传输方向的管道。
在本实施例中,上述通信配置方法的执行主体通常为电子设备,且具体可以为上述主机。
这里,主机可以获取到主机的端点信息、从机的端点信息和上述管道信息。实践中,主机可以直接获取到主机自己的端点信息。另外,主机可以在从机接入主机之后,对从机执行USB枚举的过程中,获取从机的端点信息。另外,主机可以在对从机执行USB枚举之后,基于枚举结果,确定管道信息。作为一个示例,可以直接从枚举结果信息中得到管道信息,也可以采用枚举结果信息推导得到管道信息,比如,若枚举结果指示从机为USB鼠标,则可以通过预先存储的用于描述从机与管道信息之间对应关系的映射表,推导得到与USB鼠标对应的管道信息。需要指出的是,本实施例对如何得到管道信息的方式不做具体限定。
之后,上述执行主体可以采用主机的端点信息、从机的端点信息和管道信息进行分析,从而确定主机和从机是否存在端点资源缺乏情况。实践中,针对主机或者从机中的任一个设备,可以将该设备的对应相同传输方向的端点数目与管道数目进行比对,若端点数目小于管道数目,则表明该设备存在端点资源缺乏情况。
进一步举例来说,若主机有16个输出端点和16个输入端点,且输入端点的编号分别1-16,输出端点的编号分别为1-16,从机只有2个输出端点和2个输入端点,且输入端点的编号分别为1-2,输出端点的编号分别为1-2,但所在应用中需要使用3个输出管道和3个输入管道,输入管道的编号可以为1-3,输出管道的编号可以为1-3,则此时从机上端点资源不足,也即是,从机存在端点资源缺乏情况。
步骤102,在主机和从机中的至少一者存在端点资源缺乏情况时,确定主机与从机之间的共用端点及共用端点对应的多个目标管道。
其中,共用端点为被多个目标管道共用的端点。实际应用中,共用端点的传输方向需要与共用端点的各目标管道的传输方向相同。
这里,在主机和从机中有一者存在端点资源缺乏情况,或者主机与从机都存在端点资源缺乏情况时,上述执行主体可以根据主机所具有的端点、从机所具有的端点、所需要的管道,最终确定主机与从机之间的共用端点以及每个共用端点对应的多个管道。这里为了便于描述,将共用端点对应的管道记作目标管道。
举例来说,若主机有16个输出端点和16个输入端点,且输入端点的编号分别1-16,输出端点的编号分别为1-16,从机只有2个输出端点和2个输入端点,且输入端点的编号分别为1-2,输出端点的编号分别为1-2,但所在应用中需要使用3个输出管道和3个输入管道,输入管道的编号可以为1-3,输出管道的编号可以为1-3,从机存在端点资源缺乏情况,此时,主机和从机各有一个输出端点需要共用,以及各有一个输入端点需要共用。需要指出的是,主机与从机通信时,通常是一者的输入端点与另一者的输出端点配合使用,且配合使用的两个端点的编号必须一致,比如,主机的1号输入端点必须与从机的1号输出端点配合使用。
上述举例中,可以是输入管道2和输入管道3共用主机的1号输入端点和从机的1号输出端点,以及可以是输出管道1和输出管道2共用主机的1号输出端点和从机的1号输入端点。此时,共用端点为主机的1号输入端点和主机的1号输出端点,且主机1号输入端点对应的目标管道为输入管道2和输入管道3,主机1号输出端点对应的目标管道为输出管道1和输出管道2。
步骤103,根据主机的第一资源配置信息、从机的第二资源配置信息和共用端点对应的各目标管道,生成共用端点的端点共用描述信息。
其中,上述第一资源配置信息通常是主机的资源配置信息,上述第二资源配置信息通常是从机的资源配置信息。资源配置信息用于对设备的资源进行配置或描述。实践中,资源配置信息通常包括端点数、各端点的编号、端点的传输方向、端点的传输类型、端点所传输数据的最大长度等。
其中,上述端点共用描述信息通常是用于对端点共用情况进行描述的信息。
实践中,上述端点共用描述信息通常包括共用端点的端点标识、共用端点的传输方向、共用端点的传输类型、共用端点对应的目标管道数目、目标管道对应的管道片在共用端点所传输的端点包数据中的位置和最大占用长度等。上述端点标识通常是用于唯一指代端点的标识,可以为端点的编号。端点的编号可以简称为端点号。上述传输方向可以包括输入和输出。上述传输类型可以包括控制传输、批量传输、中断传输和同步传输。
上述端点包数据为共用端点所传输的数据。实践中,管道片,通常是端点传输数据中供目标管道独立使用的片段。实践中,可以将端点包数据划分成分别被各目标管道所独立使用的片段。具体地,管道片i是指被第i个目标管道使用的片段,这里i是一个正整数。另外,可以将数据长度为零的管道片简称为空管道片。管道片的最大占用长度通常是管道片所允许占用的最大数据长度。比如,可以为32字节。
这里,上述执行主体可以采用第一资源配置信息、第二资源配置信息和共用端点对应的各目标管道,生成该共用端点的端点共用描述信息。作为示例,可以生成用于指示各目标管道分别对应的管道片在共用端点所传输的端点包数据中均匀分布的端点共用描述信息。
步骤104,根据共用端点的端点共用描述信息,对主机和从机进行通信配置。
这里,上述执行主体可以采用共用端点的端点共用描述信息,对主机和从机的端点进行配置,从而实现对主机和从机进行通信配置。
本实施例提供的通信配置方法,通过在主机与从机之间配置共用端点,实现在主机和从机中的至少一者存在端点资源缺乏情况时,主机与从机之间可以正常通信。
在本实施例的一些可选的实现方式中,第一资源配置信息可以包括主机所支持的第一数据排列方式,第二资源配置信息可以包括从机所支持的第二数据排列方式。第一数据排列方式为主机所支持的数据排列方式,第二数据排列方式为从机所支持的数据排列方式。数据排列方式用于指示各目标管道分别对应的管道片在共用端点所传输的端点包数据中的分布情况。
实践中,数据排列方式可以包括定长排列方式、全体变长排列方式、个别变长排列方式。其中,定长排列方式指示各目标管道对应的管道片的长度固定不变,全体变长排列模式指示所有目标管道对应的管道片的长度可变,个别变长排列方式指示各目标管道对应的管道片的长度可变,且允许存在部分目标管道在端点包数据中占用长度为0(即:不出现、不占用空间)的情况。
该实现方式中,根据主机的第一资源配置信息、从机的第二资源配置信息和共用端点对应的各目标管道,生成共用端点的端点共用描述信息,可以包括:首先,根据第一数据排列方式、第二数据排列方式,确定共用端点对应的目标数据排列方式。然后,基于目标数据排列方式和共用端点对应的各目标管道,生成共用端点的端点共用描述信息。
其中,端点共用描述信息包括以下至少一项:共用端点的端点标识、共用端点的传输方向、共用端点的传输类型、共用端点对应的目标管道数目、目标数据排列方式、目标管道对应的管道片在共用端点所传输的端点包数据中的最大占用长度、目标管道对应的管道片在端点包数据中的排列顺序。
上述目标数据排列方式通常是主机和从机同时支持的数据排列方式。在一些应用场景中,在主机与从机同时支持多种数据排列方式时,可以从该多种数据排列方式中选一种,作为目标数据排列方式。
实践中,上述执行主体可以采用第一资源配置信息、第二资源配置信息、共用端点对应的多个目标管道和目标数据排列方式,生成共用端点的端点共用描述信息。在端点共用描述信息中包括目标数据排列方式时,可以便于引导共用端点对多个目标管道的数据进行有效合理传输,从而进一步保障主机与从机之间进行通信的可靠性。
本实施例中,传输方向可以包括输出和输入。其中,输出通常是指从主机到从机,输入通常是指从从机到主机。在一些应用场景中,可以用0代表输出、1代表输入。传输类型通常是USB协议所规定的四种传输类型。传输类型可以包括控制传输、批量传输、中断传输、同步传输。在一些应用场景中,可以用0代表控制传输、1代表批量传输、2代表中断传输、3代表同步传输。数据排列方式可以包括定长排列方式、全体变长排列方式、个别变长排列方式。在一些应用场景中,可以用0代表定长排列方式、1代表全体变长排列方式、2代表个别变长排列方式。
图2A为目标数据排列方式为定长排列方式时的端点共用描述信息的信息结构示意图。图2A中,端点2依次被中断传输类型的输入管道2和输入管道4所共用,输入管道2的管道片对应的最大占用长度为16字节,输入管道4的管道片对应的最大占用长度为48字节。其中,端点号为端点标识,共用管道数为共用端点对应的目标管道数目,管道数据排列方式为目标数据排列方式,占用字节数为最大占用长度。
图2B为目标数据排列方式为全体变长排列方式时的端点共用描述信息的信息结构示意图。图2B中,端点2依次被批量传输类型的输入管道2和输入管道4所共用,输入管道2的管道片对应的最大占用长度为32字节,输入管道4的管道片对应的最大占用长度为32字节。
图2C为目标数据排列方式为个别变长排列方式时的端点共用描述信息的信息结构示意图。图2C中,端点2依次被批量传输类型的输出管道1、输出管道3所共用,输出管道1的管道片对应的占用长度无效,也即是该管道片可以占用数据空间也可以不占用,用0指示,输出管道3的管道片对应的占用长度无效,用0指示。
结合图2A-图2C,各管道对应的管道占用描述符在端点共用描述信息中的排列顺序,即为对应管道片在端点包数据中的排列顺序。结合图2A,管道2的管道占用描述符排在端点共用描述信息首位,管道2对应的管道片为端点2的端点包数据中的首个管道片,管道4的管道占用描述符排在端点共用描述信息第二位,管道4对应的管道片为端点2的端点包数据中的第二个管道片。依次类推。
在本实施例的一些可选的实现方式中,目标数据排列方式包括以下任一项:定长排列方式、全体变长排列方式、个别变长排列方式。其中,定长排列方式指示各目标管道对应的管道片的长度固定不变,全体变长排列模式指示所有目标管道对应的管道片的长度可变,个别变长排列方式指示各目标管道对应的管道片的长度可变,且允许存在部分目标管道在端点包数据中占用长度为0的情况。
在目标数据排列方式不同时,端点包数据的分布结构有所不同。
在目标数据排列方式为定长排列方式时,共用端点所传输的端点包数据包括各目标管道分别对应的管道片,管道片包括数据长度字段、有效数据字段和空闲字段。在目标数据排列方式为全体变长排列方式时,共用端点所传输的端点包数据包括各目标管道分别对应的管道片和总空闲字段,管道片包括数据长度字段和有效数据字段。在目标数据排列方式为个别变长排列方式时,共用端点所传输的端点包数据包括各目标管道分别对应的管道片和总空闲字段,管道片包括管道标识字段、数据长度字段和有效数据字段。
这里,定长排列方式时,共用端点的所有数据负荷空间固定划分为N个管道片,依次分配给N个目标管道独立使用,每个管道片的长度、在数据负荷空间中的偏移位置都是固定的,不同管道片的总长度可以不同、也可以相同,所有管道片的总长度之和应不超过端点长度。端点长度为端点包数据的最大字节数。
在目标数据排列方式为定长排列方式时,每个目标管道对应的管道片包括数据长度字段L、有效数据字段D和空闲字段B。其中,L指示有效数据的长度,占用1字节或2字节,是必须存在的字段。有效数据字段D是有条件存在字段,当L非零时存在、为零时不存在。空闲字段B为分配给该管道片的空间中,存放数据长度字段L和有效数据字段D之后的剩余空间,也是有条件存在字段,当数据长度字段L和有效数据字段D已占满分配给该管道片的总长度时,则空闲字段B不存在,否则空闲字段B存在。定长排列方式最适用于多个管道的流量持续大负荷、并发的应用场景。举例来说,定长排列方式下,在共用端点被管道1和管道2共用时,共用端点的端点包数据的分布结构可以如下:
管道1数据长度 | 管道1有效数据 | 管道1空闲区 | 管道2数据长度 | 管道2有效数据 | 管道2空闲区 |
在目标数据排列方式为全体变长排列方式时,共用端点的所有负荷空间动态地划分为N个管道片和一个空闲区,该空闲区即为前述总空闲字段,依次分配给N个目标管道使用,每个管道片的长度、在数据负荷空间中的偏移位置都是动态变化的;不同管道片之间无空闲区;不同管道片的长度可以不同、也可以相同;每个管道片的最大长度应不超过该管道片在端点共用描述信息中对应的最大占用长度,所有管道片的总长度之和应不超过端点长度。
在目标数据排列方式为全体变长排列方式时,每个目标管道对应的管道片包括数据长度字段L、有效数据字段D。其中,L指示有效数据的长度,占用1字节或2字节,是必须存在的字段;有效数据字段D是有条件存在字段,当L非零时存在、为零时不存在。
空闲区是端点空间中存放N个管道片后剩余的、不存放任何数据的空间,也是有条件存在字段,当N个管道片已占满端点整个空间时,则空闲区不存在,否则空闲区存在。在一些应用场景中,空闲区可填充任意数据,例如,填充0。全体变长排列方式最适用于多个管道的流量持续、负荷随机变化、并发的应用场景。举例来说,全体变长排列方式下,在共用端点被管道1和管道2共用时,共用端点的端点包数据的分布结构可以如下:
管道1数据长度 | 管道1有效数据 | 管道2数据长度 | 管道2有效数据 | 空闲区 |
在目标数据排列方式为个别变长排列方式时,共用端点的所有负荷空间动态地划分为N个管道片和一个空闲区,依次分配给k个目标管道使用,k≤N。每个管道片的长度、在数据负荷空间中的偏移位置都是动态变化的。不同管道片之间无空闲区。不同管道片的长度可以不同、也可以相同,所有管道片的总长度之和应不超过端点长度。
虽然一个共用端点被分配共用的总管道数为N,但传输过程的每一时刻,并不是所有这些管道均有待传输数据,可能仅部分管道有待传输数据。在个别变长排列方式下,无待传输数据的管道可以不占用端点的任何空间,有待传输数据的管道才占用端点空间。不同的时刻,有待传输数据的管道数和具体管道号可以不同。也即是,该个别变长排列方式,通常传输效率更高、通讯速率更快。
在目标数据排列方式为个别变长排列方式时,每个管道片可以包括管道标识字段P、数据长度字段L和有效数据字段D,均是必须存在的字段。其中,P指示有效数据对应的管道号,占用1字节或2字节,是一个正整数。L指示有效数据的长度,占用1字节或2字节,L应大于0;D携带着对应管道的有效数据片段,其长度为L。
空闲区是端点空间中存放k个管道片后剩余的、不存放任何数据的空间,也是有条件存在字段,当k个管道片已占满端点整个空间时,则空闲区不存在,否则空闲区存在。个别变长排列方式最适用于多个管道的流量持续、负荷随机变化、低概率并发的应用场景。举例来说,个别变长排列方式下,在共用端点被管道1和管道2共用时,若只有管道2有待传输的数据,则共用端点的端点包数据的分布结构可以如下:
管道2标识 | 管道2数据长度 | 管道2有效数据 | 空闲区 |
在本实施例的一些可选的实现方式中,上述步骤104中,根据共用端点的端点共用描述信息,对主机和从机进行通信配置,可以包括:根据端点共用描述信息,对主机上的相应端点进行配置。向从机发送包括端点共用描述信息的配置请求信息。
其中,配置请求信息用于触发从机对端点共用描述信息进行有效验证,以及在有效验证通过时,根据端点共用描述信息对从机上的相应端点进行配置。
这里,主机可以采用共用端点的端点共用描述信息,对主机上的该共用端点进行配置。另外,主机可以向从机发送配置请求信息。从机在接收到配置请求信息之后,可以采用配置请求信息中的该端点共用描述信息,对从机上的相应端点进行配置。具体的,若主机上的共用端点为1号输出端点,则从机上的相应端点为1号输入端点。
实践中,从机在接收到包括端点共用描述信息的配置请求信息之后,先对端点共用描述信息进行有效验证,且只有在验证通过之后,才对从机上的相应端点进行配置。从机对某个端点进行配置时,可以先将该端点状态设置为可传输状态,并保存该端点的端点共用描述信息,用于后续的管道传输事务。从机在对全部端点配置成功时,可以向主机返回确认握手标识符,指示数据验证通过、且配置成功。
本实施例中,从机在接收到包括端点共用描述信息的配置请求信息之后,先对端点共用描述信息进行有效验证,且只有在验证通过之后,才对从机上的相应端点进行配置,有助于进一步保障主机与从机之间的通信可靠性。
本实施例中,从机对端点共用描述信息进行有效验证可以包括:验证端点共用描述信息中各字段的取值是否有效、验证端点共用描述信息中各字段的取值指代的物理实体是否存在。作为一个示例,若端点号字段的取值为17,不属于端点号的约定取值范围,则端点号字段的取值无效。作为另一个示例,若端点号字段的取值为5,但从机中不存在对应端点号为5的硬件电路,则该端点号字段的取值指代的物理实体不存在。
实践中,在需要配置的端点有多个时,从机可以在对该多个端点全部配置完成之后,向主机返回配置结果,也可以每配置完一个端点,主动向主机返回针对该端点的配置结果。从机及时主动地向从机返回配置结果,可以使得主机及时准确地获悉从机配置情况。
实际应用中,针对各个端点共用描述信息,从机返回给主机的配置结果可以包括用于指示是否配置成功的信息、不成功的字段、不成功的原因等。
在一些可选的实现方式中,在配置请求信息包括多个共用端点分别对应的端点共用描述信息时,在向从机发送包括端点共用描述信息的配置请求信息之后,还可以包括:主机主动向从机发送结果请求信息。其中,结果请求信息用于触发从机向主机返回针对目标端点共用描述信息的配置结果,目标端点共用描述信息包括当前处理完成的端点共用描述信息。
其中,上述当前处理完成的端点共用描述信息,可以是指最近一次完成的端点共用描述信息,也可以是已经完成的所有端点共用描述信息。
本实现方式中,主机可以通过主动向从机发送结果请求信息的方式,实现及时获取到从机对各端点的配置结果。
继续参阅图3,图3为本申请实施例提供的另一通信配置方法,如图3所示,通信配置方法可以包括如下步骤301至步骤305。
步骤301,根据需要通信的主机与从机分别对应的端点数目和通信所需的管道数目,确定主机和从机是否存在端点资源缺乏情况。
步骤302,在主机和从机中的至少一者存在端点资源缺乏情况时,确定主机与从机之间的共用端点及共用端点对应的多个目标管道。
共用端点为被多个目标管道共用的端点。
步骤303,根据主机的第一资源配置信息、从机的第二资源配置信息和共用端点对应的各目标管道,生成共用端点的端点共用描述信息。
步骤304,根据共用端点的端点共用描述信息,对主机和从机进行通信配置。
在本实施例中,步骤301-步骤304的具体操作与图1所示的实施例中步骤101-步骤104的操作基本相同,在此不做赘述。
步骤305,根据共用端点的端点共用描述信息,与从机进行通信。
在本实施例中,主机和从机对共用端点进行配置之后,主机与从机都保存了一致的端点共用描述信息,主机与从机可以基于相一致的端点共用描述信息来进行端点共用与数据传输。实践中,主机与从机通信时,共用端点可以基于共用端点的端点共用描述信息进行数据传输,其它端点按照原有方式进行数据传输。也即是,经过端点配置之后,可以保障主机与从机之间正常通信。
在本实施例的一些可选的实现方式中,在端点共用描述信息包括目标数据排列方式、各目标管道的最大占用长度和各目标管道对应的管道片在端点包数据中的排列顺序时,根据共用端点的端点共用描述信息,与从机进行通信,可以包括如下步骤:
首先,目标设备从各目标管道分别对应的数据缓冲队列中获取相应目标管道的管道片的有效数据。
其中,目标设备为主机或从机,各目标管道对应的管道片的长度小于或等于相对应的管道片的最大占用长度。管道片的最大占用长度通常是管道片所允许占用的最大数据长度。比如,可以为32字节。
其次,根据目标数据排列方式和各目标管道分别对应的管道片的排列顺序,生成端点包数据,控制共用端点向目标设备的对端传输端点包数据。
实际应用中,由于共用端点对应的数据排列方式可以有定长排列方式、全体变长排列方式、个别变长排列方式三种,以及共用端点的传输方向可能为输入方向和输出方向。因此,在数据接收场景下,每个共用端点可以存在3种可能的数据传输情况。
情况一,数据发送场景,且目标数据排列方式为定长排列方式。
在定长排列方式时,主机执行端点发送操作时,可以通过如下方式生成端点包数据:依次从共用该端点的各管道所对应的发送缓冲队列中,取出不超过管道片有效数据最大长度的数据,并按照定长排列方式和共用端点的端点共用描述信息,将所取出的数据填入管道片有效数据字段,同时填写对应的数据长度字段,数据长度字段的值为对应有效数据的长度。当某管道所对应的发送缓冲队列当前为空时,则取出的有效数据为空,即其数据长度为零,该管道片为空管道片。
生成端点包数据之后,可以进一步计算得到端点包数据的有效长度V,有效长度V=端点长度―端点包数据尾部连续的空管道片的合计长度。上述连续空管道片,是指这些紧挨在一起的管道片的数据长度全都为0。然后,将端点包数据从头开始计算的长度为V的数据,提交给USB主机控制器的该发送端点进行物理发送操作。上述物理发送操作,是指USB协议所规定的物理层USB发送传输。
举例来说,若共用端点1的端点长度为64字节,数据长度字段的宽度为1字节,管道1和管道2依次均分共用端点1,即:各占32字节,若从管道1取出了0x01、0x02两字节,从管道2取出了0x03、0x04、0x05三字节,生成的端点包数据可以为如下:
02 | 01 02 | 00……00 | 03 | 03 04 05 | 00……00 |
该示例中,管道1对应的空闲区有29字节,管道2对应的空闲区有28字节,此时,发送长度V=64-28=36。
需要指出的是,仅发送有效的数据,不发送冗余空闲数据,也即是不发送位于尾部的连续的空管道片,所需发送的数据更少,这样可以提高数据发送效率。
情况二,数据发送场景,且目标数据排列方式为全体变长排列方式。
在全体变长排列方式时,主机执行端点发送操作时,可以通过如下方式生成端点包数据:依次从共用该端点的各管道所对应的发送缓冲队列中取出不超过管道片有效数据最大允许长度的数据,并按照全体变长排列方式和共用端点的端点共用描述信息,将所取出的数据填入管道片有效数据字段。同时填写对应的数据长度字段,数据长度字段的值为对应有效数据的长度。当某管道所对应的发送缓冲队列当前为空时,则取出的数据为空,即其长度为零,该管道片为空管道片。
生成端点包数据之后,可以计算得到端点包数据的有效长度V,有效长度V=端点长度―端点包数据尾部空闲区长度。然后,将端点包数据从头开始计算的长度为V的数据,提交给USB主机控制器的该发送端点进行物理发送操作。
进一步举例来说,若共用端点1的端点长度为64字节,数据长度字段的宽度为1字节,管道1和管道2依次共用端点1、且最大占用长度均为32字节;若从管道1取出了0x01、0x02两字节,从管道2取出了0x03、0x04、0x05三字节;生成的端点包数据可以为如下:
02 | 01 02 | 03 | 03 04 05 | 00……00 |
该示例中,发送长度V=64-57=7。将位于尾部的空闲区在进行最底层发送时不进行发送、而仅发送其之前的部分,有助于提高数据发送效率。
情况三,数据发送场景,且目标数据排列方式为个别变长排列方式。
在个别变长排列方式时,主机执行端点发送操作时,可以通过如下方式生成端点包数据:依次从共用该端点的各管道所对应的发送缓冲队列中取出不超过管道片有效数据最大允许长度的数据,并按照个别变长排列方式和共用端点的端点共用描述信息,将所取出的数据填入管道片有效数据字段,同时填写对应的管道标识字段和数据长度字段,管道标识字段的值为有效数据所对应的管道号,数据长度字段的值为对应有效数据的长度。当某管道所对应的发送缓冲队列当前为空时,则取出的数据为空,对应的管道标识字段、有效数据字段和数据长度字段均跳过,也即是,不填写也不占用空间。
生成端点包数据之后,可以计算得到端点包数据的有效长度V,有效长度V=端点长度―端点包数据尾部空闲区长度。然后,将端点包数据从头开始计算的长度为V的数据,提交给USB主机控制器的该发送端点进行物理发送操作。
进一步举例来说,若共用端点1的端点长度为64字节,数据长度字段的宽度为1字节,管道1和管道2依次共用端点1、且最大占用长度均为32字节;若从管道1取出了0x01、0x02两字节,从管道2取出了0字节,也即是管道2没有待传输的数据。生成的端点包数据可以为如下:
01 | 02 | 01 02 | 00……00 |
该示例中,发送长度V=64-60=4。将位于尾部的空闲区在进行最底层发送时不进行发送、而仅发送其之前的部分,有助于提高数据发送效率。
需要指出的是,从机上的共用端点进行数据发送操作的步骤,与主机上的共用端点进行数据发送操作的步骤基本相同,这里不做赘述。
在本实施例的一些可选的实现方式中,在端点共用描述信息包括目标数据排列方式和各目标管道对应的管道片在端点包数据中的排列顺序时,根据共用端点的端点共用描述信息,与从机进行通信,可以包括:目标设备在接收到端点包数据时,根据目标数据排列方式和各目标管道对应的管道片在端点包数据中的排列顺序,从端点包数据中解析得到各目标管道分别对应的管道片,以及将各目标管道分别对应的管道片中的有效数据存入相应目标管道的数据缓冲队列。
实际应用中,由于共用端点对应的数据排列方式可以有定长排列方式、全体变长排列方式、个别变长排列方式三种,因此,在数据接收场景下,每个共用端点也可以存在3种可能的数据传输情况。
情况四,数据接收场景,且目标数据排列方式为定长排列方式。
定长排列方式时,主机执行端点接收操作,即:取出端点所收到的总线数据,也即是端点包数据,接着解析所收到的端点包数据。解析时,按照定长排列方式和共用端点的端点共用描述信息,来确定管道片对应的管道号及管道片中的各字段。
具体来说,由于各管道对应的管道占用描述符在端点共用描述信息中的排列顺序,即为对应管道片在端点包数据中的排列顺序,所以,通过遍历访问端点共用描述信息可以获知端点包数据中管道片的排列顺序,也即是可以获知各管道片对应的管道号。
端点包数据偏移量为0处是首个管道片的起始位置。在端点包数据中,对于任意一个当前的管道片来说,下一管道片的起始位置=当前管道片的起始位置+端点共用描述信息所记录的当前管道片占用字节数。由此就可逐步、依次计算出各管道片的起始位置。
在端点包数据中定位出某个管道片之后,再按照定长排列方式来确定该管道片内的各字段。如前,定长排列方式的管道片包含三个字段:数据长度字段L、有效数据字段D、空闲字段B,先获取数据长度字段L的取值,再从有效数据字段D中读取出长度为m的有效数据,并把该有效数据存放到对应管道的接收缓冲队列中。当数据长度字段L的取值为零时,则取出的有效数据为空,表明该管道当前未收到数据、无需进行数据存放操作。
如上遍历处理所有管道片之后,对所收到端点包数据的解析即告完成,更上层的模块或程序通过读取对应管道所对应的接收缓冲队列,即可精准获取从USB控制器的共用端点所接收到的数据。
进一步举例来说,若端点2依次被批量传输方式的输入管道2和输入管道4所共用,且端点共用描述信息指示管道2占用字节数为16,管道4占用字节数为48,若收到的端点包数据如下:
02 | 01 02 | 00……00 | 03 | 03 04 05 |
该示例中,端点包数据中含有两个管道片,首个管道片对应的管道号是2,第二个管道片对应的管道号是4。再从偏移0开始解析首个管道片,读取数据长度字段的取值为2,表示有效数据的长度为2,接着从有效数据字段读取出2字节的数据01、02,并把该数据存放到管道2所对应的接收缓冲队列。之后,跳过首个管道片的空闲字段。再从下一管道片的起始处即偏移量16开始解析第二个管道片,读取数据长度字段的取值为3,表示有效数据的长度为3,接着从有效数据字段读取出3字节的数据03、04、05,并把该有效数据存放到管道4所对应的接收缓冲队列。
情况五,数据接收场景,且目标数据排列方式为全体变长排列方式。
全体变长排列方式时,主机执行端点接收操作,即:取出端点所收到的总线数据,也即是端点包数据,接着解析所收到的端点包数据。解析时,按照全体变长排列方式和共用端点的端点共用描述信息,来确定管道片对应的管道号及管道片中的各字段。
具体来说,由于各管道对应的管道占用描述符在端点共用描述信息中的排列顺序,即为对应管道片在端点包数据中的排列顺序,所以,通过遍历访问端点共用描述信息可以获知端点包数据中管道片的排列顺序,也即是可以获知各管道片对应的管道号。
在端点包数据中定位出某个管道片之后,再按照全体变长排列方式来确定该管道片内的各字段。如前,全体变长排列方式的管道片包含两个字段:数据长度字段L、有效数据字段D,先获取数据长度字段L的值,再从有效数据字段D中读取出长度为m的有效数据,并把该数据存放到对应管道所对应的接收缓冲队列中。当m为零时,则取出的数据为空,表明该管道当前未收到数据、无需进行数据存放操作。
端点包数据偏移量为0处是首个管道片的起始位置。在端点包数据中,对于任意一个当前的管道片来说,下一管道片的起始位置=当前管道片的起始位置+端点包数据中所获取的当前管道片的有效数据长度m+L的字段宽度。由此就可逐步、依次计算出各管道片的起始位置,进而继续对管道片内的各字段进行如前述的解析和访问。
如上遍历处理所有管道片之后,对所收到端点包数据的解析即告完成,更上层的模块或程序通过读取对应管道所对应的接收缓冲队列,即可精准获取从USB控制器的共用端点所接收到的数据。
进一步举例来说,若端点2依次被批量传输方式的输入管道2和输入管道4所共用,且端点共用描述信息指示管道2占用字节数为16,管道4占用字节数为48,若收到的端点包数据如下:
02 | 01 02 | 03 | 03 04 05 |
该示例中,端点包数据中含有两个管道片,首个管道片的管道号是2,第二个管道片的管道号是4。从偏移0开始解析首个管道片,读取数据长度字段的值为2,表示有效数据的长度为2,接着从有效数据字段读取出2字节的数据01、02,并把该数据存放到管道2所对应的接收缓冲队列。之后,再从管道片2的有效数据字段之后紧挨着的偏移量4开始解析第二个管道片,读取数据长度字段的值为3,表示有效数据的长度为3,接着从有效数据字段读取出3字节的数据03、04、05,并把该数据存放到管道4所对应的接收缓冲队列。
情况六,数据接收场景,且目标数据排列方式为个别变长排列方式。
个别变长排列方式时,主机执行端点接收操作,即:取出端点所收到的总线数据,也即是端点包数据,接着解析所收到的端点包数据。解析时,按照个别变长排列方式和共用端点的端点共用描述信息,来确定和获取首个管道片内包括管道号、数据长度、有效数据的各字段,进而根据数据长度字段确定下一管道片的偏移位置、并获取各字段值……如此不断解析,直到解析完成整个端点包数据。
具体来说,首先从端点包数据偏移0处读取首个管道片的各字段。如前,个别变长排列方式的管道片包含三个字段:管道号字段P、数据长度字段L、有效数据字段D。先获取字段P和字段L的值,再从字段D中读取出长度为m的有效数据,并把该数据存放到字段P的取值所对应的接收缓冲队列中。当数据长度字段L的取值为零时,则取出的数据为空,表明该管道当前未收到数据、无需进行数据存放操作。
端点包数据偏移量为0处是首个管道片的起始位置。在端点包数据中,对于任意一个当前的管道片来说,下一管道片的起始位置=当前管道片的起始位置+端点包数据中所获取的当前管道片的有效数据长度m+L的字段宽度+P的字段宽度,由此就可逐步、依次获取各管道片对应的管道号、计算出各管道片的起始位置,进而继续对管道片内的各字段进行如前述的解析和访问。
如上遍历处理所有管道片之后,对所收到端点包数据的解析即告完成,更上层的模块或程序通过读取对应管道所对应的接收缓冲队列,即可精准获取从USB控制器的共用端点所接收到的数据。
进一步举例来说,若端点2依次被批量传输方式的输入管道2、输入管道3和输入管道4所共用,且端点共用描述信息指示管道2占用字节数为20,管道3占用字节数为20,管道4占用字节数为24,若收到的端点包数据如下:
03 | 02 | 01 02 | 04 | 05 | 03 04 05 06 07 |
该示例中,首先从偏移0处读取首个管道片,解析管道片各字段得出:首个管道片的管道号是3,数据长度字段的值为2、表示有效数据的长度为2,接着从有效数据字段读取出2字节的数据01、02,并把该数据存放到管道3所对应的接收缓冲队列。之后,再从首个管道片之后紧挨着的偏移量4开始读取第二个管道片,解析得出:第二个管道片的管道号是4,数据长度字段的值为5、表示有效数据的长度为5,接着从有效数据字段读取出5字节的数据03、04、05、06、07,并把该数据存放到管道4所对应的接收缓冲队列。
需要指出的是,从机上的共用端点进行数据接收操作的步骤,与主机上的共用端点进行数据接收操作的步骤基本相同,这里不做赘述。
实施例二
对应于上文实施例的通信配置方法,图4示出了本申请实施例提供的通信配置装置400的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。参照图4,该装置包括信息确定单元401、共用确定单元402、信息生成单元403、信息配置单元404。
信息确定单元401,用于根据需要通信的主机与从机分别对应的端点信息和通信所需的管道信息,确定主机和从机是否存在端点资源缺乏情况;
共用确定单元402,用于在主机和从机中的至少一者存在端点资源缺乏情况时,确定主机与从机之间的共用端点及共用端点对应的多个目标管道,共用端点为被多个目标管道共用的端点;
信息生成单元403,用于根据主机的第一资源配置信息、从机的第二资源配置信息和共用端点对应的各目标管道,生成共用端点的端点共用描述信息;
信息配置单元404,用于根据共用端点的端点共用描述信息,对主机和从机进行通信配置。
在一些实施例中,信息生成单元403包括排列确定模块和生成执行模块。排列确定模块,用于根据第一数据排列方式、第二数据排列方式,确定共用端点对应的目标数据排列方式;生成执行模块,用于基于目标数据排列方式和共用端点对应的各目标管道,生成共用端点的端点共用描述信息;其中,端点共用描述信息包括以下至少一项:共用端点的端点标识、共用端点的传输方向、共用端点的传输类型、共用端点对应的目标管道数目、目标数据排列方式、目标管道对应的管道片在共用端点所传输的端点包数据中的最大占用长度、目标管道对应的管道片在端点包数据中的排列顺序。
在一些实施例中,目标数据排列方式包括以下任一项:定长排列方式、全体变长排列方式、个别变长排列方式;在目标数据排列方式为定长排列方式时,共用端点所传输的端点包数据包括各目标管道分别对应的管道片,管道片包括数据长度字段、有效数据字段和空闲字段;在目标数据排列方式为全体变长排列方式时,共用端点所传输的端点包数据包括各目标管道分别对应的管道片和总空闲字段,管道片包括数据长度字段和有效数据字段;在目标数据排列方式为个别变长排列方式时,共用端点所传输的端点包数据包括各目标管道分别对应的管道片和总空闲字段,管道片包括管道标识字段、数据长度字段和有效数据字段。
在一些实施例中,信息配置单元404包括第一配置模块和第二配置模块。第一配置模块,用于根据端点共用描述信息,对主机上的相应端点进行配置;第二配置模块,用于向从机发送包括端点共用描述信息的配置请求信息,其中,配置请求信息用于触发从机对端点共用描述信息进行有效验证,以及在有效验证通过时,根据端点共用描述信息对从机上的相应端点进行配置。
在一些实施例中,信息配置单元404还包括结果请求模块。结果请求模块,用于向从机发送结果请求信息,其中,结果请求信息用于触发从机向主机返回针对目标端点共用描述信息的配置结果,目标端点共用描述信息包括当前处理完成的端点共用描述信息。
在一些实施例中,装置还包括通信执行单元,用于根据共用端点的端点共用描述信息,与从机进行通信。
在一些实施例中,通信执行单元包括数据获取模块和数据发送模块。数据获取模块,用于目标设备从各目标管道分别对应的数据缓冲队列中获取相应目标管道的管道片的有效数据,其中,目标设备为主机或从机,各目标管道对应的管道片的长度小于或等于相对应的管道片的最大占用长度;数据生成模块,用于根据目标数据排列方式和各目标管道分别对应的管道片的排列顺序,生成端点包数据,控制共用端点向目标设备的对端传输端点包数据。
在一些实施例中,通信执行单元包括数据接收模块。数据接收模块,用于目标设备在接收到端点包数据时,根据目标数据排列方式和各目标管道对应的管道片在端点包数据中的排列顺序,从端点包数据中解析得到各目标管道分别对应的管道片,以及将各目标管道分别对应的管道片中的有效数据存入相应目标管道的数据缓冲队列。
本实施例提供的装置,通过在主机与从机之间配置共用端点,实现在主机和从机中的至少一者存在端点资源缺乏情况时,主机与从机之间可以正常通信。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例三
图5为本申请一实施例提供的电子设备500的结构示意图。如图5所示,该实施例的电子设备500包括:至少一个处理器501(图5中仅示出一个处理器)、存储器502以及存储在存储器502中并可在至少一个处理器501上运行的计算机程序503,例如通信配置程序。处理器501执行计算机程序503时实现上述任意各个方法实施例中的步骤。处理器501执行计算机程序503时实现上述各个通信配置方法的实施例中的步骤。处理器501执行计算机程序503时实现上述各装置实施例中各模块/单元的功能,例如图4所示数据获取单元信息确定单元401、共用确定单元402、信息生成单元403、信息配置单元404的功能。
示例性的,计算机程序503可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在电子设备500中的执行过程。例如,计算机程序503可以被分割成信息确定单元,共用确定单元,信息生成单元,信息配置单元,各单元具体功能在上述实施例中已有描述,此处不再赘述。
电子设备500可包括,但不仅限于,处理器501,存储器502。本领域技术人员可以理解,图5仅仅是电子设备500的示例,并不构成对电子设备500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器501可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器502可以是电子设备500的内部存储单元,例如电子设备500的硬盘或内存。存储器502也可以是电子设备500的外部存储设备,例如电子设备500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器502还可以既包括电子设备500的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及电子设备所需的其它程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种通信配置方法,其特征在于,所述方法包括:
根据需要通信的主机与从机分别对应的端点信息和通信所需的管道信息,确定所述主机和所述从机是否存在端点资源缺乏情况;
在所述主机和所述从机中的至少一者存在端点资源缺乏情况时,确定所述主机与所述从机之间的共用端点及所述共用端点对应的多个目标管道,所述共用端点为被多个所述目标管道共用的端点;
根据所述主机的第一资源配置信息、所述从机的第二资源配置信息和所述共用端点对应的各目标管道,生成所述共用端点的端点共用描述信息;
根据所述共用端点的所述端点共用描述信息,对所述主机和所述从机进行通信配置。
2.根据权利要求1所述的通信配置方法,其特征在于,所述第一资源配置信息包括所述主机所支持的第一数据排列方式,所述第二资源配置信息包括所述从机所支持的第二数据排列方式;以及所述根据所述主机的第一资源配置信息、所述从机的第二资源配置信息和所述共用端点对应的各目标管道,生成所述共用端点的端点共用描述信息,包括:
根据所述第一数据排列方式、所述第二数据排列方式,确定所述共用端点对应的目标数据排列方式;
基于所述目标数据排列方式和所述共用端点对应的各目标管道,生成所述共用端点的所述端点共用描述信息;
其中,所述端点共用描述信息包括以下至少一项:所述共用端点的端点标识、所述共用端点的传输方向、所述共用端点的传输类型、所述共用端点对应的目标管道数目、所述目标数据排列方式、所述目标管道对应的管道片在所述共用端点所传输的端点包数据中的最大占用长度、所述目标管道对应的管道片在端点包数据中的排列顺序。
3.根据权利要求1所述的通信配置方法,其特征在于,所述目标数据排列方式包括以下任一项:定长排列方式、全体变长排列方式、个别变长排列方式;
在所述目标数据排列方式为所述定长排列方式时,所述共用端点所传输的端点包数据包括各目标管道分别对应的管道片,管道片包括数据长度字段、有效数据字段和空闲字段;
在所述目标数据排列方式为所述全体变长排列方式时,所述共用端点所传输的端点包数据包括各目标管道分别对应的管道片和总空闲字段,管道片包括数据长度字段和有效数据字段;
在所述目标数据排列方式为所述个别变长排列方式时,所述共用端点所传输的端点包数据包括各目标管道分别对应的管道片和总空闲字段,管道片包括管道标识字段、数据长度字段和有效数据字段。
4.根据权利要求1所述的通信配置方法,其特征在于,所述根据所述共用端点的所述端点共用描述信息,对所述主机和所述从机进行通信配置,包括:
根据所述端点共用描述信息,对所述主机上的相应端点进行配置;
向所述从机发送包括所述端点共用描述信息的配置请求信息,其中,所述配置请求信息用于触发所述从机对所述端点共用描述信息进行有效验证,以及在有效验证通过时,根据所述端点共用描述信息对所述从机上的相应端点进行配置。
5.根据权利要求4所述的通信配置方法,其特征在于,在所述配置请求信息包括多个所述共用端点分别对应的所述端点共用描述信息时,在所述向所述从机发送包括所述端点共用描述信息的配置请求信息之后,还包括:
向所述从机发送结果请求信息,其中,所述结果请求信息用于触发所述从机向所述主机返回针对目标端点共用描述信息的配置结果,所述目标端点共用描述信息包括当前处理完成的端点共用描述信息。
6.根据权利要求1-5中任一项所述的通信配置方法,其特征在于,在所述根据所述共用端点的所述端点共用描述信息,对所述主机和所述从机进行通信配置之后,所述方法还包括:
根据所述共用端点的所述端点共用描述信息,与所述从机进行通信。
7.根据权利要求6所述的通信配置方法,其特征在于,在所述端点共用描述信息包括目标数据排列方式、各目标管道的最大占用长度和各目标管道对应的管道片在端点包数据中的排列顺序时,所述根据所述共用端点的所述端点共用描述信息,与所述从机进行通信,包括:
目标设备从各目标管道分别对应的数据缓冲队列中获取相应目标管道的管道片的有效数据,其中,所述目标设备为所述主机或所述从机,各目标管道对应的管道片的长度小于或等于相对应的管道片的最大占用长度;
根据所述目标数据排列方式和各目标管道分别对应的管道片的排列顺序,生成所述端点包数据,控制所述共用端点向所述目标设备的对端传输所述端点包数据。
8.根据权利要求6所述的通信配置方法,其特征在于,在所述端点共用描述信息包括目标数据排列方式和各目标管道对应的管道片在端点包数据中的排列顺序时,所述根据所述共用端点的所述端点共用描述信息,与所述从机进行通信,包括:
目标设备在接收到所述端点包数据时,根据所述目标数据排列方式和各目标管道对应的管道片在端点包数据中的排列顺序,从所述端点包数据中解析得到各目标管道分别对应的管道片,以及将各目标管道分别对应的管道片中的有效数据存入相应目标管道的数据缓冲队列。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8中任一项所述的通信配置方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的通信配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211483157.5A CN115883645A (zh) | 2022-11-24 | 2022-11-24 | 通信配置方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211483157.5A CN115883645A (zh) | 2022-11-24 | 2022-11-24 | 通信配置方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115883645A true CN115883645A (zh) | 2023-03-31 |
Family
ID=85763828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211483157.5A Pending CN115883645A (zh) | 2022-11-24 | 2022-11-24 | 通信配置方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115883645A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6157975A (en) * | 1998-01-07 | 2000-12-05 | National Semiconductor Corporation | Apparatus and method for providing an interface to a compound Universal Serial Bus controller |
JP2003316734A (ja) * | 2003-02-21 | 2003-11-07 | Seiko Epson Corp | データ転送制御装置、電子機器及びデータ転送制御方法 |
CN101777032A (zh) * | 2009-01-14 | 2010-07-14 | 华为终端有限公司 | 一种实现usb端点复用的方法和设备 |
US8131890B1 (en) * | 2007-03-23 | 2012-03-06 | Cypress Semiconductor Corporation | Circuit and method for increasing universal serial bus (USB) device endpoints |
CN103678230A (zh) * | 2013-10-25 | 2014-03-26 | 北京中科微电子技术有限公司 | 一种低速usb设备外围接口端点的扩展方法 |
CN114201432A (zh) * | 2020-09-02 | 2022-03-18 | 华为技术有限公司 | 用于usb传输的方法和电子设备 |
-
2022
- 2022-11-24 CN CN202211483157.5A patent/CN115883645A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6157975A (en) * | 1998-01-07 | 2000-12-05 | National Semiconductor Corporation | Apparatus and method for providing an interface to a compound Universal Serial Bus controller |
JP2003316734A (ja) * | 2003-02-21 | 2003-11-07 | Seiko Epson Corp | データ転送制御装置、電子機器及びデータ転送制御方法 |
US8131890B1 (en) * | 2007-03-23 | 2012-03-06 | Cypress Semiconductor Corporation | Circuit and method for increasing universal serial bus (USB) device endpoints |
CN101777032A (zh) * | 2009-01-14 | 2010-07-14 | 华为终端有限公司 | 一种实现usb端点复用的方法和设备 |
CN103678230A (zh) * | 2013-10-25 | 2014-03-26 | 北京中科微电子技术有限公司 | 一种低速usb设备外围接口端点的扩展方法 |
CN114201432A (zh) * | 2020-09-02 | 2022-03-18 | 华为技术有限公司 | 用于usb传输的方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6697366B1 (en) | Ethernet memory management system and methods for operation thereof | |
CN108984465B (zh) | 一种消息传输方法及设备 | |
US9021169B2 (en) | Bus system including ID converter and converting method thereof | |
CN110476156A (zh) | 通用串行总线网络交换机 | |
WO1984002629A1 (en) | Method and apparatus for bus contention resolution | |
CN107852423B (zh) | 用于usb 2.0带宽保留的方法及系统 | |
CN103365810A (zh) | 在c.a.n.总线上减少闪速存储装置编程时间的方法和设备 | |
CN113177015B (zh) | 基于帧头的串口通讯方法和串口芯片 | |
CN113312284A (zh) | 数据传输方法、装置、系统、存储介质及电子装置 | |
KR102303424B1 (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
CN115883645A (zh) | 通信配置方法、电子设备及存储介质 | |
EP3605967A1 (en) | Method and device for transmitting data | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
CN113485951A (zh) | 一种基于fpga的dma读操作实现方法、fpga设备以及通信系统 | |
US8069273B2 (en) | Processing module | |
CN113609041A (zh) | 一种数据传输方法及系统 | |
CN113434441A (zh) | 一种dma传输方法、装置、控制器及可读存储介质 | |
CN115904488A (zh) | 数据传输方法、系统、装置及设备 | |
CN113177014A (zh) | 基于检验方式的串口通讯方法和串口芯片 | |
CN113157610B (zh) | 数据保存方法及装置、存储介质、电子装置 | |
CN113177013B (zh) | 基于波特率的串口通讯方法和多串口芯片 | |
US20190124180A1 (en) | Packet compression and decompression | |
CN111865741B (zh) | 数据传输方法及数据传输系统 | |
CN111124987B (zh) | 一种基于pcie的数据传输控制系统和方法 | |
CN112597092B (zh) | 一种数据交互方法、机器人及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |