2020-08-18

RS485知识记录。

1、发送端 AB间的电压差  +2 ~ +6v 逻辑“1”   -2 ~ -6v 逻辑“0” 
2、接收端 AB间的电压差  大于 +200mv   逻辑“1”  小于 -200mv   逻辑“0
3、协议符合RS232协议,停止位,起始位等

RS485问题记录
一、问题记录
最近做一个项目,需要使用RS485读取NS的重力传感器,我们自己的工控机使用的UART转RS485芯片是SN65HVD,接线完成后总是发现广播命令读取重力数据过程中时断时续,不稳定。
二、问题解决
1、先附上我们的485部分RS485电路
2、因为读数不稳定,找了一个485串口同步测试,发现很稳定,怀疑是我们GPIO切换收发的问题,示波器测试了一下GPIO信号和返回数据的时序,见下
红黄是AB线,蓝色是GPIO
3、测试发现,总有一个传感器的数据返回时间特比快,命令发送完300us左右就会返回数据,但是我们的GPIO从发送切换到接收状态最短时间也是4-5ms,甚至有时候10ms左右
4、查阅传感器资料可知,当多个传感器节点接入485网络,数据返回时间可以根据传感器地址信号控制,返回时间=(N-1)*3ms,意思就是如果你是6号传感器,那么数据返回时间就是命令发送完的15ms。
5、因此把5个传感器地址改为了6,7,8,9,A。广播命令读取重力数据,5个传感器可以稳定读取!到此本以为问题已经解决,呵呵,我还是年轻了,因为又发现有单播的方式读取传感器数据,那是一个也读不到!!!稳稳的读不到,但是USB转485串口可以读到,又进一步了解了 一下,发现单播命令的时候,数据返回时间不受传感器自身地址的控制,每个返回时间都是300us。。。这还怎么玩,GPIO表示:臣妾做不到啊!没办法只能换了一个芯片,MAX13487
6、MAX13487这个芯片不需要外部控制收发,可以自己检测电平,实现收发控制。在这里插入图片描述
MAX13487电路
7、更换芯片后,测试结果每次都能读取了,关于这个芯片更多细节可以下载规格书查看,总之就是告诉诸位,GPIO切换RS485收发这种设计,真的有点让人头大,系统不稳定的运行时间,导致GPIO切换时间每次不完全一致,读传感器不稳定。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值