CAN总线协议讲解.pdf
《CAN总线协议讲解.pdf》由会员分享,可在线阅读,更多相关《CAN总线协议讲解.pdf(49页珍藏版)》请在冰豆网上搜索。
Rev.2.00发行:
2012年2月20日CAN?
RCJ05B0027-0100应用手册Page1of48CAN入门书1.概要本资料是面向CAN总线初学者的CAN入门书。
对CAN是什么、CAN的特征、标准规格下的位置分布等、CAN的概要及CAN的协议进行了说明。
2.使用注意事项本资料对博世(BOSCH)公司所提出的CAN概要及协议进行了归纳,可作为实际应用中的参考资料。
对于具有CAN功能的产品不承担任何责任。
目录1.概要.12.使用注意事项.13.CAN是什么?
.23.1CAN的应用示例.33.2总线拓扑图.44.CAN的特点.55.错误.65.1错误状态的种类.65.2错误计数值.86.CAN协议的基本概念.97.CAN协议及标准规格.127.1ISO标准化的CAN协议.127.2ISO11898和ISO11519-2的不同点.137.3CAN和标准规格.178.CAN协议.188.1帧的种类.188.2数据帧.218.3遥控帧.288.4错误帧.308.5过载帧.318.6帧间隔.328.7优先级的决定.338.8位填充.368.9错误的种类.378.10错误帧的输出.398.11位时序.408.12取得同步的方法.428.13硬件同步.438.14再同步.448.15调整同步的规则.45应用手册Page2of483.CAN是什么?
CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。
在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。
由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。
为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。
此后,CAN通过ISO11898及ISO11519进行了标准化,现在在欧洲已是汽车网络的标准协议。
现在,CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
图1是车载网络的构想示意图。
CAN等通信协议的开发,使多种LAN通过网关进行数据交换得以实现。
CAN125kbpsCAN125kbpsCAN500kbps马达马达空调子网LIN2.419.2kbps仪表板仪表板遥控门锁遥控门锁车身部信息部MOST1394引爆管传感器安全部子网Safe-by-Wire(150kbps)车门车门制动子网FlexRay*2(5Mbps)胎压故障诊断部CAN(规格)诊断工具网关开关开关转向发动机传动部自动变速箱CAN500kbps前大灯窗电动组合灯自适应前灯自适应前灯音视频MD/CD碟盒底盘部白线检测雷达ITS部发动机交通信息导航马达电子防盗系统气囊控制乘客检测自适应巡航图1.车载网络构想【注】*1ISO:
InternationalOrganizationforStandardization(国际标准化组织)*2FlexRayTM为戴姆勒克莱斯勒公司注册商标。
应用手册Page3of483.1CAN的应用示例图2为CAN的应用示例ClimateControlClusterEngineSeatDoorRoof?
Motorcontrol?
Centerunit?
Clustercontrol?
Wipercontrol?
Winkercontrol?
Caraudio?
Lightcontrol?
Columnswitch?
Automobilephone?
Sensor?
Motorcontrol?
Passengerdetection?
Switchcontrol?
Sidemirror?
Doorlock?
Powerwindow?
Doorswitch?
Rainsensor?
Sunroof:
CANbus:
500kbps:
CANbus:
125kbps:
LINbus:
19.2kbps/9.6kbps:
CANunit/LINmasterunits:
CANunit/LINmasterunits:
LINslaveunit图2.CAN的应用示例应用手册Page4of483.2总线拓扑图CAN控制器根据两根线上的电位差来判断总线电平。
总线电平分为显性电平和隐性电平,二者必居其一。
发送方通过使总线电平发生变化,将消息发送给接收方。
图3是CAN的连接示意图收发器收发器收发器收发器CANHCANLRxDTxDRxDTxDCANHCANLABSSASCANControllerCPUETMECMDDMPDMRxDTxDCAN125kbpsCAN500kbps图3.CAN连接图应用手册Page5of484.CAN的特点CAN协议具有以下特点。
(1)多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。
最先访问总线的单元可获得发送权(CSMA/CA方式*1)。
多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权。
(2)消息的发送在CAN协议中,所有的消息都以固定的格式发送。
总线空闲时,所有与总线相连的单元都可以开始发送新消息。
两个以上的单元同时开始发送消息时,根据标识符(Identifier以下称为ID)决定优先级。
ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。
仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
(3)系统的柔软性与总线相连的单元没有类似于“地址”的信息。
因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
(4)通信速度根据整个网络的规模,可设定适合的通信速度。
在同一网络中,所有单元必须设定成统一的通信速度。
即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。
不同网络间则可以有不同的通信速度。
(5)远程数据请求可通过发送“遥控帧”请求其他单元发送数据。
(6)错误检测功能错误通知功能错误恢复功能所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。
强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。
(7)故障封闭CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。
由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
(8)连接CAN总线是可同时连接多个单元的总线。
可连接的单元总数理论上是没有限制的。
但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。
降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
【注】*1CSMA/CA:
CarrierSenseMultipleAccess/CollisionAvoidance应用手册Page6of485.错误5.1错误状态的种类单元始终处于3种状态之一。
(1)主动错误状态主动错误状态是可以正常参加总线通信的状态。
处于主动错误状态的单元检测出错误时,输出主动错误标志。
(2)被动错误状态被动错误状态是易引起错误的状态。
处于被动错误状态的单元虽能参加总线通信,但为不妨碍其它单元通信,接收时不能积极地发送错误通知。
处于被动错误状态的单元即使检测出错误,而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的。
处于被动错误状态的单元检测出错误时,输出被动错误标志。
另外,处于被动错误状态的单元在发送结束后不能马上再次开始发送。
在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8个位的隐性位)。
(3)总线关闭态总线关闭态是不能参加总线上通信的状态。
信息的接收和发送均被禁止。
这些状态依靠发送错误计数和接收错误计数来管理,根据计数值决定进入何种状态。
错误状态和计数值的关系如表1及图4所示。
表1.错误状态和计数值单元错误状态发送错误计数值(TEC)接收错误计数值(REC)主动错误状态0127且0127被动错误状态128255或128255总线关闭态256应用手册Page7of48初始状态主动错误状态总线关闭态被动错误状态在总线上检测到128次连续的11个位的隐性位TEC127且REC127TEC127或REC127TEC:
发送错误计数值REC:
接收错误计数值TEC255图4.单元的错误状态应用手册Page8of485.2错误计数值发送错误计数值和接收错误计数值根据一定的条件发生变化。
错误计数值的变动条件如表2所示。
一次数据的接收和发送可能同时满足多个条件。
错误计数器在错误标志的第一个位出现的时间点上开始计数。
表2.错误计数值的变动条件接受和发送错误计数值的变动条件发送错误计数值(TEC)接收错误计数值(REC)1接收单元检测出错误时。
例外:
接收单元在发送错误标志或过载标志中检测出“位错误”时,接收错误计数值不增加。
+12接收单元在发送完错误标志后检测到的第一个位为显性电平时。
+83发送单元在输出错误标志时。
+84发送单元在发送主动错误标志或过载标志时,检测出位错误。
+85接收单元在发送主动错误标志或过载标志时,检测出位错误。
+86各单元从主动错误标志、过载标志的最开始检测出连续14个位的显性位时。
之后,每检测出连续的8个位的显性位时。
发送时+8接收时+87检测出在被动错误标志后追加的连续8个位的显性位时。
发送时+8接收时+88发送单元正常发送数据结束时(返回ACK且到帧结束也未检测出错误时)。
1TEC=0时09接收单元正常接收数据结束时(到CRC未检测出错误且正常返回ACK时)。
1REC127时-1REC=0时0REC127时设REC=12710处于总线关闭态的单元,检测到128次连续11个位的隐性位。
TEC=0REC=0应用手册Page9of486.CAN协议的基本概念CAN协议如表3所示涵盖了ISO规定的OSI*1基本参照模型中的传输层、数据链路层及物理层。
CAN协议中关于ISO/OSI基本参照模型中的传输层、数据链路层及物理层,具体有哪些定义如图5所示。
表3.ISO/OSI基本参照模型ISO/OSI基本参照模型各层定义的主要项目7层:
应用层层:
应用层由实际应用程序提供可利用的服务。
6层:
表示层层:
表示层进行数据表现形式的转换。
如:
文字设定、数据压缩、加密等的控制5层:
会话层层:
会话层为建立会话式的通信,控制数据正确地接收和发送。
4层:
传输层层:
传输层控制数据传输的顺序、传送错误的恢复等,保证通信的品质。
如:
错误修正、再传输控制。
软件控制3层:
网络层层:
网络层进行数据传送的路由选择或中继。
如:
单元间的数据交换、地址管理。
2层:
数据链路层层:
数据链路层将物理层收到的信号(位序列)组成有意义的数据,提供传输错误控制等数据传输控制流程。
如:
访问的方法、数据的形式。
通信方式、连接控制方式、同步方式、检错方式。
应答方式、通信方式、包(帧)的构成。
位的调制方式(包括位时序条件)。
硬件控制1