倚楼等红颜的个人空间 https://bbs.21ic.com/?1553790 [收藏] [复制] [RSS]

日志

谈485通信的误码率问题

已有 251 次阅读2017-5-12 15:30 |系统分类:兴趣爱好| 误码率, 通信

烧录到芯片之后运行发现,通信异常,经过研究发现,问题点如下:

1、对于一个通信链路不是那么可靠的系统,通信波特率如果使用过快会产生问题,9600的误码率比4800的误码率要多得多。

2、RS485的使用问题,在系统开发过程中,由于IO资源有限,通常我们将RS485的接收使能脚直接接地了。这样的确可以方便实时接收数据,但是在发送的时候,也会导致一些问题。由于发送脚使能的时候,接收脚势能也是有效的,这时,将会导致自己发送出去的数据同时也会反馈到接收脚上来。由于串口通信如果用到了协议发送,不是那么容易调试出来,很多时候你自己都不知道为什么上位机发送一次数据,你的电路板为什么一直会回发数据,并且似乎没有一个结束的时候。正确的发送处理应该如下:首先,发送的时候关掉中断-串口中断或者总中断,至少要关掉串口中断,推荐关总中断。然后发送数据,发送完了以后,在开启中断之前,先将RI标志清零,然后在开启串口中断和总中断。如此可以避免自己收到自己发出的数据问题。

3、通过网上的搜罗发现,RS485的发送使能脚的操作也有一些玄机在里面。由于RS485的转换也需要一些时间,如果发送使能切换过快,也有可能导致数据不能可靠的发送出去,建议在发送使能有效后延时几百uS,发送完开启发送使能之前延时几百uS。这样也可以避免一些485转232转换器发生问题。

4、其他的一些强抗干扰措施,比如施加电阻稳定发送电压的处理等手段,在干扰不是那么严重的场合,可以用也可以不用。

5、IC的信号识别能力在用仿真头的时候好像比用MCU的时候要强一些,示波器观察发现,同样是1V的信号,用仿真头不会出现无法解码的现象,但是使用MCU的时候,也许就不能正确的将485差分信号转换成TTL电平信号了。

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)