汽车CAN总线协议(可编辑) .doc

上传人:仙人指路1688 文档编号:2958757 上传时间:2023-03-05 格式:DOC 页数:92 大小:111.50KB
返回 下载 相关 举报
汽车CAN总线协议(可编辑) .doc_第1页
第1页 / 共92页
汽车CAN总线协议(可编辑) .doc_第2页
第2页 / 共92页
汽车CAN总线协议(可编辑) .doc_第3页
第3页 / 共92页
汽车CAN总线协议(可编辑) .doc_第4页
第4页 / 共92页
汽车CAN总线协议(可编辑) .doc_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《汽车CAN总线协议(可编辑) .doc》由会员分享,可在线阅读,更多相关《汽车CAN总线协议(可编辑) .doc(92页珍藏版)》请在三一办公上搜索。

1、汽车CAN总线协议 CANbus 规范 V20 版本 引言 随着串行通讯进入更多应用领域因此在一些应用里需要对通讯功能的报文识别位提出分配标准 化的要求原先的地址范围由 11 个识别位定义如果地址范围扩大则这些应用就可以更好地由 CAN 来 实现 因此引入了第二种报文格式扩展格式的概念其定义的地址范围更宽由29 位定义系统设计 者将从考虑定义良好的结构命名方案中得到解放有的用户不需要由扩展格式提供的识别符范围可以继 续沿用常规的 11 位识别符范围标准格式在这种情况下可以采用市场上可用的 CAN 仪器或使 用兼容这两种模式的新控制器类仪器 为了区别标准格式和扩展格式按 CAN 12 规范定义使

2、用了 CAN 报文格式的第一个保留位因为 CAN12 定义的信息格式相当于标准格式因此仍然是有效的此外由于扩展格式已经定义因此网络 中会共存标准格式和扩展格式的报文 这本 CAN 规范技术规范由两部分组成 A 部分CAN 的报文格式说明按 CAN12 规范定义 B 部分标准格式和扩展格式的说明 为了兼容 CAN20要求 CAN 的仪器应兼容A 部分或 B 部分 注意 只要没有用到扩展格式那么根据 A 部分或 CAN 旧版本设计的仪器可以和根据 B 部分设计的仪器 相互间进行通讯 - 1 - A 部分 目录 1介绍3 2 基本概念3 3 报文传输6 31 帧类型 6 com 数据帧6 com 远

3、程帧9 com 错误帧10 com 过载帧 11 com 帧间空间 11 32 发送器接收器的定义12 4 报文校验12 5 编码13 6 错误处理13 61 错误检测 13 62 错误标定 13 7 故障界定13 8 位定时要求15 9 增加 CAN 振荡器容差 16 91 协议修改 17 - 2 - 1介绍 控制器局域网CAN 为串行通讯协议能有效地支持具有很高安全等级的分布实时控制CAN 的应 用范围很广从高速的网络到低价位的多路接线都可以使用 CAN在汽车电子行业里使用 CAN 连接发 动机控制单元传感器防刹车系统等等其传输速度可达 1 Mbits同时可以将 CAN 安装在卡车本 体的

4、电子控制系统里诸如车灯组电气车窗等等用以代替接线配线装置 这本技术规范的目的是为了在任何两个 CAN 仪器之间建立兼容性可是兼容性有不同的方面比如 电气特性和数据转换的解释为了达到设计透明度以及实现柔韧性CAN 被细分为以下不同的层次 CAN 对象层the object layer CAN 传输层the transfer layer 物理层the phyical layer 对象层和传输层包括所有由 ISOOSI 模型定义的数据链路层的服务和功能对象层的作用范围包括 查找被发送的报文 确定由实际要使用的传输层接收哪一个报文 为应用层相关硬件提供接口 在这里定义对象处理较为灵活传输层的作用主要是

5、传送规则也就是控制帧结构执行仲裁错 误检测出错标定故障界定总线上什么时候开始发送新报文及什么时候开始接收报文均在传输层里 确定位定时的一些普通功能也可以看作是传输层的一部分理所当然传输层的修改是受到限制的 物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输当然同一网络内物 理层对于所有的节点必须是相同的尽管如此在选择物理层方面还是很自由的 这本技术规范的目的是定义传输层并定义 CAN 协议于周围各层当中所发挥的作用所具有的意义 2 基本概念 CAN 具有以下的属性 报文的优先权 保证延迟时间 设置灵活 时间同步的多点接收 系统宽数据的连贯性 多主机 错误检测和标定 只要总线一处

