2020-01-12 17:13发布
wochai 发表于 2019-12-13 13:41 0101 0101 1010 1010 这个通讯时错了一位,不就恰好交换了?!
wochai 发表于 2019-12-13 13:38 0000 0000 1111 1111 这种全满全空的数值,在波特率错误的时候特别容易出现,好像不太合适。 ...
最多设置5个标签!
但是还有一位停止位
楼主的这个问题,我在 1995 年时也遇到了,但不是 0 与 1 状态的传递,而是使用了 RS-485 且传递了几个 Byte 后,在工业应用上要能对抗致命的极严重干扰!大致上是变成了 C 后还可完整的还原其原来的那几个 Byte 资料不出错,
但最终完成了这个任务,它不是 CRC!而其中所的方式谅我在此不便公布,因我这两年内在退休前已较有空要来将当年的这方法给申请专利给我所在的公私单位,因为这是于敲码时所构想的,所以使用的权力是在公司而不是我自己。
言归正传,个人感觉就二楼的方法是较靠普的,或是说也可以用 0x0F & 0xF0 的类似连续的 0 或是 1。我以我个人的浅见来说说为何是要选这个方式,因为 Baudrate 不变的状况下,要干扰一个 Bit 的资料由 0 变 1 或是将 0 变 1 是很容易的。
这又要来说到这干扰突波的发生与特性,刚说到同 Baudrate 在不变的状况下,外界要产生改变一个 Bit 所需的突波能量会较小就易达成,但是要能干扰到连续的一组 Bit 那得要多大的能量啊?!这点请楼主评估看看,或其他坛友来补述也行。
最后再来说到若是...这帖内所有坛友给出的建议都无法达成的话,那表示这些资料的组合或是这 UART 串口硬件层是根本无法可靠的来传递资料了,也建议楼主考虑其他的如 RS-485 实体层或是如 USB 内的 NRZI 编码等啥的再试一试吧!
核心思路就是过采样,用更多的信息来表达一位数据
再往深了研究就是深空通讯技术了
一周热门 更多>