一  官方简介如下:

控制器局域网CAN(Controller Area Network),是由德国Bosch公司为汽车应用而开发的多主机局部网络,应用于汽车的监测和控制。德国Bosch公司开发CAN总线的最初目的是为了解决汽车上数量众多的电子设备之间的通讯问题,减少电子设备之间繁多的信号线。于是设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。
帮助您理解的CAN总线定义:
CAN总线就像您日常接触的电脑网线一样,是用来传输数据的”线”。只不过其构造简单,只有两根线:CAN_H、CAN_L。
既然是通信用的网络,那么CAN总线上就可以接不通的设备,每一个设备都有自己的地址——这和您的连接互联网的计算机一样,您的计算机有自己的IP地址。
构建CAN总线的目的是实现总线上的数据通讯,和您利用计算机上网一样,其就是利用互联网传输数据信息。其便利性不言而喻,不再赘述。
CAN-bus具有以下主要特性:
成本低廉
数据传输距离远(最远长达10Km)
数据传输速率高(最高达1Mbps)
无破坏性的基于优先权的逐位仲裁
借助验收滤波器的多地址帧传递
远程数据请求
可靠的错误检测和出错处理功能
发送的信息遭到破坏后,可自动重发
暂时错误和永久性故障节点的判别以及故障节点的自动脱离
脱离总线的节点不影响总线的正常工作
基于CAN总线的优越特性,许多著名的芯片生产商,诸如Intel、Philips、Siemens、Motorola都推出了独立的CAN控制器芯片,或者带有CAN控制器的MCU芯片。
以上特性决定了其应用范围:低成本、数据量不太大的工业互联网领域。

二 、CAN总线通讯过程

图1-1        CAN总线节点传输过程示意图

CAN总线数据的发送过程可以用信件邮递来做一个比喻,对于CAN总线上的发送节点可以比喻为邮寄一封信件:
邮寄:北京市海淀区XX街道XX号(目的CAN节点地址)。
                   (信中内容为具体的数据信息)

自:无(相当于匿名信件)。

对于CAN总线上的接收节点可以比喻为家门口的收件邮箱:

这是“北京市海淀区XX街道XX号”邮箱(自己的CAN节点地址),其他非邮寄到此信箱的信件,一概不接收(CAN地址设置屏蔽掉其他地址)。

如果是邮寄到此信箱的信件,则接收信件。
(信中内容为具体的数据信息)
CAN总线数据的通讯过程中,数据信息通过不同的报文格式来传送,例如:数据帧、远程帧等。这就类似于邮件中可以有不同的内容:文件、衣物、书籍等。
CAN总线数据的通讯花费的时间跟总线传输距离、通讯波特率有关系,通讯距离远,波特率就低,传输数据花费的时间就长。类似于从北京邮寄信件到石家庄,距离近,邮递时间就短;如果从北京邮寄信件到广州,邮递时间相对就长。另外,CAN总线数据的通讯花费的时间还跟通讯介质的选取(光纤、双绞线)、振荡器容差、通讯线缆的固有特性(导线截面积、电阻等)等有关系,这就类似于邮递信件时是选择EMS快递、挂号信,还是普通的平信。
当然,CAN总线传输也有其传输错误处理机制,以保证总线正常运行。类似于邮寄信件,也有出错处理机制,例如:发送快递时,如果地址写错了,快递员就会联系发件者,是否更改地址,重新投递。还有,如果投递邮件的数量过多,就会产生邮件的堆积,CAN总线如果传输的信息量过多,也会产生数据堆积,发生过载现象。

推荐CAN总线学习书籍及学习板:
1、《CAN总线嵌入式开发——从入门到实战》, 牛跃听 周立功等编著, 
北京航空航天大学出版社,2012-1-1,ISBN9787512406919
该书的当当网网址:
//product.dangdang.com/22609565.html?_ddclickunion=P-233673|ad_type=0|sys_id=1#dd_refer=http%3A%2F%2Fwww.youlu.net%2F2896170
2、《CAN总线应用层协议实例解析》, 牛跃听 周立功等编著,北京航空航天大学出版社,2014,ISBN9787512415652
该书的当当网网址:
//product.dangdang.com/1159744623.html

