RS485总线调试总结

【原文 RS485总线调试总结


这里把这三天来调试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的话,相信这个时间还会更长。


### 回答1: RS485串口调试软件是一种用于调试和监控RS485串口通信的软件工具。RS485是一种常用的串行通信协议,用于在工业自动化和数据采集等领域进行数据传输。 RS485串口调试软件的主要功能包括: 1. 串口设置:可以通过软件设置串口的参数,如波特率、数据位、停止位和校验位等,以确保串口与设备之间的通信正常。 2. 数据发送和接收:在软件中可以输入要发送的数据,并通过串口将数据发送到设备。同时,软件可以实时接收设备返回的数据,并在界面上显示。这样可以方便地测试和验证设备的响应和数据传输。 3. 数据分析和解析:软件可以对设备返回的数据进行分析和解析。例如,可以将原始的二进制数据转换为可读的ASCII码,或使用特定的数据格式进行解析。这样可以更好地理解和处理设备返回的数据。 4. 错误检测和校验:软件可以帮助用户检测和校验串口通信中的错误。例如,可以检测数据位是否正确、校验位是否匹配等。同时,软件还可以提供错误日志和报告,方便用户进行故障排查和调试。 5. 数据记录和保存:软件可以将串口通信中的数据记录和保存,方便用户随时查看和分析。这对于长时间的数据传输和监控非常有用。 RS485串口调试软件广泛应用于各个行业,如工业控制、通信设备调试和网络设备配置等。它简化了串口调试的流程,提高了工作效率,帮助用户更好地理解和掌握串口通信的工作原理和特点。 ### 回答2: RS485串口调试软件是一种用于调试和测试RS485串口通信的工具。RS485是一种常用的串行通信接口标准,可用于多个设备之间的数据传输。由于RS485是一种差分信号传输方式,具有较强的抗干扰能力和远距离传输能力,因此被广泛应用于工业自动化、电力监控等领域。 RS485串口调试软件提供了一些功能和工具,帮助用户进行串口通信的调试和测试。首先,它可以用于监控和查看串口通信数据。用户可以实时查看串口收发数据,包括发送的命令、接收的回复等,从而判断通信是否正常和数据是否正确。 其次,RS485串口调试软件还支持发送命令并检查设备响应。用户可以输入指定的命令并发送到串口设备,然后观察设备的响应结果。通过不断的发送和接收数据,用户可以对通信协议进行调试和优化。 此外,RS485串口调试软件还提供了一些参数设置和调整的功能。用户可以设置串口通信的波特率、数据位、停止位等参数,并根据具体情况进行调整和优化。这有助于提高串口通信的稳定性和性能。 总之,RS485串口调试软件是一种重要的工具,帮助用户在开发和应用RS485串口通信时进行调试和测试。它提供了监控数据、发送命令和调整参数等功能,帮助用户实现串口通信的稳定和可靠。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值