can基础知识

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/6/241CAN基础2015-10-132020/6/2421:概要CAN起源CAN发展沿革CAN特点2:数据链路层帧结构仲裁机制位时间和同步3:物理层硬件要求总线电平传输线收发器2020/6/243概要•什么是CAN?CAN全称为:controllerareanetwork,即控制器局域网,是一种串行数据通信协议,最早由BOSCH公司推出,被设计作为汽车环境中的微控制器通讯,在车载各电子控制单元ECU之间交换信息,形成汽车电子控制网络。2020/6/244概要—CAN起源—未使用can技术传统的汽车线束连接如图所示:据统计,对于传统高级轿车,用普通线束进行连接,线束总长可达2Km,并且该数字每10年增长1倍,导致整车空间更加拮据、线束重量增加、线束易干涉。例:1994年第一代AudiA8:15个控制单元就可控制该车的所有功能;而2003年型的AudiA8车使用的控制单元数目就增长了四倍。大家参照下图的连接方式,想象一下,这将是如何一个错综杂乱的线束系统。2020/6/245概要—CAN起源—未使用can技术•传感器类电子控制单元•如图,每种信息通过独立的线束进行传递、交换;但是随着客户需求,功能增多,那么线的数量和控制单元插脚增多2020/6/246CANBus在车辆上应用的原因:1.日益增多的电子控制单元;排放及环保的要求;导致了电子控制单元间需要实时的、正确的进行大量的信息交换2.减少线束数量减轻重量,降低成本减少连接插头尺寸减小控制单元尺寸,增大安装空间概要—CAN起源—使用can技术2020/6/247概要—CAN起源—使用can技术2020/6/248概要—CAN起源—使用can技术2020/6/2492020/6/2410概要—CAN起源—使用can技术2020/6/2411•1983年,Bosch开始研究车上网络技术•1986年,Bosch在SAE大会公布CAN协议•1987年,Intel和Philips先后推出CAN控制器芯片•1991年,Bosch颁布CAN2.0技术规范,CAN2.0包括A和B两个部分•1991年,CAN最先在BenzS系列轿车上实现•1993年,ISO颁布CAN国际标准ISO-11898•1994年,SAE颁布基于CAN的J1939标准•……•未来,CAN将被FlexRay所取代概要—CAN发展沿革2020/6/2412概要—CAN特点(1)多主控制和仲裁机制•在总线空闲时,所有的单元都可开始发送消息(多主控制)。•最先访问总线的单元可获得发送权。•多个单元同时开始发送时,进行仲裁,优先级高的单元先发送(标识符=ID=优先级,ID越小,优先级越高)。(2)消息的发送•CAN数据传输类似于“电话会议”。•一个电话用户(控制单元)将数据“讲”入网络中,其他用户通过网络“接听”这个数据。•对这个数据感兴趣的用户就会接收该数据,而其他用户则选择忽略。•在CAN协议中,所有的消息都以固定的格式发送。•在发送报文过程中进行“回读”,判断送出的位与回读的位是否一致2020/6/2413(3)错误检测功能、错误通知功能、错误恢复功能•所有的单元都可以检测错误。错误检测功能•检测出错误的单元会立即同时错误通知功能通知其他所有单元。•正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会反复地重新发送。直到成功发送为止。错误恢复功能概要—CAN特点2020/6/2414(4)总线关闭•当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。(5)通信速度和节点数•根据整个网络规划,在0—500Kbps范围内,可设定合适的通信速度。•在同一网段中,所有单元的通信速度必须是统一的。否则,会妨碍整个网络的通信。•不同网段间通信速度可以不同。•协议自身对节点数量没有限制,但受总线时间延迟及电气负载的限制,总线上可连接的节点数有限。降低通信速度,可连接的节点数就多;提高通信速度,可连接的节点数就少。概要—CAN总线特点2020/6/2415数据链路层—帧类型协议中帧共有5种类型:•数据帧、远程帧、错误帧、过载帧、帧间隔•帧都是由0101……等的二进制数字组合而成的:0:代表显性、覆盖。1:代表隐性、被覆盖。后续图中,D代表显性;R代表隐性。类型功能数据帧发送节点向总线/接收节点发送数据的帧远程帧接收节点向其他节点请求相关数据的帧,注这一来一回的两个帧ID是相同的错误帧节点检测到错误后发送错误信息过载帧在前后2帧之间加的一段延时;基本不使用了帧间隔将前后2帧分开2020/6/2416数据链路层—帧结构—数据帧、远程帧•对于数据帧、远程帧来说,都存在两种结构,标准结构和扩展结构。数据帧结构2020/6/2417数据链路层—帧结构—数据帧、远程帧远程帧结构2020/6/2418数据链路层—帧类型—数据帧、远程帧标准格式(位)扩展格式(位)帧起始11仲裁段12=11+132=29+3控制段6=4+26=4+2数据段0--640--64CRC16=15+116=15+1ACK22EOF77总长44--10864--1282020/6/2419帧起始:SOF。为1个显性位。表示帧开始的段。仲裁段:表示优先级的段。该段的值(ID)越小,优先级越高。标准格式:该段为11位。扩展格式:该段为29位。仲裁段:RTR用于区分数据帧和远程帧,1位。=0,数据帧;=1,远程帧。仲裁段:SRR恒为1。1位。控制段:IDE用于区分标准格式和扩展格式,1位。=0,标准格式,11位ID;=1,扩展格式,29位ID。控制段:r0恒为0。1位。r1恒为0。1位。控制段:DLC用于表示该帧数据段的字节数,4位,但是却定义了字节数为0-8之间。数据链路层—帧结构—数据帧、远程帧2020/6/2420数据段:用于表示数据的长度,为DLC的大小*8,0-64位。对于远程帧,该段可有可无。CRC段:一般称为CRC校验段,15位。是检查帧传输错误的。发送节点根据帧起始、仲裁段、控制段、数据段的值生成一个CRC值。接收节点也根据这样的方法计算一个CRC值。然后,进行比较。一致,帧发送成功。不一致,则报CRC错误,之前接收的数据都丢弃。CRC段:CRC界定符。1位。数据链路层—帧结构—数据帧、远程帧2020/6/2421ACK段:共2位。主要是用来确认是否正确接收。ACK槽:1位。发送节点的这位为隐性位;接收节点正确接收报文了,将该位改写成显性位。发送节点监听这位为显性位时,便知报文被正确接收了。ACK界定符:1位。恒为隐性。帧结束:EOF。7个隐性位组成。表示该帧结束。数据链路层—帧结构—数据帧、远程帧2020/6/2422数据链路层—帧结构—错误帧错误帧:总线上各个节点检测出位错误、填充错误、CRC错误、ACK错误、格式错误都发出错误帧通知错误。由错误标志和错误界定符构成。类型检测节点发送时间位错误发送节点错误标志在错误发生后的下一位发送填充错误接收节点错误标志在错误发生后的下一位发送格式错误发送节点、接收节点错误标志在错误发生后的下一位发送ACK错误发送节点错误标志在错误发生后的下一位发送CRC错误接收节点错误标志在ACK界定符后发送2020/6/2423数据链路层—帧结构—错误帧•位错误:节点检测到总线的位与自身送出的位数值不同。•位填充错误:从帧起始至CRC序列,如果连续的5位电平一致的话,则在第6位自动填充一个反向电平。检察是否遵循填充规则。•CRC错误:节点计算的CRC序列与接收到的CRC序列不同。•ACK错误:发送节点在ACK位期间未检测到“显性”位。•格式错误:固定格式位场(如CRC界定符、ACK界定符、帧结束等)含有一个或更多非法位。2020/6/2424数据链路层—帧结构—错误帧由错误标志和错误界定符构成。2020/6/2425错误标志:错误标志包括主动错误标志和被动错误标志两种。•主动错误标志:6个位的显性位•被动错误标志:6个位的隐性位注:错误标志违背“位填充规则”,其他节点也会发送错误标志。故错误标志在6-12之间。错误界定符•错误界定符由8个位的隐性位构成。•节点发送错误标志后,发送隐性位,直至检测到总线上出现隐性位,之后发送7个剩余隐性位。数据链路层—帧结构—错误帧2020/6/2426数据链路层—帧结构—错误帧总线上运行的节点有三种状态:主动错误•可以正常的进行总线通信•错误产生时,发送主动错误标志(6个连续显性位)被动错误•可以正常的进行总线通信•错误产生时,发送被动错误标志(6个连续隐性位)总线关闭•被从总线上隔离出去了,不能收发任何报文2020/6/2427数据链路层—帧结构—错误帧•每个节点都含有REC(接收错误计数器)和TEC(发送错误计数器)•当接收错误产生时,REC增加;正确接收到数据帧,REC减少。•当发送错误产生时,TEC增加;正确发送了数据帧,TEC减少。•REC、TEC的数值会引发节点状态改变特例:如果总线上只有一个节点,该节点发送数据帧后得不到应答,TEC最大只能计到128,即节点只会进入被动错误状态而不会进入总线关闭状态.2020/6/2428•帧间隔是用于分隔数据帧和远程帧的帧。数据帧和远程帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、远程帧、错误帧、过载帧)分开。•过载帧和错误帧前不能插入帧间隔。•3个位的隐性位。数据链路层—帧结构—帧间隔2020/6/2429数据链路层—帧结构—过载帧过载帧由过载标志和过载界定符构成。过载标志•6个位的显性位。•过载标志的构成与主动错误标志的构成相同。过载界定符•8个位的隐性位。•过载界定符的构成与错误界定符的构成相同。2020/6/2430•在can网络中,为了避免总线碰撞,引入了“非破坏性逐位仲裁机制”。每一个报文都被分派了标识符。标识符=ID=优先级•标识符都是由0101……等的二进制数字组合而成的:0:代表显性、覆盖。1:代表隐性、被覆盖。•在总线空闲时,最先开始发送消息的单元获得发送权。数据链路层—仲裁机制2020/6/2431•多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。即ID越小,优先级越高•仲裁失败的节点,进入监听状态,检测到总线上有连续的11个隐性位后,然后又发报文,进行新一轮仲裁。数据链路层—仲裁机制2020/6/2432数据链路层—仲裁机制•如图所示,A、B、C、D四个节点在不同的时刻分别往总线上发送ID为5、7、3、6的消息。请画出消息在总线上出现的顺序(假设每帧报文的传输时间占3格)。2020/6/2433数据链路层—仲裁机制2020/6/2434数据链路层—位填充•位填充:发送节点发送5个连续的相同电平位后,在位流中自动插入一个电平相反的位。填充区域为SOF—CRC。•清除填充:接收节点对相同电平位的数量进行检测,从位流中将填充位去掉2020/6/2435数据链路层—位时间和同步一个位可分为4个段,每个段又由若干个时间份额(Tq)构成,总共8-25个Tq:•同步段(SS)•传播时间段(PTS)•相位缓冲段1(PBS1)•相位缓冲段2(PBS2)2020/6/2436数据链路层—位时间和同步采样点是读取总线电平,并将读到的电平作为位值的点。位置在PBS1结束处。同步段传播段相位缓冲段1相位缓冲段2位时间采样点时间段1(TSEG1)时间段2(TSEG2)2020/6/2437数据链路层—位时间和同步段名称段的作用Tq数同步段SS多个连接在总线上的单元通过此段实现时序调整,同步进行接收和发送的工作。由隐性电平到显性电平的边沿或由显性电平到隐性电平边沿最好出现在此段中。1固定8--25传播时间段PTS用于补偿网络上的物理延迟的段。网络的物理延迟指发送单元的输出延迟、总线上信号的传播延迟、接收单元的输入延迟。这个段的长度为以上各延迟时间的和的2倍。延迟:时钟误差、传输路径引起的1--8相位缓冲段1PBS1由于各单元以各自独立的时钟工作,细微的时钟误差会累积起来,PBS段可用于补偿此误差。通过重同步对相位缓冲段1加长和相位缓冲段2缩短。通

1 / 55
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功