本博文主要介绍了车用CAN通讯的基础知识,包括CAN通讯的背景,通讯分层,CAN通讯特性及CAN通讯的工作原理等。
本博文比较适合没有接触过车用CAN通讯的朋友。假设在工作和学习中如果要涉及CAN通讯相关的工作,如果无从下手的话,这篇文章比较适合你。如果你觉得对你有帮助,请收藏点赞,内容会持续更新打磨,请持续关注!
CAN总线被开发出来,是科技发展的必然,就像当下互联网技术在汽车上的应用一样。
在CAN总线未开发出来之前,传统的车身网络,如下图:
CAN总线应用之后的车身总线:
CAN总线相比其他现场总线有如图所示的(不仅限于这些)特性:
通信的小朋友:通讯的双方并不关心声音如何传输,只关心自己表达的意思对方能不能理解;
说话这个动作:说出“你好”这个词有很多种语言表达,可以是中文、英文等。只有双方表达一致才能正确理解对方的意思;
罐头:决定以什么样的方式传输信息,以及如何让其他的罐头获取信息;
绳子:传导振动信号,绳子上振动信号频率与幅度的组合就反映了传递的信息。但是并不关心这些信号的意思
在“通信各层”中的角色,各司其职,共同完成了传递信息的过程。
由此,引出了通讯分层的概念, 通讯是分层的,这个概念应该贯彻在我们学习任何通讯系统的过程中,这是个方法论。
国际标准化组织ISO对通信系统的详细划分:
CAN通讯的标准详细定义了上图ISO模型中的物理层和数据链路层,至于怎么应用,那又有其他的标准再定义了。
我们再次强调一下层的概念,设备之间所谓的通信,其实是相同层次间的信息沟通,例如物理层与物理层的信息交换,应用层与应用层的信息交换,层与层之间是互相独立的。
万丈高楼平地起,CAN通讯的“媒介”和“基石”是CAN的物理层,下面介绍物理层的概念。
2 CAN通讯物理层概述再次搬出层的示意图,看看物理层在通信中的位置:
双绞线上传输差分信号,共模干扰使信号线上产生相同幅度和相位的干扰脉冲。
当多个节点并接到同一总线上时,只要其中一个节点输出低电平,总线就是低电平,只有所有节点输出高电平时,总线才为高电平。
CAN通讯规定,在信号的跳变沿时刻进行同步。
看完上图可能会有这样的疑问:**那CAN通讯是如何消除这种累计误差的?
CAN通讯是通过位填充提供同步信号,从而消除累计误差。
CAN——Control Area Network的缩写,属于小范围实时通信网络,通信距离与速率成反比。
从1986年博世正式公布CAN协议到2015年CAN FD的ISO标准化,再到马上要推出CAN XL,CAN通讯技术在不断地完善和进步中,技术就是一个循序渐进从简单到复杂的过程,掌握和理解了最基本的原理,复杂的问题也就迎刃而解了。
CAN通讯在汽车上的应用十分广泛,就目前的趋势,在未来的很长时间,应该不会被替代,做为“汽车软件人”,掌握和理解CAN通讯也是有必要的。
看完本文,对CAN通讯的印象可以用几个关键词来概括:通讯分层、电平差分、线与和同步,如果你对这几个关键词已经理解,那恭喜你,CAN通讯基础你已经掌握一半了!
站在巨人的肩膀上:
【1】周立功官网《CAN-bus现场总线基础教程》;