can总线第一讲的更多相关文章

  1. 32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用

    32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用 一丶32位(x86也称为80386)与8086(16位)汇编的区别 1.寄存器的改变 AX 变为 EAX  可以这样想,16位通 ...

  2. CS193P - 2016年秋 第一讲 课程简介

    Stanford 的 CS193P 课程可能是最好的 ios 入门开发视频了.iOS 更新很快,这个课程的最新内容也通常是一年以内发布的. 最新的课程发布于2016年春季.目前可以通过 iTunes ...

  3. POI教程之第一讲:创建新工作簿, Sheet 页,创建单元格

    第一讲 Poi 简介 Apache POI 是Apache 软件基金会的开放源码函数库,Poi提供API给java程序对Microsoft Office格式档案读和写的功能. 1.创建新工作簿,并给工 ...

  4. 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立

    原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...

  5. 异常处理第一讲(SEH),筛选器异常,以及__asm的扩展,寄存器注入简介

    异常处理第一讲(SSH),筛选器异常,以及__asm的扩展 博客园IBinary原创  博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 一丶__Asm的 ...

  6. 常见注入手法第一讲EIP寄存器注入

    常见注入手法第一讲EIP寄存器注入 博客园IBinary原创  博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 鉴于注入手法太多,所以这里自己整理一下, ...

  7. 逆向实用干货分享,Hook技术第一讲,之Hook Windows API

    逆向实用干货分享,Hook技术第一讲,之Hook Windows API 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) ...

  8. PE文件格式详解,第一讲,DOS头文件格式

    PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容 ...

  9. 逆向知识第一讲,IDA的熟悉使用,以及TEB,PEB结构

    逆向知识第一讲,IDA的熟悉使用,以及TEB,PEB结构 一丶熟悉IDA,以及手工制作sig文件. IDA,静态分析工具,网上随便找一个即可下载. 首先,我们写一个可执行EXE,最简单的 使用IDA打 ...

随机推荐

  1. Pandas:各种错误

    1.输出为CSV文件时,Permission denied 原因可能是: (1).构建DataFrame时没有写index参数 (2).用Dict构建最开始的数据时,value没有写成List的形式, ...

  2. redis数据类型的使用及介绍

    Redis数据类型 1.Sting类型 set命令 设置键值,存在则覆盖,不存在则新建 set key value EX 秒 设置有效时长为秒 nx 如果键不存在则新建,如果存在返回nil xx 只有 ...

  3. Scala语法1

    目录 main方法和def 函数 变量,类型转换,字符串分割拼接 文件读写和JDBC 面向对象编程 继承 case类,最常用的 main方法和def 函数 package scala_01 /** * ...

  4. 【二】遗传算法(GA)的MATLAB实现

    essay from:https://wenku.baidu.com/view/ce45bbf44693daef5ef73df3.html 一.MATLAB编程实现GA 二.MATLAB函数调用实现G ...

  5. JQ,JQuery的ajax卡住了,浏览器页面卡住

    在使用ajax的时候浏览器卡住了, 经过测试是因为在ajax中使用的data数据变量写错了 不存在也不报错,直接卡主了 好好检查一下吧.

  6. Vue-表单验证-全选-反选-删除-批量删除

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. java 知识点梳理

    1.ArrayList与linkedList 区别 ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦; 优点是查找比较快. Lin ...

  8. python3输出由1、2、3、4这四个数字组成的每位数都不相同的所有三位数

    for i in range(1,5): for j in range(1,5): for k in range(1,5): if(i!=j and i!=k and j!=k): print(i*1 ...

  9. Docker修改默认IP

    Docker修改默认IP 删除原有配置 sudo systemctl stop docker sudo ip link set dev docker0 down sudo brctl delbr do ...

  10. [转载]我的WafBypass之道(upload篇)

    现在位置: 首页 > 文章 > Web安全 > 正文 我的WafBypass之道(upload篇) 2016 /11/30 15:20 4,901 沙发 0x00 前言 玩waf当然 ...