CN111884987A - 电子设备和用于电子设备的方法 - Google Patents

电子设备和用于电子设备的方法 Download PDF

Info

Publication number
CN111884987A
CN111884987A CN202010355829.9A CN202010355829A CN111884987A CN 111884987 A CN111884987 A CN 111884987A CN 202010355829 A CN202010355829 A CN 202010355829A CN 111884987 A CN111884987 A CN 111884987A
Authority
CN
China
Prior art keywords
port
data
ports
electronic device
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010355829.9A
Other languages
English (en)
Other versions
CN111884987B (zh
Inventor
罗杰·德韦恩·艾萨克
艾伦·T·鲁贝格
杰夫·库佩特
爱德华·帕克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Molex LLC
Original Assignee
Keyssa Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keyssa Systems Inc filed Critical Keyssa Systems Inc
Publication of CN111884987A publication Critical patent/CN111884987A/zh
Application granted granted Critical
Publication of CN111884987B publication Critical patent/CN111884987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/02Transmitters
    • H04B1/04Circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/06Receivers
    • H04B1/16Circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种电子设备以及用于电子设备的方法。通用协议引擎电路根据可配置通信协议来聚合可以使用不同通信协议的多个通信端口的数据。在发送器模式下,通用协议引擎电路参照限定端口序列的时隙表,以根据从端口接收到的输入数据生成输出数据,并且通过有线通信链路或无线通信链路发送该输出数据。在接收器模式下,通用协议引擎电路参照时隙表以将来自通信链路的输入数据解析为针对端口中的每个端口的输出数据。时隙表的端口序列可以根据通信端口的速度或其他特性进行配置。

Description

电子设备和用于电子设备的方法
技术领域
本公开内容涉及电子设备的连接,更具体地涉及一种电子设备和用 于电子设备的方法。
背景技术
电子设备使用具有不同协议连接的端口来彼此通信。然而,过多不同 的协议连接限制了系统的可扩展性并且增加了成本。大量的协议连接可能 导致过多的线、协议、机械连接器、信号完整性问题(例如,静电放电、 电磁干扰、射频干扰等)、物理链路(PHY)和/或功耗。例如,机械连接 器的使用使成本增加,并且机械连接器的使用在使用多种协议的情况下会 导致大量的PHY、引脚或焊盘,从而导致低效的数据流管理。此外,使 用大量协议连接的系统会引起对规格、功率、成本和制造过程的投入。
发明内容
通用协议引擎电路提供根据在时隙表中限定的端口序列在两个设备 之间聚合多个通信端口的通信链路。端口序列可以限定用于聚合使用不同 通信协议的端口的可配置通信协议。在一些实施方式中,电子设备包括通 用协议引擎电路,该通用协议引擎电路包括存储器、聚合器电路和发送器。 存储器存储限定端口序列的时隙表,来自一个或更多个通信端口的数据要 在该端口序列中被发送,通信端口中的每个通信端口与相应的通信协议关 联。聚合器电路耦接至存储器,并且聚合器电路根据相应的通信协议从一 个或更多个通信端口接收输入数据。聚合器电路通过根据在时隙表中限定 的端口序列从一个或更多个通信端口中选择输入数据,来生成输出数据。 发送器根据输出数据生成输出流并且将该输出流提供至有线耦合器或无 线耦合器,以传输至另外的电子设备。
在一些实施方式中,时隙表中的端口序列指示:混合在一起的第一端 口的一个或更多个选择和第二端口的一个或更多个选择。当时隙表指示选 择第一端口时,聚合器电路从第一端口选择第一数据,并且当时隙表指示 选择第二端口时,聚合器电路从第二端口选择第二数据,以根据端口序列 生成输出数据。
在一些实施方式中,与一个或更多个通信端口的第一端口相关联的第 一通信协议被配置成:用于以与一个或更多个通信端口的第二端口相关联 的第二通信协议相比更高的速度进行数据通信。输出数据包括根据端口序 列混合在一起的第一端口的第一输入数据和第二端口的第二输入数据。
在一些实施方式中,与一个或更多个通信端口的第一端口相关联的第 一通信协议被配置成:用于以与一个或更多个通信端口的第二端口相关联 的第二通信协议相比更高的速度进行数据通信,并且该第一端口在端口序 列中具有比该第二端口更高的选择频率。
在一些实施方式中,通用协议引擎电路还包括接收器和解析器电路。 接收器从有线耦合器或无线耦合器接收输入流,并且根据该输入流生成其 他输入数据。解析器电路耦接至存储器和接收器。解析器电路从接收器接 收其他输入数据并且根据在时隙表中限定的端口序列,根据其他输入数据 生成针对一个或更多个通信端口中的每个通信端口的其他输出数据。
在一些实施方式中,时隙表中的端口序列指示:混合在一起的第一端 口的一个或更多个选择和第二端口的一个或更多个选择。当时隙表指示选 择第一端口时,解析器电路向第一端口分配第一数据;当时隙表指示选择 第二端口时,解析器电路向第二端口分配第二数据,以根据端口序列生成 其他输出数据。
在一些实施方式中,电子设备包括另外的通用协议引擎电路,所述另 外的通用协议引擎电路根据存储在另外的时隙表中的另外的端口序列通 过另外的有线耦合器或无线耦合器传递数据。电子设备还包括可配置交叉 开关,该可配置交叉开关耦接至一个或更多个通信端口、通用协议引擎电 路和另外的通用协议引擎电路。可配置交叉开关根据时隙表将一个或更多 个通信端口中的至少一个通信端口连接至通用协议引擎电路,并且根据另外的时隙表将一个或更多个通信端口中的至少一个通信端口连接至另外 的通用协议引擎电路。
在一些实施方式中,通用协议引擎电路在发射器模式下与在接收器模 式下操作的另外的通用协议引擎电路并行操作。
一些实施方式包括用于根据可配置通信协议进行数据传递的方法。该 方法包括:存储限定端口序列的时隙表,来自一个或更多个通信端口的数 据要在该端口序列中被发送,通信端口中每个通信端口与相应的通信协议 关联;根据相应的通信协议从一个或更多个通信端口接收输入数据;通过 根据在时隙表中限定的端口序列从一个或更多个通信端口中选择输入数 据,来生成输出数据;根据该输出数据生成输出流;并且将该输出流提供至有线耦合器或无线耦合器,以传输至电子设备。
附图说明
图1示出了根据一些实施方式的电子设备之间的通信。
图2示出了根据一些实施方式的电子设备之间的通信。
图3示出了根据一些实施方式的电子设备之间的通信。
图4示出了根据一些实施方式的虚拟管道输入/输出(VPIO)的通用 协议引擎(UPE)。
图5示出了根据一些实施方式的VPIO的时隙表。
图6、图7和图8示出了根据一些实施方式的模块化VPIO。
图9示出了根据一些实施方式的用于根据VPIO的时隙表来发送数据 的处理的流程图。
图10示出了根据一些实施方式的用于根据VPIO的时隙表来接收数 据的处理的流程图。
图11A示出了根据一些实施方式的可编程编码器。
图11B示出了根据一些实施方式的可编程解码器。
仅出于说明的目的,附图描绘了本公开内容的实施方式。本领域技术 人员根据以下描述将容易认识到,在不脱离本文描述的公开内容的原理或 所指出的益处的情况下,可以采用本文示出的结构和方法的替选实施方 式。
具体实施方式
配置概述
虚拟管道输入/输出(VPIO或虚拟管道I/O)包括一个或更多个通用 协议引擎(UPE)电路,该通用协议引擎电路有助于针对两个或更多个设 备之间的多个通信端口(也被称为“端口”)的数据传递。每个设备可以 包括虚拟管道I/O,其中虚拟管道I/O提供了耦接的设备的多个端口之间 的接口。每个UPE根据可配置通信协议或“通用”通信协议来聚合可以 使用不同通信协议中的一个或更多个通信协议的多个端口的数据,并且每 个UPE通过有线通信链路或无线通信链路(或“虚拟管道”)传递聚合数 据。VPIO允许系统聚合低速工业标准和高速工业标准两者以及专有协议, 以使用可配置通信协议或通用通信协议在一个或更多个链路上进行同时 传输。可配置通信协议或通用通信协议可以由存储在存储器中的限定了端 口序列的时隙表来限定,要被发送的数据应当从这些端口序列输入并且接 收到的数据被输出至这些端口。
在发送器模式下,UPE电路参照时隙表中的端口序列,以通过根据端 口序列从端口中选择输入数据来根据通信协议生成输出数据。在接收器模 式下,UPE电路参照时隙表中的端口序列,以将来自通信链路的输入数据 解析为针对端口中的每个端口的输出数据。端口可以使用不同的通信协 议。通用通信协议的端口序列可以根据端口的速度或其他特性来配置。除 其他情况之外,由使用多个(例如,传统或标准)协议、物理层或机械连 接器引起的限制也会减少。UPE电路使系统能够在设备级与现有协议保持 OS级的兼容性,而不需要新的设备驱动程序。时隙表可以在数据传输之 前被编程,或者可以在数据传输期间被动态地重新编程。UPE电路可以监 视应用需求或传递数据的变化并且相应地更新时隙表。例如,如果通过端 口传递较高分辨率的视频,则可以将时隙表的附加时隙分配给用于视频传 递的端口。在另一示例中,如果带宽需求减少,则时隙表中分配给端口的 时隙可以减少。
此外,虚拟管道I/O可以包括用于设备之间的多个通信链路的多个 UPE电路。每个UPE电路可以根据时隙表通过可配置交叉开关连接至端 口。每个UPE电路可以根据通信协议使用不同的时隙表,以有助于数据 传递。不同的UPE电路可以在不同的模式诸如发送器模式或接收器模式 下并行操作,以在设备之间传递数据。不同的UPE电路也可以根据时隙表而被分配不同的端口。可以使用多个UPE电路用于增加设备之间的数 据传递的带宽。
图1示出了根据一些实施方式的系统100,系统100包括彼此通信的 电子设备102和电子设备104。设备102包括主机系统106、虚拟管道I/O 108和极高频(EHF)耦合器110。设备104包括主机系统112、虚拟管道I/O 114和EHF耦合器116。
主机系统106耦接至虚拟管道I/O 108,并且虚拟管道I/O 108耦接至 EHF耦合器110。虚拟管道I/O是与主机系统106和EHF耦合器100分离 的集成电路。主机系统106包括处理器118和多个数据链路层(LINK) 120(包括LINK 120a和LINK 120b)。在一些实施方式中,处理器118和 LINK 120经由提供这些部件之间的通信的电路板连接,而虚拟管道I/O 108在另一电路板上。在这样的独立配置中,虚拟管道I/O 108可以与各 种类型的主机系统106集成,而不需要对主机系统106进行修改。每个 LINK 120是下述电路:该电路将比特在传输之前编码为分组并且将接收 到的分组解码返回比特;该电路可以通过发送具有必要的同步、差错控制 和流控制的分组来提供可靠的数据传递;并且该电路可以提供逻辑链路控制、媒体访问控制、硬件寻址、错误检测和与物理层接口。每个LINK 120 可以被划分为子层,所述子层包括但不限于媒体访问控制(MAC)子层 和逻辑链路控制(LLC)子层。每个LINK120可以是开放系统互连(OSI) 模型的协议层(例如,层2)。
每个LINK 120实现主机系统106中用于外部通信的端口。例如,LINK 120a提供端口162,而LINK 120b提供另外的端口164。尽管为了简单起 见示出了两个端口162、164,但是主机系统106可以包括不同数目的端 口。这些端口可以包括:用于在主机系统106与虚拟管道I/O 108不在同 一封装件中的情况下的外部通信的端口;或者用于在主机系统106和虚拟 管道I/O 108共用同一封装件的情况下的内部通信的端口。处理器118可 以耦接至LINK 120中的每一个,以经由端口进行通信。不同的端口可以 使用不同的协议,所述协议包括高速协议和低速协议。在一些实施方式中, 一个或更多个LINK 120可以与处理器118集成(例如,作为驱动程序)。
虚拟管道I/O 108是提供主机系统106与设备104的虚拟管道I/O 114 之间的数据传递的电路。虚拟管道I/O 108可以在发送器模式、接收器模 式或者收发器模式下操作。在发送器模式下,虚拟管道I/O 108提供对来 自主机系统106的端口162、164的数据的聚合,以经由EHF耦合器110 或有线连接进行传输。在接收器模式下,虚拟管道I/O 108对来自EHF耦 合器110的数据进行解析,以经由端口162、164传输至主机系统106。在 收发器模式下,虚拟管道I/O 108同时作为发送器和接收器来操作。例如, 一个或更多个端口可以专用于发送,而一个或更多个其他端口可以专用于 接收。
虚拟管道I/O 108包括链路抽象层124(包括链路抽象层124a和 124b)、通用协议引擎(UPE)126和收发器(Tx/Rx)128。虚拟管道I/O 108经由虚拟管道I/O 108的链路抽象层124耦接至主机系统106的LINK 120。主机系统106中的每个LINK 120耦接至虚拟管道I/O108的对应链 路抽象层124,以将端口连接至UPE 126。每个链路抽象层124可以适于 经由适合于端口162、164的协议的传输介质诸如线缆与主机系统106进 行通信。
在一些实施方式中,每个链路抽象层124包括下述物理层(或PHY): 该物理层提供用于经由传输介质(例如,线缆)连接至LINK 120的电接 口;该物理层限定物理特性,诸如连接、电压水平和定时;并且该物理层 限定在物理链路上传输原始比特而不是逻辑数据分组的手段。比特流可以 被分组为码字或符号,并且该比特流被转换成通过传输介质发送的物理信 号。每个链路抽象层124可以包括基于标准的PHY,该基于标准的PHY 合并了一个或更多个标准协议的PHY规范。标准协议的示例可以包括通 用串行总线(USB)、DisplayPort、I2C、GPIO、PCIe 3、PCIe边带、MIPI 或下一代摄像装置协议。每个PHY可以是开放系统互连(OSI)模型的物 理层(例如,层1)。
UPE 126是控制虚拟管道I/O 108的操作的电路。UPE 126经由链路 抽象层124连接至主机系统106的多个端口162、164。在发送器模式下, UPE 126从端口162、164中的每个端口接收输入数据并且对输入数据进 行聚合以生成输出数据166。特别地,UPE 126基于根据在时隙表(图5 所示)中所限定的端口序列从端口162、164中选择输入数据来生成输出数据166,如将在下面并且还参照图5进一步详细说明的。经聚合的输出 数据166被提供至收发器128,以由EHF耦合器110经由通信链路150进 行传输。在接收器模式下,UPE 126从收发器128接收输入数据168并且 根据在时隙表(图5所示)中限定的端口序列对输入数据168进行解析, 以生成针对端口162、164中的每个端口的输出数据,如将在下面并且还 参照图5进一步详细说明的。输入数据168经由链路抽象层124和LINK 120经由相应端口被发送至主机系统106。在图1中,输入数据166和输 出数据168被示出为经由单独的连接发送以示出双向数据传递,但是在一 些实施方式中,输入数据166和输出数据168可以使用同一连接被发送。
时隙表中的端口序列限定了由设备102和设备104共用的用于对通过 虚拟管道I/O 108和虚拟管道I/O 114发送的数据进行聚合和解析的通用通 信协议。通用通信协议集成了来自多个端口的数据,这些端口可以使用不 同(例如,标准)的通信协议。例如,在一些实施方式中,UPE 126执行 对使用通用通信协议的数据的附加处理,例如,应用加密、解密、认证和 /或纠错。UPE 126可以基于应用或传递数据的带宽需求来限定时隙表中的 端口序列,并且可以响应于带宽需求的变化来动态地调整(例如,在数据 传递期间)时隙表中的端口序列。通用通信协议的处理不限于与端口的标 准通信协议相关联的预定义操作。关于UPE 126的操作的附加细节结合图 4至图11讨论。
收发器128在EHF耦合器110与UPE 126之间传递数据。收发器128 可以包括具有串行器的发送器以及具有解串器的接收器。当作为发送器操 作时,串行器将来自UPE 126的输出数据166的并行流转换为输出数据的 串行流,所述输出数据的串行流被发送至EHF耦合器110,以通过通信链 路150(例如,包括作为传输介质的空气)进行无线传输。当作为接收器 操作时,解串器将来自EHF耦合器110的串行输入流转换为输入数据168 的并行流,所述输入数据168的并行流被发送至UPE 126。在一些实施方 式中,虚拟管道I/O 108可以包括单独的发送器和接收器。
EHF耦合器110(与EHF耦合器116相连)在设备102的虚拟管道 I/O 108与设备104的虚拟管道I/O 114之间提供无线通信链路。EHF耦合 器110是包括用于无线传输的天线的EHF通信设备。天线可以被配置成 在EHF频谱(30GHz至300GHz)中操作,并且天线可以被配置成通过 通信链路150发送和/或接收电磁信号。在一些实施方式中,EHF耦合器 110利用载波信号执行对所发送的数据的调制并且执行对接收到的信号的 解调以生成接收数据。在一些实施方式中,设备102经由有线通信链路耦 接至设备104,并且EHF耦合器110和116可以使用有线连接器来代替。
关于设备102的讨论可以适用于设备104。例如,虚拟管道I/O 114 可以如虚拟管道I/O 108一样在发送器模式、接收器模式或收发器模式下 操作。当虚拟管道I/O 108在发送器模式下操作时,虚拟管道I/O 114在接 收器模式下操作。类似地,当虚拟管道I/O 114在发送器模式下操作时, 虚拟管道I/O 108在接收器模式下操作。因此,虚拟管道I/O 114包括:收 发器130,其耦接至EHF耦合器116;以及UPE 132,其耦接至多个链路 抽象层134(包括链路抽象层134a和链路抽象层134b)。每个链路抽象层 134耦接至主机系统112的LINK 138。主机系统112包括用于提供端口 162、164的LINK 138(诸如LINK 138a和LINK138b)以及处理器140。 虚拟管道I/O 108和虚拟管道I/O 114在主机系统106与主机系统112之间 提供将多个端口聚合到通用通信协议中的通信链路。
图2示出了根据一些实施方式的包括彼此通信的电子设备202和电子 设备204的系统200。与图1所示的设备102和设备104不同,设备202 和设备204均包括与主机系统206或设备的一些其他集成系统集成的虚拟 管道I/O。此处,虚拟管道I/O可以是主机系统的集成逻辑部件,例如, 主机系统的子系统。
设备202包括主机系统206,主机系统206包括处理器218、LINK 220 (包括LINK220a和LINK 220b)、虚拟管道I/O 208和EHF耦合器210。 设备202和设备204与图1所示的设备102和设备104相比不同在于虚拟 管道I/O 208、214分别与主机系统206、212集成。例如,虚拟管道I/O 208 可以与处理器218、LINK 220和主机系统206的其他部件集成在同一电路板上。
对于每个端口和LINK 220,虚拟管道I/O 208包括虚拟非接触PHY (VcPHY)224。每个VcPHY 224是链路抽象层的实例。每个VcPHY 224 包括非接触链路层(cLINK)252和非接触PHY(cPHY)254,如针对 VcPHY 224a所示出的。尽管为了简单起见未针对VcPHY 224b进行显示, 但是每个VcPHY 224可以包括cLINK 252和cPHY 254。
具有通用物理接口使得主机系统能够通过EHF非接触链路或一些其 他类型的链路与另外的主机系统进行无缝通信可能是有利的。主机系统可 以意在使用可用的基于标准的协议中的任意一个(或更多个)或者通过针 对EHF通信优化的协议进行通信。然而,这些协议中的每一个都将需要 与协议的规范对应的唯一的LINK 120实现方式(例如,如图1所示)。针 对与虚拟管道I/O的电接口而实现基于标准的协议规范进而使用电磁信令 与对方虚拟管道I/O进行通信的负担,可能会对主机系统的设计和虚拟管 道I/O自身两者施加不适当的约束。这些约束可能包括附加的PHY、引脚、 电信号和管芯面积。如果主机系统必须使用多于一个基于标准的协议进行 通信,则会加剧这个问题。
VcPHY 224可以将基于标准的LINK 220规范转变为cLINK 252规范 和cPHY 254规范,以实现跨非接触链路的无缝且可靠的数据传递。VcPHY 224a/234a可以提供到LINK220a/238a的无缝接口,该接口可以基本上符 合标准规范中的一个或更多个。
LINK 220a/238a可以与VcPHY 224a/234a通信,就好像VcPHY是根 据相应标准规范的PHY实现方式一样。例如,如果LINK 220a/238a是 DisplayPort LINK,则该LINK可以使用与DisplayPort PHY基本上类似的 接口与VcPHY 224a/234a接口。
LINK 220a/238a和cLINK 252/262可以包含独立的训练会话。LINK 220a/238a的训练可能指向端到端(或者主机系统206/212之间)的链路, 并且cLINK 252/262可以通过虚拟管道I/O 208/214将cLINK 252/262的训 练指向非接触通信链路(或“非接触链路”)150。
VcPHY 224的若干个属性可以使得基于标准的LINK 220能够被接口 至VcPHY224,因此,将主机系统206中的PHY实现方式“虚拟化”为 基于标准的LINK和更高的层(LINK220之上的层,也被称为“上层”)。
术语“虚拟的”、“虚拟化”或“无缝”指的是系统或设备中可以不受 其他功能层或功能块中的一个或更多个功能层或功能块影响的部分。
在一些实施方式中,VcPHY 224a/234a中的cLINK 252/262可以启用、 控制和提供与非接触链路有关的各种功能,这些功能包括(但不限于)下 述:确保非接触设备之间的初始连接已经建立,包括对链路的训练;将由 收发器(SerDes)输出的数据划分为数据帧;或者对来自cPHY 254接收 器的数据成功到达的确认进行处理,从而确保来自对方设备/同伴设备的 入数据已经被成功接收,诸如通过分析帧内的比特模式来确保来自对方设 备/同伴设备的入数据已经被成功接收。
cLINK 252还可以包括涉及使虚拟管道I/O能够与其他虚拟管道I/O 中的一个或更多个虚拟管道传送数据和控制/管理数据的功能。这些功能 可以包括以下中的一个或更多个:发现功能、配置功能和维护功能,这些 功能涉及启用和维护跨多个虚拟管道I/O的非接触链路。可以在虚拟管道 I/O 208中实现包括轮询功能、信标功能、安全验证功能中的功能中的一 个或更多个功能。这些功能可以涉及通过虚拟管道I/O 208与另一虚拟管 道I/O214的非接触通信。cLINK 252还可以包括:涉及主机系统206与 虚拟管道I/O 208之间的电接口中的一个或更多个电接口的功能;以及/或 者通过虚拟管道I/O 208与另一虚拟管道I/O 214的非接触通信的功能。通 过将这些接口中的两个接口的LINK功能基本上移动至主机系统206中 VcPHY 224a中的单个cLINK 252,可以显著降低其他部件的复杂性,其 中收发器228包括用于启用EHF非接触通信的模拟功能。例如,图1所 示的虚拟管道I/O 108中的发现功能、配置功能和维护功能中的任意功能 可以被移动至与主机系统206集成的cLINK252。因此,VcPHY 224a中 的cLINK 252可以用于涉及下述电接口中的一者或两者的发现、配置和维 护功能:主机系统206的LINK 220与虚拟管道I/O 208之间的电接口;以 及虚拟管道I/O 208与对方虚拟管道I/O 214的非接触链路150之间的电接 口。
与LINK 220通信的设备的软件或应用层可能不会“知道”VcPHY 224 的存在,VcPHY 224本质上不同于标准兼容的PHY;然而,VcPHY具有 标准兼容的PHY。例如,设备的软件或应用层可能不知道EHF非接触链 路150。不“知道”意味着更高层中相关层或块的功能可以独立于底层物 理层。此外,由于VcPHY 224a已经嵌入了并入在VcPHY 224a中的LINK(或cLINK)功能,因此可以简化cLINK层的功能。通过实现连接至 VcPHY的基于标准的LINK提供的优点是:主机系统的上层可以需要最 少的更新或者不需要更新。这是可能的,这是因为OS内核和系统中的现 有驱动程序软件(针对链路220设计的)可以被重复使用,以在VcPHY 和虚拟管道I/O上进行通信。这个优点有助于在各种系统中的采用集成的 虚拟管道I/O,而无需对现有主机系统的协议或软件栈做出实质改变。这 使系统能够在设备级与现有协议维持OS级兼容性,而无需新的设备驱动 程序。LINK 220可以被实现或虚拟化为软件层,并且许多虚拟化LINK 可以通过软件接口与一个或更多个物理VcPHY接口。
VcPHY 224耦接至UPE 226,以将端口262、264连接至UPE 226。 UPE 226控制虚拟管道I/O 208的操作,该操作包括数据的聚合和解析。 UPE 206经由收发器228耦接至EHF耦合器210,EHF耦合器21经由通 信链路150将设备202连接至设备204的EHF耦合器216。在一些实施方 式中,在虚拟管道I/O 208与虚拟管道I/O 214之间使用有线连接,而不是 EHF耦合器210、216。
关于设备202的讨论适用于设备204。例如,设备204包括主机系统 212,主机系统212包括虚拟管道I/O 214、LINK 238(包括LINK 238a和 LINK 238b)和处理器240。虚拟管道I/O 214包括VcPHY 234(包括VcPHY 234a和VcPHY 234b),VcPHY 234a和VcPHY 234b耦接至UPE 232。每 个VcPHY 234可以包括cLINK和cPHY,如由VcPHY 234a的cLINK 262 和cPHY264所示出的。UPE 232经由收发器230耦接至EHF耦合器216。
图3示出了根据一些实施方式的包括彼此通信的电子设备302和电子 设备304的系统300。除了每个设备的虚拟管道I/O与EHF耦合器集成在 诸如耦合器集成电路(IC)上之外,图1中对电子设备102和电子设备 104的讨论可以适用于电子设备302和电子设备304。每个耦合器IC连接 至主机系统,并且每个耦合器IC可以包括与所连接的主机系统分离的电 路板。
例如,设备302包括耦合器IC 350,耦合器IC 350包括虚拟管道I/O 108和EHF耦合器110。耦合器IC 350连接至主机系统106。设备304包 括耦合器IC 352,耦合器IC 352包括虚拟管道I/O 114和EHF耦合器116。 耦合器IC 352连接至主机系统112。
图4示出了根据一些实施方式的虚拟管道I/O的通用协议引擎(UPE) 400。UPE 400是下述示例:如图1所示的独立的虚拟管道I/O 108/114的 UPE 126/132的示例;如图2所示的与主机系统集成的虚拟管道I/O 208/214的UPE 226/232的示例;或者如图3所示的与包括耦合器的耦合 器IC集成的虚拟管道I/O 108/144的UPE 126/132的示例。UPE 400耦接至收发器428。UPE 400包括聚合器404、解析器406、存储时隙表410 的存储器408、可编程编码器412、可编程解码器414、控制器416、数据 缓冲器430以及数据缓冲器432。
在发送器模式下,聚合器404和可编程编码器412被激活,以将数据 从端口传递至作为发送器操作的收发器428。数据缓冲器430耦接至多个 端口,例如经由如图1所示出的针对UPE 126/132的链路抽象层124/134 耦接至端口162、164,或者经由如图2所示出的针对UPE 226/232的 VcPHY 224/234耦接至端口262、264,或者经由如图3所示出的针对UPE126/132的链路抽象层124/134耦接至端口162,164。聚合器404耦接至 数据缓冲器430和存储器408。存储器408存储限定端口序列的时隙表 410。数据缓冲器430从多个端口接收输入数据422并且存储输入数据422。 在一些实施方式中,数据缓冲器430包括针对每个端口存储从该端口接收 到的输入数据422的先进先出(FIFO)存储器。聚合器404根据在时隙表410中限定的序列从数据缓冲器430的FIFO存储器中选择输入数据422 并聚合输入数据422,以生成输出数据424。
可编程编码器412从聚合器404接收输出数据424并且执行编码或其 他处理,以生成输出数据426。在一些实施方式中,可编程编码器412执 行认证和/或纠错。在一些实施方式中,可编程编码器412可以被旁路、 去激活或者从UPE 402中省略。
收发器428接收输出数据426并且生成用于EHF耦合器或其他通信 部件例如有线连接器的输出流426。收发器428可以包括串行器,该串行 器将输出数据426的并行流转换为由EHF耦合器或其他通信部件发送的 串行输出流448。
在接收器模式下,解析器406和可编程解码器414被激活,以将数据 从作为接收器操作的收发器428传递至端口。数据缓冲器432耦接至多个 端口,例如,经由如图1所示出的针对UPE 126/132的链路抽象层124/134 耦接至多个端口,或者经由如图2所示出的针对UPE 226/232的VcPHY 224/234耦接至多个端口,或者经由如图3所示出的针对UPE 126/132的 链路抽象层124/134耦接至多个端口。数据缓冲器432耦接至解析器406。 解析器406和聚合器404可以耦接至同一端口,以在端口与收发器428之 间提供双向通信。在一些实施方式中,UPE 400包括单个数据缓冲器,该 单个数据缓冲器执行数据缓冲器430和数据缓冲器432的功能。解析器 406还耦接至存储限定端口序列的时隙表410的存储器408。
收发器428从EHF耦合器或有线连接器接收输入流440并且生成输 入数据442。收发器428可以包括解串行器,该解串行器将串行输入流440 转换为输入数据442的并行流。
可编程解码器414从收发器428接收输入数据442并且执行解码或其 他处理,以生成输入数据444。例如,输入数据442可以由另一虚拟管道 I/O中的在发送器模式下在传输之前应用编码算法的另一UPE生成,并且 可编程解码器414可以通过应用相应的解码算法对接收到的输入数据442 进行解码。在一些实施方式中,可编程解码器414执行认证和/或纠错。 在一些实施方式中,可编程解码器414可以被旁路、去激活或者从UPE 400 中省略。
解析器406从可编程解码器414接收输入数据444并且通过根据在时 隙表410中限定的端口序列对输入数据444进行解析来生成输出数据446。 输出数据446被存储在数据缓冲器432中,数据缓冲器432将输出数据 446提供至相应端口。在一些实施方式中,数据缓冲器432包括针对每个 端口的FIFO存储器,该FIFO存储器存储提供至端口的输出数据446。
控制器416控制UPE 400的操作。例如,控制器416可以控制操作模 式,包括在发送器模式、接收器模式或收发器模式之间的切换。控制器 416还可以对在时隙表410中限定的端口序列进行配置。在一些实施方式 中,控制器416提供针对UPE 400的电力管理,例如,处理进入待机模式 和退出待机模式的转换。在一些实施方式中,控制器416控制UPE 400 在启动模式与任务模式之间的操作。在启动模式下,出于初始化的目的, 设备的UPE 400的操作基于来自另外的连接设备的指令在发送器模式与 接收器模式之间改变。在任务模式下,UPE 400可以主要在接收器模式下 操作(例如,用于高速数据传输,如视频数据),其中操作周期性地切换 至发送器模式(例如,用于低速数据传输,如,用于I2C业务、GPIO数 据等)。
在收发器模式下,UPE 400发送数据以及接收数据。数据缓冲器430、 聚合器404、可编程编码器412和收发器428进行操作以提供数据的发送。 收发器428、可编程解码器414、解析器406和数据缓冲器432进行操作 以提供数据的接收。UPE 400可以使用不同的时隙表410用于接收和发送, 或者可以使用公共时隙表410用于接收和发送。因此,存储器408可以存 储一个或更多个时隙表。用于接收和发送的端口序列可以不同或者可以相 同。
图5示出了根据一些实施方式的通用协议引擎的时隙表410。时隙表 410包括时隙502的序列,每个时隙502与特定端口对应。时隙表410限 定了使用多个(例如,标准)协议对多个端口的数据进行聚合的通用通信 协议。在一个实施方式中,第一时隙被限定在时隙表的左上角处,并且针 对每行,后续时隙以光栅状扫描模式从左至右限定,并且针对后续行,后 续时隙以光栅状扫描模式从上至下限定,但是时隙的顺序也可以在时隙表 410中以其他方式限定。时隙表410的HDR时隙指示时隙表410的开始。 IDLE时隙用于链路监视业务和块循环冗余校验(CRC)。SKIP时隙是未 使用的时隙,SKIP时隙可以被分配端口或其他业务。时隙表410中示出 的端口包括PORT1、PORT2和PORT3。
在一些实施方式中,时隙表410是(例如,软件)可编程的。时隙表 410的时隙502可以在数据传递开始时分配,或者可以在数据传递期间例 如基于用户控制、系统需求的变化、业务的变化(例如,视频分辨率可以 改变为更高的分辨率或更低的分辨率,从而导致带宽需求的变化)或一些 其他原因而动态地更新。在每个通用协议引擎中可以存在多个时隙表。一 个主时隙表用于数据的主动发送,一个主时隙表可以用于数据的主动接 收,并且在其他情况下,该时隙主表可以在数据的发送与接收之间共用。 可以存在附加时隙表,该附加时隙表包含以下的一个或更多个:(1)在初 始化期间使用的默认时隙表;以及(2)在主时隙表的在使用中的同时可 以在后台被编程的一个或更多个次时隙表。次时隙表可以在预定义的可编 程的边界处与主时隙表交换,以使得能够进行从一个时隙表配置到第二时 隙表配置的无缝传输。
在发送器模式下,聚合器404参照时隙表410以根据在时隙表410中 限定的序列从端口中选择输入数据422,以生成输出数据424。参照时隙 表410的前两行,在两个HDR时隙和IDLE时隙之后,首先选择PORT2, 并且然后在接下来的八个时隙中选择PORT1,并且然后选择PORT2,然 后在接下来的四个时隙中选择PORT1,然后选择PORT3等。在接收器模 式下,解析器406参照时隙表410以将输入数据444解析为输出数据446 中针对端口的多个通道。例如,输入数据444根据第一时隙被发送至 PORT2,然后根据接下来的八个时隙被发送至PORT1,然后被发送至 PORT2,然后根据接下来的四个时隙被发送至PORT1,然后被发送至PORT3等。在收发器模式下,存在通过端口进行数据的发送和接收两者。 在一些实施方式中,发送和接收可以使用不同的端口或不同的时隙表。某 些端口可以被分配用于发送数据,而其他端口可以被分配用于接收数据。
在一些实施方式中,根据端口的速度来调度时隙表410的时隙502。 例如,PORT1可以是高速端口,而PORT3可以是低速端口。因此,在时 隙502中以比PORT3更高的频率来调度PORT1。在一些实施方式中,根 据端口的相对速度将端口调度至时隙表410的时隙502中,其中与较低速 端口相比,较高速端口被调度至更多时隙中。
模块化虚拟管道I/O
多个UPE可以通过可配置交叉开关连接,以在设备之间提供多个通 信链路。多个通信链路增加了设备之间的通信带宽。不同的UPE可以并 行地且以不同的模式(例如,发送器、接收器或收发器)操作。每个通信 链路由UPE控制,该UPE可以选择性地将具有不同速度和协议的多个端 口集成至由UPE的一个或更多个时隙表限定的通用协议中。
图6示出了根据一些实施方式的模块化虚拟管道I/O 600。模块化虚 拟管道I/O600包括多个UPE 400a至UPE 400d,UPE 400a至UPE 400d 经由可配置交叉开关602耦接至端口604、606、608、610和612。可配 置交叉开关602耦接至链路抽象层124/224,其中,每个链路抽象层124/224 连接至不同的端口604、606、608、610和612。模块化虚拟管道I/O 600可以是独立的、与主机系统集成、或者与耦合器IC集成。尽管为了简单 起见未示出,但是每个UPE 400可以包括如图4所示的存储时隙表410 的存储器408、控制器416和其他部件。在一些实施方式中,模块化虚拟 管道I/O 600的多个UPE 400共用控制UPE 400的操作的控制器416。
UPE 400中的每个UPE经由通信链路616连接至连接设备614。通信 链路616可以是有线连接或无线(例如,EHF)连接。在一些实施方式中, 模块化虚拟管道I/O 600经由多个通信链路616连接至单个设备614。
每个UPE 400可以选择性地在发送器模式、接收器模式或收发器模式 下操作。在UPE 400的发送器模式下,可配置交叉开关602根据UPE 400 的时隙表将端口604至端口612中的一个或更多个端口连接至UPE 400。 例如,UPE 400a可以存储图5所示的时隙表410,其中,端口604与时隙 表410中的PORT1对应,端口606与PORT2对应,端口608与PORT3 对应等。因此,可配置交叉开关602将端口604、606和608连接至UPE 400a。UPE 400a通过根据在时隙表410中限定的端口序列从端口604、606 和608中进行选择来生成输出数据,并且该输出数据通过EHF耦合器或 有线连接作为输出流来发送。UPE 400a至UPE 400d中的每一个可以使用 不同的时隙表和不同的EHF耦合器(或有线连接器),使得模块化虚拟管 道I/O 600提供多个通信链路616。在UPE 400的接收器模式下,可配置 交叉开关602根据在UPE 400的时隙表中限定的端口序列将UPE 400连 接至相应的端口604至端口612,以用于输出数据传输。不同的UPE 400a 至UPE 400d还可以对通过UPE 400发送的数据执行不同类型的加密、解密、纠错或其他类型的处理。在收发器模式下,UPE 400可以使用一个或 更多个时隙表来分配端口604至端口612以用于发送或接收。在一些实施 方式中,UPE 400中的一个或更多个可以被去激活或以省电模式操作。
示例设备实施方式
UPE 400将多个低速端口和高速端口从一个设备连接至另外的设备。 端口类型和端口协议可以基于设备类型而不同。在图6的示例中,连接设 备包括摄像装置控制系统和传感器模块。摄像装置控制系统的主机系统可 以是片上系统(SoC),并且传感器模块的主机系统可以是传感器。端口 604至端口612有助于SoC与传感器之间的通信。端口604和端口606是 移动工业处理器接口(MIPI)端口,端口606是摄像装置协议端口,端口 610是I2C端口,并且端口612是GPIO端口。MIPI端口604和MIPI端 口606以及下一代摄像装置协议端口608是高速端口的示例,而I2C端口 610和GPIO端口612是低速端口的示例。
图7示出了根据一些实施方式的模块化虚拟管道I/O 700。模块化虚 拟管道I/O700可以用在其中连接设备是计算设备例如移动设备或台式计 算机而另外的连接设备是外围设备的示例中。端口704至端口712有助于 计算设备与外围设备之间的通信。端口704是通用串行总线(USB)超高 速端口,端口706是USB 2.0端口,端口708是DisplayPort(显示端口) 端口,端口710是I2C端口,并且端口712是GPIO端口。USB SS端口 704、USB 2.0端口706和DisplayPort端口708是高速端口的示例,而I2C 端口710和GPIO端口712是低速端口的示例。
图8示出了根据一些实施方式的模块化虚拟管道I/O 800。模块化虚 拟管道800可以用在其中设备102和设备104是服务器的示例中。端口 804至端口812有助于服务器之间的通信。端口804、806、808和810均 为高速外围部件互连(PCIe)3.0端口,而端口812是PCIe边带端口。PCIe 3端口804至PCIe 3端口810是高速端口的示例,而PCIe边带端口812 是低速端口的示例。
虚拟管道I/O操作
图9示出了根据一些实施方式的用于根据时隙表发送数据的处理900 的流程图。处理900可以包括更少的步骤或附加步骤并且步骤可以以不同 的顺序进行。
虚拟管道I/O或模块化虚拟管道I/O的UPE 400生成905限定端口序 列的时隙410。时隙表410可以基于应用或所传递数据的需求或者端口的 特性例如速度来生成。时隙表410可以存储在UPE 400的存储器408中。 时隙表410可以由UPE 400(例如,控制器416)或另外的设备生成。例 如,包括UPE的第一设备可以与包括另外的UPE的第二设备共用时隙表410,使得第一设备和第二设备可以根据聚合多个端口的数据的通用协议 (即端口序列、编码、纠错等)进行通信。同一时隙表410存储在第一设 备和第二设备中。
由时隙表410限定的端口序列提供了可以不同于各个端口的通信协 议的通用通信协议。端口序列中端口的频率可以与端口的相对速度对应。 例如,如果第一端口与第二端口相比是更高速度的端口,则第一端口在时 隙表中的端口序列中可以具有比第二端口更高的选择频率。因此,具有不 同速度的各种类型的端口可以并入时隙表410和通用通信协议中。
UPE 400从端口接收910输入数据。例如,控制器416将UPE 400置 于发送器模式或收发器模式。在发送器模式或收发器模式下的发送下,数 据缓冲器430从端口接收输入数据并且存储输入数据。在一些实施方式 中,数据缓冲器430包括多个FIFO存储器,每个存储器存储来自端口的 输入数据。
在一些实施方式中,UPE 400是模块化虚拟管道I/O 600的多个UPE 之一。此处,可配置交叉开关602根据UPE 400的时隙表410将UPE 400 连接至端口中的一个或更多个。可配置交叉开关602可以根据其他UPE 各自的时隙表为其他UPE执行类似的连接。
UPE 400基于根据在时隙表410中限定的端口序列从端口中选择输入 数据来生成915输出数据。聚合器404参照时隙表以根据在时隙表410中 限定的端口序列从数据缓冲器430中检索输入数据。聚合器404可以从数 据缓冲器430的多个FIFO存储器中选择输入数据,每个FIFO存储器存 储来自相应端口的输入数据。
例如,时隙表中的端口序列指示:混合在一起的第一端口的选择中的 一个或更多个选择和第二端口的选择中的一个或更多个选择。当时隙表指 示选择第一端口时,聚合器从第一端口中选择第一数据,并且当时隙表指 示选择第二端口时,聚合器从第二端口中选择第二数据,以根据端口序列 生成输出数据。在另一示例中,时隙表可以限定第一端口的一个或更多个 选择及第二端口的零个或更多个选择。
在一些实施方式中,时隙表410的端口序列限定了用于数据传输的通 信协议,该通信协议不同于端口的一个或更多个通信协议。输出数据是根 据通信协议通过根据在时隙表中限定的端口序列从端口中选择输入数据 来生成的。例如,端口可以包括较低速端口(例如GPIO、I2C等)和较 高速端口(例如USB、PCIe等)。输出数据包括根据端口序列混合在一起 的较低速端口的输入数据和较高速端口的输入数据。
UPE 400对输出数据进行编码920。例如,可编程编码器412对由聚 合器404生成的输出数据执行编码、认证、纠错或其他处理。在一些实施 方式中,来自聚合器404的输出数据包括来自使用不同协议的多个端口的 组合输入数据。输出数据使用由时隙表410限定的通用协议,该通用协议 不同于各个端口的协议。因此,可以对输出数据执行的编码或处理的类型 不受端口的各个协议的限制,并且来自不同类型端口的数据可以由UPE 400集成在一起。
UPE 400通过有线通信链路或无线通信链路发送925输出数据。例如, UPE 400将输出数据提供至发送器,该发送器生成(例如,串行)输出流。 发送器可以与收发器集成或者可以是单独的发送器。发送器将输出流发送 至EHF耦合器或有线连接,该EHF耦合器或有线连接与另外的设备的 UPE 400形成通信链路。
可以重复处理900。例如,当在步骤925中发送输出数据时,UPE 400 可以更新用于限定不同的端口序列的时隙表。对时隙表的时隙进行端口分 配的动态调整可以用于生成更新的时隙表,参照更新后的时隙表以生成输 出数据。更新后的时隙表可以与接收输出数据的另一设备共用。在另一示 例中,更新的时隙表可以由另外的设备生成并且被发送至UPE 400。
图10示出了根据一些实施方式的用于根据时隙表接收数据的处理 1000的流程图。处理1000可以包括更少的步骤或附加的步骤,并且步骤 可以以不同的顺序进行。在一些实施方式中,设备执行用于接收数据的处 理1000,该设备与执行用于发送数据的处理900的另外的设备有关。
虚拟管道I/O或模块化虚拟管道I/O的UPE 400生成1005限定端口 序列的时隙表410。处理900的在905处的讨论可以在步骤1005处适用。 在处理1000中,UPE 400指的是接收设备而不是发送设备的部件。在一 些实施方式中,UPE 400从另外的UPE接收时隙表410,该另外的UPE 在数据传递之前在校准处理中以发送器模式操作,或者以其他方式在发送设备和接收设备上同步时隙表410。
UPE 400从有线通信链路或无线通信链路接收1010输入数据。例如, 控制器416将UPE 400置于接收器模式或收发器模式。接收器从通信链路 接收输入流,并且对输入流进行解串行以生成输入数据。接收器可以与收 发器集成,或者可以是与发送器分离的接收器。
UPE 400对输入数据进行解码1015。可编程解码器414从收发器接收 输入数据并且对输入数据执行解码、认证、纠错或其他处理。可编程解码 器414可以应用与由发送设备的可编程编码器412应用的处理相反的处 理。例如,解码可以包括将由可编程编码器412编码的数据转换为在编码 之前的数据。
UPE 400根据在时隙表410中限定的端口序列生成1020针对输入数 据中的端口中的每个端口的输出数据。例如,解析器406参照时隙表410, 并且根据在时隙表410中限定的端口序列将来自可编程解码器414的输入 数据解析到输出数据的多个通道中。时隙表中的端口序列指示在一定时间 内端口的一个或更多个选择。例如,当时隙表指示选择第一端口时,解析 器将第一数据分配至第一端口,并且当时隙表指示选择第二端口时,解析 器从第二端口分配第二数据,以根据端口序列生成输出数据。解析器406 可以将输出数据存储在数据缓冲器432中,并且数据缓冲器432将输出数 据提供至各个端口。数据缓冲器432可以包括针对每个端口的FIFO存储 器。解析器406可以将针对每个端口的输出数据存储在针对端口的相应 FIFO存储器中。
UPE 400将输出数据发送1025至端口中的每一个。例如,数据缓冲 器432的FIFO存储器均连接至端口并且将针对端口的输出数据提供至所 连接的端口。在一些实施方式中,UPE 400是模块化虚拟管道I/O 600的 多个UPE之一。此处,可配置交叉开关602根据UPE400的时隙表410 将UPE 400连接至端口中的一个或更多个端口,以有助于输出数据传输至各个端口。可配置交叉开关602可以根据其他UPE各自的时隙表对其他 UPE执行类似的连接。
可以重复处理1000。例如,当在步骤1025中将输出数据发送至端口 时,UPE 400可以更新用于限定不同的端口序列的时隙表。对时隙表的时 隙进行端口分配的动态调整可以用于生成更新的时隙表,参照更新后的时 隙表以生成输出数据。更新后的时隙表可以与发送输入数据的另外的设备 共用。在另一示例中,更新的时隙表可以由另外的设备生成并且被发送至 UPE 400。
可编程的编码器和解码器
图11A示出了根据一些实施方式的可编程编码器412。可编程编码器 412是UPE400的部件,UPE 400从聚合器404接收输出数据424并且执 行处理以生成用于收发器428的输出数据426。可编程编码器412提供针 对发送数据的各种数据处理的选择性应用,例如,加密、编码或前向纠错。 可编程编码器412包括加密器1102、复用器(MUX)1104、编码器1106、 MUX 1108、前向纠错(FEC)1110和MUX 1112。
MUX 1104、MUX 1108和MUX 1112,例如,在控制器416的控制下, 可以选择性地将由加密器1102进行的加密、由编码器1106进行的编码或 者由FEC 1110进行的纠错应用于输出数据424。例如,加密器1102从聚 合器404接收输出数据424。加密器1102的输出与输出数据424一起连接 至MUX 1104。MUX 1104在输出数据424与加密器1102的输出之间进行 选择作为输出。MUX 1104的输出连接至编码器1106和MUX 1108。编码 器1106的输出连接至MUX 1108。MUX 1108在MUX 1104的输出与编码 器1106的输出之间进行选择作为输出。MUX1108的输出连接至FEC 1110 和MUX 1112。MUX 1112在FEC 1110的输出与MUX 1108的输出之间进 行选择以生成输出数据426。应用于输出数据424的加密、编码和纠错的 顺序可以不同。
图11B示出了根据一些实施方式的可编程解码器414。可编程解码器 414是UPE400的部件,UPE 400从收发器428接收输入数据442并且执 行处理以生成用于解析器406的输入数据444。设备中的可编程解码器414 提供对各种数据处理的选择性应用,并且可以与由连接至该设备的另外的 设备的可编程编码器412使用的所选择的处理对应。可编程编码器414包 括FEC 1114、MUX 1116、解码器1118、MUX 1120、解密器1122和MUX 1124。
MUX 1116、MUX 1120和MUX 1124,例如,在控制器416的控制下, 可以选择性地将由FEC 1114进行的纠错、由解码器1118进行的解码、由 解密器1112进行的解密应用于输入数据442。例如,FEC 1114从收发器 428接收输入数据442并且应用前向纠错。FEC 1114的输出与输入数据 442连接至MUX 1116。MUX 1116在输入数据442与FEC 1114的输出之 间进行选择作为输出。MUX 1116的输出连接至解码器1118和MUX 1120。 解码器1118的输出连接至MUX 1120。MUX 1120在MUX 1116的输出与 解码器1118的输出之间进行选择作为输出。MUX1120的输出连接至解密 器1122和MUX 1124。解密器1122的输出连接至MUX 1124。MUX 1124在MUX 1120的输出与解密器1122的输出之间进行选择作为输出。MUX 1124的输出是用于解析器406的输入数据444。应用于输出数据442的解 密、编码和纠错的顺序可以不同。
在一些实施方式中,编码器1106和解码器1118可以包括8b10b编码 器/解码器、16b/18b编码器/解码器或其他编码器/解码器(诸如64b/66b、 128b/132b等)。由加密器1102和解密器1122使用的认证协议和加密协议 可以包括高带宽数字内容保护(HDCP)认证和加密。由FEC 1110和FEC 1114应用的纠错可以包括DisplayPort前向纠错(FEC)。可以使用其他类 型的编码、解码、加密、解密和纠错。
虚拟管道I/O控制器
本公开提供了根据一些实施方式的通用协议引擎的控制系统。控制系 统包括微控制器、包括引导装载程序的存储器、控制信使、中断控制器和 多个外围设备。
在一个示例中,外围设备均包括端口,例如,用于I2C、串行外围接 口(SPI)、通用输入/输出(GPIO)、脉冲宽度调制(PWM)、模数转换器 (ADC)和定时器计数器的端口。
微控制器控制通用协议引擎的功能并且可以是图4所示的控制器416 的示例。存储器存储对微控制器进行编程的指令和来自微控制器的待由控 制信使递送的消息。存储器包括提供针对微控制器的启动编程的引导加载 程序。微控制器提供对存储器和存储器映射外围设备(例如到I2C外围端 口)的直接访问并且提供对存储器子例程的执行。存储器耦接至微控制器 和控制信使。
控制信使是将存储器连接至聚合器404和解析器406的直接存储器访 问(DMA)外围设备。控制信使从存储器中检索输出数据422并且通过 数据缓冲器430将输出数据422提供至聚合器404。控制信使通过数据缓 冲器432从解析器406中检索输入数据446并且将输入数据446写入存储 器中。
控制信使在两个链接的设备上的微控制器之间提供通信。消息可以由 一个微控制器生成并且被存储在存储器的缓冲器中,并且然后,控制信使 经由另外的设备的控制信使与另外的设备的另外的存储器通信。
控制信使可以确保消息是按顺序被可靠地递送。由聚合器404和解析 器406中的每一个所使用的时隙表410中的至少一个时隙可以专用于连接 设备的微控制器之间的双向消息传递。消息传送的速度可以基于时隙表 410中的时隙的分配来控制。
在一些实施方式中,外围设备中的一个或更多个可以连接至主机系 统。
附加配置信息
已经出于说明的目的呈现了实施方式的前述描述;不旨在是穷尽的或 将专利权限制于所公开的确切形式。相关领域中的技术人员将理解的是, 根据上面的公开内容,许多修改和变化是可能的。
专利权的范围不受该详细描述的限制,而是受到基于本申请提出的任 何权利要求的限制。因此,实施方式的公开内容旨在说明而非限制在所附 权利要求书中阐述的本专利权的范围。

Claims (27)

1.一种电子设备,包括:
通用协议引擎电路,包括:
存储器,被配置成存储限定端口序列的时隙表,来自一个或更多个通信端口的数据要在所述端口序列中被发送,所述通信端口中的每个通信端口与相应的通信协议关联;
聚合器电路,耦接至所述存储器,所述聚合器电路被配置成:
根据所述相应的通信协议从所述一个或更多个通信端口接收输入数据;以及
通过根据在所述时隙表中限定的所述端口序列从所述一个或更多个通信端口中选择所述输入数据,来生成输出数据;以及
发送器,所述发送器被配置成根据所述输出数据生成输出流并且将所述输出流提供至有线耦合器或无线耦合器,以传输至另外的电子设备。
2.根据权利要求1所述的电子设备,其中:
所述时隙表中的所述端口序列指示:混合在一起的第一端口的一个或更多个选择和第二端口的一个或更多个选择;并且
当所述时隙表指示选择所述第一端口时,所述聚合器电路从所述第一端口选择第一数据,并且当所述时隙表指示选择所述第二端口时,所述聚合器电路从所述第二端口中选择第二数据,以根据所述端口序列生成所述输出数据。
3.根据权利要求1所述的电子设备,其中,与所述一个或更多个通信端口的第一端口相关联的第一通信协议被配置成:用于以与所述一个或更多个通信端口的第二端口相关联的第二通信协议相比更高的速度进行数据通信,并且所述输出数据包括根据所述端口序列混合在一起的所述第一端口的第一输入数据和所述第二端口的第二输入数据。
4.根据权利要求1所述的电子设备,其中,所述通用协议引擎电路还包括编码器电路,所述编码器电路被配置成:在由所述发送器使用所述输出数据生成所述输出流之前,对来自所述聚合器电路的所述输出数据进行编码。
5.根据权利要求1所述的电子设备,其中,所述通用协议引擎电路还包括加密器电路,所述加密器电路被配置成:在由所述发送器使用所述输出数据生成所述输出流之前,对来自所述聚合器电路的所述输出数据进行加密。
6.根据权利要求1所述的电子设备,其中,所述通用协议引擎电路还包括纠错电路,所述纠错电路被配置成:在由所述发送器使用所述输出数据生成所述输出流之前,在从所述聚合器电路生成所述输出流之前对所述输出数据应用纠错。
7.根据权利要求1所述的电子设备,其中,与所述一个或更多个通信端口的第一端口相关联的第一通信协议被配置成:用于以与所述一个或更多个通信端口的第二端口相关联的第二通信协议相比更高的速度进行数据通信,并且所述第一端口在所述端口序列中具有比所述第二端口更高的选择频率。
8.根据权利要求1所述的电子设备,其中,所述通用协议引擎电路还包括:
接收器,被配置成从所述有线耦合器或所述无线耦合器接收输入流并且根据所述输入流生成其他输入数据;以及
解析器电路,耦接至所述存储器和所述接收器,所述解析器电路被配置成:
从所述接收器接收所述其他输入数据;并且
根据存储在所述存储器中的在所述时隙表中限定的所述端口序列或在另外的时隙表中限定的另外的端口序列,根据所述其他输入数据生成针对所述一个或更多个通信端口的每个端口的其他输出数据。
9.根据权利要求8所述的电子设备,其中:
在所述时隙表中限定的所述端口序列或在所述另外的时隙表中限定的另外的端口序列指示:混合在一起的第一端口的一个或更多个选择和第二端口的一个或更多个选择;并且
当所述时隙表指示选择所述第一端口时,所述解析器电路向所述第一端口分配第一数据,并且当所述时隙表指示选择所述第二端口时,所述解析器电路向所述第二端口分配第二数据,以根据所述端口序列生成所述其他输出数据。
10.根据权利要求8所述的电子设备,其中,所述通用协议引擎电路还包括解码器电路,所述解码器电路被配置成:在由所述解析器电路使用所述其他输入数据生成所述其他输出数据之前,对来自所述接收器的所述其他输入数据进行解码。
11.根据权利要求8所述的电子设备,其中,所述通用协议引擎电路还包括解密器电路,所述解密器电路被配置成:在由所述解析器电路使用所述其他输入数据生成所述其他输出数据之前,对来自所述接收器的所述其他输入数据进行解密。
12.根据权利要求8所述的电子设备,其中,所述通用协议引擎电路还包括纠错电路,所述纠错电路被配置成:在由所述解析器电路使用所述其他输入数据生成所述其他输出数据之前,对来自所述接收器的所述其他输入数据应用纠错。
13.根据权利要求1所述的电子设备,还包括:
另外的通用协议引擎电路,被配置成根据存储在另外的时隙表中的另外的端口序列通过另外的有线耦合器或无线耦合器传递数据;以及
可配置交叉开关,耦接至所述一个或更多个通信端口、所述通用协议引擎电路和所述另外的通用协议引擎电路,所述可配置交叉开关被配置成:
根据所述时隙表将所述一个或更多个通信端口中的至少一个通信端口连接至所述通用协议引擎电路;并且
根据所述另外的时隙表将所述一个或更多个通信端口中的至少另一通信端口连接至所述另外的通用协议引擎电路。
14.根据权利要求13所述的电子设备,其中,所述通用协议引擎电路在发送器模式下与在接收器模式下操作的所述另外的通用协议引擎电路并行操作。
15.根据权利要求1所述的电子设备,还包括电路板,所述电路板包括:
处理器,所述处理器被配置成生成所述输入数据并且经由所述一个或更多个通信端口将所述输入数据提供至所述通用协议引擎电路;以及
所述通用协议引擎电路,其中,所述通用协议引擎电路还包括虚拟非接触物理层(VcPHY),所述虚拟非接触物理层被配置成从所述一个或更多个通信端口接收所述输入数据。
16.根据权利要求1所述的电子设备,还包括:
第一电路板,包括处理器,所述处理器被配置成生成所述输入数据并且经由所述一个或更多个通信端口将所述输入数据提供至所述通用协议引擎电路;以及
第二电路板,包括所述通用协议引擎电路,其中,所述通用协议引擎电路还包括物理层(PHY),所述物理层被配置成从所述一个或更多个通信端口接收所述输入数据。
17.根据权利要求1所述的电子设备,其中,所述耦合器是无线极高频(EHF)耦合器。
18.一种电子设备,包括:
通用协议引擎电路,包括:
存储器,被配置成存储限定端口序列的时隙表,从另外的电子设备接收到的数据要在所述端口序列中被提供至一个或更多个通信端口,所述通信端口中的每个通信端口与相应的通信协议关联;
接收器,被配置成经由有线耦合器或无线耦合器从所述另外的电子设备接收输入流并且根据所述输入流生成输入数据;
解析器电路,耦接至所述接收器和所述存储器,所述解析器电路被配置成:
从所述接收器接收所述输入数据;并且
通过根据在所述时隙表中限定的所述端口序列对所述输入数据进行解析,来生成针对所述一个或更多个通信端口中的每个通信端口的输出数据;以及
根据所述相应的通信协议将所述输出数据提供至所述一个或更多个通信端口。
19.根据权利要求18所述的电子设备,其中:
所述时隙表中的所述端口序列指示:混合在一起的第一端口的一个或更多个选择和第二端口的一个或更多个选择;并且
当所述时隙表指示选择所述第一端口时,所述解析器电路向所述第一端口分配第一数据,并且当所述时隙表指示选择所述第二端口时,所述解析器电路向所述第二端口分配第二数据,以根据所述端口序列生成要被提供至所述一个或更多个通信端口的所述输出数据。
20.根据权利要求18所述的电子设备,其中,所述一个或更多个通信端口包括较高速端口和较低速端口,并且所述输入数据包括根据所述端口序列混合在一起的针对所述较低速端口的输出数据和针对所述较高速端口的输出数据。
21.根据权利要求18所述的电子设备,还包括:解码器电路,所述解码器电路被配置成:在所述解析器电路生成所述输出数据之前,对来自所述接收器的所述输入数据进行解码。
22.根据权利要求18所述的电子设备,还包括:解密器电路,所述解密器电路被配置成:在所述解析器电路生成所述输出数据之前,对来自所述接收器的所述输入数据进行解密。
23.根据权利要求18所述的电子设备,还包括:纠错电路,所述纠错电路被配置成:在所述解析器电路生成所述输出数据之前,对来自所述接收器的所述输入数据应用纠错。
24.根据权利要求18所述的电子设备,其中,与所述一个或更多个通信端口的第一端口相关联的第一通信协议被配置成:用于以与所述一个或更多个通信端口的第二端口相关联的第二通信协议相比更高的速度进行数据通信,并且所述第一端口在所述端口序列中具有比所述第二端口更高的选择频率。
25.根据权利要求18所述的电子设备,还包括:
另外的通用协议引擎电路,被配置成根据存储在另外的时隙表中的另外的端口序列通过另外的有线耦合器或无线耦合器传递数据;以及
可配置交叉开关,耦接至所述一个或更多个通信端口、所述通用协议引擎电路和所述另外的通用协议引擎电路,所述可配置交叉开关被配置成:
根据所述时隙表将所述一个或更多个通信端口中的至少一个通信端口连接至所述通用协议引擎电路;以及
根据所述另外的时隙表将所述一个或更多个通信端口中的至少另一通信端口连接至所述另外的通用协议引擎电路。
26.一种方法,包括:通过电子设备:
存储限定端口序列的时隙表,来自多个通信端口的数据要在所述端口序列中被发送,所述通信端口中的每个通信端口与相应的通信协议关联;
根据所述相应的通信协议从所述多个通信端口接收输入数据;
通过根据在所述时隙表中限定的所述端口序列从所述多个通信端口中选择所述输入数据,来生成输出数据;
根据所述输出数据生成输出流;以及
将所述输出流提供至所述电子设备的有线耦合器或无线耦合器。
27.一种方法,包括:通过电子设备:
存储限定端口序列的时隙表,从另外的电子设备接收到的数据要在所述端口序列中被提供至多个通信端口,所述通信端口中的每个通信端口与相应的通信协议关联;
从所述电子设备的有线耦合器或无线耦合器接收输入数据;
根据在所述时隙表中限定的所述端口序列,根据所述输入数据生成针对所述多个通信端口中的每个通信端口的输出数据;以及
根据所述相应的通信协议将所述输出数据提供至所述多个通信端口。
CN202010355829.9A 2019-05-02 2020-04-29 电子设备和用于电子设备的方法 Active CN111884987B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/402,092 2019-05-02
US16/402,092 US10860503B2 (en) 2019-05-02 2019-05-02 Virtual pipe for connecting devices

Publications (2)

Publication Number Publication Date
CN111884987A true CN111884987A (zh) 2020-11-03
CN111884987B CN111884987B (zh) 2021-08-20

Family

ID=72839079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010355829.9A Active CN111884987B (zh) 2019-05-02 2020-04-29 电子设备和用于电子设备的方法

Country Status (3)

Country Link
US (1) US10860503B2 (zh)
CN (1) CN111884987B (zh)
DE (1) DE102020110848B4 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022100515A1 (zh) * 2020-11-12 2022-05-19 华为技术有限公司 数据传输方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101189843A (zh) * 2005-06-03 2008-05-28 皇家飞利浦电子股份有限公司 电子设备和通信资源分配方法
US20090033359A1 (en) * 2007-07-31 2009-02-05 Broadcom Corporation Programmable logic device with millimeter wave interface and method for use therewith
US9429992B1 (en) * 2007-10-08 2016-08-30 Motion Computing, Inc. Wired and wireless docking station
US20180083800A1 (en) * 2016-09-22 2018-03-22 Fresco Logic, Inc. Aggregation Device, System, And Method Thereof

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010054131A1 (en) * 1999-01-29 2001-12-20 Alvarez Manuel J. System and method for perfoming scalable embedded parallel data compression
US20080032738A1 (en) * 2001-03-07 2008-02-07 Palm, Inc. Portable wireless network
US8639849B2 (en) * 2001-12-17 2014-01-28 Sutech Data Solutions Co., Llc Integrated circuits for high speed adaptive compression and methods therefor
GB0428046D0 (en) * 2004-12-22 2005-01-26 Artimi Ltd Contactless connector systems
US20060264178A1 (en) * 2005-05-20 2006-11-23 Noble Gayle L Wireless diagnostic systems
US20080075103A1 (en) * 2005-05-20 2008-03-27 Finisar Corporation Diagnostic device
US8934890B2 (en) * 2008-01-11 2015-01-13 Texas Instruments Incorporated Transmission of data bursts on a constant data rate channel
DE102008000561A1 (de) 2008-03-07 2009-09-10 Robert Bosch Gmbh Kommunikationssystem mit einem CAN-Bus und Verfahren zum Betreiben eines solchen Kommunikationssystems
US8780772B2 (en) 2009-04-10 2014-07-15 Samsung Electronics Co., Ltd. Communication protocol for wireless enhanced controller area networks
US20150032917A1 (en) 2012-02-22 2015-01-29 Vincent Nguyen Multiplexer for signals according to different protocols
US9762637B2 (en) * 2014-03-21 2017-09-12 Ptc Inc. System and method of using binary dynamic rest messages
US10248583B2 (en) * 2014-08-26 2019-04-02 Texas Instruments Incorporated Simultaneous video and bus protocols over single cable
US11095556B2 (en) 2017-06-30 2021-08-17 Intel Corporation Techniques to support multiple protocols between computer system interconnects

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101189843A (zh) * 2005-06-03 2008-05-28 皇家飞利浦电子股份有限公司 电子设备和通信资源分配方法
US20090033359A1 (en) * 2007-07-31 2009-02-05 Broadcom Corporation Programmable logic device with millimeter wave interface and method for use therewith
US9429992B1 (en) * 2007-10-08 2016-08-30 Motion Computing, Inc. Wired and wireless docking station
US20180083800A1 (en) * 2016-09-22 2018-03-22 Fresco Logic, Inc. Aggregation Device, System, And Method Thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022100515A1 (zh) * 2020-11-12 2022-05-19 华为技术有限公司 数据传输方法及电子设备

Also Published As

Publication number Publication date
CN111884987B (zh) 2021-08-20
DE102020110848A1 (de) 2020-11-05
DE102020110848B4 (de) 2022-09-15
US10860503B2 (en) 2020-12-08
US20200349096A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
JP6325537B2 (ja) N相極性出力ピンモードマルチプレクサ
CN104205781B (zh) 用于低功率、高带宽通信的接口、方法和机器可读介质
CN101595701B (zh) 差分对作为单端数据路径以传输低速数据之运用
US10521392B2 (en) Slave master-write/read datagram payload extension
AU751233B2 (en) Parallel backplane physical layer interface with scalable data bandwidth
US10645553B2 (en) Method and apparatus for processing signal in a mobile device
US9569390B2 (en) Protocol for communication
US20200142854A1 (en) Multilane heterogeneous serial bus
CN107710184B (zh) 具有少于八位的字节及可变分组大小的spi接口
CN103931146A (zh) 数据处理的方法和装置
US11736313B2 (en) Common bus data flow for serially chained devices
US7668194B2 (en) Dual speed interface between media access control unit and physical unit
CN111884987B (zh) 电子设备和用于电子设备的方法
CN107852423A (zh) 用于usb 2.0带宽保留的方法及系统
CN105208021A (zh) 一种数据通讯方法及其系统
WO2018102076A1 (en) Controller-phy connection using intra-chip serdes
CN115668165A (zh) 控制电子设备中的通信模式的系统和方法
EP4049144A1 (en) Common bus data flow for serially chained devices
CN204314869U (zh) 一种多路smii信号到一路mii信号的复用系统
Alicke et al. Comparing Bus Solutions
CN210804154U (zh) 双通道大带宽波形产生系统
US7610420B2 (en) Data aggregation-distribution apparatus, date transmission system and method thereof
KR20030027307A (ko) 범용 프로세서의 시리얼 인터페이스
KR20000052167A (ko) 칩들간의 데이터통신장치

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220610

Address after: 5th floor, Yunxian commercial center, 44 Yunxian street, central, Hong Kong, China

Patentee after: Kaisa Hong Kong Ltd.

Address before: California, USA

Patentee before: KEYSSA SYSTEMS, Inc.

Effective date of registration: 20220610

Address after: Illinois, America

Patentee after: MOLEX, LLC

Address before: 5th floor, Yunxian commercial center, 44 Yunxian street, central, Hong Kong, China

Patentee before: Kaisa Hong Kong Ltd.