2011-09-27 83 views
3

我试图执行HDLC帧格式类型3和I有些怀疑至于八位位组/帧的模8编码。HDLC帧 - 八位位组/模8怀疑

  1. 首先,HDLC帧是否完全以八位字节传输?
  2. 什么他们通过意味着帧“N”字节的长度?请举个例子。
  3. 我认为,字节和模数是一样的,所以假设我们有一个帧一个字节的X,那又怎么样?他们的意思X编码必须是模8

我对这一切有点困惑,所以我需要更多的说明。示例和插图将非常有帮助。

在此先感谢。


Thanks @clifford and @masoud。你的回答非常有帮助。但我必须阅读这Octet String: What is it?(虽然听起来很有趣,因为它以一种简单的方式解释),然后我回来阅读你的意见,然后我理解你所解释的一切。尽管如此,祝我编程愉快。

回答

2

,完全是在八位传输的HDLC帧?

这就是说数据长度是8位的倍数。是的。

它们是什么意思的一个帧是'n'八位字节的长度?

谁是“他们”?引用您的参考资料。八位字节只是一个八位组。这是一个较不明确的术语,即字节(很少使用是指长度不是8位的机器字)。术语八位字节广泛用于电信领域,也用于英语以外的其他语言,意思是“字节”(当一个字节是8位时)。

我认为,字节和模

根本不是,是一个数学术语,用在这里也许不准确指通过整除(或整数倍)八强。

[...]什么,那么请他们所说的X的编码必须是模8 [?]

再次谁是 “他们”?如果我们能够看到你在哪里阅读这些内容,你可能会得到更好的解释。

编辑: 我没有去参考ISO 3309,其是定义HDLC帧结构的标准的长度,但至少在Wikipedia article术语“模数8”在帧序列的情况下仅使用数字,它只是意味着序列号从0增加到7,然后从0重新开始(即它是模数8的帧数 - 或者C代码中的frame_num/8或简单的frame_num % 8的其余部分),我想知道你是否困惑条款 - 再次引用或提取将有所帮助

+0

我的引用是IEC62056-46。 –

4

在HDLC中每个字段长度必须例如是模8:

HDLC的帧是象下面这样: [FLAG(8bits)|ADDRESS(8bits)|CONTROL(8/16bits)|INFORMATION(n*8bits)|FCS(8bits)|FLAG(8bits)]

每个字段是模8,即使信息的长度必须被模8

这意味着如果要发送的数据以1个比特的长度,则必须消耗一个字节(8位)。

如果你正在寻找一些HDLC帧样本,看看这个链接:Click me! 和阅读这样的:首先Click me

+0

谢谢@Masoud,但我仍然不能放置你的意思**如果你想发送长度为1位的数据,你必须消耗1字节**。帮助,你可以请解释n使用HDLC帧的开始标志,可能的帧类型和长度如下所示,使用二进制,十六进制和八位字节/模8表示。 ** 7E // HDLC帧开放标志 A00A //帧类型和长度* *。再次感谢! –

+0

'7E =(01111110)in binary':它是一个开始和结束帧的常量值,并且您必须将此值放在帧的开始和结束处。第二个值('A00A')取决于您的应用程序。二进制,十六进制和八进制的值相同,我们使用十六进制表示,因为人们易于阅读。 – deepmax

+0

**如果要发送长度为1位的数据,则必须消耗1个字节**表示:对于发送一点数据,至少必须使用一个字节。 – deepmax