CN103299285A - 连接到usb外围设备的主机设备及其操作方法 - Google Patents
连接到usb外围设备的主机设备及其操作方法 Download PDFInfo
- Publication number
- CN103299285A CN103299285A CN2011800638939A CN201180063893A CN103299285A CN 103299285 A CN103299285 A CN 103299285A CN 2011800638939 A CN2011800638939 A CN 2011800638939A CN 201180063893 A CN201180063893 A CN 201180063893A CN 103299285 A CN103299285 A CN 103299285A
- Authority
- CN
- China
- Prior art keywords
- agreement
- main process
- process equipment
- protocol
- peripherals
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
- G06F9/4413—Plug-and-play [PnP]
-
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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
- 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/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Telephone Function (AREA)
- Facsimiles In General (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明的具体实施方式涉及用于操作主机设备的方法与装置,该主机设备(例如“即插即用”主机设备)连接到外围设备(例如移动电话)。在一些实施例中,主机设备可分析外围设备描述性数据(例如包括但不限于USB端点数据),并根据分析结果确定关于该外围设备的信息。由主机设备根据该分析结果执行操作,包括但不限于:协议选择、检索蜂窝电话数据、确定外围设备的软件或硬件资源。在一些实施例中,可主动阻止本地操作系统行为,因而由外围设备(例如,在硬件标识符中)所指定的设备驱动程序是由主机设备来加载的。例如,可加载替代的代理驱动程序。在一个实施例中,硬件标识符是被截取的,而不传送到在主机设备上执行的即插即用管理器。
Description
技术领域
本发明的具体实施方式涉及操作连接到外围设备(例如,蜂窝电话)的主机设备(例如,即插即用的主机设备)的装置与方法。
背景技术
USB描述符数据
USB提供了一个可扩展的、可热插拔的即插即用连接的串行接口,以确保标准的、低成本的对于诸如存储设备、键盘、游戏杆、打印机、扫描仪、调制解调器和数码相机等外围设备的连接。
USB使用一组称为“描述符”的数据,以允许这些外围设备能被主机正确地识别。在USB1.x版中,采用以下五种描述符:“设备描述符”、“配置描述符”、“接口描述符”、“端点描述符”和“字符串描述符”。
这些描述符中的前面4个可以分等级地如图1中那样配置。根据“Renesas”网站(http://www2.renesas.com):
(A)设备描述符“指示诸如支持的USB版本、设备类别、设备的子类、协议和对于端点0的最大数据包大小等设备信息”。该设备描述符包括“销售商ID、产品ID、设备版本,可能的配置数量和字符串描述符索引”。对于每台设备,正好有一个设备ID。
(B)配置描述符“指示诸如接口的数量、用于选择配置的值等信息”。该配置描述符包括:“设备属性(即设备是如何通电的)、耗电量和字符串描述符的索引。”每台设备有一个或多个配置描述符。如图1所示,每个配置描述符具有一个或多个接口描述符。
(C)接口描述符“指示诸如用于选择接口的值的等信息。”正如图IB所示,接口描述符是一个“结构(struct)”,它包括:“替代设置的数量、端点的数量、接口类别、接口的子类、接口协议、字符串描述符的索引”。
(D)端点描述符“指示诸如用于选择端点的值等信息。”该端点描述符包括:“传输类型(传输方向)、可用于传输的最大数据包大小,以及传输时间间隔。”端点描述符是“独立于每个接口描述符而存在的。根据所述接口,可能有一个接口描述符,而没有端点描述符,因为端点0是由设备描述符来定义的,而不是由端点描述符来定义的。”
有时,在文献中,人们使用“设备描述符”一词来指示USB描述符数据的低于“设备描述符”层次的额外层次结构。在本说明书中,USB“设备描述符”数据具体是指USB“设备描述符”层次结构的数据。
即插即用的设备和技术
即插即用技术和设备已经在计算机世界普遍存在超过十年。提供即插即用功能的操作系统,包括但不限于:(即各种“风味”,包括但不限于Windows98、Windows CE、Windows2000、Windows XP、Windows Vista和Windows7)中的和许多的Linux发行版。
图2A-图2B分别是框图和流程图,描述了包括打印机连接到主机设备的系统和操作该主机设备和打印机的方法。为了连接在打印机20(具有端口22)和主机设备100(例如,膝上型计算机、台式机或任何其他PC设备)之间的设备,打印机20通过各个USB端口(即主机侧端口22,它可以是一个“雄性”USB连接器,和设备侧端口110,这可以是一个“雌性”USB插座)将USB设备描述符数据发送到主机设备100(参见步骤S21)。
一段运行在主机设备100上的操作系统代码被称为USB主机控制器(在图1中显示为“USB主机控制器代码134”,它驻留在存储器120中,并由处理器执行),该USB主机控制器侦听主机侧端口110并接收USB设备描述符。USB集线器驱动程序(即被实施为执行代码)直接或间接地从USB设备描述符的至少一部分数据中产生(例如,通过调用一个或多个其他代码模块的函数)所谓的“硬件ID”。
具体针对外围设备(在图2A中具体为打印机)的这个“硬件ID”是:(i)根据USB设备描述符的内容而产生的,并(ii)被转发(参见称为即插即用管理器144的操作系统代码的步骤)。即插即用管理器144通过加载从设备驱动程序的“库”中选择的设备驱动程序26,响应为接收外围设备标识符(在本例中,打印机标识符),该“库”匹配硬件标识符(在本例中,打印机标识符)(参见图2B中的步骤S25)。
在图2A中,这个库被称为“OS设备驱动程序数据库142”,(i)它被定位于在各自的USB端口22、11之间的通信链路190的“主机侧”之上,(ii)它可驻留在主机侧的设备的任何组合内,包括主机设备100和/或任何其他设备;(iii)它可驻留在易失性存储器120和/或非易失性存储器122的任意组合内;以及(iv)它通常包括某些形式的索引数据结构,该结构映射在多种不同硬件ID与实际数据驱动程序数据对象(例如,文件或任意其他数据对象)之间。“OS设备驱动程序数据库142”和/或它们的任意部分可被提供为单一的数据结构和/或可被分布在数据结构之间。在一个非限制性的例子中,“OS设备驱动程序数据库142”的一部分整体可被定位在OS“注册表”中。
设备驱动程序的指定
在步骤S25中加载的驱动程序不是完全由和/或主要由USB设备类(例如,通用打印机驱动程序、通用调制解调器驱动程序)确定的通用驱动程序。相反,该驱动程序是“定制”的设备驱动程序(即不是对于该设备类的“通用”或“标准”的设备驱动程序,例如“标准打印机驱动程序”等),它是“具体的”特定的“硬件ID”,且是“具体的”USB设备描述符数据,该数据在步骤S23中从外围设备被传递,在步骤S25中被加载。
在(i)在步骤S21中从外围设备传递到主机的决定硬件ID的USB设备描述符内容(以及在步骤S23中从USB集线器驱动程序传递到即插即用管理器的硬件ID的内容)与(ii)在步骤S25被加载入存储器120的实际设备驱动程序的身份之间存在一个因果关系。即使USB设备描述符与硬件ID都完全确定在步骤S25中加载到存储器120的实际设备驱动程序的身份(这是在与主机侧驻留的OS设备驱动程序数据库142的至少一部分内容的结合来确定的),USB设备描述符与硬件ID当然地发挥确定实际设备驱动程序的身份的核心作用。
因此,在本发明中,可以说,因为USB设备描述符与硬件ID在决定实际设备驱动程序的身份中发挥核心作用,每个设备描述符“指示”对于外围设备所加载的设备-特定驱动程序(在图2A中,这个外围设备是打印机20——在图2B中,这个外围设备是在步骤S25中被加载的)。
图2B的步骤S27和S29
在步骤S25中加载的打印机设备驱动程序26公开了打印机API,它将设备无关的打印机命令(例如,“末页”或“打印窗口”)转换为特定的打印机语言。此外,该打印机API也可以提供对于以下命令的支持:该命令是由特定打印机所识别,但不一定是与设备无关的打印机命令,通过诸如“写打印机”等API调用。在这种情形下,打印机设备驱动程序26可将通用的设备无关的打印机API“扩展”或“延展”为包括额外的打印机命令。
由打印机设备驱动程序26提供的打印机API是可用于用户的应用程序24(例如字处理器应用程序和互联网浏览器或任何其他应用程序),这些应用程序利用打印机API将特定的打印机命令(缩写为PCs)发送到打印机(参见图1B的步骤S27)。该打印机20接收这些打印机命令,并将打印机响应(缩写为PRs,即“上线”或者“出调色”)发送到用户应用程序24(参见图1B的步骤S29)。
图2C-2D描述了一个平行的例子,该例子中不连接打印机设备,而是将大容量存储设备30(具有端口32)连接到主机设备。因此,步骤S31-39是平行于步骤S21-29,存储设备驱动程序36是平行于打印机驱动程序36。
复合设备与PC主机的连接
图2A-2D涉及这样的情况,其中,单一的或“简单的”设备是由外围设备通过主机侧端口100呈现给主机100的。
在其他的例子中,用户可将“复合”设备连接到主机设备200。USB规范将“复合设备”定义为“具有相互独立地控制的多接口的装置”。
使用复合设备,多个功能组合进入单一设备中。例如,“鼠标和网络摄像头”或“打印机和扫描仪”。图3A-3B所示的例子涉及“打印机和大容量存储设备”的情形。在这个例子中,多个驱动程序被加载用于USB外围单个设备——该“设备描述符”从复合设备40被传递到主机100,且“硬件ID”从USB集线器驱动程序134被传递,即插即用管理器144在对于“复合设备”40哪个特定设备(也就是,特定对于复合设备的多个设备的每个设备)将被加载的决定发挥作用。对于复合的USB集线器,集线器驱动程序代码134可包括“复合总线”部件。因此,对于“复合设备”的情形,USB设备描述符和“硬件ID”,每个可被称为“指定的设备——特定的驱动程序”。
图3A-3B说明了外围设备的四种可能的“外围设备配置文件”/USB指纹,这些外围设备可以通过USB端口100与主机设备100相连接。
虽然在特定的具体实施例中各个步骤的细节可能与复合设备的情形有所不同,在图3A-3B描述的水平(见元件40、42;参见步骤S41、S43、S45、S47和S49),在所有的实施例中,主机设备加载多个设备驱动程序。在所有的实施例中,主机可以在加载驱动程序后发送命令到多个“目标”——例如,在图3B所示的例子中,主机可以发送大容量存储设备命令到(i)与大容量存储设备的类型关联的“目标”接口描述符;以及(ii)与打印机设备类型相关联的“目标”接口描述符。
蜂窝电话命令
蜂窝电话在21世纪的生活中是无处不在的,不需要介绍。图4是一个示例性的蜂窝电话设备300的方框图,包括:显示屏310、键盘304(例如,数字键盘,包括机械按键或者提供“触摸屏”功能的内容)、蜂窝通信电路314、易失性和/或非易失性存储器320、一个或多个处理器130、设备侧端口322和天线306。
蜂窝通信电路314(也就是,包括根据蜂窝网络协议用于与该蜂窝网络进行通信的硬件和/或软件的任何组合)是被配置为处理与蜂窝网络进行的通信(例如,包括但不限于:全球移动通信系统(GSM)、通用分组无线服务技术(GPRS)、码分多址(CDMA)、演进数据优化(EV-DO)、增强型数据速率GSM演进技术(EDGE)、3GSM、数字增强无绳通信(DECT)、数字AMPS(IS-136/TDMA)和集成数字增强型网络(iDEN))。例如,蜂窝通信电路314可处理语音和/或数据的协议和/或蜂窝网络的短信息传递协议。
虽然从CPU130和存储器320分别示出蜂窝通信电路,但该电路不是必需的,在一些实施例中,蜂窝网络通信电路314的一个或多个功能是由处理器130和存储器320来实现的。值得注意的是,“电路”是指硬件和软件的任意组合,并不仅限于纯硬件实施方式。
根据图4所示的例子,下列项目均存储在存储器320:数据存储库328,用于存储蜂窝电话特定数据(例如,存储收到的短信,或存储网络标识符数据,用于识别蜂窝电话设备标识符或用户号码,由电话设备300进行的蜂窝网络操作的日志,或者地址簿信息),以及数据管理代码324,用于管理访问蜂窝电话特定数据的数据。
可以理解的是,图4是一个方框图,存储器320可以包括不同类型的存储器,例如,通用存储器(例如,采用文件系统的闪存格式化或作为面向对象的存储器)以及其他类型的存储设备(例如,特殊的蜂窝电话芯片,其中存储蜂窝电话设备标识符)。类似地,数据存储库328仅是以通常的术语来说明,它可以被分布在多个不同的位置——例如,不需要将SMS数据和地址簿数据存储在一起,SMS数据可被存储在一个以上的格式或位置,等等。
数据管理代码324(也就是,当由处理器130执行时)调节对于在蜂窝电话特定数据存储库328存储器储的蜂窝电话特定数据的访问。例如,一组命令或命令序列可以被定义,用于访问先前接收到的SMS短信,或用于访问蜂窝电话的日志记录(也就是,描述先前的蜂窝网络操作),或用于访问地址簿条目,或用于访问蜂窝电话标识符。
图5A是根据现有技术由蜂窝电话处理SMS的程序的一个流程图。在步骤S11中,根据由蜂窝电话所定义的任意预定义的协议,从该蜂窝网络将一个SMS接收进入蜂窝电话。在步骤S15中,蜂窝电话设备300通过将SMS存储入数据存储库328中而作出响应。如前所述,在该SMS被存储入数据存储库328之后,该蜂窝电话300的硬件和/或软件可定义用于检索该SMS的特定的方案或协议——例如,通过与蜂窝电话设备连接的主机设备100。通过定义访问这些数据的一组操作,代码324和/或任何指定的硬件可调节对于这种类型的蜂窝电话特定数据(即蜂窝电话标识符信息)的访问。
图5B是一个用于处理对于蜂窝电话标识符信息(例如,国际移动设备识别码(IMEI)、电子序列号(ESN)或移动设备标识符(MEID))的蜂窝网络请求的程序的流程图。这些标识符信息可以是用于蜂窝电话激活的由蜂窝网络使用的控制数据对象的控制数量。在步骤S21中,蜂窝电话接收来自蜂窝网络的对于电话标示符的请求,以及在步骤S25中,电话300通过从存储器320访问和/或读取数据来响应该请求。例如,蜂窝电话可以具有一个特殊的芯片,该芯片包括不可修改的数据,该数据也是存储器320的一部分。该电话可以是由软件(例如,通过操作系统软件)“硬核记录的”或配置为仅在由该网络或由连接的主机100通过端口322发出特定的请求之后提供这个标示符数据。
图5C是一个用于记录由蜂窝电话进行的操作的程序的流程图,该蜂窝电话执行操作以与根据现有技术的蜂窝网络进行相互作用。在步骤S31中,蜂窝电话300进行一个蜂窝电话操作——例如,发送或接收短信息,或者发送或接收语音蜂窝电话通话。在步骤S35中,蜂窝电话设备300通过记录该操作到“蜂窝电话日志”并存储到数据库328中来响应所进行的操作。该蜂窝电话300的硬件和/或软件可以定义用于在稍后的时间对蜂窝电话操作日志的数据或者在数据存储库328中驻留的蜂窝电话日志进行检索的一个特定的方案或协议。通过定义访问这些数据的一组操作,代码324和/或任何指定的硬件可调节对于这种类型的蜂窝电话特定数据(即蜂窝电话标识符信息)的访问。
图5D是一个采用地址簿数据用于通过蜂窝网络发起语音蜂窝电话的操作的流程图。地址簿条目存储在数据存储库328中,由蜂窝电话300调节对该数据存储库的访问(例如通过代码324,该代码可定义用于访问该数据的一系列标准操作),该地址簿条目是由用户指定的。该地址簿条目至少包括:“目标”的电话号码,该电话号码映射到关于该目的的附加文本信息。当该地址簿条目被指定时,蜂窝电话400通过发起语音蜂窝电话和/或通过从电话300经蜂窝网络发送SMS来作出响应。通过定义访问这些数据的一组操作,代码324和/或任何指定的硬件可调节对于这种类型的蜂窝电话特定数据(即蜂窝电话标识符信息)的访问。
从主机设备与外围电话设备的沟通
当蜂窝电话设备300作为一种外围“从属”设备被连接到主机100时,用户可以进行,例如,复制数据(例如SMS数据或电话地址簿条目)到他/她的笔记本电脑或台式计算机,和/或使用键盘或“主机设备”(如笔记本电脑或台式电脑)的其它用户控制方式来操作蜂窝电话。
当蜂窝电话通过USB端口连接到主机设备时,蜂窝电话发送USB硬件ID到主机设备,如步骤S21、S31和S41所示。然而,对于蜂窝电话,没有预定义的USB设备类,不像其他外围设备(例如,打印机、调制解调器等)的情形。因此,USB硬件ID对应于除了蜂窝电话设备以外的其他设备——在本说明书中,这些非蜂窝电话设备被称为“代理设备”。
对于本说明书,“代理设备”是一种具有一个类或类型的装置,该类或类型是不同于电话设备类——示例性的代理设备包括但不限于:USB集线器、调制解调器、打印机、无线设备和人机界面设备(HID)。
图6A-6B描述了与以下相关的情形:移动电话被连接到主机设备(例如PC)来执行“移动电话套件”软件。该电话套件应用程序的执行代码在存储器120中被标记为152,如图6A所示。
在图6A所示的步骤S101中,为响应连接在主机100和移动电话200之间的设备(例如,有线或无线USB连接),该移动电话200通过传递“代理设备标示符”而将它本身呈现给主机而作为电话以外的一种代理设备(或者一个或多个代理设备的阵列),该“代理设备标示符”描述一个或多个非电话设备的阵列。这个代理设备标示符是由主机设备100通过主机侧端口110(例如,USB端口)来接收的。特别地,这个代理设备标示符是由操作系统的“USB主机控制器”134来接收的。
在许多例子中,这个代理设备标识符描述了“复合”的设备,参见上面关于图2-3的讨论。
正如前面的例子可见(参见图1A中的步骤S23、图1D中的步骤S33、图3B中的步骤S75),在图6A-6B中,USB主机控制器134自动将通过主机侧端口110所接收的任何设备标识符(也就是,简单的标识符或者与复合的代理设备相关联的标识符)转发(参见步骤S105)到即插即用管理器144——因此,在图4A-4B所示的例子中,代理设备标识符是被转发到即插即用管理器144(步骤S105)。
通常,即插即用管理器144然后将一组一个或多个驱动程序加载(在步骤S109中)到存储器120中,这些驱动程序匹配于从USB主机控制器134所接收的设备标识符。对于具体而又无处不在的例子,代理设备标识符是指复合设备,图2-3的一个或多个教导是被使用在步骤S109中,加载/调用对于代理复合设备的多个驱动程序对象。
在涉及步骤S109的一个例子中,如果用户将音频设备(0lh类)通过主机侧端口110连接到主机100,即插即用管理器144将合适的音频设备驱动程序加载到存储器120,这些音频设备驱动程序在内核模式下执行。因此,对于图6A-6B所示的特定例子,对于代理设备阵列的一个或多个代理设备,即插即用管理器144(它不“知道”移动电话200的“真实身份”)将该代理设备驱动程序140(例如,打印机驱动程序或调制解调器驱动程序或人机界面设备(HID)驱动程序或任何其它驱动程序)加载到存储器120——这是图6A所示的步骤S109。在图6B中,术语“代理设备驱动程序”140是指由从电话200传递到主机的由硬件ID所指定的设备驱动程序,或者,对于电话把它们自身作为代理设备呈现的例子,该术语是指从电话200到由USB硬件ID“间接”指定的设备驱动程序,代理设备驱动程序140不提供“电话命令接口”。可替代地,代理设备驱动程序是被配置为接收和处理与它的设备类型相匹配的命令——如果“代理设备驱动程序”140是“无线通讯设备”驱动程序(或包括“无线通讯设备”,对于有多个代理设备的例子,部分的复合代理设备),则由代理设备驱动程序140所公开的代理设备API是“无线通讯设备”命令接口(也就是,用于处理“通用的”和/或专有的打印机命令)。如果“代理设备驱动程序”140是调制解调器驱动程序,则由代理设备驱动程序140所公开的代理设备API是调制解调器命令接口。如果“代理设备驱动程序”140是大容量存储器驱动程序,则由代理设备驱动程序140所公开的代理设备API是大容量存储器命令接口。诸如此类。
对于复合代理设备的例子,前面段落所述的内容可以用于每种设备类型的每种代理设备驱动程序。
现实生活中已知的移动电话的一个例子是显示在图7A-7B中。图7A显示了在主机设备(在本例中,操作操作系统)上可见的“树形描述”,该主机设备已经连接到单独的诺基亚电话,该电话将它本身呈现为包括超过一个代理设备的复合设备;图7B显示了在主机设备(在本例中,操作操作系统)上可见的“树形描述”,该主机设备已经连接到单独的索尼爱立信 电话,该电话将它本身呈现为包括超过一个代理设备的复合设备。
在诺基亚电话的这个例子(参见图7A)中,当该电话设备被连接到主机设备时(即当该电话设备是一个“外围设备”时),该电话设备在步骤301中将它本身呈现为一个包括多个USB接口描述符等的复合装置。这种代理复合设备包括多个USB接口描述符——包括:(i)“便携式设备”的设备接口描述符的“诺基亚N958GB便携式设备”;(ii)“诺基亚N95调制解调器”接口描述符;(iii)“端口设备类型”的诺基亚N958GB USB端口;以及(iv)6个分离的无线通信设备。
在索尼爱立信电话的这个例子(参见图7B)中,当该电话设备被连接到主机设备时(即当该电话设备是一个“外围设备”时),该电话设备在步骤301中将它本身呈现为一个复合装置。这种代理复合设备包括多个USB接口描述符:(i)两个分离的调制解调器设备;以及(ii)两个分离的端口设备。
对于“复合代理设备”的例子,多个代理类驱动程序140在步骤S109中对于单独的移动电话而被加载(参见图2-3)。以诺基亚和索尼爱立信电话为例,对于在图7A-7B所示的设备的驱动程序是在步骤S109中被加载,它们被统称为代理类驱动程序140。
在涉及电话将它们自己呈现为复合代理设备的一些例子中,这些电话具有相同类型的多个设备(例如,在图7B中所示的超过一个“调制解调器”)可被用于允许主机与电话在类似的多个数据通道上进行通信。
为了使图152所示的电话套件应用程序152(即,它是代理设备驱动程序142的客户端)与电话200进行通信,电话套件应用程序152利用由代理设备驱动程序140所提供的设备API。由于电话套件应用程序152是定制的,且特定系列的电话是硬接线的(在一些具体实施例中,给定的制造商(如摩托罗拉)可销售几种系列的电话——在本例中,用户能够以他/她的特定模式打字,或可以采用几种基于PC的菜单界面提供相关信息),话套件应用程序152能够根据某种映射发出除了电话命令之外的代理设备命令。
在一个例子中,很多电话将调制解调器协议(该协议最初被用于AT命令)扩展为额外的命令,这些命令都起源于AT命令。这些命令可被用于在移动电话200上进行多种操作,包括:管理联系人、在电话上获得信息、更新电话软件等。例如,诺基亚有一个称为F-BUS的专有协议,用于它的S40系列电话。这个通信起源于以下的AT命令:
主机:AT&F
蜂窝电话:AT&F行
主机:AT*诺基亚总线
蜂窝电话:AT
...从这点来说,该通信是以F-BUS二进制语言进行的。该F-BUS协议包括切换回到AT命令协议的命令。
因此,由电话套件应用程序152发送的命令(例如,AT命令或F-BUS命令或诸如“换行”或“打印测试页”等的打印机命令)都是代理设备命令——特定于某个代理设备,如打印机、调制解调器或任何其他的代理设备。它们可被具体为:“通用版本的代理设备”或特定版本的代理设备(类似于扩展了基本命令组的设备驱动程序,对于诸如调制解调器或打印机等特定的设备)。
图8的讨论
图8是一个流程图,提供了执行“电话套装软件”的主机设备与外围设备根据现有技术进行通信的高度简化的描述。
在步骤S61中,主机从外围的电话设备接收USB设备标识符(例如,对应于非电话的代理设备)。在步骤S65中,主机100加载由从外围电话300所接收的USB硬件标识符指定的设备驱动程序(例如,代理设备驱动程序)。
在步骤S69中,主机(如电话套装软件152)与外围电话设备300采用电话特定加载的设备驱动程序进行通信。
下面是用于与外围蜂窝电话设备进行通信的“电话套件”范例的多种不同特征的列表:
(i)通常,每个电话是关联于不同组的驱动程序。在图7A-7B所示的情况中,来自不同厂商的电话需要不同USB类的不同驱动程序,这不是例外,而是常见的。
(ii)为了用蜂窝电话进行通信,它需要加载一个(通常是多个)电话特定的驱动程序,这些驱动程序特定于连接至主机的蜂窝电话。在加载电话特定的驱动程序后,主机采用电话特定的驱动程序与该蜂窝电话进行通信。
(iii)不同的电话需要不同的驱动程序并加载不同组合的驱动程序,这些驱动程序往往具有不同的USB类。
(iv)虽然来自不同厂商的PC电话套件可以支持类似的功能(例如,检索短信、从地址簿检索条目、添加条目到地址簿等),通常来自不同厂商的电话执行这些“数据访问操作”是不同的,它们采用不同的协议来从存储库328中读取电话数据。
(v)PC电话套件软件152通常是被“硬编码”为支持由电话厂商销售的一组电话,以及预先包括数据和/或描述电话厂商的用于在存储库328中访问数据的代码。
发明内容
这里所公开的主题内容的具体实施方式涉及用于与外围蜂窝电话设备进行通信的方法和装置,由此替代依赖于直接或间接由从蜂窝电话传递到主机的由USB硬件标识符所指定的蜂窝电话驱动程序,这样能(i)主动阻止将外围设备特定的驱动程序加载到存储器中,以及(ii)从多个候选设备中无需依赖设备驱动程序而能识别该蜂窝电话。一旦该蜂窝电话被正确地识别(例如,为确定供应商的身份,为确定电话的硬件或软件能力,为确定由外围设备电话所识别的协议,等等),有可能根据蜂窝电话的特定“语言”与该电话进行通信,即使没有关于该蜂窝电话的身份信息被预先提供到主机(也就是,手动提供,或通过加载蜂窝电话特定的设备驱动程序来提供)。
在一个非限制性的例子中,可能分析外围蜂窝电话的端点描述符数据,然后比较该端点描述符数据到一个数据库——例如,驻留在主机外围USB接口的主机侧。对于许多情况已经确定,USB端点描述符数据通过其自身和/或结合其他USB指纹数据(例如,USB接口描述符和/或USB配置描述符和/或USB设备描述符数据)在许多情况下足够指定一个或多个:(i)电话供应商的名称;(ii)电话的型式名称;(iii)电话硬件和/或软件资源;(iv)电话协议特性;以及(v)一个或多个额外的电话特定特征。
因此,不需要假设用户之前已经将来自特定供应商的电话连接到主机设备,而可以提供相对“通用电话主机”产品,该产品将主机配置为与电话设备从相对“大”量的供应商和以相对“大”量的型式而适当地通信。
当将电话连接到主机设备时,不需要用户将电话驱动程序加载入主机设备存储器,而可以:(i)阻止这种行为;(ii)无需依赖设备驱动程序而“识别该电话”(也就是,即使从相对“大”和/或“变化的”候选设备组中)。这避免了需要为用户在他们的主机设备上安装供应商特定的PC电话套件,并允许用户简单地将相对“大”的电话组的几乎任何电话插入到他/她的主机设备,并与所连接的外围电话设备进行通信(即在许多情况下,无论供应商如何)。
在不同的例子中,可以让用户以基本上不依赖电话型式和/或不依赖电话厂商和/或不依赖电话芯片组和/或不依赖电话操作系统的方式从主机设备执行多种蜂窝电话相关的操作。不管以下事实也可提供这样的特征:大多数蜂窝电话提供型号特定和/或供应商特定的方案来用于访问蜂窝电话数据。示例性的蜂窝电话相关操作包括但不限于:(i)读、写或删除短信;(ii)读取或修改蜂窝电话日志;(iii)读取蜂窝电话标识符信息(例如,国际设备识别码(IMEI)、电子序列号(ESN)或移动设备标识符(MEID));以及(iv)读取或修改地址簿条目。
在一个非限制性的例子中,可以保持一个数据库,由此每个条目的“关键数据”是蜂窝电话型式特定数据(例如,低至“端点描述符水平”的USB指纹数据),每个条目的“关键数据”描述了关于具体型式(例如,供应商名称、型号、识别的协议、访问短信或地址簿或日志或电话标识符数据的方案、电话硬件或软件资源等)的信息。当“候选电话”被连接到主机设备时,“候选电话”的描述数据(例如,“端点描述符”数据或其他数据)是被用作关键数据来在主机侧数据库中实现“查寻”。在将这种描述数据与提供最接近的匹配的条目相匹配之后,可以从主机侧数据库读取特定于当前“识别的”蜂窝电话型式的信息。
然后,可以将这些信息或相关信息显示给用户,和/或以供应商特定或型式特定的方式(例如,根据“正确的协议”)用该电话进行通信。
这里公开的一些具体实施方式的主题内容涉及用于阻止和/或防止将一个或多个指定的驱动程序加载到存储器中的技术。虽然这种特性上面的蜂窝电话外围设备的内容中已经解释过,但这里所揭示的是:在一些实施例中,这种特性可被提供用于通过有线或无线USB端口直接连接主机的任意外围装置(例如“从属设备”),包括但不限于蜂窝电话设备。
这里公开的一些具体实施方式的主题内容涉及用于“识别”和/或“确认”外周蜂窝电话设备,和/或从关联于外周蜂窝电话的主机执行型式特定或供应商特定的操作的技术。虽然这种特性上面的蜂窝电话外围设备的内容中已经解释过,但这里所揭示的是:在一些实施例中,这种特性可被提供用于通过有线或无线USB端口直接连接主机的任意外围装置(例如“从属设备”),包括但不限于蜂窝电话设备。
这里公开了一种通过主机设备从外围蜂窝电话设备检索获取蜂窝电话相关数据的方法,所述方法包括:
a.通过所述主机设备从所述外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据所述USB端点描述符数据的分析结果所确定的方式,通过所述主机设备从所述外围蜂窝电话设备检索获取以下至少一个方面的数据:
A.一个或多个SMS短信;
B.蜂窝电话日志或其一部分;
C.一个或多个蜂窝电话地址簿条目;以及
D.IMEI或ESN或MEID硬件标识符。
在一个实施例中,来自“第一供应商”或来自“第一型式系列”的电话采用第一方案来检索SMS短信(或其它蜂窝电话的数据,例如蜂窝电话日志、地址薄条目或硬件标识符),而来自“第一二供应商”或来自“第二型式系列”的电话也采用该方案检索。在这个例子中,可以采用USB端点描述符来识别电话供应商和/或型式和/或芯片组和/或型式系列以确定该电话是来自“第一型式系列”还是“第二型式系列”。在非限制性实施例中,可能存在任意数量的系列或供应商——例如,数百或数千或更多的系列或供应商。
一旦确定供应商或型式系列或芯片组或其他识别特征,可以根据电话型式/型式类型的识别结构而采用“合适的”方案。因此,如果从USB端点描述符数据(以及可选的附加数据——例如,USB树的“更高水平”)的分析中确定:“候选”电话是来自“第一系列”,则该蜂窝电话相关数据(例如,SMS短信等)是通过主机设备采用与所述第一系列的电话相关联的检索“方案”从所述外围电话设备中检索获得的。可选择地,如果从USB端点描述符数据的分析中确定:“候选”电话是来自“第二系列”,则该蜂窝电话相关数据(例如,SMS短信等)是通过主机设备采用与所述第二系列的电话相关联的检索“方案”从所述外围电话设备中检索获得的。
这里首次公开一种通过主机设备确定外围设备属性的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据所述USB端点描述符数据的分析结果所确定的方式,确定以下至少一个方面:
A.所述外围设备的存储容量;
B.由所述外围设备所支持的蜂窝网络类型;
C.在所述外围设备上存在或不存在板载键盘;
D.所述外围设备的短信库容量和/或蜂窝电话地址簿容量;以及
E.短信和/或蜂窝电话日志和/或蜂窝电话地址簿和/或蜂窝电话的硬件标识符检索方案。
在一个实施例中,第一个型号的电话(如诺基亚电话)提供了第一存储器容量,而第二个型号的电话(如苹果电话)提供了第二存储器容量。在这个例子中,可以采用USB端点描述符来识别电话供应商和/或型号和/或芯片组和/或型式系列,以确定该电话(或任何外围设备——不一定限于电话设备)是来自“第一系列”还是来自“第二系列”。在非限制性实施例中,可能存在任意数量的系列或供应商——例如,数百或数千或更多的系列或供应商。
可以将外围设备特征表(或者其他数据结构)存储在主机侧,将外围设备识别信息与描述每个外围设备的容量的信息相映射——例如,“X1型式”具有8G字节存储器,“X2型式”具有12G字节存储器,等等。一旦关于供应商或系列或芯片组或其他识别特征的源自USB端点描述符(以及可选的附加数据——例如,USB树的“更高水平”)的形式识别信息被确定,可能实现描述多种型式的不同容量的数据结构的“查寻”。以这种方式,所述主机设备能采用“USB端点描述符数据”来确定外围设备一种或多种硬件或软件能力(例如,存储器容量、网络类型等)。
这里首次公开了一种从主机设备发送命令到复合外围设备的方法,所述复合外围设备是通过USB端口被连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述复合外围设备接收USB端点描述符数据,所述复合外围设备是通过USB端口被连接到所述主机设备,所述复合外围设备具有多个接口描述符;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据USB端点描述符数据的分析结果,选择来自所述多个接口描述符中的目标接口描述符;以及
d.将发送到所述外围设备的命令路由到由所述目标接口描述符指定的接口。在一个实施例中,外围设备将其自身程序给主机设备作为复合设备,包括两种无线通信设备(即称为“WC1”和“WC2”)和三种调制解调器设备(即称为“M1”和“M2”和“M3”)。在这个例子中,从主机设备到外围设备的任何给定的命令可被路由到USB复合外围设备的五个“接口”的任何一个接口——也就是,被路由到与WC1相关联的USB接口(该外围设备的第一USB接口),被路由到与WC2相关联的USB接口(该外围设备的第二USB接口),被路由到与M1相关联的USB接口(该外围设备的第三USB接口),被路由到与M2相关联的USB接口(该外围设备的第四USB接口),被路由到与M3相关联的USB接口(该外围设备的第五USB接口)。
在一些实施例中,可以为命令序列(例如电话命令序列)而被实施为一列代理设备命令。例如,在一个特定的模式中,显示照片的命令可被实施为以下顺序:“对于WC2的命令1”、“对于WC2的命令2”、“对于WC1的命令3”、“对于M1的命令4”。在这个例子中,每四个命令需要被路由到选自所述复合设备的5个接口中的一个特定的USB接口。因此,来自主机的第一个命令需要被路由到WC2接口(即取代WC1、M1、M2或M3接口),第二个命令需要被路由到WC2接口,如此类推。
在一些实施例中,对于多个设备(例如,电话或PDA或任何其他外围设备),每种设备型号根据不同的“基础命令方案”编码各种命令——例如,第一个蜂窝电话的型号(例如,特定的安卓电话型号)根据第一组“较低水平”协议的基础命令而预期收到“检索短信”命令(例如,诸如调制解调器命令或无线通信设备等的“代理设备命令”),而第二个蜂窝电话型号(例如,特定的电话型号)根据第二组基础命令而预期收到“检索短信”命令。在“较高水平命令”(例如,检索短信)与“较低水平命令”(例如,调制解调器命令或WC命令)之间的“转换”方案可以被特定于不同的复合设备。
在这个例子中,解释“较高水平”命令是如何被转换为“较低水平”设备命令而被发送到外围设备的预型式(或预型式系列)映射(或其他数据结构)可以被保持在主机设备上。例如,多个供应商或来自同一供应商的不同电话型号保持不同的方案,每个电话型号(或其他外围设备)可被映射到不同的方案描述符。一旦所述外围设备是根据USB端点数据被识别为特定的外围设备模式(例如,电话模式),可以调用“匹配的”转换方案。当从所述主机设备发送到外围设备时,用于转换命令的这个方案的一部分也可描述对于“较低水平命令”的哪个接口(例如M1或WC2等)将会被路由。
因此,在这个非限制性实施例中,(i)各外围设备的模式是与在较高水平命令与较低水平命令之间的“映射方案”相关联的;(ii)每个方案不同地路由“较低水平”命令;(iii)一旦根据USB端点数据(以及可选的额外数据)识别特定的模式,可以采用“正确”的匹配方案——这个匹配方案指定如何将从主机设备发送到外围设备的命令进行路由(也就是,路由到目标USB接口——例如,路由到M1或WC2等);(iv)因此,命令是根据所识别的设备模式而被路由,并因此根据USB端点数据(以及可选的额外数据)的分析结果而被路由。
每个外围设备可以采用不同的协议进行编码命令。例如,来自“供应商A”(即“X型”)的设备可编码命令,用于检索照片或用于检索蜂窝电话日志,采用文本协议(例如,XML或SOAP协议),而来自“供应商B”(即“Y型”)的设备可编码命令,用于检索照片或用于检索二进制协议。一旦特定型号被确定(也就是,按照USB端点数据以及可选的额外数据的分析结果),可以采用一个“匹配方案”来编码命令,该匹配方案是匹配于特定的模式——这个匹配方案可涉及协议选择或涉及何时从第一协议切换为第二协议。
这里首次公开了一种通过主机设备编码外围设备命令的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;
c.根据所述USB端点描述符数据的分析结果,实现二进制协议-文本协议的选择,宁愿选择文本协议而不选择候选的二进制协议,或者宁愿选择二进制协议而不选择候选的文本协议;以及
d.采用所选择的文本协议或者二进制协议来编码命令。
附图说明
图1A示出了通用串行总线(USB)的描述符数据的分层结构(现有技术)。
图1B-1C描述了各个领域的USB端点描述符数据(现有技术)。
图2A、2C、3A和图6B示出了各种现有技术的包括主机设备和外围设备的系统(现有技术)。
图2B、2D、3B、6A和图8示出了各种现有技术的程序,用于操作主机设备和/或外围设备(现有技术)。
图4示出了现有技术的蜂窝电话设备(现有技术)。
图5A-5D示出了各种现有技术的蜂窝电话程序(现有技术)。
图7涉及一种由外围设备电话到主机设备而呈现的复合设备(现有技术)。
图9-13、15-17、20-23和图26-27示出了根据一些实施例所述的用于操作主机设备和/或外围设备的各种程序。
图14、18和图24-25示出了根据一些实施例所述的包括主机设备和/或外围设备的各种系统。
具体实施方式
下面的权利要求将通过参考附图与相关的示例性实施例的详细描述而得到更好地理解。本说明书、实施例和附图都不应被视为对这些权利要求的范围的限制。应当明确的是,这里所公开的方法、装置和存储它们的计算机可读介质的每个特征并非在每个具体实施方式中都是必要的。还应当明确的是,贯穿本说明书,在所显示或所描述的过程或方法中,该方法的这些步骤可以任意次序或同时执行,除非在文中明确指出某个步骤是取决于另一个将要首先执行的步骤。正如在贯穿本应用中所采用的,术语“可以”是被用于一个宽松的意义上(也就是,意思是“有潜力”),而不是指强制性的(也即是,意思是“必须”)。
本发明的具体实施例涉及到方法、装置和系统,据此,客户端应用程序可以在主机设备上适当地执行与“大名单”候选电话中的任何蜂窝电话的通信,包括外围设备协议不同的方法,即使在很少有或者没有手动提供关于来自用户的特定电话型号的“指导”的情况下(例如,用户将会输入电话型号或供应商名称)。
在本说明书中,术语“电子电路”是试图广泛地描述硬件、软件和/或固件的任何组合。
电子电路可以包括:包含任何可执行代码模块(即存储在计算机可读介质中)和/或固件和/或硬件元件,其中包括但不限于:现场可编程逻辑阵列(FPLA)元件、硬有线逻辑单元、现场可编程门阵列(FPGA)元件,以及特定应用积体电路(ASIC)元件。也可以使用任何命令集体系结构,包括但不限于:精简命令集计算机(RISC)体系结构和/或复杂命令集计算机(CISC)架构。电子电路可以被定位于单一的位置或分布在多个位置之间,其中的各种电路元件可以是彼此有线或无线电子通信的。
当一个给定的电话作为一个外围设备200被连接到主机设备100时,而不是加载到存储器中,各种设备的代理驱动程序被加载到由从外围电话传递到主机的由USB硬件ID所指定的存储器中(参见图4B的140),而不是依赖于这些代理设备驱动程序来发送命令到外围电话200,单一设备驱动程序可以被加载到存储器中,该驱动程序可以“大名单”的候选电话中的任意电话而被使用。
根据这里所公开的技术,主机电脑设备可自动识别外围电话的供应商和/或型号和/或芯片组,而不依赖于关于该电话的先验信息。在一些实施例中已经发现:外围电话设备的USB端点数据(参见图1A-1C)是电话型式的一个有用的指标。这个USB端点数据可由它自身单独或结合USB“指纹”的其他数据(见图1A)而被采用。
在一般情况下,即使对于大的“候选集”几十万的蜂窝电话型式,已经发现:在许多情况下,USB端点数据(例如,与USB指纹的其他数据一起)是独特于特定电话型式的,或者至少独特于电话型式的系列。
然而,一旦某个电话型式(或至少是型式的“系列”)已被自动识别,将能够为主机设备提供不同的功能,这些功能的实施是根据“电话型式识别”的结果而依赖于电话型式的。
在多种具体实施方式中,可以为主机的设备以某种方式执行一个或多个下列功能,它是“可能执行”的,取决于外围设备特定数据(例如,USB端点数据)的分析结果。
(i)检索蜂窝电话特定数据(参见图10);
(ii)确定电话资源(参见图11);
(iii)将命令路由和/或寻址到“目标”USB接口描述符(例如,在图7A中,命令可被“路由”到调制解调器或无线通信装置,或可能被“路由”到特定的通信装置)(参见图12);
(iv)确定在主机设备上编码命令的协议(例如,不同的电话供应商可使用不同的协议用于共同的功能——一旦确定型式或型式系列,可以使用与该型式身份相匹配的“适当”或“匹配”的协议)(参见图13)。
可提供“与厂商无关”的电话软件界面,它接受“通用电话命令”,这些命令不需要专用于任何电话厂商或型号。图9是主机设备100与电话设备200进行通信的程序的流程图,该电话设备连接到主机设备(例如,经由有线或无线USB端口)。虽然图9涉及电话设备200的特殊例子,一些教导涉及连接到电话设备以外的外围设备的主机设备,或者涉及不需要连接到任何外围设备的主机设备。图14是配置为执行图9所示的程序的系统的方框图。
正如下面将要说明的,在一些涉及图9所示的程序的实施例中,当一个电话被连接到主机设备(例如,作为一个“外围设备”)时,(i)当一个移动电话呈现出代理硬件标识符(例如,与代理复合设备方案相关联——参见图5A-5B)时,通常可观察到的特定“本地”主机侧操作系统行为被阻止(例如,参见图3B——步骤S71和/或S81和/或步骤S63或它们的至少一部分)。虽然这个功能并不限定于特定的情况下,即外围设备是移动电话的情形,这里已经公开:这个功能是特别有用以下情况,其中外围设备是移动电话,该移动电话将代理设备标识符呈现到主机100。
对于外围设备是移动电话的情形,该移动电话将代理设备标识符呈现到主机100,本机操作系统的阻止可消除特定“代理设备”的具体信息到即插即用管理器144的传递,和/或消除对特异于所呈现的设备界面的代理设备驱动程序的加载。
在一些实施例中,不管一个或多个设备驱动程序的加载被抑制的事实,仍然可能根据代理设备协议和/或包裹在代理设备的语言中,为主机设备100将“可以理解的”命令通过各个端口110、120发送到一个外围电话(也就是在图6A-6B中描述的功能)。
每部电话型式(或系列,如果电话或电话厂商或芯片系列)往往要与不同的各自“代理命令语言”相关联。一些实施例提供了一种用于确定移动电话“类型”的方法和装置,从而使主机设备无需具有或使用关于与主机100连接的移动电话的类型有关的先验信息,而能够自动确定电话类型,无需被供应和/或不依靠手动输入关于作为外围设备连接到主机100的移动电话200的类型的信息。
在图4-7所示的实施例中,需要采用电话套件应用程序152来处理特定类型的移动电话,和/或可以依靠手动提供的关于已连接的电话的信息(例如,因为“移动电话套件”152只支持所有可能的移动电话集中的非常小的子集)。在一些实施例中,没有这样的需求,并且可以“自动”识别电话型式的型号或系列。
因此,在一个非限制性的使用情况下,当用户将诺基亚N95电话连接到主机设备100,该诺基亚N95电话可以类似于(或等同于)在背景技术部分中描述的方式进行操作;当用户将索尼爱立信K310电话连接到主机设备100,该索尼爱立信K310电话可以类似于(或等同于)在背景技术部分中描述的方式进行操作。
然而,代替依赖于关于特定电话型号(这种情况下具有许多电话套件应用程序152,这也可接受手动提供的关于电话型号的信息)的先验信息,可以为主机(i)自动识别(例如,按照USB指纹数据,它描述了对于该电话的代理设备方案);以及(ii)根据适当的电话命令-代理设备命令转换方案(例如,在步骤S215中选择)进行通信。
此外,与图4所示的程序相反,有需求加载到主机设备100的存储器120中,实际的“代理设备驱动程序”,根据本发明的实施例所述,可以为主机与电话进行通信,而不依赖于代理设备驱动程序,也不依赖于从用户手动提供关于该电话或型号或厂商的类型的信息。
在一些实施例中,对于多个电话供应商,可以加载单一的设备驱动程序(例如,单一驱动程序的多个实例),并可以与多部电话通过单一的设备驱动程序进行通信(即使它们被同时连接到主机)。
定义
为了方便起见,在本文中的描述的上下文中,各种术语在这里提出。关于在本申请中这里或其他地方显式或隐式地提供的这些定义的范围,这样的定义应被理解为由相关领域的技术人员所知的所定义的术语的用法。此外,这样的定义应被解释为关于其用法的尽可能广泛的含意。
在一些实施例中,主机l00和外围设备200采用“主-从”通信协议而互相通信,该协议有一个“主机侧”(由主机100所使用)和一个“外围侧”(由外围设备200所使用)。这样的协议的一个例子是USB协议。
根据这些实施例中,当命令是从主机100被发送到设备200时(例如,在图8所示的步骤S217中),外围设备200在通信期间是“从属的”。
在一个实施例中,当设备200和主机l00是连接时,它们是这样配置以致设备200始终是“从属”于主机100——“奉献”例子。可选择地,设备200仅是在特定通信期间是“从属的”。
外围存储设备与它们的主机采用“主-从”通信协议进行通信,该协议具有“主机侧”和“外围侧”。“主-从”通信协议的例子包括但不限于:通用串行总线(USB)协议、多媒体卡(MMC)协议和安全数字(SD)协议。
当一个“主机”和一个“外部存储装置”是“连接”时:(i)它们是通过“点对点”数据链路而互相通信的(无论是“有线连接”还是无需中间路由设备的短距离无线连接),以致数据可通过在主机与外围设备之间的“点对点”数据链路而流动;以及(ii)它们被配置为使用“主-从”协议进行通信——也就是,主机是被配置为与外围存储装置在由该协议所定义的“主机”或“主”角色进行通信,而外围存储装置是被配置为与主机在由该协议所定义的“外围”或“从”角色进行通信。
再次参考图9A-9B,它们是操作主机设备100与外周电话设备200进行交互以将命令发送到外周电话设备200的程序的流程图。图14是为执行图9所示的程序而配置的系统的方框图。
图9中的步骤S201是图4A中的步骤S201相同。
在步骤S205中,步骤S55和/或步骤S71和/或步骤S81中的本地操作系统行为被阻止。在步骤S205,执行中的操作系统的“本地操作系统行为”被抑制。根据这种“本地操作系统行为”,执行USB集线器驱动程序代码134是作为一个渠道用于硬件标识符信息,该信息从外围设备200流到即插即用管理器144。根据图9A-9B所示的程序,即使这个硬件标识符信息是通过执行USB集线器驱动程序代码134而接收的,这个硬件标识符信息是被截取并从即插即用管理器144被阻挡。
在一个非限制性的例子中,描述了“本地操作系统行为”阻止是如何被实施的,在至少一个操作系统USB驱动程序代码134的实例中,为了阻止在图3B中所示描述的行为,可以存储器120中进行修改。操作系统USB驱动程序代码134的这个修改,以注入“非本地”代码而不是操作系统代码的一个或多个单元(例如,线程),和/或修改或删除一个或多个单元代码,是指作为“内核模式代码修改”。这个内核模式代码修改可发生在任何时间(没有任何限制)——例如,一旦启动主机设备100或响应任何与即时或将USB驱动程序代码134加载入存储器相关联的事件。例如,“监听”加载事件的服务可以安装在主机设备上,其中USB驱动程序代码134是被加载或被例示或准备被执行。为了响应这个事件,可以修改本地操作系统代码用于被加载入存储器120的一个特例。在一个示例中,在用户模式或内核模式下工作的代码注入器/修改器162可响应USB驱动程序代码134的加载或执行或实例化事件,在存储器120中修改代码,如修改USB驱动程序代码134的特例。
本地操作系统驱动程序代码的一个修改实例不是可被使用的全部技术。可替换地或另外地,在涉及图3B中所示的一个或多个步骤的特定本地操作系统代码行为的“阻止”的另一个例子中,该“阻止”导致由即插即用管理器收到外围设备(如代理设备数据)的具体数据,可以写一个用于USB控制器或集线器的替代驱动程序。这个替代驱动程序(i)从主机侧端口100的硬件接收数据,以及(ii)将这些硬件接收到的数据传递到本地操作系统USB主机控制器134。这种“截取”代理驱动程序(在图中未所示)可提供特定数据截取功能,以致不仅即插即用驱动程序不能直接接收特定的外围设备的具体数据(例如,硬件ID数据和/或由外围设备200所支持的外围设备接口的支持表)。
在步骤S205中,主机侧USB端口硬件100接收代理设备标识符。取代USB主机控制器134将这个代理设备数据传递到即插即用管理器144(参见图4A的步骤S105),这个信息是被截获——例如,通过代理驱动程序或USB集线器驱动程序的修改的OS代码134。
在步骤S209中,以代替的硬件标识符和/或一个或多个支持的设备接口的代替表来替代所截获的信息。
这个不同的设备标识符将被称为“代理设备标识符”。这种“代替的设备标识符”是不同于在移动电话的例子中通过通信链路190接收进入主机侧的USB端口110的硬件中的设备标识符,这种“代替的设备标识符”是不同于在背景技术部分中所讨论的代理设备标示符。
在一个非限制性的例子中,“代替的设备驱动程序”是一个简单的通用“数据管道”设备驱动程序。在一个非限制性的例子中,这个“代替的设备驱动程序”可由多个同时连接到主机100的电话而被采用。
因此,图9A-9B中,本地操作系统的从USB外围设备200通过通信链路190传递的设备标识符数据流,有主机侧端口110到即插即用管理器144,被修改版本的USB主机控制器134(或134*)所截获。该数据流被称为“数据的自然流”,因为它描述了数据流怎样以“未污染”的纯OS代码的方式发生——也就是,如果USB主机控制器134的存储器驻留副本将会保留在它的未修改形式。
在步骤S209,替代类驱动程序被加载在存储器120中。在一个非限制性的例子中,这个替代类驱动程序是一个简单的数据管道驱动程序。与如图2A所示的步骤S109相反,在步骤S101中呈现的每个“代理设备方案”是与加载入存储器的不同组的设备驱动程序相关联的(例如,连接图7A所示的诺基亚蜂窝电话,它被诱导在步骤S109中加载在图7A中指定的第一组设备驱动程序,同时连接图7B中所示的爱立信索尼蜂窝电话,它被诱导在步骤S109中加载在图7B中指定的第二组设备驱动程序。在步骤S209中,可以将相同的驱动程序(或驱动程序集)加载到存储器中,用于具有不同的代理设备方案的不同的蜂窝电话。
在步骤S213中,在主机设备100上执行的软件能够确定(或评估)关于电话200的具体信息——例如,电话制造商(即诺基亚比苹果等)和/或电话系列标识符和/或电话型号和/或电话芯片类型来“识别”(即至少部分地)电话200。例如,可以利用在步骤S101中接收的代理设备数据或者在任何时间或以任何其他方式获取的数据——例如,通过探测一个USB指纹,例如,包括USB端点数据。
对于多个电话型号和/或多个供应商和/或多个芯片组的每个电话型号和/或供应商和/或芯片组,可以将数据结构保持在通信链路190主机侧,该数据结构将各种电话型号的特定信息映射到电话型号——也就是,对于诺基亚N95电话的特定信息将不同于爱立信电话的电话型号特定信息,对于爱立信电话的特定信息将不同于苹果电话的特定信息。这种电话型号相关的特定信息可包括:关于检索数据或编码命令或“嗅探”外围蜂窝电话设备用于它的资源(例如,存储器容量或其他资源)的信息。
在步骤S217中,主机可以识别该蜂窝电话——例如,制造商/供应商的身份、芯片组标识、型号等。在一些实施例中,这个“电话身份信息”的部分或全部都可被显示给用户——例如,显示在显示屏上。
由本发明人进行的实验已经表明:“USB端点数据”具有“预测能力”的有用程度,用于确定外围设备(例如,蜂窝电话设备)的型号和/或供应商ID和/或芯片组系列ID。例如,可将在(i)USB端点数据(例如,图1A所示的最低水平的层次结构,和/或图1所示的多个水平(包括“端点水平”)的层次结构)或它们的部分或这些部分的结合(例如参见图1B)与和/或任何其它外周设备的描述性数据与(ii)标识符数据(例如,外围设备供应商的名称、型号和/或芯片组系列ID)之间的映射(或其他数据结构)维持在主机侧。
图10-图14的讨论
图10-13是流程图,描述了几个用于操作主机设备的程序。在步骤S207中,主机设备可以接收例如设备标识符或其他USB设备描述符数据,这些数据描述哪个用于主机设备的设备驱动程序可加载。在步骤S209中,加载指定的驱动程序的本地操作系统行为是“主动阻止”的——例如,通过截取硬件标识符,而不转发硬件标示符到即插即用管理器,或以其他任何方式。
在步骤S213中,主机接收外围设备导出的描述性数据(例如,USB端点描述符的数据和/或图1所示的其他级别的USB数据层次结构或任何其他描述外围设备的数据)。这些外围设备导出的描述性数据也在步骤S213中进行分析。
在一些实施例中,这些分析可以向主机设备指明外围设备(例如蜂窝电话设备)的供应商ID和/或电话ID和/或芯片的ID。一旦这个信息是已知的,有可能在主机侧的数据结构中查找外围设备的特性,该主机侧的数据结构映射带有外围设备的功能信息的数据标识符信息(例如,供应商,型号,芯片组等)。
一旦主机设备具有访问外围设备能力的描述的能力,该主机设备能(i)适当地从外围设备中检索信息(参见图10的步骤S1111)和/或(ii)访问外围设备的硬件和/或软件资源或能力(参见图11的步骤S1311)和/或(iii)将命令路由到正确的USB接口描述符(参见图12的步骤S1151)和/或(iv)采用正确的协议与外围设备进行通信(参见图13的步骤S1171-S1175)。
在图10所示的例子中,主机可以发送适当的指令(例如,“特定平台的指令”)到蜂窝电话外围设备,用于获取蜂窝电话的特定数据,尽管事实上,这些指令通常可以在电话厂商或型式标识符之间变动。例如,用于打开地址簿或读取日志的命令可能在电话型号之间会有所不同。
在图11所示的例子中,主机设备可以访问关于外围设备的硬件和/或软件资源或容量的信息——例如,通过在涉及外围设备型式(例如,电话型号、表型号、打印机型号)的数据结构中查找这些信息,以获得该外围设备的硬件和/或软件的资源或能力。
图12所示的例子涉及复合外围设备。在一个实施例中,复合的外围设备可包括不同USB设备类的两个或多个接口——例如,调制解调器USB接口和大容量存储设备USB接口。在另一个例子中,复合的外围设备可以包括相同的USB设备类的多个接口——例如一个以上的大容量存储设备。在一些实施方案中,为了发送一个命令(或命令序列)到外围设备,可能需要将特定的命令路由到一个特定的“目标接口”——例如不到调制解调器,而是到“大容量存储设备”,或者不到“A”,而是到“大容量存储设备B”。
通常,每个外围设备(如蜂窝电话)厂商和/或每种型式和/或每个芯片组系列可能采用不同的方案来以较低级别的命令映射“高级别命令”。每个较低级别的命令可被“瞄准”到特定的USB接口描述符——例如,当超过特定的一个设备存在时,可被“瞄准”到特定的无线通信设备,或被“瞄准”到特定的USB类。在一些实施例中,可以在主机侧维持在(i)外围设备型式和/或供应商和/或芯片组系列与(ii)“编码方案”的描述之间的映射(或其他数据结构),因而“高级别命令”是根据“低级别协议”(例如,调制解调器协议或大容量存储设备协议)来编码的。这个“命令编码方案”的部分包括:关于如何瞄准特定命令的信息——例如,瞄准选自USB复合设备的多个可能的“候选”描述符中的特定接口描述符。
在一些实施例中,可以根据设备和/或供应商和/或芯片组ID“查找”描述这个编码方案的信息。该设备和/或供应商和/或芯片组ID可被确定在图12所示的程序的“较早”的步骤中——例如,通过分析USB端点数据或其他“外围设备的描述性数据”。
术语“路由”包括:将命令与“寻址信息”相关联,该寻址信息将复合设备的多个“候选设备”的特定“目标”设备指示到外围设备,“假设”该设备执行命令。所述路由不需要将命令实际发送到外围设备(尽管可以包括实际发送)。一旦一个命令被“路由”到一个目标,在“主机”的计算机存储器(即易失性和/或非易失性存储器)内会在(i)该命令与(ii)复合设备的“目标设备”中间产生一个关联,命令将被寻址到这个设备。
在图13所示的例子中,可以根据分析的结果来编码命令的命令序列。
在一个特定实施例中,“命令编码方案”也涉及用于“低级别命令”的特定协议或者特定的协议组合。例如,由诺基亚电话采用的“低级别命令协议”可以不同于苹果电话采用的“低级别命令协议”。可被用于命令的协议是由主机设备编码的,并被发送到外围设备,这些协议包括但不限于:AT协议、诺基亚fBus协议、对象交换(OBEX)协议、块型大容量存储协议、高通BREW操作系统协议、微软中间传输协议(MTP)、操作系统专有协议、安卓调试桥(ADB)协议、专有协议、同步标记语言(SyncML)协议、在远程网络驱动接口规范(RNDIS)协议上的远程应用程序编程接口(RAPI)、SIM卡协议。
一旦供应商和/或型式和/或芯片组系列ID是“已知的”,可以根据该ID信息选择“正确的协议”,然后根据这个信息,由主机设备编码一个或多个命令。命令序列可以包括不同的协议的命令,且此信息也可以被用于“交换协议”。
常用协议表
图15-27的讨论
图15-20涉及图8中在步骤S203-S205中阻止本地操作系统行为有关的特别实施例。例如,该阻止可以是普通的阻止,或可以根据一个或多个附加的因素,例如通过用户界面的输入(参见图17)和/或其他准则(例如,某天的一个时间,调用USB集线器驱动程序的代码模块的身份,或任何其他因素)。在一些实施例中,对于在存储器120内的USB集线器驱动程序代码134的第一实例,图3B所示的本地行为未被阻止,而对于第二实例,该本地行为被阻止,正如参见步骤S203的描述。
这里公开了一种主机设备,包括:a)一种外围设备端口,其被配置为连接外围设备;以及b)电子电路,其被配置来自动分类移动电话,以致指定代理设备命令:电话命令映射方案,特别用于所连接的移动电话,其中,所述主机设备的所述电子电路是可操作于:i)区分多个USB接口的相同端点的不同电话,无需执行任何应用程序级别的质询,所述USB接口的相同端点的不同电话具有USB指纹数据,该数据是在接口描述符级别上是等同的,但在端点描述符级别是不同的;和/或ii)区分多个USB指纹相同的电话,通过执行至少一个应用程序级别的质询,所述USB指纹相同的电话具有USB指纹数据,该数据既在接口描述符级别上是等同的,也在端点描述符级别是等同的。
图22-27的讨论
图22是根据一些实施例所述的用于操作连接到任何外围装置(包括但不限于电话设备)的主机设备100的程序。在步骤S501中,所述外围设备连接到主机设备(例如,通过USB端口)。在步骤S505中,外围设备将硬件标识符数据(例如,USB类数据或供应商ID或其他硬件标识符数据)通过端口210、220(参见图1B的步骤S21,参见图1D的步骤S31编号,参见图4A的步骤S101,参见图8的步骤S201)传递到主机设备100。
在“正常操作系统”行为成功的事件中,主机设备100允许数据在步骤S505中被传递到即插即用管理器144(例如,执行USB集线器驱动程序代码134,将步骤S505的硬件标识符传播到即插即用管理器144),和/或主机设备100响应步骤S505传递的数据,通过直接或间接由特定的硬件数据加载特定的驱动程序(参见图1B、图1D和图4A)。
然而,在图19中,主机设备100提供了一个不同的行为。在图19中,在步骤S505中接收的硬件标识符不被传递到即插即用管理器144(例如,USB集线器驱动程序代码134截取该硬件标识符数据,然后路由到即插即用管理器——例如“代理设备标识符”被传递,而代替硬件标识符数据)。这样可以避免由硬件标识符加载特定的设备驱动程序。
在步骤S513中,代理设备驱动程序是被调用和/或被加载,而不是直接或间接地由在步骤S505接收的硬件标识符指定的设备驱动程序被调用和/或被加载。
步骤S509-S513的一个例子显示在图8中,对于一个特定的例子,涉及作为外围设备而连接的移动电话设备。
在一些实施例中,图22所示的程序是由在主机设备上执行非操作系统代码来执行的。
在一些实施例中,步骤S509-S513中的“行为”不是“绝对的”,而是“有条件的”。
在一个实施例中,(i)在每个小时的第一个半小时期间(即在0:00-0:30之间,在1:00-1:30之间,在2:00-2:30之间,等),主机设备100执行图19的步骤S509-S513,以致硬件标识符被阻止到达即插即用管理器器144,而(ii)在每个小时的第二个半小时期间(即在0:31-0:59之间,在1:31-1:59之间,在2:31-2:59之间,等),主机设备100不执行步骤S509-S513,而不是提供“本地行为”,硬件标识符据此达到即插即用管理器144(图20的步骤S525),和/或在步骤S505中由主机设备100从外围设备装置200接收的硬件设备标识符指定的设备驱动程序被加载在主机侧(步骤S529)。
在另一个实施例中:在某些特定场合,需要升级连接电话的固件。可以依靠供应商的应用程序和驱动程序,运行在主机上来执行此操作。因此可能暂时暴露真实的硬件身份,允许供应厂商的驱动程序的加载,它的固件软件才能正常工作。然后,我们用我们自己的“假”身份取代真实的硬件身份。
因此,在一些实施方案中,步骤S509和/或S513是“随机发生的”,取决于是否达到一些条件,
当所述条件达到时,步骤S509和/或S513被执行。否则,“本地操作系统”的行为将会在步骤S525和/或S529观察到。
在图21A中显示了关于“本地OS”代码的“有条件地”阻止(即执行步骤S509和/或S513)的一个实施例。当外围设备200被“直接”连接到主机100,步骤S521的“阻止条件”被满足,则采取步骤S521的“是”选项。然而,它可能提供一种“媒介设备”298(例如,在主机设备的壳体之外的,或在主机设备的壳体之内),以致当一个外围设备200通过媒介设备298被连接到主机100时,阻止条件不能被满足,可能“重新执行”步骤S509和/或S513的行为(例如,导致采取步骤S521的“否”选项)。
图24A-C说明其他配置。在图24B中,当外围设备200(即蜂窝电话或其他外围设备)不是通过媒介设备298而被连接到主机时,带有端口110的主机根据步骤S521的“是”选项来运行,提供“缺省”的行为,以重新执行“本地操作系统”行为,并阻止将硬件ID(即由外围设备200——即电话设备或任何其他设备——提供到主机设备)传递到即插即用管理器144。另外,当外围设备200(即电话或其他外围设备)通过媒介设备298被连接到主机时,带有端口110的主机根据步骤S521的“否”选项来运行,以提供“本地操作系统”行为。
在图25中,主机设备100具有多个端口。当外围设备200(即电话或其它外围设备)通过第一端口110A(例如USB端口)被连接到主机,带有端口110的主机根据步骤S521的“是”选项来运行,提供“缺省”的行为,以重新执行“本地操作系统”行为,并阻止将硬件ID(即由外围设备200——即电话设备或任何其他设备——提供到主机设备)传递到即插即用管理器144。另外,当外围设备200(即电话或其他外围设备)通过第二主机侧端口110B被连接到主机时,带有端口110B的主机根据步骤S521的“否”选项来运行,以提供“本地操作系统”行为。
在一个实施例中,一位父亲和他的年轻孩子共享一台单独的台式机或笔记本电脑110(例如,或任何其他主机)——在工作时间内,该父亲使用电脑用于工作的目的,而在其他时间,该幼儿使用电脑用于“休闲”的目的。在这个例子中,父亲的工作要求他经常在移动电话之间复制内容——在本例中,在第一端口110A可以有一个机械锁,而第二端口110B是未锁的——可供他的孩子使用。在工作时间内,父亲解锁第一端口110A,而采用该端口来享受“电话有关的”功能,当对于即插即用管理器144的流动是被阻止时(例如,参见S509和/或S513)。在“其他时间”,孩子可自由将外围设备通过第二端口110B连接到主机,而享受本地操作系统行为的“利益”。
在另一个实施例中(参见图26A),主机设备可提供两种模式。在一个非限制性的例子,在每个小时的第一个半小时内,主机设备100可以是处于主机设备模式1,而在每个小时的第二个半小时内,主机设备100可以是处于主机设备模式2。
在另一个实施例中,如果一个名为“张三(Joe Smith)”的用户登录到主机设备100,该设备是处于“模式1”,其中“本地操作系统行为”被阻止——否则,该设备是处于“模式2”。在一个非限制性使用例下,张三可以是一个“特殊”用户,他有对于OS至关重要的行为的需求(例如,张三有在多个电话之间复制内容的商务需求),而对于其他用户(例如,张三的孩子,他可使用该设备用于更多“传统”的目的),“本地操作系统”行为普遍存在。
在图27所示的例子中,为响应步骤S501中的连接,可以询问用户(例如,视觉或口头上——例如,呈现“输入框”,或用于接收用户输入的任何其他用户界面元件),以确定该用户是否想要超越“本地操作系统”行为而执行步骤S509,或允许主机提供步骤S525和/或S529中的“本地操作系统”功能。
这是显示在图27中的。例如,用户输入S555可被通过键盘或鼠标或触摸屏或本领域中已知的任何其他方式而被接收。
这里公开了一种操作主机设备的方法,操作系统(OS)软件是在该主机设备上运行,所述方法包括以下步骤:根据处于第一模式的所述主机设备,响应在外围设备与主机设备之间的连接,以致所述外围设备将硬件标识符信息传递到所述主机设备,通过阻止所述硬件标识符信息到达在所述主机侧上的执行的操作系统的执行中的即插即用管理器,直接或间接地指定设备驱动程序,其中,所述方法是在主机设备上以互相排斥而提供的第一模式和第二模式而被执行,且其中,所述方法是在所述主机设备上连续执行的,是处于所述第一模式,而不处于所述第二模式。
在一些实施例中,所述方法还包括:通过将所述主机设备模式从所述第一和第二模式中的其中一种模式转换为所述第一和第二模式中的另一种模式,响应于用户登录事件或用户试图登录事件。
在一些实施例中,所述方法还包括:根据从用户接收进入主机设备的用户输入的内容,将所述主机设备模式从所述第一和第二模式中的其中一种模式转换为所述第一和第二模式中的另一种模式。
这里公开了一种操作主机设备的方法,操作系统(OS)软件是在该主机设备上运行,所述方法包括:a)通过请求用户输入,响应在外围设备和主机设备之间的连接,以致所述外围设备将硬件标识符信息传递给主机设备,直接或间接地指定设备驱动程序;b)将来自用户的用户输入接收到主机设备;c)根据所述用户输入的内容,在第一模式或第二模式中操作所述主机设备;以及d)仅当所述主机设备是在第一模式中工作时,防止所述硬件标识符信息到达在所述主机侧上的执行的操作系统的执行中的即插即用管理器。
另一个实施例涉及“部分”模式。如果所连接的外围设备是一个复合的装置,即暴露一个以上的接口,我们可以选择性地将接口的任意组合暴露给即插即用管理器。我们可以动态地改变它。我们有对于其他接口的控制。实施例:在许多情形下,需要阻断大容量存储设备,以避免病毒感染,或者防止数据被窃取。至今为止,需要完全阻断USB端口。但是,我们可以选择性阻断所述接口。让我们假设,一个电话暴露一个调制解调器接口和一个大容量存储接口。我们隐藏大容量存储接口,但保持调制解调器接口处于工作。
结论
需要进一步指出的是,上面描述的任何实施例可以进一步包括:在计算机可读介质上接收、发送或存储实施上面结合附图所述的操作的指令和/或数据。一般来说,计算机可读介质可以包括存储介质或存储器介质,例如磁性或闪存或光学介质,例如磁盘或CD-ROM,易失性或非易失性介质,如RAM、ROM等,以及传输介质或信号,例如电的、电磁的或数字的信号,通过通信介质,例如网络和/或无线链路传送。
因此,在前述示例性实施例中所描述的内容,对于本领域技术人员显而易见的是,各种等同、改变、修改和它们的改进,都不脱离下面所附的权利要求的范围和精神。特别地,不同的实施例可包括除了这里所述的内容以外的特征的组合。因此,这些权利要求并不限于上述讨论。
Claims (67)
1.一种通过主机设备从外围蜂窝电话设备检索获取蜂窝电话相关数据的方法,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据所述USB端点描述符数据的分析结果所确定的方式,通过所述主机设备从所述外围蜂窝电话设备检索获取以下至少一个方面的数据:
A.一个或多个SMS短信;
B.蜂窝电话日志或其一部分;
C.一个或多个蜂窝电话地址簿条目;以及
D.IMEI或ESN或MEID硬件标识符。
2.一种通过主机设备确定外围设备属性的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据所述USB端点描述符数据的分析结果所确定的方式,确定以下至少一个方面:
A.所述外围设备的存储容量;
B.由所述外围设备所支持的蜂窝网络类型;
C.在所述外围设备上存在或不存在板载键盘;
D.所述外围设备的短信库容量和/或蜂窝电话地址簿容量;以及
E.短信和/或蜂窝电话日志和/或蜂窝电话地址簿和/或蜂窝电话的硬件标识符检索方案。
3.一种从主机设备发送命令到复合外围设备的方法,所述复合外围设备是通过USB端口被连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述复合外围设备接收USB端点描述符数据,所述复合外围设备是通过USB端口被连接到所述主机设备,所述复合外围设备具有多个接口描述符;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据USB端点描述符数据的分析结果,选择来自所述多个接口描述符中的目标接口描述符;以及
d.将发送到所述外围设备的命令路由到由所述目标接口描述符指定的接口。
4.一种通过主机设备编码外围设备命令的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;
c.根据所述USB端点描述符数据的分析结果,实现二进制协议-文本协议的选择,宁愿选择文本协议而不选择候选的二进制协议,或者宁愿选择二进制协议而不选择候选的文本协议;以及
d.采用所选择的文本协议或者二进制协议来编码命令。
5.一种通过主机设备编码外围设备命令的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;
c.对于包括协议组A={协议1、协议2、协议5、协议6}的所有成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组A的一个成员;以及
d.采用所选择的协议来编码一个或多个命令,所述协议是协议组A的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议5是高通BREW操作系统协议;
6.一种通过主机设备编码外围设备命令的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;
c.对于包括协议组B={协议1、协议2、协议3、协议4、协议5、协议6、协议8、协议9、协议10、协议11、协议12}的所有成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组B的一个成员;以及
d.采用所选择的协议来编码一个或多个命令,所述协议是协议组B的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议8是安卓调试桥(ADB)协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议。
7.一种通过主机设备编码外围设备命令的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;
c.对于包括协议组C={协议1、协议2、协议5、协议7、协议9}的所有成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组C的一个成员;以及
d.采用所选择的协议来编码一个或多个命令,所述协议是协议组C的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议9是专有协议。
8.一种通过主机设备编码外围设备命令的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;
c.对于包括协议组D={协议1、协议2、协议3、协议4、协议5、协议6、协议7、协议8、协议9、协议10、协议11、协议12}的所有成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组D的一个成员;以及
d.采用所选择的协议来编码一个或多个命令,所述协议是协议组D的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议8是安卓调试桥(ADB)协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议。
9.一种通过主机设备进行协议转换的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组A={协议1、协议2、协议5、协议6}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议5是高通BREW操作系统协议;
协议6是媒体传输协议。
10.一种通过主机设备进行协议转换的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组B={协议1、协议2、协议3、协议4、协议5、协议6、协议8、协议9、协议10、协议11、协议12}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议8是安卓调试桥(ADB)协议;
协议9是专有协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议。
11.一种通过主机设备进行协议转换的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组C={协议1、协议2、协议5、协议7、协议9}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
12.一种通过主机设备进行协议转换的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组D={协议1、协议2、协议3、协议4、协议5、协议6、协议7、协议8、协议9、协议10、协议11、协议12}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议8是安卓调试桥(ADB)协议;
协议9是专有协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议。
13.一种通过主机设备进行协议转换的方法,所述外围设备是通过USB端口连接到所述主机设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,所述第一协议是选自二进制协议与文本协议的其中一种协议,所述第二协议是选自二进制协议与文本协议的另一种协议,以致:
A.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
B.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
14.根据权利要求1-13之一所述的方法,其特征在于:所述步骤(b)和(c)是根据USB端点描述符数据与在USB描述符层次结构中的较高级别的数据来执行的。
15.根据权利要求1-13之一所述的方法,其特征在于:所述步骤(b)和(c)是根据USB端点描述符数据来执行的,而不根据在USB描述符层次结构中的较高级别的数据来执行。
16.根据权利要求1-13之一所述的方法,其特征在于:所述步骤(b)的分析包括对于b端点地址字段的分析;以及所述步骤(c)是根据对于b端点地址字段的分析结果来执行。
17.根据权利要求1-13之一所述的方法,其特征在于:所述步骤(b)的分析包括对于bm属性字段的分析;以及所述步骤(c)是根据对于bm属性字段的分析结果来执行。
18.根据权利要求1-13之一所述的方法,其特征在于:所述步骤(b)的分析包括对于w最大数据包大小字段的分析;以及所述步骤(c)是根据对于w最大数据包大小字段的分析结果来执行。
19.根据权利要求1-13之一所述的方法,其特征在于:所述步骤(b)的分析包括对于b间隔字段的分析;以及所述步骤(c)是根据对于b间隔字段的分析结果来执行。
20.一种操作主机设备的方法,操作系统(OS)软件是在该主机设备上运行,所述方法包括以下步骤:
根据处于第一模式的所述主机设备,响应在外围设备与主机设备之间的连接,以致所述外围设备将硬件标识符信息传递到所述主机设备,通过阻止所述硬件标识符信息到达在所述主机侧上的执行的操作系统的执行中的即插即用管理器,直接或间接地指定设备驱动程序,
其中,所述方法是在主机设备上以互相排斥而提供的第一模式和第二模式而被执行,且其中,所述方法是在所述主机设备上连续执行的,是处于所述第一模式,而不处于所述第二模式。
21.根据权利要求20所述的方法,其特征在于,还包括:
通过将所述主机设备模式从所述第一和第二模式中的其中一种模式转换为所述第一和第二模式中的另一种模式,响应于用户登录事件或用户试图登录事件。
22.根据权利要求20所述的方法,其特征在于,还包括:
根据从用户接收进入主机设备的用户输入的内容,将所述主机设备模式从所述第一和第二模式中的其中一种模式转换为所述第一和第二模式中的另一种模式。
23.一种操作主机设备的方法,操作系统(OS)软件是在所述主机设备上运行,所述方法包括:
a.通过请求用户输入,响应在外围设备和主机设备之间的连接,以致所述外围设备将硬件标识符信息传递给主机设备,直接或间接地指定设备驱动程序;
b.为响应所述的用户输入请求,将来自用户的用户输入接收到主机设备;
c.根据所述用户输入的内容,在第一模式或第二模式中操作所述主机设备,所述第一和第二模式是互相排斥的;
d.仅当所述主机设备是在第一模式中工作时,防止所述硬件标识符信息到达在所述主机侧上的执行的操作系统的执行中的即插即用管理器,因而避免由所述硬件标识符指定所述设备驱动程序的加载;以及
e.否则,制止所述的防止,以致在所述主机设备或它的组件上执行的操作系统将所述硬件标识符传递到所述操作系统的即插即用管理器。
24.一种操作主机设备的方法,操作系统(OS)软件是在所述主机设备上运行,所述主机设备被配置为通过多个USB端口接收输入,这些USB端口被划分为第一和第二非空互补的不相交的子集,所述方法包括:
为响应通过所述的USB端口的一个端口来连接外围设备与主机设备以致所述外围设备通过所述的USB端口的一个端口来传递信息到所述主机设备,硬件标识符信息直接或间接地指定设备驱动程序;
如果所述连接是通过所述第一子集的成员中的一个USB端口来实现,这样避免指定设备驱动程序的硬件标识符信息到达在所述主机侧上的执行的操作系统的执行中的即插即用管理器,因而避免由所述硬件标识符指定所述设备驱动程序的加载;
否则,制止所述的防止,以致在所述主机设备或它的组件上执行的操作系统将所述硬件标识符传递到所述操作系统的即插即用管理器。
25.根据权利要求24所述的方法,其特征在于:所述USB端口的至少一个端口是所述主机设备的内置端口。
26.根据权利要求24所述的方法,其特征在于:所述USB端口的至少一个端口是所述主机设备的辅助的外部端口。
27.一种主机设备装置,被配置为执行任意前述权利要求的任意方法。
28.一种通过主机设备从外围设备检索获取蜂窝电话相关数据的方法,操作系统(OS)软件是在所述主机设备上运行,所述方法包括:
a.为响应通过所述的USB端口的一个端口来连接外围设备与主机设备,以致将硬件标识符信息传递到所述主机设备而直接或间接地指定设备驱动程序,执行代码以避免执行中的操作系统软件在所述主机设备上加载所指定的设备驱动程序;
b.由所述主机设备通过所述USB端口分析从所述外围设备所接收的外围设备描述性数据;以及
c.根据所述外围设备描述符数据的分析结果所确定的方式,确定以下至少一个方面:
A.所述外围设备的存储器容量;
B.由所述外围设备所支持的蜂窝网络类型;
C.在所述外围设备上存在或不存在板载键盘;
D.所述外围设备的短信库容量和/或蜂窝电话地址簿容量;以及
E.短信和/或蜂窝电话日志和/或蜂窝电话地址簿和/或蜂窝电话的硬件标识符检索方案。
29.一种通过主机设备从复合的外围设备检索获取蜂窝电话相关数据的方法,操作系统(OS)软件是在所述主机设备上运行,所述方法包括:
a.为响应通过USB端口来连接具有多个USB接口描述符的所述复合外围设备与所述主机设备,以致将硬件标识符信息传递到所述主机设备而直接或间接地指定设备驱动程序,执行代码以避免执行中的操作系统软件在所述主机设备上加载所指定的设备驱动程序;
b.由所述主机设备通过所述USB端口分析从所述外围设备所接收的外围设备描述性数据;以及
c.根据所述外围设备描述符数据的分析结果,选择来自所述多个接口描述符中的目标接口描述符;以及
d.将发送到所述外围设备的命令路由到由所述目标接口描述符指定的接口。
30.一种通过主机设备从外围设备检索获取蜂窝电话相关数据的方法,操作系统(OS)软件是在所述主机设备上运行,所述方法包括:
a.为响应通过所述的USB端口的一个端口来连接外围设备与主机设备,以致将硬件标识符信息传递到所述主机设备而直接或间接地指定设备驱动程序,执行代码以避免执行中的操作系统软件在所述主机设备上加载所指定的设备驱动程序;
b.由所述主机设备通过所述USB端口分析从所述外围设备所接收的外围设备描述性数据;以及
c.根据所述外围设备描述性数据的分析结果,实现二进制协议-文本协议的选择,宁愿选择文本协议而不选择候选的二进制协议,或者宁愿选择二进制协议而不选择候选的文本协议;
d.采用所选择的文本协议或者二进制协议来编码命令。
31.根据任意前述权利要求所述的方法,其特征在于:所述主机设备通过替代驱动程序与所述外围设备进行通信,所述替代驱动程序是不同于由所述硬件标识符信息直接或间接指定的驱动程序,所述硬件标识符信息是从所述外围设备传递到所述主机设备的。
32.一种主机设备装置,被配置为执行任意前述权利要求的任意方法。
33.一种系统,包括:被配置为执行任意前述权利要求的任意方法的主机设备装置,以及连接到所述主机设备装置的外围设备。
34.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围蜂窝电话设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从所述外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过所述USB接口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据所述USB端点描述符数据的分析结果所确定的方式,通过所述USB接口从所述外围蜂窝电话设备检索获取以下至少一个方面的数据:
A.一个或多个SMS短信;
B.蜂窝电话日志或其一部分;
C.一个或多个蜂窝电话地址簿条目;以及
D.IMEI或ESN或MEID硬件标识符。
35.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过所述USB接口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据所述USB端点描述符数据的分析结果所确定的方式,确定以下至少一个方面:
A.所述外围设备的存储容量;
B.由所述外围设备所支持的蜂窝网络类型;
C.在所述外围设备上存在或不存在板载键盘;
D.所述外围设备的短信库容量和/或蜂窝电话地址簿容量;以及
E.短信和/或蜂窝电话日志和/或蜂窝电话地址簿和/或蜂窝电话的硬件标识符检索方案。
36.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据USB端点描述符数据的分析结果,选择来自所述多个接口描述符中的目标接口描述符;以及
iv.将发送到所述外围设备的命令路由到由所述目标接口描述符指定的接口。
37.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;
iii.根据所述USB端点描述符数据的分析结果,实现二进制协议-文本协议的选择,宁愿选择文本协议而不选择候选的二进制协议,或者宁愿选择二进制协议而不选择候选的文本协议;以及
iv.采用所选择的文本协议或者二进制协议来编码命令。
38.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;
iii.对于包括协议组A={协议1、协议2、协议5、协议6}的所有成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组A的一个成员;以及
iv.采用所选择的协议来编码一个或多个命令,所述协议是协议组A的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议5是高通BREW操作系统协议;
38.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.对于包括协议组B={协议1、协议2、协议3、协议4、协议5、协议6、协议8、协议9、协议10、协议11、协议12}的所有成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组B的一个成员;以及
iv.采用所选择的协议来编码一个或多个命令,所述协议是协议组B的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议8是安卓调试桥(ADB)协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议。
39.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.对于包括协议组C={协议1、协议2、协议5、协议7、协议9}的所有成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组C的一个成员;以及
iv.采用所选择的协议来编码一个或多个命令,所述协议是协议组C的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
40.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.对于包括协议组D={协议1、协议2、协议3、协议4、协议5、协议6、协议7、协议8、协议9、协议10、协议11、协议12}的所有成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组D的一个成员;以及
iv.采用所选择的协议来编码一个或多个命令,所述协议是协议组D的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议8是安卓调试桥(ADB)协议;
协议9是专有协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议。
41.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组A={协议1、协议2、协议5、协议6}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议5是高通BREW操作系统协议;
42.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组B={协议1、协议2、协议3、协议4、协议5、协议6、协议8、协议9、协议10、协议11、协议12}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议8是安卓调试桥(ADB)协议;
协议9是专有协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议。
43.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组C={协议1、协议2、协议5、协议7、协议9}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
44.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组D={协议1、协议2、协议3、协议4、协议5、协议6、协议7、协议8、协议9、协议10、协议11、协议12}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议8是安卓调试桥(ADB)协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议。
45.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,所述第一协议是选自二进制协议与文本协议的其中一种协议,所述第二协议是选自二进制协议与文本协议的另一种协议,以致:
A.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
B.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的。
46.根据权利要求34-45之一所述的系统,其特征在于,所述电子电路是被配置为:根据USB端点描述符数据与在USB描述符层次结构中的较高级别的数据来执行步骤(ii)和(iii)。
47.根据权利要求34-45之一所述的系统,其特征在于,所述电子电路是被配置为:根据USB端点描述符数据来执行步骤(ii)和(iii),而不根据在USB描述符层次结构中的较高级别的数据来执行步骤(ii)和(iii)。
48.根据权利要求34-45之一所述的系统,其特征在于:所述步骤(ii)的分析包括对于b端点地址字段的分析;以及所述步骤(iii)是根据对于b端点地址字段的分析结果来执行。
49.根据权利要求34-45之一所述的系统,其特征在于:所述步骤(ii)的分析包括对于bm属性字段的分析;以及所述步骤(iii)是根据对于bm属性字段的分析结果来执行。
50.根据权利要求34-45之一所述的系统,其特征在于:所述步骤(ii)的分析包括对于w最大数据包大小字段的分析;以及所述步骤(iii)是根据对于w最大数据包大小字段的分析结果来执行。
51.根据权利要求34-45之一所述的系统,其特征在于:所述步骤(ii)的分析包括对于b间隔字段的分析;以及所述步骤(iii)是根据对于b间隔字段的分析结果来执行。
52.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围蜂窝电话设备的连接;以及
b)电子电路,被配置为执行操作系统(OS)软件代码,所述电子电路具有互相排斥的第一和第二模式,以致所述主机设备具有互相排斥的第一和第二模式,当所述操作系统(OS)软件代码执行时,所述电子电路还被配置为执行以下方面:
根据处于第一模式的所述主机设备,响应在外围设备与主机设备之间的连接,以致所述外围设备将硬件标识符信息传递到所述主机设备,通过阻止所述硬件标识符信息到达在所述主机侧上的执行的操作系统的执行中的即插即用管理器,直接或间接地指定设备驱动程序,
其中,所述方法是在所述主机设备上连续执行的,是处于所述第一模式,而不处于所述第二模式。
53.根据权利要求52所述的主机设备,其特征在于:所述电子电路还可操作地执行以下方面:
通过将所述电子电路模式从所述第一和第二模式中的其中一种模式转换为所述第一和第二模式中的另一种模式,响应于用户登录事件或用户试图登录事件。
54.根据权利要求52所述的主机设备,其特征在于:所述电子电路还可操作地执行以下方面:根据从用户接收进入主机设备的用户输入的内容,将所述主机设备模式从所述第一和第二模式中的其中一种模式转换为所述第一和第二模式中的另一种模式。
55.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围蜂窝电话设备的连接;以及
b)电子电路,被配置为执行操作系统(OS)软件代码,所述电子电路具有互相排斥的第一和第二模式,以致所述主机设备具有互相排斥的第一和第二模式,当所述操作系统(OS)软件代码执行时,所述电子电路还被配置为执行以下方面:
i.为响应所述的用户输入请求,将来自用户的用户输入接收到主机设备;
ii.根据所述用户输入的内容,在第一模式或第二模式中操作所述主机设备,所述第一和第二模式是互相排斥的;
iii.仅当所述主机设备是在第一模式中工作时,防止所述硬件标识符信息到达在所述主机侧上的执行的操作系统的执行中的即插即用管理器,因而避免由所述硬件标识符指定所述设备驱动程序的加载;以及
iv.否则,制止所述的防止,以致在所述主机设备或它的组件上执行的操作系统将所述硬件标识符传递到所述操作系统的即插即用管理器。
56.一种主机设备,包括:
a)多个USB端口,被划分为第一和第二非空互补的不相交的子集;以及
b)电子电路,被配置为执行操作系统(OS)软件代码,所述电子电路具有互相排斥的第一和第二模式,以致所述主机设备具有互相排斥的第一和第二模式,当所述操作系统(OS)软件代码执行时,所述电子电路还被配置为执行以下方面:
为响应通过所述的USB端口的一个端口来连接外围设备与主机设备以致所述外围设备通过所述的USB端口的一个端口来传递信息到所述主机设备,硬件标识符信息直接或间接地指定设备驱动程序;
A)如果所述连接是通过所述第一子集的成员中的一个USB端口来实现,这样避免指定设备驱动程序的硬件标识符信息到达在所述主机侧上的执行的操作系统的执行中的即插即用管理器,因而避免由所述硬件标识符指定所述设备驱动程序的加载;
B)否则,制止所述的防止,以致在所述主机设备或它的组件上执行的操作系统将所述硬件标识符传递到所述操作系统的即插即用管理器。
57.根据权利要求56所述的主机设备,其特征在于:所述USB端口的至少一个端口是所述主机设备的内置端口。
58.根据权利要求56所述的主机设备,其特征在于:所述USB端口的至少一个端口是所述主机设备的辅助的外部端口。
59.一种由主机设备编码外围设备命令的方法,主机设备是通过USB端口连接到外围设备,所述方法包括:
a.由所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过所述USB接口连接到所述主机设备;
b.由所述主机设备分析所接收的USB端点描述符数据;以及
c.对于包括协议组X={协议1、协议2、协议3、协议4、协议5、协议6、协议7、协议8、协议9、协议10、协议11、协议12、协议13、协议14}的任意两个或更多成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组E的一个成员;以及
d.采用所选择的协议来编码一个或多个命令,所述协议是协议组A的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议8是安卓调试桥(ADB)协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议;
协议13是安卓的快速启动协议;
协议14是LG二进制对象交换专有协议。
60.一种通过主机设备进行协议转换的方法,所述主机设备是通过USB端口连接到所述外围设备,所述方法包括:
a.通过所述主机设备从所述外围设备接收USB端点描述符数据,所述外围设备是通过USB端口连接到所述主机设备;
b.通过所述主机设备分析所接收的USB端点描述符数据;以及
c.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组X={协议1、协议2、协议3、协议4、协议5、协议6、协议7、协议8、协议9、协议10、协议11、协议12、协议13、协议14}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议8是安卓调试桥(ADB)协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议;
协议13是安卓的快速启动协议;
协议14是LG二进制对象交换专有协议。
61.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;
iii.对于包括协议组X={协议1、协议2、协议3、协议4、协议5、协议6、协议7、协议8、协议9、协议10、协议11、协议12、协议13、协议14}的任意两个或多个成员的候选协议组,根据所述USB端点描述符数据的分析结果,从所述候选协议组中选择一个协议,所选择的协议是协议组E的一个成员;以及
iv.采用所选择的协议来编码一个或多个命令,所述协议是协议组E的一个成员;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议8是安卓调试桥(ADB)协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议;
协议13是安卓的快速启动协议;
协议14是LG二进制对象交换专有协议。
62.一种主机设备,包括:
a)USB接口,可操作地用于内部设备与外围设备的连接;以及
b)电子电路,被配置为:
i.通过所述USB接口从外围蜂窝电话设备接收USB端点描述符数据,所述外围蜂窝电话设备是通过USB端口连接到所述主机设备;
ii.分析所接收的USB端点描述符数据;以及
iii.根据对于所接收的USB端点描述符数据的分析结果,通过所述主机设备进行协议转换,从第一协议转换到不同于第一协议的第二协议,以致:
i.所述第一协议与第二协议都是协议组X={协议1、协议2、协议3、协议4、协议5、协议6、协议7、协议8、协议9、协议10、协议11、协议12、协议13、协议14}的成员;
ii.在所述协议转换之前的最后主机编码命令是采用所述第一协议编码的;以及
iii.在所述协议转换之后的第一主机编码命令是采用所述第二协议编码的;
其中,协议1是AT协议;
协议2是诺基亚fBus协议;
协议3是目标交换(OBEX)协议;
协议4是块型大容量存储协议;
协议5是高通BREW操作系统协议;
协议7是RIM操作系统专有协议;
协议8是安卓调试桥(ADB)协议;
协议10是同步标记语言(SyncML)协议;
协议11是基于远程网络驱动程序接口规范(RNDIS)的远程应用程序编程接口(RAPI)协议;
协议12是SIM卡协议;
协议13是安卓的快速启动协议;
协议14是LG二进制对象交换专有协议。
63.一种主机设备装置,被配置为执行任意前述权利要求所述的任意方法。
64.根据任意前述权利要求所述的主机设备,其特征在于:所述电子电路包括一个或多个微处理器与计算机存储器的任意组合。
65.根据权利要求64所述的主机设备,其特征在于:所述计算机存储器包括易失性存储器和/或非易失性存储器。
66.根据任意前述权利要求所述的主机设备,其特征在于:所述电子电路包括数字电路、软件和固件的任意组合。
67.一种计算机可读介质,包括存储介质,该介质已存储了用于执行任意前述权利要求所述的任意方法的计算机可读程序代码。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US41746010P | 2010-11-29 | 2010-11-29 | |
US61/417,460 | 2010-11-29 | ||
US201161439394P | 2011-02-04 | 2011-02-04 | |
US61/439,394 | 2011-02-04 | ||
US201161497224P | 2011-06-15 | 2011-06-15 | |
US61/497,224 | 2011-06-15 | ||
US201161513610P | 2011-07-31 | 2011-07-31 | |
US61/513,610 | 2011-07-31 | ||
PCT/IB2011/053440 WO2012073126A1 (en) | 2010-11-29 | 2011-08-02 | Host device coupled to a usb peripheral and method of operating the same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103299285A true CN103299285A (zh) | 2013-09-11 |
CN103299285B CN103299285B (zh) | 2018-02-13 |
Family
ID=46171254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180063893.9A Expired - Fee Related CN103299285B (zh) | 2010-11-29 | 2011-08-02 | 连接到usb外围设备的主机设备及其操作方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9514065B2 (zh) |
EP (1) | EP2646924A4 (zh) |
CN (1) | CN103299285B (zh) |
CA (1) | CA2819225A1 (zh) |
IL (1) | IL226587A (zh) |
WO (1) | WO2012073126A1 (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104798065A (zh) * | 2012-12-27 | 2015-07-22 | 英特尔公司 | 使能元数据存储子系统 |
CN104967585A (zh) * | 2014-04-15 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种远程调试移动终端的方法和装置 |
CN106170778A (zh) * | 2015-02-13 | 2016-11-30 | 华为技术有限公司 | 一种切换usb驱动版本的方法及usb设备 |
CN106462514A (zh) * | 2014-05-19 | 2017-02-22 | 密克罗奇普技术公司 | 通过使用嵌入式控制器来统一类装置接口与一个主机接口 |
CN107506316A (zh) * | 2017-08-16 | 2017-12-22 | 北京智能管家科技有限公司 | 设备控制方法、装置、终端设备及存储介质 |
CN108228206A (zh) * | 2016-12-20 | 2018-06-29 | 北京智能管家科技有限公司 | 一种应用程序管理方法及装置 |
CN109791531A (zh) * | 2016-10-05 | 2019-05-21 | 惠普发展公司,有限责任合伙企业 | Usb设备过滤 |
CN109937403A (zh) * | 2016-11-10 | 2019-06-25 | 微软技术许可有限责任公司 | 无线地提供因操作系统而异的特征 |
CN112068893A (zh) * | 2020-11-12 | 2020-12-11 | 飞天诚信科技股份有限公司 | 一种usb设备及其区分移动设备操作系统的方法 |
CN112272096A (zh) * | 2020-12-28 | 2021-01-26 | 飞天诚信科技股份有限公司 | 一种基于苹果转换设备的通信方法和系统 |
CN112306931A (zh) * | 2020-11-20 | 2021-02-02 | 广州安凯微电子股份有限公司 | 一种软件实现usb主机控制器方法、系统及存储介质 |
CN112416447A (zh) * | 2020-12-03 | 2021-02-26 | 深圳市国科亿道科技有限公司 | 一个usb端口实现多个复合功能设备的方法及复合设备 |
CN113518146A (zh) * | 2021-09-14 | 2021-10-19 | 云账户技术(天津)有限公司 | 一种移动终端信息的获取方法及装置 |
CN113961984A (zh) * | 2020-07-21 | 2022-01-21 | 慧与发展有限责任合伙企业 | 主机计算系统的外围端口的访问控制 |
CN114503529A (zh) * | 2019-10-07 | 2022-05-13 | 辛纳普蒂克斯公司 | 音频系统和方法的向后兼容性 |
TWI769696B (zh) * | 2020-02-14 | 2022-07-01 | 日商三菱電機股份有限公司 | 驅動控制裝置及驅動控制系統 |
CN115292231A (zh) * | 2022-10-09 | 2022-11-04 | 荣耀终端有限公司 | 设备端口切换方法和装置 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11010841B2 (en) | 2008-10-02 | 2021-05-18 | Ecoatm, Llc | Kiosk for recycling electronic devices |
US10853873B2 (en) | 2008-10-02 | 2020-12-01 | Ecoatm, Llc | Kiosks for evaluating and purchasing used electronic devices and related technology |
US9210031B1 (en) * | 2010-12-09 | 2015-12-08 | Amazon Technologies, Inc. | Brokering for application hosting computing resources of multiple vendor-specific provisioned computing environments |
KR101969726B1 (ko) * | 2012-05-02 | 2019-04-17 | 삼성전자주식회사 | 범용 직렬 버스 호스트 식별 방법 및 그 전자 장치 |
US9069572B2 (en) | 2012-07-27 | 2015-06-30 | Prolific Technology Inc. | Replacement of inbox driver with third party driver |
US8965995B2 (en) * | 2012-08-13 | 2015-02-24 | Cheng Uei Precision Industry Co., Ltd. | Wireless storage management system |
US8909818B2 (en) * | 2012-09-27 | 2014-12-09 | Qualcomm Incorporated | Method for shortening enumeration of tightly coupled USB device |
WO2014070923A1 (en) * | 2012-10-31 | 2014-05-08 | Volcano Corporation | Dependency-based startup in a multi-modality medical system |
US9075923B2 (en) | 2012-12-27 | 2015-07-07 | Intel Corporation | Discovery mechanisms for universal serial bus (USB) protocol adaptation layer |
US9549316B2 (en) | 2013-03-14 | 2017-01-17 | Mce-Sys Ltd. | Host device coupled to a mobile phone and method of operating the same |
KR102067058B1 (ko) * | 2013-08-23 | 2020-02-11 | 엘지전자 주식회사 | 휴대 단말기 및 그 제어 방법 |
US11138581B2 (en) | 2014-01-10 | 2021-10-05 | Elo Touch Solutions, Inc. | Multi-mode point-of-sale device |
US9665861B2 (en) * | 2014-01-10 | 2017-05-30 | Elo Touch Solutions, Inc. | Multi-mode point-of-sale device |
CA2964214C (en) | 2014-10-02 | 2020-08-04 | ecoATM, Inc. | Wireless-enabled kiosk for recycling consumer devices |
EP3859697A1 (en) | 2014-10-02 | 2021-08-04 | ecoATM, LLC | Application for device evaluation and other processes associated with device recycling |
US10445708B2 (en) | 2014-10-03 | 2019-10-15 | Ecoatm, Llc | System for electrically testing mobile devices at a consumer-operated kiosk, and associated devices and methods |
US11080672B2 (en) | 2014-12-12 | 2021-08-03 | Ecoatm, Llc | Systems and methods for recycling consumer electronic devices |
US10747366B2 (en) | 2015-11-23 | 2020-08-18 | Hewlett-Packard Development Company, L.P. | Calibration data identification |
US10269110B2 (en) | 2016-06-28 | 2019-04-23 | Ecoatm, Llc | Methods and systems for detecting cracks in illuminated electronic device screens |
US10216673B2 (en) | 2017-01-16 | 2019-02-26 | International Business Machines Corporation | USB device firmware sanitization |
US10223178B2 (en) * | 2017-01-23 | 2019-03-05 | Wyse Technology L.L.C. | Enabling WPD devices to be managed at the capability level |
US11520939B2 (en) | 2017-03-17 | 2022-12-06 | International Business Machines Corporation | Protecting computer systems from malicious USB devices via a USB firewall |
JP6981138B2 (ja) * | 2017-09-25 | 2021-12-15 | セイコーエプソン株式会社 | 電子機器および電子機器の制御方法 |
AU2019404076A1 (en) | 2018-12-19 | 2021-07-15 | Ecoatm, Llc | Systems and methods for vending and/or purchasing mobile phones and other electronic devices |
CA3129917A1 (en) | 2019-02-12 | 2020-08-20 | Ecoatm, Llc | Connector carrier for electronic device kiosk |
CA3130102A1 (en) | 2019-02-12 | 2020-08-20 | Ecoatm, Llc | Kiosk for evaluating and purchasing used electronic devices |
KR20210127199A (ko) | 2019-02-18 | 2021-10-21 | 에코에이티엠, 엘엘씨 | 전자 디바이스의 신경망 기반의 물리적 상태 평가, 및 관련된 시스템 및 방법 |
CN111698652B (zh) * | 2019-03-14 | 2022-07-08 | Oppo广东移动通信有限公司 | 来电呼叫的处理方法、装置、主机设备及存储介质 |
CN110175139B (zh) * | 2019-05-08 | 2021-01-05 | 厦门亿联网络技术股份有限公司 | 一种usb设备的通用调试方法及usb设备 |
CN111897755A (zh) * | 2020-06-15 | 2020-11-06 | 深圳市广和通无线股份有限公司 | 日志抓取方法、装置和转接模块 |
WO2022040668A1 (en) | 2020-08-17 | 2022-02-24 | Ecoatm, Llc | Evaluating an electronic device using optical character recognition |
US11922467B2 (en) | 2020-08-17 | 2024-03-05 | ecoATM, Inc. | Evaluating an electronic device using optical character recognition |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073912A1 (en) * | 2000-10-27 | 2004-04-15 | Meza Joseph R. | Automatic embedded host configuration system and method |
US7082598B1 (en) * | 2002-07-17 | 2006-07-25 | Vmware, Inc. | Dynamic driver substitution |
US20090305789A1 (en) * | 2008-06-05 | 2009-12-10 | Sony Computer Entertainment Inc. | Mobile phone game interface |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957287B2 (en) * | 2001-11-09 | 2005-10-18 | Aten International Co., Ltd. | Asynchronous/synchronous KVMP switch for console and peripheral devices |
US20080208787A1 (en) * | 2001-11-14 | 2008-08-28 | Retaildna, Llc | Method and system for centralized generation of a business executable using genetic algorithms and rules distributed among multiple hardware devices |
US20060200612A1 (en) * | 2005-03-02 | 2006-09-07 | Laurence Hamid | Method and protocol for transmitting extended commands to USB devices |
US7562159B2 (en) | 2006-04-28 | 2009-07-14 | Mediatek Inc. | Systems and methods for selectively activating functions provided by a mobile phone |
US20100185785A1 (en) * | 2008-04-02 | 2010-07-22 | June-On Co., Ltd. | Automatic mapping and updating computer switching device |
US20100066677A1 (en) | 2008-09-16 | 2010-03-18 | Peter Garrett | Computer Peripheral Device Used for Communication and as a Pointing Device |
JP4575506B1 (ja) * | 2009-04-22 | 2010-11-04 | 株式会社東芝 | 電子機器 |
-
2011
- 2011-08-02 US US13/990,041 patent/US9514065B2/en active Active
- 2011-08-02 CN CN201180063893.9A patent/CN103299285B/zh not_active Expired - Fee Related
- 2011-08-02 EP EP11844416.5A patent/EP2646924A4/en not_active Ceased
- 2011-08-02 CA CA2819225A patent/CA2819225A1/en not_active Abandoned
- 2011-08-02 WO PCT/IB2011/053440 patent/WO2012073126A1/en active Application Filing
-
2013
- 2013-05-27 IL IL226587A patent/IL226587A/en active IP Right Grant
-
2016
- 2016-12-05 US US15/369,207 patent/US20170220356A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073912A1 (en) * | 2000-10-27 | 2004-04-15 | Meza Joseph R. | Automatic embedded host configuration system and method |
US7082598B1 (en) * | 2002-07-17 | 2006-07-25 | Vmware, Inc. | Dynamic driver substitution |
US20090305789A1 (en) * | 2008-06-05 | 2009-12-10 | Sony Computer Entertainment Inc. | Mobile phone game interface |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9667849B2 (en) | 2012-12-27 | 2017-05-30 | Intel Corporation | Enabling a metadata storage subsystem |
US9686460B2 (en) | 2012-12-27 | 2017-06-20 | Intel Corporation | Enabling a metadata storage subsystem |
CN104798065A (zh) * | 2012-12-27 | 2015-07-22 | 英特尔公司 | 使能元数据存储子系统 |
CN104967585B (zh) * | 2014-04-15 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种远程调试移动终端的方法和装置 |
CN104967585A (zh) * | 2014-04-15 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种远程调试移动终端的方法和装置 |
CN106462514A (zh) * | 2014-05-19 | 2017-02-22 | 密克罗奇普技术公司 | 通过使用嵌入式控制器来统一类装置接口与一个主机接口 |
CN106462514B (zh) * | 2014-05-19 | 2020-01-21 | 密克罗奇普技术公司 | 统一类装置接口与一个主机接口的系统与方法 |
CN106170778A (zh) * | 2015-02-13 | 2016-11-30 | 华为技术有限公司 | 一种切换usb驱动版本的方法及usb设备 |
CN109791531A (zh) * | 2016-10-05 | 2019-05-21 | 惠普发展公司,有限责任合伙企业 | Usb设备过滤 |
CN109937403A (zh) * | 2016-11-10 | 2019-06-25 | 微软技术许可有限责任公司 | 无线地提供因操作系统而异的特征 |
CN109937403B (zh) * | 2016-11-10 | 2024-05-03 | 微软技术许可有限责任公司 | 无线地提供因操作系统而异的特征 |
CN108228206A (zh) * | 2016-12-20 | 2018-06-29 | 北京智能管家科技有限公司 | 一种应用程序管理方法及装置 |
CN107506316A (zh) * | 2017-08-16 | 2017-12-22 | 北京智能管家科技有限公司 | 设备控制方法、装置、终端设备及存储介质 |
CN114503529A (zh) * | 2019-10-07 | 2022-05-13 | 辛纳普蒂克斯公司 | 音频系统和方法的向后兼容性 |
CN114503529B (zh) * | 2019-10-07 | 2023-09-01 | 辛纳普蒂克斯公司 | 音频系统和方法的向后兼容性 |
TWI769696B (zh) * | 2020-02-14 | 2022-07-01 | 日商三菱電機股份有限公司 | 驅動控制裝置及驅動控制系統 |
CN113961984B (zh) * | 2020-07-21 | 2023-09-12 | 慧与发展有限责任合伙企业 | 主机计算系统及用于主机计算系统的方法 |
CN113961984A (zh) * | 2020-07-21 | 2022-01-21 | 慧与发展有限责任合伙企业 | 主机计算系统的外围端口的访问控制 |
CN112068893B (zh) * | 2020-11-12 | 2021-03-16 | 飞天诚信科技股份有限公司 | 一种usb设备及其区分移动设备操作系统的方法 |
CN112068893A (zh) * | 2020-11-12 | 2020-12-11 | 飞天诚信科技股份有限公司 | 一种usb设备及其区分移动设备操作系统的方法 |
CN112306931B (zh) * | 2020-11-20 | 2023-07-04 | 广州安凯微电子股份有限公司 | 一种软件实现usb主机控制器方法、系统及存储介质 |
CN112306931A (zh) * | 2020-11-20 | 2021-02-02 | 广州安凯微电子股份有限公司 | 一种软件实现usb主机控制器方法、系统及存储介质 |
CN112416447A (zh) * | 2020-12-03 | 2021-02-26 | 深圳市国科亿道科技有限公司 | 一个usb端口实现多个复合功能设备的方法及复合设备 |
CN112272096B (zh) * | 2020-12-28 | 2021-04-27 | 飞天诚信科技股份有限公司 | 一种基于苹果转换设备的通信方法和系统 |
CN112272096A (zh) * | 2020-12-28 | 2021-01-26 | 飞天诚信科技股份有限公司 | 一种基于苹果转换设备的通信方法和系统 |
CN113518146B (zh) * | 2021-09-14 | 2021-12-03 | 云账户技术(天津)有限公司 | 一种移动终端信息的获取方法及装置 |
CN113518146A (zh) * | 2021-09-14 | 2021-10-19 | 云账户技术(天津)有限公司 | 一种移动终端信息的获取方法及装置 |
CN115292231A (zh) * | 2022-10-09 | 2022-11-04 | 荣耀终端有限公司 | 设备端口切换方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2012073126A1 (en) | 2012-06-07 |
US20170220356A1 (en) | 2017-08-03 |
CA2819225A1 (en) | 2012-06-07 |
CN103299285B (zh) | 2018-02-13 |
US20140019651A1 (en) | 2014-01-16 |
US9514065B2 (en) | 2016-12-06 |
IL226587A (en) | 2017-04-30 |
EP2646924A1 (en) | 2013-10-09 |
EP2646924A4 (en) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103299285A (zh) | 连接到usb外围设备的主机设备及其操作方法 | |
CN101258487B (zh) | 用全异信息系统中的数据批注协作应用中的文档 | |
CN101151608B (zh) | 开发人员容易地找出或扩展系统上周知位置的能力 | |
JP3786166B2 (ja) | 画像処理装置、画像処理方法、および画像処理プログラム | |
US7340276B2 (en) | System for downloading program to general-purpose subscriber identification module | |
CN100520709C (zh) | 多个应用程序互相作用的方法和系统 | |
CN103049515A (zh) | 一种应用程序分类的方法、装置和设备 | |
JP4674644B2 (ja) | 画像処理装置、画像処理方法、および画像処理プログラム媒体 | |
US10146554B2 (en) | Extraction of operating system-specific characteristics via a communication interface | |
CN102804133B (zh) | 一种用于管理系统可扩展性的方法和设备 | |
CN101589368A (zh) | 用于启动程序应用的方法及设备 | |
WO2017080007A1 (zh) | 一种识别码智能分析处理系统及其处理方法 | |
US8787985B2 (en) | Screen capture method of mobile communication terminal | |
CN104992205A (zh) | Ar图书及基于ar图书的索引式增强现实系统和方法 | |
KR20210101583A (ko) | 전자 장치 및 상기 전자 장치를 이용한 콘텐츠 운용 방법 | |
CN101118471A (zh) | 一种利用自定义手写符号执行功能的系统和方法 | |
CN114371844B (zh) | App开发平台、app开发方法及电子设备 | |
CN103209254A (zh) | 一种利用纸质便签进行手机事务管理的方法及装置 | |
CN101917522A (zh) | 一种移动终端列表样式更新的方法和装置 | |
CN104700122A (zh) | 一种信息交互系统及方法 | |
CN101009566B (zh) | 用于嵌入式系统装置下载资料的系统和方法 | |
JP5146880B2 (ja) | 情報管理装置、情報管理システム、情報管理プログラム、及び情報管理方法 | |
CN205507888U (zh) | 房屋中介智能管理系统 | |
CN110750370B (zh) | 信息处理方法及装置、设备、存储介质 | |
CN106407251A (zh) | 信息处理系统和信息处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180213 Termination date: 20190802 |
|
CF01 | Termination of patent right due to non-payment of annual fee |