为什么汽车电控单元间会选择使用CAN总线进行通信?
从事汽车相关行业的小伙伴们,都知道CAN总线(CAN Bus),它是当今汽车各电控单元之间通信的总线标准,现在几乎所有的汽车厂家都选择使用CAN总线通信。CAN总线为什么如此受汽车设计人员的青睐呢?它有哪些突出的优点呢?今天这篇文章,我们就和大家聊聊CAN总线的前世今生。
CAN总线中的“CAN”,不能写成小写的“can”,须要大写,因为它不是一个单词,而是英文“Controller Area Network”的缩写,中文翻译为“控制器局域网络”。但我们很少使用这个中文名称,一般都直接称为“CAN总线(CAN Bus)”。
CAN总线出生于德国鼎鼎大名的博世(BOSCH)公司,是伴随着汽车工业的发展而产生的。在二十世纪七八十年代,汽车工业蓬勃发展,汽车的电子控制单元逐渐增多。各电控单元之间的信号交换导致汽车线束的级数增加,复杂粗大的线束与汽车有限的布线空间之间矛盾越来越突出,繁多的线束导致电气系统可靠性下降,同时增加了重量,给汽车的制造和组装带来了不少的困难,不利于汽车轻量化的实现。
由于当时还没有哪一种总线标准适合解决汽车工业线束增加的问题,于是博世(BOSCH)公司、梅赛德斯-奔驰(Mercedes-Benz)公司、英特尔(Intel)公司及德国的两所大学的工程师和研究人员开始着手研究一种新型的、适合于汽车内部控制器间通信的总线标准。
1986年,博世(BOSCH)公司首次在美国汽车工程师协会(SAE,现称为:国际自动机工程师学会)的会议上提出了CAN总线标准。第二年,英特尔(Intel)公司推出了第一款CAN总线控制芯片-82526;紧接着,飞利浦半导体(Philips)公司推出了CAN总线控制芯片-82C200。
CAN总线将汽车内部各电控单元之间连接成一个局域网络,实现了信息的共享,大大减少了汽车的线束,如下面的示意图:
1993年,国际标准化组织(ISO)公布了CAN总线的国际标准ISO 11898,从此CAN总线成为一种国际标准被广泛应用。
CAN总线采用差分信号进行传输,其物理层传输介质由两条双绞线组成,一条称为CAN_H(CAN High),一条称为CAN_L(CAN Low)。CAN总线使用两条线之间的电压差来传输逻辑信号,在总线空闲的时候,CAN_H和CAN_L的对地电压都约等于2.5V,两条线之间的电压差为0V,这种电平称为隐性电平,表示逻辑“1”(没写错,就是逻辑“1”);当某个节点要发送信号时,会将CAN_H的电压拉高到3.75V左右,将CAN_L的电压拉低到1.25V左右,这样两条线之间的电压差为2.5V,这种电平称为显性电平,表示逻辑“0”,如下图:
当出现电磁干扰时,会同时影响CAN_H和CAN_L的电压,但对两条线间的电压差不会有太大影响,因此CAN总线的抗干扰能力很强,能够保证信号的正确传输。
CAN总线的网络节点一般由微控制器(单片机,MCU)、CAN控制器和CAN信号收发器组成,比如:51单片机+SJA1000+PCA82C250(5V)。随着CAN总线的广泛应用,现在很多单片机都在其内部集成了CAN控制器(比如:STM32系列单片机),所以只需要一个单片机和CAN信号收发器就可以了。
CAN总线的网络节点通过传输介质(CAN_H和CAN_L)相互连接,在长距离传输时,为了匹配传输电缆的特性阻抗,消除终端信号反射,需要在网络的终端增加终端电阻(一般120欧姆),如下图:
CAN总线的使用,简化了汽车的布线设计,节约了时间和资源成本;同时降低了线束的重量,便于汽车的轻量化设计;CAN总线的差分信号传输抗干扰能力强,提高了汽车电控系统的可靠性,同时其网络节点很容易增加或删减,设计的灵活性大大增强。
CAN总线的种种优点使其在汽车设计上得到了广泛的使用,并逐渐推广到航天、船舶、机械工业、卫生医疗及家用智能等等领域,是一种很被看好的总线标准,在以后的文章中我们也会和大家深入探讨CAN总线的知识。
相关参考文章:
CAN总线通信之详解数据帧(Data Frame)
如果你喜欢这篇文章,可以去官网(www.founderchip.com)下载本文PDF版本。
CAN总线技术详解与测试
CAN总线在硬件系统中占有一席之地,国际上应用最广泛的现场总线之一,与我们讲过的SPI、UART不同,属于"高端高效"系列。很多小伙伴希望我们讲讲CAN总线,今天就来了。
一句话总结:CAN总线是将离散独立的数据线整理到统一节点上。接下来认真看,一文教会你CAN总线——
01 CAN总线由来 CAN总线最早是由Bosch和Intel在80年代末开发的,虽然最早是用在汽车级的通信系统中的,但是随着技术的发展,CAN总线应用范围已经不在局限于汽车中,像机器人、工业、自动控制系统中,都有广泛的应用。
02 CAN总线为什么这么好用
以CAN总线应用最广的汽车给大家举例,汽车电子控制系统之间的数据通信基本上都是通过CAN总线实现。
在下图中,Motronic控制单元和变速箱控制单元之间的数据通信包含5根数据线。这还仅仅是两个控制器之间的传输线。如果我们再加上转向控制、雨刷控制、车窗控制等等,就需要大量的信号数据线,这个时候会导致整车的电子控制系统线路复杂,维修起来也非常困难。
而如果使用CAN总线,各个控制单元之间的信息通过两根数据线就可以进行交换了:
使用CAN总线之后的通信网络对比:
03 CAN总线技术原理
CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且支持多主控制器。
当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。
CAN总线的软件报文在上面这组报文中:仲裁域,每组报文开头内容,前11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。
在仲裁域的最后一位是远程传输请求位(RTR),代表信息帧是数据帧还是不包含任何数据的远地请求帧
控制域,前两位是保留位,作为扩展位,DLC表示一帧中数据字节的数目。
数据域,包含0~8字节的数据。
校验域,检验位错用的循环冗余校验域,共15位。
结束域,由七位隐性电平组成。
CAN总线是可靠性很高的总线,共有五种错误:
CRC错误:发送与接收的CRC值不同发生该错误;
格式错误:帧格式不合法发生该错误;
应答错误:发送节点在ACK阶段没有收到应答信息发生该错误;
位发送错误:发送节点在发送信息时发现总线电平与发送电平不符发生该错误;
位填充错误:通信线缆上违反通信规则时发生该错误。
当发生这五种错误之一时,发送节点或接受节点将发送错误帧。
04 CAN总线物理层
在节点终端的接口器件有三种形式,如下图:
CAN总线的终端电阻的接法如下:
增加终端电阻的目的是为了增强CAN通讯的可靠性,消除CAN总线终端信号反射干扰。CAN总线网络最远的两个端点通常要加入终端匹配电阻,如上图。一般如果CAN总线使用的是在双绞线上运行,这时我们会增加120Ω的电阻,这是因为匹配电阻是由传输电缆的特性阻抗决定的。
05 常用CAN控制器与收发器
在开发板上CAN总线需要控制器和收发器,下图是常用的CAN总线接口电路:
SJA1000是用的较多的独立CAN控制器,价格又很便宜,几十块钱。SJA1000可以和51单片机、STM32等组合快速搭建CAN总线网络。SJA1000通过并行总线与MCU连接,需要通过地址、数据、读写控制等多个线进行连接。PCA82C250收发器是CAN控制器的物理接口,可以给总线提供差动发送和接受信号。和SJA1000一样,都是采用5V供电。
没玩过CAN总线的小伙伴,可以自制或者淘宝购买2个带有单片机+控制器和收发器的开发板,两者之间一对一点对点通信,一块作为主控发送控制数据,另一块接受数据并执行操作,比如点个灯。如此简单,就试试吧!
相关问答
【求大家帮忙解释下这段 51单片机 代码是什么意思,谢了!bitsca...[最佳回答]key_s=0x00;//清0key_s|=K2;//将K2的值赋给key_s;;;K2应该是Pxkey_s<<=1;//之后丢掉最高位即K2中的最高位是没有用的ke...
选用Mcs- 51单片机 作为本设计核心器件.具有键盘输入温度给...[最佳回答]TheaimofthedesignistoachieveZnOYaminresistancebysinteringfurnacetemperaturecontrol.Mc...
个人电脑如何控制 单片机 ?个人电脑控制单片机,主要通过以下步骤:1)建立个人电脑和单片机的通信连接普通的单片机通常有UART、SPI、IIC、USB等通信模块。和电脑通信最常用的是UART,可...
ManBetX官网在线登录(官方)APP下载安装/网站网页通用版入口要使用某一通讯方式,单片机和电脑必须具有相应的通讯接口,个人电脑一般有RS232、USB、以太网、蓝牙等通讯方式。假设使用RS232通讯,电脑自带有RS23...
pic18 单片机 特点?1,与PIC16相比,PIC18晶振频率更高,换句话说是速度更快,外设资源也更丰富了,基本架构是一样的。2,与51系列相比,pic单片机综合性能优于51单片机。具...1,与PI...
什么是 can 总线?CAN总线是各种总线中使用比较广泛的一种通信技术,它在单片机控制技术中和PLC控制技术中会常常使用这种通信技术。下面我们来说说关于CAN总线的一些事情。CAN...
单片机 TL是什么意思?TTL就是三极管-三极管逻辑电路,(Transistor-TransistorLogic.eachpincansinkeightTTLinputs的意思就是每个引脚能吸收8个TTL的输...
单片机 主要应用于哪些领域? - 潘耶耶- 的回答 - 懂得1.单片在一个系统中只使用一片机,这是目前应用最多的一种方式。主品单片机与传统的机械产品相结合,使传统的机械产品结构简单化、控制智能化,构成了...
纳智捷大7 can 总线关闭怎么恢复?CAN总线关闭时,主控单片机可以通过复位CAN控制器的方式重新开放总线。通常的做法是,单片机在每接收或发送一帧后,便去查询can控制器的发送错误计数器或接收错...
如何控制步进电机?我要做一个智能窗帘,想让电机到头就停止,这用 51单片机 怎么控制?1、电脑+USB转串口+串口控制型步进电机驱动控制器+步进电机;2、电脑+USB转485+485控制型步进电机驱动控制器+步进电机;3、电脑+USB转CAN+CA....