打印
[CAN-bus/DeviceNet]

请教wxj1952及飞天鼠!数据波形与数据对应的问题

[复制链接]
2960|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
coolhu|  楼主 | 2007-6-10 09:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
桂电飞天鼠| | 2007-6-10 12:16 | 只看该作者

我也想知道~~

手上没有示波器可测量,之前用一个比较老的示波器,但当时没留意这个问题~~~

使用特权

评论回复
板凳
coolhu|  楼主 | 2007-6-10 13:26 | 只看该作者

rt

从示波器的波形上基本没有看出跟数据的关系

发送不同的数据,波形明显不同,说明波形跟数据是有严格关系的,可不知道是什么关系

研究了半天没有找出规律来

使用特权

评论回复
地板
coolhu|  楼主 | 2007-6-10 14:23 | 只看该作者

rt

我将4个不同数据波形图全部放在一起对比,已看出一些眉目了,继续分解数据波形的格式,后续在给出结果

使用特权

评论回复
5
coolhu|  楼主 | 2007-6-10 15:54 | 只看该作者

有没有知道的

有没有知道的,大家共同讨论一下!

使用特权

评论回复
6
wxj1952| | 2007-6-10 18:10 | 只看该作者

用的什么高级示波器?

我记得过去用2万元的数字存贮示波器也很难看出总线波形,后来用的4万元的HP逻辑分析仪,一清二楚。不过不是看的CAN总线。

注意2点:
1、位填充,每5个0/1必插入一个变化位。那么如果5个0/1后面本来就是反向数据,位填充起不起作用?......我也不知道.
2、仲裁域有没有位填充?.......

使用特权

评论回复
7
coolhu|  楼主 | 2007-6-10 19:14 | 只看该作者

无法用示波器看出波形?

无法用示波器看出波形?
我就是用示波器的正极接CANL负极接CANH
用的是带宽1G的,也不是什么太高级的示波器啊,
程序跑起来就有波形了,下面是我的波形图,我发送的数据,
t1=0x01,t2=0x01,t3=0xff,
发送不同的数据确实波形不一样

使用特权

评论回复
8
coolhu|  楼主 | 2007-6-10 19:16 | 只看该作者

rt

上面乱码了,就是发送了3个字节的数据为0x01,0x01,0xff

使用特权

评论回复
9
coolhu|  楼主 | 2007-6-10 20:11 | 只看该作者

我测的CAN总线波形图

我测的CAN总线波形图,示波器正极接CANL,负极接CANH
发送数据分别在图上
供大家研究
给出对波形和数据关系的看法

发送上述数据,我又测试了SJA1000的TX脚发现波形与总线波形基本一样,
第一个图和第四个图少3bit
第二个图和第三个图少了2bit,(右边少2bit)

少的位数不一样,我不知道是不是我读的不准,看起来差别是3bit

供大家参考,共同研究提出自己的看法

使用特权

评论回复
10
zlgCAN| | 2007-6-11 08:51 | 只看该作者

我们有技术文档说明波形与数据的对应关系;可通过邮件向


    最初的CAN2.0规范中也有波形的说明,也非常详细。

使用特权

评论回复
11
wxj1952| | 2007-6-11 09:15 | 只看该作者

示波器挺好。

一点都没错!
没讲清楚,你的0x01,0x01是ID还是数据?0xff,0x55,0x48,0x01都是对的,前面2个0x01又全对应一样,不知哪里少了bit?

使用特权

评论回复
12
coolhu|  楼主 | 2007-6-11 09:36 | 只看该作者

rt

少bit的图我没有贴上,
这个是我直接测试的总线上的波形,

请问怎么从那个图上看数据呢?
前2个0x01,0x01是ID,第三个字节才是有用第数据呢

我找找看CAN的标准

使用特权

评论回复
13
wxj1952| | 2007-6-11 10:48 | 只看该作者

ID有些特殊

是ID就更对了.

使用特权

评论回复
14
wxj1952| | 2007-6-11 16:47 | 只看该作者

注意位填充

从起始位算起,5个0插入一个1,所以第一个0x01有2个"1"脉冲,同样,第二个0x01也是2个“1”脉冲,第三字节0xff遇到连续5个“1”,所以中间有一个互补“0”填充。......后面是CRC两字节,你要会算的话就计算一下,不会算我帮你算。
研究半天,没甚么道理。还有的控制器是先传输低位的,总线波形更难读懂了。

使用特权

评论回复
15
coolhu|  楼主 | 2007-6-11 17:43 | 只看该作者

明白!

多谢wxj1952的指导,

我明白了,
数据是从左边开始读的,我一直从右边读的,
我的LIN数据都是从右边读的,我以为CAN的也是,
范了低级错误,

同时还要感谢ZLG工程师们提供的资料,

多谢!

使用特权

评论回复
16
wxj1952| | 2007-6-12 19:38 | 只看该作者

从右边读?佩服!

示波器都是从左边开始,自左向右扫描的,先收到的bit先显示,从右向左读?基准在那里? 弄得我一头雾水。

应该说LIN数据发送器是先发送低位吧,例如发送0x01,在示波器上看到的是0x80。(从右边开始读是0x01,可是基准呢?)  发送0x48,示波器上看到0x12。这与CAN控制器正相反。

还一种读法,站到屏幕的背面去,那确实是应该从右边开始读了。

使用特权

评论回复
17
魔卡| | 2007-6-15 10:53 | 只看该作者

示波器正极接CANL,负极接CANH

示波器有正负极????只有个探头和接地线吧.?????

使用特权

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

本版积分规则

9

主题

62

帖子

1

粉丝