CN106462514B - 统一类装置接口与一个主机接口的系统与方法 - Google Patents
统一类装置接口与一个主机接口的系统与方法 Download PDFInfo
- Publication number
- CN106462514B CN106462514B CN201580026057.1A CN201580026057A CN106462514B CN 106462514 B CN106462514 B CN 106462514B CN 201580026057 A CN201580026057 A CN 201580026057A CN 106462514 B CN106462514 B CN 106462514B
- Authority
- CN
- China
- Prior art keywords
- interface
- bus
- peripheral devices
- single host
- host interface
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/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/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)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Stored Programmes (AREA)
Abstract
本发明揭示一种用于在主机装置与多个外围装置之间通信的系统、装置与方法,其中所述通信利用由所述主机所支持的单个接口。所述主机包含多个类驱动程序及微型端口驱动程序。所述类驱动程序中的每一者实施与所述多个外围装置中的一或多者相关联的功能。每一微型端口驱动程序提供接口,所述类驱动程序中的一或多者通过所述接口使用类协议而与所述多个外围装置中的一或多者通信,其中所述微型端口驱动程序通过由所述主机所支持的单个主机接口通信。嵌入式控制器使用所述外围装置的相应的本机总线协议来与所述多个外围装置介接,且其中所述嵌入式控制器使用所述单个主机接口来与所述多个微型端口驱动程序介接。
Description
相关申请案的交叉参考
本申请案主张2014年5月19日申请的第62/000,089号美国临时申请案的权益,所述申请案的全文并入本文中。
技术领域
本发明涉及外围装置经由单个主机接口与主机装置通信。
背景技术
随着个人计算机的出现,多种多样的人性化接口装置(HID)稳定增长,所述人性化接口装置提供供人类用户提供输入并从在主机装置上执行的计算机程序接收输出的机制。因为个人计算机的能力已提升,所以个人计算机具有用户可用的外围HID的多样性及先进性。这已导致用于在外围装置与主机装置之间通信的许多不同的硬件与软件接口。
由主机装置利用来支持与外围装置的通信的软件接口集通常被组织为堆叠接口层。堆叠中的每一层是由软件程序组成,所述软件程序实施通过主机装置操作外围装置所需的功能的特定方面。堆叠的底层是将主机装置的处理器与硬件总线介接的软件程序,所述硬件总线用于将信号传输到外围装置并从所述外围装置传输信号。堆叠的顶层是提供人类用户或其它软件程序可借助其操作外围装置的接口的软件程序。
当安装新的外围装置供主机装置使用时,所述安装过程的部分包含验证所述主机装置的堆叠是否包含与所述新的外围装置通信所必需的所有软件。在许多情况中,此安装过程需要至少一些对软件堆叠的更新包含特定于装置的软件,需要所述特定于装置的软件充分利用所述新的外围装置。安装特定于装置的软件并非总能解决所有兼容性问题。为了使主机装置与新的外围装置介接,所述主机装置必须支持外围装置所需的低层级总线通信协议。主机装置支持总线通信协议通常需要硬件层级总线实施方案,所述硬件层级总线实施方案在设计并制造所述主机装置时理想地实施。
早代外围HID(包含例如键盘及鼠标的装置)使用串行端口来与主机装置介接。许多这些早期串行端口HID经由低引脚计数(LPC)总线而与主机装置的处理器通信。通常通过主机装置处理器上的专用引脚来在主机装置上实施对LPC总线的支持。可在主机装置的硬件层级处类似地实施其它总线协议。主机装置制造商选择在硬件层级处支持何种总线协议,其指示主机装置是否将与某些外围装置兼容。
因为新型外围HID已进入市场,外围设备所使用的LPC总线串行接口为新的外围装置接口让路。然而,外围HID所使用的专用接口的所产生的数目增长对主机装置制造商来说变得无法继续支持。主要响应于此困境,硬件与软件制造商协会开发出通用串行总线(USB),其向外围装置提供标准接口以与主机装置通信。USB迅速在整个行业中得到采用且进一步鼓励外围HID的增长。
尽管USB已得到普及,但是由外围装置所利用的硬件接口与总线协议继续发展。新的接口继续被引进且现有接口被调适以供新的外围设备类使用。在一些情况中,支持新的接口仅需要软件更新。例如,进一步使外围装置通信标准化的努力已导致新的外围装置接口。HID-USB协议使用USB协议来使HID通信标准化。HID-I2C协议类似地使用I2C协议来使HID通信标准化。只要主机装置包含对USB与I2C总线协议的硬件支持,所述主机装置即可通过对所述主机装置的软件堆叠的更新而支持利用HID-USB或HID-I2C协议的外围装置。
在其它情况中,新的外围接口将需要主机装置的硬件支持。例如,随着继续采用传感器作为外围装置的组件,新的接口(例如I2C)正由此相对新类别的外围装置使用。eSPI是替换LPC作为嵌入式控制器(EC)的单个主机接口的新接口。如同其它总线协议,除包含实施eSPI总线协议所必需的软件之外,通过使主机装置的处理器引脚专用于实施此eSPI总线而理想地实施对所述eSPI总线的支持。
主机装置制造商必须在决定是否包含对由新类的外围装置使用的新的总线协议的硬件支持方面保持前瞻性。旧型外围装置向主机装置制造商施加类似压力。继续向流行的外围装置提供支持的需求常常迫使主机装置制造商继续支持旧型硬件接口。因此,主机装置制造商面临包含对由新的外围装置所使用的新兴总线协议的支持,同时仍然维持对旧型总线协议的支持的压力。此外,主机装置制造商必须在无缝支持对现有总线协议的更新方面保持可调适。当与对硬件层级接口的更新相比时,相对容易实现对可供主机装置使用的软件接口的更新。例如,相对于增加对新的总线协议(例如eSPI)的支持,主机装置相对更易于支持更新类装置驱动程序以支持新的外围装置功能。因此,需要一种主机装置,所述主机装置可利用现有总线协议硬件来支持原本将需要所述主机装置的额外硬件支持的新的总线协议。
发明内容
为了减轻主机装置上向所有流行的外围装置接口提供支持的负担,需要一种机制,通过所述机制,主机可在仅使用单个协议的情况下与外围装置通信,同时允许外围装置及其相关联的软件继续使用其相应的本机通信协议而操作。还需要此机构为可配置以便为新的外围装置协议增加支持。
根据实施例,提供一种用于在主机与多个外围装置之间通信的系统。主机包含多个类驱动程序及微型端口驱动程序。类驱动程序中的每一者实施与多个外围装置中的一或多者相关联的功能。每一微型端口驱动程序提供接口,通过所述接口,类驱动程序中的一或多者使用类协议而与多个外围装置中的一或多者通信,其中微型端口驱动程序通过由主机所支持的单个主机接口通信。嵌入式控制器使用外围装置的相应的本机总线协议来与所述多个外围装置介接,且其中所述嵌入式控制器使用单个主机接口来与多个微型端口驱动程序介接。
另一实施例包括:主机上的总线控制器驱动程序,其中所述总线控制器驱动程序实施单个主机接口的第一部分,且其中所述总线控制器驱动程序使用多个外围装置中的一或多者的相应的本机总线协议的选择性子集来与微型端口驱动程序介接;及主机上的总线控制器,其中所述总线控制器实施单个主机接口的第二部分,且其中所述总线控制器使用单个主机接口来与嵌入式控制器介接。在另一实施例中,通过总线控制器驱动程序所实施的单个主机接口的第一部分实施使用所述单个主机接口进行通信所需的总线管理过程。在另一实施例中,通过总线控制器所实施的单个主机接口的第二部分实施使用所述单个主机接口进行通信所需的总线事务。在另一实施例中,嵌入式控制器包括实施单个主机接口并使用所述单个主机接口来与总线控制器通信的固件。在另一实施例中,使用单个主机接口在主机与嵌入式控制器之间传达由主机用来与多个外围装置互操作的信息,且其中使用多个外围装置的相应的本机总线协议来在嵌入式控制器与多个外围装置之间传达由主机用来与所述多个外围装置互操作的信息。在另一实施例中,单个主机接口是选自由eSPI(增强串行外围接口)、LPC、串行接口、I2C接口、USB接口、SPI接口及CAN接口组成的群组的接口。
附图说明
所属领域的技术人员通过参考附图可更好地理解本发明,且可明白本发明的众多目的、特征与优点。不同图式中的相同元件标号的使用指示类似或相同的物项。
图1是说明一组堆叠的软件接口的框图,常规主机装置利用所述软件接口来支持与一组外围装置的通信。
图2是说明一组堆叠的软件接口的框图,主机装置的实施例利用所述软件接口来支持与一组外围装置的通信。
图3说明由实施例利用的软件与固件堆叠,所述堆叠经由单个主机接口而支持与I2C HID的通信。
具体实施方式
使用主机装置操作外围装置需要保证外围装置与由主机装置所提供的软件与硬件接口的兼容性。在许多情况中,确定硬件兼容性仅为确证主机装置是否支持新的外围装置所需的硬件总线的类型的事件。在许多实例中,在设计并制造主机装置与外围装置时,确定硬件兼容性。在一些实例中,可通过重新配置通用硬件来修改主机装置以便支持新的外围装置。如果确定外围装置与通过主机装置所提供的硬件接口兼容,那么接着可确证软件兼容性。
从软件观点来看,兼容性需要主机装置执行操作外围装置所必需的软件。如所描述,多数主机装置系统通常将此软件组织成接口的堆叠层。每一层提供一组特殊化服务,其用来实施主机装置与兼容的外围装置之间所支持的通信路径。支持新的外围装置需要保证正确的软件接口可用于堆叠的每一层。在一些情况中,已由主机装置使用的现有库足以支持新的外围装置。在其它情况中,需要在堆叠的一或多个层级中更新软件程序。
在常规系统中,堆叠中的最高层是由应用程序软件程序组成。这些特定于装置的程序提供接口,所述接口可包含用户接口,通过所述接口操作由外围装置所提供的特征与功能。实施低层级指令的装置驱动程序在应用程序软件下方的层中操作,所述低层级指令实施由应用程序软件所提供的特征。多数系统依靠类装置驱动程序,所述类装置驱动程序提供可用来操作多种特定类型的外围程序的驱动程序的标准化库。例如,HID类USB驱动程序将包含使用USB协议来与HID互操作的普通功能。类似HID类I2C驱动程序可使用I2C协议来实施相同的普通HID功能。不可通过类驱动程序支持外围装置的某些特定于装置的性能。这些情景可能要求还安装微型类驱动程序,以便实施特定于装置的功能。微型类驱动程序经配置以与类驱动程序互操作,其中微型类驱动程序提供特定于装置的功能且类驱动程序提供一般性功能。
类驱动程序下方是实施通信协议的软件程序,主机装置通过所述通信协议与外围装置通信。这些较低层级层包含总线协议驱动程序及总线控制程序。每一总线协议驱动程序实施指令以用于经由特定总线协议(例如USB与I2C)而与外围装置通信。总线控制器实施指令以用于实际上沿着所支持的硬件总线中的一者传输数据。这两层一起实施用于在主机装置与外围装置之间传输信息的总线协议。在常规系统中,主机装置必须提供硬件实施方案以支持总线协议。在一些情况中,使用专用引脚来实施这些协议,以便将由协议所使用的总线与主机装置处理器介接。由于这些总线协议实施方案常常取决于硬件,所以新的总线协议无法由主机装置容易地支持。
图1说明在常规主机装置100中用来支持与一组外围装置110a到f的通信的堆叠接口的典型系统。在常规系统中,支持各种可销售的外围装置给主机装置100带来沉重负担。必须设计并制造主机装置100使得其支持一组不同的硬件与软件接口,以便提供与各种可销售的外围装置的强兼容性。如所描述,此兼容性必须有前瞻性,使得可响应于外围设备市场中采用新技术而更新主机装置100的性能。所述兼容性还必须有后顾性,以便使主机装置100继续为流行的旧型装置提供支持。
在图1的常规系统中的顶层处,应用程序软件115a到f向由外围装置110a到f所提供的特征及功能提供接口。在一些实例中,此应用程序软件115a到f可提供接口,主机装置100通过所述接口允许人类用户与外围装置110a到f交互。在其它实例中,应用程序软件115a到f可仅提供软件接口。主机装置100利用图1中说明的堆叠层的剩余层,以便将应用程序软件115a到f连接到外围装置110a到f。
图1的常规系统中说明的堆叠层允许主机装置100支持经由一系列通信协议与外围装置的通信。支持触摸屏HID的触摸屏软件115c在主机装置的中央处理单元(CPU)上执行且经由I2C与外围触摸屏HID 110b通信。用于实施键盘115d的特征的软件从外围USB键盘110e接收输入。主机装置100还执行外部显示软件115a,所述外部显示软件115a经由串行端口接口而与外部监视器110a通信。主机装置100还执行电池监视器软件程序115b,所述电池监视器软件程序115b经由I2C与外部电池110c介接。主机装置100还执行支持外部数据存储的软件115e,所述软件115e与USB快闪驱动器110d介接。主机装置100还执行视频游戏软件115f,所述视频游戏软件115f经由串行外围接口(SPI)而与外围视频游戏板110f介接。
在图1中所描绘的常规系统中,为了使主机装置100向外围装置110a到f中的每一者提供支持,主机装置100还利用例如类驱动程序120a到e、输送微型驱动程序135a到b、总线协议驱动程序125a到d及总线控制器130a到d的组件的层。这些层中的每一者实施由外围装置110a到f所使用的低层级通信协议的方面。例如,为了支持串行端口外围装置(例如外部监视器110a),主机装置100上运行的外部显示软件115a调用例如串行端口类驱动程序120a的组件,串行端口类驱动程序120a向外部显示软件115a提供高层级串行端口软件接口。此串行端口类驱动程序120a实施一般由监视器所利用的串行端口通信功能。串行端口类驱动程序120a又调用例如串行端口驱动程序125a的组件以经由串行端口管理串行端口连接及数据传输。串行端口驱动程序125a依靠例如串行端口总线控制器130a的组件以管理串行端口总线上的实际事务,数据通过串行端口总线而被传输到外部监视器110a且从其传输。
以类似方式,图1的常规系统还包含对其它外围接口的支持。对于经设计使用I2C协议来通信的外围设备,主机装置100依靠例如I2C驱动程序125b的组件以便管理主机装置与外围装置(例如HID触摸屏110b及外部电池110c)之间的I2C连接。支持这些I2C外围设备进一步需要主机装置100包含用于管理I2C总线上的数据事务的组件,例如I2C总线控制器。
主机装置100上运行的触摸屏软件115c调用例如HID类驱动程序120c的组件,所述HID类驱动程序120c向触摸屏软件115c提供高层级HID类接口。此HID类驱动程序120c实施一般由基于HID协议的外围装置利用的HID协议通信功能。所述HID类驱动程序120c又调用例如HID-I2C输送微型驱动程序135a的组件,所述HID-I2C输送微型驱动程序135a使用I2C协议来实施由HID类装置所利用的通信功能。HID-I2C输送微型驱动程序135a又调用I2C驱动程序125b以经由I2C总线管理I2C连接及数据传输。
类驱动程序可使用多种通信协议来实施普通功能。主机装置100利用能够操作I2C驱动程序125b的各种类接口。在图1的系统中,电池类驱动程序120b与HID类驱动程序120c提供经由I2C驱动程序125b利用I2C协议的能力。电池类驱动程序120b实施一般由外围电池装置所采用的功能。HID类驱动程序120c实施一般由HID所使用的功能,且使用HID-I2C输送微型驱动程序135a及HID-USB输送微型驱动程序135b来支持I2C及USB两种通信协议。在一些主机装置中,可使用两个单独的HID类驱动程序,每一HID类驱动程序支持不同的通信协议。
类似地,常规主机装置100包含例如USB驱动程序125c的组件,以用于管理与具有USB能力的外围装置(例如USB快闪驱动器110d及USB键盘110e)的连接。USB驱动程序125c依靠HID-USB输送微型驱动程序135b,所述HID-USB输送微型驱动程序135b使用USB协议来实施由HID类装置所利用的通信功能。支持这些USB外围设备进一步需要主机装置100包含例如USB总线控制器130c的组件,以用于管理USB总线上的事务。主机装置100利用各种类驱动程序以操作USB驱动程序125c,其中每一类驱动程序实施由不同类型的外围装置所使用的普通USB功能。存储类驱动程序120d实施由外围存储装置所使用的普通功能且HID类驱动程序120c实施由各种类型的HID所使用的普通功能。
常规主机装置100还包含SPI驱动程序125d,以用于管理与具有SPI能力的装置(例如视频游戏板110f)的连接。为向视频游戏板110f提供支持,主机执行游戏板软件115f,所述游戏板软件115f调用组件,例如提供高层SPI软件接口的SPI类驱动程序120a。所述SPI类驱动程序120a实施由外围游戏板装置所使用的普通SPI功能。SPI类驱动程序依靠例如SPI驱动程序125d的组件以用于管理与具有SPI能力的装置的连接。SPI驱动程序125d依靠例如SPI总线控制器130d的组件以用于管理SPI总线上的实际事务。
如上文所描述,理想主机装置能够支持流行的当前协议与旧型协议,且还保持可调适以包含未来协议。随着由主机装置支持的外围装置的数目增加,用来支持外围装置的接口的堆叠层的复杂性也增加。随着这些堆叠层的复杂性增加,归因于堆叠层内形成的许多相互依赖性,有效地管理对堆叠的组件的更新变得越来越困难。为了解决这些需求,本发明的实施例向主机装置提供通过单个接口与利用不同的通信协议的一系列外围装置介接的能力。
图2中说明各种实施例中的一者。根据图2的实施例,关于图1所描述的外围装置中的每一者通过单个主机接口260而连接到主机装置200。主机装置200依靠嵌入式控制器(EC)215以与外围装置210a到f中的每一者介接。嵌入式控制器215经配置以通过每一外围装置的本机接口而与外围装置210a到f中的每一者介接,且通过单个主机接口260而与主机装置200介接。依照此配置,由嵌入式控制器215代表主机装置200管理与外围装置210a到f中的每一者的总线层级事务。
在通过主机装置200与嵌入式控制器215之间的接口输送所有总线层级事务的情况下,主机装置无需为了支持外围装置210a到f而支持任何其它硬件接口。在图2的实施例中,使用LPC硬件接口来实施单个主机接口260。其它实施例可利用其它硬件接口作为单个主机接口260。例如,其它实施例可使用eSPI(增强串行外围接口总线)、I2C或PCI硬件接口来实施单个主机接口。一些实施例可提供配置用作单个主机接口的硬件接口的能力。
不管用作单个主机接口260的硬件接口为何,此选择对于外围装置210a到f来说是透明的。外围装置210a到f中的每一者使用与常规系统中相同的本机总线接口来与主机装置200通信。例如,外部监视器210a仍然使用常规系统中所使用的相同的串行端口接口来与主机装置通信。然而,代替直接与由主机装置的处理器所提供的硬件接口介接,外围装置210a到f与由嵌入式控制器215所提供的硬件接口介接。与外围装置210a到f中的每一者相关联的应用程序软件程序205a到f也不受嵌入式控制器215使用单个主机接口260的影响。每一应用程序软件程序205a到f使用相同的类驱动程序220a到c及用于图1的常规系统中的任何微型类驱动程序来与其对应的外围装置210a到f通信。因此,由外围装置210a到f所提供的功能不受嵌入式控制器215充当桥接低层级总线事务与外围装置210a到f的中介的影响。
在图1的常规系统中,使用例如总线协议驱动程序125a到d及总线控制器130a到b的软件组件来实施通信协议。总线协议驱动程序125a到d中的每一者实施对应于由主机装置100支持的硬件总线协议中的一者的软件接口。例如,主机装置100执行I2C驱动程序125b,所述I2C驱动程序125b提供软件接口,主机装置100通过所述软件接口与I2C装置(例如外部电池110c及触摸屏110b)通信。这些总线协议驱动程序125a到d实施I2C指令,所述I2C指令由主机装置100调用以便与I2C外围装置通信。
图1的常规系统的硬件总线控制器130a到b是软件程序,其由主机装置100用来实施根据其所支持的本机总线协议实施与外围装置进行通信所需的个别总线层级事务。这些总线控制程序提供指令用于在由主机装置支持的个别总线上实际传输数据。总线控制程序实施利用所述特定协议的所有装置所使用的总线事务。例如,I2C总线控制器130b实施用于在实体I2C总线上传输数据的低层级软件且代表正在经由I2C与主机装置100通信的所有外围装置调节对I2C总线的存取。在图1的常规系统中,HID触摸屏110b与电池装置110c两者均经由I2C总线控制器130b而与主机装置100通信。
确定是否可在常规系统中通过主机装置100操作新的外围装置需要保证操作所述新的外围装置所需的所有软件程序被安装且可被主机装置100存取。例如,当安装USB键盘110e以供个人计算机使用时,主机装置100操作键盘所需的所有软件必须被安装在所述个人计算机上。必须安装提供键盘的特征的特定于装置的应用程序软件115d。必须在个人计算机的类驱动程序库中识别用于操作键盘装置的适当类驱动程序120c或必须以其它方式安装所述适当类驱动程序120c。还必须安装或识别实施USB协议的软件程序。必须安装实施操作键盘所需的USB通信的特定于装置的USB驱动程序125c。还必须安装或识别介接类驱动程序120c及特定于装置的USB驱动程序的输送微型驱动程序135b。并且,必须识别或以其它方式安装通用USB总线控制器130c。
在图2的实施例中,如在图1的常规系统中那样使用相同的应用程序软件205a到f与类驱动程序220a到e。因此,将常规系统转换为实施例所需的修改对于应用程序软件205a到f与类驱动程序220a到e来说是透明的。外围装置210a到f也未改变。从外围装置210a到f及在主机装置200上执行的应用程序软件205a到f与类驱动程序220a到e的观点,无明显改变,这是因为正用于在这些组件之间通信的本机接口与常规主机装置相比保持不变。例如,USB HID键盘210e及对应的应用程序软件205d与类驱动程序220c仍然调用USB协议以在其间通信。然而,并非利用图1的常规系统中出现的输送微型驱动程序135a到b、特定于装置的总线协议驱动程序125a到d与总线控制器130a到d,实施例替代地利用微型端口驱动程序240a到d及单个控制器驱动程序245与单个总线控制器250用于实施单个主机接口,所有外围装置将通过所述单个主机接口与主机装置200通信。
根据实施例,结合类驱动程序220a到e使用例如微型端口驱动程序240a到d的组件。微型端口驱动程序240a到d实施由类驱动程序220a到e所使用的通信。微型端口驱动程序240a到d实施由一类装置所使用的通信功能,且经配置以与由控制器驱动程序245所提供的总线层级通信功能互操作。例如,在图2的实施例中,HID微型端口驱动程序240实施由HID类装置所使用的通信,且经配置以使用由控制器驱动程序245与控制器250所实施的总线通信协议来将这些通信转递到嵌入式控制器215。接着,将由控制器250所接收的通信从单个主机接口260的协议转译为由外围装置210a到f使用的本机协议。通过这些组件进行类似转译,以用于起源于外围装置210a到f处且流向应用程序软件205a到f的通信。以此方式,通过由主机装置200实施的单个总线协议,微型端口驱动程序240a到d在主机装置200上充当类特定协议(如HID协议)与由外围装置利用的本机总线协议之间的网桥。
类似于图1中的常规主机装置的总线协议驱动程序125a到d与总线控制器130a到d,控制器驱动程序245及控制器250为主机装置200实施总线通信。然而,控制器驱动程序245与控制器250实施单个总线协议,而非实施主机装置200的设计者认为必需的每一个总线协议。在图2的实施例中,此单个总线协议是LPC,但可为可由主机装置200与嵌入式控制器215所支持的任何其它通信协议。不管实际上实施的总线协议为何,主机装置200能够依靠单个主机接口260与所有外围设备通信意味着主机装置200仅需实施对由单个主机接口260利用的单个总线协议的硬件支持。在一些实施例中,此单个主机接口可为可配置的。此类实施例仍然受益于仅需支持有限数目个总线协议,而非支持将由主机装置支持的外围装置组所需的所有总线协议。
实施例还受益于维持外围与主机装置处理器之间的总线通信的完全控制。特定总线协议要求通过利用所述总线的组件进行适当总线控制。即使可通过主机装置支持外围装置所需的总线协议,总线通信的低层级方面(例如总线控制)中的差异可导致此通信链路的错误状况及/或低效率操作。由于常规系统中的总线控制器130a到d与总线协议驱动程序125a到d潜在地直接与各种外围设备介接,所以对这些组件的更新必须保证维持向后兼容性。因此,为了适应新的外围装置而做出的对这些总线协议层的软件的更新可能很难有效地实施。因此,主机装置因必须支持仅与嵌入式控制器的总线通信而受益,其更适于适应可由不同外围装置使用的低层级总线协议实施方案中的任何此类不一致性。
为了使主机装置200使用单个主机接口260对于外围装置210a到f来说是透明的,主机装置依靠嵌入式控制器215以桥接总线事务与外围装置210a到f。在一些实施例中,嵌入式控制器由三个主要组件组成。这些组件中的一者是固件,所述固件用于使用为单个主机接口260所选择的总线协议来实施总线事务。在图2的实施例中,嵌入式控制器215的固件使用主机装置200硬件中所支持的LPC总线来与主机装置200的处理器通信。固件在外围装置210a到f与主机装置200之间传输通信,但使用由单个主机接口260利用的总线协议来桥接所述通信。
图2的实施例的嵌入式控制器215进一步由超级I/O组件组成。此超级I/O组件在由装置本机接口固件所使用的本机总线协议通信与由单个主机接口260所利用的总线协议之间转译。所述超级I/O组件无需处理主机与外围装置之间所传输的实际信息,且反而仅需转译用于传输这些通信的协议。在一些实施例中,嵌入式控制器215的超级I/O组件使用由主机装置200的处理器支持的存储器/邮箱接口来与主机装置200通信。
图2的实施例的嵌入式控制器215进一步由装置本机接口固件组成。所述装置本机接口固件根据外围装置210a到f的本机总线协议而实施与所述外围装置210a到f的通信。此固件针对代表主机装置200所支持的总线协议中的每一者实施总线事务。可通过更新此固件而支持新的总线协议,而不影响主机装置200且因此无需对主机装置200的硬件接口的更新。在一些实施例中,嵌入式控制器215的装置本机接口固件可实施一组普通及特定于装置的类驱动程序,其经配置以支持由外围装置210a到f所使用的本机总线协议中的总线事务。
图3说明实施例的软件与固件堆叠,其使用LPC作为单个主机接口而支持与利用I2C的HID装置的通信。在图3的实施例中,主机装置300执行HID类驱动程序315,所述HID类驱动程序315实施HID功能供主机使用。在一些实施例中,HID类驱动程序315将实施用户可通过其与所支持的HID外围装置340及345交互的功能。在其它实施例中,HID类驱动程序315将仅实施由主机300使用的功能,以与所支持的HID外围装置340与345互操作。
HID类驱动程序315与HID-EMI微型端口驱动程序320介接,以便与外围HID装置340与345通信。HID-EMI微型端口驱动程序320使用由HID装置340与345利用的类特定HID协议来与HID类驱动程序通信。HID-EMI微型端口驱动程序320将这些HID协议通信转译为LPC/EMI总线协议310,LPC/EMI总线协议310用作由主机装置300支持的单个主机接口。HID-EMI微型端口驱动程序320与LPC/EMI总线驱动程序325介接,所述LPC/EMI总线驱动程序325实施LPC/EMI总线协议310,LPC/EMI总线协议310用作由主机装置300使用的单个主机接口。
在嵌入式控制器305上,在固件330中实施LPC/EMI协议。固件组件330通过与主机装置300的LPC/EMI总线驱动程序325介接而在主机与嵌入式控制器之间传输经转译的外围装置通信。I2C固件驱动程序335也在嵌入式控制器305上执行,所述I2C固件驱动程序335在本机I2C总线协议中与外围装置340及345介接。
虽然前述说明书描述特定实施例,但是在参考本描述之后,所属领域的一般技术人员将明白本文所揭示的实施例与额外实施例的细节中的众多改变且可作出所述改变。在此背景中,本说明书及图式将被视为说明性意义而非限制性意义,且所有此类修改旨在被包含于本发明的范围内。因此,应通过所附权利要求书及其合法等效物来确定本发明的范围。
Claims (18)
1.一种用于在主机与多个外围装置之间通信的系统,所述系统包括:
所述主机上的多个类驱动程序,其中所述类驱动程序中的每一者实施与所述多个外围装置中的一或多者相关联的功能;
所述主机上的多个微型端口驱动程序,其中每一微型端口驱动程序提供接口,所述类驱动程序中的一或多者通过所述接口使用类协议来与所述多个外围装置中的一或多者通信,其中所述微型端口驱动程序通过由所述主机所支持的单个主机接口通信;及
嵌入式控制器,其包括固件,所述固件经配置以使用选用于所述单个主机接口的总线协议实施总线事务,其中所述嵌入式控制器的所述固件包括进一步经配置以使用所述外围装置的相应本机总线协议来与所述多个外围装置介接,且其中所述嵌入式控制器使用所述单个主机接口来与所述多个微型端口驱动程序介接。
2.根据权利要求1所述的系统,其还包括:
所述主机上的总线控制器驱动程序,其中所述总线控制器驱动程序实施所述单个主机接口的第一部分,且其中所述总线控制器驱动程序使用所述多个外围装置中的所述一或多者的所述相应的本机总线协议的选择性子集来与所述微型端口驱动程序介接;及
所述主机上的总线控制器,其中所述总线控制器实施所述单个主机接口的第二部分,且其中所述总线控制器使用所述单个主机接口来与所述嵌入式控制器介接。
3.根据权利要求2所述的系统,其中通过所述总线控制器驱动程序所实施的所述单个主机接口的所述第一部分实施使用所述单个主机接口进行通信所需的总线管理过程。
4.根据权利要求2所述的系统,其中通过所述总线控制器所实施的所述单个主机接口的所述第二部分实施使用所述单个主机接口进行通信所需的总线事务。
5.根据权利要求1所述的系统,其中使用所述单个主机接口在所述主机与所述嵌入式控制器之间传达由所述主机用来与所述多个外围装置互操作的信息,且其中使用所述多个外围装置的所述相应的本机总线协议在所述嵌入式控制器与所述多个外围装置之间传达由所述主机用来与所述多个外围装置互操作的所述信息。
6.根据权利要求1所述的系统,其中所述单个主机接口是选自由eSPI(增强串行外围接口)、低引脚计数LPC、串行接口、I2C接口、USB接口、SPI接口及CAN接口组成的群组的接口。
7.一种用于与多个外围装置通信的装置,所述装置包括:
多个类驱动程序,其中所述类驱动程序中的每一者实施与所述多个外围装置的一或多个外围装置相关联的功能;
多个微型端口驱动程序,其中每一微型端口驱动程序提供接口,所述类驱动程序中的一或多者通过所述接口使用类协议来与所述一或多个外围装置通信,其中所述微型端口驱动程序通过由主机所支持的单个主机接口通信;
嵌入式控制器,其使用所述外围装置的相应的本机总线协议来与所述多个外围装置介接,且其中所述嵌入式控制器使用单个主机接口来与所述多个微型端口驱动程序介接;及
固件,其实施所述单个主机接口并使用所述单个主机接口与所述主机通信。
8.根据权利要求7所述的装置,其还包括:
总线控制器驱动程序,其中所述总线控制器驱动程序实施所述单个主机接口的第一部分,且其中所述总线控制器驱动程序使用所述一或多个外围装置的所述相应的本机总线协议的选择性子集来与所述微型端口驱动程序介接;及
总线控制器,其中所述总线控制器实施所述单个主机接口的第二部分,且其中所述总线控制器使用所述单个主机接口来与所述嵌入式控制器介接。
9.根据权利要求8所述的装置,其中通过所述总线控制器驱动程序所实施的所述单个主机接口的所述第一部分实施使用所述单个主机接口进行通信所需的总线管理过程。
10.根据权利要求8所述的装置,其中通过所述总线控制器所实施的所述单个主机接口的所述第二部分实施使用所述单个主机接口进行通信所需的总线事务。
11.根据权利要求7所述的装置,其中所述单个主机接口是选自由eSPI(增强串行外围接口)、LPC、串行接口、I2C接口、USB接口、SPI接口及CAN接口组成的群组的接口。
12.一种用于在主机与多个外围装置之间通信的方法,所述方法包括:
提供与所述多个外围装置相关联的功能,其中通过多个类驱动程序在所述主机上提供所述功能;
在所述多个类驱动程序与所述多个外围装置之间传输第一通信,其中所述第一通信在所述主机上实施所述外围装置功能且其中通过多个微型端口驱动程序使用类协议来传输所述第一通信;及
在所述多个微型端口驱动程序与嵌入式控制器之间传输第二通信,其中使用单个主机接口来传输所述第二通信,其中所述嵌入式控制器包括固件,所述固件实施所述单个主机接口并使用所述单个主机接口与所述主机通信;及
在嵌入式控制器与所述多个外围装置之间传输第三通信,其中使用所述多个外围装置的相应的本机总线协议来传输所述第三通信。
13.根据权利要求12所述的方法,其中经由实施所述单个主机接口的第一部分的总线控制器驱动程序传输所述第二通信;且经由实施所述单个主机接口的第二部分的总线控制器传输所述第二通信。
14.根据权利要求13所述的方法,其中通过所述总线控制器驱动程序所实施的所述单个主机接口的所述第一部分实施使用所述单个主机接口进行通信所需的总线管理过程。
15.根据权利要求13所述的方法,其中通过所述总线控制器所实施的所述单个主机接口的所述第二部分实施使用所述单个主机接口进行通信所需的总线事务。
16.根据权利要求12所述的方法,其还包括将利用所述类协议与所述多个外围装置的所述相应的本机总线协议的所述第一与第二通信转换为利用所述单个主机接口的所述第二通信。
17.根据权利要求12所述的方法,其中所述单个主机接口选自由串行接口、I2C接口、USB接口、SPI接口及CAN接口组成的群组。
18.根据权利要求12所述的方法,其中所述嵌入式控制器与主机装置通信,所述主机装置使用由所述主机装置的处理器支持的存储器/邮箱接口。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462000089P | 2014-05-19 | 2014-05-19 | |
US62/000,089 | 2014-05-19 | ||
US14/709,739 US9569375B2 (en) | 2014-05-19 | 2015-05-12 | Unifying class device interface with one host interface by using embedded controller |
US14/709,739 | 2015-05-12 | ||
PCT/US2015/031379 WO2015179296A1 (en) | 2014-05-19 | 2015-05-18 | Unifying class device interface with one host interface by using embedded controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462514A CN106462514A (zh) | 2017-02-22 |
CN106462514B true CN106462514B (zh) | 2020-01-21 |
Family
ID=54538640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580026057.1A Active CN106462514B (zh) | 2014-05-19 | 2015-05-18 | 统一类装置接口与一个主机接口的系统与方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9569375B2 (zh) |
EP (1) | EP3146437B1 (zh) |
JP (1) | JP6642944B2 (zh) |
KR (1) | KR20170003541A (zh) |
CN (1) | CN106462514B (zh) |
TW (1) | TWI646427B (zh) |
WO (1) | WO2015179296A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI626535B (zh) * | 2017-02-15 | 2018-06-11 | 新唐科技股份有限公司 | 電源管理系統和控制器 |
CN107992439B (zh) * | 2017-10-13 | 2020-12-18 | 武汉高德智感科技有限公司 | 一种可扩展的数据交互方法及系统 |
US10599444B2 (en) * | 2018-01-09 | 2020-03-24 | Microsoft Technology Licensing, Llc | Extensible input stack for processing input device data |
EP3664097A1 (en) * | 2018-12-04 | 2020-06-10 | Siemens Healthcare GmbH | Attaching peripheral components of a medical imaging system |
CN111274184B (zh) * | 2018-12-05 | 2021-07-02 | 西安诺瓦星云科技股份有限公司 | 串行接口设备驱动器、嵌入式处理器和视频控制器 |
US10649945B1 (en) * | 2018-12-10 | 2020-05-12 | Analog Devices International Unlimited Company | Non-native digital interface support over a two-wire communication bus |
US10909048B1 (en) * | 2019-07-30 | 2021-02-02 | Microsoft Technology Licensing, Llc | Declarative transactional communications with a peripheral device via a low-power bus |
KR102696026B1 (ko) * | 2023-10-06 | 2024-08-19 | 위더맥스(주) | 통합형 spi 장치 및 그 인터페이스 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998036363A1 (en) * | 1997-02-18 | 1998-08-20 | Advanced Micro Devices, Inc. | Pc chipset interconnection bus |
CN1376281A (zh) * | 1999-07-27 | 2002-10-23 | 英特尔公司 | 总线系统的分隔事务协议 |
CN1581122A (zh) * | 2003-08-05 | 2005-02-16 | 启碁科技股份有限公司 | 具有随身碟可存储驱动程序的外围装置 |
CN1696919A (zh) * | 2004-05-10 | 2005-11-16 | 联发科技股份有限公司 | 外围装置的控制系统 |
US7249201B1 (en) * | 2003-07-02 | 2007-07-24 | Adaptec, Inc. | Single driver for multifunctional SCSI chips |
CN101529405A (zh) * | 2006-07-05 | 2009-09-09 | 格马尔托股份有限公司 | 多功能外围装置、相应的方法以及具有通过单个接口通信的外围和主机的电子系统 |
CN102707792A (zh) * | 2011-03-21 | 2012-10-03 | 微软公司 | 通过简单外围总线的hid |
CN103299285A (zh) * | 2010-11-29 | 2013-09-11 | 美思系统有限公司 | 连接到usb外围设备的主机设备及其操作方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138180A (en) * | 1997-09-12 | 2000-10-24 | Symbol Technologies, Inc. | Adaptive computer peripheral for selecting a communications protocol by cycling through a plurality of given protocols |
US5938738A (en) * | 1997-11-03 | 1999-08-17 | Mustek Systems Inc. | Peripheral control system |
US6684260B1 (en) * | 1999-05-04 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | Maintaining consistency of device driver settings |
US20020099902A1 (en) * | 2000-05-12 | 2002-07-25 | Guillaume Comeau | Methods and systems for applications to interact with hardware |
US7159223B1 (en) * | 2000-05-12 | 2007-01-02 | Zw Company, Llc | Methods and systems for applications to interact with hardware |
TW588282B (en) | 2002-10-22 | 2004-05-21 | Via Tech Inc | System capable of managing peripheral input/output control device |
US7617502B2 (en) * | 2002-11-06 | 2009-11-10 | Scientific-Atlanta, Llc | Managing peripheral device drivers |
US7376147B2 (en) * | 2003-12-18 | 2008-05-20 | Intel Corporation | Adaptor supporting different protocols |
US7631199B2 (en) * | 2005-06-30 | 2009-12-08 | Intel Corporation | Various methods and apparatuses for power states in a controller |
US8464238B1 (en) * | 2006-01-31 | 2013-06-11 | Qlogic, Corporation | Method and system for managing storage area networks |
US20070198996A1 (en) * | 2006-02-09 | 2007-08-23 | Ziep Software Inc. | System and method for driving peripheral devices |
TW200801953A (en) | 2006-06-16 | 2008-01-01 | Via Tech Inc | Multi-layer USB I/O system and computer system |
US20140089553A1 (en) * | 2012-09-24 | 2014-03-27 | Broadcom Corporation | Interface between a host and a peripheral device |
-
2015
- 2015-05-12 US US14/709,739 patent/US9569375B2/en active Active
- 2015-05-18 EP EP15728265.8A patent/EP3146437B1/en active Active
- 2015-05-18 CN CN201580026057.1A patent/CN106462514B/zh active Active
- 2015-05-18 WO PCT/US2015/031379 patent/WO2015179296A1/en active Application Filing
- 2015-05-18 KR KR1020167030074A patent/KR20170003541A/ko unknown
- 2015-05-18 JP JP2016564191A patent/JP6642944B2/ja active Active
- 2015-05-19 TW TW104115943A patent/TWI646427B/zh active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998036363A1 (en) * | 1997-02-18 | 1998-08-20 | Advanced Micro Devices, Inc. | Pc chipset interconnection bus |
CN1376281A (zh) * | 1999-07-27 | 2002-10-23 | 英特尔公司 | 总线系统的分隔事务协议 |
US7249201B1 (en) * | 2003-07-02 | 2007-07-24 | Adaptec, Inc. | Single driver for multifunctional SCSI chips |
CN1581122A (zh) * | 2003-08-05 | 2005-02-16 | 启碁科技股份有限公司 | 具有随身碟可存储驱动程序的外围装置 |
CN1696919A (zh) * | 2004-05-10 | 2005-11-16 | 联发科技股份有限公司 | 外围装置的控制系统 |
CN101529405A (zh) * | 2006-07-05 | 2009-09-09 | 格马尔托股份有限公司 | 多功能外围装置、相应的方法以及具有通过单个接口通信的外围和主机的电子系统 |
CN103299285A (zh) * | 2010-11-29 | 2013-09-11 | 美思系统有限公司 | 连接到usb外围设备的主机设备及其操作方法 |
CN102707792A (zh) * | 2011-03-21 | 2012-10-03 | 微软公司 | 通过简单外围总线的hid |
Also Published As
Publication number | Publication date |
---|---|
TWI646427B (zh) | 2019-01-01 |
KR20170003541A (ko) | 2017-01-09 |
US20150331830A1 (en) | 2015-11-19 |
CN106462514A (zh) | 2017-02-22 |
EP3146437A1 (en) | 2017-03-29 |
WO2015179296A1 (en) | 2015-11-26 |
US9569375B2 (en) | 2017-02-14 |
JP2017516212A (ja) | 2017-06-15 |
JP6642944B2 (ja) | 2020-02-12 |
EP3146437B1 (en) | 2018-12-26 |
TW201610684A (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462514B (zh) | 统一类装置接口与一个主机接口的系统与方法 | |
US7433991B2 (en) | Selector, selection method, and program product | |
AU2012231346B2 (en) | HID over simple peripheral buses | |
US8069288B2 (en) | Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports | |
US20080276012A1 (en) | Driver Loading via a PnP Device | |
US20130304941A1 (en) | Accessory Device Architecture | |
CN101171577B (zh) | 授权的通用串行总线功能 | |
KR100510048B1 (ko) | 컴퓨터 시스템, usb 호환가능 디바이스 및 정보 처리 시스템 | |
US20100011197A1 (en) | Enhanced uefi framework layer | |
KR20140078161A (ko) | Pci 익스프레스 스위치 및 이를 이용한 컴퓨터 시스템 | |
US10521216B2 (en) | Unified extensible firmware interface updates | |
CN100489777C (zh) | 智能平台管理接口韧体架构及其建立方法 | |
US20140149658A1 (en) | Systems and methods for multipath input/output configuration | |
US9465597B2 (en) | System for operating a device as a storage device and a modem device | |
US20210165661A1 (en) | Automated bios platform configuration system | |
US10628285B1 (en) | Dynamic configuration of availability of debugging messages | |
US20120036294A1 (en) | Computer integrated display integrated display and control method of the same | |
US7103686B1 (en) | Method and apparatus for device discovery | |
US10942793B2 (en) | Information processing system | |
US11093431B2 (en) | Automated device discovery system | |
EP4109237A1 (en) | Computer-implemented method for updating a process control system | |
TWI678624B (zh) | 模組化計算機系統及其運算核心板 | |
US6775832B1 (en) | Method and apparatus for a layer structure directory for common hardware interface modules | |
US7103891B1 (en) | Method and apparatus for establishing a profile table for host bus adapters | |
TWI585613B (zh) | Support for interface devices with unknown I / O devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |