现场总线与工业以太网-CAN--总-线课件

上传人:桔**** 文档编号:567913810 上传时间:2024-07-22 格式:PPT 页数:113 大小:1.29MB
返回 下载 相关 举报
现场总线与工业以太网-CAN--总-线课件_第1页
第1页 / 共113页
现场总线与工业以太网-CAN--总-线课件_第2页
第2页 / 共113页
现场总线与工业以太网-CAN--总-线课件_第3页
第3页 / 共113页
现场总线与工业以太网-CAN--总-线课件_第4页
第4页 / 共113页
现场总线与工业以太网-CAN--总-线课件_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《现场总线与工业以太网-CAN--总-线课件》由会员分享,可在线阅读,更多相关《现场总线与工业以太网-CAN--总-线课件(113页珍藏版)》请在金锄头文库上搜索。

1、第第4 4章章 CAN CAN 总总 线线4.1 4.1 概述概述4.2 4.2 CANCAN的的物理层的的物理层4.3 4.3 CANCAN协议规范协议规范4.4 4.4 典型典型CANCAN总线器件及应用总线器件及应用第第4 4章章 CAN CAN 总总 线线 CAN CAN(Controller Area NetworkController Area Network)即控制器局域网,可以)即控制器局域网,可以归属于工业现场总线的范畴,通常称为归属于工业现场总线的范畴,通常称为CAN busCAN bus,即,即CANCAN总线,总线,是目前国际上应用最广泛的开放式现场总线之一。是目前国际

2、上应用最广泛的开放式现场总线之一。 与一般的通信总线相比,与一般的通信总线相比,CANCAN总线的数据通信具有突出的可总线的数据通信具有突出的可靠性、实时性和灵活性,它在汽车领域上的应用最为广泛,世靠性、实时性和灵活性,它在汽车领域上的应用最为广泛,世界上一些著名的汽车制造厂商,如界上一些著名的汽车制造厂商,如BENZ(BENZ(奔驰奔驰) )、BMW(BMW(宝马宝马) )、volkswagen (volkswagen (大众大众) )等都采用了等都采用了CANCAN总线来实现汽车内部控制系总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。统与各检测和执行机构间的数据通信。 同时,由

3、于同时,由于CANCAN总线的特点,其应用范围目前已不仅局限于总线的特点,其应用范围目前已不仅局限于汽车行业,已经在自动控制、航空航天、航海、过程工业、机汽车行业,已经在自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域中得到了广泛应用。及传感器等领域中得到了广泛应用。4.1 4.1 概述概述4.1.1 4.1.1 CANCAN工作原理、特点工作原理、特点4.1.2 4.1.2 发展背景及应用情况发展背景及应用情况4.1.3 4.1.3 一个典型的工程实例一个典型的工程实例4.14.1

4、概述概述 CAN CAN 最初出现在汽车工业中,最初出现在汽车工业中,8080年代由德国年代由德国BoschBosch公司公司最先提出。最初动机是为了解决现代汽车中庞大的电子控最先提出。最初动机是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。制装置之间的通讯,减少不断增加的信号线。19931993年年CAN CAN 成为国际标准成为国际标准ISO11898(ISO11898(高速应用高速应用) )和和ISO11519ISO11519(低速应用)。(低速应用)。 由于其良好的性能及独特的设计,由于其良好的性能及独特的设计,CANCAN总线越来越受到总线越来越受到人们的重视

5、。随着应用领域的增多,人们的重视。随着应用领域的增多,CANCAN的规范从的规范从CAN 1.2 CAN 1.2 规范规范( (标准格式标准格式) )发展为兼容发展为兼容CAN 1.2 CAN 1.2 规范的规范的CAN2.0CAN2.0规范规范(CAN2.0A(CAN2.0A为标准格式,为标准格式,CAN2.0BCAN2.0B为扩展格式为扩展格式) ),目前应用的,目前应用的CANCAN器件大多符合器件大多符合CAN2.0CAN2.0规范。规范。 4.1.1CAN的工作原理、特点的工作原理、特点1 1 CAN CAN 的工作原理的工作原理 当当CAN CAN 总线上的一个节点总线上的一个节点

6、( (站站) )发送数据时,它以报文形发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的是发给自己的,都对其进行接收。每组报文开头的1111位字符位字符为标识符为标识符(CAN2.0A)(CAN2.0A),定义了报文的优先级,这种报文格式称,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个节点发送具有相同标识符的报文。当一个节点要可能有两个节点发送具有相同标识符的报文。当一个节

7、点要向其它节点发送数据时,该节点的向其它节点发送数据时,该节点的CPU CPU 将要发送的数据和自将要发送的数据和自己的标识符传送给本节点的己的标识符传送给本节点的CANCAN芯片,并处于准备状态;当芯片,并处于准备状态;当它它收到收到总线分配分配时,转为发送送报文状文状态。 CAN CAN 芯片将数据根据协议组织成一定的报文格式发出,芯片将数据根据协议组织成一定的报文格式发出,这时这时 网上的其它节点处于接收状态。网上的其它节点处于接收状态。 每每个个处处于于接接收收状状态态的的节节点点对对接接收收到到的的报报文文进进行行检检测测,判断这些报文是否是发给自己的,以确定是否接收它。判断这些报文

8、是否是发给自己的,以确定是否接收它。 由由于于CAN CAN 总总线线是是一一种种面面向向内内容容的的编编址址方方案案,因因此此很很容容易易建建立立高高水水准准的的控控制制系系统统并并灵灵活活地地进进行行配配置置。我我们们可可以以很很容容易易地地在在CAN CAN 总总线线中中加加进进一一些些新新节节点点而而无无需需在在硬硬件件或或软软件件上上进进行行修修改改。当当所所提提供供的的新新节节点点是是纯纯数数据据接接收收设设备备时时,数数据据传传输输协协议议不不要要求求独独立立的的部部分分有有物物理理目目的的地地址址。它它允允许许分分布布过过程程同同步步化化,即即总总线线上上控控制制器器需需要要测

9、测量量数数据据时时,可可由由网网上获得,而无须每个控制器都有自己独立的传感器。上获得,而无须每个控制器都有自己独立的传感器。2 2 CANCAN总线特点总线特点 CANCAN总总线线是是一一种种串串行行数数据据通通信信协协议议,通通信信介介质质可可以以是是双双绞绞线线、同同轴轴电电缆缆或或光光导导纤纤维维。最最大大通通讯讯距距离离可可达达10km10km,最最大大通通信信速速率率可可达达1Mbps1Mbps。CANCAN总总线线通通信信接接口口中中集集成成了了CANCAN协协议议的的物物理理层层和和数数据据链链路路层层功功能能,可可完完成成对对通通信信数数据据的的成成帧帧处处理理,包包括括位位

10、填填充充、数数据据块块编编码码、循循环环冗冗余余检检验验、优优先先级判别等项工作。级判别等项工作。 CANCAN总线特点如下:总线特点如下:(1 1)可可以以多多主主方方式式工工作作,网网络络上上任任意意一一个个节节点点均均可可以以在在任任意意时时刻刻主主动动地地向向网网络络上上的的其其他他节节点点发发送送信信息息,而而不不分分主主从从,通通信信方方式式灵灵活活。利利用用这这一一特特点点也也可可方方便便地地构构成成多多机机备备份系统。份系统。 (2 2)网络上的节点(信息)可分成不同的优先级可以满网络上的节点(信息)可分成不同的优先级可以满足不同的实时要求。足不同的实时要求。 (3 3)CAN

11、CAN总线采用非破坏性位仲裁总线结构机制,当总线采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的节点主动两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输停止数据发送,而优先级高的节点可不受影响地继续传输数据,大大节省了总线冲突裁决时间;最重要的是在网络数据,大大节省了总线冲突裁决时间;最重要的是在网络负载很重的情况下,也不会出现网络瘫痪的情况(以太网负载很重的情况下,也不会出现网络瘫痪的情况(以太网则可能)。则可能)。 (4 4)可以点对点、一点对多点(成组)及全局广播几种可以点对点、一点对多点(成组)及全局广播几

12、种传送方式接收数据。传送方式接收数据。 (5 5)直接通信距离最远可达直接通信距离最远可达10km10km(速率(速率5Kbps5Kbps以下)。以下)。 (6 6)通信速率最高可达)通信速率最高可达1MB/s1MB/s(此时距离最长(此时距离最长40m40m)。)。 (7 7)节点数实际可达)节点数实际可达110110个。个。 (8 8)采用短帧结构,每一帧的有效字节数为)采用短帧结构,每一帧的有效字节数为8 8个,这样传输个,这样传输时间短,受干扰的概率低,且具有极好的检错效果。可满足通时间短,受干扰的概率低,且具有极好的检错效果。可满足通常工业领域中控制命令、工作状态及测试数据的一般要求

13、。常工业领域中控制命令、工作状态及测试数据的一般要求。 (9 9)每帧信息都有)每帧信息都有CRCCRC校验及其他检错措施,保证了数据出校验及其他检错措施,保证了数据出错率极低。错率极低。 (1010)通信介质可采用双绞线,同轴电缆和光导纤维,一般)通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求。采用廉价的双绞线即可,无特殊要求。 (1111)节点在错误严重的情况下,具有自动关闭总线的功能,节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。切断它与总线的联系,以使总线上的其他操作不受影响。 CANCAN总总线线协协

14、议议已已被被国国际际标标准准化化组组织织认认证证,技技术术比比较较成成熟熟,控控制制的的芯芯片片已已经经商商品品化化,性性价价比比高高,特特别别适适用用于于分分布布式式测测控控系系统之间的数据通讯。统之间的数据通讯。 CAN CAN 控制器工作于多主方式,网络中的各节点都可根据总控制器工作于多主方式,网络中的各节点都可根据总线访问优先权线访问优先权( (取决于报文标识符取决于报文标识符) )采用无损结构的逐位仲裁的采用无损结构的逐位仲裁的方式竞争向总线发送数据,且方式竞争向总线发送数据,且CAN CAN 协议废除了节点地址编码,协议废除了节点地址编码,而代之以对通信数据进行编码,这可使不同的节

15、点同时接收到而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得相同的数据,这些特点使得CAN CAN 总线构成的网络各节点之间的总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用性和系统的灵活性。而利用RS-485 RS-485 只能构成主从式结构系统,只能构成主从式结构系统,通信方式也只能以主节点轮询的方式进行,系统的实时性、可通信方式也只能以主节点轮询的方式进行,系统的实时性、可靠性较差;靠性较差; CAN CAN 总线通通过CAN CAN 控制器接口芯片

16、两个控制器接口芯片两个输出端的出端的电平状平状态,可以保可以保证不会出不会出现象在象在RS-485RS-485网网络中,当系中,当系统有有错误,出现多出现多节点同时向总线发送数据时,导致总线呈现短路,从节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且而损坏某些节点的现象。而且CAN CAN 节点在错误严重的情况下具节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于线处于“死锁死

17、锁”状态。状态。 CAN CAN 具有的完善的通信协议可由具有的完善的通信协议可由CAN CAN 控制器芯片及其接口控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是只仅仅有电气协议的这些是只仅仅有电气协议的RS-485 RS-485 所无法比拟的。另外,与所无法比拟的。另外,与其它现场总线比较而言,其它现场总线比较而言,CAN CAN 总线是具有通信速率高、容易实总线是具有通信速率高、容易实现、低成本、且性价比高等诸多特点的一种已形成国际标准的现、低成本、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些

18、也是目前现场总线。这些也是目前CAN CAN 总线应用于众多领域,具有强劲总线应用于众多领域,具有强劲的市场竞争力的重要原因。的市场竞争力的重要原因。4.1.2发展背景及应用情况发展背景及应用情况 1. CAN 1. CAN(控制器局域网)的起源(控制器局域网)的起源 19861986年年2 2月,德国月,德国Robert Bosch Robert Bosch 公司介绍了一种新型的串公司介绍了一种新型的串行总线行总线CANCAN控制器局域网。在此之前还没有一种现成的网控制器局域网。在此之前还没有一种现成的网络方案能够完全满足汽车工程师们增加新功能、减少电气连接络方案能够完全满足汽车工程师们增加

19、新功能、减少电气连接线,使其能够用于产品,而非用于驱动技术的要求。线,使其能够用于产品,而非用于驱动技术的要求。 19871987年中期,年中期,IntelIntel交付了首枚交付了首枚CANCAN控制器控制器8252682526,这是,这是CANCAN方案首次通过硬件加以实现。不久之后,方案首次通过硬件加以实现。不久之后,Philips Philips 半导体推出半导体推出了了82C20082C200。由于这两枚最先的。由于这两枚最先的CANCAN控制器在性能上各有千秋,控制器在性能上各有千秋,因此形成因此形成PhilipsPhilips主推的主推的BasicCAN BasicCAN 和和I

20、ntelIntel主推的主推的FullCAN FullCAN 两两大阵营。今天的大阵营。今天的CANCAN控制器中,在同一模块中的验收滤波和报控制器中,在同一模块中的验收滤波和报文控制方面仍有相当的不同。文控制方面仍有相当的不同。 今天,在欧洲几乎每一辆新客车均装配有今天,在欧洲几乎每一辆新客车均装配有CANCAN局域网。局域网。同样,同样,CANCAN也用于其他类型的交通工具,甚至工业控制等领也用于其他类型的交通工具,甚至工业控制等领域也被大量使用。域也被大量使用。CANCAN已经成为全球范围内最重要的总线之已经成为全球范围内最重要的总线之一。一。20002000年,全球市场销售超过年,全球

21、市场销售超过1 1亿个亿个CANCAN器件。器件。 标准化与一致性标准化与一致性 19901990年,年,Bosch CAN Bosch CAN 规范(规范(CAN 2.0CAN 2.0版)被提交给国际版)被提交给国际标准化组织,于标准化组织,于19931993年年1111月出版了月出版了CANCAN的国际标准的国际标准ISO11898ISO11898,除了,除了CANCAN协议外,它也规定了最高至协议外,它也规定了最高至1Mbps1Mbps波特率时的物理波特率时的物理层。同时,在国际标准层。同时,在国际标准ISO11519-2ISO11519-2中也规定了中也规定了CANCAN数据传输数据传

22、输中的容错方法。中的容错方法。19951995年,国际标准年,国际标准ISO11898ISO11898进行了扩展,以进行了扩展,以附录的形式说明了附录的形式说明了2929位位CANCAN标识符。当前,修订的标识符。当前,修订的CANCAN规范正规范正在标准化中。在标准化中。ISO11898-1ISO11898-1称为称为“CANCAN数据链路层数据链路层”,ISO11898-2ISO11898-2称为称为“非容错非容错CANCAN物理层物理层”,ISO11898-3ISO11898-3称称为“容容错CANCAN物理物理层”。国。国际标准准ISO11992ISO11992(卡(卡车和拖和拖车接口

23、)和接口)和ISO11783(农业和(农业和森林机械)都在美国标准森林机械)都在美国标准J1939J1939的基础上定的基础上定义了基于义了基于CANCAN应用的子协议。应用的子协议。 CANCAN的发展过程的发展过程 尽尽管管当当初初研研究究CANCAN的的起起点点是是应用用于于客客车系系统,但但CANCAN的的第第一一个个市市场应用用却却来来自自于于其其他他领域域。特特别是是在在北北欧欧,CANCAN早早已已得得到到非非常常普普遍遍的的应用用。在在荷荷兰,电梯梯厂厂商商KoneKone在在电梯梯上上使使用用了了CANCAN总线,PhilipsPhilips医医疗系系统也也使使用用CANCA

24、N构构成成X X光光机机的的内内部部网网络,成成为CANCAN的用的用户。 19921992年年5 5月月,CiACiA“CAN CAN in in AutomationAutomation”用用户集集团正正式式成成立立。CiACiA推推荐荐仅使使用用遵遵循循ISO11898ISO11898的的CANCAN收收发器器。现在在,在在当当时的的CANCAN网网络中中使使用用非非常常普普遍遍但但并并不不兼兼容容的的RS-485RS-485收收发器器已已基基本本消失。消失。 从从19901990年中期起,年中期起,InfineonInfineon公司和公司和MotorolaMotorola公司等生公司

25、等生产CANCAN模模块集成器件的集成器件的1515家半家半导体厂商已向欧洲的汽体厂商已向欧洲的汽车厂商提供厂商提供了了大大量量的的CANCAN控控制制器器。从从19901990年年后后期期起起,亚洲洲的的半半导体体厂厂商商也也开始提供开始提供CANCAN控制器。控制器。 从从19921992年年起起,奔奔驰公公司司开开始始在在高高级轿车中中使使用用CANCAN技技术。第第一一步步使使用用电子子控控制制器器通通过CANCAN对发动机机进行行管管理理;第第二二步步使使用用控控制制器器接接收收人人们的的操操作作信信号号。这就就使使用用了了2 2个个物物理理上上独独立立的的CANCAN总线系系统,它

26、它们通通过网网关关连接接。其其他他的的汽汽车厂厂商商在在他他们的的汽汽车上也使用上也使用2 2套套CANCAN总线系系统。 现在在,继VolvoVolvo、SaabSaab、VolkswagenVolkswagen、BMWBMW之之后后,RenaultRenault和和FiatFiat也也开开始始在在他他们的的汽汽车上上使使用用CANCAN总线。不不仅如如此此,由由于于CANCAN总线的的突突出出优势,其其应用用已已经发展展到到了了几几乎乎涵涵盖盖所所有有的的网网络控制控制领域。域。4.1.3一个典型的工程实例一个典型的工程实例 目目前前的的汽汽车电子子信信息息产品品已已经平平均均占占到到汽汽

27、车总成成本本的的1/31/3,并并且且这个个比比率率正正在在不不断断被被提提高高,有有专家家认为,未未来来1010年年内内,这个个比比率率将将达达到到4040。中中高高级轿车、客客车甚甚至至大大型型卡卡车上上普普遍遍采采用用了了CANCAN总线,不不仅提提高高了了性性能能,节省省大大量量电缆,而而且且给人人们带来了更好的享受,提高了来了更好的享受,提高了驾驭者的舒适程度。者的舒适程度。 一一汽汽- -大大众众汽汽车有有限限公公司司20012001年年1212月月上上市市的的宝宝来来(BoraBora)轿车,在在动力力传动系系统和和舒舒适适系系统中中就就装装用用了了两两套套CANCAN数数据据传

28、输系系统,其中,其中CANCAN数据数据传输舒适系舒适系统如如图4.14.1所示。所示。接发电接发电机机底盘网底盘网络络仪表单元仪表单元M MM MM MM MM MM MM MM MM MM MM MM M前门前门单元单元车身中央车身中央控制单元控制单元空调空调单元单元前座前座单元单元顶窗顶窗单元单元前座前座单元单元左前门左前门单元单元M MM MM M后门后门单元单元后门后门单元单元后座后座单元单元M MM M后窗后窗单元单元MM MM MCANCANMLINLIN电机电机加热器加热器灯具灯具控制面板控制面板图例图例:图4-1 CAN4-1 CAN数据数据传输舒适系舒适系统CANZONGX

29、IANCANZONGXIAN 图上上较粗粗线代代表表CANCAN总线,它它连接接了了传动装装置置控控制制中中央央单元元、灯灯控控单元元、门控控单元元、座座椅椅控控制制单元元、空空调单元元以以及及仪表表盘控控制制单元元等等等等。较细线代代表表LINLIN总线,由由LINLIN总线构构成成的的LINLIN网网络作作为CANCAN网网络的的辅助助网网络,连接接了了车窗窗控控制制单元元、雨雨刷控制刷控制单元、天窗控制元、天窗控制单元等低速元等低速设备。 CANCAN数数据据传输舒舒适适系系统网网络与与动力力传动系系统网网络通通过网网桥相互通信。相互通信。 LINLIN网网络(Local Interco

30、nnect NetworkLocal Interconnect Network),由汽),由汽车厂商厂商为汽汽车开开发,作,作为CANCAN网网络的的辅助网助网络,目,目标应用在低端系用在低端系统,不需要不需要CANCAN的性能、的性能、带宽以及复以及复杂性。性。LINLIN的工作方式是一主的工作方式是一主多从,多从,单线双向低速双向低速传送数据(最高送数据(最高20K20K位位/ /秒),与秒),与CANCAN相比相比具有更低的成本,且基于具有更低的成本,且基于UARTUART接口,无需硬件接口,无需硬件协议控制器,控制器,使系使系统成本更低。成本更低。 4.2CAN的物理层的物理层 ISO

31、 11898ISO 11898是一个使用是一个使用CANCAN总线协议的汽车内高速通讯国际标总线协议的汽车内高速通讯国际标准,这个标准的基本作用是定义了通讯链路的数据链路层和物准,这个标准的基本作用是定义了通讯链路的数据链路层和物理层,如理层,如图图4.24.2所示物理层被细分成所示物理层被细分成3 3个子层,它们分别是:个子层,它们分别是:l l物理信令位编码定时和同步物理信令位编码定时和同步l l物理媒体连接驱动器和接收器特性物理媒体连接驱动器和接收器特性l l媒体相关接口总线连接器媒体相关接口总线连接器 收发器实现物理媒体连接子层。物理信令子层和数据链路层收发器实现物理媒体连接子层。物理

32、信令子层和数据链路层之间的连接是通过集成的协议控制器实现的,如:之间的连接是通过集成的协议控制器实现的,如:PCx82C200PCx82C200、SJA1000SJA1000等。而媒体相关接口负责连接传输媒体譬如将总线节点等。而媒体相关接口负责连接传输媒体譬如将总线节点连接到总线的连接器,如:连接到总线的连接器,如:PCA82C250PCA82C250、TJA1050TJA1050等收发器。等收发器。 图4.2 ISO118984.2 ISO11898标准数据准数据链路路层和物理和物理层结构构图 4.2 CAN4.2 CAN的物理层的物理层4.2.1 4.2.1 CANCAN的网络拓扑的网络拓

33、扑4.2.2 4.2.2 CANCAN的媒体连接的媒体连接4.2.1CAN的网络拓扑的网络拓扑 CAN CAN以多主方式工作,网以多主方式工作,网络上任意一个上任意一个节点均可以在点均可以在任意任意时刻主刻主动地向网地向网络上的其他上的其他节点点发送信息,而不分送信息,而不分主从,通信方式灵活。其网主从,通信方式灵活。其网络拓扑形式大多是拓扑形式大多是总线型型结构,拓扑示意构,拓扑示意图见图4.34.3。节点点1 1节点点2 2节点点3 3节点点4 4CANCAN总线图4.3 CAN4.3 CAN的的总线型网型网CANCAN的网的网络拓扑拓扑4.2.2CAN的物理媒体连接的物理媒体连接 CAN

34、 CAN总线物理物理层的物理媒体的物理媒体连接比接比较灵活,可以采用共地灵活,可以采用共地的的单线式(汽式(汽车常用)、双常用)、双线式、同式、同轴电缆、双、双绞线、光、光缆等,理等,理论上上节点数目没有限制,点数目没有限制,实际可达可达110110个。个。 电子信号在子信号在总线上会被信号上会被信号线终端反射回来,避免信号端反射回来,避免信号的反射的反射对节点正确点正确读取取总线电压非常重要。在非常重要。在总线的两个的两个终端加上端加上终端端电阻以阻以终结总线,可以避免信号反射。,可以避免信号反射。 CANCAN总线具有两种具有两种逻辑状状态,隐性和性和显性。性。 隐性状性状态下,下,VCA

35、N-HVCAN-H和和VCAN-LVCAN-L被固定被固定为平均平均电压电平,平,两者两者电压差差为0 0。 显性状性状态下,下,VCAN-HVCAN-H和和VCAN-LVCAN-L分分别为3.5V3.5V和和1.5V1.5V,两者,两者差分差分电压大于大于2V2V。如。如图4.44.4所示。所示。隐性状态隐性状态显性状态图4.4 4.4 根据根据ISO 11898 ISO 11898 的的额定额定总线电平平4.3CAN协议规范协议规范4.3.1基本术语基本术语4.3.2CAN的报文及结构的报文及结构4.3.3CAN的位仲裁技术的位仲裁技术4.3CAN协议规范协议规范 1.CAN 1.CAN规

36、范中的对应规范中的对应ISO/OSIISO/OSI参考模型的网络层参考模型的网络层 CANCAN为串串行行通通讯协议,能能有有效效地地支支持持具具有有很很高高安安全全等等级的的分分布布实时控控制制。CANCAN的的应用用范范围很很广广,从从高高速速的的网网络到到低低价价位位的的多多路路接接线都都可可以以使使用用CANCAN。在在汽汽车电子子行行业里里,使使用用CANCAN连接接发动机机控控制制单元元、传感感器器、防防刹刹车系系统、等等等等,其其传输速速度度可可达达1Mbit/s1Mbit/s。同同时,可可以以将将CANCAN安安装装在在卡卡车本本体体的的电子子控控制制系系统里里,诸如如车灯灯组

37、、电气气车窗窗等等等等,用用以以代代替替接接线配配线装置。装置。 技技术规范的目的是范的目的是为了在任何两个了在任何两个CANCAN仪器之器之间建立兼容建立兼容性。可是,兼容性有不同的方面,比如性。可是,兼容性有不同的方面,比如电气特性和数据气特性和数据转换的解的解释。为了达到了达到设计透明度以及透明度以及实现灵活性,根据灵活性,根据ISO/OSIISO/OSI参考模型,参考模型,CAN 2.0CAN 2.0规范范细分分为以下不同的以下不同的层次:数据次:数据链路路层和物理和物理层( (如如图4.54.5所示所示) )。接收滤波数据数据链路路层逻辑链路控制子路控制子层(LLC)(LLC)超超载

38、通知通知恢复管理恢复管理媒体媒体访问控制子控制子层(MACMAC)数据封装/拆装帧编码媒体访问管理错误检测出错标定应答串行化/解除串行化故障界定故障界定物理物理层 位位编码/ /解解码 位定位定时同步同步驱动器器/ /接收器特性接收器特性总线故障管理图图4.5 CAN4.5 CAN协议分层结构和功能协议分层结构和功能 在在以以前前版版本本的的CANCAN规范范中中,数数据据链路路层的的LLCLLC子子层和和MACMAC子子层的服的服务及功能分及功能分别被解被解释为“对象象层”和和“传输层”。 逻辑链路控制子路控制子层(LLC)(LLC)的作用范的作用范围如下:如下: 为远程数据程数据请求以及数

39、据求以及数据传输提供服提供服务。 确定由确定由实际要使用的要使用的LLCLLC子子层接收哪一个接收哪一个报文。文。 为恢复管理和恢复管理和过载通知提供手段。通知提供手段。 在在这里,定里,定义对象象处理理较为自由。自由。MACMAC子子层的作用主要的作用主要是是传送送规则,也就是控制,也就是控制帧结构、构、执行仲裁、行仲裁、错误检测、出、出错标定、故障界定。定、故障界定。总线上什么上什么时候开始候开始发送新送新报文及什么文及什么时候开始接收候开始接收报文,均在文,均在MACMAC子子层里确定。位定里确定。位定时的一些普的一些普通功能也可以看作是通功能也可以看作是MACMAC子子层的一部分。理所

40、当然,的一部分。理所当然,MACMAC子子层的修改是受到限制的。的修改是受到限制的。 物物理理层的的作作用用是是在在不不同同节点点之之间根根据据所所有有的的电气气属属性性进行行位位的的实际传输。同同一一网网络的的物物理理层对于于所所有有的的节点点当当然然是是相同的。尽管如此,在相同的。尽管如此,在选择物理物理层方面方面还是很自由的。是很自由的。 这本技本技术规范的目的是定范的目的是定义数据数据链路路层中中MACMAC子子层和一小和一小部分部分LLCLLC子子层,以及定,以及定义CANCAN协议于周于周围各各层当中所当中所发挥的作的作用)。用)。 2 2基本概念基本概念 CANCAN具有以下的属

41、性:具有以下的属性: 报文的文的优先先权 保保证延延迟时间 设置灵活置灵活 时间同步的多点接收同步的多点接收 系系统内数据的内数据的连贯性性 多主机多主机 错误检测和和错误标定定 只要只要总线一一处于空于空闲,就自,就自动将破坏的将破坏的报文重新文重新传输 将将节点的点的暂时性性错误和永久性和永久性错误区分开来,并且可以区分开来,并且可以自自动关关闭由由OSIOSI参考模型分参考模型分层CANCAN结构的构的错误的的节点。点。 依据依据ISO/OSIISO/OSI参考模型的参考模型的层结构具有以下功能构具有以下功能: : 物理物理层定定义信号是如何信号是如何实际地地传输的,因此涉及到位的,因此

42、涉及到位时间、位、位编码、同步的解、同步的解释。本技。本技术规范没有定范没有定义物理物理层的的驱动器器/ /接收器特性,以便允接收器特性,以便允许根据它根据它们的的应用,用,对发送媒体送媒体和信号和信号电平平进行行优化。化。 MAC MAC 子子层是是CANCAN协议的核心。它把接收到的的核心。它把接收到的报文提供文提供给LLCLLC子子层,并接收来自,并接收来自LLCLLC子子层的的报文。文。MACMAC子子层负责报文文 分分帧、仲仲裁裁、应答答、错误检测和和标定定。MACMAC子子层也也被被称称作作故故障障界界定定的的管管理理实体体监管管。此此故故障障界界定定为自自检机机制制,以便把永久故

43、障和短以便把永久故障和短时扰动区区别开来。开来。 LLC LLC子子层涉及涉及报文文滤波、波、过载通知、以及恢复管理。通知、以及恢复管理。4.3.1基本术语基本术语 1 1报文报文 总线上上的的报文文以以不不同同的的固固定定报文文格格式式发送送,但但长度度受受限限。当当总线空空闲时任何任何连接的接的单元都可以开始元都可以开始发送新的送新的报文。文。 2 2信息路由信息路由 在在CAN CAN 系系统里里,CAN CAN 的的节点点不不使使用用任任何何关关于于系系统配配置置的的报文文(比比如如,节点点地地址址)。这样不不用用依依赖应用用层以以及及任任何何节点点软件件和和硬硬件件的的改改变,就就可

44、可以以在在CAN CAN 网网络中中直直接接添添加加节点点。提提高高系系统灵灵活活性性。报文文的的内内容容由由识别符符命命名名。识别符符不不指指出出报文文的的目目的的地地,但但解解释数数据据的的含含义。因因此此,网网络上上所所有有的的节点点可可以以通通过报文文滤波波确确定定是是否否应对该数数据据做做出出反反应。由由于于引引入入了了报文文滤波波的的概概念念,任任何何节点点都都可可以以接接收收报文文,并并与与此此同同时对此此报文文做做出出反反应。为确确保保报文文在在CAN CAN 网网络里里同同时被被所所有有的的节点点接接收收(或或同同时不不被被接接收收)。因因此此,系系统的的数数据据连贯性性是是

45、通通过多多播播和和错误处理的原理理的原理实现的。的。 3 3位速率位速率 不不同同的的系系统,CAN CAN 的的速速度度不不同同。在在一一个个给定定的的系系统里里,位位速率是唯一的,并且是固定的。速率是唯一的,并且是固定的。 4 4优先权优先权 在在总线访问期期间,识别符定符定义一个静一个静态的的报文文优先先权。 5 5远程数据请求远程数据请求 通通过发送送远程程帧,需需要要数数据据的的节点点可可以以请求求另另一一节点点发送送相相应的的数数据据帧。数数据据帧和和相相应的的远程程帧是是由由相相同同的的识别符符命命名的。名的。 6 6仲裁仲裁 只要只要总线空空闲,任何,任何单元都可以开始元都可以

46、开始发送送报文。具有文。具有较高高优先先权报文的文的单元可以元可以获得得总线访问权。如果。如果2 2个或个或2 2个以个以上的上的单元同元同时开始开始传送送报文,那么就会有文,那么就会有总线访问冲突。冲突。仲裁的仲裁的机制确保了机制确保了报文和文和时间均不均不损失。当具有相同失。当具有相同识别符的数据符的数据帧和和远程程帧同同时初始化初始化时,数据,数据帧优先于先于远程程帧。仲。仲裁期裁期间,每一个,每一个发送器都送器都对发送位的送位的电平与被平与被监控的控的总线电平平进行比行比较。如果。如果电平相同,平相同,则这个个单元可以元可以继续发送。如果送。如果发送的是一送的是一“隐性性”电平而平而监

47、视的是一的是一“显性性”电平(平(见总线值),),那么那么单元就失去了仲裁,必元就失去了仲裁,必须退出退出发送状送状态。 7 7错误检测错误检测 为了了获得得最最安安全全的的数数据据发送送,CAN CAN 的的每每一一个个节点点均均采采取取了了强有力的措施以便于有力的措施以便于错误检测、错误标定及定及错误自自检。 要要进行行检测错误,必,必须采取以下措施:采取以下措施: 监视(发送送器器对发送送位位的的电平平与与被被监控控的的总线电平平进行行比比较) 循循环冗余冗余检查 位填充位填充 报文格式文格式检查 错误检测的的执行行错误检测的机制要具有以下的属性:的机制要具有以下的属性: 检测到所有的全

48、局到所有的全局错误 检测到到发送器所有的局部送器所有的局部错误 可以可以检测到到报文里多达文里多达5 5个任意分布的个任意分布的错误 检测到到报文里文里长度低于度低于1515(位)的突(位)的突发性性错误 检测到到报文里任一奇数个的文里任一奇数个的错误 错误标定和恢复定和恢复时间 任何任何检测到到错误的的节点会点会标志出志出损坏的坏的报文。此文。此报文会失文会失效并将自效并将自动地开始重新地开始重新传送。如果不再出送。如果不再出现错误的的话,从,从检测到到错误的的节点点会会标志志出出损坏坏的的报文文。此此报文文会会失失效效并并将将自自动地地开开始始重重新新传送送。如如果果不不再再出出现错误的的

49、话,从从检测到到错误到到下下一一报文的文的传送开始送开始为止,恢复止,恢复时间最多最多为3131个位的个位的时间。 8 8故障界定故障界定 CAN CAN 节点点能能够把把永永久久故故障障和和短短暂扰动区区别开开来来。故故障障的的节点会被关点会被关闭。 9 9总线值总线值 总线有有二二个个互互补的的逻辑值:“显性性”或或“隐性性”。“显性性”位位和和“隐性性”位位同同时传送送时,总线的的结果果值为“显性性”。比比如如,在在总线的的“写写与与”执行行时,逻辑0 0代代表表“显性性”等等级,逻辑1 1代代表表“隐性性”等等级。 1010应答应答 所所有有的的接接收收器器检查报文文的的连贯性性。对于

50、于连贯的的报文文,接接收收器器应答,答,对于不于不连贯的的报文,接收器作出文,接收器作出标志。志。 4.3.2CAN的报文及结构的报文及结构 在在总线上上的的任任意意节点点均均可可以以作作为发送送器器或或接接收收器器,那那么么我我们就就将将发出出报文文的的节点点叫叫发送送器器,该节点点在在总线空空闲或或丢失失仲仲裁裁前前始始终为发送送器器。如如果果一一个个节点点不不是是发送送器器,且且总线不不是是处于于空空闲状状态,则该节点点就就叫叫接接收收器器。报文文由由一一个个发送送器器发出,再由一个或多个接收器接收。出,再由一个或多个接收器接收。 报文文传输由由4 4个不同个不同类型的型的帧表示和控制:

51、表示和控制: 数数据据帧:数数据据帧携携带数数据据从从发送送器器至至接接收收器器。总线上上传输的大多是的大多是这个个帧。 远程程帧:由由总线单元元发出出,请求求发送送具具有有同同一一识别符符的的数数据据帧。数据。数据帧(或(或远程程帧)通)通过帧间空空间与其他各与其他各帧分开。分开。 错误帧:任何:任何单元一但元一但检测到到总线错误就就发出出错误帧。 过载帧:过载帧用用以以在在先先行行的的和和后后续的的数数据据帧(或或远程程帧)之之间提供一附加的延提供一附加的延时。 1 1数据帧数据帧 数据数据帧由由7 7个不同的位个不同的位场组成:成:帧起始(起始(Stsrt of Stsrt of Fra

52、meFrame)、仲裁)、仲裁场(Arbitration FrameArbitration Frame)、控制)、控制场(Control Control FrameFrame)、数据)、数据场(DataFrameDataFrame)、)、CRC CRC 场(CRC FrameCRC Frame)、)、应答答场(ACK FrameACK Frame)、)、帧结尾(尾(End of FrameEnd of Frame)。数据)。数据场的的长度可以度可以为0 0。CAN 2.0ACAN 2.0A数据数据帧的的组成如成如图4.64.6所示。所示。 图图4.6 4.6 数据帧的组成数据帧的组成 帧起始起

53、始 帧起始(起始(SOFSOF)标志数据志数据帧和和远程程帧的起始,的起始,仅由一个由一个“显性性”位位组成。只在成。只在总线空空闲时才允才允许站开始站开始发送。送。所有站必所有站必须同步于首先开始同步于首先开始发送送报文的站的文的站的帧起始前沿。起始前沿。 仲裁仲裁场 仲裁仲裁场包括包括识别符和符和远程程发送送请求位(求位(RTR RTR )。)。见图4.74.7仲裁仲裁场结构示意构示意图图图4.7 4.7 仲裁场结构示意图仲裁场结构示意图图4.8 标准格式数据帧与扩展格式数据帧的仲裁场图图4.8 4.8 标准格式数据帧与扩展格式数据帧的仲裁场标准格式数据帧与扩展格式数据帧的仲裁场 识别符:

54、识别符: 标准格式准格式识别符的符的长度度为1111位,相当于位,相当于扩展格式的基本展格式的基本IDID(Base IDBase ID)。)。这些位按些位按ID-28ID-28到到ID-18ID-18的的顺序序发送。最低位是送。最低位是ID-18ID-18。7 7个最高位(个最高位(ID-28-ID-22ID-28-ID-22)必)必须不能全是不能全是“隐性性”。 扩展格式展格式识别符和符和标准格式形成准格式形成对比,比,参参见图4.84.8标准格式准格式数据数据帧与与扩展格式数据展格式数据帧的仲裁的仲裁场比比较,扩展格式由展格式由2929位位组成。成。其格式包含两个部分:其格式包含两个部分

55、:1111位基本位基本IDID、1818位位扩展展IDID。基本。基本IDID包括包括1111位,它按位,它按ID-28ID-28到到ID-18ID-18的的顺序序发送。它相当于送。它相当于标准准识别符的符的格式。基本格式。基本IDID定定义扩展展帧的基本的基本优先先权。扩展展IDID:扩展展IDID包括包括1818位。它按位。它按ID-17ID-17到到ID-0ID-0顺序序发送。送。 标准准帧里,里,识别符其后是符其后是RTRRTR位。位。 RTRRTR位:位: RTRRTR的全称的全称为“远程程发送送请求位(求位(Remote Transmission Remote Transmissi

56、on Request BITRequest BIT)”。 SRR SRR是一是一隐性位。它在性位。它在扩展格式的展格式的标准准帧RTRRTR位位置,因此代位位置,因此代替替标准准帧的的RTRRTR位。位。 因此,因此,标准准帧与与扩展展帧的冲突是通的冲突是通过标准准帧优先于先于扩展展帧这一途径得以解决的,一途径得以解决的,扩展展帧的基本的基本IDID如同如同标准准帧的的识别符。符。 IDEIDE位:位: IDEIDE的全称是的全称是“识别符符扩展位(展位(Identifier Extension BitIdentifier Extension Bit)”标准格式里的准格式里的IDEIDE位位为

57、“显性性”,而,而扩展格式里的展格式里的IDEIDE位位为“隐性性”。 控制控制场 控制控制场由由6 6个位个位组成。如成。如图4.94.9所示。所示。图图4.9 4.9 控制场示意图控制场示意图表表4.1 4.1 数据长度代码表数据长度代码表 数据字节数数据长度代码DLCDLCDLCDLC00dddd1dddr2ddrd3ddrr4drdd5drdr6drrd7drrr8rddd 标准格式里的准格式里的帧包括数据包括数据长度代度代码、IDEIDE位(位(为显性位)性位)、及保留位、及保留位r0r0。扩展格式里的展格式里的帧包括数据包括数据长度代度代码和两个保和两个保留位:留位:r1r1和和r

58、0r0。 保留位保留位:必必须发送送为显性,性,但是接收器但是接收器认可可“显性性”和和“隐性性”位的位的组合。合。 数据长度代码:数据长度代码:数据数据长度度代代码指示了数据指示了数据场里的字里的字节数数量。数据量。数据长度代度代码为4 4个位,个位,它在控制它在控制场里里发送。数据送。数据长度度代代码中数据字中数据字节数的数的编码 缩写:写:d d“显性性” r r“隐性性” 数据数据帧允允许的数据字的数据字节数:数:00,1 1,.,7 7,88。 其他的数其他的数值不允不允许使用。使用。 数据数据场 数据数据场由数据由数据帧里的里的发送数据送数据组成。它可以成。它可以为0 08 8个字

59、个字节,每字,每字节包含了包含了8 8个位,首先个位,首先发送送MSBMSB。 CRCCRC场(见图图4.104.10) CRCCRC场包括包括CRCCRC序列(序列(CRC CRC SEQUENCESEQUENCE),和),和CRCCRC界定符(界定符(CRC DELIMITERCRC DELIMITER)。)。 CRC CRC序列:序列: CRCCRC序列是由循序列是由循环冗余冗余码求得的求得的帧检查序列序列组成,最适用成,最适用于位数低于于位数低于127127位位BCHBCH码的的帧。为进行行CRCCRC计算,被除的多算,被除的多项式系数由无填充位流式系数由无填充位流给定,定,组成成这些

60、位流的成分是:些位流的成分是:帧起起始、仲裁始、仲裁场、控制、控制场、数据、数据场(假如有),而(假如有),而1515个最低位的个最低位的系数是系数是0 0。将此多。将此多项式被下面的多式被下面的多项式式发生器除(其系数以生器除(其系数以2 2为模):模): X15+X14+X10+X8+X7+X4+X3+1X15+X14+X10+X8+X7+X4+X3+1这个多个多项式除法的余数就是式除法的余数就是发送到送到总线上的上的CRCCRC序列。序列。图图4.10 CRC4.10 CRC场示意图场示意图 CRC CRC 界定符界定符 CRC CRC 序列之后是序列之后是CRC CRC 界定符,它包含

61、一个界定符,它包含一个单独的独的“隐性性”位。位。 应答答场 应答答场长度度为2 2个位,包含个位,包含应答答间隙(隙(ACK ACK SLOTSLOT)和)和应答界定符(答界定符(ACK DELIMITERACK DELIMITER)。)。见图4.114.11。图图4.11 4.11 应答场示意图应答场示意图 在在应答答场里,里,发送站送站发送两个送两个“隐性性”位。当接收器正确地位。当接收器正确地接收到有效的接收到有效的报文,接收器就会在文,接收器就会在应答答间隙(隙(ACK SLOTACK SLOT)期)期间(发送送ACKACK信号)向信号)向发送器送器发送一送一“显性性”位以示位以示应

62、答。答。 应答间隙应答间隙 所有接收到匹配所有接收到匹配CRC CRC 序列(序列(CRC SEQUENCECRC SEQUENCE)的站会在)的站会在应答答间隙(隙(ACK SLOTACK SLOT)期)期间用一用一“显性性”的位写入的位写入发送器的送器的“隐性性”位位来作出回答。来作出回答。 应答界定符应答界定符 应答界定符是答界定符是应答答场的第二个位,并且是一个必的第二个位,并且是一个必须为“隐性性”的位。因此,的位。因此,应答答间隙(隙(ACK SLOTACK SLOT)被两个)被两个“隐性性”的位所包的位所包围,也就是也就是CRCCRC界定符(界定符(CRC DELIMITERCR

63、C DELIMITER)和)和应答界定符(答界定符(ACK ACK DELIMITERDELIMITER)。)。 帧结尾尾 每一个数据每一个数据帧和和远程程帧均由一均由一标志序列定界。志序列定界。这个个标志序列由志序列由7 7个个“隐性性”的位的位组成。成。 2. 2. 远程程帧 通通过发送送远程程帧,作,作为某数据接收器的站可以初始化通某数据接收器的站可以初始化通过其其资源源节点点传送不同的数据。送不同的数据。 远程程帧也有也有标准格式和准格式和扩展格式,而且都由展格式,而且都由帧起始、仲裁起始、仲裁场、控制、控制场、CRC CRC 场、应答答场、帧结尾等尾等6 6个不同的位个不同的位场组成

64、成(如(如图图4.124.12所示)。所示)。 与数据与数据帧相反,相反,远程程帧的的RTRRTR位是位是“隐性性”的。它没有数据的。它没有数据场,数据数据长度代度代码的数的数值是不受制是不受制约的(可以的(可以标注注为容容许范范围里里0.80.8的任何数的任何数值)。此数)。此数值是相是相应于数据于数据帧的数据的数据长度代度代码。 RTRRTR位的极性表示了所位的极性表示了所发送的送的帧是一数据是一数据帧(RTRRTR位位“显性性”)还是一是一远程程帧(RTRRTR“隐性性”)。)。图图4.12 4.12 远程帧的组成远程帧的组成 3. 3.错误帧错误帧 错误帧由两个不同的场组成(如错误帧由

65、两个不同的场组成(如图4.134.13所示)。第一个所示)。第一个场用是不同站提供的用是不同站提供的错误标志(志(ERROR FLAGERROR FLAG)的叠加。第二个)的叠加。第二个场是是错误界定符。界定符。 为了能正确地了能正确地终止止错误帧,“错误被被动”的的节点要求点要求总线至至少有少有长度度为3 3个位个位时间的的总线空空闲(如果(如果“错误被被动”的接收器的接收器有局部有局部错误的的话)。因此,)。因此,总线的的载荷不荷不应为100%100%。 图图4.13 4.13 错误帧的组成错误帧的组成 错误标志错误标志 有两种形式的有两种形式的错误标志:主志:主动的的错误标志和被志和被动

