我正在尝试为微控制器项目编写仅在 ABM(点对点)中工作的 HDLC 协议。我主要依靠 ISO 13239 文档click。
通信应以双向同时模式工作。现在我想连接在同一个微上运行两个 HDLC 上下文的微的两个 USART。我在理解 ABM 中的 P/F 位用途时遇到了问题。
在具有正常响应模式 (NRM) 的半双工链路中,原理很简单 - 主站发送在最后一帧设置了 P 位的命令帧,授予辅助站以在主站也设置了 F 位的帧进行响应的权限最后一帧。
在 NRM 的全双工链路中,主站发送第一帧 P 位设置的命令,可以发送更多帧。当辅助接收到第一个设置了 P 位的命令帧时,它可以发送在第一帧上设置了 F 位的响应帧。在第一个命令/响应帧上设置 P/F 位的目的是提高速度 - 主节点允许尽快将命令传输到辅助节点,以便辅助节点可以在主节点仍在发送命令时发送响应(双向同时)。
在全双工 ABM 中,情况对我来说很复杂。没有主从关系,但两个站都是组合站,并且都可以随时(异步)发送命令和响应。这是我之前提到的 ISO 文档中 ABM 信息交换的示例信息交换。为什么两个站都使用带有 P/F 位的帧。如果没有 P/F 位,交易所看起来会不会一样?一个站何时以及为什么发送带有 ABM 中 P/F 位的帧?