查看: 282|回复: 4
收起左侧

can收发大量数据,偶尔丢失数据

[复制链接]

1

主题

4

帖子

12

积分

实习生

 楼主| 发表于 2017-5-17 16:26 | 显示全部楼层 |返回版面||阅读模式
使用CAN中断接收数据,500k波特率。总线上有9个节点,8个节点只能接收对应ID的数据,1个节点接收总线上其他8个节点发送的数据(假设为节点A)。当A向其他8个节点发数据时,自己还的去接收其他节点发出的数据。通过监测,A发的8帧数据都发出了,但A在接收其他节点发送到总线上数据时,偶尔出现了个别数据的丢失。数据接收在CAN中断中,采用队列方式接收。硬件上匹配电阻已加。不清楚问题出在哪,如何解决?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 手机登录

x
     

9

主题

871

帖子

2644

积分

初级工程师

发表于 2017-5-18 15:15 | 显示全部楼层 |返回版面
查出丢的帧单独发试试?也可以提高下CAN接收中断优先级试试,如果数据量很大的话,你得确保其他8个的数据都正常发送出来了(即总线没有饱和,或者发送没有被抢占!),你可以设置个计数器,发送一个累加一下,然后对比下总的结果分析看看,或者提高到1M试试...,
宠辱不惊,闲看庭前花开花落;来去无意,漫随天际云卷云舒。

1

主题

4

帖子

12

积分

实习生

 楼主| 发表于 2017-5-19 09:21 | 显示全部楼层 |返回版面
哪个节点丢数据是可以看到,而且每次丢的都不是同一节点的。优先级也设得最高了。总线被抢占倒是有可能,8个发送的发送,不太好控制,都是随机发的。接收端接收总线所有数据,有点怀疑接收端数据没处理过来。
     

16

主题

560

帖子

1811

积分

助理工程师

发表于 2017-5-22 10:53 | 显示全部楼层 |返回版面
每次都不一样,很有可能是处理的问题。
你数据量大吗
己所不欲,勿施于人,争渡争渡

1

主题

4

帖子

12

积分

实习生

 楼主| 发表于 2017-5-22 11:42 | 显示全部楼层 |返回版面
杨爱林林 发表于 2017-5-22 10:53
每次都不一样,很有可能是处理的问题。
你数据量大吗

是的,接收时丢失的都不是某一固定节点的。发送节点发送的是自己节点的ID,接收端没有进行ID的筛选,接收总线上所有发送的数据。9个节点,9帧的数据,会出现抢占总线情况。
接收处理在接收中断中采用队列处理方式。
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

关闭

热门推荐上一条 /3 下一条

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