66、的的错误标志。志。 1. 1. 主主动的的错误标志由志由6 6个个连续的的“显性性”位位组成。成。 2. 2. 被被动的的错误标志由志由6 6个个连续的的“隐性性”的位的位组成,除非成,除非 其他其他节点的点的“显性性”位重写。位重写。 检测到错误条件的检测到错误条件的“错误激活错误激活”的站通过发送主动错误标志的站通过发送主动错误标志指示错误。指示错误。 错误标志的形式破坏了从帧起始到错误标志的形式破坏了从帧起始到CRCCRC界定符的位填充界定符的位填充的规则,或者破坏了的规则,或者破坏了ACKACK场或帧结尾场的固定形式。所有其场或帧结尾场的固定形式。所有其他的站由此检测到错误条件并与此同

67、时开始发送错误标志。他的站由此检测到错误条件并与此同时开始发送错误标志。因此,因此,“显性显性”位(此位(此“显性显性”位可以在总线上监视)的序位可以在总线上监视)的序列导致一个结果,这个结果就是把个别站发送的不同的错误列导致一个结果,这个结果就是把个别站发送的不同的错误标志叠加在一起。这个序列的总长度最小为标志叠加在一起。这个序列的总长度最小为6 6个位,最大为个位,最大为1212个位。个位。 检测到错误条件的检测到错误条件的“错误被动错误被动”的站试图通过发送被动的站试图通过发送被动错误标志指示错误。错误标志指示错误。“错误被动错误被动”的站等待的站等待6 6个相同极性的个相同极性的连续位

68、(这连续位(这6 6个位处于被动错误标志的开始)。当这个位处于被动错误标志的开始)。当这6 6个相同个相同的位被检测到时,被动错误标志的发送就完成了。的位被检测到时,被动错误标志的发送就完成了。 错误界定符错误界定符 错误界定符包括错误界定符包括8 8个个“隐性隐性”的位。的位。 4. 4. 过载帧过载帧 过载帧包括两个位包括两个位场:过载标志和志和过载界定符(如界定符(如图4.144.14所所示)。示)。 有三种有三种过载的情况,的情况,这三种情况都会引三种情况都会引发过载标志的志的传送:送: 1.1.接收器的内部情况(此接收器接收器的内部情况(此接收器对于下一数据于下一数据帧或或远程程帧需

69、要需要有一延有一延时)。)。 2.2.在在间歇的第一和第二字歇的第一和第二字节检测到一个到一个“显性性”位。位。 3.3.如果如果CANCAN节点在点在错误界定符或界定符或过载界定符的第界定符的第8 8位(最后一位)位(最后一位)采采样到一个到一个显性位,性位,节点会点会发送一个送一个过载帧(不是(不是错误帧)。)。错误计数器不会增加。数器不会增加。 根据根据过载情况情况1 1而引而引发的的过载帧只允只允许起始于所期望的起始于所期望的间歇的歇的第一个位第一个位时间,而根据情况,而根据情况2 2和情况和情况3 3引引发的的过载帧应起始于所起始于所检测到到“显性性”位之后的位。位之后的位。 通常通

70、常为了延了延时下一个数据下一个数据帧或或远程程帧,两种,两种过载帧均可均可产生。生。 图图4.14 4.14 过载帧的组成过载帧的组成 过载标志:过载标志: 过载标志由过载标志由6 6个个“显性显性”的位组成。过载标志的所有形式和的位组成。过载标志的所有形式和主动错误标志的一样。主动错误标志的一样。 过载标志的形式破坏了间歇场的固定形式。因此,所有其过载标志的形式破坏了间歇场的固定形式。因此,所有其他的站都检测到过载条件并与此同时发出过载标志。如果有的他的站都检测到过载条件并与此同时发出过载标志。如果有的节点在间歇的第节点在间歇的第3 3个位期间检测到个位期间检测到“显性显性”位,则这个位将解

71、释位,则这个位将解释为帧的起始。为帧的起始。 过载界定符(过载界定符(Overload DelimeterOverload Delimeter) 过载界定符包括界定符包括8 8个个“隐性性”的位。的位。过载界定符的形式和界定符的形式和错误界定符的形式一界定符的形式一样。过载标志被志被传送后,站就一直送后,站就一直监视总线直到直到检测到一个从到一个从“显性性”位到位到“隐性性”位的跳位的跳变。此。此时,总线上的每一个站完成了上的每一个站完成了过载标志的志的发送,并开始同送,并开始同时发送其送其余余7 7个个“隐性性”位。位。5. 5. 帧间空空间 帧间空空间是用于隔离数据是用于隔离数据帧(或(或

72、远程程帧)与先行)与先行帧(数(数据据帧、远程程帧、错误帧、过载帧)的。而)的。而过载帧与与错误帧之之前没有前没有帧间空空间,多个,多个过载帧之之间也不用也不用帧间空空间隔离。隔离。帧间空空间包括包括间歇歇场、总线空空闲的位的位场。如果。如果“错误被被动”的的站已作站已作为前一前一报文的文的发送器送器时,则其其帧空空间除了除了间歇、歇、总线空空闲外,外,还包括称作挂起包括称作挂起传送的位送的位场。间歇间歇 间歇包括歇包括3 3个个“隐性性”的位。的位。间歇期歇期间,所有的站均不允,所有的站均不允许传送数据送数据帧或或远程程帧,唯一要做的是,唯一要做的是标示一个示一个过载条件。条件。总线空闲总线

73、空闲 总线空空闲的的时间是任意的。只要是任意的。只要总线被被认定定为空空闲,任何等待,任何等待发送送报文的站就会文的站就会访问总线。在。在发送其他送其他报文文期期间,有,有报文被挂起,文被挂起,对于于这样的的报文,其文,其传送起始于送起始于间歇歇之后的第一个位。之后的第一个位。总线上上检测到的到的“显性性”的位可被解的位可被解释为帧的起始。的起始。挂起挂起传送送 “错误被被动”的站的站发送送报文后,站就在下一文后,站就在下一报文开文开始始传送之前或送之前或总线空空闲之前之前发出出8 8个个“隐性性”的位跟随在的位跟随在间歇的歇的后面。如果与此同后面。如果与此同时另一站开始另一站开始发送送报文(

74、由另一站引起),文(由另一站引起),则此站就作此站就作为这个个报文的接收器。文的接收器。4.3.3 CAN4.3.3 CAN的位仲裁技术的位仲裁技术要对数据进行实时处理,就必须将数据快速传送,这就要对数据进行实时处理,就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时,要求快速地进行总线分配。发送数据时,要求快速地进行总线分配。 CANCAN总线以报文为单位进行数据传送,报文的优先级总线以报文为单位进行数据传送,报文的优先级结结合在合在11位标识符中,具有最低二进制数的标识符有最高的优位标识符中,具有最低

75、二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。改。总线读取中的冲突可通过位仲裁解决。如如图图4.15所示,当几个站同时发送报文时,站所示,当几个站同时发送报文时,站1的报文标的报文标识符为识符为0111110000;站;站2的报文标识符为;站的报文标识符为;站3的报文标识符的报文标识符为。为。站3报文站1报文站2报文01111110000报文标识符01001100000010011100001丢掉0100110000001001110000101001100000丢掉跟踪图

76、图4.15 4.15 位仲裁示意图位仲裁示意图所有标识符都有相同的两位所有标识符都有相同的两位01,直到第,直到第3位进行比较时,站位进行比较时,站1的报文被丢掉,因为它的第的报文被丢掉,因为它的第3位为高,而其它两个站的报文第位为高,而其它两个站的报文第3位为低。站位为低。站2和站和站3报文的报文的4、5、6位相同,直到第位相同,直到第7位时,站位时,站3的的报文才被丢失。报文才被丢失。 注意,注意,总线中的信号持中的信号持续跟踪最后跟踪最后获得得总线读取取权的站的的站的报文。在此例中,站文。在此例中,站2 2的的报文被跟踪。文被跟踪。这种非破坏性位仲裁方法种非破坏性位仲裁方法的的优点在于,

77、在网点在于,在网络最最终确定哪一个站的确定哪一个站的报文被文被传送以前,送以前,报文的起始部分已文的起始部分已经在网在网络上上传送了。所有未送了。所有未获得得总线读取取权的的站都成站都成为具有最高具有最高优先先权报文的接收站,并且不会在文的接收站,并且不会在总线再次再次空空闲前前发送送报文。文。 CANCAN具有具有较高的效率是因高的效率是因为总线仅仅被那些被那些请求求总线悬而未而未决的站利用,决的站利用,这些些请求是根据求是根据报文在整个系文在整个系统中的重要性按中的重要性按顺序序处理的。理的。这种方法在网种方法在网络负载较重重时有很多有很多优点,因点,因为总线读取的取的优先先级已被按已被按

78、顺序放在每个序放在每个报文中了,文中了,这可以保可以保证在在实时系系统中中较低的个体低的个体隐伏伏时间对于主站的可靠性,由于对于主站的可靠性,由于CANCAN协议协议执行非集中化总线控制,所有主要通信,包括总线读取执行非集中化总线控制,所有主要通信,包括总线读取( (许可许可) )控制,在系统中分几次完成。这是实现有较高可靠性的通信系控制,在系统中分几次完成。这是实现有较高可靠性的通信系统的唯一方法统的唯一方法 4.4 4.4 典型典型CANCAN总线器件及应用总线器件及应用4.4.1 4.4.1 SJA1000 CANSJA1000 CAN控制器控制器4.4.2 4.4.2 PCA82C25

79、0 CAN PCA82C250 CAN 收发器收发器4.4.3 4.4.3 CAN BUSCAN BUS节点设计举例节点设计举例4.4典型典型CAN总线器件及应用总线器件及应用4.4.1SJA1000CAN控制器控制器SJA1000SJA1000是一个独立的是一个独立的CANCAN控制器,它在汽控制器,它在汽车和普通的工和普通的工业应用上有先用上有先进的特征。由于它和的特征。由于它和PCA82C200PCA82C200在硬件和在硬件和软件都兼容,件都兼容,因此它将会替代因此它将会替代PCA82C200PCA82C200,SJA1000SJA1000有一系列先有一系列先进的功能,适的功能,适合于

80、多种合于多种应用特用特别在系在系统优化化诊断和断和维护方面非常重要。方面非常重要。 SJA1000SJA1000在在软件和引脚上都是与它的前一款件和引脚上都是与它的前一款PCA82C200PCA82C200独立独立控制器兼容的。在此基控制器兼容的。在此基础上它增加了很多新的功能,上它增加了很多新的功能,为了了实现软件兼容,件兼容,SJA1000SJA1000独立的独立的CANCAN控制器有控制器有2 2个不同的操作模式:个不同的操作模式:1 BasicCAN1 BasicCAN模式:模式:和和PCA82C200PCA82C200兼容。兼容。BasicCANBasicCAN模式是上模式是上电后默

81、后默认的操作模式,因此用的操作模式,因此用PCA82C200PCA82C200开开发的已有硬件和的已有硬件和软件,可以件,可以直接在直接在SJA1000SJA1000上使用而不用作任何修改。上使用而不用作任何修改。 2PeliCAN模式:模式:是新的操作模式。它能够处理所有是新的操作模式。它能够处理所有CAN2.0B规范的帧类型。而且它还提供一些增强功能,使规范的帧类型。而且它还提供一些增强功能,使SJA1000能应用于更宽的领域。能应用于更宽的领域。 工作模式通工作模式通过时钟分分频寄存器中的寄存器中的CANCAN模式位来模式位来选择,复,复位位时默默认模式是模式是Basic CANBasi

82、c CAN模式。模式。SJA1000控制器结构控制器结构 SJA1000SJA1000控制器可以分控制器可以分为CANCAN核心模核心模块、接口管理、接口管理逻辑、发送送缓冲器、冲器、验收收滤波器、接收波器、接收FIFOFIFO等五个功能模等五个功能模块,SJA1000SJA1000控制器控制器结构构图如如图4.164.16所示。由主控制器所示。由主控制器进行管理控行管理控制、将欲收制、将欲收发的信息(的信息(报文),文),转换为CANCAN规范的范的CANCAN帧,通,通过CANCAN收收发器,在器,在CAN BUSCAN BUS上交上交换信息。信息。 CAN BUSCAN核心模块发送缓冲器

83、接口管理逻辑接收FIFO验收滤波器主 控 制器CAN收发器图图4.16 SJA1000 4.16 SJA1000 控制器结构图控制器结构图 CAN CAN核心模块:核心模块:根据根据CANCAN规范控制范控制CANCAN帧的的发送和接收。收到一个送和接收。收到一个报文文时,CANCAN核心模核心模块将串行位流将串行位流转换成用于的并行数据,成用于的并行数据,发送一送一个个报文文时则相反。相反。 接口管理逻辑:接口管理逻辑:用于用于连接外部主控制器。外部可以是微型控制器接外部主控制器。外部可以是微型控制器或任何其他器件,或任何其他器件,SJA1000SJA1000通通过复用的地址复用的地址/ /

84、数据数据总线,与主控制器,与主控制器联系。系。 发送缓冲器:发送缓冲器:用于存用于存储一个完整的一个完整的扩展的或展的或标准的准的报文。当主控文。当主控制器初始制器初始发送送时,接口管理,接口管理逻辑会使会使CANCAN核心模核心模块从从发送送缓冲器冲器读CANCAN报文。文。 验收滤波器:验收滤波器:通通过这个可个可编程的程的滤波器能确定主控制器要接收哪波器能确定主控制器要接收哪些些报文。文。 接收接收FIFOFIFO:用于存用于存储所有收到的所有收到的报文,文,储存存报文的多少由工作模文的多少由工作模式决定,最多能存式决定,最多能存储3232个个报文。因文。因为数据超数据超载可能性被大大降

85、低,可能性被大大降低,这使用使用户能更灵活地指定中断服能更灵活地指定中断服务和中断和中断优先先级。 SJA1000SJA1000控制器功能框控制器功能框图CAN CAN 控制模控制模块SJA1000SJA1000功能框功能框图如如图4.174.17所示,由以下部分所示,由以下部分组成成 图图4.17 SJA1000 4.17 SJA1000 控制器功能框图控制器功能框图 (1)1)接口管理逻辑(接口管理逻辑(IMLIML)接口管理接口管理逻辑解解释来自来自CPU CPU 的命令,的命令,控制控制CAN CAN 寄存器的寄存器的寻址,向主控制器提供中断信息和状址,向主控制器提供中断信息和状态信息

86、。信息。由由8 8位并行地址位并行地址/ /数据数据总线和片和片选、读、写、写、时钟、使能等控制信、使能等控制信号号线与主控制与主控制CPUCPU相相连接。接。 (2)2)发送缓冲器(发送缓冲器(TXBTXB) 发送送缓冲器是冲器是CPU CPU 和和BSPBSP(位流(位流处理器)理器)之之间的接口,能的接口,能够存存储发送到送到CANCAN网网络上的完整信息,上的完整信息,缓冲器冲器长1313个字个字节,由,由CPU CPU 写入、写入、BSP BSP 读出。出。 (3)3)接收缓冲器(接收缓冲器(RXBRXB,RXFIFORXFIFO) 接收接收缓冲器是冲器是验收收滤波器和波器和CPUC

87、PU之之间的接口,用来的接口,用来储存从存从CAN CAN 总线上接收的信息,接收上接收的信息,接收缓冲器冲器(RXBRXB,1313个字个字节)作)作为接收接收FIFOFIFO(RXFIFORXFIFO,长6464个字个字节)的一个)的一个窗口,可被窗口,可被CPUCPU访问,CPUCPU在此在此FIFOFIFO的支持下可以在的支持下可以在处理信息的理信息的时候接收其它信息。候接收其它信息。 (4)4)验收滤波器(验收滤波器(ACFACF) 验收收滤波器把它其中的数据和接收波器把它其中的数据和接收的的识别码的内容相比的内容相比较,以决定是否接收信息。在,以决定是否接收信息。在纯粹的接收粹的接

88、收测试中,所有的信息都保存在中,所有的信息都保存在RXFIFORXFIFO中。中。 (5)5)位流处理器(位流处理器(BSPBSP) 位流位流处理器是一个在理器是一个在发送送缓冲器、冲器、RXFIFO RXFIFO 和和CAN CAN 总线之之间,控制数据流的程序装置,它,控制数据流的程序装置,它还在在CAN CAN 总线上上执行行错误检测、仲裁填充和、仲裁填充和错误处理。理。 (6)6)位时序逻辑(位时序逻辑(BTLBTL) 位位时序序逻辑监视串口的串口的CANCAN总线和和处理与理与总线有关的位有关的位时序。它在信息开序。它在信息开头的的总线传输时同步同步CAN CAN 总线位流(硬同步)

89、,接收信息位流(硬同步),接收信息时再次同步下一次再次同步下一次传送(送(软同同步)步)BTL BTL 还提供了可提供了可编程的程的间段来段来补偿传播延播延迟时间、相位、相位转换(例如:由于振(例如:由于振荡漂移)和定漂移)和定义采采样点和一位点和一位时间内的采内的采样次数。次数。 (7)7)错误管理逻辑(错误管理逻辑(EMLEML) EMLEML负责传送送层模模块的的错误管制。管制。它接收它接收BSP BSP 的出的出错报告。通知告。通知BSP BSP 和和IML IML 进行行错误统计。图图4.18 SJA1000 DIP284.18 SJA1000 DIP28引脚图引脚图SJA1000控

90、制器引脚控制器引脚SJA1000控制器有控制器有DIP28(塑质双列直插(塑质双列直插封装)和封装)和SO28(塑质小(塑质小型外线封装)两种形式,型外线封装)两种形式,DIP28引脚图如引脚图如图图4.18所所示。示。SJA1000引脚排列引脚排列与引脚功能见与引脚功能见表表4.2。表4.2 SJA1000引脚排列与引脚功能表符号符号引脚引脚说明说明AD7-AD02,1,28-23多路地址多路地址/数据总线数据总线ALE/AS3ALE输入信号输入信号Intel模式模式AS输入信号输入信号Motorola模式模式/CS4片选输入低电平允许访问片选输入低电平允许访问SJA1000/RD/E5微控

91、制器(微控制器(CPU)的)的/RD信号信号Intel模式或模式或E使能信号使能信号Motorola模式模式/WR6微控制器(微控制器(CPU)的)的/WR信号信号Intel模式或模式或RD/WR信号信号Motorola模式模式CLKOUT7SJA1000产生的提供给微控制器(产生的提供给微控制器(CPU)的时钟输出信号时钟信号来源于)的时钟输出信号时钟信号来源于内部振荡器且通过编程驱动时钟控制寄存器的时钟关闭位可禁止该引脚内部振荡器且通过编程驱动时钟控制寄存器的时钟关闭位可禁止该引脚VSS18接地接地XTAL19输入到振荡器放大电路外部振荡信号由此输入注输入到振荡器放大电路外部振荡信号由此输

92、入注1XTAL210振荡放大电路输出使用外部振荡信号时左开路输出注振荡放大电路输出使用外部振荡信号时左开路输出注1MODE11模式选择输入模式选择输入1=Intel模式模式0=Motorola模式模式VDD312输出驱动的输出驱动的5V电压源电压源TX013从从CAN输出驱动器输出驱动器0输出到物理线路上输出到物理线路上TX114从从CAN输出驱动器输出驱动器1输出到物理线路上输出到物理线路上VSS315输出驱动器接地输出驱动器接地/INT16中断输出用于中断微控制器(中断输出用于中断微控制器(CPU)/INT在内部中断寄存器在内部中断寄存器各位都被置位时低电平有效各位都被置位时低电平有效/I

93、NT是开漏输出且与系统中的是开漏输出且与系统中的其它其它/INT是线或的此引脚上的低电平可以把是线或的此引脚上的低电平可以把IC从睡眠模式从睡眠模式中激活中激活/RST17如如C=1F;R=50kVDD218输入比较器的输入比较器的5V电压源电压源RX0,RX119,20从物理的从物理的CAN总线输入到总线输入到SJA1000的输入比较器;支配控制的输入比较器;支配控制电平将会唤醒电平将会唤醒SJA1000的睡眠模式;如果的睡眠模式;如果RX1比比RX0的电的电平高,就读支配控制电平,反之读弱势电平,如果时钟分平高,就读支配控制电平,反之读弱势电平,如果时钟分频寄存器的频寄存器的CBP位被置位

94、就旁路位被置位就旁路CAN输入比较器以减少内输入比较器以减少内部延时(此时连有外部收发电路)这种情况下只有部延时(此时连有外部收发电路)这种情况下只有RX0是是激活的;弱势电平被认为是高,而支配电平被认为是低。激活的;弱势电平被认为是高,而支配电平被认为是低。VSS221输入比较器的接地端输入比较器的接地端VDD122逻辑电路的逻辑电路的5V电压源电压源表4.2 SJA1000引脚排列与引脚功能表4.SJA1000的特征的特征SJA1000的特征可以分成的特征可以分成3组:组:与与PCA82C200完全兼容的功能。特征有:完全兼容的功能。特征有:灵活的微处理器接口灵活的微处理器接口-允许接口大

95、多数微型处理器或微型允许接口大多数微型处理器或微型控制器。控制器。可编程的可编程的CAN输出驱动器输出驱动器-对各种物理层的分界面。对各种物理层的分界面。CAN位频率高达位频率高达1Mbit/s-SJA1000覆盖了位频率的所有覆盖了位频率的所有范围,包括高速应用。范围,包括高速应用。改良的改良的PCA82C200功能,这组功能的部份已经在功能,这组功能的部份已经在PCA82C200里实现,但是在里实现,但是在SJA1000里这些功能在速度大里这些功能在速度大小和性能方面得到了改良。特征有:小和性能方面得到了改良。特征有:CAN2.0B(passive)-SJA1000的的CAN2.0Bpas

96、sive特征允特征允许许CAN控制器接收有控制器接收有29位标识符的报文。位标识符的报文。64个字节接收个字节接收FIFO-接收接收FIFO,可以存储高达,可以存储高达21个报文,个报文,这延长了最大中断服务时间,避免了数据超载。这延长了最大中断服务时间,避免了数据超载。24MHz时钟频率时钟频率-微处理器的访问更快和微处理器的访问更快和CAN的位定时的位定时选择更多。选择更多。接收比较器旁路接收比较器旁路-减少内部延迟,由于改进的位定时编减少内部延迟,由于改进的位定时编程,使程,使CAN总线长度更长。总线长度更长。PeliCAN模式的增强功能,在模式的增强功能,在PeliCAN模式里模式里S

97、JA1000支支持一些错误分析功能,支持系统诊断,系统维护,系统优持一些错误分析功能,支持系统诊断,系统维护,系统优化。而且这个模式里也加入了对一般化。而且这个模式里也加入了对一般CPU的支持和系统自的支持和系统自身测试的功能。特征有:身测试的功能。特征有:CAN2.0Bactive-CAN2.0Bactive支持带有支持带有29位标识符的位标识符的网络扩展应用。网络扩展应用。发送缓冲器发送缓冲器-有有11位或位或29位标识符的报文的单报文发送缓位标识符的报文的单报文发送缓冲器。冲器。增强的验收滤波器增强的验收滤波器-两个验收滤波器模式,支持两个验收滤波器模式,支持11位和位和29位标识符的滤

98、波。位标识符的滤波。可读的错误计数器、可编程的出错警告界限、错误代码捕可读的错误计数器、可编程的出错警告界限、错误代码捕捉寄存器、出错中断捉寄存器、出错中断-支持错误分析,在原型阶段和在支持错误分析,在原型阶段和在正常操作期间可用于:诊断、系统维护、系统优化。正常操作期间可用于:诊断、系统维护、系统优化。仲裁丢失捕捉中断仲裁丢失捕捉中断-支持系统优化包括报文延迟时间的分支持系统优化包括报文延迟时间的分析。析。单次发送单次发送-使软件命令最小化和允许快速重载发送缓冲器。使软件命令最小化和允许快速重载发送缓冲器。仅听模式仅听模式-SJA1000能够作为一个认可的能够作为一个认可的CAN监控器操作,

99、监控器操作,可以分析可以分析CAN总线通信或进行自动位速率检测。总线通信或进行自动位速率检测。自测试模式自测试模式-支持全部支持全部CAN节点的功能自测试或在一个系节点的功能自测试或在一个系统内的自接收。统内的自接收。5.BasicCAN模式模式SJA1000是一种是一种I/O设备基于内存编址的微控制器,与设备基于内存编址的微控制器,与其它控制器(其它控制器(CPU)之间的操作是通过象)之间的操作是通过象RAM一样的片内一样的片内寄存器读写来实现的。寄存器读写来实现的。示意图如图示意图如图4.19所示。所示。 SJA1000的地址区包括控制段和信息缓冲区。信息缓冲区又的地址区包括控制段和信息缓

100、冲区。信息缓冲区又分为发送缓冲器和接收缓冲器。分为发送缓冲器和接收缓冲器。控制段在初始化时载入,是可以被编程来配置通讯参数的。控制段在初始化时载入,是可以被编程来配置通讯参数的。例如:位时序。例如:位时序。 微处理器 (CPU)CAN收发器控制寄存器SJA1000 CAN控制器命令寄存器状态寄存器中断寄存器验收代码寄存器验收屏蔽寄存器.CAN BUS图图4.19 CAN4.19 CAN总线节点示意图总线节点示意图 微控制器(微控制器(CPUCPU)通过这个段来控制)通过这个段来控制CANCAN总线上的通讯的,总线上的通讯的,在初始化时,在初始化时,CLKOUTCLKOUT信号可以被微控制器(信

101、号可以被微控制器(CPUCPU)编程指定一)编程指定一个值,应发送的信息会被写入发送缓冲器,成功接收信息后,个值,应发送的信息会被写入发送缓冲器,成功接收信息后,微控制器(微控制器(CPUCPU)从接收缓冲器中读取接收的信息,然后释放)从接收缓冲器中读取接收的信息,然后释放空间以做下一步应用。空间以做下一步应用。 微控制器(微控制器(CPUCPU)和)和SJA1000SJA1000之间状态、控制和命令信号的之间状态、控制和命令信号的交换都是在控制段中完成的。交换都是在控制段中完成的。表表4.34.3 是是BasicCAN BasicCAN 各寄存器地各寄存器地址表。址表。 在以下两种不同的模式

102、中访问寄存器是不同的。在以下两种不同的模式中访问寄存器是不同的。 复位模式:复位模式:当硬件复位或控制器掉线总线状态位时会自动当硬件复位或控制器掉线总线状态位时会自动进入复位模式。进入复位模式。 工作模式:工作模式:是通过置位控制寄存器的复位请求位激活的。是通过置位控制寄存器的复位请求位激活的。段段CANCAN地址地址寄存器名称(符号)寄存器名称(符号)控制控制0 0控制寄存器控制寄存器1 1命令寄存器命令寄存器2 2状态寄存器状态寄存器3 3中断寄存器中断寄存器4 4验收代码寄存器验收代码寄存器5 5验收屏蔽寄存器验收屏蔽寄存器6 6总线定时寄存器总线定时寄存器0 07 7总线定时寄存器总线

103、定时寄存器18 8输出控制寄存器输出控制寄存器9 9测试寄存器测试寄存器发送缓冲器发送缓冲器1010识别码识别码(ID10-3)(ID10-3)1111识别码识别码ID2-0)+RTRID2-0)+RTR和和DLCDLC12-1912-19数据字数据字1-1-节节8 8接收缓冲器接收缓冲器2020识别码识别码(ID10-3ID10-3)2121识别码识别码ID2-0)+RTRID2-0)+RTR和和DLCDLC22-2922-29数据字节数据字节1-81-830303131时钟分频器时钟分频器表表4.3 BasicCAN 4.3 BasicCAN 地址表地址表(1) (1) 控制寄存器控制寄存

104、器(CR)(CR) 控制寄存器的各位内容()是用于改变控制寄存器的各位内容()是用于改变CANCAN控制器的行为控制器的行为的,这些位可以被微控制器(的,这些位可以被微控制器(CPUCPU)设置或复位,微控制器)设置或复位,微控制器(CPUCPU)可以对控制寄存器进行读)可以对控制寄存器进行读/ /写操作。写操作。(2) (2) 命令寄存器命令寄存器(CMR)(CMR) 命令寄存器的各命令位()决定命令寄存器的各命令位()决定SJA1000SJA1000传输层上的动作,传输层上的动作,命令寄存器对微控制器(命令寄存器对微控制器(CPUCPU)来说是只写存储器。如果去读)来说是只写存储器。如果去

105、读这个地址返回值是这个地址返回值是1111111111111111,两条命令之间至少有一个内部时,两条命令之间至少有一个内部时钟周期,内部时钟的频率是外部振荡频率的钟周期,内部时钟的频率是外部振荡频率的/ /。(3) (3) 状态寄存器状态寄存器(SR)(SR) 状态寄存器的各位内容()内容反映了状态寄存器的各位内容()内容反映了SJA1000SJA1000的状态。的状态。状态寄存器对微控制器(状态寄存器对微控制器(CPUCPU)来说是只读存储器。)来说是只读存储器。 (4)中断寄存器中断寄存器(IR) 中断寄存器各位内容()能够识别中断源,当寄存器的一位中断寄存器各位内容()能够识别中断源,

106、当寄存器的一位或多位被置位时,或多位被置位时,/INT/INT(低电平有效)引脚就被激活了,寄存器(低电平有效)引脚就被激活了,寄存器被微控制器(被微控制器(CPUCPU)读过之后,所有导致)读过之后,所有导致/INT/INT引脚上的电平漂移引脚上的电平漂移的位被复位,中断寄存器对微控制器(的位被复位,中断寄存器对微控制器(CPUCPU)来说是只读存储器。)来说是只读存储器。 (5) (5) 发送缓冲器发送缓冲器 发送缓冲器是用来存储微控制器(发送缓冲器是用来存储微控制器(CPUCPU)要)要SJA1000SJA1000发送的信发送的信息的。可以分为描述符区和数据区,发送缓冲器的读息的。可以分

107、为描述符区和数据区,发送缓冲器的读/ /写只能由写只能由微控制器(微控制器(CPUCPU)在工作模式下完成,在复位模式下读出的值总)在工作模式下完成,在复位模式下读出的值总是是FFHFFH。 1)1)描述符区描述符区 识别码识别码 有有1111位(位(ID0-ID10ID0-ID10)。)。ID10ID10是最高位在仲裁过程中是最高位在仲裁过程中是最先被发送到总线上的识别码。就象信息的名字,它在接收器是最先被发送到总线上的识别码。就象信息的名字,它在接收器的验收滤波器中被用到,也在仲裁过程中决定总线访问的优先级。的验收滤波器中被用到,也在仲裁过程中决定总线访问的优先级。识别码的值越低,其优先级

108、越高。这是因为在仲裁时有许多支配识别码的值越低,其优先级越高。这是因为在仲裁时有许多支配控制位开头的字节。控制位开头的字节。 远程发送请求远程发送请求RTR RTR 如果此位置如果此位置1 1,总线将以远程帧发送数据,这,总线将以远程帧发送数据,这意味着此段中没有数据字节,尽管如此也需要同识别码相同的数据意味着此段中没有数据字节,尽管如此也需要同识别码相同的数据帧来识别正确的数据长度。帧来识别正确的数据长度。 如果如果RTRRTR位没有被置,位数据将以数据长度码规定的长度来传送。位没有被置,位数据将以数据长度码规定的长度来传送。 数据长度码数据长度码DLC DLC 信息数据区的字节数根据数据长

109、度码编制。在信息数据区的字节数根据数据长度码编制。在远程帧传送中,因为远程帧传送中,因为RTRRTR被置位,数据长度码是不被考虑的。这就被置位,数据长度码是不被考虑的。这就迫使发送迫使发送/ /接收数据字节数为接收数据字节数为0 0。总之,数据长度码必须正确设置,。总之,数据长度码必须正确设置,以避免两个以避免两个CANCAN控制器用同样的识别机制启动远程帧传送而发生总控制器用同样的识别机制启动远程帧传送而发生总线错误。数据字节数是线错误。数据字节数是0-80-8,是以如下方法计算的:,是以如下方法计算的:数据字节数数据字节数=8DLC.3+4DLC.2+2DLC.1+DLC.0=8DLC.3

110、+4DLC.2+2DLC.1+DLC.0为了保持兼容性,数据长度码不超过为了保持兼容性,数据长度码不超过8 8。如果选择的值超过。如果选择的值超过8 8,则按,则按照照DLCDLC规定的规定的8 8字节发送。字节发送。图图4.20 RXFIFO4.20 RXFIFO中信息存储示例中信息存储示例2)数据区)数据区 传送的数据字节数由数据长度码决定。发送的第一位是地址传送的数据字节数由数据长度码决定。发送的第一位是地址1212单元的数据字节单元的数据字节1 1的最高位。的最高位。 (6) (6) 接收缓冲器接收缓冲器 图图4.204.20 RXFIFORXFIFO中中信信息息存存储示例储示例用用来

111、来存存储储从从总总线线上上接接收收道道德德信信息息。接接收收缓缓冲冲器器与与发发送送缓缓冲冲器器类类似似,接接收收缓缓冲冲器器是是RXFIFORXFIFO中中可可访访问问的的部部分分,位位于于CANCAN地地址址的的20-2920-29之间。之间。识别码远程发送请求位和识别码远程发送请求位和数据长度码,同发送缓冲数据长度码,同发送缓冲器的相同,只不过是地址器的相同,只不过是地址不同。不同。 RXFIFO RXFIFO共有共有6464字节的信息空间,图字节的信息空间,图4.20 4.20 是是 RXFIFORXFIFO中信息中信息存储示例,在任何情况下,存储示例,在任何情况下,FIFOFIFO中

112、可以存储的信息数取决于各中可以存储的信息数取决于各条信息的长度,如果条信息的长度,如果RXFIFORXFIFO中没有足够的空间来存储新的信息,中没有足够的空间来存储新的信息,CANCAN控制器会产生数据溢出。数据溢出发生时,已部分写入控制器会产生数据溢出。数据溢出发生时,已部分写入RXFIFORXFIFO的当前信息将被删除。这种情况将通过状态位或数据溢的当前信息将被删除。这种情况将通过状态位或数据溢出中断反应到微控制器(出中断反应到微控制器(CPUCPU)。)。 (7)(7)验收滤波器验收滤波器 在验收滤波器的帮助下,在验收滤波器的帮助下,CANCAN控制器能够允许控制器能够允许RXFIFOR

113、XFIFO只接收只接收同识别码和验收滤波器中预设值相一致的信息。验收滤波器通同识别码和验收滤波器中预设值相一致的信息。验收滤波器通过验收代码寄存器过验收代码寄存器ACRACR和验收屏蔽寄存器和验收屏蔽寄存器AMRAMR来定义。来定义。 1 1)验收代码寄存器()验收代码寄存器(ACRACR) 复位请求位被置高(当前)时,这个寄存器是可以访问复位请求位被置高(当前)时,这个寄存器是可以访问(读(读/ /写)的,如果一条信息通过了验收滤波器,的测试而且接写)的,如果一条信息通过了验收滤波器,的测试而且接收缓冲器有空间,那么描述符和数据将被分别顺次写入收缓冲器有空间,那么描述符和数据将被分别顺次写入

114、RXFIFORXFIFO,当信息被正确的接收完毕。就会:,当信息被正确的接收完毕。就会: 接收状态位置高(满)接收状态位置高(满) 接收中断使能位置高(使能)接收中断置高(产生中断)。接收中断使能位置高(使能)接收中断置高(产生中断)。验收代码位()和信息识别码的高验收代码位()和信息识别码的高8 8位()相等,且与验收屏位()相等,且与验收屏蔽位()的相应位相或为蔽位()的相应位相或为1 1。即如果满足以下方程的描述,则。即如果满足以下方程的描述,则被接收。被接收。 ()()()()()() 1111111111111111 2 2)验收屏蔽寄存器()验收屏蔽寄存器(AMRAMR) 如果复位

115、请求位置高(当前),这个寄存器可以被访问如果复位请求位置高(当前),这个寄存器可以被访问(读(读/ /写)。验收屏蔽寄存器定义验收代码寄存器的相应位对写)。验收屏蔽寄存器定义验收代码寄存器的相应位对验收滤波器是验收滤波器是“相关的相关的”或或“无影响的无影响的”(即可为任意值)。(即可为任意值)。(8) (8) 总线定时寄存器总线定时寄存器0(BTR0)0(BTR0) 总线定时寄存器总线定时寄存器0 0,定义了波特率预设值(,定义了波特率预设值(BRPBRP)和同步)和同步跳转宽度(跳转宽度(SJWSJW)的值。复位模式有效时这个寄存器是可以)的值。复位模式有效时这个寄存器是可以被访问(读被访

116、问(读/ /写)的。在写)的。在BasicCANBasicCAN模式中总是模式中总是FFHFFH。 波特率预设值(波特率预设值(BRPBRP) CANCAN系统时钟系统时钟tSCLtSCL的周期是可编程的周期是可编程的,而且决定了相应的位时序。的,而且决定了相应的位时序。CANCAN系统时钟由如下公式计系统时钟由如下公式计算:算:tSCL=2tCLK(32BRP.5+16BRP.4+8BRP.3+4BRP.2tSCL=2tCLK(32BRP.5+16BRP.4+8BRP.3+4BRP.2+2BRP.1+BRP.0+1)+2BRP.1+BRP.0+1) 这里这里tCLK=XTALtCLK=XTA

117、L的频率周期的频率周期=1/fXTAL=1/fXTAL 同步跳转宽度同步跳转宽度(SJW) (SJW) 为了补偿在不同总线控制器的时钟振为了补偿在不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必须在当前传送的相关荡器之间的相位偏移,任何总线控制器必须在当前传送的相关信号边沿重新同步。同步跳转宽度,定义了每一位周期可以被信号边沿重新同步。同步跳转宽度,定义了每一位周期可以被重新同步,缩短或延长的时钟周期的最大数目:重新同步,缩短或延长的时钟周期的最大数目: t tSJWSJW=t=tSCSCL(2SJW.1+SJW.0+1)L(2SJW.1+SJW.0+1) (9) (9) 总线定时寄

118、存器总线定时寄存器1 1(BTR1)BTR1)) 总线定时寄存器总线定时寄存器1 1定义了每个位周期的长度、采样点的位置定义了每个位周期的长度、采样点的位置和在每个采样点的采样数目。在复位模式中,这个寄存器可以和在每个采样点的采样数目。在复位模式中,这个寄存器可以被读被读/ /写访问,在写访问,在PeliCANPeliCAN模式的工作模式中,这个寄存器是只模式的工作模式中,这个寄存器是只读的,在读的,在BasicCANBasicCAN模式中总是模式中总是FFHFFH。 (10) (10) 时间段时间段1 1(TSEG1TSEG1)和时间段()和时间段(TSEG2TSEG2) TSEG1TSEG

119、1和和TSEG2TSEG2决定了每一位的时钟数目和采样点的位置。决定了每一位的时钟数目和采样点的位置。 (11) (11) 输出控制寄存器输出控制寄存器(OCR)(OCR) 输出控制寄存器实现了由软件控制不同输出驱动配置的建立。输出控制寄存器实现了由软件控制不同输出驱动配置的建立。在复位模式中此寄存器可被读在复位模式中此寄存器可被读/ /写访问,在写访问,在PeliCANPeliCAN模式的工作模式的工作模式中这个寄存器是只读的,在模式中这个寄存器是只读的,在BasicCANBasicCAN模式中总是模式中总是FFHFFH。 当当SJA1000SJA1000在睡眠模式中时在睡眠模式中时TX0T

120、X0和和TX1TX1引脚根据输出控制寄存引脚根据输出控制寄存器的内容输出隐性的电平在复位器的内容输出隐性的电平在复位 状态复位请求状态复位请求=1=1或外部复位引脚或外部复位引脚/RST/RST被拉低时输出被拉低时输出TX0TX0和和TX1TX1悬空。发送的输出阶段可以有不同的模式。悬空。发送的输出阶段可以有不同的模式。 SJA1000SJA1000有四种输出模式,由有四种输出模式,由OCROCR的的BIT0BIT0和和BIT1BIT1设置。设置。 1).1).正常输出模式正常输出模式 正常模式中位序列(正常模式中位序列(TXDTXD)通过)通过TX0TX0和和TX1TX1送出输出驱动引脚送出

121、输出驱动引脚TX0TX0和和TX1TX1的电平取决于被的电平取决于被OCTPxOCTPx,OCTNxOCTNx(悬(悬空、上拉、下拉、推挽)编程的驱动器的特性和被空、上拉、下拉、推挽)编程的驱动器的特性和被OCPOLxOCPOLx编程编程的输出端极性。的输出端极性。 2).时钟输出模式时钟输出模式TX0引脚在这个模式中和正常模式中是相同的。但是,引脚在这个模式中和正常模式中是相同的。但是,TX1上的数据流被发送时钟(上的数据流被发送时钟(TXCLK)代替了。发送时钟)代替了。发送时钟(不翻转)的上升沿标志着一位的开始。时钟脉冲宽度是(不翻转)的上升沿标志着一位的开始。时钟脉冲宽度是1tscl。

122、3).双相输出模式双相输出模式相对于正常输出模式,这里的位代表着时间的变化和相对于正常输出模式,这里的位代表着时间的变化和触发。如果总线控制器被发送器从总线上通电退耦,则位触发。如果总线控制器被发送器从总线上通电退耦,则位流不允许含有直流元件。流不允许含有直流元件。 用用TX0TX0或或TX1TX1电平发送例如第一位在电平发送例如第一位在TX0TX0上发送第二位在上发送第二位在TX1TX1上发送第三位在上发送第三位在TX0TX0上发送等等。上发送等等。4).测试输出模式测试输出模式在测试输出模式中,在测试输出模式中,RX上的电平在下一个系统时钟的上的电平在下一个系统时钟的上升沿映射到上升沿映射

123、到TXn上,系统时钟(上,系统时钟(fOSC/2)与输出控制寄)与输出控制寄存器中定义的极性一致。存器中定义的极性一致。 12 12时钟分频寄存器时钟分频寄存器(CDR)(CDR) 时钟分频寄存器为微控制器控制时钟分频寄存器为微控制器控制CLKOUTCLKOUT的频率以及屏蔽的频率以及屏蔽CLKOUTCLKOUT引脚,而且它还控制着引脚,而且它还控制着TX1TX1上的专用接收中断脉冲、接收上的专用接收中断脉冲、接收比较通道和比较通道和 BasicCANBasicCAN模式与模式与PeliCANPeliCAN模式的选择。模式的选择。 硬件复位后寄存器的默认状态是硬件复位后寄存器的默认状态是Mot

124、orolaMotorola模式模式(0000010100000101)是)是1212分频和分频和IntelIntel模式(模式(0000000000000000)是)是2 2分频。分频。 软件复位(复位请求软件复位(复位请求/ /复位模式)时,此寄存器不受影响。复位模式)时,此寄存器不受影响。保留位(保留位(CDR.4CDR.4)总是)总是0 0。应用软件总是向此位写。应用软件总是向此位写0 0以与将来可能以与将来可能使用此使用此位的特性兼容位的特性兼容.复位模式和工作模式中一样,是可以无限制访问的。这些位复位模式和工作模式中一样,是可以无限制访问的。这些位是用来定义外部是用来定义外部CLKO

125、UT引脚上的频率的。引脚上的频率的。 时钟关闭时钟关闭 设置这一位可禁能设置这一位可禁能SJA1000SJA1000的外部的外部CLKOUTCLKOUT引脚只有引脚只有在复位模式中才可以写访问如果置位此位在复位模式中才可以写访问如果置位此位CLKOUTCLKOUT引脚在睡眠模式引脚在睡眠模式中是低而其它情况下是高中是低而其它情况下是高 RXINTENRXINTEN 此位允许此位允许TX1TX1输出用来做专用接收中断输出。当一条输出用来做专用接收中断输出。当一条已接收的信息成功的通过验收滤波器,一位时间长度的接收中断已接收的信息成功的通过验收滤波器,一位时间长度的接收中断脉冲就会在脉冲就会在TX

126、1TX1引脚输出。引脚输出。CBP CBP 置位置位CDR.6CDR.6可以中止可以中止CANCAN输入比较器,但这只可在复位模式输入比较器,但这只可在复位模式中。这主要用于中。这主要用于SJA1000SJA1000外接发送接收电路时。此时内部延时被外接发送接收电路时。此时内部延时被减少,这将会导致总线长度最大可能值的增加。如果减少,这将会导致总线长度最大可能值的增加。如果CBPCBP被置位,被置位,只有只有RX0RX0被激活。没有被使用的被激活。没有被使用的RX1RX1输入应被连接到一个确定的电输入应被连接到一个确定的电平(例如平(例如VSSVSS)。)。 CANCAN模式模式 CDR.7C

127、DR.7定义了定义了CANCAN模式。如果模式。如果CDR.7CDR.7是是0 0,CANCAN控制器控制器工作于工作于BasicCANBasicCAN模式,否则模式,否则CANCAN控制器工作于控制器工作于PeliCANPeliCAN模式,只有模式,只有在复位模式中是可以写的。在复位模式中是可以写的。 4.4.2PCA82C250CAN收发器收发器 PCA82C250PCA82C250是是CANCAN协议控制器和物理总线的接口。此器件协议控制器和物理总线的接口。此器件对总线提供差动发送能力,对对总线提供差动发送能力,对CANCAN控制器提供差动接收能力。控制器提供差动接收能力。又称为总线驱动

128、器。又称为总线驱动器。 主要特性有:主要特性有:LL完全符合完全符合ISO11898ISO11898标准;标准;l l高速率(最高达高速率(最高达1Mbps1Mbps););l l具有抗汽车环境中的瞬间干扰,保护总线能力;具有抗汽车环境中的瞬间干扰,保护总线能力;l l斜率控制,降低射频干扰(斜率控制,降低射频干扰(RFIRFI););l l差分接收器,抗宽范围的共模干扰,抗电磁干差分接收器,抗宽范围的共模干扰,抗电磁干扰(扰(EMIEMI)l l热保护;热保护;l l防止电池和地之间的发生短路;防止电池和地之间的发生短路;l l低电流待机模式;低电流待机模式;l l未上电的节点对总线无影响;

129、未上电的节点对总线无影响;l l可连接可连接110110个节点。个节点。1.1.硬件结构硬件结构 PCA82C250PCA82C250器件为器件为DIP8DIP8塑料双列直插封装,管脚图见塑料双列直插封装,管脚图见图图4.214.21,管脚功能描述见管脚功能描述见表表4.44.4,功能框图见,功能框图见图图4.224.22。片内管脚配置图见。片内管脚配置图见图图4.23 4.23 符号管脚功能描述TXD1发送数据输入GND2地VCC3电源电压RXD4接收数据输出Vref5参考电压输出CANL6低电平CAN电压输入/输出CANH7高电平CAN电压输入/输出RS8斜率电阻输入表表4.4 PCA82

130、C2504.4 PCA82C250管脚功能描述管脚功能描述图图4.21 PCA82C2504.21 PCA82C250管脚图管脚图 接收器保护电路斜率/等待驱动器基准电压图图4.22 PCA82C2504.22 PCA82C250功能框图功能框图 图图4.23 PCA82C2504.23 PCA82C250内管脚配置图内管脚配置图标记参数条件最小最大单位VCC提供电压4.5.55.5VICC提供电流-待机模式-170A1/tbit最大发送速度非归零码(NRZ)1-MbaudVcanCANH、CANL输入/输出电压8+18VVdiff差动总线电压1.53.0Vtpd传送延迟时间高速模式-50ns

131、Tamb工作环境温度40+125表表 4.5 PCA82C2504.5 PCA82C250基本性能数据基本性能数据 PCA82C250 PCA82C250基本性能基本性能数据见表数据见表 4.54.5,PCA82C50PCA82C50有一个限流电路有一个限流电路可防止发送输出级对电池电压的正端和负端短路。虽然在这种故障可防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过坏。在节点温度大约超过160160时,两个发送器输出端的极限电流时,两个发送器输出端

132、的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。ICIC的其他所有部分将继续工作。当总线短路时,热保护十分重要。的其他所有部分将继续工作。当总线短路时,热保护十分重要。CANHCANH、CANLCANL两条线也防止在汽车环境下可能发生的电气瞬变现象。两条线也防止在汽车环境下可能发生的电气瞬变现象。 管脚管脚8 8(RSRS)允许选择三种不同的工作模式:高速、待机、斜)允许选择三种不同的工作模式:高速、待机、斜率控制,率控制,如表如表4.64.6所示。所示。 在在RSRS管脚上强制条件管脚上强制条件模式模式管脚上电

133、压和电流管脚上电压和电流VRS0.75VCCVRS0.75VCC待机模式待机模式IRS|10A|IRS|10A|10AIRS10AIRS200A200A斜率控制模式斜率控制模式0.3VCCVRS0.6VCC0.3VCCVRS0.6VCCVRS0.3VCCVRS0.3VCC高速模式高速模式IRSIRS500A500A表表4.6 4.6 管脚管脚RSRS选择的三种不同工作模式选择的三种不同工作模式 高速模式:管脚高速模式:管脚8 8接地。在高速工作模式下,发送器输出接地。在高速工作模式下,发送器输出级晶体管将以尽可能快的速度打开、关闭。在这种模式下,不级晶体管将以尽可能快的速度打开、关闭。在这种模

134、式下,不采取任何措施用于限制上升斜率和下降斜率。建议使用屏蔽电采取任何措施用于限制上升斜率和下降斜率。建议使用屏蔽电缆以避免射频干扰缆以避免射频干扰RFIRFI问题。问题。 斜率控制模式:对于较低速度或较短总线长度,可使用非斜率控制模式:对于较低速度或较短总线长度,可使用非屏蔽双绞线或平行线作为总线。为降低射频干扰屏蔽双绞线或平行线作为总线。为降低射频干扰RFIRFI,应限制,应限制上升斜率和下降斜率。上升斜率和下降斜率可通过由管脚上升斜率和下降斜率。上升斜率和下降斜率可通过由管脚8 8接接至地的连接电阻进行控制。斜率正比于管脚至地的连接电阻进行控制。斜率正比于管脚8 8的电流输出。的电流输出

135、。 管脚管脚8 8如果接至高电平被,则电路进入低电流待机模式。如果接至高电平被,则电路进入低电流待机模式。在这种模式下,发送器被关闭,而接收器转至低电流。若在总在这种模式下,发送器被关闭,而接收器转至低电流。若在总线上检测到显性位(差动总线电压线上检测到显性位(差动总线电压0.9V0.9V),),RXDRXD将变为低电将变为低电平。微控制器应将收发器转回至正常工作状态(通过管脚平。微控制器应将收发器转回至正常工作状态(通过管脚8 8),),以对此信号作出响应。由于处在待机方式下,接收器是慢速的,以对此信号作出响应。由于处在待机方式下,接收器是慢速的,因此,第一个报文将被丢失。因此,第一个报文将

136、被丢失。CANCAN收发器的真值表如收发器的真值表如表表4.74.7所示。所示。 电源电源TXDTXDCANHCANHCANLCANL总线总线状态状态R RX XD D4.54.55.5V5.5V0 0高高低低显性显性0 04.54.55.5V5.5V1 1(或(或悬空)悬空)悬空悬空悬空悬空隐性隐性1 12V2V(未上(未上电)电)X X悬空悬空悬空悬空隐性隐性X X2VVCC2VVCC4.50.75V0.75VC C悬空悬空悬空悬空隐性隐性X X2VVCC2VVCC4.50.75VVRS0.75VCCCC则悬空则悬空若若VRS0.75VCVRS0.75VCC C则悬空则悬空隐性隐性X X表

137、表4.7 CAN 4.7 CAN 收发器真值表收发器真值表 PCA82C50 PCA82C50的主要电气特性:工作电压的主要电气特性:工作电压VCCVCC4.54.55.5V5.5V;环;环境温度境温度Tamb=Tamb=4040+125+125;RLRL6060;L8L810A10A;除非;除非另外说明,所有电压均以接地点(管脚另外说明,所有电压均以接地点(管脚2 2)为参考,正输入电流。)为参考,正输入电流。所有参数在所设计的环境温度范围内均可确保,但所有参数在所设计的环境温度范围内均可确保,但100100被测试被测试仅在仅在+25+25时下进行。时下进行。CAN 控制器CAN 发送器CA

138、N 总线图图4.24 CAN 4.24 CAN 收发器的应用收发器的应用 PCA82C250 PCA82C250收发器的典收发器的典型应用如图型应用如图图图4.244.24所示。所示。控制器通过串行数控制器通过串行数据输出线(据输出线(TXTX)和串行数)和串行数据输入线(据输入线(RXRX)连接到)连接到PCA82C250PCA82C250收发器。收发器。PCA82C250PCA82C250的基本应用的基本应用收发器通过有差动发送和接收功能的两个总线终端收发器通过有差动发送和接收功能的两个总线终端CANH和和CANL连接到总线电缆,输入连接到总线电缆,输入Rs用于模式控制,参考电压输用于模式

139、控制,参考电压输出出VREF的输出电压是额定的输出电压是额定VCC的的0.5倍,其中收发器的额定电倍,其中收发器的额定电源电压是源电压是5V。 协议控制器输出一个串行的发送数据流到收发器的协议控制器输出一个串行的发送数据流到收发器的TxDTxD引脚,内部的上拉功能将引脚,内部的上拉功能将TxDTxD输入设置成逻辑高电平,也就输入设置成逻辑高电平,也就是说总线输出驱动器默认是被动的,在隐性状态中,是说总线输出驱动器默认是被动的,在隐性状态中,CANHCANH和和CANLCANL输入通过典型内部阻抗是输入通过典型内部阻抗是17k17k的接收器输入网络,偏置到的接收器输入网络,偏置到2.5V2.5V

140、的额定电压,另外如果的额定电压,另外如果TxDTxD是逻辑低电平,总线的输出级将是逻辑低电平,总线的输出级将被激活,在总线电缆上产生一个显性的信号电平(被激活,在总线电缆上产生一个显性的信号电平(见图见图.24.24),),输出驱动器由一个源输出级和一个下拉输出级组成,输出驱动器由一个源输出级和一个下拉输出级组成,CANHCANH连接连接到源输出级,到源输出级,CANLCANL连接到下拉输出级,在显性状态中连接到下拉输出级,在显性状态中CAN_HCAN_H的额的额定电压是定电压是3.5V3.5V,CAN_LCAN_L是是1.5V1.5V。 如果没有一个总线节点传输一个显性位,总线处于隐如果没有

141、一个总线节点传输一个显性位,总线处于隐性状态,即网络中所有性状态,即网络中所有TxD输入是逻辑高电平。另外如果输入是逻辑高电平。另外如果一个或更多的总线节点传输一个显性位,即至少一个一个或更多的总线节点传输一个显性位,即至少一个TxD输入是逻辑低电平,则总线从隐性状态进入显性状态(线输入是逻辑低电平,则总线从隐性状态进入显性状态(线与功能)。与功能)。接收器的比较器将差动的总线信号转换成逻辑信号接收器的比较器将差动的总线信号转换成逻辑信号电平,并在电平,并在RxD输出,接收到的串行数据流传送到总线协输出,接收到的串行数据流传送到总线协议控制器译码。议控制器译码。接收器的比较器总是活动的,也就是

142、说当总线节点传输一接收器的比较器总是活动的,也就是说当总线节点传输一个报文时,它同时也监控总线,这就要求有诸如安全性和支持个报文时,它同时也监控总线,这就要求有诸如安全性和支持非破坏性逐位竞争等非破坏性逐位竞争等CAN策略,一些控制器提供一个模拟的接策略,一些控制器提供一个模拟的接收接口。收接口。 (RX0RX0,RX1RX1)RX0RX0一般需要连接到一般需要连接到RxDRxD输出输出RX1RX1需要偏置到一需要偏置到一个相应的电压电平,这可以通过个相应的电压电平,这可以通过VREFVREF输出或一个电阻电压分配输出或一个电阻电压分配器实现。器实现。 图图4.254.25中收发器直接连接到协

