《CAN技术简介》PPT课件.ppt
CAN总线的基本工作原理,CAN总线的基本工作原理,跟其他总线一样,CAN总线的通信也是通过一种类似于“会议”,的机制实现的,只不过会议的过程并不是由一方(节点)主导,而是,每一个会议参加人员都可以自由的提出会议议题(多主通信模式),二者对应关系如下:,CAN总线工作原理,请求发言,发言优先权,开始发言,发言,参会人员信息反馈,反馈结束发言,帧起始,仲裁,开始发送,0/1,接收成功应答,错误检测帧结尾一帧报文,CAN总线网络结构,Data Link LayerPhysical Layer,Application Layer,SAEJ1939,信号传输、抗干扰位定时、同步位编解码,如何将29ID分类j1939组织架构,协议查找,总线仲裁机制位填充机制机制can报文帧结构报文打包can总线容错网络负载率信号电平,单片机,总线控制器总线收发器,CAN总线网络节点结构j1939本质,何为CAN收发器?,按照BOSCH CAN总线标准将0或1逻辑信号转换为,标准中规定的电平,同时有反馈功能,CAN总线上的电平CAN2.0A/B标准规定:总线空闲时,CAN_H和CAN_L上的电压为2.5V,在数据传输时,显性电平(逻辑 0):CAN_H 3.5V隐性电平(逻辑 1):CAN_H 2.5V,CAN_L 1.5VCAN_L 2.5V显性电平隐性电平,CAN总线的硬件抗干扰(1),共模电感作用:共模电压有较大的感,抗,差模电压感抗为零,相当于电感滤波。对共模电流有较大的阻碍作用。,CAN总线的硬件抗干扰(2),1 终端电阻,终 端 电,阻 120 欧姆,并非固定不变,这跟使用的导线有关!,ISO11898的推荐值,数据链路层,何为CAN控制器?,CAN控制器主要实现了两部分的功能,1:数据链路层的全部功能;2:物理层的位定时功能,也就是BOSCH CAN 2.0A/B中规定的部分,总线长度的限制位定时、同步,CAN总线控制器按照时间片的概念将每一个bit的时间划分成了n个时间片。这样做的目的就是为了实现CAN总线的同步、保证不同节点间时间的一致性。,如:晶振和CAN CLOCK频率均为4MHz,那么每,一个时间片最小时间就,为0.25s,通信波特率为250Kbit/s,那么每一个bit的时间就为4s,因此,每一个bit 的总的时间片数目就为16。当,然可以进一步提高晶振,频率,使得每一个bit 被,划分的更加细致。,CAN2.0A/B将每一个bit的时间划分成了4段,同步段、传,输段、相位段1和相位段2,每一段占用一定的时间片,同步的概念,假设两个节点的时间完全一致(即晶振完全相同,没有误,差),信号经过T延时后到达节点B,此时节点B就以当前时,刻为基准进行位定时,因为二者的时钟完全一致,因此,节,点B的采样不会出现任何问题,即节点B总是能采样到A节点,发出的总线电平。硬同步只发送在一个帧的起始。,T,采样点,采样点,同步的概念,假设传输没有延时,但是节点A和节点B的晶振有误差,那么由上图可以看出,虽然硬同步已经实现,但是节点B的,采样点却不能够采样到当前时刻的数据,而是上一时刻的,数据,即节点B的时间跑的慢了。那么CAN总线控制器如,何处理该问题呢?通过重同步的机制实现。,采样点,采样点,同步的概念,CAN总线控制器通过在一帧数据的传输过程进行重同步保证一帧报文,的顺利传输,重同步的本质为:增加或减少自己的位定时时间(如:增加,12个时间片)来和总线上的其他节点同步。,为了实现重同步,CAN总线控制器必须要通过位填充实现,即:如果CAN总线控制器发现报文里有5个连续相同的位,就,会在第六位填充一位相反的数据位(该数据位只是为了总线安,全才考虑的),同步发生在隐性电平(逻辑1)向显性电平(逻辑0)转换的跳变沿。,Can总线报文帧结构CAN总线共有四种报文:1 数据帧 2 远程帧,3 错误帧,4 过载帧,数据帧定义,帧起始:1bit。从图中看出,在帧间隙后由逻辑1(至少两个bit)向逻辑 0 的跳变就被认为是帧起始,它的作用就是为了硬同步。仲裁场:由29bit的ID标示符和IDE、SRR、RTR位构成。IDE位用于标示该帧是扩展帧(29bit ID)还是标准帧(11bit ID);SRR在扩展帧 中 为 一 隐 性 位;R T R 位 为 远 程 帧 标 志 位。由上图可以看出,11bit的基本ID首先被发送(ID28ID18),然后,在发送18bit的扩展ID(ID17ID0),CAN总线协议讲解.pdf,CAN总线的仲裁机制,要点(1)首先发送ID的29位,优先级问题(2)总线电平由谁决定,CAN总线总裁机制的实现也就实现了CAN总线的多主机,模式,总线节点不存在谁主谁从的概念,友情提示:我们可以人为的给29位的ID赋予一定的意义从而,区分不同的报文类型!,CAN总线的侦听机制支持仲裁及错,误检查,帧听就是发出去的数据再采样回来,比较采样回来的数据是否和发出的数据一致!,CAN总线错误检测,CAN总线通过如下几个方面进行错误检测,(1)当节点赢得总线发送权后,会对总线电平进行检测,当发送的电平和检,测到的总线电平不一致时,认为错误,(2)出现6个连续相同的电平时,认为是填充错误,(3)CRC错误,接收数据的节点按照与发送数据的节点相同的方法计算数据的CRC校验值,如果接收节点的计算结果与数据包中CRC场的数据不一致,认为是CRC错误,(4)应答错误,在应答场如果没有监控到一个显性电平,那么就认定一个,应答错误,(5)固定位错误,例如:CRC界定符等,其电平是固定的,当监控到该电平,不相符时,认定一个错误,另:总线同步机制也是CAN总线容错的一种方式,注意:通过上面5种错误检测机制,发送节点和接收节点均可,以检测到总线上的错误,并通过错误的累加来实现总线节点的关闭等操作,