本文是关于控制器局域网总线(也称为CAN总线)的三部分介绍系列文章的一部分:
第1部分:非正式的介绍第2部分:协议第3部分:设计CAN总线电路CAN总线简介
在过去的几十年里,该行业已经整合成了数量有限的常用通信总线,从SPI、I2C和UART等本地通信标准到可以跨越几米的RS232和USB。RS485和CAN总线通常在几十米到一公里的范围内工作,并且以太网以光纤链路的形式可以跨越数十公里。
许多最常见的公共汽车是点对点,意味着设备成对连接。例如,通过以太网连接的每台计算机只与另一个设备(通常是交换机)进行物理连接。类似地,如果要将多个USB设备连接到一个端口,则需要一个USB集线器。一种无源三头以太网或USB电缆,其中三个设备相互通信,但必须遵守相关标准。
RS485CAN总线是允许多个设备相互作用的流行总线的例子;CAN总线是目前唯一被广泛采用的多主总线。有很多原因,你应该考虑CAN总线为你的下一个项目。该标准被广泛采用,价格低廉,可靠性极高,抗电磁干扰能力强(电磁干扰)在设计上非常聪明
这是很多最高级的
此外,当我们进入一个日益高度互联的社会时,CAN总线为WiFi和mesh网络的不可预测性和快速的技术更新提供了一个令人耳目一新的选择。
历史
在20世纪80年代早期,汽车电气系统在规模、复杂性和成本上都在迅速增长。消费者要求越来越多的功能和自动化程度的提高,以达到豪华和现代的顶峰。
1982年广受欢迎的电视连续剧《骑士骑士》(Knight Rider)让每个人都想象一辆日益数字化的汽车会是什么样子,这一趋势在今天的特斯拉身上从未停止过,并一直延续下去。
为了减少日益增长的电缆缠绕质量,降低装配成本和复杂性,博世开始评估现有的汽车用串行总线。它们都不符合要求,所以在1983年开始开发CAN总线。该标准的第一次修订于1986年2月在底特律汽车工程师学会正式发布。
图1.想象一下,如果我们必须为现代汽车的每个功能单独布线,那会是一场噩梦。
CAN总线立即与其他可用总线系统区分开来,因为它是多主总线,实现了广泛的错误检测和故障缓解机制(包括冲突解决),并通过数据帧的内容而不是源和目的地来识别数据帧。
1987年,英特尔公司发布了第一个CAN总线控制器集成电路82526,随后飞利浦公司紧随其后。1993年,根据ISO 11898系列标准发布了博世规范。
奇怪的是,最早采用CAN总线标准的不是车辆制造商。从今天开始回顾,由于目前的增长汽车以太网,但事实并非如此。相反,北欧工业巨头,如通力(芬兰电梯制造商)和飞利浦医疗系统(Philips Medical System)是首批采用者。飞利浦采用了他们在荷兰设计的X光机的标准。
在90年代末和21世纪初,CAN总线规范被扩展为标准化的应用层、安全和实时应用的实现以及更快的数据传输速率。2018年,博世开始开发CAN总线XL,预计将以10 Mbps的带宽运行。
请不要扔掉香肠披萨
由于指尖常年受到树脂污染的电子工程师,很容易陷入电压水平、计算电子数和大声讨论电磁干扰。然而,CAN总线首先是一种网络协议。
因此,有必要从标准OSI(开放系统互连)模型的角度来审视,该模型由七个层组成:
Physical Layer物理层:原始比特流如何通过物理介质进行通信。Data Link Layer链路层:两个ata节点之间的传输帧。Network Layer网络层:多节点网络管理、寻址、路由和流量控制Transport Layer传输层:流控制,分段分解,错误控制。Session Layer会话层:两个节点之间的来回交换。Presentation Layer表示层:网络和应用程序之间的数据转换(例如,压缩、加密和字符编码)。Application Layer应用层:好吧,名字说明一切。
因此,为什么“请不要扔掉香肠比萨饼。
与RS-485类似,CAN总线在物理层和数据链路层运行,而其他协议(如CANOpen)则负责更高级别的层。
物理层
在将芯片放入物理协议之前,首先要了解有几个流行的CAN总线标准。几乎所有人在阅读“CAN总线”时所想到的(除了在公共交通工具上喝可乐)是ISO 11898–2标准,通常被称为高速CAN、HS-CAN,或者简单地说可以 .
ISO 11898–2高速CAN
ISO 11898–2采用主双绞线总线,每端均端接120欧姆电阻器;120欧姆也是总线的特性阻抗。其中一根线叫CANH,另一根叫CANL。正如您可能已经从双绞线和EMI重环境中的广泛使用猜到的,总线是有区别的。到目前为止,别紧张。
将同一双绞线曲折地连接到网络的所有节点并不总是切实可行的;因此,CAN总线总线允许长达30 cm的短线。如果超过30厘米,反射将开始降低总线性能,因为节点本身没有终止,只有双绞线。
(如果你想知道如何欺骗这个限制,请阅读第3篇文章)。
图2.高速CAN总线拓扑。
大多数数字总线被驱动为高电平表示逻辑1,低电平驱动表示逻辑0。CAN总线并非如此,它采用一种称为隐性的状态,描述1,而一种状态称为显性,表示0。
在隐性状态下,终端电阻决定总线电压。收发机处于高阻抗状态,让电线在和平与繁荣中生活。
在主导状态下,收发器将CANH和CANL线路的电压分开。CANH以3.5V的额定电压向上驱动,CANL以1.5V的额定电压驱动。
图3。规格请参考标准。
高速CAN总线电压。
长期的调试压力对你的健康不利,所以这里有一个小提示:
State
Value
Value
Voltage
Determined
By
CANH
Nominal V
CANL
Nominal V
Dominant
0
Low
CANH > CANL
Transceivers
3.5
1.5
Recessive
1
High
CANH = CANL
Termination Resistors
2.5
2.5
ISO 11898–3低速容错CAN
ISO 11898–3是CAN总线标准的低速和容错变体。如果某位杰出的工程师将其缩短为LSFTCAN或CANFTLS,那将真正嘲笑我们对缩写词的过度依赖。
ISO 11898–2(CAN或高速CAN)与ISO 11898–3(低速容错CAN)之间有三个主要区别:网络结构、电压和带宽。
低速容错CAN总线标准将最大带宽从1Mbps降低到125Kbps,并且不再在总线的开始和结尾使用两个终端电阻器,而是将电阻器分布在每个节点上。
分布式终端电阻可以降低一次断开的可能性,增加反射风险和降低网络速度。
图4.线性网络拓扑的低速容错CAN总线物理层示例。
为了提高EMI电阻,电压摆幅大约是高速CAN的两倍,并且在隐性状态下,电阻将CANL拉高到5v,CANH低到0v。相反,在主导状态下,收发机反转电压,驱动CANH高和CANL低。
所有这些非典型的术语和电压水平可能会非常混乱,当然不仅仅是因为我是一个糟糕的作家,所以请记住:当线路名称有意义时,主导状态是1。
如果我能在没有备忘单的情况下把这件事做好,愿我沐浴在金色和荣耀中鈥
图5.简化的低速容错CAN总线电压。规格请参考标准。
一个低速容错CAN可以有多种形状,从类似高速CAN的线性总线到星形总线,或者由线性总线互连的多个星形总线。
图6.低速容错CAN总线拓扑示例。
SWCAN网络
根据SAE J2411的规定,还有第三种CAN总线网络:单线CAN或SWCAN。SWCAN旨在实现本地、低速、低成本的运营,并在21世纪初得到通用汽车的大力推广。在SWCAN收发器ic的供应链中,似乎有一些大公司的闹剧在上演,这类芯片需要电话和会议来解决。由于SAE J2411标准与LIN有很大的重叠,您应该选择后者,而完全忽略SWCAN。
(如果你是律师,那是我个人的意见,不要去起诉 海拔在上面)
试验板CAN
例如,如果您需要使用几个启用CAN的微控制器而没有收发器来测试CAN总线,例如,在您的PCB制造过程中进行固件开发,您可以使用以下技巧:
图7.设计不当的CAN总线网络。
我不推荐它,也不保证它能工作,你可能不得不降低速度,但是它对于在开发板上测试can总线是非常有用的。二极管应该是一个小信号肖特基二极管与一个低反向偏置电容。
可口可乐还是百事可乐?
如果您刚开始使用CAN总线,您应该从ISO 11898–2开始。
这两个标准之间的区别只是在物理层。协议相同;与低速容错类型相比,有关如何实现高速CAN总线网络的工具、IC和文档更容易获得。如果您需要低速容错操作,只需升级收发器并添加几个电阻即可。
你应该什么时候使用CAN总线?
毫不奇怪,在选择CAN总线而不是其他标准时,并没有严格的规则,而且这一决定必然需要一定程度的工程技巧。
如果以下陈述属实,则CAN总线可能适合您:
你需要一个稳定的协议电磁干扰系统必须具有高容限总线应经济实惠,易于实现(一对双绞线)你需要一个多主协议故障节点不得危害网络您需要100kbps到2mbps的带宽
同时,以下建议您选择其他协议:
您的设计受到严重的功率限制您的系统只有几个节点,成本是最重要的你需要很多带宽,例如多媒体如何防止信号反射(纯正的推销)
在高速CAN总线中,端部必须终止,但这并不意味着信号反射不会在总线节点之间发生。必须仔细控制短棒长度和节点间距;特别是,存根长度应最小化,节点间距应随机化,并考虑最小距离。我在本文的末尾链接了一些资源,这些资源将解释所有需要的计算。
如果你在设计一个有几十个甚至几百个节点的系统,Altium设计师 ®它本身不足以管理整个系统的复杂性。你的系统很可能是由成百上千个零件组成的,这些零件缠绕在一个机械部件中。
您可能已经熟悉高级机械CAD软件,如Solidworks、PTC Creo或Autodesk发明家。Altium Designer与 Altium Concord专业版 He,为您提供广泛的ECAD-MCAD合作能力。假设您的项目已经保存在云上,与机械工程师共享它只需几秒钟。此外,您可以将PCB的机械模型导入这三个机械建模程序中的任何一个,以便设计外壳。
在这个例子中,我决定创建一个快速和容易的终端板,能够吸收相当多的能量,并易于安装。只需单击“制造商零件搜索”即可将零部件添加到原理图中。
图8.示例板示意图
我很快就把棋盘击溃了。既然所有的东西都集成到Altium Designer中,我就不必再摆弄多个软件了, 网络列表、进口和出口
图9.完成PCB设计的电路板二维视图。
我验证了三维模型在Altium Designer中使用测量功能(CTRL M)。
图10.Altium Designer内三维尺寸的测量。
然后我打开机械代码签署面板,把设计推到Altium365上的Concord Pro。
图11.通过MCAD Codesigner面板推送MCAD数据。
在按下MCAD数据,Altium Designer立即询问您是否愿意与机械工程师分享您的设计。
图12.与机械工程师共享窗口。
然后,机械工程师可以按照邀请电子邮件中提供的链接在Altium 365上注册,并安装适用于Solidworks、Autodesk Inventor或PTC Creo的相关插件。
更多资源Can Bus explained by CSS ElectronicsTexas Instruments SLLA270, “Controller Area Network Physical Layer Requirements”Microchip AN228, “A CAN Physical Layer Discussion”Analog Devices AN-1123, “Controller Area Network (CAN) Implementation Guide”Wolfhard Lawrenz, CAN System Engineering, Springer, ISBN: 978–1–4471–5613–0Steve Corrigan (Kvaser), “Minimum distance between CAN nodes”Texas Instruments SLLA279A, “Critical Spacing of CAN Bus Connections”结论
CAN总线是一种有趣的总线,它将多主广播协议的极大灵活性与卓越的可靠性和容错性相结合。由于这些原因,自上世纪90年代以来,它在业界得到了越来越多的采用。
像汽车以太网这样更闪亮、更快的技术正变得越来越便宜,但CAN总线逐渐渗透到更广泛的电子行业,而且没有放缓的迹象。虽然CAN总线能够实现具有数十个或数百个节点的复杂电子设计,但此类项目可能需要广泛的电子和机械集成。