基于CAN 总线的数据传输与分析讨论

基于CAN总线的数据传输与分析讨论
首先我们来讨论一下为什么要使用CAN通信?以及使用CAN通信能给我们带来什么样的方便?
首先不得不说的是CAN通信现在被应用于很多的领域,比如说汽车And so on........CAN通信的好处很简单,它可以以最少的CPU消耗来处理一大批的文件,当然这里所说的文件是指传输的数据之类的,为什么要传输数据呢?因为有些数据你想管理,哈哈哈!
为什么说CAN通信可以减少CPU的消耗呢?因为很简单,CAN把你要处理的特殊数据帮你给处理好了,就好像别人帮你做好了一样,你只要告诉CAN你想要哪些数据就好了,它就会帮你把你想要的数据给你挑选出来,来供你使用。
而且最重要的一点就是CAN的数据传输只是需要两根线就OK了,哈哈哈  ,你很难想像两根线来完成那么多数据的处理吧。通过这两根线,就可以轻松搭建一个最小局域网,简单来说就是让这些控制器通过CAN总线相互打交道,让它们自己嗨起来! 大笑
当下我们来分析一下STM32中的CAN通信原理,我所使用的是一款32的单片机(ZET6),不过都一样了,不管使用什么样的控制器,原理都是一样了。 大笑
首先来让我们看看CAN的工作框图

哈哈 是不是觉得还是比较简单的,首先允许我说一下那两个电阻是什么东东,这两个电阻如果你学习过射频的话,估计都不用我多说啥,这里照顾一下那些没有接触过射频的童鞋了,这两个电阻其实它有一个好听的名字是叫做终端电阻,用途是用来做阻抗匹配的,减少回波反射的。 得意(不懂的话可以自己查查)
CAN总线上有两个电平,一个显性,一个是隐性电平。也就是CAN_High,CAN_Low,这两个电平在工作的时候电压差是2.5V。这里不难理解了。如果对这个电平不太了解的你可以看下TGA1050这款芯片,是CAN的一个收发芯片。(你值得了解)
好了我们接下来开始进入重点学习了 可怜
CAN呢!它的协议主要是通过5种类型饿帧构成的。
帧类型 帧用途
数据帧 用于发送单元向接收单元传送数据的帧
遥控帧 用于接收单元向具有相同ID的发送单元请求数据的帧
错误帧 用于当检查出错时向其他单元通知错误的帧
过载帧 用于接收单元通知其尚未做好接收准备的帧
间隔帧 用于将数据帧及遥控帧与前面的帧分离开来的帧
由于本人比较懒啦,所以以最重要的一个数据帧来讲解一下
数据帧有7个段构成,即
1、帧起始。表示数据帧开始的段。
2、仲裁段。表示该帧优先级的段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值