6、于空闲就自动将破坏的报文重新传输 将节点的暂时性错误和永久性错误区分开来并且可以自动关闭错误的节点 - 3 - CAN 节点的层结构Layered Structure od a CAN node 应用层 对象层 - 报文滤波 - 报文和状态的处理 - 传输层 - - 故障界定 - - 错误检测和标定 - - 报文校验 - - 应答 - - 仲裁 - - 报文分帧 - - 传输速率和定时 物理层 - 信号电平和位表示 - 传输媒体 物理层定义实际信号的传输方法本技术规范没有定义物理层以便允许根据它们的应用对发 送媒体和信号电平进行优化 传输层是 CAN 协议的核心它把接收到的报文提供给对象层以及

7、接收来自对象层的报文传输 层负责位定时及同步报文分帧仲裁应答错误检测和标定故障界定 对象层的功能是报文滤波以及状态和报文的处理 这本技术规范的目的是为了定义传输层及定义 CAN 协议在周围各层中所发挥的作用所具有的意义 报文Messages 总线上的信息以不同的固定报文格式发送但长度受限见第 3 节的报文传输当总线空闲时任何 连接的单元都可以开始发送新的报文 信息路由Information Routing 在 CAN 系统里节点不使用任何关于系统配置的信息比如站地址以下是几个重要的概念 系统灵活性不需要改变任何节点的应用层及相关的软件或硬件就可以在 CAN 网络中直接添加 节点 报文路由报文的

8、内容由识别符命名识别符不指出报文的目的地但解释数据的含义因此 网络上所有的节点可以通过报文滤波确定是否应对该数据做出反应 多播由于引入了报文滤波的概念任何数目的节点都可以接收报文并同时对此报文做出反应 数据连贯性在 CAN 网络内可以确保报文同时被所有的节点接收或同时不被接收因此 系统的数据连贯性是通过多播和错误处理的原理实现的 位速率Bit rate 不同的系统CAN 的速度不同可是在一给定的系统里位速率是唯一的并且是固定的 优先权Priorities 在总线访问期间识别符定义一静态的报文优先权 - 4 - 远程数据请求Remote Data Request 通过发送远程帧需要数据的节点可以

9、请求另一节点发送相应的数据帧数据帧和相应的远程帧是由 相同的识别符IDENTIFIER命名的 多主机Multimaster 总线空闲时任何单元都可以开始传送报文具有较高优先权报文的单元可以获得总线访问权 仲裁Arbitration 只要总线空闲任何单元都可以开始发送报文如果 2 个或 2 个以上的单元同时开始传送报文那么 就会有总线访问冲突通过使用识别符的位形式仲裁可以解决这个冲突仲裁的机制确保信息和时间均不 会损失当具有相同识别符的数据帧和远程帧同时初始化时数据帧优先于远程帧仲裁期间每一个发 送器都对发送位的电平与被监控的总线电平进行比较如果电平相同则这个单元可以继续发送如果发 送的是一隐性

10、电平而监控视到一显性电平见总线值那么该单元就失去了仲裁必须退出发送 状态 安全性Safety 为了获得最安全的数据发送CAN 的每一个节点均采取了强有力的措施以进行错误检测错误标定及 错误自检 错误检测Error Detection 为了检测错误必须采取以下措施 - 监视发送器对发送位的电平与被监控的总线电平进行比较 - 循环冗余检查 - 位填充 - 报文格式检查 错误检测的执行Performance of Error Detection 错误检测的机制要具有以下的属性 - 检测到所有的全局错误 - 检测到发送器所有的局部错误 - 可以检测到一报文里多达 5 个任意分布的错误 - 检测到一报文

11、里长度低于 15 位的突发性错误 - 检测到一报文里任一奇数个的错误 对于没有被检测到的错误报文其残余的错误可能性概率低于报文错误率 47 10 11 错误标定和恢复时间Error Sinalling and Recovery Time 任何检测到错误的节点会标志出已损坏的报文此报文会失效并将自动地开始重新传送如果不再出 现新错误的话从检测到错误到下一报文的传送开始为止恢复时间最多为 29 个位的时间 故障界定Fault Confinement CAN 节点能够把永久故障和短暂扰动区分开来永久故障的节点会被关闭 连接Connections CAN 串行通讯链路是可以连接许多单元的总线理论上可连

12、接无数多的单元但由于实际上受延迟 时间以及或者总线线路上电气负载的影响连接单元的数量是有限的 - 5 - 单通道Single Channel 总线是由单一进行双向位信号传送的通道组成通过此通道可以获得数据的再同步信息要使此通道 实现通讯有许多的方法可以采用如使用单芯线加上接地2 条差分线光缆等等这本技术规范 不限制这些实现方法的使用即未定义物理层 总线值Bus value 总线可以具有两种互补的逻辑值之一显性或隐性 显性位和隐性位同时传送时总 线的结果值为显性比如在执行总线的线与时逻辑 0 代表显性等级逻辑 1 代表隐性 等级本技术规范不给出表示这些逻辑电平的物理状态比如电压光 应答Ackno

