搜索
bottom↓
回复: 20

不增加校验字,分别用两个字节表示0和1,用哪两个数字最好?

[复制链接]

出100入0汤圆

发表于 2019-12-13 12:04:05 | 显示全部楼层 |阅读模式
本帖最后由 wochai 于 2019-12-14 08:09 编辑

如题.
串口通讯中,我想用两个字符表示0和1,用哪两个最不容易受到干扰出错。
比如:A对应1,B对应2
传输给对方后,可以由于干扰变成C,但是不要出现A和B交换的情况。

编辑原因:“用两个字节表示0和1”  改为 “用两个字符表示0和1”

出0入224汤圆

发表于 2019-12-13 12:05:29 来自手机 | 显示全部楼层
0,255  ^_^

出0入0汤圆

发表于 2019-12-13 12:09:53 来自手机 | 显示全部楼层
0x55,0xAA

出0入4汤圆

发表于 2019-12-13 12:38:13 | 显示全部楼层
#在这里快速回复#0x55,0xAA

出0入0汤圆

发表于 2019-12-13 12:38:25 来自手机 | 显示全部楼层
两个数字要正交,55 AA,3C C3都可以

出0入0汤圆

发表于 2019-12-13 12:52:47 | 显示全部楼层
我一般用A5 5A

出100入0汤圆

 楼主| 发表于 2019-12-13 13:38:47 | 显示全部楼层

0000 0000
1111 1111
这种全满全空的数值,在波特率错误的时候特别容易出现,好像不太合适。

出100入0汤圆

 楼主| 发表于 2019-12-13 13:41:33 | 显示全部楼层

0101 0101
1010 1010
这个通讯时错了一位,不就恰好交换了?!

出5入4汤圆

发表于 2019-12-13 14:00:39 | 显示全部楼层
10101001
01010110

出0入0汤圆

发表于 2019-12-13 14:02:54 来自手机 | 显示全部楼层
FA  2C   这种呢

出0入4汤圆

发表于 2019-12-13 14:34:38 | 显示全部楼层
两个字节,为什么不是1个字节表示协议,另一个字节作校验呢?

出100入0汤圆

 楼主| 发表于 2019-12-14 08:10:40 | 显示全部楼层
laujc 发表于 2019-12-13 14:34
两个字节,为什么不是1个字节表示协议,另一个字节作校验呢?

Sorry!描述错误!
不是“用两个字节表示0和1” ,而是 “用两个字符表示0和1”。

出0入96汤圆

发表于 2019-12-14 09:17:15 | 显示全部楼层
大于10的表示1 小于5的表示0

出0入984汤圆

发表于 2019-12-14 09:21:10 | 显示全部楼层
wochai 发表于 2019-12-13 13:41
0101 0101
1010 1010
这个通讯时错了一位,不就恰好交换了?!

但是还有一位停止位

出0入34汤圆

发表于 2019-12-14 10:16:29 | 显示全部楼层
wochai 发表于 2019-12-13 13:38
0000 0000
1111 1111
这种全满全空的数值,在波特率错误的时候特别容易出现,好像不太合适。 ...

楼主的这个问题,我在 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 编码等啥的再试一试吧!

出0入8汤圆

发表于 2019-12-14 10:20:07 来自手机 | 显示全部楼层
本帖最后由 canspider 于 2019-12-14 10:21 编辑

核心思路就是过采样,用更多的信息来表达一位数据
再往深了研究就是深空通讯技术了

出0入0汤圆

发表于 2019-12-14 10:37:15 | 显示全部楼层
参考纠错码原理和方法,数据量大时还可以少了太浪费资源了不如CRC不对就扔了。

出100入0汤圆

 楼主| 发表于 2019-12-14 10:50:56 | 显示全部楼层
xyz543 发表于 2019-12-14 10:16
楼主的这个问题,我在 1995 年时也遇到了,但不是 0 与 1 状态的传递,而是使用了 RS-485 且传递了几个 B ...

我的系统倒是没有这么严格的要求。
看来的确在波特率不变的情况下,多个1或0连续的情况抗干扰能力比较强些。

出0入0汤圆

发表于 2019-12-14 11:32:15 来自手机 | 显示全部楼层
说白了这就是扩频技术,无线传输里的干扰比这多的多。

出0入4汤圆

发表于 2019-12-14 11:39:41 | 显示全部楼层
随便整两随机数,越随机越好

出100入0汤圆

 楼主| 发表于 2019-12-14 13:50:47 | 显示全部楼层
fct8591 发表于 2019-12-14 10:37
参考纠错码原理和方法,数据量大时还可以少了太浪费资源了不如CRC不对就扔了。 ...

看了下“纠错码原理和方法”,的确有所收获。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 14:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表