zeerd's blog         Search     Categories     Tags     Feed

闲来添雅趣,无事自逍遥。对窗静望雪,一盏茶香绕。

AVDECC 简析

#AVB #AVDECC @Ethernet


AVDECC 实体

从更宏观的角度,以设备实体为单位,一个 AVDECC 设备需要包含以下的功能组件。

mindmap
  root((AVDECC End Station))
    [具有一到多个 AVDECC 实体的终端设备]
    必选
      AEM
        [AVDECC Entity Model]
        ADP
          [AVDECC Discovery Protocol]
          [识别网络上当前可用的所有 AVDECC 实体<br/>并在它们被添加到网络或从网络移除时更新状态。]
          宣布 AVDECC 实体可用#40;available#41;。
          宣布一个 AVDECC 实体即将离开#40;departing#41;。
          发现#40;discover#41;网络上的一个或所有 AVDECC 实体。
        AECP
          [AVDECC Enumeration and Control Protocol]
          [为要携带的枚举和控制模型提供一种处理机制。]
        ACMP
          [AVDECC Connection Management Protocol]
          [在流利用者#40;Sink#41;和流源#40;Source#41;之间建立和断开连接。]
      网络接口
      AVTP Control
    可选
      更多 AVDECC 实体/网络接口 对
      gPTP
      AVTPDU serdes
      MAAP
      FQTSS
      SRP

ADP

用于使 AVDECC 实体发现其他实体及被其他实体发现的机制。 ADP 报文的发送形式为多播。

mindmap
  root((ADP))
    [AVDECC Discovery Protocol]
    [ADP 的目的地址固定为:91-e0-f0-01-00-00]
    Advertising Entity State machine
      [用于在终端站上发布 AVDECC 实体的状态机]
    Advertising Interface State machine
      [每个被发布的 AVDECC 实体对应的 AVB 接口状态机]
    Discovery State machine
      [用于实现 AVDECC 控制器或请求发现其他 AVDECC 实体]
      [可以要求指定 ID 的实体回复 ENTITY_AVAILABLE]
      [可以要求所有实体#40;指定 ID 为 0 #41;回复 ENTITY_AVAILABLE]

当足够多的 ADP 报文于网络上流转之后,所有 AVDECC 终端都可以找到自己期望的另一个 终端。

ACMP

根据前文所述,每一个 AVDECC 实体中都必然包涵 ACMP 功能。 当终端通过 ADP 报文找到期望的、对应的 AVDECC 终端之后,就可以通过 ACMP 报文发起连接。 这个连接动作可能是预设的,也可能是用户手动操作而触发的。

mindmap
  root((ACMP))
    [AVDECC Connection Management Protocol]
    ACMP Controller state machine
      [描述了 AVDECC 在 ACMP 会话中的主动参与方式。]
      [AVDECC 控制器可以独立于这些状态机来监视所有接收到的 ACMP 消息,<br/>用于跟踪网络上的连接状态。]
      Fast connect
        [启动过程中,Listener 根据预存的状态直接向<br/>Talker 发起连接]
      Fast disconnect
        [关机过程中,Listener 直接向 Talker 通知<br/>断开连接]
      Controller connect
        [由 Controller 通知 Listener 向 Talker<br/>发送建立连接请求]
      Controller disconnect
        [由 Controller 通知 Listener 向 Talker<br/>发送断开连接请求]
    ACMP Listener State Machine
    ACMP Talker State Machine

AECP

mindmap
  root((AECP))
    [所有 AECPDU 都是通过单播从 Controller 发送到 AVDECC 实体,并通过单播接收答复。]
    [枚举#40;Enumeration#41;是获取对应的单个 AVDECC 实体的功能、格式和控制方式的过程。]
    [控制#40;Control#41;是操作功能、格式和控制方式以将 AVDECC 实体配置为可用状态的过程。]
    AEM format
      [AVDECC 实体模型命令和响应允许 AVDECC 实体暴露 AVDECC 的实体模型。]
      AEM Commands
        [用于发送与 AVDECC 实体模型交互的实体模型命令。]
      AEM Responses
        [来自 AVDECC 实体,<br/>指示成功或失败并返回对应请求信息的实体模型响应。]
      AEM Entity State Machine
        [接受命令、处理命令并回复]
      AEM Controller State Machine
        [发送命令并处理回复]
    Address Access Entity State Machine
      [处理地址访问命令的状态机。<br/>用于读取、写入或处理启动消息中包含的 TLV 数据。]
      [这里的地址可以是寄存器地址,甚至用于固件升级功能。<br/>或者制定地址指针开始执行程序。]
      [该命令从 AVDECC 控制器发送到目标 AVDECC 实体。]
    Legacy AV/C Controller State Machine
      [处理遵循 IEEE 1394 AV/C 语义的传统 AV/C 命令/答复。]
    Vendor Unique Controller State Machine
      [处理供应商自定义的 命令/答复。]
    HDCP APM Entity State Machine
      [处理 HDCP APM 命令、用于传输 HDCP IIA 认证协议消息<br/>或 HDCP IIA 认证协议消息的一部分。]
      [该命令从 AVDECC 控制器发送到目标 AVDECC 实体。]

AVDECC 角色

从功能角度, AVDECC 可以分成如下四种功能角色:

mindmap
  root((AVDECC))
    AVDECC Controller
      [具有 AVDECC 控制器角色的 AVDECC 实体、<br/>向其他 AVDECC 实体发起命令并从其接收响应。]
      必选
        [AEM format]
        [AEM Commands]
        [AEM Responses]
        [AEM Controller State Machine<br/>#40;支持部分指令,详情不在此展开。下同#41;]
      可选
        [ACMP Controller state machine]
        [AEM Controller State Machine]
        [AEM Entity State Machine]
        [Address Access Controller State Machine]
        [Legacy AV/C Controller State Machine]
        [Vendor Unique Controller State Machine]
    AVDECC Talker
      [可以产生一个或多个 AVTP 流的 AVDECC实体。]
      必选
        [IEEE 1722 AVTP Talker]
        [ACMP Talker State Machine]
        [AEM format]
        [AEM Commands]
        [AEM Responses]
        [AEM Entity State Machine]
      可选
        [AEM Entity State Machine]
        [Address Access Entity State Machine]
        [Legacy A/VC Entity State Machine]
        [Vendor Unique Entity State Machine]
    AVDECC Listener
      [可以接收一个或多个 AVTP 流的 AVDECC 实体。]
      必选
        [IEEE 1722 AVTP Listener]
        [ACMP Listener State Machine]
        [AEM format]
        [AEM Commands]
        [AEM Responses]
        [AEM Entity State Machine]
      可选
        [AEM Entity State Machine]
        [Address Access Entity State Machine]
        [Legacy A/VC Entity State Machine]
        [Vendor Unique Entity State Machine]
    AVDECC Responder
      [不实现上述三中角色,但仍使用 AVDECC 协议的实体。]
      必选
        [AEM format]
        [AEM Commands]
        [AEM Responses]
        [AEM Entity State Machine]
      可选
        [AEM Entity State Machine]
        [Address Access Entity State Machine]
        [Legacy A/VC Entity State Machine]
        [Vendor Unique Entity State Machine]