AVDECC 简析
Charles Chan @ 2023-12-26 #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]