[原创] Loto实践干货(3) 测量CAN总线通讯数据
1858 查看
10 回复
 楼主 | 发布于 2019-03-07 | 只看楼主
分享到:

Loto实践干货(3) 测量CAN总线通讯数据

Loto虚拟示波器 官方qq群: 706769836

最近在做运动控制卡的项目,调试样机的过程中,需要验证CAN总线通讯功能的正确性。以前只限于理论上认识CAN总线,使用的CANbus的通讯卡也是有上位机例程,基本上简单地配置上位机软件就可以正常工作了。这次调试需要深入测试CAN接口的通讯过程,正好把之前的对CAN的认识再复习深化一下。

 

之所以采用CAN总线,是因为它只需要两根双绞线就可以连接多个通讯节点,并且可以传输相对远的距离,在工业现场抗干扰能力也很强。下图是我按照CAN总线的要求做的一条双绞线,黄色和绿色分别是CAN_High线和CAN_Low线。要求绞距20mm,不绞合的距离不超过50mm。

 

规定的双绞线传输距离与CAN总线的传输速率的关系如下表。我们的传输距离很短,所以可以采用很高的传输速率。即便是采用最高的传输速率,以OSC802示波器的25M带宽,也是足够调试用的。

 

位速率  bit/s

总线长度  m

1

1M

30

2

800K

50

3

500K

100

4

250K

250

5

125K

500

6

62.5K

1000

7

20K

2500

8

10K

5000

下图是我设计驱动控制板的CAN通讯接口部分的原理图,使用SN65HVD230收发器:

 

打样后的运动控制板是这样的:

 

使用LOTO的USB示波器OSC802对CAN通讯的信号进行捕捉,抓取数据进行解析判断。

 

使用USB示波器OSC802的单次触发功能,很轻松对CAN总线上的电平信号进行了捕捉。不过我们现在还看不懂它,需要对CAN的电平逻辑和传输协议有所了解。

没有收发信号时,两条导线上的电平相同(大约2.5V)。这种电平状态为隐形状态,也称之为隐性电平,即为逻辑1。有信号时,CAN_H导线的电平升高至少1V;而对应的CAN_L导线电平降低同样值,这种电平状态为显形状态,也称之为显性电平,即为逻辑0。5V和3.3V的CAN收发器的逻辑电平会稍有不同。

 

我们通过程序发出一串CAN数据后,用OSC802捕捉到的波形如下:

 

 

 

根据波形进行数据解码需要注意的有两点:

1:在CAN协议中将CAN_H和CAN_L的差值为高电平时定义为显性,逻辑上表示为0,为低电平时定义为隐性,逻辑上表示为1。

2:在CAN的协议中当连续出现5个显性时就需要插入一个隐性。

CAN的标准帧和扩展帧协议格式:

 

所以,波形数据解读为:

 

图中被红色斜线划掉的为CAN协议有意在5个连续显性后面加的单个隐性位,所以去掉。所以,通过USB 示波器 OSC802抓取到的数据为:

00000000000011000001001100010100000001010101011110011010001111100000111101111

 

ID

SRR

 

ID

 

DLC

CRC

0

00000000000

1

1

000001001100010100

000

0010

000111110000011

这个数据帧发出的数据为:

1010101111001101

0xAB, 0xCD

解析结果与上位机收发的结果互相验证正确,所以此次运动控制板的CAN接口功能调试成功完成。

 

(0 ) (0 )
回复 举报

回复于 2019-03-07 沙发

不错,感谢分享

(0 )
评论 (0) 举报

回复于 2019-03-09 2#

支持下,谢谢分享!
(0 )
评论 (0) 举报

回复于 2019-03-09 3#

感谢大神分享!为方便相互学习交流,新开微信公众号“硬件开发工程师之家”,期待大家一起在专业方面资源共享!
(0 )
评论 (0) 举报

回复于 2019-03-12 4#

谢谢分享!
(0 )
评论 (0) 举报

回复于 2019-03-15 5#

谢谢分享!
(0 )
评论 (0) 举报

回复于 2019-03-17 6#

谢谢分享!!!
(0 )
评论 (0) 举报

回复于 2019-03-19 7#

(0 )
评论 (0) 举报

回复于 2019-03-19 8#

支持下,谢谢分享!
(0 )
评论 (0) 举报

回复于 2019-03-24 9#

感谢分享
(0 )
评论 (0) 举报

回复于 2019-04-20 10#

感谢分享;
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部