can总线协议概述:
CAN是Controller Area Network的缩写,由德国博世公司开发;CAN经过ISO11891以及ISO11519进行了规范化;
CAN总线的特色:
1、多主操控
在总线空闲时,一切单元都能够开端发送音讯(多主操控);
最早拜访总线的单元取得发送权(区分方法:“CSMA/CA方法”);
多个单元一起开端发送时,发送高优先级ID音讯的单元可取得发送权;
2、音讯的发送
在can协议中,一切音讯都是以固定格局发送。总线空闲时,一切与总线相连的单元都能够开端发送新音讯。两个以上的单元一起开端发送音讯时,依据标识符(ID)决议优先级。ID并不是表明发送音讯的意图地址,而是表明拜访总线的音讯优先级。两个以上的单元一起开端发送音讯时,对各音讯ID的每个位进行逐一裁定比较,裁定取胜(优先级最高)的单元继续发送音讯,裁定失利的单元则马上中止发送而进行接纳作业;
3、体系的柔软性
与总线相连的单元没有类似于“地址”的信息,因此在总线上添加单元时,衔接在总线上的其他单元的软硬件及应用层都不需求改动;
4、通讯速度
依据整个网络的规划,可设定合适的通讯速度。最高1Mbps;
在同一网络中,一切单元有必要设定成一致通讯速度,即便有一个单元的的通讯速度与其他的不一样,此单元也会输出过错信号,阻碍整个网络的通讯,不同网络间则能够有不同的通讯速度;
5、长途数据恳求
可经过发送“遥控帧”,恳求其他单元发送数据;
6、过错检测功用(过错告诉功用、过错康复功用)
一切的单元都能够检测过错(过错检测功用)
检测出过错的单元会当即一起告诉其他一切单元(过错告诉功用)
正在产生音讯的单元一旦检测出过错,会强制完毕当时的发送。强制完毕发送的单元会不断重复地从头发送此音讯直到成功发送(过错康复功用);
7、毛病关闭
CAN能够判别出过错的类型是总线上暂时的数据过错(如外部噪声)仍是继续数据过错(如单元内部毛病、驱动器过错)。由此功用,当总线上发送继续过错时,或许引起此毛病的单元从总线上阻隔出去;
8、衔接
CAN总线是可一起衔接多个单元的总线。可衔接的单元总数理论上是没有约束的。但实际上可衔接的单元数受总线上的时间延迟及电气负载的约束。下降通讯速度,可衔接的单元数添加,进步通讯速度,则可衔接的单元数削减;
CAN总线协议:
CAN总线涵盖了OSI规则的传输层、数据链路层、物理层;
物理层:
决议了位编码方法(NRZ编码,6个位刺进填充位),位时序(位时序、位的采样)、同步方法(依据同步段ss完结同步,并具有再同步功用);但详细的说:信号电平,通讯速度,采样点,驱动器和总线的电气特色,衔接器的形状都没有界说,需求用户自行确认;
传输层:
界说了再发送操控;
数据链路层:
数据链路层分LLC(逻辑链路操控 Logic Link control)子层 和MAC(前言拜访操控Media access control)子层;
LLC子层,履行接纳音讯挑选(点到点、播送、组播)、过载告诉(告诉接纳预备尚为完结)、过错康复功用(再次发送);
MAC层: 进行数据帧化(4种帧类型),衔接方法操控(竞赛方法),音讯裁定(ID裁定),毛病分散按捺(自动识别暂时过错和继续过错,排除毛病节点),过错告诉(CRC过错、填充位过错、位过错、ACK过错、格局过错),过错检测,应对方法(ACK, NACK),通讯方法(半双工)等设置;
MAC子层是CAN协议的中心,数据链路层的功用是将物理层的信号组成有意义的音讯,并供给传送过错操控等传输操控的流程。数据链路层的功用通常是在CAN操控器的硬件中履行;
帧的概念:
数据帧:用于发送单元想接纳单元传送数据的帧;
遥控帧(恳求帧): 用于接纳单元向具有相同ID的发送单元恳求数据的帧;
过错帧:用于当检测出过错时向其它单元告诉过错的帧;
过载帧:用于接纳单元告诉 其没有做好接纳预备的帧;
帧距离:用于将数据帧及遥控帧与前面的帧别离开来的帧;没有实际意义
数据帧和遥控帧 都有规范格局和扩展格局两种格局。规范格局有11个位的标识符Identifier,今后称ID),扩展格局有29个位的ID;
数据帧:
(1)、帧开端(规范、扩展格局相同)
表明帧开端的段,1个位的显性位;
(2)、总线上的电平有显性和隐性电平两种;
总线上履行逻辑上的线“与”时,显性电平的逻辑值为“0”, 隐性电平为“1”;
”显性“具有“优先”的意味,只需有一个单元输出显性电平,总线上即为显性电平。而且,“隐性”具有“容纳”的意味,只要一切的单元都输出隐性电平,总线上才为隐性电平;
(3)、裁定段
表明数据的优先级的段
规范格局和扩展格局在此的构成有所不同;
ID:
规范格局的ID有11个位,从ID28到ID18被顺次发送,制止高7位都为隐性;
扩展格局有29个位;根本ID从ID28到ID18,扩展ID由ID17到ID0;
遥控帧:
遥控帧没有数据段;没有数据段的数据帧与遥控帧的差异:RTR位;