同步波特率 (RFC2217) encode/decode

Synchronous baud rate (RFC2217) encode/decode

我正在尝试在我的代码中实现 RFC2217,但我不明白最后一个奇偶校验位(46H 和 28H)是如何生成的。

我正在使用 RS485 连接以太网设备。

如果我使用 2400,E,8,1,密码是什么?

是:55 AA 55 09 60 1B XX?

用户手册:第 42 页 https://www.sarcitalia.it/file_upload/prodotti//USR-N520-Manual-EN-V1.0.4.pdf

  1. 在波特率字段中您错过了 MSByte。该字段应为 00 09 60.

  2. 是的,“E,8,1”的 1B 是正确的。顺便说一句,table 为“停止位”和“奇偶校验启用”的 1 位字段列出了 2 位,这很烦人。

  3. parity字段其实只是一个求和,没有header和MSBit清零。 (解释的文字我没看懂,反正文档好像质量不高)

    01 C2 00 03:0x01 + 0xC2 + 0x00 + 0x03 = 0xC6;没有位 7 = 0x46.

    00 25 80 03:0x00 + 0x25 + 0x80 + 0x03 = 0xA8;没有位 7 = 0x28.

    你的电报00 09 60 1B:0x00 + 0x09 + 0x60 + 0x1B = 0x84;没有位 7 = 0x04。所以 XX04.