【问题标题】:HDLC Extended AddressingHDLC 扩展寻址
【发布时间】:2011-10-18 16:43:17
【问题描述】:

任何人都可以向我提供有关我在哪里以及如何使用扩展位(位 0)将“地址字段”(在 HDLC 帧中)编码为八位字节的良好资源信息,即使是扩展寻址。

假设我要发送地址 0x1234,用扩展位编码后的最终八位字节是多少。希望你能理解我的问题?

感谢期待。

可以通过保留每个地址八位字节的第一个传输位(低位)来扩展地址字段范围,然后将其设置为二进制零,以指示接下来的八位字节是地址字段的扩展。扩展八位字节的格式应与第一个八位字节的格式相同。因此,可以递归地扩展地址字段。地址字段的最后一个八位字节通过将低位设置为二进制 1 来指示。见附图1。 当使用扩展时,在第一个地址八位字节的第一个传输位中存在二进制“1”表示仅使用一个地址八位字节。因此,地址扩展的使用将单个八位字节地址的范围限制为 0x7F,将两个八位字节地址的范围限制为 0…0x3FFF。

低HDLC地址 = 3FFF H = 0011111111111111 B

HDLC 上层地址 = 1234 H = 0001001000110100 B

考虑到上面的地址及其编码结果如图 2 所示,我真的很想知道他们是如何得到这个最终编码的八位字节(图 2)。 我无法修复它。这就是为什么我需要更多可以帮助我理解的信息。谁能提供一些简单的解释?谢谢。

【问题讨论】:

标签: c encoding protocols


【解决方案1】:

【讨论】:

  • 请阅读上面的编辑。我进一步解释了我的问题谢谢
【解决方案2】:

1111111b + 128 * 1111111b = 0x3FFF
0110100b + 128 * 0100100b = 0x1234

从这里很明显,他们提取了这些十六进制数字中的每一个,并从中提取了 7 个最低有效位和 7 个最高有效位(假设总共只有 14 个),然后将它们放入 4 个八位字节中。

【讨论】:

  • 我不明白。请您解释一下使用上面编辑中所示的扩展位编码规则。这将帮助我更好地了解你。谢谢
【解决方案3】:

我正在尝试将它分组,其中 u 是单播位 x 是 LSB:

u1 0010 0x 011 0100x 11 1111 1x 111 1111x
 1    2      3    4   3    F      F    F

【讨论】:

    【解决方案4】:

    简单步骤中的答案。

    1. 将 2 个字节分成 2 个半部分(上半部分和下半部分),每个 8 位
    2. 消除上半部分的 2 个 MSB
    3. 结果是 14 位,您将其分成两半,每半 7 位。
    4. 将扩展位添加到每一半的 LSB,因此每个 8 位的结果。
    5. 结果给出了编码的八位字节!

    请注意,可以避免步骤 1,但我只是想帮助简化答案。感谢所有做出贡献的人,我希望有一天这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 2011-11-24
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多