WO2015188586A1 - 数据传输方法及电子设备、usb设备、存储介质 - Google Patents

数据传输方法及电子设备、usb设备、存储介质 Download PDF

Info

Publication number
WO2015188586A1
WO2015188586A1 PCT/CN2014/091319 CN2014091319W WO2015188586A1 WO 2015188586 A1 WO2015188586 A1 WO 2015188586A1 CN 2014091319 W CN2014091319 W CN 2014091319W WO 2015188586 A1 WO2015188586 A1 WO 2015188586A1
Authority
WO
WIPO (PCT)
Prior art keywords
port
usb
electronic device
program
identification number
Prior art date
Application number
PCT/CN2014/091319
Other languages
English (en)
French (fr)
Inventor
李承林
Original Assignee
西安中兴新软件有限责任公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 西安中兴新软件有限责任公司 filed Critical 西安中兴新软件有限责任公司
Publication of WO2015188586A1 publication Critical patent/WO2015188586A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Definitions

  • the embodiment of the present invention provides a data transmission method, which is applied to an electronic device, where the electronic device performs data transmission with the first USB device through its first port, and executes a first program; the method comprising:
  • the first port identification number is stored.
  • a storage unit configured to store the first symbolic link name and the first port identification number in the first program.
  • the data transmission method of the embodiment of the present invention, the electronic device, the USB device, and the storage medium are connected to the USB device through the USB port by storing a port identification number of the USB port connected to the USB device in the USB device.
  • the first program of the electronic device stores the port identification number and the first symbol link name corresponding to the first program, so that when the application function of the USB device changes, that is, the USB device is connected.
  • the execution program in the electronic device is switched from the first program to the second program.
  • the first symbol link name corresponding to the first program is replaced with the second symbol link name formed after the program change is performed, and the first program is passed.
  • the port identification number stored in the USB device is determined to be opened by the second symbol link name, and the first program is executed. Therefore, the embodiment of the present invention can ensure that the data transmission process correctly corresponds to the USB device before the change. Continue to complete the data transfer to achieve efficient use of USB devices.
  • the host controller and hub of each USB port in the electronic device are fixed. Therefore, the index values of the host controller, the hub, and the USB port can be grouped according to certain rules, that is, the port identification number is used to represent the USB port. .
  • the port identification number is used to represent the USB port.
  • Step 103 Replace the first symbol link name in the first program with the second symbol link name, open the first USB device by using the second symbol link name, and continue to execute the first program.
  • Step 201 Connect a first USB device on the first USB port of the electronic device, and determine a port number of the first USB port.
  • the electronic device is provided with two or more ports; and the electronic device is capable of data transmission with two or more USB devices through its own port; the electronic device further includes:
  • the electronic device further includes:
  • the electronic device further includes:
  • the embodiment of the present invention further provides a first USB device, where the first USB device can perform data transmission with the electronic device through a first port in the electronic device;
  • the first USB device includes:
  • the data transmission method includes:

Abstract

公开了一种数据传输方法,应用于电子设备中,所述电子设备通过自身第一端口与第一USB设备进行数据传输,并执行第一程序;所述方法包括:当所述电子设备中执行的所述第一程序切换至第二程序时,获取与所述电子设备链接的各USB设备的端口标识号;确定端口标识号为第一端口对应的第一端口标识号时,获取所述第一端口标识号对应的第一USB设备的第二符号链接名;将所述第一程序中的第一符号链接名替换为第二符号链接名,通过第二符号链接名打开所述第一USB设备,继续执行第一程序。还公开了一种电子设备及USB设备。

Description

