打印

RS422串口通信问题

[复制链接]
7169|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RQren2008|  楼主 | 2012-10-22 21:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 RQren2008 于 2012-10-23 08:42 编辑

下午发了个帖子,写错协议了,实际是RS422接口,在这里给回复的朋友道个歉!!!
我再写一下问题:
现在用工控机采集数据,RS422接口,波特率是614400,采用C++编写的通信软件,但是采集的数据总是出错,数据时打包发送,长度固定,包头是0x55 0xAA但是接收的数据包头总是0x55 0xA9,而且数据长度不固定,一般都是比规定的数据多几个字节。
苦恼了好久了,希望各位能够提供一点建议,不胜感激!!!
ps:波特率太高这个原因就不要说了,因为这个是由设备决定的,改不了。

相关帖子

沙发
superman2012| | 2012-10-22 23:44 | 只看该作者
由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mbps。其平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mbps。RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ledaa + 1
板凳
jlass| | 2012-10-23 09:13 | 只看该作者
其实614400的速率本身并不高,主要是你用的芯片或者设备限制了速率,
建议楼主采用替换法找出产生了速率限制的设备,替换掉
从你的描述看,对方的设备是没问题的,所以问题应该在你自己的设备或者是转接器上

使用特权

评论回复
地板
RQren2008|  楼主 | 2012-10-23 09:19 | 只看该作者
3# jlass 整个测试过程有关的设备应该只有:对方设备、电缆、转接头、接收机
对方设备没问题,转接头的手册上写了支持614400的波特率,接收机也测试过其他设备,我现在也想不出来哪出问题了,苦恼中

使用特权

评论回复
5
jlass| | 2012-10-23 09:34 | 只看该作者
所以我说用替换法啊,一个一个换过去,电缆换过没。
所有的都换一遍,如果还是这样,这能说明你们的方案有点问题了。

转接头的手册上写了支持614400的波特率
别看是怎么写的,可能是临界点。

使用特权

评论回复
6
RQren2008|  楼主 | 2012-10-23 09:46 | 只看该作者
5# jlass 这个是软件的工程文件,您能不能帮忙看看有没有问题,多谢了!!!

串口通信.zip

5.16 MB

使用特权

评论回复
7
RQren2008|  楼主 | 2012-10-23 15:03 | 只看该作者
不知道大家有没有什么新的建议?

使用特权

评论回复
8
lhbzqh| | 2012-10-23 17:35 | 只看该作者
1、校准波特率
2、串行数据位数是否设置对了
3、单点通信,不要接多台设备
4、只发送部分特定字节,用示波器观察,位数是否正确,通过周期看波特率是否正确等等

使用特权

评论回复
9
hdsr178| | 2012-10-25 10:37 | 只看该作者
双绞线的阻抗相匹配、低衰减的情况下,通信可以改善一些。

使用特权

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

本版积分规则

14

主题

67

帖子

1

粉丝