Elex 发表于 2010-4-15 01:02:41

RS-485通讯的奇怪问题:选择性死机

今天在调试板子的时候遇到了一个非常奇怪的问题:RS-485通讯选择性死机。
MCU的一个串口并联了RS-232和RS-485两种接口。当电脑直接连接到RS-232接口时一切正常;而当连接到RS-485接口时则选择性死机(MCU未死,仅通讯死机)。
所谓选择性死机指的是:上位机发某些命令时通讯一直正常,而发某些命令时则必死,死机后除了重新上电再也无法通讯。
看到这里,大多都会觉得是下位机软件有问题。但软件复位或直接reset MCU不能恢复通讯,只有重新上电才行;而且即使将MCU停掉,上位机还是会收到同样的错误返回数据。
于是会想到可能是RS-485转换器的问题。但换了三个相同的转换器还是出现同样的问题,而且通讯未死机前发某些命令时RS-485一直都可以正常通讯的;转换器的电源是从串口取电的,也试过另外独立电源供电,下位机板子重新上电关转换器niao事,为啥就能恢复?
难道是上位机软件的问题?
用RS-232连接通讯完全正常,加了RS-485转换器连接到RS-485接口就不正常,不太像是上位机软件的问题;而且下位机重新上电关上位机niao事,为啥就能恢复?
到现在我都不能排除究竟上位机软件还是下位机软件,或者还是硬件(转换器)有问题,估计转换器有问题的机会比加大。等明天或后天有时间再拿示波器仔细检查一下:
1,上位机有问题?等待时间不够长而引起总线数据冲突,进而导致转换器或板上收发器死锁?或其它原因?
2,转换器有问题?买其它型号的转换器再试试开。或其它原因?
3,下位机软件有问题?RS-485的收发控制有缺陷导致总线数据冲突,进而导致转换器或板上收发器死锁?或其它原因?

mbbill 发表于 2010-4-15 01:28:34

描述不太清楚
"MCU的一个串口并联了RS-232和RS-485两种接口"
是指ttl到232和485两种转换芯片并联?用其中一个芯片的时候另一个芯片shutdown了没?
不过看后面叙述又像是mcu的232通过232-485转换器连接到485.。。。
如果是这种情况,232-485转换器一般就是max3232和max485之类直接转换,基本不会出问题,也不会死锁。

zchong 发表于 2010-4-15 08:09:12

示波器看吧,知道波形就容易解决了

z1234 发表于 2010-4-15 08:19:49

MCU的一个串口并联了RS-232和RS-485两种接口
******************************************
贴上电路图,据我了解并不能简单并联。

rei1984 发表于 2010-4-15 08:35:29

ls正解,线与是不行的。最好通过一个与门

Elex 发表于 2010-4-15 09:28:20

RS-485也接触十年八年的了,没那么容易难倒的。
下位机的硬件是经过项目验证的,只是不便公开。
有时间我再仔细检查,忙~~~

Elex 发表于 2010-5-4 18:16:41

问题找到了,是firmware有问题,其它都是表象。
本来TXD的FIFO中数据剩下1/8时中断并延时切换RS-485的方向为接收的
而firmware在接收到某个指令后发的应答数据只有4个字节,MCU不能进入FIFO中断,因而不能将RS-485转为接收状态。
当板子上的RS-485方向一直为发送状态时(无发送数据),跟断电后的效果都同样使得RS-232/RS-485转换器在收到PC端的数据后返回一段相近的错误数据,所以一开始不能确定是firmware的问题。

howmoney 发表于 2010-5-20 15:12:56

请允许我mark
页: [1]
查看完整版本: RS-485通讯的奇怪问题:选择性死机