数据传输方法及电子设备、USB设备、存储介质 技术领域
本发明涉及通用串行总线(Universal Serial Bus,USB)设备应用技术,尤其涉及一种数据传输方法及电子设备、USB设备、存储介质。
背景技术
USB是一种外部总线标准,由Intel、IBM、Microsoft等多家公司在1994年底联合提出,主要用于规范电脑和外部设备的连接和通讯。USB规范经历了多年的发展,现已成为当前电子设备中的标准扩展端口规范;当前主板的端口规范主要采用USB1.1和USB2.0版本,高版本可以很好的兼容低版本。目前,所述USB1.1和USB2.0版本对应端口的最高传输速率分别为12Mbps和480Mbps;而正在普及中的USB3.0规范,其对应端口的最高速率高达5Gbps。除了高速传输的优点外,USB端口还支持设备的即插即用和热插拔功能,正是因为这些独特的优点使得USB规范被广泛应用于各个方面,例如:移动终端、存储设备、扫描仪及打印机等几乎所有的外部设备。
USB系统由硬件和软件两部分组成;这里,所述USB系统为USB设备、及与所述USB设备连接的电子设备组成的系统。USB系统的硬件部分采用的是级联星型拓扑结构,包括主机控制器(Host Controller)、集线器(Hub)和USB设备三部分。每个计算机的主板上都有一个或者多个主机控制器,主机控制器挂载在外设部件互连(Peripheral Component Interconnect,PCI)总线上,并且自带一个根集线器(Root Hub)。根集线器下可以接多级子集线器;每个集线器最多可以提供127个彼此不会互相干扰的端口(Port),这些端口将USB设备连接到主机控制器上,并为所述 USB设备提供电源管理。当USB设备连接到端口上时,主机控制器会发送标准的USB请求枚举设备的所有信息,其中最重要的是USB设备描述符中的厂商标识(Vendor ID,VID),产品标识(Product ID,PID)和设备序列号(Serial Number)信息,上述三项属性中如有一项发生变化,主机控制器就认为有不同的USB设备接入。
USB系统的软件部分主要指驱动程序,它采用的是Windows驱动模式(Windows Driver Mode,WDM);完成一个USB设备的操作,至少需要两个设备对象,一个是物理设备对象(Physical Device Object,PDO),一个是功能设备对象(Functional Device Object,FDO);其中,所述物理设备对象由操作系统提供的USB总线驱动生成,用以实现繁琐的底层通信;所述功能设备对象由开发者编写的驱动程序生成,功能驱动不操作实际的USB设备,只需要与USB总线驱动交互。开发者需要在驱动程序中为生成的功能设备对象创建一个符号链接名,上层应用程序可以通过所述符号链接名对实际的USB设备进行相应的读写操作。
为了满足用户日益增长的需求,一个USB设备同时会具备多种功能,例如一个智能移动终端既可以作为存储设备保存数据,也可以当作网卡连接因特网,即同一个物理硬件的设备信息可随时变化。当两个或两个以上的此种可变信息USB设备同时进行数据传输时,USB设备在多种功能之间会发生切换,某种功能对应的执行程序在对应切换前后的USB设备时会发生混乱,导致数据传输流程中断。引起该问题的根本原因是各功能模式下USB设备信息不一致,因为功能切换后计算机会重新为USB设备加载新驱动程序,生成新符号链接名。为了避免这个问题,目前最简单也最常用的方法是在各功能模式下创建一个相同信息的USB设备,通过所述相同信息的USB设备将各功能模式进行衔接。但由于每个模式下都要创建信息相同的USB设备,所以会造成资源浪费,也使得各功能模式具有紧耦合性,即 若一个模块发生变动其它模块也要跟随变动,如此,增大了维护成本。
发明内容
为解决现有存在的技术问题,本发明实施例提供了一种数据传输方法及电子设备、USB设备、存储介质,能在USB设备的功能切换后精确确定USB设备,以继续执行功能切换前的程序。
本发明实施例的技术方案是这样实现的:本发明实施例提供了一种数据传输方法,应用于电子设备中,所述电子设备通过自身第一端口与第一USB设备进行数据传输,并执行第一程序;所述方法包括:
当所述电子设备中执行的所述第一程序切换至第二程序时,获取与所述电子设备链接的各USB设备的端口标识号;
确定端口标识号为第一端口对应的第一端口标识号时,获取所述第一端口标识号对应的第一USB设备的第二符号链接名;
将所述第一程序中的第一符号链接名替换为第二符号链接名,通过第二符号链接名打开所述第一USB设备,继续执行第一程序。
上述方案中,所述电子设备与两个以上的USB设备分别通过自身的端口进行数据传输;
所述方法还包括:根据各端口对应的主机控制器、集线器及端口的索引值确定各端口对应的端口标识号。
上述方案中,所述当所述电子设备中执行的所述第一程序切换至第二程序时之前,所述方法还包括:
确定第一端口对应的第一端口标识号;
获取所述第一USB设备的第一符号链接名;
在所述第一程序中存储所述第一符号链接名和所述第一端口标识号。
上述方案中,所述方法还包括:
确定各端口的端口编号;所述各端口的端口标号与端口标识号一一对 应;
在第一程序执行完成后,根据端口编号提示与端口编号对应的端口连接的USB设备完成数据传输。
本发明实施例还提供了一种数据传输方法,应用于第一USB设备中,所述第一USB设备通过电子设备中的第一端口与所述电子设备进行数据传输;所述方法包括:
获取第一端口对应的第一端口标识号;
存储所述第一端口标识号。
本发明实施例还提供了一种电子设备,设置有第一端口,所述电子设备能够通过第一端口与第一USB设备进行数据传输,执行第一程序;所述电子设备包括:
第一获取单元,配置为当所述电子设备中执行的所述第一程序切换至第二程序时,获取与所述电子设备链接的各USB设备的端口标识号;
第二获取单元,配置为确定端口标识号为第一端口对应的第一端口标识号时,获取所述第一端口标识号对应的第一USB设备的第二符号链接名;
替换单元,配置为将所述第一程序中的第一符号链接名替换为第二符号链接名;
执行单元,配置为通过第二符号链接名打开所述第一USB设备,继续执行第一程序。
上述方案中,所述电子设备设置有两个以上端口;且所述电子设备能够通过自身的端口与两个以上的USB设备进行数据传输;所述电子设备还包括:
第一确定单元,配置为根据各端口对应的主机控制器、集线器及端口的索引值确定各端口对应的端口标识号。
上述方案中,所述电子设备还包括:
第二确定单元,配置为确定第一端口对应的第一端口标识号;
第三获取单元,配置为获取所述第一USB设备的第一符号链接名;
存储单元,配置为在所述第一程序中存储所述第一符号链接名和所述第一端口标识号。
上述方案中,所述电子设备还包括:
第三确定单元,配置为确定各端口的端口编号;所述各端口的端口标号与端口标识号一一对应;
提示单元,配置为在第一程序执行完成后,根据端口编号提示与端口编号对应的端口连接的USB设备完成数据传输。
本发明实施例还提供了一种第一USB设备,能够通过电子设备中的第一端口与所述电子设备进行数据传输;所述第一USB设备包括:
获取单元,配置为获取第一端口对应的第一端口标识号;
存储单元,配置为存储所述第一端口标识号。
本发明实施例数据传输方法及电子设备、USB设备、存储介质,通过在USB设备中存储与所述USB设备连接的USB端口的端口标识号,在通过所述USB端口与所述USB设备连接的电子设备的执行第一程序中存储所述端口标识号、以及所述第一程序对应的第一符号链接名,如此,当所述USB设备的应用功能发生变化时,即与所述USB设备连接的电子设备中执行程序由第一程序切换至第二程序,此时,将所述第一程序对应的第一符号链接名替换成执行程序变化后形成的第二符号链接名,通过第一程序中存储的端口标识号确定所述USB设备,通过第二符号链接名打开所述USB设备,继续执行第一程序,因此,采用本发明实施例能够保证数据传输过程正确对应变化前的USB设备以继续完成数据传输,实现USB设备的高效使用。
附图说明
图1为本发明实施例数据传输方法的实现流程示意图一;
图2为本发明实施例确定电子设备中各端口的端口编号和端口标识号的实现流程示意图;
图3为本发明实施例数据传输方法的具体实现的流程示意图一;
图4为本发明实施例电子设备的结构示意图;
图5为本发明实施例数据传输方法的实现流程示意图二;
图6为本发明实施例第一USB设备的结构示意图;
图7为本发明实施例USB端口标定的实现流程示意图;
图8为本发明实施例确定端口标识号的实现流程示意图;
图9为本发明实施例数据传输方法的具体实现的流程示意图二。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
电子设备中的每个USB端口所在的主机控制器和集线器是固定的,因此,可以将主机控制器、集线器及USB端口的索引值按照一定规则组成端口标识号,即使用端口标识号代表USB端口。在USB设备数据传输过程中、且多种功能之间进行切换时,虽然USB设备的信息发生了变化,但是所述USB设备所在端口是固定不变的,如此,所述电子设备能够根据端口标识号重新找到USB设备。
基于此,本发明实施例在不改变USB设备信息的前提下,将执行程序、USB设备及USB端口进行绑定,当USB设备信息发生变化时,通过USB端口对应的端口标识号查询到对应的USB设备,从而实现多路可变信息USB设备同时进行数据传输;结合下述实施例对本发明做进一步解释。
实施例一
图1为本发明实施例数据传输方法的实现流程示意图一;所述方法应用于电子设备中,所述电子设备通过自身第一端口与第一USB设备进行数据传输,并执行第一程序;如图1所示,所述方法包括:
步骤101:当所述电子设备中执行的所述第一程序切换至第二程序时,获取与所述电子设备链接的各USB设备的端口标识号;
这里,所述电子设备采用枚举的方法,根据各USB端口对应的主机控制器、集线器及USB端口的索引值生成端口标识号。
步骤102:确定端口标识号为第一端口对应的第一端口标识号时,获取所述第一端口标识号对应的第一USB设备的第二符号链接名;
这里,所述电子设备采用设备扫描程序,获取所述第一USB设备功能切换后对应的第二符号链接名。
步骤103:将所述第一程序中的第一符号链接名替换为第二符号链接名,通过第二符号链接名打开所述第一USB设备,继续执行第一程序。
上述方案中,所述电子设备与两个以上的USB设备分别通过自身的端口进行数据传输;所述方法还包括:根据各端口对应的主机控制器、集线器及端口的索引值确定各端口对应的端口标识号。
上述方案中,所述当所述电子设备中执行的所述第一程序切换至第二程序时之前,所述方法还包括:
确定第一端口对应的第一端口标识号;
获取所述第一USB设备的第一符号链接名;
在所述第一程序中存储所述第一符号链接名和所述第一端口标识号。
上述方案中,所述方法还包括:
确定各端口的端口编号;所述各端口的端口标号与端口标识号一一对应;
在第一程序执行完成后,根据端口编号提示与端口编号对应的端口连接的USB设备完成数据传输。
具体地,在开始多路USB设备数据传输前,即同一个USB设备执行不同任务时,电子设备需要先获取自身每个USB端口的端口标识号并记录在所述电子设备的配置文件中;如图2所示,步骤如下:
步骤201:在所述电子设备的第一USB端口上连接第一USB设备,并确定所述第一USB端口的端口编号;
步骤202:所述电子设备采用枚举的方式在自身的主机控制器、集线器及各USB端口进行查询,当查询到所述第一USB设备后停止枚举,将查询到的第一USB设备对应的主机控制器、集线器及第一USB端口的索引值按照一定规则生成第一端口标识号;
这里所述规则如下:主机控制器,子集线器,端口的索引值分别是x,y,z,则USB端口标识号为100*x+10*y+z。例如在第5个主机控制器,第1个子集线器,第6个端口下发现了USB设备,此时的端口标识号为516。
步骤203:将第一USB端口的端口编号及第一端口标识号存储于所述电子设备的配置文件。
这里,当所述电子设备具有多个USB端口,且所述电子设备通过多个USB端口同时与多个USB设备进行连接时,按照上述方法确定各USB端口的端口标识号及端口编号,并存储于配置文件中。
所述电子设备将存储的配置文件放入数据传输过程对应的程序中开始多路可变信息USB设备数据传输流程,如图3所示,步骤如下:
步骤301:当所述电子设备中的第一USB端口与第一USB设备连接后,所述电子设备启动设备扫描程序,得到所述第一USB设备执行当前程序(下述将当前程序称为第一程序)对应的符号链接名;随后,将得到的所述符号链接名、及与所述第一USB端口对应的第一端口标识号存储于所述第一 程序中;
步骤302:将与所述第一USB设备连接的第一USB端口对应的第一端口标识号存储于所述第一USB设备的固定存储区中;
同理,在所述电子设备的其他USB端口与其他USB设备进行连接时,将其他USB设备对应的端口标识号存储于自身固定存储区中;
此时,所述电子设备的配置文件中存储有与所述第一USB设备连接的第一USB端口的第一端口标识号及端口编号;所述电子设备正在执行的第一程序中存储有所述第一USB设备执行当前程序时的符号链接名、及所述第一USB端口的第一端口标识号;所述第一USB设备中也存储有与自身连接的第一USB端口的第一端口标识号;如此,当第一程序执行过程中所述USB设备发生功能切换,即与所述USB设备连接的电子设备中的执行程序从第一程序切换至第二程序时,由于功能切换后第一USB设备信息发生变化,第一程序对应的数据传输发生中断,随后执行步骤303;
步骤303:当第一程序执行过程中所述USB设备发生功能切换时,所述电子设备重新启动设备扫描程序获取各USB设备的符号链接名,同时获取各USB设备的固定存储区中记录的端口标识号;当确定的端口标识号为第一端口标识号时,确定所述第一端口标识号对应的第一USB设备;所述第一USB设备即为第一程序中对应的设备;
具体地,当所述电子设备确定端口标识号为第一端口标识号,即与第一程序中存储的端口标识号一致时,通过第一端口标识号确定第一USB设备,此时,所确定的第一USB设备即为功能切换前的设备;
进一步地,当确定的端口标识号为第一端口标识号,通过第一端口标识号确定第一USB设备,此确定过程在电子设备中执行;为进一步验证所述第一端口标识号对应的USB设备是否为第一USB设备,调用第一USB设备中存储的端口标识号,比较第一USB设备中存储的端口标识号与确定 的端口标识号是否相同,若相同,则说明所述第一端口标识号对应的USB设备为第一USB设备,如此,先确定端口标识号对应的USB设备,再验证所确定USB设备是否正确,提高了确定的准确度。
步骤304:所述电子设备获取功能切换后重新启动设备扫描程序时对应所述第一USB设备的新符号链接名,并将新符号链接名替换第一程序中存储的符号链接名;
步骤305:所述电子设备使用新符号链接名重新打开步骤303中确定的第一USB设备,继续执行第一程序对应的数据传输过程,直至完成数据传输过程为止;
步骤306:数据传输过程完成后,所述电子设备在自身的配置文件中通过第一端口标识号查询端口编号,根据端口编号确定与第一USB设备连接的第一USB端口,并提示所述第一USB端口的数据传输过程结束;
此时,可以移除对应端口编号的第一USB端口上第一USB设备。
本发明实施例数据传输方法及电子设备、USB设备、存储介质,通过在USB设备中存储与所述USB设备连接的USB端口的端口标识号,在通过所述USB端口与所述USB设备连接的电子设备的执行第一程序中存储所述端口标识号、以及所述第一程序对应的第一符号链接名,如此,当所述USB设备的应用功能发生变化时,即与所述USB设备连接的电子设备中执行程序由第一程序切换至第二程序,此时,将所述第一程序对应的第一符号链接名替换成执行程序变化后形成的第二符号链接名,通过第一程序中存储的端口标识号确定所述USB设备,通过第二符号链接名打开所述USB设备,继续执行第一程序,因此,采用本发明实施例能够保证数据传输过程正确对应变化前的USB设备以继续完成数据传输,实现USB设备的高效使用。
本发明实施例通过将USB设备、电子设备中的USB端口及执行程序中 的符号链接名绑定的方法,实现同一USB设备的多路可变信息的数据传输过程,避免了传统方法在各功能模式间创建衔接设备造成的各模式紧耦合性的弊端,使得USB设备的各功能模式都可以作为独立模块存在,便于维护。
为实现图1所述的方法,本发明实施例还提供了一种电子设备,设置有第一端口,所述电子设备能够通过第一端口与第一USB设备进行数据传输,执行第一程序;如图4所示,所述电子设备包括:
第一获取单元41,配置为当当所述电子设备中执行的所述第一程序切换至第二程序时,获取与所述电子设备链接的各USB设备的端口标识号;
第二获取单元42,配置为确定端口标识号为第一端口对应的第一端口标识号时,获取所述第一端口标识号对应的第一USB设备的第二符号链接名;
替换单元43,配置为将所述第一程序中的第一符号链接名替换为第二符号链接名;
执行单元44,配置为通过第二符号链接名打开所述第一USB设备,继续执行第一程序。
上述方案中,所述电子设备设置有两个以上端口;且所述电子设备能够通过自身的端口与两个以上的USB设备进行数据传输;所述电子设备还包括:
第一确定单元,配置为根据各端口对应的主机控制器、集线器及端口的索引值确定各端口对应的端口标识号。
上述方案中,所述电子设备还包括:
第二确定单元,配置为确定第一端口对应的第一端口标识号;
第三获取单元,配置为获取所述第一USB设备的第一符号链接名;
存储单元,配置为在所述第一程序中存储所述第一符号链接名和所述 第一端口标识号。
上述方案中,所述电子设备还包括:
第三确定单元,配置为确定各端口的端口编号;所述各端口的端口标号与端口标识号一一对应;
提示单元,配置为在第一程序执行完成后,根据端口编号提示与端口编号对应的端口连接的USB设备完成数据传输。
为实现图1所述的方法,本发明实施例还提供了一种计算机可读存储介质,该存储介质包括一组指令,所述指令用于图1所示的数据传输方法。
在实际应用中,所述第一获取单元41、第二获取单元42、替换单元43、执行单元44、第一确定单元、第二确定单元、第三获取单元、存储单元、第三确定单元、提取单元均可由中央处理单元(CPU,Central Processing Unit)、或数字信号处理(DSP,Digital Signal Processor)、或现场可编程门阵列(FPGA,Field Programmable Gate Array)等来实现;所述CPU、DSP、FPGA均可内置于电子设备中。
实施例二
图5为本发明实施例数据传输方法的实现流程示意图二;所述方法应用于第一USB设备中;所述第一USB设备通过电子设备中的第一端口与所述电子设备进行数据传输;如图5所示,所述方法包括:
步骤501:获取第一端口对应的第一端口标识号;
步骤502:存储所述第一端口标识号。
为实现图5所述的方法,本发明实施例还提供了一种第一USB设备,所述第一USB设备能够通过与电子设备中的第一端口与所述电子设备进行数据传输;如图6所示,所述第一USB设备包括:
获取单元61,配置为获取第一端口对应的第一端口标识号;
存储单元62,配置为存储所述第一端口标识号。
在USB设备数据传输过程中、且多种功能之间进行切换时,虽然USB设备的信息发生了变化,但是所述USB设备所在端口是固定不变的,而且,由于USB设备中存储了所连接端口的端口标识号,如此,能够为与所述USB设备连接的电子设备根据端口标识号重新找到USB设备奠定基础。
为实现图5所述的方法,本发明实施例还提供了一种计算机可读存储介质,该存储介质包括一组指令,所述指令用于图5所示的数据传输方法。
在实际应用中,所述获取单元61、存储单元62均可由中央处理单元(CPU,Central Processing Unit)、或数字信号处理(DSP,Digital Signal Processor)、或现场可编程门阵列(FPGA,Field Programmable Gate Array)等来实现;所述CPU、DSP、FPGA均可内置于第一USB设备中。
实施例三
电子设备在为USB设备传输数据前,需要先标定所述电子设备中的各USB端口,即获取各USB端口的端口标识号和端口编号,并将各USB端口的端口标识号和端口编号储存于所述电子设备的配置文件中;图7为本发明实施例标定USB端口的实现流程示意图;如图7所示,所述USB端口标定的过程包括;
步骤701:所述电子设备采用标定程序对自身的各USB端口进行端口编号;
例如,将所述电子设备中的第一USB端口的端口编号设置为Port1;
步骤702:获取各USB端口的端口标识号;
步骤703:将端口编号与端口标识号存储于所述电子设备的配置文件中;
例如,Port1.200.2=516;其中,Port1表示USB端口的端口编号;所述200表示USB2.0规范;所述2表示高速USB设备;所述516表示第5个主机控制器、第一个子集线器、第6个端口下发现了USB设备。
这里,当USB的规范版本为USB1.0时,用100表示USB1.0规范;当USB的规范版本为USB1.1时,用110表示USB1.1规范。
步骤704:判断所述电子设备中的同一规范的所有USB端口是否全部被标定;若是,执行步骤705;否则,执行步骤701;
步骤705:判断所述电子设备中的不同规范的所有USB端口是否都已被标定;若是,执行步骤706;否则,执行步骤701。
步骤706;完成标定过程。
图8为本发明实施例确定端口标识号的实现流程示意图;如图8所示,所述获取过程包括:
步骤801:当所述电子设备中的各USB端口均标定完成后,在端口编号为Port1的USB端口,即第一USB端口上连接第一USB设备;
例如连接USB2.0设备;
步骤802:所述电子设备采用枚举的方法,从索引0开始枚举自身的主机控制器,通过主机控制器获取主机控制器句柄,并通过所述主机控制器句柄获得所述主机控制器句柄对应的根集线器名;
步骤803:通过所述根集线器名打开集线器,使用DeviceIoControl函数获得集线器的节点信息;
步骤804:所述集线器的节点信息中包含USB端口个数,采用枚举各USB端口的方法,获取集线器对应的USB端口的节点连接信息;
步骤805:根据节点连接信息判断USB端口是否为子集线器;
若是,返回步骤803,获取子集线器的节点信息;否则,执行步骤806;
步骤806:判断USB端口是否与USB设备进行连接;若是,执行步骤807;否则,执行步骤808;
步骤807:确定编号为Port1的USB端口上连接有第一USB设备,此时停止枚举过程,并将主机控制器,集线器,USB端口的索引值按照一定 规则组成端口标识号。
步骤808:判断集线器对应的所有的USB端口是否均被枚举;若是,执行步骤802;否则,执行步骤804。
具体地,首先获取USB端口的索引值为0的节点连接信息,若节点连接信息标明USB端口是子集线器,则返回步骤803获得子集线器的节点信息;若USB端口不是子集线器,则判断USB端口是否与USB设备进行连接;若USB端口中未有连接的USB设备,则将索引值加1获得下一个USB端口的节点连接信息;当集线器对应的所有的USB端口都枚举完成后仍没有发现与USB端口连接的USB设备,则返回步骤802获得下一个主机控制器的节点信息;
若枚举到的USB端口与USB设备进行连接时,则停止枚举过程,并将主机控制器,集线器,USB端口的索引值按照一定规则组成端口标识号;所述规则如下:主机控制器,子集线器,端口的索引值分别是x,y,z,则USB端口标识号为100*x+10*y+z。例如在第5个主机控制器,第1个子集线器,第6个端口下发现了USB设备,此时的端口标识号为516。
由于USB设备端口有不同的规范版本,例如当版本为USB1.1的USB设备与版本为USB2.0的USB设备连接在同一个USB端口上时,枚举设备信息的主机控制器是不一样的,所以还需要记录USB设备的规范版本和速度,本发明实施例中将USB设备的规范版本、速度与端口编号组合在一块,例如USB2.0全速设备连接在USB端口1上,可将USB端口的端口编号定义为Port1.200.1,USB2.0高速设备连接在端口1上,可将端口编号定义为Port1.200.2;
这里,所述200.1中的1表示全速USB设备,所述200.2中的2表示高速USB设备。
这里,只要所述电子设备不重新安装操作系统或者禁用主机控制器, 上述步骤获得配置文件在所述电子设备中一直有效。将所述配置文件储存入程序中进行多路可变信息的USB设备的数据传输过程;如图9所示,所述数据传输方法包括:
步骤901:按照图7和图8所述的步骤标定电子设备中的所有USB端口,并确定各USB端口的端口编号和端口标识号,并将各USB端口的端口编号和端口标识号存储于所述电子设备中的配置文件中;
步骤902:在所述电子设备的一个USB端口、例如第一USB端口上连接预进行数据传输的第一USB设备;
步骤903:当所述第一USB设备与所述电子设备连接、且预执行第一程序时,所述电子设备的操作系统向所述第一程序发送WM_DEVICECHANGE的系统消息,所述第一程序通过所述系统消息启动设备枚举流程(即设备扫描程序)获得所述第一USB设备针对于第一程序时的第一符号链接名,并将所述第一符号链接名和所述配置文件中存储的所述第一USB端口对应的第一端口标识号作为一整体保存至第一程序中;
这里,在本步骤执行的同时,可以在其他USB端口依次插入其他预进行数据传输的USB设备;
步骤904:所述电子设备通过所述第一符号链接名使用CreateFile()函数打开所述第一USB设备;并使用定义的指令将与所述第一USB设备连接的第一USB端口的第一端口标识号写入所述第一USB设备的固定存储区域中,例如采用Diag指令将第一端口标识号写入所述第一USB设备的固定存储区域中;
这里,当所述第一USB设备功能发生切换时,执行步骤905;
步骤905:所述电子设备的第一程序向所述第一USB设备发送一个切换指令,将所述第一USB设备执行的任务由第一功能模式切换至第二功能模式;
这里,当第一USB设备发生功能切换时,所述第一USB设备上报给所述电子设备的主机控制器的厂商标识VID、产品标识PID和设备串号中某一项发生了变化或均发生了变化,此时,所述电子设备中的操作系统会为第一USB设备重新加载功能驱动,由于不同的功能驱动创建的符号链接名不同,因此第一程序对应的数据传输过程发生中断;
步骤906:当第一USB设备发生功能切换时,所述电子设备的第一程序重新枚举各USB设备的符号链接名,同时获取各USB设备的端口标识号;即采用Diag指令获取各USB设备的固定储存区域中存储的端口标识号;当所述电子设备的确定的端口标识号与所述第一程序中存储的端口标识号相同时,即确定的端口标识号为第一端口标识号时,停止枚举过程,确定所述第一端口标识号对应的第一USB设备,此时所述第一USB设备即为执行第一程序时对应的设备;
具体地,所述电子设备的第一程序重新枚举USB设备;若此时电子设备上与多个USB设备同时执行数据传输任务,枚举的过程中会得到一个USB设备群。此时使用Diag指令获取USB设备固定存储区域中存储的端口标识号,将获取的端口标识号与第一程序中存储的端口标识号进行比较,如果一致则停止枚举,否则继续枚举与所述电子设备连接的各USB设备。
这里,在所述电子设备的第一程序重新枚举USB设备,获取到第一电子设备的第二符号链接名;
步骤907:将步骤906重新枚举过程中获得的第二符号链接名替换第一程序中的第一符号链接名;
步骤908:通过第二符号链接名使用CreateFile()函数重新打开步骤906中确定的第一USB设备,继续执行第一程序对应的数据传输过程,直至完成数据传输过程为止;
这里,由于第一程序中存储了第一USB端口对应的第一USB设备的第 一端口标识号,且符号链接名也更新为功能切换后的第二符号链接名,因此,通过第一程序中存储的第一端口标识号确定第一USB设备,并通过第二符号链接名打开所确定的第一USB设备,使所述第一USB设备继续执行第一程序。
步骤909:当所述第一程序执行完成后,所述电子设备在配置文件中查询第一端口标识号对应的端口编号,提示所述端口标号对应的第一USB端口上的第一USB设备已成功完成数据传输过程。
此时可将对应端口编号的第一USB端口上的第一USB设备移除并连接新的USB设备,返回步骤901按照同样流程重新下载数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明实施例的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明实施例原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明实施例的保护范围。
工业实用性
本发明实施例通过在USB设备中存储与所述USB设备连接的USB端口的端口标识号,在通过所述USB端口与所述USB设备连接的电子设备的执行第一程序中存储所述端口标识号、以及所述第一程序对应的第一符号链接名,如此,当所述USB设备的应用功能发生变化时,即与所述USB设备连接的电子设备中执行程序由第一程序切换至第二程序,此时,将所述第一程序对应的第一符号链接名替换成执行程序变化后形成的第二符号链接名,通过第一程序中存储的端口标识号确定所述USB设备,通过第二符号链接名打开所述USB设备,继续执行第一程序,因此,采用本发明实施例能够保证数据传输过程正确对应变化前的USB设备以继续完成数据传输,实现USB设备的高效使用。

