打印
[485通信]

串口通信偶尔出现不接收

[复制链接]
1163|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
chunyang| | 2016-1-12 20:16 | 只看该作者
可能是设计存在问题,也可能是干扰引起的闩扣效应,还可能是器件品质的问题,需要更多相关信息才能具体判断,尤其要注意发生故障时的测试。

使用特权

评论回复
板凳
进击的ic|  楼主 | 2016-1-19 10:17 | 只看该作者
chunyang 发表于 2016-1-12 20:16
可能是设计存在问题,也可能是干扰引起的闩扣效应,还可能是器件品质的问题,需要更多相关信息才能具体判断 ...

不好意思,几次登录都没有提示,以为没人回复,先向前辈致歉
我们做了实验,发现在单板电脑的COM1口在重启的时候会发27字节的数据,可能是这个把Manager给发挂了,进入了一种异常的机制。Manager用的是凌特的TLC5800,手册上也没找到有关异常的描述。接单板电脑RS232串口,通用流控为RTS/CTS,但凌特这个就比较坑,收和发各有两个RTS/CTS,而且RTS定义为请求,CTS定义为允许。现在的主要问题是流控不知道怎么接

使用特权

评论回复
地板
chunyang| | 2016-1-19 12:12 | 只看该作者
进击的ic 发表于 2016-1-19 10:17
不好意思,几次登录都没有提示,以为没人回复,先向前辈致歉
我们做了实验,发现在单板电脑的COM1口在重 ...

应该仔细看看器件手册,通常为交叉连接。

使用特权

评论回复
5
进击的ic|  楼主 | 2016-1-19 12:18 | 只看该作者
chunyang 发表于 2016-1-19 12:12
应该仔细看看器件手册,通常为交叉连接。

嗯,凌特这个比较奇特

使用特权

评论回复
6
chunyang| | 2016-1-19 12:27 | 只看该作者
进击的ic 发表于 2016-1-19 12:18
嗯,凌特这个比较奇特

不存在什么“奇特”,串口就两种接法,平行和交叉,由设备类型决定。

使用特权

评论回复
7
jinoux2000| | 2016-1-20 14:35 | 只看该作者
接触不良,虚焊的。

使用特权

评论回复
8
进击的ic|  楼主 | 2016-1-21 16:27 | 只看该作者
chunyang 发表于 2016-1-19 12:27
不存在什么“奇特”,串口就两种接法,平行和交叉,由设备类型决定。

这是凌特Manager的流控图,黑线是外部设备控制,蓝线是Manager控制,这里RTS统一定义为请求,而CTS统一定义为允许发送

QQ截图20160118100147.png (35.25 KB )

QQ截图20160118100147.png

使用特权

评论回复
9
进击的ic|  楼主 | 2016-1-21 16:28 | 只看该作者
jinoux2000 发表于 2016-1-20 14:35
接触不良,虚焊的。

不会是这个问题,要是虚焊早解决了

使用特权

评论回复
10
进击的ic|  楼主 | 2016-1-21 16:38 | 只看该作者
chunyang 发表于 2016-1-19 12:27
不存在什么“奇特”,串口就两种接法,平行和交叉,由设备类型决定。

今天做了实验,发现在单板电脑开启时,COM1口会发27Byte的无效数据,会让Manager进入某种异常。
抓取这27Byte的收据,在Manager正常工作时,用串口助手发下去,也会触发异常,说明确实是这些无效数据起了作用。
进一步实验发现,与无效数据的内如无关,至于字节数有关,超过10Byte就会触发异常。
分析Manager的一帧结构为7E*****7E,在没有收完一帧数据的时候,就一直将数据存放在BUFFER内部,而不处理,但BUFFER并不是很大,所以无效数据字节多了就会出现溢出,引起异常。
为验证这一想法,通过串口助手向Manager连续发送无效数据,检测到Manager程序跑飞了,看门狗起了作用,说明凌特在串口接收上存在问题,没有预防BUFFER溢出的机制。
现在将测试报告提交凌特了,就看对方怎么解释了

使用特权

评论回复
11
rcengtian| | 2016-2-21 22:50 | 只看该作者
最有可能的,还要从程序上看是否有BUG。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

72

帖子

1

粉丝