串口通信偶尔出现不接收
公司一款产品在做挂机实验的时,偶尔会出现设备的硬件通信串口不接收数据,用示波器看过接收引脚电平有正确信号,就是芯片不接收。而且问题非周期复现,有时几天,有时一个月都正常。各位大神有人遇到类似问题么? 可能是设计存在问题,也可能是干扰引起的闩扣效应,还可能是器件品质的问题,需要更多相关信息才能具体判断,尤其要注意发生故障时的测试。 chunyang 发表于 2016-1-12 20:16可能是设计存在问题,也可能是干扰引起的闩扣效应,还可能是器件品质的问题,需要更多相关信息才能具体判断 ...
不好意思,几次登录都没有提示,以为没人回复,先向前辈致歉
我们做了实验,发现在单板电脑的COM1口在重启的时候会发27字节的数据,可能是这个把Manager给发挂了,进入了一种异常的机制。Manager用的是凌特的TLC5800,手册上也没找到有关异常的描述。接单板电脑RS232串口,通用流控为RTS/CTS,但凌特这个就比较坑,收和发各有两个RTS/CTS,而且RTS定义为请求,CTS定义为允许。现在的主要问题是流控不知道怎么接 进击的ic 发表于 2016-1-19 10:17
不好意思,几次登录都没有提示,以为没人回复,先向前辈致歉
我们做了实验,发现在单板电脑的COM1口在重 ...
应该仔细看看器件手册,通常为交叉连接。 chunyang 发表于 2016-1-19 12:12
应该仔细看看器件手册,通常为交叉连接。
嗯,凌特这个比较奇特 进击的ic 发表于 2016-1-19 12:18
嗯,凌特这个比较奇特
不存在什么“奇特”,串口就两种接法,平行和交叉,由设备类型决定。 接触不良,虚焊的。 chunyang 发表于 2016-1-19 12:27
不存在什么“奇特”,串口就两种接法,平行和交叉,由设备类型决定。
这是凌特Manager的流控图,黑线是外部设备控制,蓝线是Manager控制,这里RTS统一定义为请求,而CTS统一定义为允许发送
jinoux2000 发表于 2016-1-20 14:35
接触不良,虚焊的。
不会是这个问题,要是虚焊早解决了 chunyang 发表于 2016-1-19 12:27
不存在什么“奇特”,串口就两种接法,平行和交叉,由设备类型决定。
今天做了实验,发现在单板电脑开启时,COM1口会发27Byte的无效数据,会让Manager进入某种异常。
抓取这27Byte的收据,在Manager正常工作时,用串口助手发下去,也会触发异常,说明确实是这些无效数据起了作用。
进一步实验发现,与无效数据的内如无关,至于字节数有关,超过10Byte就会触发异常。
分析Manager的一帧结构为7E*****7E,在没有收完一帧数据的时候,就一直将数据存放在BUFFER内部,而不处理,但BUFFER并不是很大,所以无效数据字节多了就会出现溢出,引起异常。
为验证这一想法,通过串口助手向Manager连续发送无效数据,检测到Manager程序跑飞了,看门狗起了作用,说明凌特在串口接收上存在问题,没有预防BUFFER溢出的机制。
现在将测试报告提交凌特了,就看对方怎么解释了 最有可能的,还要从程序上看是否有BUG。
页:
[1]