Claims (12)

  1. 一种数据传输方法,应用于电子设备中,所述电子设备通过自身第一端口与第一USB设备进行数据传输,并执行第一程序;所述方法包括:
    当所述电子设备中执行的所述第一程序切换至第二程序时,获取与所述电子设备链接的各USB设备的端口标识号;
    确定端口标识号为第一端口对应的第一端口标识号时,获取所述第一端口标识号对应的第一USB设备的第二符号链接名;
    将所述第一程序中的第一符号链接名替换为第二符号链接名,通过第二符号链接名打开所述第一USB设备,继续执行第一程序。
  2. 根据权利要求1所述的方法,其中,所述电子设备与两个以上的USB设备分别通过自身的端口进行数据传输;
    所述方法还包括:根据各端口对应的主机控制器、集线器及端口的索引值确定各端口对应的端口标识号。
  3. 根据权利要求1或2所述的方法,其中,所述当所述电子设备中执行的所述第一程序切换至第二程序时之前,所述方法还包括:
    确定第一端口对应的第一端口标识号;
    获取所述第一USB设备的第一符号链接名;
    在所述第一程序中存储所述第一符号链接名和所述第一端口标识号。
  4. 根据权利要求2所述的方法,其中,所述方法还包括:
    确定各端口的端口编号;所述各端口的端口标号与端口标识号一一对应;
    在第一程序执行完成后,根据端口编号提示与端口编号对应的端口连接的USB设备完成数据传输。
  5. 一种数据传输方法,应用于第一USB设备中,所述第一USB设备 通过电子设备中的第一端口与所述电子设备进行数据传输;所述方法包括:
    获取第一端口对应的第一端口标识号;
    存储所述第一端口标识号。
  6. 一种电子设备,设置有第一端口,所述电子设备能够通过第一端口与第一USB设备进行数据传输,执行第一程序;所述电子设备包括:
    第一获取单元,配置为当所述电子设备中执行的所述第一程序切换至第二程序时,获取与所述电子设备链接的各USB设备的端口标识号;
    第二获取单元,配置为确定端口标识号为第一端口对应的第一端口标识号时,获取所述第一端口标识号对应的第一USB设备的第二符号链接名;
    替换单元,配置为将所述第一程序中的第一符号链接名替换为第二符号链接名;
    执行单元,配置为通过第二符号链接名打开所述第一USB设备,继续执行第一程序。
  7. 根据权利要求6所述的电子设备,其中,所述电子设备设置有两个以上端口;且所述电子设备能够通过自身的端口与两个以上的USB设备进行数据传输;所述电子设备还包括:
    第一确定单元,配置为根据各端口对应的主机控制器、集线器及端口的索引值确定各端口对应的端口标识号。
  8. 根据权利要求6或7所述的电子设备,其中,所述电子设备还包括:
    第二确定单元,配置为确定第一端口对应的第一端口标识号;
    第三获取单元,配置为获取所述第一USB设备的第一符号链接名;
    存储单元,配置为在所述第一程序中存储所述第一符号链接名和所述第一端口标识号。
  9. 根据权利要求7所述的电子设备,其中,所述电子设备还包括:
    第三确定单元,配置为确定各端口的端口编号;所述各端口的端口标 号与端口标识号一一对应;
    提示单元,配置为在第一程序执行完成后,根据端口编号提示与端口编号对应的端口连接的USB设备完成数据传输。
  10. 一种第一USB设备,能够通过电子设备中的第一端口与所述电子设备进行数据传输;所述第一USB设备包括:
    获取单元,配置为获取第一端口对应的第一端口标识号;
    存储单元,配置为存储所述第一端口标识号。
  11. 一种计算机可读存储介质,该存储介质包括一组指令,所述指令用于执行权利要求1至4任一项所述的数据传输方法。
  12. 一种计算机可读存储介质,该存储介质包括一组指令,所述指令用于执行权利要求5所述的数据传输方法。
