关于485通讯问题:在线等,急!
三种不同的PCB板A\B\C,上面均各有485模块,但是芯片型号都不一样,我两两相接,结果A和B,A和C都可以485通信,但是B和C就不能,都有什么原因呢? 是不是芯片型号不同所致? 终于有人作了解答,特此将yewuyi的建议贴于下面,供各位参考。再次感谢yewuyi!有很多种可能,比较常见的可能:
1、波特率误差造成
一般来说,误差超过3%为临界点,超过3%则无/法/正常通信。现在AB、AC可以通信,BC不能通信,假设A的频率为k,B的波特率为xk,C的波特率为yk,只要x和y的值在0.97~1.03范围内,则AB、AC可以正常通信,但当x-y的绝对值超过0.03即不能正常通信。
2、MAX485只是一种物理层,具体报文层数据如何解析则由用户代码决定,如果A能识别B和C的报文数据,不代表B和C能互相识别,则就如果一个人为A,他能听懂中文和英文两种语言,B说中文,C说英文,所以A和B、C都能对话,但B和C之间无法直接对话。
在现实生活中,我们给A一个职业:翻译。
3、电路或者连接错误,这个可就有很多种可能,无法猜测,只能你自己弄明白485到底应该怎么接了。
正是第一种情况,才出现数据在传输过程中出现错误,学习了 另外,需要检查接口电路,比如没有终端电阻或接口偏置量不合适等,测绘出具体电路即可明白。当然,波特率误差也可能是原因,但此原因与485接口无关。 我觉得通讯协议的可能性很大,比如波特率、代码校验方式等等,对于硬件方面的可能性,如果可以的话先去掉偏置电阻试下。 光耦的速度会不会制约其传输的质量?比如说两个485电路有几种型号的光耦 光耦当然会制约,普通光耦不要超过10K的开关速度,高速通讯要使用高速光耦做隔离,但如果在参数规范限定之内使用,型号再多也无所谓。 嗯,查了查,有些不同型号的光耦,有的是差别很大 关键在于是否能满足波特率的要求,高速型号可以满足低速应用,反之则不行。
页:
[1]