OpenEdv-开源电子网

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

can通信的从机丢失问题

[复制链接]

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
发表于 2013-8-16 17:36:27 | 显示全部楼层 |阅读模式
 
can通信中
所有ID都是标准帧格式
主机设置发送0X0049 ID   接受所有ID
从机设置发送到0x0001-~~0x0007(总共7台从机)的ID帧  接受0X0049 ID
两个方面的考虑:一个是频率 我试了200K和500k
从机的120欧电阻问题 :全部从机都安装120 全部不安 首尾安 都试过 还是有从机丢失 
求解答
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-16 21:12:44 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-19 12:39:48 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
周末两天照顾我家领导,今天才来上班! 
我现在用ARM9做主机带4台STM32从机都没有问题 但是带5台 就会有一台丢失 带7台 丢失更严重
通信线 我用的那种双绞线做通信线路,不知道和这个有没有关系!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-19 15:12:08 | 显示全部楼层
是不是都加了120欧电阻?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-19 17:07:29 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
都试过 全部加、首尾加、全部不加。 
ARM9做主机带4台STM32从机都没有问题。 带5台以上就不行  最容易丢失的从机 就是那个挨着主机的第一个从机。arm9自己有120欧电阻 不过它整个图是这个样的
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-19 17:08:27 | 显示全部楼层


回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-19 17:28:01 | 显示全部楼层
一定要首尾 加 终端匹配电阻 , 不要加多

C87  可以去掉 [首尾的两个可以保留 去掉也可以], 太多影响总线速率

你再试下
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-21 14:57:18 | 显示全部楼层
测试了一周了 始终出现从机丢失现象  麻烦原子哥帮我看看程序 有没有问题,主要是STM32的 非常感谢!

stm32程序-3.rar

4.2 MB, 下载次数: 163

can.c

4.06 KB, 下载次数: 55

回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-21 15:00:16 | 显示全部楼层
回复【7楼】aleda303:
---------------------------------
这个是ARM9的开发板 我直接把改电容去掉 没有解决该问题 我现在严重怀疑我的STM32程序问题
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-21 15:09:22 | 显示全部楼层
回复【9楼】xz4950:
---------------------------------

查看总线容量, 
你把发送时间间隔改大些 ,再试下, 可能总线容量超限了吧
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-21 15:29:13 | 显示全部楼层
回复【10楼】aleda303:
---------------------------------
我在socket can里设置了睡眠函数 每次接受到一个ID睡眠1毫秒 出现的结果 还是发送10次 有3次ID丢失 7次是ID不丢失  我现在就怀疑我的STM32 发送函数 是不是写错了 不过我找不到原因
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-21 15:57:19 | 显示全部楼层
回复【10楼】aleda303:
---------------------------------
我将波特率从500K降低到200k 还是出现该问题 发送间隔是手动的 N秒才发送一次!
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-21 15:57:38 | 显示全部楼层
应该不是发送的问题, 可能接收处理时间太长 没读出来导致邮箱都满了 就忽略了

你看下接收吧,

 你在接收中断直接将数据ID转存, 先不要处理数据。除此之外中断不要处理任何其他东西,  看看是否都能接收得到 
const u32 IDNUM[10] ={ 0x.... .... .... ... .. };
u32 IDCount[10] = {0,0,0....};

中断里, 
for(int i=0; i<10; i++)
{
 if(IDNUM==rMsg.ID)
{
 IDCount ++;
return;
}

}

主函数 将IDCount[] 发出来, 看看 是否都有进来
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-21 15:59:50 | 显示全部楼层
回复【12楼】xz4950:
---------------------------------
如果是 手动发送 直接打印出ID来呢?可以收到吗
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-21 16:01:02 | 显示全部楼层
另外 单独挂接 那几个不正常的 ,去掉正常的看看通信情况

如果可以, 说明还是总线问题 ,应该是硬件问题。
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-21 16:15:22 | 显示全部楼层
回复【10楼】aleda303:
---------------------------------
借了个USB转CAN的转接口  代替ARM9的功能 还是出现ID丢失 这样的话应该就是STM32的问题了 麻烦你帮我看下 软件上的发送接收有没有问题 谢谢,如果没有的话 就是硬件问题了
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-21 16:20:18 | 显示全部楼层
回复【15楼】aleda303:
---------------------------------
我还是在仔细检查下硬件问题 看看焊接什么的! 目前软件问题应该不大  要不就一个也接收不了
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-21 16:44:50 | 显示全部楼层
回复【17楼】xz4950:
---------------------------------
嗯 ,你可以将 保护的、电路部分 都先去掉
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-21 16:53:28 | 显示全部楼层
回复【18楼】aleda303:
---------------------------------
哎 悲剧男
1、 问题找到了 是有三个从机的电源烧焊一个电容,导致电压不稳 我把电容加上就好了
2、非常感谢原子和aleda303的大力支持,非常非常感谢
3、怎么给两道交代呢 说我这两周的任务主要是因为电容问题  领导会不会吃了我,!!! 悲剧男!
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2013-7-25
在线时间
2 小时
 楼主| 发表于 2013-8-21 16:57:12 | 显示全部楼层
回复【18楼】aleda303:
---------------------------------
我在7楼传的资料 完全可以用  以后socket can 和stm32 主从机通信例程(stm32中的发送函数的ID代表不同从机 )
再次感谢 原子和aleda303的大力支持,非常非常感谢
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-22 13:51:13 | 显示全部楼层
回复【19楼】xz4950:
---------------------------------
正常! 呵呵
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-22 14:19:25 | 显示全部楼层
回复【20楼】xz4950:
---------------------------------
我没帮什么忙,主要是aleda303在帮你,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 05:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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