PCT/CN2014/091319 2014-06-11 2014-11-17 数据传输方法及电子设备、usb设备、存储介质 WO2015188586A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410258390.2A CN105224483B (zh) 2014-06-11 2014-06-11 数据传输方法、电子设备及通用串行总线设备
CN201410258390.2 2014-06-11

Publications (1)

Publication Number Publication Date
WO2015188586A1 true WO2015188586A1 (zh) 2015-12-17

Family

ID=54832845

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/091319 WO2015188586A1 (zh) 2014-06-11 2014-11-17 数据传输方法及电子设备、usb设备、存储介质

Country Status (2)

Country Link
CN (1) CN105224483B (zh)
WO (1) WO2015188586A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930243A (zh) * 2016-04-18 2016-09-07 深圳市德名利电子有限公司 一种测试usb设备的端口确定方法及系统
CN109947482A (zh) * 2017-12-21 2019-06-28 深圳Tcl新技术有限公司 一种usb设备的加载方法、存储介质及智能电视
CN112650702A (zh) * 2020-12-22 2021-04-13 北京华大智宝电子系统有限公司 一种多口usb设备的端口绑定方法及系统
CN114372017A (zh) * 2022-01-04 2022-04-19 中国大恒(集团)有限公司北京图像视觉技术分公司 一种不影响cxp设备正常工作的枚举方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833309B (zh) * 2018-07-25 2020-04-07 清华大学 集线服务器
CN108959153B (zh) * 2018-08-01 2021-04-06 广州视源电子科技股份有限公司 一种一体机、数据续传的方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452435A (zh) * 2008-12-12 2009-06-10 深圳华为通信技术有限公司 一种usb端口模式切换方法及终端
CN101751349A (zh) * 2008-12-01 2010-06-23 海华科技股份有限公司 虚拟usb接口编号的方法及其电脑可读取媒体
CN102156830A (zh) * 2011-03-15 2011-08-17 北京思创银联科技股份有限公司 逻辑设备名到盘符的映射方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0325174D0 (en) * 2003-10-28 2003-12-03 Sandoz Ag Organic compounds
US7657684B2 (en) * 2006-04-28 2010-02-02 Qualcomm Incorporated USB interrupt endpoint sharing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751349A (zh) * 2008-12-01 2010-06-23 海华科技股份有限公司 虚拟usb接口编号的方法及其电脑可读取媒体
CN101452435A (zh) * 2008-12-12 2009-06-10 深圳华为通信技术有限公司 一种usb端口模式切换方法及终端
CN102156830A (zh) * 2011-03-15 2011-08-17 北京思创银联科技股份有限公司 逻辑设备名到盘符的映射方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930243A (zh) * 2016-04-18 2016-09-07 深圳市德名利电子有限公司 一种测试usb设备的端口确定方法及系统
CN109947482A (zh) * 2017-12-21 2019-06-28 深圳Tcl新技术有限公司 一种usb设备的加载方法、存储介质及智能电视
CN112650702A (zh) * 2020-12-22 2021-04-13 北京华大智宝电子系统有限公司 一种多口usb设备的端口绑定方法及系统
CN114372017A (zh) * 2022-01-04 2022-04-19 中国大恒(集团)有限公司北京图像视觉技术分公司 一种不影响cxp设备正常工作的枚举方法
CN114372017B (zh) * 2022-01-04 2023-12-12 中国大恒(集团)有限公司北京图像视觉技术分公司 一种不影响cxp设备正常工作的枚举方法