13、wledgment 所有的接收器检查报文的连贯性对于连贯的报文接收器应答对于不连贯的报文接收器作出标 志 睡眠模式唤醒Sleep Mode Wake-up 为了减少系统电源的功率消耗可以将 CAN 器件设为睡眠模式以便停止内部活动及断开与总线驱动器 的连接CAN 器件可由总线激活或系统内部状态而被唤醒唤醒时虽然传输层要等待一段时间使系统 振荡器稳定然后还要等待一段时间直到与总线活动同步通过检查 11 个连续的隐性的位但在总 线驱动器被重新设置为总线在线之前内部运行已重新开始为了唤醒系统上正处于睡眠模式的其他 节点可以使用一特殊的唤醒报文此报文具有专门的最低等级的识别符rrr rrrd rrrr

14、 r 隐性 d 显性 3报文传输 31 帧类型 报文传输由以下 4 个不同的帧类型所表示和控制 - 数据帧数据帧携带数据从发送器至接收器 - 远程帧总线单元发出远程帧请求发送具有同一识别符的数据帧 - 错误帧任何单元检测到一总线错误就发出错误帧 - 过载帧过载帧用以在先行的和后续的数据帧或远程帧之间提供一附加的延时 数据帧或远程帧通过帧间空间与前述的各帧分开 com 数据帧 数据帧由 7 个不同的位场组成 帧起始仲裁场控制场数据场CRC 场应答场帧结尾数据场的长度可以为 0 帧起始 它标志数据帧和远程帧的起始由一个单独的显性位组成 只在总线空闲参见总线空闲时才允许站开始发送信号所有的站必须同步

15、于首先开始 发送信息的站的帧起始前沿参见硬同步 - 6 - Interframe Interframe DATA FRAME Space Space or Overload Frame Start of Frame Arbitration Field Cont rol Field Data Field CRC F ield ACK F ield End of Frame 仲裁场 仲裁场包括识别符和远程发送请求位RTR 识别符识别符的长度为 11 位这些位的发送顺序是从 ID-10 到 ID-0最低位是 ID-0最高的 7 位 ID-10 到 ID-4必须不能全是隐性 RTR 位该位在数据帧里必

16、须为显性而在远程帧里必须为隐性 Interframe St art ARBI TRATION FIELD Cont rol Space of Frame Fie ld RT R B it Identifier 控制场 控制场由 6 个位组成包括数据长度代码和两个将来作为扩展用的保留位所发送的保留位必须为显 性接收器接收所有由显性和隐性组合在一起的位 数据长度代码数据长度代码指示了数据场中字节数量数据长度代码为 4 个位在控制场里被发送 Arbitration CONTROL FIELD Data Fi eld Fi eld or r1 r0 DLC3 DLC2 DLC1 DLC 0 CRC F

17、ield reserved Data Lengt h Code bits - 7 - 数据长度代码中数据字节数的编码DATA LENGTH CODE 缩写 d显性 r隐性 Number of Data Data Leng th Code Bytes DLC3 DLC2 DLC1 DLC0 0 d d d d 1 d d d r 2 d d r d 3 d d r r 4 d r d d 5 d r d r 6 d r r d 7 d r r r 8 r d d d 数据帧允许的数据字节数 0178 其他的数值不允许使用 数据场 数据场由数据帧中的发送数据组成它可以为 08 个字节每字节包含了

18、8 个位首先发送 MSB CRC 场 CRC 场包括 CRC 序列CRC SEQUENCE 其后是CRC 界定符CRC DELIMITER Data CRC F IELD Ack or Field Co ntrol Fie ld CRC Del imiter CRC S equence CRC 序列由循环冗余码求得的帧检查序列最适用于位数低于 127 位BCH 码的帧为进行 CRC 计算被除的多项式系数由无填充位流给定组成这些位流的成分是帧起始仲裁场控制场数据场 假如有而15 个最低位的系数是 0 将此多项式被下面的多项式发生器除其系数以2 为模 15 14 10 8 7 4 3 X X X

