CN116075815A - 跨接口的批操作 - Google Patents
跨接口的批操作 Download PDFInfo
- Publication number
- CN116075815A CN116075815A CN202180063079.0A CN202180063079A CN116075815A CN 116075815 A CN116075815 A CN 116075815A CN 202180063079 A CN202180063079 A CN 202180063079A CN 116075815 A CN116075815 A CN 116075815A
- Authority
- CN
- China
- Prior art keywords
- gpio
- messages
- sequence
- batch
- control
- 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
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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network interface controller
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)
Abstract
用于通过串行通信链路通信虚拟化通用输入/输出(GPIO)信号和控制消息的系统、方法和装置。一种装置包括串行总线和控制器,该控制器被配置为:表示批中的物理通用输入/输出(GPIO)的一系列信令状态,该批包括虚拟GPIO消息和控制消息的序列;生成包括定时信息的第一报头,该定时信息被配置为控制批的执行的定时;通过通信链路传输第一报头;以及通过该通信链路传输所述批。
Description
相关申请的交叉引用
本申请要求于2020年10月1日在美国专利和商标局提交的非临时专利申请号17/061,357的优先权和权益,其内容被包含在本文中,如同下面充分陈述的并且用于所有适用目的。
技术领域
本公开大体上涉及串行通信和输入/输出引脚配置,并且更具体地涉及可以在接收器处执行的批(batch)中的虚拟通用输入/输出状态和事件的传输。
背景技术
移动通信设备可以包括各种组件,包括电路板、集成电路(IC)设备和/或片上系统(SoC)设备。这些组件可以包括通过共享数据通信总线进行通信的处理设备、用户接口组件、存储装置和其他外围组件,该共享数据通信总线可以包括多点串行总线或并行总线。行业已知的通用串行接口包括集成电路间(I2C或I2C)串行接口及其衍生物和替代品。
移动行业处理器接口(MIPI)联盟定义了改进型集成电路间(I3C)串行接口、射频前端(RFFE)接口、系统功率管理接口(SPMI)和其他接口的标准。例如,这些接口可以被用于连接处理器、传感器和其他外围设备。在一些接口中,多个总线主设备被耦合至串行总线,使得两个或多个设备可以用作串行总线上传输的不同类型消息的总线主设备。
RFFE标准定义了可以被用于控制各种射频(RF)前端设备的通信接口,包括功率放大器(PA)、低噪声放大器(LNA)、天线调谐器、滤波器、传感器、功率管理设备、开关等。这些设备可以被并置在单个IC设备中或提供在多个IC设备中。在移动通信设备中,多个天线和无线电收发器可以支持多个并发RF链路。SPMI标准定义了可以在基带或应用处理器与外围组件之间实施的硬件接口。在一些情况下,SPMI协议被实施以支持设备内的功率管理操作。
在一些系统中,信号在移动通信设备中的不同组件设备之间的物理输入/输出(I/O)连接上被传输。这些连接消耗移动通信设备内宝贵的通用输入/输出(GPIO)引脚,并且期望用通过现有串行数据链路传输的信息中携带的信号来代替物理互连。然而,串行数据链路与时延相关联,该时延可以防止物理命令和控制信号转换为虚拟信号,特别是在由定义固定传输期限的移动通信设备支持的实时嵌入式系统应用中。
随着移动通信设备继续包括更高水平的功能性,需要改进的串行通信技术来支持外围设备和应用处理器之间的混合虚拟GPIO状态信息的传输。
发明内容
本公开的某些方面涉及可以在不同设备之间提供优化的低时延通信的系统、装置、方法和技术,使得物理GPIO状态和信号可以作为虚拟GPIO状态和信号来携带。提供了一个或多个虚拟GPIO有限状态机(VGI FSM),它可以合并来自多个源的多种类型的异构GPIO状态信息,并且通过数据通信总线将状态信息分发给一个或多个设备。在一个方面中,异构GPIO状态信息包括与输入和输出GPIO引脚相对应的信息。
在本公开的各个方面中,一种在数据通信设备处执行的方法包括:表示批中的物理GPIO的一系列信令状态,该批包括虚拟GPIO消息的序列;生成包括定时信息的第一报头,该定时信息被配置为控制批的执行的定时;通过通信链路传输第一报头;以及通过通信链路传输该批。
在本公开的各个方面中,一种数据通信装置具有:收发器电路,被配置为通过通信链路将装置耦合至远程设备;以及控制器,被配置为表示批中的物理GPIO的一系列信令状态,该批包括虚拟GPIO消息的序列,生成包括定时信息的第一报头,该定时信息被配置为控制该批的执行的定时,通过通信链路传输第一报头,并且通过通信链路传输该批。
在本公开的各个方面中,一种在数据通信设备处执行的方法包括:接收包括虚拟通用输入/输出(GPIO)消息的序列的批,该序列表示物理GPIO的一系列信令状态;接收包括定时信息的第一报头,该定时信息被配置为控制批的执行的定时;以及使用定时信息,从虚拟GPIO消息的序列中提取GPIO信令状态。
在本公开的各个方面中,一种数据通信装置具有:收发器电路,被配置为接收包括虚拟GPIO消息的序列的批,该序列表示物理GPIO的一系列信令状态;接收包括定时信息的第一报头,该定时信息被配置为控制批的执行的定时;以及使用定时信息,从虚拟GPIO消息的序列中提取GPIO信令状态。
附图说明
图1图示了在IC设备之间采用数据链路的装置,该装置根据多个可用标准中的一个标准选择性地操作。
图2图示了用于在IC设备之间采用数据链路的装置的系统架构。
图3图示了使用多个RFFE总线来耦合各种射频前端设备的系统。
图4图示了包括应用处理器和多个外围设备的装置,该装置可以根据本文公开的某些方面进行适应。
图5图示了根据本文公开的某些方面的已适用于支持虚拟GPIO(VGI)的装置的第一示例。
图6图示了根据本文公开的某些方面的采用I3C总线来耦合各种前端设备的设备。
图7图示了根据本文公开的某些方面的其中VGI在分组流中被传输的系统。
图8图示了根据本文公开的某些方面的已适用于支持虚拟GPIO的装置的第二示例。
图9图示了根据本文公开的某些方面的VGI广播帧的示例。
图10图示了根据本文公开的某些方面的定向VGI帧的示例。
图11图示了根据本文公开的某些方面的可以与物理引脚相关联的配置寄存器。
图12图示了根据本文公开的某些方面的适用于将硬件和软件事件表示为VGI的装置。
图13图示了图12中图示的装置中的消息流的某些方面。
图14图示了根据本文公开的某些方面的异构VGI的交叉映射的示例。
图15图示了根据本文公开的某些方面的被配置为实施设备的异步控制模式的系统的示例。
图16图示了根据本公开的某些方面的批捕获、批传输和批执行。
图17图示了根据本公开的某些方面配置的设备控制接口的操作。
图18图示了采用可以根据本文公开的某些方面进行适应的处理电路的装置的一个示例。
图19是图示了根据本文公开的某些方面适应的应用处理器的某些操作的第一流程图。
图20是图示了根据本文公开的某些方面适应的应用处理器的某些操作的第二流程图。
图21图示了根据本文公开的某些方面适应的装置的硬件实施方式的示例。
具体实施方式
下面结合所附附图陈述的详细描述旨在作为各种配置的描述,并且不旨在表示本文描述的概念可以被实践的仅有配置。详细描述包括具体细节,以便提供对各种概念的透彻理解。然而,对于本领域技术人员来说显而易见的是,这些概念可以在没有这些具体细节的情况下实践。在一些情况下,众所周知的结构和组件以框图形式示出,以避免混淆这种概念。
本发明的若干方面现在将参照各种装置和方法呈现。这些装置和方法将在以下详细描述中进行描述,并且在附图中通过各种框、模块、组件、电路、步骤、过程、算法等(统称为“元件”)进行图示。这些元件可以使用电子硬件、计算机软件或其任何组合来实施。这种元件是被实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。
概述
包括多个SoC和其他IC设备的设备通常采用共享通信接口,该共享通信接口可能包括串行总线或其他数据通信链路,以将处理器与调制解调器和其他外围设备连接。串行总线或其他数据通信链路可以根据定义的多个标准或协议来操作。在一个示例中,串行总线可以根据I2C、I3C、SPMI和/或RFFE协议来操作。根据本文公开的某些方面,GPIO引脚、迹线、连接器或端子的信令状态可以在通过数据通信链路在VGI消息中传输的虚拟GPIO状态信息的一个或多个比特中表示。虚拟GPIO状态信息可以通过各种通信链路传输,包括包括有线和无线通信链路的链路。例如,虚拟GPIO状态信息可以被分组化或以其他方式格式化,以便通过包括蓝牙、无线LAN、蜂窝网络等的无线网络进行传输。涉及有线通信链路的示例在本文中描述,以便于理解某些方面。这些方面同样可以适用于GPIO状态信息的传输包括通过无线网络的传输的实施方式。
本文公开的某些方面提供了适用于使得设备能够在虚拟GPIO状态信息中表示软件事件和软件发起事件的方法、电路和系统,该虚拟GPIO状态信息可以通过串行通信链路在具有定时信息的VGI消息的批中传输。可以根据定时信息执行批,以监测、控制和操作位于远程设备中的外围设备。与远程设备的通信可以使用有线或无线通信技术实现。
采用串行数据链路的装置的示例
根据某些方面,串行数据链路可以被用于互连作为装置的子组件的电子设备,诸如蜂窝电话、智能电话、会话发起协议(SIP)电话、膝上型计算机、笔记本计算机、上网本、智能本、个人数字助理(PDA)、卫星无线电、全球定位系统(GPS)设备、智能家庭设备、智能照明、多媒体设备、视频设备、数字音频播放器(例如MP3播放器)、相机、游戏控制台、娱乐设备、车辆组件、可穿戴计算设备(例如智能手表、健康或健身追踪器、眼镜等)、电器、传感器、安全设备、自动售货机、智能仪表、无人机、多翼飞机或任何其他类似的运作设备。
图1图示了可以采用数据通信总线的装置100的示例。装置100可以包括SoC、处理电路102,该处理电路102具有多个电路或设备104、106和/或108,其可以被实施在一个或多个ASIC或SoC中。在一个示例中,装置100可以是通信设备,并且处理电路102可以包括在ASIC 104、一个或多个外围设备106和收发器108中提供的处理设备,它使得装置能够通过天线124与无线电接入网络、核心接入网络、互联网和/或另一网络通信。
ASIC 104可以具有一个或多个处理器112、一个或多个调制解调器110、板载存储器114、总线接口电路116和/或其他逻辑电路或功能。处理电路102可以由操作系统控制,该操作系统可以提供应用编程接口(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可以提供一个或多个总线118a、118b、120,使某些设备104、106和/或108能够通信。在一个示例中,ASIC 104可以包括总线接口电路116,它包括电路、计数器、定时器、控制逻辑和其他可配置电路或模块的组合。在一个示例中,总线接口电路116可以被配置为根据标准定义的通信规范或协议来操作。处理电路102可以包括或控制配置和管理装置100的操作的功率管理功能。
图2图示了包括被耦合至串行总线220的多个设备202和2220至222N的装置200的某些方面。设备202和2220至222N可以被实施在一个或多个半导体IC设备中,诸如应用处理器、SoC或ASIC。在各种实施方式中,设备202和2220至222N可以包括、支持或操作为调制解调器、信号处理设备、显示驱动器、相机、用户接口、传感器、传感器控制器、媒体播放器、收发器、RFFE设备和/或其他这种组件或设备。在一些示例中,从设备2220至222N中的一个或多个可以被用于控制、管理或监测传感器设备。设备202和2220至222N之间通过串行总线220的通信由总线主设备202控制。某些类型的总线可以支持多个总线主设备202。
在一个示例中,主设备202可以包括接口控制器204,该接口控制器204管理对串行总线的访问,为从设备2220至222N配置动态地址,和/或使时钟信号228在串行总线220的时钟线218上被传输。主设备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可以包括处理电路或设备,诸如状态机、定序器、信号处理器或通用处理器。收发器240可以包括接收器、发送器和公共电路,其中公共电路可以包括定时、逻辑和存储电路和/或设备。在一个示例中,发送器基于由时钟生成和/或恢复电路246提供的时钟信号248中的定时来编码和传输数据。时钟信号228可以从信号导出,该信号是从时钟线218接收的。其他定时时钟238可以由控制逻辑242和其他功能、电路或模块使用。
串行总线220可以根据I2C协议、I3C协议、RFFE协议、SPMI协议或另一协议进行操作。至少一个设备202、2220至222N可以被配置为选择性地作为串行总线220上的主设备或从设备操作。两个或多个设备202、2220至222N可以被配置为作为串行总线220上的主设备操作。
在一些实施方式中,串行总线220可以根据I3C协议操作。使用I3C协议通信的设备可以与使用I2C协议通信的设备共存于同一串行总线220上。I3C协议可以支持不同的通信模式,包括与I2C协议兼容的单数据速率(SDR)模式。高数据速率(HDR)模式可以提供6兆比特每秒(Mbps)和16Mbps之间的数据传送速率,并且一些HDR模式可以被提供更高的数据传送速率。I2C协议可以符合事实上的I2C标准,提供的数据速率可以在100千比特每秒(kbps)和3.2Mbps之间的范围内。除了数据格式和总线控制方面,I2C和I3C协议可以定义在2线串行总线220上传输的信号的电气和定时方面。在一些方面中,I2C和I3C协议可以定义影响与串行总线220相关联的某些信号电平的直流(DC)特点和/或影响在串行总线220上传输的信号的某些定时方面的交流(AC)特点。在一些示例中,基于在串行总线220的时钟线218上传输的时钟信号中提供的定时信息,数据在串行总线220的数据线216上被传输。在一些情况下,数据可以在数据线216和时钟线218的信令状态中被编码,或者在信令状态中转变。
图3图示了装置300的某些方面,该装置300包括多个RFFE总线328、330、332,这些RFFE总线被配置为耦合至各种RF前端设备316、318、320、322、324、326。调制解调器302包括将调制解调器302耦合至第一RFFE总线328的RFFE接口308。调制解调器302可以通过一个或多个通信链路310、334与基带处理器306和射频IC(RFIC 304)通信。所图示的装置300可以被实施在移动通信设备、移动电话、移动计算系统、移动电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备、可穿戴计算和/或通信设备、电器等中。
在各种示例中,装置300可以用一个或多个基带处理器306、调制解调器302、RFIC304、多个通信链路310、334、多个RFFE总线328、330、332和/或其他类型的总线来实施。装置300可以包括其他处理器、电路或模块,并且可以被配置用于各种操作和/或不同功能性。在图3所图示的示例中,调制解调器302通过其RFFE接口308和第一RFFE总线328被耦合至RF调谐器316。RFIC 304可以包括一个或多个RFFE接口312、314、控制器、状态机和/或处理器,它们可以配置和控制RF前端的某些方面。RFIC 304可以通过其第一RFFE接口312和第二RFFE总线330与PA 318和功率追踪模块320通信。RFIC 304可以与开关322和一个或多个LNA324、326通信。
总线时延可能会影响串行总线处置高优先级、实时或其他时间受限消息的能力。低时延消息或需要低总线时延的消息可能与传感器状况、设备生成的实时事件和虚拟化GPIO相关。在一个示例中,总线时延可以被测量为在消息变得可用于传输和消息的递送(或者在一些情况下,消息的传输开始)之间经过的时间。总线时延的其他度量可以被采用。总线时延通常包括更高优先级的消息被传输时产生的延迟、中断处理、终止串行总线上正在处理的数据报所需的时间、传输命令导致总线在传输模式和接收模式之间换向的时间、由协议指定的总线仲裁或命令传输。
在某些示例中,时延敏感消息可以包括共存消息。共存消息在多系统平台中被传输,以防止或减少某些设备类型彼此碰撞的实例,包括例如开关322、LNA 324、326、PA 318和以可能生成设备间干扰的方式并发操作或者可能通过高功率电磁干扰对一个或多个有源设备造成损坏的其他类型的设备。可能彼此干扰的设备可以交换共存管理(CxM)消息,以允许每个设备发信号通知可能导致干扰或冲突的紧急动作。CxM消息可以被用于管理包括开关322、LNA 324、326、PA 318和/或天线的共享组件的操作。
诸如RFFE、SPMI、I3C等多点接口可以减少用于在多个设备之间通信的物理I/O引脚的数量。支持通过多点串行总线的通信的协议定义了用于传输命令、控制和数据有效载荷的数据报结构。不同协议的数据报结构定义了某些常见特征,包括用于选择接收或传输数据的设备的寻址、时钟生成和管理、中断处理和设备优先级。在本公开中,RFFE协议的示例被采用以图示本文公开的某些方面。然而,本文公开的概念适用于其他串行总线协议和标准。
信令虚拟GPIO配置信息
图4图示了包括应用处理器402和多个外围设备404、406、408的装置400。在示例中,每个外围设备404、406、408通过相应的通信链路410、412、414与应用处理器402通信,这些通信链路可以独立地和/或根据彼此不同的协议来操作。应用处理器402和每个外围设备404、406、408之间的通信可以涉及在应用处理器402与外围设备404、406、408之间携带控制或命令信号的附加线。这些附加线可以被称为边带通用输入/输出(边带GPIO 420、422、424),并且在一些情况下,边带GPIO 420、422、424所需的连接数量可以超过对应通信链路410、412、414所使用的连接数量和/或集成电路设备上可用于外部连接的物理GPIO引脚的数量。
术语GPIO引脚或GPIO端子在本文中可以被用于指代可以被用于互连电路或设备的通用引脚、连接器、焊盘或端子。GPIO引脚和GPIO连接可以针对特定应用定制。例如,根据应用需要,GPIO引脚可以被编程为用作输出引脚、输入引脚或双向引脚。在一个示例中,应用处理器402可以指派和/或配置多个GPIO引脚,以与诸如调制解调器等外围设备404、406、408进行握手信令或处理器间通信(IPC)。当握手信令被使用时,边带信令可以是对称的,其中信令由应用处理器402和外围设备404、406、408传输和接收。随着设备复杂性的提高,用于IPC目的的GPIO引脚数量的增加可能会显著增加制造成本,并且限制其他系统级外围接口的GPIO可用性。
根据本公开的某些方面,GPIO(包括与通信链路相关联的GPIO)的状态可以通过捕获和数字表示GPIO的信令状态来虚拟化。虚拟化GPIO可以通过数据通信链路进行组合、串行化和传输。在一个示例中,虚拟化GPIO可以通过I3C总线、RFFE总线、SPMI总线或其他总线以分组传输,从而使用命令和控制协议来指示分组内容和/或目的地。虚拟化GPIO的接收器可以对从数据通信链路接收的传输进行反串列化,并且可以根据虚拟化GPIO向处理电路提供消息、事件或驱动物理GPIO。
图5图示了根据本文公开的某些方面的已被适用于提供虚拟GPIO接口(VGI)的装置500。VGI使得多个GPIO引脚522的状态能够以虚拟GPIO状态信息的比特表示,该虚拟GPIO状态信息可以被串行化并且通过通信链路传输。本文公开的VGI消息收发技术可以减少用于将应用处理器502与一个或多个外围设备504、506、508连接的物理引脚和连接的数量。在一些示例中,应用处理器502被实施在SoC或其他集成电路中,而外围设备504、506、508可以与应用处理器502并置和/或被实施在一个或多个其他SoC或集成电路设备中。在一个示例中,集成电路可以包括共享集成电路中提供的RF收发器的多个调制解调器。外围设备504、506、508可以通过公共共享总线或通过单独的、不同的通信链路510、512、514与应用处理器502通信。
在所图示的装置500中,通信链路510、512、514可以对应于图4所图示的通信链路410、412、414,其中物理GPIO引脚522(例如边带GPIO 420、422、424)在VGI消息中被虚拟化,该VGI消息由有限状态机(FSM 518)编码在分组中以通过串行总线520传输。处理电路528的多个物理GPIO引脚522的信令状态可以被捕获并且使用一个或多个二进制比特来数字表示。负责通过串行总线520传输分组的物理层电路和模块(PHY 516)可以组合分组化应用消息526和分组化VGI消息524,并且将其优先化,以通过串行总线520传输。在一些实施方式中,FSM 518可以组合分组化应用消息526和分组化VGI消息524,并且将其优先化。
图6图示了系统600的配置,该系统600使得能够通过具有数据线618和时钟线620的串行总线610在各种设备之间交换VGI消息。系统600包括主机SoC 602和多个外围设备612。将理解,本文公开的某些概念同样适用于根据其他协议(诸如I2C、I3C、RFFE和SPMI协议)操作的通信链路。主机SoC 602可以包括VGI有限状态机(VGI FSM 606)和总线接口604。总线接口604根据总线协议与外围设备612中的对应总线接口614协作,以提供主机SoC 602与外围设备614之间的通信链路。每个外围设备612包括VGI FSM 616。在一些示例中,主机SoC 602可以包括可配置接口,该可配置接口可以被用于使用I2C、I3C、RFFE和/或另一合适协议的某种组合进行通信。
图7图示了系统700,其中VGI消息在一个或多个VGI分组724中被分组化并且在分组流710中被传输,分组流710包括消息722、726、728、730、732,这些消息携带与主机SoC602支持的一个或多个应用相关联的消息。VGI分组724和分组流710中的消息722、726、728、730、732中的一个或多个可以通过串行总线610在主机SoC 602和至少一个外围设备612之间交换。
主机SoC 602中的有限状态机702可以包括分组化器704,它被配置为生成通过物理层接口PHY 708传输的VGI分组724。在一些示例中,有限状态机702可以将VGI分组724优先于消息722、726、728、730、732中的一个或多个,这些消息包括要通过串行总线610传输的应用或控制信息。有限状态机702可以将VGI分组724插入到消息流722、726、728、730、732中,以便通过串行总线610传输。有限状态机702可以通过PHY 708接收VGI分组724和消息722、726、728、730、732中的一个或多个。有限状态机702可以将接收到的消息722、726、728、730和/或732传递给主机SoC 602中的其他功能和/或电路。有限状态机702可以包括解分组化器706,它对接收到的VGI分组724中的虚拟化GPIO状态信息进行译码,并且可以根据GPIO状态信息驱动物理信号和/或物理GPIO引脚。
外围设备612中的有限状态机712可以包括分组化器714,它被配置为生成要由PHY718传输的VGI分组724。在一些示例中,有限状态机712可以将VGI分组724优先化,以便在串行总线610上进行传输。有限状态机712可以将VGI分组724插入到消息流722、726、728、730、732中。有限状态机712可以通过PHY 718接收VGI分组724和消息722、726、728、730、732中的一个或多个。有限状态机712可以将接收到的消息722、726、728、730、732传递给外围设备612中的其他功能和/或电路。有限状态机712可以包括解分组化器716,它对接收到的VGI分组724中的虚拟化GPIO状态信息进行译码,并且可以根据GPIO状态信息驱动物理信号和/或物理GPIO引脚。
VGI分组724的交换使主机SoC 602中的物理GPIO引脚能够追踪和复制外围设备612中的对应物理GPIO引脚的信令状态,并且使外围设备612中的物理GPIO引脚能够追踪和复制主机SoC 602中的对应物理GPIO引脚的信令状态。
图8图示了根据本文公开的某些方面的适用于支持应用处理器802和外围设备824之间的VGI消息的交换的装置800。物理GPIO的信令状态、物理GPIO的信令状态的变化和/或通过物理GPIO传输的信号可以用虚拟GPIO信息的比特表示,该虚拟GPIO信息可以在VGI消息中提供、串行化并且通过通信链路822传输。在一个示例中,以虚拟GPIO信息的比特表示的物理GPIO的信令状态可以对应于在物理GPIO引脚处观察到或预期的电压电平。在一些实施方式中,通过引脚、迹线、连接器导线等传输的信号(GPIO信号)可以被表示为在VGI消息中传输的虚拟状态信息的时间序列。例如,GPIO引脚的虚拟状态信息可以由二进制比特表示,其中比特值‘0’表示‘0’电平或逻辑状态,并且比特值‘1’表示‘1’电平或逻辑状态。在一些实施方式中,通过引脚、迹线、连接器导线等传输的信号(GPIO信号)可以被传递为在VGI消息中传输的虚拟状态信息的序列。在一个示例中,状态变化可以由二进制比特表示,其中比特值‘0’表示状态从‘0’电平到‘1’电平的正转变或变化,并且比特值‘1’表示状态从‘1’电平到‘0’电平的负转变或变化。在另一示例中,状态变化可以由二进制比特表示,其中比特值‘0’表示电平或逻辑状态无变化,并且比特值‘1’表示电平或逻辑状态的变化。其他示例和值的指派可以根据期望实施,并且用于表示GPIO状态或状态变化的比特数可以随应用而变化。
在一些情况下,在物理GPIO状态发生变化后,VGI消息被传输。在一个示例中,VGI消息可以在通过使用串行总线实施的通信链路822传输的分组中被编码。当通信链路822使用串行总线实施时,接收外围设备824可以解串行接收到的分组,并且可以从接收到的分组中提取VGI消息,并且在一些情况下,提取应用消息或控制消息。外围设备824中的VGI FSM826可以将VGI消息转换为物理GPIO状态、状态的变化和/或可以在内部GPIO接口处呈现的信号。
在另一示例中,通信链路822可以由射频收发器提供,该射频收发器支持使用例如蓝牙协议、无线局域网(WLAN)协议、蜂窝广域网和/或另一无线通信协议的无线通信。当通信链路822包括无线连接时,应用消息、控制消息和/或VGI消息可以被编码在分组、帧、子帧或可以通过通信链路822传输的其他结构中,并且接收外围设备824可以提取、反串行化和以其他方式处理接收到的信令以获得应用消息、控制消息或VGI消息。在接收到应用消息、控制消息或VGI消息时,VGI FSM 826或接收设备的另一组件可以中断其主机处理器以指示接收到应用信息、控制消息、GPIO状态或GPIO状态的变化。
在通信链路822作为串行总线提供的示例中,应用消息、控制消息或VGI消息可以在根据I2C、I3C、RFFE、SPMI协议等配置的分组中被传输。在所图示的示例中,VGI消息可以被交换以适应应用处理器802和外围设备824之间的I/O桥接。应用处理器802可以被实施为ASIC、SoC或设备的某种组合。应用处理器802包括生成与一个或多个通信信道806相关联的消息和GPIO的处理器(中央处理单元或CPU 804)。通过通信信道806传输的应用消息、控制消息和/或VGI消息可以由VGI FSM 826中的相应监测电路812、814监测。在一些示例中,GPIO监测电路812或其他电路可以适用于产生代表物理GPIO信号的状态的VGI消息。在一些示例中,GPIO监测电路812或其他电路可以适用于响应于物理GPIO信号的状态变化而产生应用消息、控制消息或VGI消息。
估计电路818可以被配置为估计GPIO信号和应用消息或控制消息的时延信息,并且可以选择通信链路822的协议和/或通信模式,它优化编码和传输应用消息、控制消息或VGI消息的时延。估计电路818可以维护协议和模式信息816,它表征在选择协议和/或通信模式时要考虑的通信链路822的某些方面。估计电路818还可以被配置为选择用于编码和传输应用消息、控制消息或VGI消息的分组类型。估计电路818可以提供由分组化器820用于编码应用消息、控制消息或VGI消息的配置信息。在一个示例中,配置信息被提供为可以被封装(encapsulated)在分组中的命令,使得分组的类型可以在接收器处被确定。可以是命令的配置信息也可以被提供给物理层电路(PHY 808)。PHY 808可以使用配置信息来选择用于传输关联分组的协议和/或通信模式。PHY 808然后可以生成适当的信令以传输分组。
外围设备824可以包括VGI FSM 826,该VGI FSM 826可以被配置为处理从通信链路822接收的数据分组。外围设备824处的VGI FSM 826可以提取消息,并且可以将VGI消息中的比特位置映射到外围设备824中的物理GPIO引脚上。在某些实施例中,通信链路822是双向的,并且应用处理器802和外围设备824两者都可以作为发送器和接收器操作。
应用消息、控制消息和/或VGI消息可以被封装为通过通信链路822传输的分组,例如通信链路可以是多线串行总线或多线并行总线。应用处理器802中的PHY 808和外围设备824中的对应PHY 828可以被配置为建立和操作通信链路822。PHY 808和828可以被耦合至或包括支持无线通信的无线收发器108(参见图1)。在一些示例中,PHY 808和PHY 828可以被配置为分别在应用处理器802和外围设备824处提供双线接口,其中双线接口与I2C、I3C、RFFE、SPMI或其他协议兼容。
本文公开的VGI隧道可以使用被配置用于操作通信链路822的现有或可用协议来实施,而无需物理GPIO引脚的全部补充。VGI FSM810、826可以在应用处理器802和/或外围设备824中的处理器不介入的情况下处置GPIO信令。VGI隧道的使用可以减少与通信链路822相关联的引脚计数、功耗和时延。
在接收设备处,VGI消息被转换为物理GPIO信号。物理GPIO引脚的某些特点可以使用VGI消息来配置。例如,物理GPIO引脚的摆率、极性、驱动强度和其他相关参数和属性可以使用VGI消息来配置。用于配置物理GPIO引脚的配置参数可以被存储在与对应GPIO引脚相关联的配置寄存器中。这些配置参数可以使用诸如I2C、I3C或RFFE等专有或常规协议来寻址。在一个示例中,配置参数可以在I3C可寻址寄存器中被维护。本文公开的某些方面涉及减少与配置参数和对应地址(例如用于存储配置参数的寄存器的地址)的传输相关联的时延。
适用于通过I2C、I3C、RFFE或SPMI串行总线在分组中和/或作为事务序列传递VGI消息的通信接口在本文中可以被称为VGI消息收发接口或VGMI。事务、分组或帧中的VGI消息的存在可以使用特殊命令代码来发信号通知,以将该帧标识为VGI帧。在一些实施方式中,串行数据流可以以类似于通用异步接收器/发送器(UART)信令和消息收发协议的形式(在本文中可以被称为UART_VGI操作模式)传输。
图9图示了VGI广播帧900、920的示例。在第一示例中,根据I2C或I3C协议,VGI广播帧900以起始位902(S)开始,随后是报头904。VGI广播帧可以使用VGI广播公共命令代码906来标识。VGI数据有效载荷908包括多个(n个)VGI消息9120至912n-1,范围从第一VGI消息9120到第n个VGI消息912n-1。VGI FSM可以包括映射表,该映射表将VGI数据有效载荷908中的VGI消息的比特位置映射到物理GPIO引脚。VGI数据有效载荷908中的信令的虚拟性质对于传输和接收设备中的处理器来说可能是透明的。
在第二示例中,经掩码的(masked)VGI广播帧920可以由主机设备传输,以写入一个或多个GPIO引脚的状态,而不扰乱其他GPIO引脚的状态。在该示例中,一个或多个设备的I/O信号被掩码,而目标设备中的I/O信号未被掩码。经掩码的VGI广播帧920以起始位922开始,随后是报头924。经掩码的VGI广播帧920可以使用经掩码的VGI广播公共命令代码926来标识。VGI数据有效载荷928可以包括I/O信号值9340至934n-1和对应的掩码位9320至932n-1,范围从第一I/O信号(IO0)的第一掩码位M0 9320到第n个I/O信号IOn-1的第n个掩码位Mn-1932n-1。
停止位或同步位(Sr/P 910、930)终止VGI广播帧900、920。同步位可以被传输,以指示附加的VGI有效载荷要被传输。在一个示例中,同步位可以是I2C接口中的重复起始位。
图10图示了定向VGI帧1000、1020的示例。在第一示例中,定向VGI帧1000可以被寻址到单个外围设备,或者在一些情况下,被寻址到一组外围设备。根据I2C或I3C协议,第一定向VGI帧1000以起始位1002(S)开始,随后是报头1004。定向VGI帧1000可以使用VGI定向公共命令代码1006来标识。定向公共命令代码1006之后可以是同步字段1008a(Sr)和地址字段1010a,该地址字段1010a包括选择被寻址设备的从属标识符。地址字段1010a之后的定向VGI数据有效载荷1012a包括属于被寻址设备的I/O信号集合的值1016。定向VGI帧1000可以包括用于附加设备的附加定向VGI数据有效载荷1012b。例如,第一定向VGI数据有效载荷1012a之后可以是同步字段1008b和第二地址字段1010b。在该示例中,第二定向VGI数据有效载荷1012b包括属于第二被寻址设备的I/O信号集合的值1018。定向VGI帧1000的使用可以允许传输VGI广播帧900、920中携带的I/O信号的子集或部分的值。
在第二示例中,经掩码的定向VGI帧1020可以由主机设备传输,以写入一个或多个GPIO引脚的状态,而不扰乱单个外围设备中的其他GPIO引脚的状态并且也不影响其他外围设备。在一些示例中,一个或多个设备中的I/O信号被掩码,而一个或多个目标设备中的所选I/O信号未被掩码。经掩码的定向VGI帧1020以起始位1022开始,随后是报头1024。经掩码的定向VGI帧1020可以使用经掩码的VGI定向命令代码1026来标识。经掩码的VGI定向命令代码1026之后可以是同步字段1028(Sr)和地址字段1030,该地址字段1030包括选择被寻址设备的从属标识符。随后的定向有效载荷1032包括属于被寻址设备的I/O信号集合的VGI值。例如,定向有效载荷1032中的VGI值可以包括I/O信号值1038和对应的掩码位1036。
停止位或同步位(Sr/P 1014、1034)终止定向VGI帧1000、1020。同步位可以被传输,以指示附加的VGI有效载荷要被传输。在一个示例中,同步位可以是I2C接口中的重复起始位。
在接收设备(例如应用处理器502或外围设备504、506、508)处,接收到的VGI消息被扩展为GPIO引脚上呈现的物理GPIO信号状态。本文使用的术语“引脚”可以指物理结构,诸如用于将IC耦合至电路板、衬底等上提供的导线、迹线、通孔过孔或其他合适的物理连接器的焊盘、引脚或其他互连元件。每个GPIO引脚可以与存储GPIO引脚的配置参数的一个或多个配置寄存器相关联。图11图示了可以与物理引脚相关联的配置寄存器1100和1120的示例。每个配置寄存器1100、1120被实施为1字节(8位)寄存器,其中不同的比特或比特组定义了可以通过配置控制的特点或其他特征。在第一示例中,比特D0至D2 1102控制GPIO引脚的驱动强度,比特D3至D5 1104控制GPIO引脚的摆率,比特D6 1106启用中断,并且比特D71108确定中断是边缘触发还是由电压电平触发。在第二示例中,比特D01122选择GPIO引脚是接收反相信号还是非反相信号,比特D1至D21124定义输入或输出引脚的类型,比特D3至D4 1126定义非驱动引脚的某些特点,比特D5至D6 1128定义信令状态的电压电平,并且比特D7 1130控制GPIO引脚的二进制值(即,GPIO引脚是否携带二进制1或0)。
异构VGI
在采用VGI消息在设备之间交换GPIO状态信息的接口中,第一设备中的物理GPIO引脚可以追踪和复制第二设备中的对应物理GPIO的信令状态,反之亦然。VGI消息可以通过串行总线或携带其他消息的其他通信链路来交换,包括传输给设备、外围设备和/或应用或者在其间传输之间的应用消息或控制消息。应用消息可以包括由传感器生成的有效载荷数据或与由处理电路执行的或由应用生成的应用相关的状态信息。其他消息可以包括管理和控制消息,包括由应用、设备驱动器和其他软件生成的事件。事件可以包括软件中断、陷阱、标志或信号量状况的变化以及其他过程间消息。管理和控制消息可以在高优先级应用分组中被传输,并且VGI有限状态机可以被配置为在携带VGI消息、高优先级应用消息、管理和控制信息的分组之间进行仲裁。
根据本文公开的某些方面,软件事件可以由有限状态机处置,该有限状态机适用于生成代表物理GPIO状态信息的VGI分组。软件事件和某些管理和控制消息可以以物理GPIO被表示的相同方式表示。在一个示例中,当物理GPIO表示与硬件事件相关联的信令状态时,软件事件可以以与物理GPIO被表示相同的方式来表示。在一些实施方式中,软件事件可以被转换为物理信号,该物理信号可以由VGI有限状态机处置,而VGI有限状态机具有很少适应或没有适应。在一些实施方式中,软件事件可以被转换为被配置为处置虚拟化GPIO的寄存器中的比特设置(参见图11的配置寄存器1100和1120)。
图12图示了根据本文公开的某些方面的适用于将硬件和软件事件表示为虚拟GPIO的装置1200。硬件事件可以由物理GPIO的状态变化生成,而软件事件可以由应用或操作系统生成,并且在消息中、在存储器或寄存器值中或作为对由操作系统或应用监测的功能的调用来传递。
在所图示的装置1200中,应用处理器1202包括中央处理单元(CPU 1204)、有限状态机1206和PHY 1208。PHY 1208可以处置通过串行总线1250携带VGI消息的分组的传输。VGI消息由有限状态机1206提供给PHY 1208。有限状态机1206可以适用于包括硬件和软件事件处置器1210、1214。GPIO处置器1210可以监测作为硬件事件源的物理GPIO 1212。物理GPIO 1212可以如本文公开的那样被虚拟化。在一些情况下,GPIO处置器1210可以在VGI消息中包括明确地将所包括的状态信息标识为与物理GPIO相关的信息。
软件事件处置器1214可以直接从一个或多个软件事件源1216接收软件事件消息。在一些情况下,软件事件处置器1214可以接收或监测包括其他类型的消息的分组流。软件事件处置器1214可以基于应用的直接通知或者通过监测应用处理器1202的某些操作来标识软件事件。在一个示例中,生成事件的应用写入由软件事件处置器1214监测的寄存器。软件事件处置器1214可以提供和监测表示软件事件的物理信号1218,并且可以在物理信号1216和软件事件源1216之间进行转化。有限状态机1206可以生成要被传输给外围设备1222的VGI消息。在一些实施方式中,软件处置器1214可以在提供给有限状态机1206的VGI消息1220中编码软件事件。软件处置器1214可以在VGI消息1220中包括标识VGI消息中的软件事件的信息。
有限状态机1206还可以通过PHY 1208从外围设备1222接收VGI消息。外围设备1222可以包括中央处理单元(CPU 1224)、有限状态机1226和PHY 1228。PHY 1228可以处置通过串行总线1250携带VGI消息的分组的传输。VGI消息由有限状态机1226提供给PHY1228。有限状态机1226可以适用于包括硬件和软件事件处置器1230、1234。GPIO处置器1230可以监测作为硬件事件源的物理GPIO 1232。物理GPIO 1232可以如本文公开的那样被虚拟化。在一些情况下,GPIO处置器1230可以在VGI消息中包括明确地将所包括的状态信息标识为与物理GPIO相关的信息。
软件事件处置器1234可以直接从一个或多个软件事件源1236接收软件事件消息。在一些情况下,软件事件处置器1234可以接收或监测包括其他类型的消息的分组流。软件事件处置器1234可以基于应用的直接通知和/或通过监测外围设备1222的某些操作来标识软件事件。在一个示例中,生成事件的应用写入由软件事件处置器1234监测的寄存器。软件处置器1234可以提供和监测表示软件事件的物理信号1238,并且可以在物理信号1238和软件事件源1236之间进行转化。有限状态机1226可以生成要由有限状态机1206传输的VGI消息。在一些实施方式中,软件处置器1234可以在提供给有限状态机1226的VGI消息1240中编码软件事件。软件处置器1234可以包括在VGI消息1240中标识VGI消息1240中的软件事件的信息。
在一个示例中,有限状态机1206、1226可以基于标识VGI消息中提供的信息来区分与软件事件相关的VGI消息和与物理GPIO相关的VGI消息。在另一示例中,有限状态机1206、1226可以将VGI消息引导到VGI消息中标识的处置器1210、1214、1230或1234。在后一示例中,有限状态机1206、1226和对应的处置器1210、1214、1230、1234之间的接口可以被抽象,使得有限状态机1206、1226不需要知道处置器1210、1214、1230、1234的功能类型。在任一示例中,VGI接口可以被配置为支持第一设备上的物理GPIO和第二设备上的软件事件之间的转换,反之亦然。
图13包括图12中的装置1200的简化表示1300和表示根据本文公开的某些方面而适应的VGI接口中的消息流的交叉映射1340。第一设备中的FSM 1302包括管理物理GPIO1322的状态通信的第一处置器1304和管理软件事件1324的通信的第二处置器1306。第二设备中的FSM 1312包括管理物理GPIO 1326的状态通信的第三处置器1314和管理软件事件1328的通信的第四处置器1316。VGI消息通过PHY 1308、1318在串行总线1310上被传输。
表1示出了物理GPIO和软件事件之间的VGI传送的排列,并且图13包括对应的交叉映射1340。
表1
交叉映射1340可以适用于图12中图示的装置1200,其中VGI消息可以表示由硬件电路生成和/或监测的物理GPIO的状态以及由软件生成和/或消耗的事件,并且应用处理器和外围设备可以是两种类型的VGI消息的源和/或目的地。
与物理GPIO 1322相关的某些VGI消息可能起源于第一设备,并且终止于第二设备。在一个示例中,物理GPIO引脚的状态可以在第一设备中被修改,并且VGI消息可以从第一设备向第二设备传输,以便更新第二设备中的对应物理GPIO引脚的状态。在另一示例中,物理GPIO引脚的状态可以在第一设备中被修改,并且VGI消息可以从第一设备向第二设备传输,以便创建第二设备中的软件事件。
与物理GPIO 1322相关的某些VGI消息可能起源于第二设备,并且终止于第一设备。在一个示例中,物理GPIO引脚的状态可以在第二设备中被修改,并且VGI消息可以从第二设备向第一设备传输,以便更新第一设备中的对应物理GPIO引脚的状态。在另一示例中,物理GPIO引脚的状态可以在第二设备中被修改,并且VGI消息可以从第二设备向第一设备传输,以便创建第一设备中的软件事件。
与软件事件1324相关的某些VGI消息可能起源于第一设备,并且终止于第二设备。在一个示例中,在第一设备中发生软件事件可以导致VGI消息从第一设备向第二设备传输,以便更新第二设备中的物理GPIO引脚的状态。在另一示例中,在第一设备中发生软件事件可以导致VGI消息从第一设备向第二设备传输,以便创建第二设备中的对应软件事件。
与物理GPIO 1322相关的某些VGI消息可能起源于第二设备,并且终止于第一设备。在一个示例中,在第二设备中发生软件事件可以导致VGI消息从第二设备向第一设备传输,以便更新第一设备中的物理GPIO引脚的状态。在另一示例中,在第二设备中发生软件事件可以导致VGI消息从第二设备向第一设备传输,以便创建第一设备中的对应软件事件。
在一个示例中,应用处理器1342可以包括管理和/或监测外围设备1346中的调制解调器1348的CPU 1344。调制解调器可以生成通过物理GPIO 1326传输的信号。CPU 1344可以根据本文公开的某些方面配置,以接收调制解调器生成的信号作为软件事件1324。CPU1344还可以被配置为本文公开的方面,以生成与调制解调器1348的操作相关的软件事件1324,其中软件事件1326被转换为耦合至调制解调器1348的物理GPIO 1326。CPU 1344和调制解调器1348之间的通信由对角线1350图示。
在一个示例中,包括与硬件生成的信号(诸如硬件定时器)相关的状态信息的VGI消息可以被引导到物理GPIO,该物理GPIO被耦合至对由硬件定时器生成的信号进行响应的电路。在另一示例中,包括与某些硬件生成的事件相关的状态信息的VGI消息可以在接收VGI有限状态机时被转换为软件事件。在后一示例中,应用处理器可以支持有限数量的硬件中断,并且将来自一些设备的硬件中断转换为可以由应用处理器更方便地服务的软件中断可能是有用的。在另一示例中,包括与某些软件生成的事件相关的状态信息的VGI消息可以在接收VGI有限状态机时被转换为硬件GPIO状态。在后一示例中,应用处理器可以生成在外围设备处被转换为硬件中断的软件事件。在另一示例中,包括与某些软件生成的事件相关的状态信息的VGI消息可以在接收VGI有限状态机时被处置为软件事件。
图14图示了交叉映射1400,其图示了异构VGI的扩展实施方式。在许多应用中,通过物理GPIO传输的一个或多个信号由固件和/或软件创建和/或控制。例如,应用可以将二进制值写入寄存器,该寄存器在一个或多个GPIO引脚上输出该值。根据本文公开的某些方面,某些GPIO引脚的状态可以使用有限状态机1206、1226来创建和捕获。在一些情况下,生成通过物理GPIO传输的信号的模块可以适用于创建VGI消息,该VGI消息将信号表示为与信号的信令状态变化相对应的事件序列。代替物理信号直接生成VGI消息的技术在本文中可以被称为软件起源的VGI。
表2示出了与交叉映射1400相对应的VGI传送的排列。
表2
交叉映射1400可以适用于图12中图示的装置1200,其中VGI消息可以表示由硬件电路生成和/或监测的物理GPIO 1402、1408、由软件生成和/或监测的GPIO 1404、1410以及由软件生成和/或消耗的软件事件1406、1412的状态。应用处理器和外围设备可以是两种类型的VGI消息的源和/或目的地。在该示例中,从任何源生成的VGI消息可以被引导到物理GPIO 1402、1408、由软件监测的GPIO 1404、1410,或者被引导到创建软件事件1406、1412的处置器。在一些实施方式中,命令和控制消息可以是物理GPIO 1402、1408、由软件或软件事件1406、1412生成和/或监测的GPIO 1404、1410的表达。在一些实施方式中,命令和控制消息可以在物理GPIO 1402、1408、由软件或软件事件1406、1412生成和/或监测的GPIO 1404、1410中表达。
表3示出了一个示例,其中交叉映射1400中提供的VGI传送的排列少于所有排列。
表3
在表3中,将与硬件生成的GPIO或软件事件的状态相关的VGI消息交换到由软件监测的硬件GPIO不被支持。
当软件起源的物理GPIO与硬件起源的GPIO和软件事件区分开来时,表2和对应的交叉映射1400提供了多达9个交换选项。VGI消息的源和目的地的特点可以使用定义代码(VGI_ID)在VGI消息中标识。图14所图示的表格1420中的代码提供了定义VGI_ID值的编码方案的一个示例,该VGI_ID值可以被用于根据交叉映射1400来管理VGI消息。VGI_ID值以四位表达,并且表达编码源和目的地之间的映射。I3C的MIPI联盟标准提供了被指派用于VGI消息收发的专用公共命令代码(CCC)。当接收器检测到VGI CCC时,那么它识别出对应的分组包括虚拟化GPIO。在常规系统中,虚拟化的GPIO被假定为代表GPIO引脚的硬件生成信令状态。
通信技术的改进(包括第四代(4G)、第五代(5G)和后一代无线电接入技术的部署)导致必须由应用、系统或网络服务、监测或控制的互连设备的数量和类型增加。使用标准定义的串行和无线网络来携带异构VGI消息可以降低支持应用、系统或网络所需的基础设施的复杂性。VGI消息可以通过携带其他业务的串行总线或无线通信链路来交换,包括在设备和/或应用之间传输的应用消息。随着应用要求不断增加的吞吐量和响应能力由以及网络连接的传感器、监测器、控制器和其他设备的数量增加,由于总线时延增加,网络支持实时、确定性应用的能力可能会受到严重影响。在常规系统中,包括事件或状态信息的VGI消息在其可用后被尽早传输。由于时延降低和其他延迟,增加的网络业务可能会防止时间关键型VGI消息的及时递送。
根据本公开的某些方面,频繁的、重复的和/或时间关键型动作可以通过将多个命令或命令序列收集、积累、聚合和/或组装为“批”来定义、传递和发起,该批可以利用定时信息通过通信链路来传输,该定时信息可以被用于控制由批配置的动作的发起。
在一个方面中,批可以被用于监测或控制有限功能设备,诸如RFFE设备、传感器、换能器、物联网(IOT)设备等。某些设备可以使用小步骤的序列进行控制,例如包括步进电机,其在操作期间需要许多GPIO状态变化和细粒度控制序列。这些步骤序列通常响应于刺激、命令或配置的动作而重复。在一个示例中,无人机可以包括多个步进电机,这些步进电机可以由配置基础操作模式的初级步骤序列和响应于刺激而发起的一个或多个次级步骤序列控制,诸如由传感器提供的指示配平损失、高度变化等的信号。在一些情况下,步骤的初级和次级序列主要因步骤的执行速率而不同。在一些情况下,步进电机和其他设备可以由重复控制序列来监测和控制,该重复控制序列在标准定义的通信链路上以异构VGI消息的批传输,该通信链路可以携带其他常规业务。
根据本公开的一些方面提供的控制模式可以提高效率,减少网络接口电路中的功耗和通信开销,减少网络拥塞,并且减轻吞吐量和时延要求。在一个示例中,要在设备处重复采取的动作或一系列动作可以被配置为跨接口传递的命令或命令的批,其中一个或多个刺激可以致动、激发或发起对命令的一系列响应。一系列响应可以包括发起、暂停或终止动作或一系列动作。刺激可以由应用、另一设备来提供,或者可以由采取动作或一系列动作的设备生成。
在一个示例中,根据本公开的一些方面提供的协议和技术可以被用于配置用于控制无人机的一个或多个动作。一个或多个动作可以指向无人机中的步进电机。在一个实施方式中,根据本公开的一些方面提供的协议和技术可以被用于将一个或多个动作分组(pack)为作为单个命令操作以控制RFFE的批。一个或多个动作可以协调RFFE或者RFFE内或耦合至RFFE的组件的配置变化。在不同的示例中,当RFFE被配置用于波束形成时,一个或多个动作可以改变天线阵列的相位设置。
图15图示了根据本文公开的某些方面的被配置为实施设备的异步控制模式的系统1500的示例。配置、命令和控制消息可以被分组在批中,并且被提供给一个或多个设备,以发起根据规定或配置的时间线采取的动作。在一个示例中,对常规协议的扩展由系统实施,使得VGI消息的批或集合从主机设备1502发送到接收设备1504,以根据规定或配置的时间线执行。VGI消息可以包括GPIO状态信息、硬件生成的事件、软件生成的事件、定时信息或其他控制信息。
在系统1500中,主机设备1502通过通信链路1506被通信地耦合至接收设备1504。通信链路1506可以使用无线链路和有线链路或分段的某种组合来实施,并且通信链路1504可以是双向或单向的。在一些情况下,通信链路1506包括点对点链路。在一些情况下,通信链路1506使用多点串行总线来实施。在一些情况下,通信链路1506通过广播无线通信链路提供。主机设备1502可以被配置为传输VGI消息和控制消息,该VGI消息和控制消息用于接收设备1504的异步控制或管理。主机设备1502可以被配置为从接收设备1504接收VGI消息和控制消息,并且用于主机设备1502处的异步控制或管理。在一些实施方式中,对等设备可以交换用于异步控制或管理的VGI消息和控制消息。在一些实施方式中,主机设备1502可以被配置为广播用于多个接收设备1504的异步控制或管理的VGI消息和控制消息。
图15中的定时图1520图示了第一设备对第二设备执行的异步控制。在一个示例中,定时图1520对应于主机设备1502对接收设备1504执行的异步控制的示例。在第一时间点1522,第一设备可以准备消息的批,消息的批包括GPIO状态信息、控制消息、命令和/或配置信息。消息的批可以包括由一个或多个应用生成的消息,并且可以与不同的功能、事件或物理GPIO状态相关。消息的批可以包括表征由第一设备从物理GPIO状态捕获或从应用生成的事件导出的GPIO状态的信息。消息的批可以在一个或多个数据报、分组或事务中被传输。在一个示例中,消息可以定义要针对一个或多个物理GPIO引脚、焊盘、端子或互连设置的状态。在另一示例中,消息可能包括配置或控制命令。
在第二时间点1524,第一设备向第二设备传输消息的批。消息的批可以通过通信链路1506从第一设备向第二设备传输。在一些实施方式中,第一设备和第二设备之间的通信链路1506或者可以使用根据RFFE、SPMI、I3C或其他这种协议操作的串行总线来实施。在一些实施方式中,通信链路1506包括无线部分。
在第三时间点1526,一个或多个动作可以由第二设备基于消息的批的内容采取。第二设备可以在第一动作被采取之后的附加时间点1528、1530重复执行某些动作。响应于消息的批而执行的活动的定时可以由时间线来确定,该时间线定义了在第二时间点1524或与消息的批一起传输该批消息之前提供的定时配置。定时配置可以通过一个或多个控制消息来提供。在一些实施方式中,定时配置可以在消息的批被接收到之后或者在某些动作已由第二设备采取之后修改。例如,在动作序列已被配置之后,接收到的控制消息可以被传输以修改定时配置。消息的批可以作为可以由第二设备解释或执行的宏指令或指令集来操作。
定时配置可以标识消息的批中的一个或多个指令,这些指令将周期性地或在指定时间被执行。定时配置可以标识消息的批中的一个或多个指令,这些指令将被重复定义或配置的次数。定时配置可以标识一个或多个指令或要被执行的指令序列的开始时间。定时配置可以使用由传输设备、接收设备、主设备或另一设备或系统提供的同步事件来实施。在一些实施方式中,该批消息可以包括执行参数,该执行参数可以配置在第二设备处执行的动作的某些方面。
在一些示例中,物理GPIO线路状态、配置、命令和控制消息和/或检测到的硬件事件或软件生成的事件可以由多个源生成,并且以异构VGI消息的形式被传输给一个或多个端点。在一些示例中,物理GPIO线路状态、配置和/或检测到的硬件事件可以由多个源生成,并且以异构VGI消息的形式被传输给一个或多个端点,并且可以与命令和控制消息(包括与软件生成的事件相关的VGI消息)散布或交织。源到端点的映射可以根据应用需要来配置,并且可以提供一对一、一对多、多对一和多对多(矩阵)交换。在成批(batched)操作模式中,与时间线相关联的命令和异构VGI消息的序列可以被组装并且跨通信链路传输。时间线可以定义一个或多个线、引脚、焊盘等的物理GPIO状态的时间系列以及物理GPIO的状态的转变或变化。时间线还可以定义事件或事件信令的时间系列,包括在时间线内改变事件信令的状态,其中事件或事件信令可以具有多个源或多个端点。时间线还可以定义控制消息的时间系列,其中控制消息可以具有多个源或多个端点。
物理GPIO状态的这些时间系列、物理GPIO状态的变化、事件或事件信令、事件信令的状态变化和控制消息可以在发送器中成批后的某个时间进行传输。物理GPIO状态的时间系列、物理GPIO状态的变化、事件或事件信令、事件信令的状态变化和控制消息可以使用各种通信方法或技术来传输,并且可以寻址到一个或多个地址或广播到多个接收器。
在一个方面中,可以被用于管理、监测和控制多个远程设备的设备控制接口被定义。远程设备可以接收和执行批和时间线,其中批包括物理GPIO状态的时间系列、物理GPIO状态的变化、事件或事件信令、事件信令的状态变化和控制消息的某种组合。远程设备可以根据由时间线、应用或在设备制造或初始化期间定义的执行参数来接收和执行批。
图16包括图示了根据本公开的某些方面的批捕获、批传输和批执行的定时图1600、1610、1620。第一定时图1600图示了将连接常规系统中的两个设备的4个GPIO线、引脚、焊盘或互连的信令状态。例如,图4的边带GPIO 420、422或424的信令状态可以被表示。在图16所图示的示例中,设备之间的物理互连被省略,并且信令状态在成批的VGI消息中被传递。物理GPIO状态的时间系列在持续时间1602上被捕获,该持续时间1602可以对应于要在接收设备处重复的周期。所捕获的GPIO状态可以表示在针对批定义的单位时间间隔(在本文中可以被称为状态间隔)期间GPIO线、引脚、焊盘或互连的信令状态。在各种示例中,VGI消息的批可以表示或定义物理GPIO的采样状态、在作为在VGI消息中表示的GPIO线、引脚、焊盘或互连之一上提供的时钟信号1604的半周期测量的状态间隔期间的物理GPIO状态、在内部时钟信号的每个周期期间的物理GPIO状态。某些VGI消息可以表示物理GPIO的信令状态的转变。所捕获的VGI消息的批可以被缩放以用于传输或执行。
第二定时图1610图示了使用压缩的第二时基来优化所捕获的VGI消息的批的传输时间。在一个示例中,所捕获的VGI消息的批可以使用第一时基实时捕获,并且第二压缩时基可以被用于使用于控制VGI消息的批的捕获的时钟信号1604与用于控制通过串行总线的传输的时钟信号一致。在该示例中,用于控制通过串行总线的传输的时钟信号具有比用于控制VGI消息的批的捕获的时钟信号1604更高的频率。在其他示例中,扩展的时基可以被用于使用于控制VGI消息的批的捕获的时钟信号1604与用于控制通过串行总线的传输的时钟信号一致。在该示例中,用于控制通过串行总线的传输的时钟信号具有比用于控制VGI消息的批的捕获的时钟信号1604更低的频率。
第三定时图1620图示了当拉伸或扩展的第三时基被用于控制所捕获的VGI消息的批的执行时所捕获的GIO状态的一部分。在一些情况下,第一时基使得VGI消息的批能够相对于接收设备比实时更快地被捕获,并且第三时基被用于控制批的执行的定时,以便在接收设备中的物理GPIO处产生状态的实时时间系列。在其他实例中,当批使用采样时钟捕获并且使用频率比控制批执行的接收设备中的时钟信号更低的传输时钟传输时,第三时基使得批能够比第一时基或第二时基更快地执行。批可以被重复一次或多次,或者在执行参数定义的持续时间内被重复。在一些情况下,批的一些部分可以被重复一次或多次,或在由执行参数定义的持续时间内被重复,而该批的其他部分可以被执行一次。
本文公开的设备控制接口使得时基能够根据期望进行缩放、循环和偏移。例如,如关于图16描述的,缩放可以被用于控制批的执行的定时。该批可以被周期性地执行。在一些情况下,批的执行可以在每次完成批的执行后立即重启。在其他实例中,批的执行可以以配置的速率或根据由执行参数定义的速率来发起,其中例如在下一执行被发起之前,执行可能已经完成了一段时间。在其他实例中,批的执行可以根据由该批配置或由执行参数定义的调度来发起。
图17图示了根据本公开的某些方面配置的设备控制接口1700的操作。所图示的设备控制接口1700用通信链路1720实施,该通信链路1720提供主机设备1702和远程设备1722之间的通信链路。在一个示例中,主机设备1702被配置为作为总线主设备操作,并且远程设备1722被配置为作为从设备操作。设备控制接口1700可以被配置为使得主机设备1702和远程设备1722能够交换包括应用消息、控制消息和VGI消息的组合的消息1718。主机设备1702和远程设备1722可以被配置为组装和传输多批异构VGI消息、命令和控制消息以及被配置为控制关联批的执行的时间线。主机设备1702和远程设备1722还可以被配置为接收多批异构VGI消息和命令和控制消息,并且根据接收到的时间线执行接收到的批。
在所图示的设备控制接口1700中,主机设备1702可以被耦合至一个或多个外围设备,这些外围设备驱动物理GPIO线、引脚或焊盘的信令状态1710,或者响应于物理GPIO线、引脚或者焊盘的信令状态1710。在一些示例中,主机设备1702中的处理电路1704可以生成命令和控制消息、事件和/或虚拟状态信息1712,它被配置为控制远程设备1722处的物理GPIO线、引脚或焊盘的信令状态。所图示的主机设备1702包括有限状态机(FSM 1706),它被配置为接收在主机设备1702处捕获的物理GPIO线、引脚或焊盘的信令状态1710以及由处理电路1704生成的命令和控制消息、事件和/或虚拟状态信息1712。FSM 1706可以被配置为生成表示物理GPIO状态的VGI消息和包括由处理电路1704生成的虚拟状态信息1712的VGI消息。FSM1706还可以被配置为根据用于控制通过通信链路1720的传输的总线协议来将VGI消息与对应的时间线组合,以获得可以在通信链路1720上通过总线接口物理电路(PHY 1708)被传输给远程设备1722的批1716。PHY 1708可以被配置为通过通信链路1720向远程设备1722传输具有主机生成的批的应用相关消息1714。所传输的应用相关消息1714可以从处理电路1704接收。
PHY 1708可以向FSM 1706提供从远程设备1722接收的批1716。FSM 1706可以被配置为根据与批1716相关联的时间线来解分组和/或执行所接收的批1716。在一个示例中,FSM 1706可以被配置为从批中提取和译码VGI消息,以驱动某些物理GPIO线、引脚或焊盘的信令状态1710,或者向处理电路1704提供译码的命令、事件和/或虚拟状态信息1712。PHY1708可以被配置为从通信链路1720接收应用相关消息1714,并且将应用相关消息1714提供给处理电路1704。
在所图示的设备控制接口1700中,远程设备1722可以被耦合至一个或多个外围设备,这些外围设备驱动物理GPIO线、引脚或焊盘的信令状态1730,或者响应于物理GPIO线、引脚或者焊盘的信令状态1730。在一些示例中,远程设备1722中的处理电路1724可以生成命令和控制消息、事件和/或虚拟状态信息1732,它被配置为控制主机设备1702处的物理GPIO线、引脚或焊盘的信令状态。所图示的远程设备1722包括有限状态机(FSM 1726),它被配置为接收在远程设备1722处捕获的物理GPIO线、引脚或焊盘的信令状态1730以及由处理电路1724生成的命令和控制消息、事件和/或虚拟状态信息1732。FSM 1726可以被配置为生成表示物理GPIO状态的VGI消息和包括由处理电路1724生成的虚拟状态信息1732的VGI消息。FSM1726还可以被配置为根据用于控制通过通信链路1720的传输的总线协议来将VGI消息与对应的时间线组合,以获得可以在通信链路1720上通过总线接口物理电路(PHY 1728)被传输给主机设备1702的批1736。PHY 1728可以被配置为通过通信链路1720向主机设备1702传输具有远程生成的批的应用相关消息1734。所传输的应用相关消息1734可以从处理电路1724接收。
PHY 1728可以向FSM 1726提供从主机设备1702接收的批1736。FSM 1726可以被配置为根据与批1736相关联的时间线来解分组或执行接收的批1736。在一个示例中,FSM1726可以被配置为从批中提取和译码VGI消息,以驱动某些物理GPIO线、引脚或焊盘的信令状态1730,或者向处理电路1724提供译码的命令、事件和/或虚拟状态信息1732。PHY 1728可以被配置为从通信链路1720接收应用相关消息1734,并且将应用相关消息1734提供给处理电路1724。
根据本公开的某些方面,接收批的设备可以根据时间线并且以类似于宏的方式“执行批”。宏可以被定义为作为组提供的命令和指令的序列或系列,该组作为单个命令执行。宏可以被用于自动发起或执行一系列动作或功能。在一些实施方式中,批可以包括物理GPIO状态的一个或多个时间系列、物理GPIO状态的变化、事件或事件信令、事件信令的状态变化和控制消息,其中每个时间系列可以被独立地执行,或者以由时间线定义的序列执行。
根据本公开的某些方面,批可以由第一设备用于控制第二设备,以支持过程间通信(IPC)和/或支持设备之间的同步。在一个示例中,批可以包括一个或多个物理GPIO线、引脚或焊盘的状态序列,包括时间线内的状态变化。在另一示例中,批可以包括一种或多种类型的事件序列,包括时间线内的事件状况的变化。在另一示例中,批可以包括从一个或多个源接收的或指向一个或多个目的地的一种或多种类型的控制消息序列。
在所图示的设备控制接口1700中,使用合并的VGI消息的批可以使主机设备1702能够基于用批标识的执行时间线来控制耦合至远程设备1722的外围设备。批和时间线可以取代通过物理边带GPIO传输的命令和控制信号。批和时间线的使用使得主机设备1702能够使用第一时基生成控制信令,允许主机设备1702根据第二时基传输批,并且使得远程设备1722处的外围设备能够根据第三时基操作。时基可以为用于捕获批的时钟信号和用于对该批的执行的定时的时钟信号定义不同的频率。时基可以定义批在起点和执行点的不同运行时间。时基可以定义执行批的开始时间或批的不同部分的不同开始时间。时间线可以定义批的执行的重复模式,包括一次性执行(无重复)、连续重复(由此后续执行在完成前一执行之后立即重启)、周期性执行(由此批的执行以定义的速率发起)以及调度执行(由此每个执行具有定义的开始时间)。时间线可以定义要被执行的执行数量。时间线可以定义执行将被终止的时间或批执行的进一步重复不被执行的结束时间。
在某些方面中,时间线可以独立于其关联批进行传输。在一些情况下,时间线可以在其关联批之前被提供。在一些情况下,时间线可以通过带外通信来提供。在一些情况下,时间线可以由主机设备1702或远程设备1722基于操作条件的变化、应用请求的接收或响应于与一个或多个外围设备相关联的控制机制来更新。用于执行批的时基可以定义用于断言或修改GPIO的信令状态的单位间隔。在一个示例中,设备可以根据每微秒提供一个传递状态的时基来控制(即,状态间隔=1μs)。
接收器可以检查接收到的消息的保真度,并且可以在误差被检测到时请求重传。在一些情况下,当消息被正确接收到时,接收器可以通过传输ACK来确认传输。在一些情况下,当由批指定的一个或多个动作已被成功完成时,接收器可以通过传输ACK来确认传输。FSM1706、1726可以被配置为分组、解分组在一个或多个消息中传输的批,该消息已经被适应、配置或定义用于设备控制接口1700。FSM 1706、1726可以被操作为使得本地和远程外围设备都可以被透明地控制。
根据某些方面,系统设计可以使用设备控制接口1700简化或优化。在一个示例中,当主机设备1702可以使用仅硬件的控制接口时,远程设备中的外围控制器和处理器可以被简化或省略,由此远程外围设备通过FSM 1726的操作来控制。主机设备1702控制远程外围设备的能力可以减少某些设备(诸如传感器和其他IoT设备)的引脚计数和复杂性。
根据某些方面,具有对应时间线的多个批可以被创建,并且被提供给远程设备,以实现远程设备或远程外围设备的功能的快速重新配置或改变。在一些情况下,单个批可以被提供有多个时间线,以适应操作条件的变化或实现不同的操作模式。多个时间线可以定义不同的状态间隔、延迟、时基、开始时间、周期性或执行调度。批和/或时间线可以根据当前或指定的操作条件选择。
根据某些方面,设备控制接口1700可以使用任何类型的通信链路1720进行操作,包括有线和无线链路。在许多应用程序中,通过使用具有关联时间线的批,主机控制和设备执行可以在时间上解耦。这种解耦使得设备控制接口1700能够容忍与通信链路相关联的延迟和时延。在一些实施方式中,PHY 1708、1728可以在一个或多个分组、数据报或事务中传输批1716、1736,而不影响在常规系统中会经历的远程外围设备的操作的连续性。在另一示例中,主机设备1702可以在执行开始调度之前传输具有足够时间裕度的批和对应时间线,使得显著的传输延迟可以被适应。在另一示例中,PHY 1708、1728可以在分组化期间拆分批,而不在同一数据报或分组中传输完整的单个VGI消息。由这些和其他方面所提供的灵活性允许使用广泛的有线和无线通信链路来将主机设备1702与远程设备1722连接。
根据本公开的某些方面定义的一些程序可以根据指定的执行参数(诸如定义或配置的延迟、时基以及远程外围设备处的操作状态和条件)来调节远程设备1722中的批的执行。传输一次批并且多次执行批的能力可以减少主机到设备的通信开销。通过提供不同的时间线来修改操作的能力也可以减少主机到设备的通信开销。在一些情况下,远程设备1722可以被配置有多个时间线,从而使得能够快速重新配置远程设备1722或远程外围设备。通信开销的减少可以降低网络或总线利用率,并且可以提供增加的网络或总线容量,同时减少主机设备1702和远程设备1722处的功耗。
根据某些方面,设备控制接口1700可以使得远程设备1722能够自主操作。自主操作可以使远程设备1722能够重新配置或重置自身,而不需要激活PHY 1728或不需要与主机设备1702建立的连接的可用性。例如,PHY 1728可以被用于连接至无线网络,并且可以在接收到具有对应时间线的一个或多个批之后空闲或置于节能休眠状态。
根据某些方面,设备控制接口1700可以实施公共的高级批协议和/或语言,它允许独立于网络或通信链路架构控制本地和远程设备。独立于网络或通信链路架构可以允许系统的无缝重新配置,并且可以促进外围设备和远程设备在整个系统中的快速重新部署。设备控制接口1700的某些方面与多个网络或通信链路架构兼容。设备控制接口1700可以在一个或多个模式下操作,包括半双工、全双工、单向、多点、广播或多播模式。
根据某些方面,可以先验地或在携带批的相同消息中传递时间线。在一个示例中,时间线可以在写入或定义基础切换速率的配置消息中定义时基。基础切换速率定义状态可以改变的速率。在一个示例中,配置消息可以定义1MHz的基础切换速率,使得每个状态或事件可以每微秒改变一次。在另一示例中,配置消息可以使远程设备使用从接收到的消息的数据速率导出的切换速率。在一些情况下,使用自由运行时钟在接收设备中实施切换速率。在一些情况下,使用从串行总线或从无线无线电收发器接收的时钟信号在接收设备中实施切换速率。可以使用带内或带外信令或消息来配置切换速率和/或用于实施切换速率的方法。切换速率可以被静态地或动态地配置。
根据某些方面,每个批项目可以在相对于共享参考时间点的具体时间偏移之后执行。参考时间点可以通过通信链路指示,或者可以由远程设备1722确定或任意设置。
图17还包括与在设备控制接口1700中交换的批和时间线相关联的消息流1738和1748的图示。正向消息流1738仅示出从主机设备1702传输到远程设备1722的批和时间线。反向消息流1748仅示出从远程设备1722传输到主机设备1702的批和时间线。根据本文公开的某些方面,批1742、1746、1752在传输之前可以有协议报头1740、1744、1750,这些协议报头向接收器指示一个或多个后续分组、数据报或者分组或数据报的字段的性质。在一些情况下,协议报头1754可以在没有后续批的情况下被传输。协议报头1740、1744、1750、1754可以包括标识后续批,指示后续是否有批以及定义一个或多个批1742、1746、1752的执行模式的字段。例如,协议报头1740、1744、1750可以标识和定义后续批1742、1746、1752中的有效载荷的功能性。协议报头1740、1744、1750还可以标识在执行1742、1746、1752时要使用的时间线。协议报头1740、1744、1750还可以定义指示批应该如何被执行的参数。无伴随协议报头1754可以标识先前批1736中的有效载荷,并且可以修改先前批1736的执行参数。例如,无伴随协议报头1754可以指示先前批1736应该以两倍的时基频率执行(即,状态间隔将被减半)。
处理电路和方法的示例
图18是图示了采用有限状态机810来优化虚拟GPIO时延的装置1800的硬件实施方式的示例的图。在一些示例中,装置1800可以配置有限状态机810的操作。在一些示例中,装置1800可以执行本文公开的一个或多个功能。根据本公开的各个方面,本文公开的元件或元件的任何部分或元件的任何组合可以使用处理电路1802来实施。处理电路1802可以包括一个或多个处理器1804,该处理器1804由硬件和软件模块的某种组合控制。处理器1804的示例包括微处理器、微控制器、DSP、GPU、SoC、ASIC、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、状态机、定序器、门控逻辑、分立硬件电路和被配置为执行贯穿本公开描述的各种功能性的其他合适硬件。一个或多个处理器1804可以包括专用处理器,它执行具体功能并且可以由软件模块1816中的一个软件模块1816配置、增强或控制。一个或多个处理器1804可以通过在初始化期间加载的软件模块1816的组合来配置,并且还可以通过在操作期间加载或卸载一个或多个软件模块1816来配置。
在所图示的示例中,处理电路1802可以利用总线架构来实施,该总线架构通常由总线1810表示。取决于处理电路1802的具体应用和总体设计约束,总线1810可以包括任何数量的互连总线和桥接器。总线1810将包括一个或多个处理器1804和存储装置1806的各种电路链接在一起。存储装置1806可以包括存储器设备和海量存储设备,并且在本文中可以被称为计算机可读介质和/或处理器可读介质。总线1810还可以链接各种其他电路,诸如定时源、定时器、外围设备、电压调节器和功率管理电路。总线接口1808可以提供总线1810与一个或多个收发器1812a、1812b之间的接口。收发器1812a、1812b可以针对处理电路所支持的每种联网技术提供。在一些情况下,多种联网技术可以共享收发器1812a、1812b中发现的一些或全部电路系统或处理模块。每个收发器1812a、1812b提供用于通过传输介质与各种其他装置通信的部件。在一个示例中,收发器1812a可以被用于将装置1800耦合至多线总线。在另一示例中,收发器1812b可以被用于将装置1800连接至无线网络。取决于装置1800的性质,用户接口1818(例如键盘、显示器、扬声器、麦克风、操纵杆)也可以被提供,并且可以直接或通过总线接口1808被通信地耦合至总线1810。
处理器1804可以负责管理总线1810并且用于一般处理,该一般处理可以包括执行存储在计算机可读介质中的软件,该计算机可读介质可以包括存储装置1806。在这方面,包括处理器1804的处理电路1802可以被用于实施本文公开的任何方法、功能和技术。存储装置1806可以被用于存储在执行软件时由处理器1804操纵的数据,并且软件可以被配置为实施本文公开的方法中的任何一种。
处理电路1802中的一个或多个处理器1804可以执行软件。软件应该被广义地解释为表示指令、指令集、代码、代码分段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行线程、程序、函数、算法等,无论是否称为软件、固件、中间件、微码、硬件描述语言或其他。软件可以以计算机可读形式驻留在存储装置1806中或外部计算机可读介质中。外部计算机可读介质和/或存储装置1806可以包括非瞬态计算机可读介质。通过示例,非瞬态计算机可读介质包括磁性存储设备(例如硬盘、软盘、磁条)、光盘(例如压缩盘(CD)或数字多功能盘(DVD))、智能卡、闪存设备(例如“闪存驱动器”、卡、棒或密钥驱动器)、RAM、ROM、可编程只读存储器(PROM)、包括EEPROM的可擦除PROM(EPROM)、寄存器、可移除盘和用于存储可以由计算机访问和读取的软件和/或指令的任何其他合适的介质。通过示例,计算机可读介质和/或存储装置1806还可以包括载波、传输线和用于传输可以由计算机访问和读取的软件和/或指令的任何其他合适的介质。计算机可读介质和/或存储装置1806可以驻留在处理电路1802中、处理器1804中、处理电路1802外部,或者被分布在包括处理电路1802的多个实体上。计算机可读介质和/或存储装置1806可以被实施在计算机程序产品中。通过示例,计算机程序产品可以在分组材料中包括计算机可读介质。本领域技术人员将认识到如何取决于特定应用和强加在整个系统上的总体设计约束来最好地实施贯穿本公开呈现的所描述功能性。
存储装置1806可以维护在可加载代码分段、模块、应用、程序等(在本文中可以被称为软件模块1816)中维护和/或组织的软件。软件模块1816中的每个软件模块1816可以包括指令和数据,当被安装或加载到处理电路1802上并且由一个或多个处理器1804执行时,这些指令和数据有助于控制一个或多个处理器1804的操作的运行时图像1814。当被执行时,某些指令可以使处理电路1802根据本文描述的某些方法、算法和过程来执行功能。
软件模块1816中的一些软件模块1816可以在处理电路1802的初始化期间被加载,并且这些软件模块1816可以配置处理电路1802以实现本文公开的各种功能的执行。例如,一些软件模块1816可以配置处理器1804的内部设备和/或逻辑电路1822,并且可以管理对外部设备(诸如收发器1812a、1812b、总线接口1808、用户接口1818、定时器、数学协处理器等)的访问。软件模块1816可以包括控制程序和/或操作系统,它与中断处置器和设备驱动器交互,并且控制对处理电路1802提供的各种资源的访问。资源可以包括存储器、处理时间、对收发器1812a、1812b、用户接口1818的访问等。
处理电路1802的一个或多个处理器1804可以是多功能的,由此一些软件模块1816被加载并且被配置为执行不同的功能或相同功能的不同实例。例如,一个或多个处理器1804可以附加地适用于管理响应于来自用户接口1818、收发器1812a、1812b和设备驱动器的输入而发起的后台任务。为了支持多个功能的执行,一个或多个处理器1804可以被配置为提供多任务环境,由此多个功能中的每个功能被实施为由一个或多个处理器1804根据需要或期望服务的任务集合。在一个示例中,多任务环境可以使用分时程序1820来实施,该分时程序1820在不同任务之间传递对处理器1804的控制,由此每个任务在完成任何未完成的操作时和/或响应于诸如中断等输入将对一个或多个处理器1804的控制返回给分时程序1820。当任务具有对一个或多个处理器1804的控制时,处理电路被有效地专用于与控制任务相关联的功能所处理的目的。分时程序1820可以包括操作系统、在循环基础上传送控制的主环路、根据功能的优先级分配对一个或多个处理器1804的控制的功能和/或通过向处置功能提供对一个或多个处理器1804的控制来响应外部事件的中断驱动主环路。
图19是可以在被耦合至通信链路的设备处执行的方法的流程图1900。执行该方法所涉及的某些电路可以由有限状态机配置。附加地,或备选地,有限状态机可以执行该方法的某些部分。
在框1902,设备可以表示批中的物理GPIO的一系列信令状态,该批包括虚拟GPIO消息和控制消息的序列。在框1904,设备可以生成包括定时信息的第一报头,该定时信息被配置为控制批的执行的定时。在框1906,设备可以通过通信链路传输第一报头。在框1908中,设备可以通过通信链路传输该批。
在一些示例中,设备可以从处理电路接收事件,并且在虚拟GPIO消息和控制消息的序列中所包括的虚拟GPIO信息中的一个虚拟GPIO消息中表示事件。设备可以使用控制信令状态的捕获率的第一时基来从物理GPIO捕获一系列信令状态。定时消息可以定义用于从虚拟GPIO消息和控制消息的序列中提取GPIO信令状态的第二时基,该第二时基不同于第一时基。在一些情况下,GPIO的一系列信令状态中的至少一些可以从处理电路接收。
在各种实施方式中,定时信息定义与GPIO信令状态的持续时间相对应的状态间隔,该GPIO信令状态由虚拟GPIO消息和控制消息的序列中所包括的每个虚拟GPIO消息表示。定时信息可以定义在从虚拟GPIO消息和控制消息的序列中提取GPIO信令状态之前要被观察的延迟。定时信息可以定义用于从虚拟GPIO消息的序列中重复地提取GPIO信令状态的重复率。
在一些示例中,设备可以生成修改第一报头中提供的定时信息的第二报头,并且在传输批之后通过通信链路传输第二报头。在一些实施方式中,物理GPIO的一系列信令状态被配置为控制通过通信链路可访问的远程设备中的外围设备。通信链路可以包括串行总线或无线网络。
图20是可以在被耦合至通信链路的设备处执行的方法的流程图2000。执行该方法所涉及的某些电路可以由有限状态机配置。附加地,或备选地,有限状态机可以执行该方法的某些部分。
在框2002中,设备可以接收包括控制消息和虚拟GPIO消息的序列的批,该序列表示物理GPIO的一系列信令状态。在框2004中,设备可以接收包括定时信息的第一报头,该定时信息被配置为控制批的执行的定时。在框2006中,使用定时信息,设备可以从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态。
在各种示例中,控制消息和虚拟GPIO消息的序列中的至少一个消息表示指向处理电路的事件。定时信息可以定义用于从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态的时基。
在一些实施方式中,定时信息定义:与GPIO信令状态的持续时间相对应的状态间隔,该GPIO信令状态由控制消息和虚拟GPIO消息的序列中所包括的每个虚拟GPIO消息表示;在从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态之前要被观察的延迟;或者用于从控制消息和虚拟GPIO消息的序列中重复地提取GPIO信令状态的重复率。
在一些示例中,设备可以接收包括修改后的定时信息的第二报头,并且使用修改后的定时消息从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态。设备可以使用物理GPIO的一系列信令状态的重复来控制外围设备。通信链路可以包括串行总线或无线网络。
图21是图示了采用处理电路2102的装置2100的硬件实施方式的简化示例的图。该装置可以根据本文公开的某些方面实施桥接电路。处理电路通常具有控制器或处理器2116,它可以包括一个或多个微处理器、微控制器、数字信号处理器、定序器和/或状态机。处理电路2102可以用总线架构来实施,该总线架构通常由总线2120表示。取决于处理电路2120的具体应用和总体设计约束,总线2102可以包括任何数量的互连总线和桥接器。总线2120将包括由控制器或处理器2116、模块或电路2104、2106和2108以及处理器可读存储装置2118表示的一个或多个处理器和/或硬件模块的各种电路链接在一起。一个或多个物理层电路和/或模块2114可以被提供以支持通过使用多线总线2112、通过天线2122(例如到无线网络)等实施的通信链路上的通信。总线2120也可以链接各种其他电路,诸如定时源、外围设备、电压调节器和功率管理电路,这是本领域众所周知的,因此将不再进一步描述。
处理器2116负责一般处理,包括执行存储在处理器可读存储装置2118上的软件、代码和/或指令。处理器可读存储装置2118可以包括非瞬态存储介质。当由处理器2116执行时,该软件使处理电路2102针对任何特定装置执行上述各种功能。处理器可读存储介质可以被用于存储在执行软件时由处理器2116操纵的数据。处理电路2102还包括模块2104、2106和2108中的至少一个模块。模块2104、2106和2108可以是在处理器2116中运行、驻留/存储在处理器可读存储装置2118中的软件模块、被耦合至处理器2116的一个或多个硬件模块或其某种组合。模块2104、2106和2108可以包括微控制器指令、状态机配置参数或其某种组合。
在一种配置中,装置2100包括被配置为配置和/或管理时间线的模块和/或电路2108(包括用于采样或生成GPIO状态的时基)、被配置为处置GPIO状态(包括采样和驱动GPIO状态)的模块和/或电路2108。装置2100可以包括被配置为管理包括VGI消息的分组和数据报的模块和/或电路2104,该VGI消息包括与物理GPIO、软件事件、软件发起的硬件、软件监测的硬件GPIO等相关的VGI消息。
在一个示例中,装置2100包括:收发器电路,被配置为通过通信链路将装置2100耦合至远程设备;以及控制器、处理器或FSM,被配置为表示批中的物理GPIO的一系列信令状态,该批包括控制消息和虚拟GPIO消息的序列,生成包括定时信息的第一报头,该定时信息包括被配置为控制该批的执行的定时,通过通信链路传输第一报头,并且通过通信链路传输该批。
控制器、处理器或FSM还可以被配置为从处理电路接收一系列信令状态的第一部分,并且使用控制信令状态的捕获率的第一时基从物理GPIO捕获一系列信令状态的第二部分。定时信息可以定义用于从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态的第二时基。第二时基可以不同于第一时基。定时信息可以定义:与GPIO信令状态的持续时间相对应的状态间隔,该GPIO信令状态由控制消息和虚拟GPIO消息的序列中所包括的每个虚拟GPIO消息表示;在从虚拟GPIO消息的序列中提取GPIO信令状态之前要被观察的延迟;或者用于从控制消息和虚拟GPIO消息的序列中重复地提取GPIO信令状态的重复率。物理GPIO的一系列信令状态可以被配置为控制通过通信链路可访问的远程设备中的外围设备。
在另一示例中,装置2100包括:收发器电路,被配置为通过通信链路将装置2100耦合至远程设备;以及控制器、处理器或FSM,被配置为接收包括虚拟GPIO消息的序列的批,该序列表示物理GPIO的一系列信令状态,接收包括定时信息的第一报头,该定时信息被配置为控制批的执行的定时,并且使用定时信息从虚拟GPIO消息的序列中提取GPIO信令状态。
定时信息可以定义用于从虚拟GPIO消息的序列中提取GPIO信令状态的时基。定时信息可以定义:与GPIO信令状态的持续时间相对应的状态间隔,该GPIO信令状态由控制消息和虚拟GPIO消息的序列中所包括的每个虚拟GPIO消息表示;在从虚拟GPIO消息的序列中提取GPIO信令状态之前要被观察的延迟;或者用于从控制消息和虚拟GPIO消息的序列中重复地提取GPIO信令状态的重复率。控制器、处理器或FSM还可以被配置为使用物理GPIO的一系列信令状态的重复来控制外围设备。
处理器可读存储装置2118可以包括由处理器2116(FSM的控制器)可执行的代码。在第一示例中,处理器可读存储装置2118包括用于以下操作的代码:表示批中的物理GPIO的一系列信令状态,该批包括控制消息和虚拟GPIO消息的序列;生成包括定时信息的第一报头,该定时信息包括被配置为控制批的执行的定时;通过通信链路传输第一报头;以及通过通信链路传输该批。
处理器可读存储装置2118可以包括用于以下操作的代码:从处理电路接收事件,并且在控制消息和虚拟GPIO消息的序列中所包括的消息中的一个消息中表示事件。处理器可读存储装置2118可以包括用于以下操作的代码:使用控制信令状态的捕获率的第一时基来从物理GPIO捕获一系列信令状态。定时消息可以定义用于从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态的第二时基,该第二时基不同于第一时基。
处理器可读存储装置2118可以包括用于以下操作的代码:从处理电路接收GPIO的一系列信令状态。定时信息可以定义与GPIO信令状态的持续时间相对应的状态间隔,该GPIO信令状态由控制消息和虚拟GPIO消息的序列中所包括的每个虚拟GPIO消息表示。定时信息可以定义在从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态之前要被观察的延迟和/或用于从控制消息和虚拟GPIO消息的序列中重复地提取GPIO信令状态的重复率。
处理器可读存储装置2118可以包括用于以下操作的代码:生成第二报头,该第二报头修改第一报头中提供的定时信息,并且在传输批之后通过通信链路传输第二报头。物理GPIO的一系列信令状态可以被配置为控制通过通信链路可访问的远程设备中的外围设备。通信链路可以包括串行总线和/或无线网络。
在一些示例中,处理器可读存储装置2118可以包括用于以下操作的代码:接收包括控制消息和虚拟GPIO消息的序列的批,该序列表示物理GPIO的一系列信令状态;接收包括定时信息的第一报头,该定时信息包括被配置为控制批的执行的定时;以及使用定时信息,从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态。
在一些示例中,控制消息和虚拟GPIO消息的序列中的至少一个虚拟GPIO消息表示指向处理电路的事件。定时信息定义:用于从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态的时基;与GPIO信令状态的持续时间相对应的状态间隔,该GPIO信令状态由控制消息和虚拟GPIO消息的序列中所包括的每个虚拟GPIO信息表示;在从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态之前要被观察的延迟和/或用于从控制消息和虚拟GPIO消息的序列中重复地提取GPIO信令状态的重复率。
在一些示例中,处理器可读存储装置2118包括用于以下操作的代码:接收包括修改后的定时信息的第二报头,并且使用修改后的定时消息从控制消息和虚拟GPIO消息的序列中提取GPIO信令状态。处理器可读存储装置2118可以包括用于以下操作的代码:使用物理GPIO的一系列信令状态的重复来控制外围设备。通信链路可以包括串行总线和/或无线网络。
要理解的是,所公开的过程中的步骤的具体顺序或层次是示例性方法的图示。基于设计偏好,要理解的是,过程中的步骤的具体顺序或层次可以被重新布置。进一步地,一些步骤可以被组合或省略。所附方法权利要求以样本顺序呈现各个步骤的元件,并且并不意味着被限于所呈现的具体顺序或层次。
先前描述被提供是为了使本领域的任何技术人员能够实践本文描述的各个方面。对于本领域技术人员来说,这些方面的各种修改是是明显的,并且本文定义的一般原理可以被应用于其他方面。因此,权利要求不旨在被限于本文示出的方面,而是符合与语言权利要求一致的全部范围,其中除非专门这样规定,否则对单数元件的引用不旨在表示“一个且仅一个”,而是“一个或多个”。除非具体规定,否则术语“一些”指的是一个或多个。与本领域的普通技术人员已知或稍后已知的贯穿本公开描述的各个方面的元件等效的所有结构和功能通过引用被明确地并入本文,并且旨在由权利要求涵盖。而且,无论这种公开内容是否在权利要求中明确叙述,本文公开的内容都不旨在专用于公众。除非元件是使用短语“用于…的部件”明确叙述的,否则任何权利要求元件都不应被解释为部件加功能。
Claims (30)
1.一种用于数据通信的方法,包括:
表示批中的物理通用输入/输出(GPIO)的一系列信令状态,所述批包括虚拟GPIO消息和控制消息的序列;
生成包括定时信息的第一报头,所述定时信息被配置为控制所述批的执行的定时;
通过通信链路传输所述第一报头;以及
通过所述通信链路传输所述批。
2.根据权利要求1所述的方法,还包括:
从处理电路接收事件;以及
在虚拟GPIO消息和控制消息的所述序列中所包括的消息中表示所述事件。
3.根据权利要求1所述的方法,还包括:
使用控制信令状态的捕获率的第一时基,捕获所述物理GPIO的所述一系列信令状态。
4.根据权利要求3所述的方法,其中所述定时消息定义用于从虚拟GPIO消息和控制消息的所述序列中提取GPIO信令状态的第二时基,所述第二时基不同于所述第一时基。
5.根据权利要求1所述的方法,还包括:
从处理电路接收所述物理GPIO的所述一系列信令状态。
6.根据权利要求1所述的方法,其中所述定时信息定义与GPIO信令状态的持续时间相对应的状态间隔,所述GPIO信令状态由虚拟GPIO消息和控制消息的所述序列中所包括的每个虚拟GPIO消息表示。
7.根据权利要求1所述的方法,其中所述定时信息定义在从虚拟GPIO消息和控制消息的所述序列中提取GPIO信令状态之前要被观察的延迟。
8.根据权利要求1所述的方法,其中所述定时信息定义用于从虚拟GPIO消息和控制消息的所述序列中重复地提取GPIO信令状态的重复率。
9.根据权利要求1所述的方法,还包括:
生成第二报头,所述第二报头修改所述第一报头中提供的所述定时信息;以及
在传输所述批之后,通过所述通信链路传输所述第二报头。
10.根据权利要求1所述的方法,其中所述物理GPIO的所述一系列信令状态被配置为控制能够通过所述通信链路访问的远程设备中的外围设备。
11.根据权利要求1所述的方法,其中所述通信链路包括串行总线。
12.根据权利要求1所述的方法,其中所述通信链路包括无线网络。
13.一种用于数据通信的装置,包括:
收发器电路,被配置为通过通信链路将所述装置耦合至远程设备;以及
控制器,被配置为:
表示批中的物理通用输入/输出(GPIO)的一系列信令状态,所述批包括虚拟GPIO消息和控制消息的序列;
生成包括定时信息的第一报头,所述定时信息被配置为控制所述批的执行的定时;
通过所述通信链路传输所述第一报头;以及
通过所述通信链路传输所述批。
14.根据权利要求13所述的装置,其中所述控制器还被配置为:
从处理电路接收所述物理GPIO的所述一系列信令状态的第一部分;以及
使用控制信令状态的捕获率的第一时基,捕获所述物理GPIO的所述一系列信令状态的第二部分,
其中所述定时消息定义用于从虚拟GPIO消息和控制消息的所述序列中提取GPIO信令状态的第二时基,所述第二时基不同于所述第一时基。
15.根据权利要求13所述的装置,其中所述定时信息定义:与GPIO信令状态的持续时间相对应的状态间隔,所述GPIO信令状态由虚拟GPIO消息和控制消息的所述序列中所包括的每个虚拟GPIO消息表示;在从虚拟GPIO消息和控制消息的所述序列中提取GPIO信令状态之前要被观察的延迟;或者用于从虚拟GPIO消息和控制消息的所述序列中重复地提取GPIO信令状态的重复率。
16.根据权利要求13所述的装置,其中所述物理GPIO的所述一系列信令状态被配置为控制能够通过所述通信链路访问的所述远程设备中的外围设备。
17.一种用于数据通信的方法,包括:
接收包括控制消息和虚拟通用输入/输出(GPIO)消息的序列的批,所述序列表示物理GPIO的一系列信令状态;
接收包括定时信息的第一报头,所述定时信息被配置为控制所述批的执行的定时;以及
使用所述定时信息,从控制消息和虚拟GPIO消息的所述序列中提取GPIO信令状态。
18.根据权利要求17所述的方法,其中控制消息和虚拟GPIO消息的所述序列中的至少一个消息表示指向处理电路的事件。
19.根据权利要求17所述的方法,其中所述定时信息定义用于从控制消息和虚拟GPIO消息的所述序列中提取GPIO信令状态的时基。
20.根据权利要求17所述的方法,其中所述定时信息定义与GPIO信令状态的持续时间相对应的状态间隔,所述GPIO信令状态由控制消息和虚拟GPIO消息的所述序列中所包括的每个虚拟GPIO消息表示。
21.根据权利要求17所述的方法,其中所述定时信息定义在从控制消息和虚拟GPIO消息的所述序列中提取GPIO信令状态之前要被观察的延迟。
22.根据权利要求17所述的方法,其中所述定时信息定义用于从控制消息和虚拟GPIO消息的所述序列中重复地提取GPIO信令状态的重复率。
23.根据权利要求17所述的方法,还包括:
接收第二报头,所述第二报头包括修改后的定时信息;以及
使用所述修改后的定时信息,从控制消息和虚拟GPIO消息的所述序列中提取GPIO信令状态。
24.根据权利要求17所述的方法,还包括:
使用所述物理GPIO的所述一系列信令状态的重复来控制外围设备。
25.根据权利要求17所述的方法,其中所述批是从串行总线接收的。
26.根据权利要求17所述的方法,其中所述批是从无线网络接收的。
27.一种用于数据通信的装置,包括:
收发器电路,被配置为通过通信链路将所述装置耦合至远程设备;以及
控制器,被配置为:
接收包括控制消息和虚拟通用输入/输出(GPIO)消息的序列的批,所述序列表示物理GPIO的一系列信令状态;
接收包括定时信息的第一报头,所述定时信息被配置为控制所述批的执行的定时;以及
使用所述定时信息,从控制消息和虚拟GPIO消息的所述序列中提取GPIO信令状态。
28.根据权利要求27所述的数据通信装置,其中所述定时信息定义用于从控制消息和虚拟GPIO消息的所述序列中提取GPIO信令状态的时基。
29.根据权利要求27所述的数据通信装置,其中所述定时信息定义:与GPIO信令状态的持续时间相对应的状态间隔,所述GPIO信令状态由控制消息和虚拟GPIO消息的所述序列中所包括的每个虚拟GPIO消息表示;在从控制消息和虚拟GPIO消息的所述序列中提取GPIO信令状态之前要被观察的延迟;或者用于从控制消息和虚拟GPIO消息的所述序列中重复地提取GPIO信令状态的重复率。
30.根据权利要求27所述的数据通信装置,其中所述控制器还被配置为:
使用所述物理GPIO的所述一系列信令状态的重复来控制外围设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/061,357 | 2020-10-01 | ||
US17/061,357 US11513991B2 (en) | 2020-10-01 | 2020-10-01 | Batch operation across an interface |
PCT/US2021/044017 WO2022072052A1 (en) | 2020-10-01 | 2021-07-30 | Batch operation across an interface |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116075815A true CN116075815A (zh) | 2023-05-05 |
Family
ID=77448091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180063079.0A Pending CN116075815A (zh) | 2020-10-01 | 2021-07-30 | 跨接口的批操作 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11513991B2 (zh) |
EP (1) | EP4204978A1 (zh) |
CN (1) | CN116075815A (zh) |
TW (1) | TW202219781A (zh) |
WO (1) | WO2022072052A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11880314B1 (en) * | 2018-07-27 | 2024-01-23 | Dialog Semiconductor B.V. | Microcontroller for driving an external device |
US11675008B2 (en) * | 2020-02-28 | 2023-06-13 | Western Digital Technologies, Inc. | Embedded PHY (EPHY) IP core for FPGA |
US20220165318A1 (en) * | 2020-11-20 | 2022-05-26 | Texas Instruments Incorporated | Automatic serial bus equalization trim |
TWI797554B (zh) * | 2021-02-05 | 2023-04-01 | 新唐科技股份有限公司 | 系統單晶片及控制方法 |
US11914725B2 (en) * | 2021-05-28 | 2024-02-27 | Dell Products L.P. | Operating system agnostic and secure bi-directional data handling |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364638B2 (en) * | 2005-09-15 | 2013-01-29 | Ca, Inc. | Automated filer technique for use in virtualized appliances and applications |
US8555265B2 (en) * | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
US9619427B2 (en) * | 2014-04-21 | 2017-04-11 | Qualcomm Incorporated | Hybrid virtual GPIO |
TWI576694B (zh) | 2014-12-02 | 2017-04-01 | 英業達股份有限公司 | 硬碟運行狀態檢測系統 |
CN107209739A (zh) * | 2015-02-04 | 2017-09-26 | 高通股份有限公司 | 电压模式和电流模式设备枚举 |
US9563398B2 (en) * | 2015-03-06 | 2017-02-07 | Qualcomm Incorporated | Impedance-based flow control for a two-wire interface system with variable frame length |
US9971666B2 (en) * | 2015-03-06 | 2018-05-15 | Qualcomm Incorporated | Technique of link state detection and wakeup in power state oblivious interface |
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 |
US10872049B2 (en) * | 2016-01-29 | 2020-12-22 | Analog Devices, Inc. | GPIO-to-GPIO communication on a multi-node daisy-chained network |
CN106375077A (zh) | 2016-08-29 | 2017-02-01 | 宁波三星医疗电气股份有限公司 | Si4463芯片采用gpio模式实现数据传输的方法 |
AU2017319719B2 (en) * | 2016-09-05 | 2022-09-22 | IOT.nxt BV | Software-defined device interface system and method |
US10521392B2 (en) * | 2017-05-10 | 2019-12-31 | Qualcomm Incorporated | Slave master-write/read datagram payload extension |
US20180359117A1 (en) * | 2017-06-12 | 2018-12-13 | Qualcomm Incorporated | Virtual channel instantiation over vgi/vgmi |
US20190050366A1 (en) * | 2017-08-14 | 2019-02-14 | Qualcomm Incorporated | Device, event and message parameter association in a multi-drop bus |
US10515044B2 (en) * | 2017-11-01 | 2019-12-24 | Qualcomm Incorporated | Communicating heterogeneous virtual general-purpose input/output messages over an I3C bus |
-
2020
- 2020-10-01 US US17/061,357 patent/US11513991B2/en active Active
-
2021
- 2021-07-30 EP EP21758916.7A patent/EP4204978A1/en not_active Withdrawn
- 2021-07-30 CN CN202180063079.0A patent/CN116075815A/zh active Pending
- 2021-07-30 TW TW110128088A patent/TW202219781A/zh unknown
- 2021-07-30 WO PCT/US2021/044017 patent/WO2022072052A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022072052A1 (en) | 2022-04-07 |
US20220107912A1 (en) | 2022-04-07 |
US11513991B2 (en) | 2022-11-29 |
EP4204978A1 (en) | 2023-07-05 |
TW202219781A (zh) | 2022-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10482055B2 (en) | Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine | |
CN116075815A (zh) | 跨接口的批操作 | |
US10515044B2 (en) | Communicating heterogeneous virtual general-purpose input/output messages over an I3C bus | |
WO2017099949A1 (en) | Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces | |
US20180357199A1 (en) | Slave-to-slave communication in i3c bus topology | |
US20190227971A1 (en) | Architecture for consolidating multiple sources of low-bandwidth data over a serial bus | |
US10572410B2 (en) | Function-specific communication on a multi-drop bus for coexistence management | |
TW201902142A (zh) | 混合vgpio狀態交換中的輸入/輸出方向解碼 | |
TW202014904A (zh) | I3c上的低等待時間虛擬通用輸入/輸出 | |
US10579549B2 (en) | Staggered transmissions on a multi-drop half-duplex bus | |
US20200201804A1 (en) | I3c device timing adjustment to accelerate in-band interrupts | |
US10733121B2 (en) | Latency optimized I3C virtual GPIO with configurable operating mode and device skip | |
TW202230152A (zh) | 定時觸發器同步增強 | |
TW201937902A (zh) | 用於低延遲事件訊息之多點虛擬通用輸入/輸出 | |
EP3475836A1 (en) | Accelerated i3c master stop | |
US11520729B2 (en) | I2C bus architecture using shared clock and dedicated data lines | |
US11243902B2 (en) | Intra-module serial communication interface for radio frequency devices | |
US20200233829A1 (en) | Multi-lane system power management interface | |
US11360916B2 (en) | Group slave identifier time-multiplexed acknowledgment for system power management interface | |
TW202125270A (zh) | 基於序列執行來控制射頻前端觸發的應用時間 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |