CAN总线技术基础

上传人:206****923 文档编号:88626203 上传时间:2019-05-05 格式:PDF 页数:45 大小:1.44MB
返回 下载 相关 举报
CAN总线技术基础_第1页
第1页 / 共45页
CAN总线技术基础_第2页
第2页 / 共45页
CAN总线技术基础_第3页
第3页 / 共45页
CAN总线技术基础_第4页
第4页 / 共45页
CAN总线技术基础_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《CAN总线技术基础》由会员分享,可在线阅读,更多相关《CAN总线技术基础(45页珍藏版)》请在金锄头文库上搜索。

1、CAN总线技术基础CANCAN总线技术基础总线技术基础 CAN总线的优势及应用 数据传输速度高(相对),1Mbit/s 抗干扰能力强(差分数据线) 具有自我诊断能力(错误侦测) CAN总线的作用 CAN(“Controller Area Network”,控制器局域网) 总线的作用就是将整车中各种不同的控制器连接起来,实 现信息的可靠共享,并减少整车线束数量。可以设想一种 极端情况,如下图所示: 如果整车上所有的用电设备都 是一个独立的CAN总线节点,并且 每一个节点都向外发送自己当前的 状态,并且接受来自外部的信息, 那么整车的控制只需要一条CAN总 线控制线和电源线就可以了! 组合开关组合

2、灯具电磁阀雨刷电机仪表传感器 CAN总线的基本工作原理 跟其他总线一样,CAN总线的通信也是通过一种类似于“会议” 的机制实现的,只不过会议的过程并不是由一方(节点)主导,而 是,每一个会议参加人员都可以自由的提出会议议题(多主通信模 式),二者对应关系如下: 仲裁参会人员发言顺序 裁定 报文会议议题 ID参会人员身份 节点参会人员 局域网会议 CAN总线工作原理 请求发言发言优先权开始发言发言 反馈 参会人员 信息反馈 结束发言 帧起始仲裁开始发送0/1 错误检测 接收成功 应答 帧结尾 一帧报文 CAN总线网络结构 Physical Layer Data Link Layer Applic

3、ation Layer S A E J 1 9 3 9 信号电平 信号传输、抗干扰 位定时、同步 位编解码 总线仲裁机制 can报文帧结构 报文打包 can总线容错 网络负载率 j1939本质 如何将29ID分类 j1939组织架构 协议查找 位填充机制机制 单片机 总线控制器 总线收发器 CAN总线网络节点结构 何为CAN收发器? 按照BOSCH CAN总线标准将0或1逻辑信号转换为 标准中规定的电平,同时有反馈功能 CAN总线上的电平 CAN2.0A/B标准规定:总线空闲时,CAN_H和CAN_L上的电压为2.5V 在数据传输时,显性电平(逻辑 0):CAN_H 3.5V CAN_L 1.

4、5V 隐性电平(逻辑 1):CAN_H 2.5V CAN_L 2.5V 显性电平 隐性电平 总线支持的最大节点数目 由上表可以看出,常用的两款CAN驱动芯片 支持的总线节点数目都可以满足整车CAN节点需 求,这不是问题。 总线支持的最大节点数目 总线长度的思考 影响总线长度的主要因素: (1)CAN总线通信的应答机制,即成功接收到一帧报文的节点必须在 应答场的”应答间隙“期间发送一位“显性位”表示成功接收到一帧数据 如:通信速率为250Kbit/s,传送一个bit所需时间为:1/2501000 = 4 那么,该信号在总线上的延时时间必须小于(2?)才能保证发送节点成 功的在应答间隙期间接收到该

5、“显性电平”。 任何一根导线都可以简化为左图所示 的电路模型,可以看到,其中既有电感又 有电容,因此,电流在其中传输并不是光 速,而是需要一定的时间。 对于双绞线而言,信号在其中的传播 延时时间约为,5ns/m(典型值)。当通 信速率达到1Mbit/s时,40m的总线长度, 延时时间就达到200ns,而允许延时时间 为600ns左右,还是不能不考虑的! 注意后面同步的概念 总线长度的思考 由上面的分析可知: 总线通信速率越高,通信距离越短,对物理传输线的要求就越高,在双绞 线、屏蔽线还是其他的传输线选择上,通信速率是一个很关键的参数。 影响总线长度的其他因素: (1)信号在节点ECU内部的延时

6、时间 (2)振荡器的容差(各个节点ECU内部晶振频率的差别) 这些因素加起来就形成了CAN总线通信中总的信号延时。 CAN总线的硬件抗干扰(1) 共模电感作用:共模电压有较大的感 抗,差模电压感抗为零,相当于电感滤波。 对共模电流有较大的阻碍作用。 CAN总线的硬件抗干扰(2) 1 终端电阻 终 端 电 阻120欧姆 并非固定不 变,这跟使 用的导线有 关! ISO11898的推荐值 何为CAN控制器? CAN控制器主要实现了两部分的功能,1:数据链路层 的全部功能;2:物理层的位定时功能 也就是BOSCH CAN 2.0A/B中规定的部分 总线长度的限制位定时、同步 CAN总线控制器按照时间

7、片的概念将每一个bit的时间划分成了n个时间片。 这样做的目的就是为了实现CAN总线的同步、保证不同节点间时间的一致性。 如:晶振和CAN CLOCK 频率均为4MHz,那么每 一个时间片最小时间就 为0.25s,通信波特率 为250Kbit/s,那么每一 个bit的时间就为4s, 因此,每一个bit的总的 时间片数目就为16。当 然可以进一步提高晶振 频率,使得每一个bit被 划分的更加细致。 CAN2.0A/B将每一个bit的时间划分成了4段,同步段、传 输段、相位段1和相位段2,每一段占用一定的时间片 同步的概念 假设两个节点的时间完全一致(即晶振完全相同,没有误 差),信号经过T延时后

8、到达节点B,此时节点B就以当前时 刻为基准进行位定时,因为二者的时钟完全一致,因此,节 点B的采样不会出现任何问题,即节点B总是能采样到A节点 发出的总线电平。硬同步只发送在一个帧的起始。 T 采样点 采样点 同步的概念 假设传输没有延时,但是节点A和节点B的晶振有误差, 那么由上图可以看出,虽然硬同步已经实现,但是节点B的 采样点却不能够采样到当前时刻的数据,而是上一时刻的 数据,即节点B的时间跑的慢了。那么CAN总线控制器如 何 处 理 该 问 题 呢 ? 通 过 重 同 步 的 机 制 实 现 。 采样点 采样点 同步的概念 CAN总线控制器通过在一帧数据的传输过程进行重同步保证一帧报文

9、 的顺利传输,重同步的本质为:增加或减少自己的位定时时间(如:增加 12个时间片)来和总线上的其他节点同步。 为了实现重同步,CAN总线控制器必须要通过位填充实现, 即:如果CAN总线控制器发现报文里有5个连续相同的位,就 会在第六位填充一位相反的数据位(该数据位只是为了总线安 全才考虑的),同步发生在隐性电平(逻辑1)向显性电平(逻 辑0)转换的跳变沿。 Can总线报文帧结构 CAN总线共有四种报文:1 数据帧2 远程帧 3 错误帧4 过载帧 数据帧定义 帧起始:1bit。从图中看出,在帧间隙后由逻辑1(至少两个bit)向 逻 辑 0 的 跳 变 就 被 认 为 是 帧 起 始 , 它 的

10、作 用 就 是 为 了 硬 同 步 。 仲裁场:由29bit的ID标示符和IDE、SRR、RTR位构成。IDE位用 于标示该帧是扩展帧(29bit ID)还是标准帧(11bit ID);SRR在扩展 帧 中 为 一 隐 性 位 ; R T R 位 为 远 程 帧 标 志 位 。 由上图可以看出,11bit的基本ID首先被发送(ID28ID18),然后 在发送18bit的扩展ID(ID17ID0) CAN总线的仲裁机制 要点 (1)首先发送ID的29位,优先级问题 (2)总线电平由谁决定 CAN总线总裁机制的实现也就实现了CAN总线的多主机 模式,总线节点不存在谁主谁从的概念 友情提示:我们可以

11、人为的给29位的ID赋予一定的意义从而 区分不同的报文类型! 报文滤波 报文滤波可以通过软件编程的方式实现,也可以通过硬件(芯片内部的 报文滤波寄存器)实现,但二者实现的原理是相同的,如下图所示: 数据帧中的其他场作用 控制场:包括两位保留位(必须为0),和数据长度位(DLC0DLC3) 数据场:包括最多8个字节的数据 CRC场:是一种算法,对数据进行CRC校验,共15bit,其后跟了一位CRC界 定符为1(隐性电平) 应答场:为两个1(总线电平为低电平),其中一位为应答间隙,另一位为应 答界定符。成功接收到数据的节点必须发送一位显性位(总线电平为高电平) 来应答该发送节点,必须注意:该显性位

12、必须在应答间隙期间, 即1bit的时间内将总线电平拉高。 帧结尾:7个连续的1组成(隐性电平) CAN总线的侦听机制支持仲裁及错 误检查 帧听就是发出 去的数据再采 样回来,比较 采样回来的数 据是否和发出 的数据一致! CAN总线错误检测 CAN总线通过如下几个方面进行错误检测 (1)当节点赢得总线发送权后,会对总线电平进行检测,当发送的电平和检 测到的总线电平不一致时,认为错误 (2)出现6个连续相同的电平时,认为是填充错误 (3)CRC错误,接收数据的节点按照与发送数据的节点相同的方法计算数据 的CRC校验值,如果接收节点的计算结果与数据包中CRC场的数据不一致, 认为是CRC错误 (4

13、)应答错误,在应答场如果没有监控到一个显性电平,那么就认定一个 应答错误 (5)固定位错误,例如:CRC界定符等,其电平是固定的,当监控到该电平 不相符时,认定一个错误 另:总线同步机制也是CAN总线容错的一种方式 注意:通过上面5种错误检测机制,发送节点和接收节点均可 以检测到总线上的错误,并通过错误的累加来实现总线节点的 关闭等操作 CAN总线负载率计算 计算例子: 假设CAN总线波特率为250Kbit/s,总线报文发送时间间隔为10ms, 报文为数据帧(8个字节数据),那么10ms内总线能够支持的最大报文数 量为多少? 第一步:根据通信波特率计算10ms总共可以发送多少bit (2500

14、00/1000)*10 = 2500bit 第二步:计算最长的一帧报文有多少个bit 1sof + 29id + 1ide + 1rtr + 1srr + 2r + 4dlc + 8*8data + 16crc + 2ack + 7eof = 128bit 第三步:计算10ms内可以支持的报文数目 2500/128 19 由上面的计算可知,当10ms间隔的报文数量超过19条时,就会 出现丢帧,总线饱和。 计算报文数量也是设计CAN网络所要考虑的,可以查阅相关文献 看负载率在多少时合适! SAE J1939的组织架构 SAE J1939主要包括下面的协议文档 (1)SAE J1939-11 规定

15、了J1939协议通信的物理层(CAN总线物理 层) (2)SAE J1939-21 规定了J1939协议的数据链路层 (3)SAE J1939-31 规定了J1939协议的网络层(设计网关ECU时 遵守) (4)SAE J1939-71 规定了J1939协议的整车应用层 (5)SAE J1939-73规定了J1939协议的诊断层(诊断仪诊断协议) 实际上J1939协议是以CAN总线通信为数据传输的基础,并在此 基础上建立的更高一层的通信协议。其中J1939-21介绍了如何将 29Bit的ID进行划分定义,J1939-71更加具体的对整车信息进行分类 定义。 SAE J1939-21 发动机、变

16、速箱、ABS等系统包含了大量的消息,如何将这些整车消 息进行分类,方便通信? J1939-21/71的本质就是通过将29bit的ID赋予一定的含义,从而实 现整车信息的分类管理。 J1939-21的ID分类方法 s o f i d 28 i d 27 i d 26 i d 25 i d 24 i d 23 i d 22 i d 21 i d 20 i d 19 i d 18 s r r i d e i d 17 i d 16 i d 15 i d 14 i d 13 i d 12 i d 11 i d 10 i d 9 i d 8 i d 7 i d 6 i d 5 i d 4 i d 3 i d 2 i d 1 i d 0 r t r r 0 r 1 p3 p2 p1 r 1 d p pf8 pf3 s o f s r r i d e p p f f 2 1 ps8 ps1sa8 sa1 r t r r 0 r 1 SAE J1939采用CAN2.0B扩展帧! 从上图可以看出,J1939将29bit的ID

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

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