Also Published As

Publication number Publication date
CN105224483A (zh) 2016-01-06
CN105224483B (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
WO2015188586A1 (zh) 数据传输方法及电子设备、usb设备、存储介质
CN103412769B (zh) 外接卡参数配置方法、设备以及系统
EP3002677A1 (en) System and method for managing multiple bios default configurations
US8825916B2 (en) Method and device for identifying device ports of data card in Linux system
US20080021693A1 (en) Storage Device Simulator
US20160246612A1 (en) Network bios management
US9806959B2 (en) Baseboard management controller (BMC) to host communication through device independent universal serial bus (USB) interface
JP6136127B2 (ja) コントローラ、電子機器及びusbデバイスの制御方法
CN109324991B (zh) 一种pcie设备的热插拔装置、方法、介质及系统
US9703937B2 (en) Method to prevent operating system digital product key activation failures
US9779047B2 (en) Universal intelligent platform management interface (IPMI) host to baseboard management controller (BMC) communication for non-x86 and legacy free systems
US9672047B1 (en) Systems and methods for accessing a bootable partition on a serial peripheral interface device
US10642678B1 (en) PCI/PCIe-non-compliance-vulnerability detection apparatus and method
CN104731617A (zh) 一种固定服务器启动设备的方法
CN103150188A (zh) 非x86指令集计算机的x86兼容显卡快速初始化方法
WO2016033389A1 (en) Universal serial bus emulation layer
CN107678984A (zh) Usb端口映射方法及计算机可读存储介质
TW201305910A (zh) 電腦系統及其作業系統載入方法
CN103793263A (zh) 一种基于PowerPC处理器的DMA事务级建模方法
US20070220176A1 (en) Method and apparatus for injecting errors into SAS domains through SAS expanders
WO2015117460A1 (zh) Usb设备识别主机系统的方法、usb设备及存储介质
US9965417B1 (en) Use of interrupt memory for communication via PCIe communication fabric
JP5794266B2 (ja) Usbホスト装置、及びusbホスト装置用のプログラム
CN112069102B (zh) Gpio控制器配置方法和系统
US20080177946A1 (en) Method, System and Media for Improved Operation of a Device in a Foreign Domain

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14894392

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14894392

Country of ref document: EP

Kind code of ref document: A1