19、X X X X 1 这个多项式除法的余数就是发送到总线上的 CRC 序列CRC SEQUENCE 为了实现这个功能 可以使用 15 位的位移寄存器 CRC_RG 140如果用 NXTBIT 标记指示位流的下一位它由从帧的起 始到数据场末尾都由无填充的位序列给定 CRC 序列CRC SEQUENCE 的计算如下 CRC_RG 0 初始化移位寄存器 REPEAT - 8 - CRCNXT NXTBIT EXOR CRC_RG 14 CRC_RG 141 CRC_RG 130 寄存器左移 1 位 CRC_RG 0 0 IF CRCNXT THEN CRC_RG 140 CRC_RG 140 EXOR

20、 4599hex ENDIF UNTIL CRC 序列开始或存在一个错误条件 在传送接收数据场的最后一位以后CRC_RG 包含有 CRC 序列CRC 序列之后是 CRC 界定符它 包含一个单独的隐性位 应答场 应答场长度为 2 个位包含应答间隙ACK SLOT 和应答界定符ACK DELIMITER 在应答场 里发送站发送两个隐性位当接收器正确地接收到有效的报文接收器就会在应答间隙ACK SLOT 期间发送 ACK 信号向发送器发送一显性的位以示应答 CRC ACK F IELD End of Field Fr ame ACK Delimiter ACK Sl ot 应答间隙所有接收到匹配 C

21、RC 序列CRC SEQUENCE 的站会在应答间隙ACK SLOT 期间 用一显性的位写入发送器的隐性位来作出回答 ACK 界定符ACK 界定符是 ACK 场的第二个位并且是一个必须为隐性的位因此应答间隙 ACK SLOT 被两个隐性的位所包围也就是CRC 界定符CRC DELIMITER 和ACK 界定符ACK DELIMITER 帧结尾 每一个数据帧和远程帧均由一标志序列界定这个标志序列由 7 个隐性位组成 com 远程帧 通过发送远程帧作为某数据接收器的站通过其资源节点对不同的数据传送进行初始化设置 远程帧由 6 个不同的位场组成 帧起始仲裁场控制场CRC 场应答场帧末尾 与数据帧相反

22、远程帧的 RTR 位是隐性的它没有数据场数据长度代码的数值是不受制约的可 以标注为容许范围里08 的任何数值此数值是相应于数据帧的数据长度代码 - 9 - REMOTE FR AME Inter Inter Frame Frame Space Space or Overload Frame Start of Frame Arbitration Field Con trol Field CRC F ield ACK F ield End of Frame RTR 位的极性表示了所发送的帧是一数据帧RTR 位显性还是一远程帧RTR 隐性 com 错误帧 错误帧由两个不同的场组成第一个场用作为不同站

23、提供的错误标志ERROR FLAG的叠加第二 个场是错误界定符 Data ERRO R F RAME Interframe Frame Space or Error Flag Overload Frame superposition of Error Flags Error Del imiter 为了能正确地终止错误帧一错误被动的节点要求总线至少有长度为 3 个位时间的总线空闲如 果错误被动的接收器有本地错误的话因此总线的载荷不应为 100 有两种形式的错误标志主动错误标志Active error flag 和被动错误标志Passive error flag 主动错误标志由 6 个连续的显性位

24、组成被动错误标志由 6 个连续的隐性的位组成除非被其他 节点的显性位重写 检测到错误条件的错误主动的站通过发送主动错误标志以指示错误错误标志的形式破坏了从 帧起始到 CRC 界定符的位填充规则参见编码或者破坏了应答场或帧末尾场的固定形式所有 其他的站由此检测到错误条件并与此同时开始发送错误标志因此显性位此显性位可以在总 线上监视的序列导致一个结果这个结果就是把各个单独站发送的不同的错误标志叠加在一起这个顺 序的总长度最小为 6 个位最大为 12 个位 检测到错误条件的错误被动的站试图通过发送被动错误标志以指示错误错误被动的站等 待 6 个相同极性的连续位这 6 个位处于被动错误标志的开始当这

25、6 个相同的位被检测到时被动错 误标志的发送就完成了 - 10 - 错误界定符包括 8 个隐性的位 错误标志传送了以后每一站就发送隐性的位并一直监视总线直到检测出一个隐性的位为止 然后就开始发送 7 位以上的隐性位 com 过载帧 过载帧包括两个位场过载标志和过载界定符 有两种过载条件都会导致过载标志的传送 1 接收器的内部条件此接收器对于下一数据帧或远程帧需要有一延时 2 间歇场期间检测到一显性位 由过载条件 1 而引发的过载帧只允许起始于所期望的间歇场的第一个位时间开始而由过载条件 2 引 发的过载帧应起始于所检测到显性位之后的位 End of Frame or OVER LOAD FRAME Inter Error Del imiter or Fr ame Overload Del imiter Space or Overload Overload

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号