OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5575|回复: 9

紧急!!希望原子哥能帮忙解决:XCOM 进行IAP协议传输的时候,如果串口线有五六米时,XCOM解析出问题,会导致一直重发

[复制链接]

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
发表于 2018-4-27 09:48:06 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 wuboaini23 于 2018-4-27 09:50 编辑

下位机输出的调试信息

下位机输出的调试信息

XCOM串口数据

XCOM串口数据
紧急希望原子哥能查查。通过XCOM2.0 进行IAP 串口烧录时,如果串口线如果很长 ,自己的串口线大概有五六米的时候。就会出现XCOM在发到帧26时,固定会出现问题,总是报,帧格式错误。所以总是会引起重发,会重发很多次,还经常重发20次都解析不成功。调试时下位机其实已经准确接收到了26帧,也回发了26帧的协议数据,但是XCOM总是报 帧格式错误。所以一直重发。但是经常重发几次后就会成功,其实数据都是一样的。
说明:before SequenceValue 的值为static类型 为保存上次成功解析的协议的序列

error 6 SequenceValue 为全局的解析成功的 协议的序列号
error 6 SequenceTemp 为本次收到的帧的 序列号

normal 6 SequenceTemp 为本次解析成功的协议的序列号
normal 6 SequenceValue 为保存本次解析成功的协议的序列号


checknum 为回传数据的校验值
1 1 26 1 0 227 为回复上位机也就是PC xcom的协议

最佳答案

查看完整内容[请看2#楼]

串口线长了就要把波特率降低。串口是根据电压高低来判断0和1的,串口线太长,压降太大,传输数据很容易出错。波特率高的话就更容易出错。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-4-27 09:48:07 | 显示全部楼层
串口线长了就要把波特率降低。串口是根据电压高低来判断0和1的,串口线太长,压降太大,传输数据很容易出错。波特率高的话就更容易出错。
回复

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
发表于 2018-4-27 10:24:06 | 显示全部楼层
这么长的距离,用RS485吧
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-4-28 01:46:14 | 显示全部楼层
这不是XCOM问题哦
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-4-28 08:29:26 | 显示全部楼层
HXYDJ 发表于 2018-4-27 10:18
串口线长了就要把波特率降低。串口是根据电压高低来判断0和1的,串口线太长,压降太大,传输数据很容易出错 ...

波特率降下来,确实出错率低很多。但是有个疑问就是为啥每次都第26帧数据就会出问题,还有PC发给下位机不出问题PC发的下位机都能解析成功,但是下位机回PC就会出问题。
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-4-28 08:32:16 | 显示全部楼层

波特率降下来,确实出错率低很多。但是有个疑问就是为啥每次都第26帧数据就会出问题,还有PC发给下位机不出问题PC发的下位机都能解析成功,但是下位机回PC就会出问题。个人愚见,要是出错应该接收和发送都会出错吧。现在都是下位机解析成功后,回应答给上位机,上位机经常报 帧格式出错。
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-4-28 08:35:12 | 显示全部楼层
wuboaini23 发表于 2018-4-28 08:29
波特率降下来,确实出错率低很多。但是有个疑问就是为啥每次都第26帧数据就会出问题,还有PC发给下位机不 ...

可以用示波器看看波形
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-4-28 17:37:27 | 显示全部楼层
本帖最后由 ssssssssssss 于 2018-4-28 17:38 编辑
wuboaini23 发表于 2018-4-28 08:32
波特率降下来,确实出错率低很多。但是有个疑问就是为啥每次都第26帧数据就会出问题,还有PC发给下位机不 ...

用232应该可以达到十米由RS-232-C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10%-20%的范围工作的,所以实际使用中最大距离会远超过50英尺,美国DEC公司曾规定容许畸变为10%而得出下面实验结果。其中1号电缆为屏蔽电缆,其外覆以屏蔽线。2号电缆为不带屏蔽的电缆。
DEC公司的实验结果
波特率bps 1号电缆传输距离(米) 2号电缆传输距离(米)
110 1500 900
300 1500 900
1200 900 900
2400 300 150
4800 300 75
9600 75 75

回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-5-1 17:08:50 | 显示全部楼层
ssssssssssss 发表于 2018-4-28 17:37
用232应该可以达到十米由RS-232-C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4 ...

谢谢,我也觉得,232传输应该不会这么短 五六米就总是出问题
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2018-5-2 17:11:38 | 显示全部楼层
wuboaini23 发表于 2018-5-1 17:08
谢谢,我也觉得,232传输应该不会这么短 五六米就总是出问题

有些串口很劣质
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 07:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表