Serial port 避免CRC中的HDLC标志

Serial port 避免CRC中的HDLC标志,serial-port,embedded,protocols,crc,data-link-layer,Serial Port,Embedded,Protocols,Crc,Data Link Layer,我正在尝试用串行端口(rs232)在两块板之间进行通信。要求之一是能够区分哪个任务正在发送/接收数据。所以需要一个标题字段来标识任务 我计划使用异步HDLC帧,而不太关心控制字段。看起来像这样 标志| EOF(1位)/序号(7位)|任务|长度|信息(长度字节)| CRC(16位)|标志 标志值为0x7E 我可以将序列号、任务和长度值限制在0x7E以下。 所以只有信息和CRC可能有0x7E值,我将用字节填充来替换 几乎在我读到的所有地方,人们都在谈论信息领域中的字节填充。不可能在CRC中获取0x7

我正在尝试用串行端口(rs232)在两块板之间进行通信。要求之一是能够区分哪个任务正在发送/接收数据。所以需要一个标题字段来标识任务

我计划使用异步HDLC帧,而不太关心控制字段。看起来像这样

标志| EOF(1位)/序号(7位)|任务|长度|信息(长度字节)| CRC(16位)|标志

标志值为0x7E

我可以将序列号、任务和长度值限制在0x7E以下。 所以只有信息和CRC可能有0x7E值,我将用字节填充来替换


几乎在我读到的所有地方,人们都在谈论信息领域中的字节填充。不可能在CRC中获取0x7E。我该怎么处理呢。如果我最终得到0x7E,我是否也应该为CRC做字节填充呢?

看一看段落异步帧的解释。我的问题是关于CRC字段的。如果我们采用实际的异步HDLC帧,则有一个16或32位CRC字段。假设我们使用的是16位CRC。如果生成的CRC是0x7E20怎么办。你应该做字节填充吗。这不会将CRC更改为24位。我只是想知道该怎么处理。信息字段中的字节填充是可以的,因为它的大小是可变的。不,因为,在计算它之前,您必须删除转义字符并将字节重新转换为正确的值。