博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RS485使用注意事项(上下拉电阻)
阅读量:5228 次
发布时间:2019-06-14

本文共 1412 字,大约阅读时间需要 4 分钟。

这里把这三天来调试RS485总线所遇到的问题和经验教训总结一下,备忘。

这两天主要做的是把Keller 30X系列工业用压力变送器的RS485接口和STM32单片机联通,并将数据通过USB口转发到PC上。

我首先直接使用Keller 30X连接电脑的RS485接口,这自然没有问题,用Keller自带的小软件直接就能看到结果。

其次让STM32的RS485接口和电脑连接,这步调试整整用了1天半,遇到了几个比较棘手的问题:

  1. 发送时,由于RS485为半双工模式,发送时需要处理收发转换。发送前将T/NR线拉高,然后用串口发送一个字节的数据。发送完之后不能马上把T/NR线拉低,需要等待一会儿(大约发送1~2位的时间,视波特率而定),等接收方确认收到停止位后,再把T/NR拉低进入接收模式。
  2. 接收时和发送同理,电脑向单片机发送数据时停止位起码要有2位,以保证单片机收到停止位,否则连续发送时会把后一位数据中的1->0跳变认作起始位,导致传输错误
  3. 芯片选择方面,要认清MAX3485和MAX485的区别。MAX3485是CMOS电平的,用3.3V供电。MAX485是TTL电平的,用5V供电。STM32单片机的IO都是CMOS电平,所以理应使用MAX3485芯片。如果一定要做TTL和CMOS的电平转换,记住CMOS可以驱动TTL,而TTL驱动CMOS时需要上拉电阻。如果电平搞错了,最明显的状况就是发送正常而接收乱码。
  4. RS485的终端电阻不要乱接。RS485的终端电阻是接在总线最末端防止电波反射的,如果线很短干脆就不要接了,否则反而容易把差分信号拉小,使信噪比降低
  5. RS485的AB线上的上下拉电阻个人认为没有必要接。首先MAX3485内部有上下拉电路,本身就能够把AB线钳位在1上;其次,如果线缆很长,设备所处的地电位和主板所处的地电位很可能不一样,附加上下拉电阻反而会产生附加的暗电流,会把差分信号拉小,降低信噪比。
  6. STM32的Tx口要配置成推挽输出模式,Rx口要配置成内置上拉模式(当然也可以配置成悬空模式,在电路板上用电阻上拉)

最后尝试将Keller 30X和STM32单片机连接,悲剧就发生了。Keller 30X的485接口完全是针对电脑设计的,(9600,n,8,1)的配置下一帧连续发送20多个字节。正如上文所述,单片机需要至少1位的安全时间用于处理中断程序,在接受Keller的快速连发时,下一字节的开始位到来时,单片机还处于中断处理程序中,所以直接将其忽略了,这导致单片机将数据中出现的1->0的跳变认作下一位的起始位,使后续传输全部出错。

不幸的是,Keller 30X的通信芯片不能编程,所以也无法给它加入安全事件。最后我只能采用的模拟信号A/D转换的方式来采集Keller 30X的压力信号。这个故事告诉我们,以后设计面向单片机的UART接口时(不管是RS232,rs485还是TTL,CMOS),一定要考虑到目标单片机的性能。单片机不比电脑,处理一个串口接收中断一瞬间就可以完成,向单片机发送数据时,两字节之间一定要留足安全时间,以保证目标单片机有足够的时间处理中断,读取寄存器中的数据。STM32单片机已经算是快的了,处理一个中断尚且需要1位的时间,如果是51的话,相信这个时间还会更长。

转载于:https://www.cnblogs.com/hao5158/p/3653448.html

你可能感兴趣的文章
我是插件狂人,jDuang,jValidator,jModal,jGallery
查看>>
张季跃 201771010139《面向对象程序设计(java)》第四周学习总结
查看>>
如何解除循环引用
查看>>
android中fragment的使用及与activity之间的通信
查看>>
字典【Tire 模板】
查看>>
jquery的contains方法
查看>>
python3--算法基础:二分查找/折半查找
查看>>
Perl IO:随机读写文件
查看>>
Perl IO:IO重定向
查看>>
转:基于用户投票的排名算法系列
查看>>
WSDL 详解
查看>>
[转]ASP数组全集,多维数组和一维数组
查看>>
C# winform DataGridView 常见属性
查看>>
逻辑运算和while循环.
查看>>
Nhiberate (一)
查看>>
c#后台计算2个日期之间的天数差
查看>>
安卓开发中遇到的小问题
查看>>
ARTS打卡第3周
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>