我正在尝试为一个微控制器项目编写只在ABM中工作的HDLC协议(点对点)。我主要依赖于ISO 13239文档点击。
沟通应以双向同步的方式进行.现在,我想连接两个在同一个微上运行两个HDLC上下文的USARTs。我在理解ABM中的P/F位目标方面有问题。
在具有正常响应模式(NRM)原理的半双工链路中,主站发送命令帧(S),在最后一帧上设置P位,并授予第二链路以F位也设置在最后一帧上的帧响应的权限。
在NRM的全双工链路中,主站发送命令,在第一帧上设置P位,可以发送更多帧。当二级接收到具有P位集的第一命令帧时,它可以在第一帧上发送F位设置的响应帧。在第一个命令/响应帧上设置P/F位的目的是以速度为主授予权限,以尽可能快地将命令发送到第二级,以便在主命令仍在发送命令(双向同时)的同时,次要节点可以发送响应。
在全双工反导的情况复杂的我。没有主次关系,但两个站都是组合站,两者都可以在任何时候(异步)发送命令和响应。下面是我前面提到的信息交换文档中的信息交换示例。为什么两个站都使用带P/F位的帧。如果没有P/F位,交换不是一样的吗?,当和为什么一个站在中发送带P/F位的帧?
发布于 2019-05-06 14:53:19
如ISO13239 5.4.3.1.3节所述:
在ARM和ABM中,设置为"1“的P位应用于在最早的响应机会中请求响应,F位设置为"1”。 注意:例如,如果主/组合站要求肯定地确认已经接收到特定命令,则它将命令中的P位设置为"1“。如5.4.3.1.6所述,这迫使第二/联合站作出反应。
(对5.4.3.1.6的引用必须是一个错误,因为该节不存在.)
发布于 2020-08-25 10:20:30
:在ABM?中,站发送P/F位帧的时间和原因
何时?站发送命令帧(具有目标站地址和P/F位设置的帧)。在这种情况下,P/F位被视为P位)。也就是说,在乞讨的谈话,然后每次它收到回应。响应是具有发送站地址(对等地址)和P/F位集的帧。在这种情况下,P/F钻头被视为F位。
6.4寻址计划 在所有类(不平衡、平衡和无连接)中,必须始终发送包含目标数据站地址的命令,并始终发送包含所分配的发送数据站地址的响应。
为什么?是因为检查点。它有助于检测丢失的帧并重传它们。您也可以使用REJ框架,但它是可选的。
5.4.3.3.4检查点 在ABM中,具有F位设置为"1“的接收I、RR或RNR响应帧的N(R),如果N(R)不承认接收联合站在接收组合站之前发送的至少所有I帧,并且与P位设置为"1”的接收组合站发送的最后帧并行,则应使接收的组合站发起适当的错误恢复。
https://stackoverflow.com/questions/50306112
复制相似问题