143、议控制器及其应用电路。如中收发器直接连接到协议控制器及其应用电路。如果需要电流隔离,光耦可以如图上一样放置,在收发器和协议果需要电流隔离,光耦可以如图上一样放置,在收发器和协议控制器之间使用光耦时,要注意选择正确的默认状态,特别是控制器之间使用光耦时,要注意选择正确的默认状态,特别是在隔开的协议控制器电路一边没有上电时。这种情况下,连接在隔开的协议控制器电路一边没有上电时。这种情况下,连接到到TxDTxD的光耦应该是的光耦应该是“暗暗”的,即的,即LEDLED关断,当光耦是断开关断,当光耦是断开/ /暗时,暗时,收发器的收发器的TxDTxD输入是逻辑高电平,可以达到自动防故障的目的,输入是逻辑

144、高电平,可以达到自动防故障的目的,使用光耦还要考虑到将使用光耦还要考虑到将RsRs模式控制输入连接到高电平有效的复模式控制输入连接到高电平有效的复位信号,例如当本地收发器电源电压在斜率上升和下降过程中位信号,例如当本地收发器电源电压在斜率上升和下降过程中没有准备好的情况下,禁能收发器。没有准备好的情况下,禁能收发器。 CAN 控制器CAN 发送器CAN 总线图图4.254.25电气隔离的应用电气隔离的应用 4.4.3CANBUS节点设计举例节点设计举例 1.01.0网络拓朴网络拓朴 CAN-busCAN-bus采用总线网络拓朴结构,在一个网络上至少需要有采用总线网络拓朴结构,在一个网络上至少需

145、要有2 2个个CAN-bus CAN-bus 节点存在。在总线的节点存在。在总线的2 2个终端,各需要安装个终端,各需要安装1 1个个120120的终端的终端电阻;如果节点数目大于电阻;如果节点数目大于2 2个,中间节点就不要求安装个,中间节点就不要求安装120120终端电终端电阻。网络拓朴示意图见阻。网络拓朴示意图见图图4.264.26。 终端电阻CAN-bus节点1CANHCANL节点2CANHCANL节点3CANHCANL节点4CANHCANL图图4.26 CAN4.26 CAN总线网络拓朴示意图总线网络拓朴示意图 虽然每一个节点根据应用系统的任务有各自控制功能,但完成虽然每一个节点根据

146、应用系统的任务有各自控制功能,但完成CAN-busCAN-bus信息交换的功能是相同的。信息交换的功能是相同的。CAN busCAN bus节点一般由微处理器、节点一般由微处理器、CANCAN控制器、控制器、CANCAN收发器三部分组成。收发器三部分组成。CAN busCAN bus节点示意图见节点示意图见图图4.274.27。微处理器微处理器CANCAN控制器控制器CANCAN收发器收发器RXTXCAN CAN 总线总线边控制装置、传感器、变送器、人机接口等CANCANBusBus节点节点图图4.27 CAN bus4.27 CAN bus节点示意图节点示意图2.2.硬件设计硬件设计 如如图

147、图4.284.28所示为所示为CAN CAN 总线系统节点硬件电路原理图。从图中总线系统节点硬件电路原理图。从图中可以看出,电路主要由三部分所构成,微控制器可以看出,电路主要由三部分所构成,微控制器89C5189C51、 独立独立CANCAN通信控制器通信控制器SJA1000SJA1000、CANCAN总线收发器总线收发器82C25082C250。微处理器。微处理器89C5189C51负责负责SJA1000SJA1000的初始化,通过控制的初始化,通过控制SJA1000SJA1000实现数据的接收实现数据的接收和发送等通信任务。和发送等通信任务。 SJA1000SJA1000的的AD0-AD7

148、AD0-AD7连接到连接到80C5180C51的的P0P0口,口,/CS/CS连接到连接到80C5180C51的的P2.7P2.7,P2.7P2.7为为0 0的的CPUCPU片外存贮器片外存贮器 地址可选中地址可选中SJA1000SJA1000,CPUCPU通过这些地址可对通过这些地址可对SJA1000SJA1000执行相执行相应的读写操作,应的读写操作,SJA1000SJA1000的的/RD/RD、/WR/WR、ALEALE分别与分别与80C5180C51的对应引的对应引脚相连,脚相连,/INT/INT接接80C5180C51的的0INT0INT,80C5180C51也可通过中断方式访问也可

149、通过中断方式访问SJA1000SJA1000。SJA1000SJA1000的的CLKOUTCLKOUT信号作为信号作为80C5180C51的时钟源,复位信号的时钟源,复位信号由外部复位电路产生。由外部复位电路产生。 图图4.28 CAN 4.28 CAN 总线系统节点硬件电路原理图总线系统节点硬件电路原理图 1 1) 电源电源 SJA1000SJA1000有三对电源引脚,用于有三对电源引脚,用于CANCAN控制器内部不同的数字控制器内部不同的数字和模拟模块。和模拟模块。VDD1/VSS1VDD1/VSS1:内部逻辑(数字):内部逻辑(数字)VDD2/VSS2VDD2/VSS2:输入比较器(模拟

150、):输入比较器(模拟)VDD3/VSS3VDD3/VSS3:输出驱动器(模拟):输出驱动器(模拟) 为了有更好的为了有更好的EMEEME性能电源应该分隔开来,例如为了抑制比性能电源应该分隔开来,例如为了抑制比较器的噪声,较器的噪声,VDD2VDD2可以用一个可以用一个RCRC滤波器来抑制噪声。滤波器来抑制噪声。2 2) 复位复位 为了使为了使SJA1000SJA1000正确复位,正确复位,CANCAN控制器的控制器的XTAL1XTAL1管脚必须连接管脚必须连接一个稳定的振荡器时钟,引脚一个稳定的振荡器时钟,引脚1717的外部复位信号要同步并被内的外部复位信号要同步并被内部延长到部延长到1515

151、个个tXTALtXTAL。这保证了。这保证了SJA1000SJA1000所有寄存器能够正确复所有寄存器能够正确复位。要注意的是必须要考虑上电后的振荡器的起振时间。位。要注意的是必须要考虑上电后的振荡器的起振时间。3)振荡器和时钟方案振荡器和时钟方案SJA1000能用片内振荡器或片外时钟源工作。另外能用片内振荡器或片外时钟源工作。另外CLKOUT管脚可被使能,向主控制器输出时钟频率。图管脚可被使能,向主控制器输出时钟频率。图4.29显显示了示了SJA1000应用的四个不同的定时原理。如果不需要应用的四个不同的定时原理。如果不需要CLKOUT信号,可以通过置位时钟信号,可以通过置位时钟分频寄存器(

152、分频寄存器(ClockOff=1ClockOff=1)关断。示例中采用的是)关断。示例中采用的是CPUCPU的时钟由的时钟由SJA1000SJA1000提供方案。提供方案。 CLKOUTCLKOUT信号的频率可以通过时钟分频寄存器改变:信号的频率可以通过时钟分频寄存器改变: fCLKOUT=fXTAL/fCLKOUT=fXTAL/时钟分频因子(时钟分频因子(1 1、2 2、4 4、6 6、8 8、1010、1212、1414)。)。 上电或硬件复位后时,钟分频因子的默认值由所选的接口模上电或硬件复位后时,钟分频因子的默认值由所选的接口模式(引脚式(引脚1111)决定。如果使用)决定。如果使用1

153、6MHz16MHz的晶振,的晶振,IntelIntel模式下模式下CLKOUTCLKOUT的频率是的频率是8MHz8MHz,MotorolaMotorola模式中复位后的时钟分频因子模式中复位后的时钟分频因子是是1212,这种情况,这种情况CLKOUTCLKOUT会产生会产生1.33MHz1.33MHz的频率。的频率。 a) 两个独立的时钟d) SJA1000和CPU由外部时钟提供b) SJA1000的时钟由CPU提供c) CPU的时钟由SJA1000提供图图4-294-29振荡器和时钟方案振荡器和时钟方案4 4) 睡眠和唤醒睡眠和唤醒 置位命令寄存器的进入睡眠位(置位命令寄存器的进入睡眠位(

154、BasicCANBasicCAN模式)或模式寄存模式)或模式寄存器(器(PeliCANPeliCAN模式)的睡眠模式位后,如果没有总线活动和中断模式)的睡眠模式位后,如果没有总线活动和中断等待,等待,SJA1000SJA1000就会进入睡眠模式,振荡器在就会进入睡眠模式,振荡器在1515个个CANCAN位时间内保位时间内保持运行状态。此时,微型控制器用持运行状态。此时,微型控制器用CLKOUTCLKOUT频率来计时,进入自己频率来计时,进入自己的低功耗模式,如果出现三个唤醒条件之中的一个,振荡器会再的低功耗模式,如果出现三个唤醒条件之中的一个,振荡器会再次启动并产生一个唤醒中断,振荡器稳定后,

155、次启动并产生一个唤醒中断,振荡器稳定后,CLKOUTCLKOUT频率被激活。频率被激活。5 5) CPUCPU接口接口 SJA1000SJA1000支持直接连接到两个微型控制器系列:支持直接连接到两个微型控制器系列:80C5180C51和和68xx68xx。通过。通过SJA1000SJA1000的的MODEMODE引脚可选择接口模式:引脚可选择接口模式:IntelIntel模式:模式: MODE=MODE=高高MotorolaMotorola模式:模式:MODE=MODE=低低 地址地址/ /数据总线和读数据总线和读/ /写控制信号在写控制信号在IntelIntel模式和模式和Motorola

156、Motorola模模式的连接如式的连接如图图4.304.30所示。所示。PhilipsPhilips基于基于80C5180C51系列的系列的8 8位微控制器位微控制器和和XAXA结构的结构的1616位微型控制器都使用位微型控制器都使用IntelIntel模式。模式。80C51类型接口SJA100080C5168类型接口68SJA1000图图4.30 SJA10004.30 SJA1000在在Intel Intel 模式和模式和Motorola Motorola 模式的连接图模式的连接图 为了和其他控制器的地址为了和其他控制器的地址/ /数据总线和控制信号匹配,必须要数据总线和控制信号匹配,必须

157、要附加逻辑电路。但是必须确保在上电期间不产生写脉冲。另一个附加逻辑电路。但是必须确保在上电期间不产生写脉冲。另一个方法在这个时候使片选输入是高电平,方法在这个时候使片选输入是高电平,CANCAN控制器无效。控制器无效。3 . 3 . 软件设计软件设计1 1) CAN BUSCAN BUS通信的总体流程通信的总体流程通过通过CAN CAN 总线建立通讯的步骤是:总线建立通讯的步骤是:系统上电后的任务:系统上电后的任务: 根据根据SJA1000SJA1000的硬件和软件连接设置主控制器;的硬件和软件连接设置主控制器; 设置设置CAN CAN 控制器用于通讯的各控制器,如模式、验收滤波器、控制器用于

158、通讯的各控制器,如模式、验收滤波器、位定时等数值。位定时等数值。在应用的主过程中的任务:在应用的主过程中的任务: 准备要发送的报文,并激活准备要发送的报文,并激活SJA1000SJA1000发送它们;发送它们; 处理处理CANCAN控制器接收的报文信息;控制器接收的报文信息; 在通讯期间对发生的错误进行处理。在通讯期间对发生的错误进行处理。 图图4.314.31 表示了程序的总体流程。表示了程序的总体流程。程序结束控制器上电复位等待至SJA1000完全上电配置控制线路(中断、复位、片选等),建立控制器和SJA1000之间的通信初始化TJS1000主程序和中断服务程序,包括与SJA1000通信控

159、制器上电复位图图4.31 4.31 通信的总体流程通信的总体流程2 2) 通信软件设计通信软件设计 CAN CAN 总线节点的通信软件设计主要包括三大部分:总线节点的通信软件设计主要包括三大部分:CAN CAN 节点节点初始化程序;报文发送程序;报文接收程序。熟悉这三部分程初始化程序;报文发送程序;报文接收程序。熟悉这三部分程序的设计,就能编写出利用序的设计,就能编写出利用CAN CAN 总线进行通信的一般应用程序。总线进行通信的一般应用程序。 如果通信任务比较复杂,还要需详细了解有关如果通信任务比较复杂,还要需详细了解有关CAN CAN 总线错误总线错误处理、总线脱离处理、接收滤波处理、波特

160、率参数设置和自动处理、总线脱离处理、接收滤波处理、波特率参数设置和自动检测以及检测以及CAN CAN 总线通信距离和节点数的计算等方面的内容。总线通信距离和节点数的计算等方面的内容。下面就初始化程序和报文发送程序的设计进行简要介绍。下面就初始化程序和报文发送程序的设计进行简要介绍。 初始化子程序初始化子程序 SJA1000 SJA1000 的初始化只有在复位模式下才可以进行。的初始化只有在复位模式下才可以进行。 初始化主要包括:工作方式的设置、接收滤波方式的设置、初始化主要包括:工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器接收屏蔽寄存器AMR AMR 和接收代码寄存器和接收代码寄存器AC

161、R ACR 的设置、波特率参的设置、波特率参数设置、和中断允许寄存器数设置、和中断允许寄存器IERIER的设置等,在完成的设置等,在完成SJA1000 SJA1000 的初的初始化设置以后,始化设置以后,JA1000 JA1000 就可以回到工作状态进行正常的通信任就可以回到工作状态进行正常的通信任务。初始化子程序框图见务。初始化子程序框图见图图4.324.32。 方式寄存器进入复位模式,对SJA1000 进行初始化时钟分频寄存器选择PeliCAN 模式或BasicCAN关闭时钟输出CLKOUT设置中断允许寄存器,禁止发送中断超载中断和错误警告中断设置接收屏蔽寄存器内容的首址,接收屏蔽寄存器赋

162、初值设置接收代码寄存器内容的首址,接收代码寄存器赋初值设置总线定时寄存器0和总线定时寄存器1设置接收缓存器FIFO 起始地址清除发送错误计数寄存器、错误代码捕捉寄存器、清除错误代码捕捉寄存器方式寄存器设置单滤波接收方式结束初始化返回工作状态初始化子程序图图4.32 4.32 初始化子程序框图初始化子程序框图 发送子程序发送子程序 发送子程序负责节点报文的发送。发送子程序框图见发送子程序负责节点报文的发送。发送子程序框图见图图4.334.33,发送时用户只需将待发送的数据按特定格式组合成,发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入一帧报文,送入SJA1000 SJA1000 发送缓存区中,然后启动发送缓存区中,然后启动SJA1000 SJA1000 发送即可。在向发送即可。在向SJA1000SJA1000发送缓存区送报文之前,必须先作发送缓存区送报文之前,必须先作一些判断一些判断 从SJA1000 读入状态寄存器值判断是否正在接收,正在接收则等待判断上次发送是否完成,未完成则等待发送完成判断发送缓冲区是否锁定,锁定则等待CPU向发送缓冲区写8 个字节帧格式报文并形成4 个字节的标识符ID0-ID3, 通过命令寄存器启动SJA1000 发送发送子程序图图4.33 4.33 发送子程序框图发送子程序框图

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号