CN111033486A - 多点总线中的设备、事件和消息参数关联 - Google Patents
多点总线中的设备、事件和消息参数关联 Download PDFInfo
- Publication number
- CN111033486A CN111033486A CN201880052331.6A CN201880052331A CN111033486A CN 111033486 A CN111033486 A CN 111033486A CN 201880052331 A CN201880052331 A CN 201880052331A CN 111033486 A CN111033486 A CN 111033486A
- Authority
- CN
- China
- Prior art keywords
- register
- gpio
- state information
- devices
- serial bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 claims abstract description 119
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims description 63
- 230000005540 biological transmission Effects 0.000 claims description 43
- 238000003860 storage Methods 0.000 claims description 33
- 230000002093 peripheral effect Effects 0.000 description 45
- 230000006870 function Effects 0.000 description 23
- 238000012546 transfer Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 13
- 230000011664 signaling Effects 0.000 description 11
- 238000010295 mobile communication Methods 0.000 description 9
- 230000001276 controlling effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 101100534112 Sus scrofa SPMI gene Proteins 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 2
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 208000032182 acquired hemophilia B Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
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/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
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
Abstract
用于在串行通信链路上传达虚拟化通用输入/输出(GPIO)信号的系统、方法和装置。一种在耦合至串行总线的设备处执行的方法包括:确定与物理GPIO引脚或信号相对应的GPIO状态信息在事件寄存器中可用,该事件寄存器具有第一比特宽度并且包括标识与该事件寄存器相关联的一个或多个设备的信息,以及在该串行总线上与该一个或多个设备交换该GPIO状态信息。该GPIO状态信息可以根据该事件寄存器中所存储的配置信息来在该串行总线上传送。该配置信息可以包括标识该一个或多个设备的地址。该配置信息可以包括标识该一个或多个设备中的目标寄存器的寻址信息。该配置信息可以包括标识用于传送该GPIO状态信息的通信模式的信息。
Description
相关申请的交叉引用
本申请要求于2017年8月14日在美国专利商标局提交的临时申请S/N.62/545,422以及于2018年8月8日在美国专利商标局提交的非临时申请S/N.16/058,599的优先权和权益,其全部内容如同在下文全面阐述的那样通过援引并且出于所有适用目的而纳入于此。
技术领域
本公开一般涉及串行通信和输入/输出引脚配置,并且尤其涉及优化配置成用于串行消息接发和虚拟通用输入/输出状态的寄存器组。
背景
移动通信设备可包括各种各样的组件,包括电路板、集成电路(IC)设备和/或片上系统(SoC)设备。各组件可包括处理设备、用户接口组件、存储和通过共享数据通信总线(其可包括串行总线或并行总线)进行通信的其它外围组件。业内已知的通用串行接口包括集成电路间(I2C或I2C)串行总线及其衍生物和替代品,从而包括由移动工业处理器接口(MIPI)联盟定义的接口,诸如I3C接口、系统功率管理接口(SPMI)和射频前端(RFFE)接口。
在一个示例中,I2C串行总线是旨在用于将低速外围设备连接至处理器的串行单端计算机总线。一些接口提供多主设备总线,其中两个或更多个设备可以用作在串行总线上传送的不同消息的总线主设备。在另一示例中,RFFE接口定义了用于控制各种射频(RF)前端设备(包括功率放大器(PA)、低噪声放大器(LNA)、天线调谐器、滤波器、传感器、功率管理设备、开关等)的通信接口。这些设备可共处于单个集成电路(IC)设备中或者在多个IC设备中提供。在移动通信设备中,多个天线和无线电收发机可支持多个并发RF链路。
在许多实例中,采用数个命令和控制信号来连接移动通信设备中的不同组件设备。这些连接消耗移动通信设备内宝贵的通用输入/输出(GPIO)引脚,并且用在现有串行数据链路上传送的信息中携带的信号来代替物理互连将是合乎期望的。
随着移动通信设备持续包括更高级的功能性,需要改进的串行通信技术来支持外围设备与应用处理器之间的低等待时间传输。
概述
本公开的某些方面涉及可提供不同设备之间的经优化低等待时间通信以使得GPIO信号可作为虚拟信号被携带的系统、装置、方法和技术。虚拟GPIO有限状态机(VGIFSM)在寄存器配置上操作,该寄存器配置维护来自多个源和总线结构的GPIO状态信息,并且使该状态信息能够转换为因设备而异的寄存器格式以供在数据通信总线上传输到一个或多个设备。
在本公开的各个方面,一种在耦合至串行总线的设备处执行的方法包括:确定与物理GPIO引脚或信号相对应的GPIO状态信息在事件寄存器中可用,该事件寄存器具有第一比特宽度并且包括标识与该事件寄存器相关联的一个或多个设备的信息,以及在该串行总线上与该一个或多个设备交换该GPIO状态信息。该GPIO状态信息可以根据该事件寄存器中所存储的配置信息来在该串行总线上传送。该配置信息可以包括标识该一个或多个设备的地址。该配置信息可以包括标识该一个或多个设备中的目标寄存器的寻址信息。该配置信息可以包括标识用于传送该GPIO状态信息的通信模式的信息。
在某些示例中,该GPIO状态信息可以被存储在第一设备寄存器中,并且第一设备寄存器的内容可以在该串行总线上传送。标识该一个或多个设备的地址可以被存储在第二设备寄存器中,并且第二设备寄存器的内容可以在该串行总线上与第一设备寄存器一起传送。标识该目标寄存器的地址可以被存储在第三设备寄存器中,并且第三设备寄存器的内容可以在该串行总线上与第一设备寄存器一起传送。第一设备寄存器可以具有与第一比特宽度不同的第二比特宽度。
在一些方面,该通信模式定义是否要对该串行总线上的特定传输进行加密。在一个示例中,该通信模式定义该GPIO状态信息在被传送时是否对其进行加密。在另一示例中,该通信模式定义是否要对该串行总线上所传送的消息进行加密。该通信模式可以定义在第一传输中检测到错误之后是否重传该GPIO状态信息。该通信模式可以定义是否在多次传输中传送该GPIO状态信息。该通信模式可以定义标识该一个或多个设备中的目标寄存器的寻址信息的格式。该通信模式可以标识该GPIO状态信息的优先级。
在一个方面,交换该GPIO状态信息包括根据SPMI协议来传送或接收数据分组。交换该GPIO状态信息可以包括根据RFFE协议来传送或接收数据分组。
在本公开的各个方面中,一种装置具有一组事件寄存器、一总线接口以及耦合到该事件寄存器和该总线接口的有限状态机,每个事件寄存器存储与物理GPIO引脚或信号相对应的GPIO状态信息以及与该GPIO状态信息相对应的配置信息,该总线接口被配置成在串行总线上传达虚拟GPIO信息。有限状态机可以被配置成确定与物理GPIO引脚或信号相对应的GPIO状态信息在第一事件寄存器中已经改变,以及在该串行总线上与该一个或多个设备交换该GPIO状态信息。配置信息可包括:标识该一个或多个设备的地址、标识该一个或多个设备中的目标寄存器的寻址信息、以及标识用于传送该GPIO状态信息的通信模式的信息。第一事件寄存器可具有第一比特宽度并且可包括标识与该事件寄存器相关联的一个或多个设备的信息。该GPIO状态信息根据该第一事件寄存器中所存储的配置信息来在该串行总线上传送。
在本公开的各个方面,一种装备包括:用于确定与物理GPIO引脚或信号相对应的GPIO状态信息在事件寄存器中可用的装置,以及用于在串行总线上与一个或多个设备交换该GPIO状态信息的装置。该GPIO状态信息可以根据该事件寄存器中所存储的配置信息来在该串行总线上传送。该事件寄存器可具有第一比特宽度并且可包括标识与该事件寄存器相关联的一个或多个设备的信息。该配置信息可包括:标识该一个或多个设备的地址、标识该一个或多个设备中的目标寄存器的寻址信息、以及标识用于传送该GPIO状态信息的通信模式的信息。
在本公开的各个方面中,处理器可读存储介质存储指令,这些指令在由处理电路的至少一个处理器或状态机执行时使得该处理电路或状态机确定与物理GPIO引脚或信号相对应的GPIO状态信息在事件寄存器中可用,以及在串行总线上与该一个或多个设备交换该GPIO状态信息。该事件寄存器可具有第一比特宽度并且可包括标识与该事件寄存器相关联的一个或多个设备的信息。该GPIO状态信息可以根据该事件寄存器中所存储的配置信息来在该串行总线上传送。该配置信息可包括:标识该一个或多个设备的地址、标识该一个或多个设备中的目标寄存器的寻址信息、以及标识用于传送该GPIO状态信息的通信模式的信息。
附图简述
图1解说了采用诸IC设备之间的根据多个可用标准中的一者来选择性地操作的数据链路的装置。
图2解说了用于采用诸IC设备之间的数据链路的装置的系统架构。
图3解说了用于使用多个RFFE总线来耦合各种射频前端设备的设备配置。
图4解说了根据本文所公开的某些方面的采用SPMI总线来耦合各种前端设备的设备。
图5解说了包括可根据本文所公开的某些方面来适配的应用处理器和多个外围设备的装置。
图6解说了根据本文所公开的某些方面的采用串行总线来耦合各种前端设备的设备。
图7解说了根据本文所公开的某些方面的已被适配成支持虚拟GPIO的装置。
图8解说了包括采用边带GPIO的一个或多个通信链路的系统的示例。
图9解说了系统的示例,该系统根据本文所公开的某些方面虚拟化并合并与多个设备相关联的GPIO状态的通信和/或使用单个串行通信链路的诸通信链路。
图10解说了根据本文所公开的某些方面的可被用于实现多用虚拟GPIO配置的事件寄存器的示例。
图11解说了根据本文所公开的某些方面的具有自主地使用图10的事件寄存器来操作的状态机的系统的示例。
图12是解说根据本文所公开的某些方面的在事件传输操作期间对32比特事件寄存器进行处理的第一流程图。
图13是解说根据本文所公开的某些方面的在事件接收操作期间对32比特事件寄存器进行处理的第二流程图。
图14-16解说了根据本文公开的某些方面的包括配置信息和消息有效载荷的消息缓冲器。
图17解说了采用可根据本文所公开的某些方面适配的处理电路的装置的一个示例。
图18是解说根据本文所公开的某些方面适配的设备的某些操作的第三流程图。
图19解说了根据本文公开的某些方面适配的装置的硬件实现的示例。
详细描述
以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文所描述的概念的仅有配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可以实践这些概念。在一些实例中,以框图形式示出众所周知的结构和组件以便避免湮没此类概念。
现在将参照各种装置和方法给出本发明的若干方面。这些装置和方法将在以下详细描述中进行描述并在附图中由各种框、模块、组件、电路、步骤、过程、算法等(统称为“元素”)来解说。这些元素可使用电子硬件、计算机软件、或其任何组合来实现。此类元素是实现成硬件还是软件取决于具体应用和加诸于整体系统上的设计约束。
概览
包括多SoC的设备和其它IC设备通常采用可包括串行总线或其它数据通信链路的共享通信接口来将处理器与调制解调器和其它外围设备相连接。串行总线或其它数据通信链路可根据所定义的多个标准或协议来操作。在各种示例中,可以根据I2C协议、13C协议、SPMI协议和/或RFFE协议来操作串行总线。根据本文所公开的某些方面,GPIO引脚和信号可被虚拟化成可在数据通信链路上传送的GPIO状态信息。虚拟化GPIO状态信息可在各种通信链路(包括包含有线和无线通信链路的链路)上传送。例如,虚拟化GPIO状态信息可以被分组化或以其他方式被格式化以供无线网络(包括蓝牙、WLAN、蜂窝网络等)上的传输。本文描述了涉及有线通信链路的示例以促成对某些方面的理解。这些方面总是适用于其中GPIO状态信息的传输包括无线网络上的传输的实现。
数个不同的协议方案可被用于在通信链路上传达消息和数据。现有协议具有良好定义且不可变的结构,因为它们的结构不能被更改。在一些示例中,根据I2C、I3C、SPMI、RFFE、或其他标准或协议来操作的串行通信总线可被用于隧穿不同的协议,这些协议具有不同的寄存器和数据格式的要求、不同的数据传输量、和/或不同的传输调度。
本文公开的某些方面提供了适配成使设备能够为支持将设备连接到一个或多个其他设备的多个接口的GPIO状态信息提供统一寄存器格式的方法、电路和系统。根据本文所公开的某些方面,可以定义使得状态机能够管理虚拟GPIO状态信息的寄存器配置,该GPIO状态信息关于各种各样的物理GPIO配置、与该物理GPIO相关联的总线架构、以及控制用于传达虚拟GPIO信息的总线的操作的协议。该寄存器配置可以使得状态机能够自主操作。当目标设备以不同的寄存器宽度操作时,状态机可被适配成使用该寄存器配置。在一个示例中,状态机可以被适配成将32比特宽的虚拟GPIO寄存器映射到目标是接收虚拟GPIO信息的设备中的8比特寄存器和/或16比特寄存器。可以根据某些架构的偏好或要求来实现其他映射。寄存器的比特定义和比特位置可基于架构便利性来更改。寄存器配置实现用于寄存器定义的原子办法,从而确保最大的灵活性和可扩展性。
采用串行数据链路的装置的示例
根据某些方面,串行数据链路可被用于互连作为装置(诸如蜂窝电话、智能电话、会话发起协议(SIP)电话、膝上型设备、笔记本、上网本、智能本、个人数字助理(PDA)、卫星无线电设备、全球定位系统(GPS)设备、智能家用设备、智能照明设备、多媒体设备、视频设备、数字音频播放器(例如,MP3播放器)、相机、游戏控制台、娱乐设备、车载组件、可穿戴计算设备(例如,智能手表、健康或健身跟踪器、眼镜等)、电器、传感器、安全设备、自动售货机、智能仪表、无人机、多旋翼飞行器、或任何其他类似的功能设备)的子组件的电子设备。
图1解说了可采用数据通信总线的装置100的示例。装置100可包括SoC、具有可在一个或多个ASIC中或在SoC中实现的多个电路或设备104、106、和/或108的处理电路102。在一个示例中,装置100可以是通信设备,并且处理电路102可包括在ASIC 104中提供的处理设备、一个或多个外围设备106、以及收发机108,该收发机108使得该装置能够通过天线124与无线电接入网、核心接入网、因特网和/或另一网络进行通信。
ASIC 104可具有一个或多个处理器112、一个或多个调制解调器110、板载存储器114、总线接口电路116和/或其他逻辑电路或功能。处理电路102可由可提供应用编程接口(API)层的操作系统来控制,该API层使得该一个或多个处理器112能够执行驻留在板载存储器114或在处理电路102上提供的其他处理器可读存储122中的软件模块。软件模块可包括存储在板载存储器114或处理器可读存储122中的指令和数据。ASIC 104可访问其板载存储器114、处理器可读存储122、和/或在处理电路102外部的存储。板载存储器114、处理器可读存储122可包括只读存储器(ROM)或随机存取存储器(RAM)、电可擦除可编程ROM(EEPROM)、闪存卡、或可在处理系统和计算平台中使用的任何存储器设备。处理电路102可包括、实现或访问本地数据库或其他参数存储,该本地数据库或其他参数存储可维护用于配置和操作装置100和/或处理电路102的工作参数和其他信息。本地数据库可使用寄存器、数据库模块、闪存、磁介质、EEPROM、软盘或硬盘等来实现。处理电路102也可以可操作地耦合到外部设备,诸如天线124、显示器126、操作者控件(诸如开关或按钮128、130和/或集成或外部按键板132)、以及其他组件。用户接口模块可被配置成通过专用通信链路或通过一个或多个串行数据互连与显示器126、外部按键板132等一起操作。
处理电路102可提供使得某些设备104、106和/或108能够进行通信的一条或多条总线118a、118b、120。在一个示例中,ASIC 104可包括总线接口电路116,其包括电路、计数器、定时器、控制逻辑、和其他可配置电路或模块的组合。在一个示例中,总线接口电路116可被配置成根据通信规范或协议来操作。处理电路102可包括或控制配置和管理装置100的操作的功率管理功能。
图2解说了包括耦合到串行总线220的多个设备202和2220-222N的装置200的某些方面。设备202和2220-222N可在一个或多个半导体IC设备(诸如,应用处理器、SoC或ASIC)中实现。在各种实现中,设备202和2220-222N可包括、支持或用作调制解调器、信号处理设备、显示器驱动器、相机、用户接口、传感器、传感器控制器、媒体播放器、收发机、和/或其他此类组件或设备。在一些示例中,从设备2220-222N中的一者或多者可被用于控制、管理或监视传感器设备。设备202与2220-222N之间在串行总线220上的通信由总线主设备202来控制。某些类型的总线可支持多个总线主设备202。
在一个示例中,主设备202可包括接口控制器204,该接口控制器204可管理对串行总线的访问、为从设备2220-222N配置动态地址和/或生成要在串行总线220的时钟线218上传送的时钟信号228。主设备202可包括配置寄存器206或其他存储224、以及被配置成处置协议和/或较高级别功能的其他控制逻辑212。控制逻辑212可包括处理电路,诸如状态机、定序器、信号处理器或通用处理器。主设备202包括收发机210和线驱动器/接收机214a和214b。收发机210可包括接收机、发射机和共用电路,其中共用电路可包括定时、逻辑和存储电路和/或设备。在一个示例中,发射机基于由时钟生成电路208提供的时钟信号228中的定时来编码和传送数据。其他定时时钟226可由控制逻辑212和其他功能、电路或模块使用。
至少一个设备2220-222N可被配置成作为串行总线220上的从设备来操作,并且可包括支持显示器、图像传感器的电路和模块、和/或控制测量环境条件的一个或多个传感器并与之通信的电路和模块。在一个示例中,配置成作为从设备来操作的从设备2220可提供包括支持显示器、图像传感器的电路和模块、和/或控制测量环境条件的一个或多个传感器并与之通信的电路和模块的控制功能、模块或电路232。从设备2220可包括配置寄存器234或其他存储236、控制逻辑242、收发机240以及线驱动器/接收机244a和244b。控制逻辑242可包括处理电路,诸如状态机、定序器、信号处理器或通用处理器。收发机210可包括接收机、发射机和共用电路,其中共用电路可包括定时、逻辑和存储电路和/或设备。在一个示例中,发射机基于由时钟生成和/或恢复电路246提供的时钟信号248中的定时来编码和传送数据。时钟信号248可从接收自时钟线218的信号中导出。其他定时时钟238可由控制逻辑242和其他功能、电路或模块使用。
串行总线220可根据I2C、I3C、SPMI、RFFE和/或其他协议来操作。至少一个设备202、2220-222N可被配置成作为串行总线220上的主设备和从设备来操作。两个或更多个设备202、2220-222N可被配置成可作为串行总线220上的主设备来操作。
在其中串行总线220是根据I3C协议来操作的示例中,使用I3C协议通信的设备可以与使用I2C协议通信的设备在相同的串行总线220上共存。I3C协议可支持不同通信模式,包括与I2C协议兼容的单数据率(SDR)模式。高数据率(HDR)模式可提供介于6兆位每秒(Mbps)到16Mbps之间的数据传输率,并且某些HDR模式可提供更高的数据传输率。I2C协议可遵循提供范围可在每秒100千比特(kbps)到3.2Mbps之间的数据率的实际I2C标准。除了数据格式和总线控制方面,I2C和I3C协议还可定义在串行总线220上传送的信号的电气和定时方面。在一些方面,I2C和I3C协议可定义影响与串行总线220相关联的某些信号电平的直流(DC)特性、和/或影响在串行总线220上传送的信号的某些定时方面的交流(AC)特性。在一些示例中,双导线串行总线220在数据线216上传送数据并在时钟线218上传送时钟信号。在一些实例中,数据可被编码在数据线216和时钟线218的信令状态或信令状态转变中。
图3是解说芯片组或设备302中的通信链路的配置的第二示例的框图300,该芯片组或设备302采用多个RFFE总线330、332、334来耦合各种RF前端设备318、320、322、324、326、328。在该示例中,调制解调器304包括RFFE接口308,其将该调制解调器304耦合至第一RFFE总线330。调制解调器304可以通过一个或多个通信链路310来与基带处理器306和射频IC(RFIC 312)通信。所解说的设备302可以实施在以下一者或多者中:移动通信设备、移动电话、移动计算系统、移动电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备、可穿戴计算和/或通信设备、电器等。
在各个示例中,设备302可以用基带处理器306、调制解调器304、RFIC 312、多个通信链路310、336、多个RFFE总线330、332、334、和/或其他类型的总线来实现。设备302可包括其他的处理器、电路、模块,并且可以被配置成用于各种操作和/或不同功能性。在图3中所解说的示例中,调制解调器304通过其RFFE接口308和第一RFFE总线330来耦合到RF调谐器318。RFIC 312可包括一个或多个RFFE接口314、316、控制器、状态机、和/或配置和控制RF前端的某些方面的处理器。RFIC 312可通过第一RFFE接口314和第二RFFE总线332来与PA 320和功率追踪模块322通信。RFIC 312可通过第二RFFE接口316和第三RFFE总线334来与开关324和一个或多个LNA 326、328通信。
总线等待时间可影响串行总线处置高优先级、实时和/或其它受时间约束的消息的能力。低等待时间消息或者要求低总线等待时间的消息可涉及传感器状态、设备生成的实时事件和虚拟化的通用输入/输出(GPIO)。在一个示例中,总线等待时间可被测量为在消息变得可供传送与消息递送或者在一些情形中是消息传输的开始之间逝去的时间。可采用对总线等待时间的其它测量。总线等待时间通常包括在传送较高优先级消息时招致的延迟、中断处理、终止串行总线上正在进行的数据报所需的时间、传送导致总线在传送模式和接收模式之间周转的命令的时间、总线仲裁和/或协议指定的命令传输。
在某些示例中,等待时间敏感的消息可包括共存消息。共存消息在多系统平台中传送以防止或减少某些设备类型相互碰撞的实例,这些设备包括例如交换机324、LNA 326、328、PA 320和以可能生成设备间干扰、或可能潜在地导致一台或多台设备损坏的方式并发地操作的其他类型的设备。可能相互干扰的设备可以交换共存管理(CxM)消息,以准许每个设备发信号通知可能导致干扰或冲突的即将发生的动作。CxM消息可被用于管理包括交换机324、LNA 326、328、PA320和/或天线的共享组件的操作。
多点接口(诸如I3C、SPMI、RFFE等)可以减小用于在多个设备之间进行通信的物理输入/输出(I/O)引脚的数目。支持多点串行总线上的通信的协议定义了用于传送命令、控制和数据有效载荷的数据报结构。不同协议的数据报结构定义了某些共用特征,包括用于选择要接收或传送数据的设备的寻址、时钟生成和管理、中断处理、以及设备优先级。在本公开中,SPMI和RFFE协议的示例可被用于解说本文所公开的某些方面。然而,本文所公开的概念可用于其他串行总线协议和标准。SPMI与RFFE数据报结构之间存在一些相似性。
图4解说了采用根据SPMI协议来操作的一条或多条串行总线424、426的系统400的示例。SPMI协议可被用于实现通用通信链路。在各种示例中,SPMI协议可被用于提供功率管理控制总线,该功率管理控制总线可传达命令以使得电路和/或功能组件重置、休眠、关机、唤醒等。双导线串行总线424、426可被用于将一个或多个主设备402、404、406连接到多个从设备408、410。在一个实现中,一到四个主设备可耦合至串行总线,并且可支持至多达16个从设备。串行总线424、426包括承载时钟信号的第一导线(SCLK)和承载数据信号(SDATA)的第二导线。SPMI协议支持总线争用仲裁,请求仲裁和群寻址(以准许多个从设备408、410被主设备402、404、406同时或并发地写入。在一些实现中,SPMI支持以属于32kHz与15MHz之间的时钟频率操作的低速模式,以及以属于32kHz与26MHz之间的时钟频率操作的高速模式。可能需要SPMI设备来确收某些命令。
在所解说的示例中,系统400包括三个SoC 402、404、406和两个功率管理集成电路(PMIC 408、410)。其他类型的外围设备可被耦合到根据SPMI协议来操作的串行总线424、426。在所解说的系统400中,第一串行总线424将每个SoC 402、404、406上的总线主设备412、414、416与第一PMIC 408上的总线从设备418耦合,以及第二串行总线426将第二PMIC410中的总线从设备420耦合至一个SoC 402中所提供的附加总线主设备422。
虚拟通用输入/输出
移动通信设备以及与移动通信设备相关或相连接的其他设备日益增加地提供更强的能力、性能和功能性。在许多实例中,移动通信设备纳入了使用各种通信链路来连接的多个IC设备。图5解说了包括应用处理器502和多个外围设备504、506、508的装置500。在该示例中,每个外围设备504、506、508在可根据相互不同的协议来操作的相应的通信链路510、512、514上与应用处理器502通信。应用处理器502与每个外围设备504、506、508之间的通信可涉及附加导线,这些附加导线在应用处理器502与外围设备504、506、508之间携带控制或命令信号。这些附加导线可被称为边带通用输入/输出(边带GPIO 520、522、524),并且在一些实例中,边带GPIO 520、522、524所需的连接数目可超过用于通信链路510、512、514的连接数目。
GPIO提供了可针对特定应用来定制的通用引脚/连接。例如,GPIO引脚可以是可编程的以根据应用需要而用作输出引脚、输入引脚或双向引脚。在一个示例中,应用处理器502可指派和/或配置数个GPIO引脚以传导与外围设备504、506、508(诸如调制解调器)的握手信令或处理器间通信(IPC)。当使用握手信令时,边带信令可以是对称的,其中信令由应用处理器502和外围设备504、506、508传送和接收。随着设备复杂度增加,用于IPC通信的增加的GPIO引脚数目会显著地提高制造成本并且限制GPIO对其他系统级外围接口的可用性。
根据本公开的某些方面,GPIO(包括与通信链路相关联的GPIO)的状态可被捕捉、串行化、并在数据通信链路上传送。在一个示例中,所捕捉的GPIO可以在根据I2C、13C、SPMI、RFFE和/或另一协议来操作的串行总线上的分组中传送。在根据I3C协议来操作的串行总线的示例中,共用命令码可用于指示分组有效载荷和/或目的地。
图6解说了将串行总线610用来耦合各种设备(包括主机SoC 602和数个外围设备612)的装置600的示例。主机SoC 602可包括虚拟GPIO有限状态机(VGI FSM 606)和总线接口604,其中该总线接口604与外围设备612中的对应总线接口614协作,以提供主机SoC 602与外围设备612之间的通信链路。每个外围设备612包括VGI FSM 616。在一个示例中,SoC602与外围设备612之间的通信可根据I3C协议被串行化并在多导线串行总线610上传送。主机SoC 602可以包括一个或多个总线接口,这些接口包括I2C、I3C、SPMI、和/或RFFE总线接口。在一些示例中,主机SoC 602可包括可配置接口,其可被用于使用I2C、I3C、SPMI、RFFE和/或另一合适的协议来通信。在一些示例中,多导线串行总线610可在数据线618上在数据信号中传送数据,并且在时钟线620上在时钟信号中传送定时信息。
图7解说了根据本文所公开的某些方面的适配成支持虚拟GPIO(VGI或VGMI)的装置700。VGI电路和技术可以减少用于将应用处理器702与外围设备724连接的物理引脚和连接的数目。VGI实现将多个GPIO信号串行化为可以在通信链路722上传送的虚拟GPIO状态。在一个示例中,虚拟GPIO状态可被编码在通过包括多线总线(包括串行总线)的通信链路722传送的分组中。当通信链路722被提供为串行总线时,接收方外围设备724可以解串行化所接收到的分组并且可以提取消息和虚拟GPIO状态。外围设备724中的VGI FSM 726可以将所接收到的虚拟GPIO状态转换为可以在内部GPIO接口处呈现的物理GPIO信号。
在另一示例中,通信链路722可由射频收发机来提供,该射频收发机支持使用例如蓝牙协议、WLAN协议、蜂窝广域网、和/或另一RF通信协议的RF通信。当通信链路722包括RF连接时,消息和虚拟GPIO信号可被编码在能在通信链路722上传送的分组、帧、子帧、或其他结构中,并且接收方外围设备724可提取、解串行化并以其他方式处理所接收到的信令以获得消息和虚拟GPIO状态。在接收到消息和/或虚拟GPIO状态之际,接收方设备的VGI FSM726或另一组件可中断其主机处理器以指示接收到消息和/或物理GPIO信号的任何改变
在其中通信链路722作为串行总线来提供的示例中,消息和/或虚拟GPIO状态可在针对I2C、I3C、SPMI、RFFE或另一标准化串行接口所配置的分组中传送。在所解说的示例中,采用VGI技术来容适应用处理器702与外围设备724之间的I/O桥接。应用处理器702可被实现为ASIC、SoC或某种设备组合。应用处理器702包括生成与一个或多个通信信道706相关联的消息和GPIO的处理器(中央处理单元或CPU 704)。由通信信道706产生的GPIO信号、事件和/或其他消息可由VGI FSM 726中的相应监视电路712、714来监视。在一些示例中,GPIO监视电路712可被适配成产生表示物理GPIO信号的状态和/或物理GPIO信号的状态变化的虚拟GPIO状态。在一些示例中,提供其他电路以产生代表物理GPIO信号的状态和/或物理GPIO信号的状态变化的虚拟GPIO状态。
估计电路718可被配置成估计GPIO信号和消息的等待时间信息,并且可为通信链路722选择优化用于编码和传送GPIO信号和消息的等待时间的协议和/或通信模式。估计电路718可维护在选择协议和/或通信模式时要被考虑的表征通信链路722的某些方面的协议和模式信息716。估计电路718可被进一步配置成选择用于将GPIO信号和消息编码为虚拟GPIO状态并且进行传送的分组类型。估计电路718可提供由分组化器720用于将GPIO信号和消息编码为虚拟GPIO状态的配置信息。在一个示例中,该配置信息作为可被封装在分组中的命令来提供,以使得能在接收方处确定分组类型和/或有效载荷数据的类型(例如,VGI状态)。该配置信息还可被提供给物理层电路(PHY 708)。PHY 708可使用该配置信息来选择用于传送相关联分组的协议和/或通信模式。PHY 708随后可生成恰适的信令以传送该分组。
外围设备724可包括VGI FSM 726,其可被配置成处理从通信链路722接收到的数据分组。外围设备724处的VGI FSM 726可提取消息并且可将虚拟GPIO状态中的比特位置映射到外围设备724中的物理GPIO引脚上。在某些实施例中,通信链路722是双向的,并且应用处理器702和外围设备724两者可作为发射机和接收机两者来操作。
应用处理器702中的PHY 708和外围设备724中的对应PHY 728可被配置成建立和操作通信链路722。PHY 708和728可以被耦合到或包括支持RF通信的RF收发机108(见图1)。在一些示例中,PHY 708和728可以支持双导线接口,诸如基于I2C、I3C、RFFE、SPMI的接口或应用处理器702和外围设备724中的另一类型的接口。虚拟GPIO状态和消息可以被封装到在通信链路722上传送的分组中,该通信链路例如可以是多导线串行总线或多导线并行总线。
如本文所公开的VGI隧穿可使用配置成用于操作通信链路722的现有或可用协议且在没有整套物理GPIO引脚的情况下来实现。VGI FSM 710、726可以在应用处理器702和/或外围设备724中没有处理器干预的情况下处置GPIO信令。使用VGI可以减少与通信链路722相关联的引脚计数、功耗、以及等待时间。
在接收方设备处,虚拟GPIO状态可被转换成物理GPIO信号。可使用虚拟GPIO状态或消息来配置物理GPIO引脚的某些特性。例如,可使用虚拟GPIO状态或消息来配置物理GPIO引脚的转换速率、极性、驱动强度、以及其他相关参数和属性。用于配置物理GPIO引脚的配置参数可被存储在与相应GPIO引脚相关联的配置寄存器中。这些配置参数可使用专用或常规协议(诸如,I2C、I3C、SPMI或RFFE)来被寻址。在一个示例中,配置参数可被维护在可寻址寄存器中。本文所公开的某些方面涉及减少与传送配置参数和对应地址(例如,用于存储配置参数的寄存器的地址)相关联的等待时间。
VGI接口使得能够传送虚拟GPIO状态和其他消息,由此虚拟GPIO状态、消息、或这两者可在通信链路722上的串行数据流中发送。在一个示例中,串行数据流可在分组中和/或作为事务序列在根据I2C、I3C、SPMI或RFFE协议操作的串行总线上传送。虚拟GPIO数据在串行总线上传送的帧中的存在性可使用特殊命令码来发信令通知以将该帧标识为VGI帧。VGI帧可以作为广播帧或经寻址的帧来传送。在一些实现中,串行数据流可按照与通用异步接收机/发射机(UART)信令协议相似的形式以所谓VGI_UART的操作模式来传送。
针对多个设备或通信链路合并GPIO
图8解说了包括采用边带GPIO并且不可轻易被串行化并在单条串行链路中传送的一个或多个通信链路的系统800的示例。在某些示例中,对通过单个并行数据通信链路传送边带GPIO而言可能存在障碍。为便于描述,串行数据链路的示例可被采用,尽管本文描述的概念可被应用于并行数据通信链路。系统800可包括应用处理器802(其可以用作各种通信链路上的主机设备)、多个外围设备8041-804N,以及一个或多个功率管理集成电路(PMIC806、808)。在所解说的系统800中,至少第一外围设备8041可包括调制解调器。应用处理器802和第一外围设备8041可使用提供重置和其它信号的组合的GPIO、以及一个或多个总线接口(SPMI 818、820)来被耦合到相应的PMIC 806、808。SPMI 818、820作为由MIPI联盟所定义的针对包括PMIC 806、808的设备的实时控制来优化的串行接口来操作。SPMI 818、820可被配置为共享总线,其为设备提供高速、低等待时间的连接,其中数据传输可根据被指派到不同话务类的优先级来进行管理。
应用处理器802可使用多个通信链路812、814以及GPIO 816来被耦合到外围设备8041-804N中的每一个外围设备。例如,应用处理器802可使用高速总线812、低速总线814以及输入和/或输出GPIO 816来被耦合到第一外围设备8041。在一个示例中,高速总线812可以作为高级高性能总线(AHB)来操作。如本文所公开的,GPIO信号可被虚拟化并在某些串行接口(包括SPMI 818、820、以及I2C或I3C接口、和/或RFFE接口)上被传递。使用命令码可以促成GPIO信号的传递。
根据本文所公开的某些方面,可为多个通信链路和设备合并GPIO。图9解说了系统900的示例,该系统900虚拟化并合并与多个设备相关联的GPIO状态的通信和/或使用单端串行通信链路的通信链路。在所解说的示例中,根据SPMI协议操作的多点串行总线910可被用于携带多个设备(包括例如主机应用处理器902和多个外围设备9041-904N)的虚拟化GPIO状态信息。与每个高速串行链路918、920、922、924相关联的边带GPIO以及将主机应用处理器902耦合到一个或多个外围设备9041-904N的其它GPIO的状态信息可作为VGI通过串行总线910来传送。在一个示例中,主机应用处理器902可以包括SPMI主设备912,并且外围设备9041-904N中的每一者可以包括可排他地用于VGI的交换的SPMI从设备9041-904N。在另一示例中,除了VGI以外,串行总线910也可被用于传递与VGI无关的数据和命令。在一些示例中,高速串行链路918、920、922、924中的一者或多者作为一个AHB来操作。
系统900可包括可在各种通信链路(包括串行总线902)上用作主机设备的应用处理器910。一个或多个功率管理集成电路(PMIC 906、908)可被包括在系统900中。在所解说的系统900中,至少第一外围设备9041可包括调制解调器。
虚拟化GPIO可导致减少数量的输入/输出引脚,减少IC封装大小,并减少印刷电路板路由复杂度。串行总线910可根据SPMI协议来操作。在一些示例中,其他协议可被用于以高速且以低等待时间来传递VGI。在一个示例中,RFFE总线可被用于传达VGI。如本文所公开的,GPIO信号可被虚拟化并在串行总线910上传递。GPIO信号的传递可在无需修改串行总线910上所使用的协议的情况下被完成。在某些示例中,GPIO合并可使用状态机来实现以控制GPIO的虚拟化。在许多示例中,不需要通信协议的修改。例如,控制虚拟GPIO状态传输并不需要对协议定义的命令和/或通用命令代码的添加、修改和/或删除。
根据某些方面,多个GPIO端口可被虚拟化以使得通过串行总线910传送的GPIO状态信息可与多个GPIO端口的合并状态相关。在一个示例中,可支持针对每个端口的多个GPIO。状态机可被配置成自动标识何时应当传送GPIO状态信息,以及虚拟GPIO状态信息应当被寻址到哪个设备902、9041-904N、914N。在某些示例中,与一个输出GPIO相关的虚拟GPIO状态信息可被(例如)主机应用处理器902传送和/或路由,以修改两个或更多个外围设备9041-904N的输入GPIO。
在复杂的智能电话或平板设备系统中,主机应用处理器902可耦合到多个设备9041-904N、914N,并且可以使用串行总线910来发信号通知虚拟GPIO信息,并由此获得物理I/O引脚数目上的显著减小。串行总线910可以用于虚拟化常规串行总线(UART、I2C等)的附加目的。
定义虚拟GPIO环境的常规技术涉及非相干寄存器集定义,其包括显著的个体化描述符以及设备和消息参数关联。虚拟GPIO配置在各实现之间可能会显著地变化。物理GPIO引脚和信号的配置通常在各应用之间变化,并且用于传达虚拟GPIO信息的总线的选择可能限制寄存器和/或数据传输格式。在一个示例中,某些通信协议可能不提供设备和寄存器寻址,以在多点环境中充分支持虚拟GPIO。在另一示例中,某些通信协议可能不提供用于报告在虚拟GPIO信息的传输期间检测到的错误的机制。在另一示例中,某些通信协议可能缺少准许标识待传送数据量的排队能力。虚拟GPIO的使用可能使促成复杂的虚拟GPIO集的通信所需的各种寄存器级别的定义成为必要。在配置方面,这些常规技术本质上不是原子的,并且不容易被缩放。因此,常规实现导致状态机和软件体系结构复杂度的增加。
本文所公开的某些方面提供了可用于容适复杂的虚拟GPIO实现的经优化寄存器定义。某些方面可确保原子性,同时绑定所涉及的设备连同在多点串行总线中一个或多个设备之间传送的事件相关数据报所需的参数。多点串行总线可以例如根据SPMI或RFFE协议来操作。某些方面提供了用于处置包括例如AHB的高速串行链路918、920、922、924的优化技术,以使得可以对32比特的经AHB总线映射的寄存器比特进行转置、变换或以其他方式操纵以实现在提供可在8比特或16比特宽度中寻址的寄存器的另一总线标准的寄存器中的表示。
VGIO寄存器定义
根据某些方面,定义了某些寄存器比特配置,这些配置使VGI状态机能够自主操作,并有能力与不同宽度的寄存器对接。在一些示例中,状态机可以被适配成将32比特宽的AHB寄存器映射到8比特寄存器和/或16比特寄存器。可以根据某些架构的偏好或要求来实现其他映射。
图10解说了可被用于实现多用虚拟GPIO配置的事件寄存器1000的配置的一个示例。事件寄存器1000为32比特宽,并且可以实现为经AHB总线映射的寄存器。事件寄存器1000定义用于在各设备之间传达虚拟GPIO信息的参数。在一些示例中,事件寄存器1000可以在字节1002、1004、1006、1008(每个字节8比特宽)中被传达。
第一字节1002的比特定义可以包括:
D7:保留供将来或因应用而异的使用。
D6:虚拟GPIO状态。例如,当D6=1时,事件服务待决,而当D6=0时,则不要求或不需要事件服务。
D5:定义事件信息的方向,其中当事件用于传输(输出)时D5=1,并且当事件用于接收(输入)时D5=0。
D4:定义事件通信的安全性。例如,当要使用加密/解密来传送或接收事件信息时,D4=1。当D4=0时,指示不安全传输。许多基于主设备的执行环境(EE)可以访问总线,但是安全性实体控制哪些EE可以访问每个远程设备和/或该远程设备中的特定寄存器。
D3-D0:编码一目标设备地址。在该示例中,可以使用4比特唯一性从设备标识符(USID)或群从设备标识符(GSID)来寻址16个设备
在图10中所解说的事件寄存器1000中,第二字节1004可以包括目标设备中的8比特寄存器地址。寄存器地址可以标识要向其传送和/或读取事件码的因设备而异的寄存器。
第三字节1006的比特定义可以包括:
D7:错误比特,其在D=1时指示已检测到错误,而在D=0时指示未检测到错误。
D6-D5:(ROE)定义错误时重复(repeat on error)配置,其中ROE的零值指示在错误检测之后将不执行重复传输,并且非零值指示要尝试的重复传输次数。在一个示例中,ROE的值表示在检测到错误之后可以执行的传输尝试的次数(即,0-3)。
D4-D3:(RONE)定义无错误时重复(repeat on no error)配置,其中RONE的零值指示将不执行重复传输,并且非零值指示要执行的重复传输次数。在一个示例中,RONE的值表示要执行的传输尝试的次数(即,0-3)。
D2:(AM)定义用于寻址目标设备中的寄存器的寻址模式。在一个示例中,AM=1指示偏移寻址模式,其中寄存器地址被提供为与基地址的偏移,并且AM=0指示直接寻址模式,其中寄存器地址(字节2)是目标设备中的目标寄存器的所指派地址。
D1-D0:优先级值定义或量化事件信息的优先级。优先级值可被用于将多个事件进行排队以供传输到单个目标设备。
第四字节1008的比特定义可以包括:
D7:保留供将来或因应用而异的使用。
D6-D1:事件编号。在一个示例中,6比特事件编号可以指示0b000000到0b111111范围中的事件,达总共64个事件。
D0:事件值(0或1)。
图10中所解说的事件寄存器1000的配置使得有限状态机(FSM)能够独立于用于承载虚拟GPIO的通信链路、内部配置、以及物理GPIO的设备的能力进行操作。
在一些实现中,可以使用事件寄存器1000的其他配置。不同的寄存器配置可包括不同格式的类似信息。该信息可能包括:
I/P和O/P事件状态:待传送事件、或已接收且待服务事件。
事件的传输方向(输入或输出)。
安全或非安全传输选项。
目标设备的地址(GSID的USID)。
目标设备中的寄存器地址,应当使用非偏移寻址模式来发送事件码。
错误状态(错误比特)。
发生错误时的每事件传输重复选项。
每事件传输重复选项,其用于在没有错误发生时增强稳健性。
寻址模式,其用于出于寻址灵活性而在相对于基地址的偏移寻址或直接寄存器寻址之间进行选择。
设备事件编号(例如,容适至多达64个事件的编号)。
事件二进制值(一个或多个比特)。
某些比特位置可能保留以供将来扩展、和/或用于因应用而异的信息。
图11解说了采用基于FSM的虚拟GPIO管理系统1102的系统1100的示例,该虚拟GPIO管理系统1102使得FSM 1114能够使用诸如图10的事件寄存器1000之类的事件寄存器来自主操作。系统1100可以包括一个或多个执行环境1104、1106、1108,其中执行环境可以向处理电路和/或处理器提供IC内所提供的相关联存储器和外围设备。在一个示例中,SoC中可以包括两个或更多个执行环境1104、1106、1108。在该示例中,执行环境1104、1106、1108和基于FSM的虚拟GPIO管理系统1102被耦合到32比特AHB总线1110。VGIO事件信息被记录在32比特事件寄存器1112中,其可如图10中所解说地被格式化。FSM操作在32比特事件寄存器1112上并且通过设备寄存器1116来传达虚拟GPIO信息。在所解说的示例中,设备寄存器1116是符合SPMI协议或与其兼容的8比特寄存器。SPMI处理核1118在串行总线1122上通过物理层电路(PHY 1120)进行通信,该串行总线1122根据SPMI协议来操作。FSM 1114可以将一系列的值写入设备寄存器1116,这些值可以由SPMI处理核1118中继到耦合至串行总线1122的设备。
在一个示例中,32比特事件寄存器1112可被配置成用于传送事件操作,如下:
设置DIR{字节-3.D5}=1//方向为O/P
设置SECU{字节-3.D4}1或0//SECU=1(若期望安全操作),否则SECU=0(非安全操作)
设置USID/GSID{字节-3.[D3..D0]}=1//(诸)目标设备的USID或GSID值
设置字节-2:Target_Device_Register_Address(目标_设备_寄存器_地址)
//值=当使用寄存器模式Tx时用于事件码的寄存器地址
设置ROE{字节-1.[D6..D5]}//设置错误时的传送重复计数
设置RONE{字节-1.[D4..D3]}//设置无错误时的传送重复计数
设置AM{字节-1.[D2]}//设置寻址模式
设置PRIORITY{字节-1.[D1..D0]}//设置事件优先级。11=>最高优先级,00=>最低优先级
设置DEVICE_EVENT_NUM{Byte-0.[D6..D1]}(DEVICE_EVENT_NUM(设备_事件_编号))//设置Event_Number(事件_编号)
设置VAL{字节-0.[D0]}//按所期望的Event_Value(事件_值)1或0
图12是解说在事件传输操作期间对32比特事件寄存器1112进行处理的流程图1200。当状态比特(STAT)被置位时,事件传输操作可以在框1202开始,从而指示状态服务是待决的。在框1204,可以评估待决事件的优先级,以确定何时可以开始传输。例如,可以首先传送与较高优先级事件相关的信息,并且较低优先级事件可以保持不被处理直至完成与该较高优先级事件相关的传输。
在框1206,确定与事件相关联的寻址模式。在框1208,在一个模式中配置直接寄存器寻址。在框1210,在第二模式中配置偏移寻址。在框1212,配置与事件相关联的安全性设置。对于一种设置,在框1214,事件相关信息通过安全传输来传送。安全传输可以包括对事件信息的加密。对于另一设置,事件相关信息在框1216,以标准、正常、未加密和/或以其他方式的不安全传输来传送。
在框1218,检查RONE设置以确定是否指示了重传。可以执行事件相关信息的重传以增强虚拟GPIO实现的完整性。在框1220,检查ERR比特以确定是否发生通信错误。例如,可以响应于接收到NACK来设置ERR比特。在另一示例中,当没有接收到ACK时,可以将ERR比特设为1。如果指示了错误,则根据RONE参数在框1222可能发生重传。如果没有指示错误,则可以在框1224清除STAT比特,并且可以终止该过程。
在一些示例中,可以将32比特事件寄存器1112配置成用于接收事件操作,如下:
设置DIR{字节-3.D5}=0//方向为I/P
设置SECU{字节-3.D4}1或0//SECU=1(若期望安全操作),否则SECU=0(非安全操作)
设置USID/GSID{字节-3.[D3..D0]}=1//(诸)目标设备的USID或GSID值
设置字节-2:Target_Device_Register_Address//值=当使用寄存器模式Rx时用于事件码的寄存器地址
设置ROE{字节-1.[D6..D5]}//设置错误时传送重复计数
设置RONE{字节-1.[D4..D3]}//设置无错误时传送重复计数
设置AM{字节-1.[D2]}//设置寻址模式
设置PRIORITY{字节-1.[D1..D0]}//设置事件优先级。11=>最高优先级,00=>最低优先级
设置DEVICE_EVENT_NUM{Byte-0.[D6..D1]}//设置Event_Number
在该示例中,USID/GSID{字节-3.[D3..D0]}、ROE{字节-1.[D6..D5]}、PRIORITY{字节-1.[D1.D0]}、以及VAL{字节-0.[D0]}被忽略。
图13是解说在事件接收操作期间对32比特事件寄存器1112进行处理的流程图1300。当状态比特(STAT)被置位时,事件接收操作可以在框1302开始,从而指示状态服务是待决的。在框1304,可以根据所配置的寻址模式来接收与待决事件相关联的信息。
在框1306,确定与事件相关联的安全性设置。对于一种设置,当安全传输被用来传送事件相关信息时,在框1308对该事件相关信息进行解码。在框1308,可以解密事件信息。对于另一设置,在框1310,事件相关信息以标准、正常、未加密和/或以其他方式的不安全传输来传送,并且事件信息可以正常地接收。
在框1312,可以确定是否发生通信错误。通信错误可以通过使用奇偶校验、循环冗余校验、多次重复传输之后接收到的信息之间的差异等来检测。如果发生错误,则在框1314,可以传送NACK。如果没有发生错误,则在框1316,可以根据RONE参数来接收事件信息的附加传输。
图14-16提供了消息缓冲器1400、1500、1600的示例,这些消息缓冲器包括配置空间1402、1502、1602和有效载荷空间1404、1504、1604。在所解说的示例中,每个配置空间1402、1502、1602包括:标识对应的有效载荷空间1404、1504、1604中的有效字节数的字节-大小字段,以及用于读取或写入数据的开始或恢复位置。在一些示例中,配置空间1402、1502、1602携带事件编号和/或发信号通知流控制请求的信息。在一些示例中,配置空间1402、1502、1602包括指定虚拟串行端口类型和/或虚拟端口编号的字段。
主设备起源消息的消息流可如下进行:
主设备首先将有效载荷字节计数信息发送到相关联的接收缓冲器。
主设备随后继续发送有效载荷字节。
在每个数据报的结尾,主设备读取流控制比特以查看接收机是否旨在断言流控制。
如果检测到流控制,则主设备保持传送操作并释放总线。
主设备将不会恢复传送操作直至接收机再次发送事件触发器来恢复传送操作。
从设备起源消息的消息流可如下进行:
从设备在赢得仲裁之后将向主设备或相关联从设备传送触发。
从设备必须重新赢得仲裁才能发送所有有效载荷字节。
根据定义用于总线主设备的流控制逻辑来处置流控制。
处理电路和方法的示例
图17是解说采用处理电路1702的装置1700的硬件实现的示例的示图。处理电路1702可以包括或配置有限状态机710的操作(参见图7)。在一些示例中,装置1700可以执行本文所公开的一个或多个功能。根据本公开的各种方面,可使用处理电路1702来实现本文所公开的元素、或元素的任何部分、或者元素的任何组合。处理电路1702可包括一个或多个处理器1704,其由硬件和软件模块的某种组合来控制。处理器1704的示例包括微处理器、微控制器、数字信号处理器(DSP)、SoC、ASIC、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、状态机、定序器、门控逻辑、分立的硬件电路、以及配置成执行本公开通篇描述的各种功能性的其他合适硬件。一个或多个处理器1704可包括执行特定功能并且可由诸软件模块1716之一来配置、增强或控制的专用处理器。一个或多个处理器1704可通过在初始化期间加载的软件模块1716的组合来配置,并且通过在操作期间加载或卸载一个或多个软件模块1716来进一步配置。
在所解说的示例中,处理电路1702可以用由总线1710一般化地表示的总线架构来实现。取决于处理电路1710的具体应用和总体设计约束,总线1702可包括任何数目的互连总线和桥接器。总线1710将包括一个或多个处理器1704和存储1706的各种电路链接在一起。存储1706可包括存储器设备和大容量存储设备,并且在本文中可被称为计算机可读介质和/或处理器可读介质。
在一些示例中,存储器1706包括用于传达虚拟GPIO信息的寄存器。一组寄存器可以被配置成维护与物理GPIO以及向其传送虚拟GPIO信息的一个或多个设备相对应的地址、管理和有效载荷信息。另一组寄存器可以按与向其传送虚拟GPIO信息的一个或多个设备相对应的格式来维护信息。
总线1710还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。总线接口1708可提供总线1710与一个或多个收发机1712a、1712b之间的接口。可针对处理电路所支持的每种联网技术提供收发机1712a、1712b。在一些实例中,多种联网技术可共享收发机1712a、1712b中出现的电路系统或处理模块中的一些或全部。每个收发机1712a、1712b提供用于通过传输介质与各种其它装置通信的手段。在一个示例中,收发机1712a可被用于将装置1700耦合至多线总线。在另一示例中,收发机1712b可被用于将装置1700连接至无线电接入网。取决于装置1700的本质,也可提供用户接口1718(例如,按键板、显示器、扬声器、话筒、操纵杆),并且该用户接口1718可直接或通过总线接口1708通信地耦合到总线1710。
处理器1704可负责管理总线1710以及负责一般处理,该一般处理可包括对存储在计算机可读介质(其可包括存储1706)中的软件的执行。在这一方面,处理电路1702(包括处理器1704)可被用来实现本文公开的方法、功能和技术中的任一种。存储1706可被用于存储处理器1704在执行软件时操纵的数据,并且该软件可被配置成实现本文公开的方法中的任一种。
处理电路1702中的一个或多个处理器1704可以执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数、算法等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可按计算机可读形式驻留在存储1706中或驻留在外部计算机可读介质中。外部计算机可读介质和/或存储1706可包括非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存设备(例如,“闪存驱动器”、卡、棒、或钥匙驱动器)、RAM、ROM、可编程只读存储器(PROM)、可擦式PROM(EPROM)(包括EEPROM)、寄存器、可移动盘、以及用于存储可由计算机访问和读取的软件和/或指令的任何其他合适介质。作为示例,计算机可读介质和/或存储1706还可包括载波、传输线、以及可由计算机访问和读取的用于传送软件和/或指令的任何其他合适介质。计算机可读介质和/或存储1706可驻留在处理电路1702中、在处理器1704中、在处理电路1702外部、或跨包括该处理电路1702在内的多个实体分布。计算机可读介质和/或存储1706可实施在计算机程序产品中。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统的总体设计约束来最佳地实现本公开通篇给出的所描述的功能性。
存储1706可以维护以可加载代码段、模块、应用、程序等来维护和/或组织的软件,其在本文中可被称为软件模块1716。每个软件模块1716可包括在安装或加载到处理电路1702上并由一个或多个处理器1704执行时对运行时映像1714作出贡献的指令和数据,该运行时映像1714控制一个或多个处理器1704的操作。在被执行时,某些指令可使得处理电路1702执行根据本文中所描述的某些方法、算法和过程的功能。
一些软件模块1716可在处理电路1702的初始化期间被加载,并且这些软件模块1716可配置处理电路1702以使得能够执行本文公开的各种功能。例如,一些软件模块1716可配置处理器1704的内部设备和/或逻辑电路1722,并且可管理对外部设备(诸如收发机1712a、1712b、总线接口1708、用户接口1718、定时器、数学协处理器等)的访问。软件模块1716可包括控制程序和/或操作系统,其与中断处理程序和设备驱动器交互并且控制对由处理电路1702提供的各种资源的访问。这些资源可包括存储器、处理时间、对收发机1712a、1712b的访问、用户接口1718等。
处理电路1704的一个或多个处理器1702可以是多功能的,由此一些软件模块1716被加载和配置成执行不同功能或相同功能的不同实例。一个或多个处理器1704可以被附加地适配成管理响应于来自例如用户接口1718、收发机1712a、1712b和设备驱动器的输入而发起的后台任务。为了支持多个功能的执行,该一个或多个处理器1704可被配置成提供多任务环境,由此多个功能中的每个功能按需或按期望实现为由一个或多个处理器1704服务的任务集。在一个示例中,多任务环境可使用分时程序1720来实现,该分时程序1720在不同任务之间传递对处理器1704的控制,由此每个任务在完成任何未完结操作之际和/或响应于输入(诸如中断)而将对一个或多个处理器1704的控制返回给分时程序1420。当任务具有对一个或多个处理器1704的控制时,处理电路有效地专用于由与控制方任务相关联的功能所针对的目的。分时程序1720可包括操作系统、在循环基础上转移控制权的主循环、根据各功能的优先级化来分配对一个或多个处理器1704的控制权的功能、和/或通过将对一个或多个处理器1704的控制权提供给处置功能来对外部事件作出响应的中断驱动式主循环。
图18是可在耦合到串行总线的设备处执行的方法的流程图1800。该方法的各部分可由传送方设备中的有限状态机来执行。
在框1802,有限状态机可以确定与物理GPIO引脚或信号相对应的GPIO状态信息在事件寄存器中可用。事件寄存器可以具有第一比特宽度。事件寄存器可包括标识与事件寄存器相关联的一个或多个设备的信息。
在框1804,有限状态机可以在串行总线上与一个或多个设备交换GPIO状态信息。GPIO状态信息可以根据事件寄存器中所存储的配置信息在串行总线上进行传送。配置信息可以包括标识一个或多个设备的地址。配置信息可以包括标识一个或多个设备中的目标寄存器的寻址信息。配置信息可以包括标识用于传送GPIO状态信息的通信模式的信息。
在某些示例中,有限状态机可以将GPIO状态信息存储在第一设备寄存器中,并且在串行总线上传送第一设备寄存器。有限状态机可以将标识一个或多个设备的地址存储在第二设备寄存器中,并且在串行总线上将第二设备寄存器与第一设备寄存器一起传送。有限状态机可以将标识目标寄存器的地址存储在第三设备寄存器中,并且在串行总线上将第三设备寄存器与第一设备寄存器一起传送。第一设备寄存器可以具有与第一比特宽度不同的第二比特宽度。
在一个示例中,通信模式定义GPIO状态信息在被传送时是否对其进行加密。在另一示例中,通信模式定义当消息在串行总线上传送时是否对这些消息进行加密。在另一示例中,通信模式定义在第一传输中检测到错误之后是否重传GPIO状态信息。在另一示例中,通信模式定义是否在多次传输中传送GPIO状态信息。在另一示例中,通信模式定义标识一个或多个设备中的目标寄存器的寻址信息的格式。在另一示例中,通信模式标识GPIO状态信息的优先级。
在一个示例中,有限状态机可以通过根据SPMI协议来传送或接收数据分组来交换GPIO状态信息。在另一示例中,有限状态机可以通过根据RFFE协议传送或接收数据分组来交换GPIO状态信息。
图19是解说采用处理电路1902的装置1900的硬件实现的简化示例的示图。该装置可实现根据本文所公开的某些方面的桥接电路。处理电路通常具有控制器或处理器1916,其可包括一个或多个微处理器、微控制器、数字信号处理器、定序器和/或状态机。处理电路1902可以用由总线1920一般化地表示的总线架构来实现。取决于处理电路1920的具体应用和总体设计约束,总线1902可包括任何数目的互连总线和桥接器。总线1920将包括一个或多个处理器和/或硬件模块(由控制器或处理器1916、模块或电路1904、1906和1908以及处理器可读存储介质1918表示)的各种电路链接在一起。可提供一个或多个物理层电路和/或模块1914以支持在使用多线总线1912实现的通信链路上、通过天线1922(例如至无线电接入网)等的通信。总线1920还可链接各种其他电路,诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。
处理器1916负责一般性处理,包括执行存储在处理器可读存储介质1918上的软件、代码和/或指令。该处理器可读存储介质可包括非瞬态存储介质。该软件在由处理器1916执行时使得处理电路1902执行上文针对任何特定装置描述的各种功能。处理器可读存储介质还可被用于存储由处理器1916在执行软件时操纵的数据。处理电路1902进一步包括模块1904、1906和1908中的至少一者。模块1904、1906和1908可以是在处理器1916中运行的软件模块、驻留/存储在处理器可读存储介质1918中的软件模块、耦合至处理器1916的一个或多个硬件模块、或其某种组合。模块1904、1906和1908可包括微控制器指令、状态机配置参数、或其某种组合。
在一个配置中,装置1900包括配置成解码维护在GPIO事件寄存器中的信息的模块和/或电路1908、配置成转换维护在GPIO事件寄存器中的信息以填充一个或多个设备寄存器的模块和/或电路1906,配置成传送包括GPIO字的分组的模块和/或电路1904。
提供先前描述是为了使本领域任何技术人员均能够实践本文中所描述的各种方面。对这些方面的各种修改将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示“有且仅有一个”,而是“一个或多个”。除非特别另外声明,否则术语“某个”指的是一个或多个。本公开通篇描述的各个方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。没有任何权利要求元素应被解释为装置加功能,除非该元素是使用短语“用于.…..的装置”来明确叙述的。
Claims (30)
1.一种在耦合至串行总线的设备处执行的方法,包括:
确定与物理通用输入/输出(GPIO)引脚或信号相对应的GPIO状态信息在事件寄存器中可用,其中所述事件寄存器具有第一比特宽度并且包括标识与所述事件寄存器相关联的一个或多个设备的信息;以及
在所述串行总线上与所述一个或多个设备交换所述GPIO状态信息,其中所述GPIO状态信息是根据所述事件寄存器中所存储的配置信息来在所述串行总线上传送的,
其中所述配置信息包括:标识所述一个或多个设备的地址、标识所述一个或多个设备中的目标寄存器的寻址信息、以及标识用于传送所述GPIO状态信息的通信模式的信息。
2.如权利要求1所述的方法,其特征在于,进一步包括:
将所述GPIO状态信息存储在第一设备寄存器中;以及
在所述串行总线上传送所述第一个设备寄存器的内容。
3.如权利要求2所述的方法,其特征在于,进一步包括:
将标识所述一个或多个设备的所述地址存储在第二设备寄存器中;以及
在所述串行总线上将所述第二设备寄存器的内容与所述第一设备寄存器的内容一起传送。
4.如权利要求2所述的方法,其特征在于,进一步包括:
将标识所述目标寄存器的地址存储在第三设备寄存器中;以及
在所述串行总线上将所述第三设备寄存器的内容与所述第一设备寄存器的内容一起传送。
5.如权利要求2所述的方法,其特征在于,所述第一设备寄存器具有与所述第一比特宽度不同的第二比特宽度。
6.如权利要求1所述的方法,其特征在于,所述通信模式定义所述GPIO状态信息在被传送时是否对所述GPIO状态信息进行加密。
7.如权利要求1所述的方法,其特征在于,所述通信模式定义当消息在所述串行总线上传送时是否对这些消息进行加密。
8.如权利要求1所述的方法,其特征在于,所述通信模式定义在第一传输中检测到错误之后是否重传所述GPIO状态信息。
9.如权利要求1所述的方法,其特征在于,所述通信模式定义所述GPIO状态信息是否在多次传输中被传送。
10.如权利要求1所述的方法,其特征在于,所述通信模式定义标识所述一个或多个设备中的所述目标寄存器的所述寻址信息的格式。
11.如权利要求1所述的方法,其特征在于,所述通信模式标识所述GPIO状态信息的优先级。
12.如权利要求1所述的方法,其特征在于,交换所述GPIO状态信息包括:
根据系统功率管理接口(SPMI)协议来传送或接收数据分组。
13.如权利要求1所述的方法,其特征在于,交换所述GPIO状态信息包括:
根据射频前端(RFFE)协议来传送或接收数据分组。
14.一种装置,包括:
一组事件寄存器,每个事件寄存器存储与物理通用输入/输出(GPIO)引脚或信号相对应的GPIO状态信息以及与所述GPIO状态信息相对应的配置信息;
总线接口,其配置成在串行总线上传达虚拟GPIO信息;以及
耦合到所述事件寄存器集和所述总线接口的有限状态机,并且所述有限状态机被配置成:
确定与物理GPIO引脚或信号相对应的所述GPIO状态信息在第一事件寄存器中已经改变,其中所述第一事件寄存器具有第一比特宽度并且包括标识与所述第一事件寄存器相关联的一个或多个设备的信息;以及
在所述串行总线上与所述一个或多个设备交换所述GPIO状态信息,其中所述GPIO状态信息是根据所述第一事件寄存器中所存储的所述配置信息来在所述串行总线上传送的,
其中所述配置信息包括:标识所述一个或多个设备的地址、标识所述一个或多个设备中的目标寄存器的寻址信息、以及标识用于传送所述GPIO状态信息的通信模式的信息。
15.如权利要求14所述的装置,其特征在于,进一步包括:
与所述目标寄存器相对应的第一设备寄存器,
其中所述有限状态机被配置成:
将所述GPIO状态信息存储在所述第一设备寄存器中;以及
在所述串行总线上传送所述第一个设备寄存器的内容。
16.如权利要求15所述的装置,其特征在于,所述有限状态机被进一步配置成:
将标识所述一个或多个设备的所述地址存储在第二设备寄存器中;以及
在所述串行总线上将所述第二设备寄存器的内容与所述第一设备寄存器的内容一起传送。
17.如权利要求15所述的装置,其特征在于,所述有限状态机被进一步配置成:
将标识所述目标寄存器的地址存储在第三设备寄存器中;以及
在所述串行总线上将所述第三设备寄存器的内容与所述第一设备寄存器的内容一起传送。
18.如权利要求15所述的装置,其特征在于,所述第一设备寄存器具有与所述第一比特宽度不同的第二比特宽度。
19.如权利要求14所述的装置,其特征在于,所述有限状态机被进一步配置成通过以下操作来交换所述GPIO状态信息:
根据系统功率管理接口(SPMI)协议来传送或接收数据分组。
20.如权利要求14所述的装置,其特征在于,所述有限状态机被进一步配置成通过以下操作来交换所述GPIO状态信息:
根据射频前端(RFFE)协议来传送或接收数据分组。
21.一种装备,包括:
用于确定与物理通用输入/输出(GPIO)引脚或信号相对应的GPIO状态信息在事件寄存器中可用的装置,其中所述事件寄存器具有第一比特宽度并且包括标识与所述事件寄存器相关联的一个或多个设备的信息;以及
用于在串行总线上与所述一个或多个设备交换所述GPIO状态信息的装置,其中所述GPIO状态信息是根据所述事件寄存器中所存储的配置信息来在所述串行总线上传送的,
其中所述配置信息包括:标识所述一个或多个设备的地址、标识所述一个或多个设备中的目标寄存器的寻址信息、以及标识用于传送所述GPIO状态信息的通信模式的信息。
22.如权利要求21所述的装备,其特征在于,所述GPIO状态信息被存储在第一设备寄存器中,并且所述用于交换所述GPIO状态信息的装置在所述串行总线上传送所述第一设备寄存器的内容。
23.如权利要求22所述的装备,其特征在于,标识所述一个或多个设备的所述地址被存储在第二设备寄存器中,并且所述用于交换所述GPIO状态信息的装置在所述串行总线上将所述第二设备寄存器的内容与所述第一设备寄存器的内容一起传送。
24.如权利要求22所述的装备,其特征在于,标识所述目标寄存器的地址被存储在第三设备寄存器中,并且所述用于交换所述GPIO状态信息的装置在所述串行总线上将所述第三设备寄存器的内容与所述第一设备寄存器的内容一起传送。
25.如权利要求22所述的装备,其特征在于,所述第一设备寄存器具有与所述第一比特宽度不同的第二比特宽度。
26.一种具有存储在其上的指令的处理器可读存储介质,所述指令在由处理电路的至少一个处理器或状态机执行时使得所述处理电路:
确定与物理通用输入/输出(GPIO)引脚或信号相对应的GPIO状态信息在事件寄存器中可用,其中所述事件寄存器具有第一比特宽度并且包括标识与所述事件寄存器相关联的一个或多个设备的信息;以及
在串行总线上与所述一个或多个设备交换所述GPIO状态信息,其中所述GPIO状态信息是根据所述事件寄存器中所存储的配置信息来在所述串行总线上传送的,
其中所述配置信息包括:标识所述一个或多个设备的地址、标识所述一个或多个设备中的目标寄存器的寻址信息、以及标识用于传送所述GPIO状态信息的通信模式的信息。
27.如权利要求26所述的存储介质,其特征在于,所述指令进一步使得所述处理电路:
将所述GPIO状态信息存储在第一设备寄存器中;以及
在所述串行总线上传送所述第一个设备寄存器的内容。
28.如权利要求27所述的存储介质,其特征在于,所述指令进一步使得所述处理电路:
将标识所述一个或多个设备的所述地址存储在第二设备寄存器中;以及
在所述串行总线上将所述第二设备寄存器的内容与所述第一设备寄存器的内容一起传送。
29.如权利要求27所述的存储介质,其特征在于,所述指令进一步使得所述处理电路:
将标识所述目标寄存器的地址存储在第三设备寄存器中;以及
在所述串行总线上将所述第三设备寄存器的内容与所述第一设备寄存器的内容一起传送。
30.如权利要求27所述的存储介质,其特征在于,所述第一设备寄存器具有与所述第一比特宽度不同的第二比特宽度。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762545422P | 2017-08-14 | 2017-08-14 | |
US62/545,422 | 2017-08-14 | ||
US16/058,599 | 2018-08-08 | ||
US16/058,599 US20190050366A1 (en) | 2017-08-14 | 2018-08-08 | Device, event and message parameter association in a multi-drop bus |
PCT/US2018/045979 WO2019036274A1 (en) | 2017-08-14 | 2018-08-09 | ASSOCIATION OF DEVICE, EVENT AND MESSAGE PARAMETERS IN A MULTIPOINT BUS |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111033486A true CN111033486A (zh) | 2020-04-17 |
Family
ID=65275099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880052331.6A Pending CN111033486A (zh) | 2017-08-14 | 2018-08-09 | 多点总线中的设备、事件和消息参数关联 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190050366A1 (zh) |
CN (1) | CN111033486A (zh) |
TW (1) | TW201923605A (zh) |
WO (1) | WO2019036274A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860635A (zh) * | 2022-07-07 | 2022-08-05 | 北京智芯半导体科技有限公司 | 通用输入输出接口控制方法、装置、存储介质、电路板 |
CN116719699A (zh) * | 2023-08-08 | 2023-09-08 | 荣耀终端有限公司 | 总线监听及控制方法、电子设备、芯片及存储介质 |
CN117130959A (zh) * | 2023-02-22 | 2023-11-28 | 荣耀终端有限公司 | 总线控制方法、电子设备及计算机存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467154B2 (en) * | 2017-02-10 | 2019-11-05 | Qualcomm Incorporated | Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus |
US10515044B2 (en) * | 2017-11-01 | 2019-12-24 | Qualcomm Incorporated | Communicating heterogeneous virtual general-purpose input/output messages over an I3C bus |
US11880314B1 (en) * | 2018-07-27 | 2024-01-23 | Dialog Semiconductor B.V. | Microcontroller for driving an external device |
US11385982B2 (en) * | 2019-05-02 | 2022-07-12 | Apple Inc. | General purpose input/output with hysteresis |
US10795845B1 (en) * | 2019-08-23 | 2020-10-06 | Texas Instruments Incorporated | Method and system for auto-addressing nodes on a communication bus |
US11106612B2 (en) * | 2019-09-20 | 2021-08-31 | Apple Inc. | Coordinating operations of multiple communication chips via local hub device |
US11360916B2 (en) * | 2020-08-27 | 2022-06-14 | Qualcomm Incorporated | Group slave identifier time-multiplexed acknowledgment for system power management interface |
CA3193105A1 (en) * | 2020-09-17 | 2022-03-24 | Pengxin BAO | Inter integrated circuit-based communication method and apparatus |
US11513991B2 (en) * | 2020-10-01 | 2022-11-29 | Qualcomm Incorporated | Batch operation across an interface |
CN113485135B (zh) * | 2021-06-28 | 2023-10-24 | 青岛海尔科技有限公司 | 事件处理方法及装置、存储介质、电子装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989244A (zh) * | 2009-08-05 | 2011-03-23 | 华为技术有限公司 | 一种信号转换装置、方法及通信设备 |
US20170168966A1 (en) * | 2015-12-10 | 2017-06-15 | Qualcomm Incorporated | Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006235994A (ja) * | 2005-02-24 | 2006-09-07 | Nec Electronics Corp | ブリッジシステム、ブリッジシステム制御方法、情報処理機器、周辺機器及びプログラム |
KR101260066B1 (ko) * | 2006-02-17 | 2013-04-30 | 삼성전자주식회사 | 직렬 및 병렬 인터페이스들을 포함하는 컴퓨터 시스템 |
US20120331194A1 (en) * | 2011-06-23 | 2012-12-27 | Apple Inc. | Interface extender for portable electronic devices |
JP5856306B2 (ja) * | 2011-10-05 | 2016-02-09 | アナログ・デバイシズ・インコーポレーテッド | 高速データおよび配電のための2線式通信システム |
US9880965B2 (en) * | 2014-09-11 | 2018-01-30 | Qualcomm Incorporated | Variable frame length virtual GPIO with a modified UART interface |
US9563398B2 (en) * | 2015-03-06 | 2017-02-07 | Qualcomm Incorporated | Impedance-based flow control for a two-wire interface system with variable frame length |
US10146727B2 (en) * | 2015-04-14 | 2018-12-04 | Qualcomm Incorporated | Enhanced virtual GPIO with multi-mode modulation |
US10241953B2 (en) * | 2015-08-07 | 2019-03-26 | Qualcomm Incorporated | Dynamic data-link selection over common physical interface |
US10140242B2 (en) * | 2015-09-10 | 2018-11-27 | Qualcomm Incorporated | General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network |
-
2018
- 2018-08-08 US US16/058,599 patent/US20190050366A1/en not_active Abandoned
- 2018-08-09 WO PCT/US2018/045979 patent/WO2019036274A1/en active Application Filing
- 2018-08-09 CN CN201880052331.6A patent/CN111033486A/zh active Pending
- 2018-08-09 TW TW107127859A patent/TW201923605A/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989244A (zh) * | 2009-08-05 | 2011-03-23 | 华为技术有限公司 | 一种信号转换装置、方法及通信设备 |
US20170168966A1 (en) * | 2015-12-10 | 2017-06-15 | Qualcomm Incorporated | Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860635A (zh) * | 2022-07-07 | 2022-08-05 | 北京智芯半导体科技有限公司 | 通用输入输出接口控制方法、装置、存储介质、电路板 |
CN117130959A (zh) * | 2023-02-22 | 2023-11-28 | 荣耀终端有限公司 | 总线控制方法、电子设备及计算机存储介质 |
CN116719699A (zh) * | 2023-08-08 | 2023-09-08 | 荣耀终端有限公司 | 总线监听及控制方法、电子设备、芯片及存储介质 |
CN116719699B (zh) * | 2023-08-08 | 2024-04-16 | 荣耀终端有限公司 | 总线监听及控制方法、电子设备、芯片及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190050366A1 (en) | 2019-02-14 |
TW201923605A (zh) | 2019-06-16 |
WO2019036274A1 (en) | 2019-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111033486A (zh) | 多点总线中的设备、事件和消息参数关联 | |
US20170168966A1 (en) | Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces | |
US10642778B2 (en) | Slave master-write/read datagram payload extension | |
US10467154B2 (en) | Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus | |
US20180357199A1 (en) | Slave-to-slave communication in i3c bus topology | |
WO2018208915A1 (en) | Hardware event priority sensitive programmable transmit wait-window for virtual gpio finite state machine | |
US20180329837A1 (en) | Input/output direction decoding in mixed vgpio state exchange | |
US10572410B2 (en) | Function-specific communication on a multi-drop bus for coexistence management | |
US20190227971A1 (en) | Architecture for consolidating multiple sources of low-bandwidth data over a serial bus | |
WO2019089162A1 (en) | Heterogeneous virtual general-purpose input/output | |
US10579549B2 (en) | Staggered transmissions on a multi-drop half-duplex bus | |
US10496562B1 (en) | Low latency virtual general purpose input/output over I3C | |
WO2019112754A1 (en) | Bit-interleaved bi-directional transmissions on a multi-drop bus for time-critical data exchange | |
US10733121B2 (en) | Latency optimized I3C virtual GPIO with configurable operating mode and device skip | |
US20190171588A1 (en) | Multi-point virtual general-purpose input/output (mp-vgi) for low latency event messaging | |
US10592441B2 (en) | Bus communication enhancement based on identification capture during bus arbitration | |
US11520729B2 (en) | I2C bus architecture using shared clock and dedicated data lines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200417 |