前言
Winstar近年来持续思考如何为客户提供全方位服务,并积极推出SmartDisplay产品,首批推出的CAN系列SmartDisplay便是以此为出发点而上架的智能型显示器。到底CAN接口是什么?作用原理为何?又能为顾客带来什么样的好处呢?以下解说带大家一起了解:
介绍
CAN (Controller Area Network, 域控制器)是一种功能强大的车用标准通讯接口。相较于其他通讯接口,例如RS485系统,其基本架构一定要有一个主机(Master)作为控制端,并且每一子设备(Slave)的发言权都被主机监控;CAN提供了更佳灵活的通讯应用,其不需要主机控制。
CAN使用广播机制同一网域上的电子控制器(ECU, Electronic Control Unit),彼此间即可相互发言(通讯),且每一个设备之间可透过软件的设定,使用唯一且独立的讯息标识符(Message Identifier)来定义各个设备发言的先后顺序。
各设备在CAN系统中,因为每一个设备被赋予的讯息标识符都是唯一且独立,使得CAN具备很好的弹性调整能力,可以在不做任何软、硬件的变动下,灵活且简单地在现有网络中进行设备的增加或移除。另外,讯号的传输不须建立在主机中,也就是说不论是新增或是移除设备,都不会影响到其他设备的运作,增加了网域内设备使用的便利性。
CAN bus目前最主要的应用领域为车用市场,但因CAN bus接口使用唯一讯息标识符进行讯号的传送接收,以及网域内的设备可弹性地新增或移除,使得CAN能完全满足数据沟通时的可靠性与实时回馈需求,这也是为什么近年来 CAN bus的应用从车用不断扩展至工控、医疗和其它领域的原因。
RS485系统拓扑图
CAN bus系统拓扑图
CAN bus系统拓扑图(含子方块)
CAN bus历史沿革
- 1983年,BOSCH开发CAN bus接口
- 1986年,CAN接口在美国密歇根州底特律召开的国际汽车工程师学会(SAE, Society of Automotive Engineers)会议上正式发表。
- 1987年,Intel和飞利浦共同制造并发行世界上第一款CAN控制器。
- 1991年,第一款配备CAN bus系统的汽车--Mercedes-Benz W140问世。
- 1996年,美国销售的汽车和轻型卡车都必须支持OBD-II标准(即接上OBD设备后即可进行设备错误诊断)。
- 2001年,欧盟销售的汽油车,以及2004年以后销售的柴油车辆必须支持EOBD(欧洲车载诊断)标准。
BOSCH 至今已发布数个版本的 CAN bus规范,其中1991年发布CAN 2.0并将规范分为两部分: A部分(CAN 2.0A),适用于11位标识符的标准格式,与B部分(CAN 2.0B),适用于29位标识符的扩充格式。
1993年,国际标准化组织(ISO)发布ISO11898作为CAN的标准。而后CAN标准又被重新编译成三个部分:
- ISO11898-1,涵盖软件部份的数据链路层。
- ISO11898-2,涵盖硬件部份、高速CAN bus的物理层。
- ISO11898-3,补充硬件部份低速 CAN bus的物理层,以及CAN bus的容错规范。
Winstar SmartDisplay CAN系列产品皆按ISO国际标准定义设计,不管在软件或硬件的架构上皆符合国际规范与需求,提供客户产品使用与维护上的便利性!
2008年,在美国销售的所有车辆都必须导入CAN作为其通讯协议之一。
2012年,BOSCH发布更有弹性的CAN_FD(Flexible Data rate) 1.0通讯协议,当网域内的设备因彼此之间传输速率不同而产生冲突时,CAN_FD允许设备的发言顺序决定后,切换到更快的比特率进行数据的传输。而CAN FD协议也能向下兼容现有的CAN 2.0架构,因此支持CAN FD的设备也可以和现有的CAN 2.0设备并存于同一网域中。
CAN硬件特色
CAN网域内的所有设备(节点)只须透过两条扭绞在一起的导线即可进行讯号的传输,按CAN的ISO规范,双绞线的终端会以120Ω的阻抗连接以维持讯号的稳定与匹配。
作用原理:
- 当CAN bus传送显性(Dominate)信号(0)时,会将导线的CAN_H讯号拉高、CAN_L讯号拉低,而讯号的高低之间便会产生一明显的电位差。一般传送仅拉高单一讯号相比,CAN H/L之间的相位差距更高,这也是为什么CAN bus非常有利于长距离的讯号传输。
- 而传送隐性(Recessive)(1)信号时, CAN_H与CAN_L讯号皆不作动。
- 按ISO规范,显性(Dominate)信号的CAN_H、CAN_L之间的电压差为2V。
CAN_H/CAN_L物理层讯号示意图
以SmartDsiplay--WL0F00039000QGAAASB00实测CAN_H/CAN_L波形
CAN韧体特色
在讯息传递上,每个设备(节点)都可以发送、接收信息,但信息的传送与接收不能同时,一个讯息或帧(Frame)主要包含:
- 位于仲裁区的标识符(ID),用以标示该讯息的优先级。
- 位于控制区的数据长度讯息,用于标示数据长度。
- 位于数据区的数据内容,用于记载数据内容,又称有效荷载(Payload)。
- 位于验证区的校验码,用于验证前述数据是否有错误。
CAN2.0 A/ CAN2.0 B数据格式
CAN bus流量数据示意
有效载荷(payload)中的数据序列
讯号传递逻辑:
当一设备传送显性(Dominate)讯号(0),而另一个设备传送隐性(1)讯号,此时网络线(bus)上便产生讯号冲突,此时仲裁机制由显性(Dominate)信号(0)取得优先发送权,而显性(Dominate)讯号传送后,隐性讯号将在极短时间内(6个频率位)再次重新发送。这代表顺位较高的设备,其讯息不会被延迟,而顺位较低的设备即使讯息后送,也不会被系统忽略掉,这样的机制使得CAN非常适合作为实时的通讯系统。
实际的显性(Dominate)讯号(0)逻辑或隐性(1)讯号逻辑取决于所使用的物理层,但CAN的讯号传送原则会要求每个设备去监控整个网域上的包含自身所发出的数据数据。
- 当所有设备同时传送隐性讯号(1)时,网络中所有设备将同时都收到该隐性讯号(1)
- 当所有设备同时传送显性(Dominate)讯号(0)时,网络中所有设备将同时都收到该显性(Dominate)讯号(0)
- 当一个或多个设备传送主讯号(0),而另外也有一个或多个设备传送隐性讯号(1)时,因为主讯号(0)的优先权较高,所有设备将收到显性(Dominate)讯号(0)设备的讯息,此时传送隐性讯号(1)的设备将在显性(Dominate)讯号(0)传递完成后,再次重新传送 藉由仲裁的过程,当其他设备发送逻辑0,也就是显性(Dominate)讯号(0)时,任何发送逻辑1,即隐性讯号(1)的设备将被暂时退出(或说失去仲裁),这表示在系统中,显性(Dominate)讯号(0)设备的优先将高于权隐性讯号(1)设备。
失去仲裁的设备,将在极短时间内再次重新发送讯息,网域内的判断逻辑会针对同时传送讯息的各设备不断进行仲裁,直到最后一个设备发送出讯息。
结论
使用CAN bus的5个好处
- 低成本:电子控制单位(ECU)只需透过一条双绞导线即可进行通讯,相较一般网状通讯所需要的线材更少,且物理层系统的重量也可有效减轻。
- 坚固:单一设备的故障不影响整体系统的运作,且能提供较高的讯号相位差来确保电磁兼容性(EMC),即使长距离传输也不易产生讯号干扰。
- 灵活:网域内不需进行软、硬件的修改,即可轻松地新增或移除设备。
- 高效率:透过标识符的排序与仲裁判定讯息传送的先后顺序,不仅最高优先权的设备传送讯号不中断,较低顺位的设备所传送的讯号也不会被遗漏。
- 集中检测:透过弹性化的设备扩充机制,只需在CAN bus网域内新增一诊断设备,即可对所有设备进行错误诊断。
应用范例
- 车用(车载仪表、ABS、OBD-II等)
- 运输系统(火车、飞机、船舶等)
- 工业用机器(堆高机、挖土机、挖矿机、农用耕耘机等)
- 工控系统(工业自动化、信息管理系统等)
- 家用与大楼自动化设备(HVAC空气调节系统、电梯等)
- 医疗设备与实验室自动化
限制说明
- CANopen软件通讯协议一组讯息内容为11位,包含4位功能码,和7位的设备ID。因此一个bus上最多可使用127 (2^7 - 1)个设备作为唯一标识符。
- J1939软件通讯协议有8位的设备ID,理论上最大可使用255 (2^8 – 1) 个设备作为唯一标识符;但此协议的第254保留作为网域管理、255用于广播,因此一个总线(bus)上最多可使用253个设备作为唯一标识符。
- 通讯带宽较低,因此速度会与传输距离成反比。