GB/T 41588.4-2022 全文(道路车辆 CAN 第 4 部分:时间触发通信)
GB/T 41588.4-2022 全文(道路车辆 CAN 第 4 部分:时间触发通信)
标准信息:GB/T 41588.4-2022《道路车辆 控制器局域网(CAN)第 4 部分:时间触发通信》,采标 ISO 11898-4。 全文定位:完整正文站内查阅,章节结构与表格已保留(自动提取整理)。
← 返回标准查阅 ICS 43. 020 CCS T 35 中 华 人 民 共 和 国 国 家 标 准 GB/T 41588. 4—2022/ISO 11898-4:2004 道路车辆 控制器局域网(CAN) 第 4 部分 : 时间触发通信 Road vehicles—Controllerarea network(CAN) — Part4:Time-triggered communication (ISO 11898-4:2004,IDT)) 2022-07-11发布 2023-02-01实施 国家市场监督管理总局 国家标准化管理委员会 发 布 GB/T 41588. 4—2022/ISO 11898-4:2004 前 言 本文件按照 GB/T 1. 1—2020《标准化工作导则 第 1部分 :标准化文件的结构和起草规则》的规定 起草 。 本文件是 GB/T 41588《道路车辆 控制器局域网(CAN)》的第 4 部分 。GB/T 41588 已经发布了 以下部分 : — 第 1部分 :数据链路层和物理信令 ; — 第 2部分 :高速媒介访问单元 ; — 第 3部分 :低速容错 、媒介相关接 口 ; — 第 4部分 : 时间触发通信 。 本文件等同采用 ISO 11898-4:2004《道路车辆 控制器局域网络(CAN) 第 4 部分 : 时间触发通 信》。 本文件由中华人民共和国工业和信息化部提出 。 本文件由全国汽车标准化技术委员会(SAC/TC114)归 口 。 本文件起草单位 : 中国汽车技术研究中心有限公司 、吉利汽车研究院(宁波) 有限公司 、兴科迪科技 (泰州)有限公司 、长城汽车股份有限公司 、中国第一汽车集团有限公司 、惠州市德赛西威汽车电子股份 有限公司 、一汽大众汽车有限公司 、东风汽车集团股份有限公司 、上汽通用五菱汽车股份有限公司 、东软 集团(大连)有限公司 、泛亚汽车技术中心有限公司 、中汽研(天津)汽车工程研究院有限公司 、中汽研汽 车检验中心(天津)有限公司 。 本文件主要起草人 :朱彤 、季 国 田 、甄 海 川 、季 洁 美 、焦 明 顺 、史 晓 密 、刘 彬 、李 长 龙 、伍 宇 志 、吕 亮 、 范志容 、覃华强 、孟令军 、孙旺 、韩光省 、刘乐 、檀庭跃 、唐威 、王莉 、文清浩 、孙婧 。 GB/T 41588. 4—2022/ISO 11898-4:2004 引 言 控制器局域网(CAN) ,是一种串行通信协议 ,具有实时性强 、高可靠性 、低成本等特点 ,支持分布式 实时控制和多路复用 ,广泛用于道路车辆和其他控制领域 ,是国际上应用最广泛的现场总线之一 。本文 件旨在规范高速 CAN模块数据链路层帧格式相关参数及错误处理等信息 。 GB/T 41588《道路车辆 控制器局域网(CAN)》包含以下四个部分 。 — 第 1部分 :数据链路层和物理信令 。规定了一些用于建立 CAN 数据链路层模块间的数字信 息交互的特性 、传统 CAN 和可变数据速率 CAN 帧格式 。 — 第 2部分 :高速媒介访问单元 。规定了 CAN 控制器的高速物理介质连接(HS-PMA) 应用于 道路汽车的分布式实时控制和多路复用的串行通信协议 。 — 第 3部分 :低速容错 、媒介相关接 口 。规定了基于 CAN 的道路车辆电子控制单元之间的数字 信息的交互特性 ,低速 CAN应用层的容错行为以及基于 ISO/OSI层模型的媒介相关接口和 物理媒介连接物理层 。 — 第 4部分 : 时间触发通信 。规定了时间触发通信 ,其包含于控制器局域网(CAN) 协议 :用于道 路车辆的 ,支持分布式实时控制和多路复用的串行通信协议 。 图 1展示 OSI模型与 CAN数据链路层及物理子层的对应关系 。 图 1 OSI模型与 CAN数据链路层及物理子层的对应关系 道路车辆 控制器局域网(CAN) 第 4 部分 : 时间触发通信
1 范围
本文件规定了控制器局域网(CAN)中的时间触发通信协议 ,一种支持分布式实时控制和多路复用 的串行通信协议 。 本文件适用于道路车辆中搭载 CAN 总线的电子控制单元(ECU)之间建立时间触发的数字信息交 互 ,并且规定了参照 ISO 11898-1中逻辑链路及媒介访问控制实现的帧同步实体 ,用于提供时间触发通 信调度表 。 注 : 时间触发 CAN相对于 CAN 总线协议来说 , 附加了一个上层协议层 ,在时间触发 CAN 中 ,CAN协议保持不变 。 时间触发通信使所有报文的延迟时间保持于特定的值 ,与 CAN 总线的负载率无关 。 时间触发通信包含以下两 种级别 :级别 1仅限于周期性报文传输 ,而级别 2则支 持 全 局 系 统 时 间 。 时 间 触 发 CAN 的 周 期 性 通 信 是 基 于 时间主节点发送的参照报文 。每一个开始于参照报 文 的 周 期 称 作 基 本 周 期 ,并 且 这 个 周 期 的 时 间 段 被 细 分 为 几个时间窗 口 。参照报文用于同步和校正所有节点的时间基础 ,保证所有节点与主节点保持一致的时间基础 , 给整个网络提供一个全局时间 。 时间触发 CAN提供了一个备用时间主节点去代替故障的间主节点的机制 。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款 。其中 , 注 日期的引用文 件 ,仅该日期对应的版本适用于本文件 ;不注日期的引用文件 ,其最新版本(包括所有的修改单) 适用于 本文件 。 ISO 11898-1 道路车辆 控制器局域网(CAN) 第 1 部分 : 数据链路层和物理信令[Road vehi- cles—Controller area network (CAN)—Part1:Data link layer and physical signalling] 注 : GB/T 41588. 1—2022 道路车辆 控 制 器 局 域 网 (CAN) 第 1 部 分 : 数 据 链 路 层 和 物 理 信 令(ISO 11898-1: 2015,IDT) ISO 11898-2 道路车辆 控制器局域网(CAN) 第 2 部分 : 高速媒介访问单元[Road vehicles— Controller area network (CAN)—Part2: High-speed medium access unit] 注 : GB/T 41588.2—2022 道路车辆 控制器局域网(CAN) 第 2部分 :高速媒介访问单元(ISO 11898-2:2016,IDT) ISO 11898-3 道路车辆 控制器局域网(CAN) 第 3部分 :低速容错 、媒介相关接口[Road vehi- cles—Controller area network (CAN)—Part 3: Low-speed fault-tolerant, medium dependant inter- face] 注 : GB/T 41588. 3—2022 道路车辆 控制 器 局 域 网(CAN) 第 3 部 分 :低 速 容 错 、媒 介 相 关 接 口 (ISO 11898-3: 2006,IDT)
3 术语和定义
ISO 11898-1、ISO 11898-2和 ISO 11898-3界定的以及下列术语和定义适用于本文件 。 3. 1 应用看门狗 application watchdog 用于检测应用层正常运行的实体 。 3.2 仲裁时间窗 口 arbitratingtimewindow 同一个时间内可以定义多个节点同时发送报文的时间窗 口 。 3.3 基本周期 Basic_ cycle 多个连续的时间窗口组成的系统矩阵的行 。 3.4 周期时间 Cycle_Time 帧同步实体的本地时间与它的参照标志之间的差 。 3.5 周期计数 Cycle_Count 矩阵周期中当前基本周期的数量 。 3.6 周期计数最大值 Cycle_Count_Max 在给定系统的网络矩阵中 ,最后一个基本周期的周期计数的值 。 3.7 周期偏移量 Cycle_Offset 指定参数 ,矩阵周期内第一个基本周期的时间偏差 ,在这个基本周期内发送触发器或者接收触发器 是有效的 。 3. 8 中断位 Disc_Bit 时间主节点引起的外部时钟修正导致参照报文发送了一个全局时间中断 。 3.9 错误严重度 errorseverity 对错误的严重度进行等级的区分 。 3. 10 专用时间窗 口 exclusive timewindow 分配给发送特定周期报文的不参与总线竞争的时间窗 口 。 3. 11 预期发送触发器 Expected_Tx_Trigger 对每个帧同步实体指定的本地参数 ,预期在一个矩阵周期的两个开始之间 ,用发送触发器的计数去 激活 。 3. 12 帧同步 Frame_Synchronisation 每个帧同步实体产生的脉冲 ,在整个 CAN 总线网络中 ,对于每个数据帧和远程帧在帧起始位的采 样点是同步的 。忽略信号的传播时间 ,用一个可选的参考帧起始位的同步段的加法时间偏移 , 目的是在 系统中补偿位时间配置的变化 。 3. 13 帧同步实体 framesynchronisation entity;FSE 协调逻辑链路控制层和媒体访问控制层的部分 。 注 : 在时间触发 CAN 网络中的 ,每个 CAN控制器都有其自身的帧同步实体 。 3. 14 空闲时间窗 口 free timewindow 在系统矩阵中报文调度空闲的时间窗 。 3. 15 全局时间 globaltime 当前时间主节点的节点全局时间 。 3. 16 全局参照标志 Global_Ref_Mark 参照报文成功接收时存储的参照标志 。 3. 17 全局同步标志 Global_Sync_Mark 保存在帧同步脉冲中的节点全局时间当前值 。 3. 18 初始化监察触发器 Init_Watch_Trigger 周期时间的最大值 。 3. 19 初始化参照偏移量 Initial_Ref_Offset 参照触发器偏移量的初始值 。 3.20 等级 level 时间触发 CAN 的执行级别与本文件一致的实施水平 。 注 : 这里有两个级别 :等级 1 和等级 2,等级 2是等级 1 的扩展 。 3.21 本地时间 localtime 周期只增计数器产生的时间 。 3.22 本地偏差 Local_Offset 参照报文成功发送后 ,对比参照报文与本地时间的偏差 。 3.23 主节点状态 masterstate 结合了故障 、同步和主从关系的帧同步实体状态向量 , 即一个三元组(故障等级 、同步模式 、主从模 式) 。 3.24 主节点参照标志 Master_Ref_Mark;MRM 时间主节点发送的参照报文中的参数 。 3.25 矩阵周期 matrix cycle 系统矩阵中所有基本周期的周期 ,连续的从第一个基本周期到最后一个基本周期 。 注 : 如果系统矩阵只由一个基本周期构成 ,那矩阵周期与基础周期就是一样的 。 3.26 混合的仲裁时间窗 口 merged arbitratingtimewindow 合并连续仲裁时间窗口的单个窗 口 3.27 报文对象 messageobject 提供 LLC帧以及控制和状态信息存储的缓冲器 。 3.28 报文状态计数 messagestatuscount;MSC 专用时间窗口中检测通过调度发送报文出现错误的数量 。 3.29 网络时间单元 network timeunit;NTU 用于测量所有时间 ,并提供整个网络常数的单元 。 3.30 网络参数 network view 系统网络方面的参数 。 3.31 节点参数 nodeview 本地网络方面的参数 。 3.32 节点全局时间的参数 nodeview ofglobaltime 节点的本地时间与本地时间偏差之和的整数部分 。 3.33 备用的时间主节点 potentialtimemaster 通过系统配置允许发送参照报文的帧同步实体 。 3.34 参照标志 Ref_Mark 每次成功完成参照报文发送时存储的参数 。 3.35 参照触发器偏移 Ref_Trigger_Offset 用于修改发送参照触发器中时间标志的参数 ,例如通过发送一个参照报文 。 3.36 参照报文 referencemessage 开始一个基本周期的数据帧 。 3.37 重复因数 Repeat_Factor 规定发送列中报文重复率的参数 ,是发送触发器或接收触发器参数的一部分 。 注 : 重复率的单位是 “系统矩阵的行 ”。 3.38 接收触发器 Rx_Trigger 规定了核一个报文被成功接收的参数 。 3.39 同步标志 Sync_Mark 本地时间的当前值 ,存储在帧同步的脉冲中 。 3.40 系统矩阵 system matrix 发送列系统矩阵形式中包含了被有条理地排列的所有节点的所有报文 ,其中包含由基本周期(矩阵 的行)和发送列(矩阵的列)组成的时间窗 口 。 注 : 系统矩阵规定了报文和时间窗口的相互关系(类型和时间标志) 。系统矩阵中的第一个基本周期开始于周期计 数为 0。 3.41 时间间隙 timegap 一个基本周期的结束和下一个基本周期开始之间的时间 , 当下一个基本周期开始时同步一个事件 。 3.42 时间标志 timemark 一个帧同步实体中的标志 ,此标志规定了预期或者计划特定行为的一个周期时间(在 NTU 中) 中 的瞬时时间 。 3.43 时间主节点 timemaster 发送参照报文的帧同步实体 。 3.44 时间窗 口 timewindow 一个时间定量 ,在系统矩阵中为了实现一个具体的发送列而分配的时间段 。 3.45 发送列 transmission column 系统矩阵的列 ,其元素与每个基本周期中重复的特定的时间窗口相关联 。 注 : 发送行是系统矩阵的基本周期 。 3.46 时间单元比率 timeunitratio;TUR 网络时间单元的长度和用于时钟同步的帧同步实体中规定的基本时间单元(例如 ,本地振荡器周 期)的长度之间的比率 。 注 : 时间单元比在原则上是一个非整数 。通过时间单元比率的值来执行网络时间单元的节点参数 。 3.47 发送计数 Tx_Count 计数器在每个矩阵周期开始的时候会重新设置 , 即在识别周期计数值为 0 的相应参照报文之后 。 3.48 发送使能 Tx_Enable 报文开始发送的时间段 。 3.49 发送溢出 Tx_Overflow 当出现的发送触发器超过预期发送触发器指定值时设置的状态标志 。 3.50 发送参照触发器 Tx_Ref_Trigger 指定只关系到参照报文触发的发送触发器参数 。 3.51 发送触发器 Tx_Trigger 规定某一报文何时传输的参数 ,该参数由时间标记 、传输列中第一次发送的位置(周期偏移) 、该传 输列中的重复率(重复因数)以及发送触发器有效的参照报文组成 。 注 : 发送触发器也包含有关于窗口类型的信息(专用的 、仲裁的 、合并的) 。 3.52 发送下溢 Tx_Underflow 当出现的发送触发器少于预期发送触发器指定值时设置的状态标志 。 3.53 监察触发器 Watch_Trigger 用于校验从最后一个有效的参照报文开始 ,时间是否过长的时间标志 。
4 缩略语
CAN:控制器局域网(controller area network) FSE: 帧同步实体(frame synchronisation entity) LLC:逻辑链路控制(logical link control) LSB:最低有效位(leastsignificantbit) MAC:媒介访问控制(medium access control) MSB:最高有效位(mostsignificantbit) SOF: 帧起始(startofframe)
5 时间触发总线的基本概念
- 1 一般规定 以下约定适用于本文件 。 应用看门狗 :通常由主节点激活信号参数定义 。 仲裁时间窗口的冲突由 CAN标识符的仲裁解决 。如果总线没有空闲 ,那么 CAN 节点无法开始传 输 。在事件触发 CAN 中 ,几个 CAN节点可以在仲裁时间窗口的发送使能窗 口 内开始一个发送行为 , 但是没有自动重发功能 。特例 : 时间窗口的合并 。 基本周期的元素是几个连续的时间窗 口 。不同时间窗口的数量和长度被线下指定 ,且对于整个网 络而言是相同的 。 系统矩阵的每个基本周期包含相同序列的时间窗 口 ,并且时间窗口开始于参照报文 。 周期时间是截取一个帧同步实体的本地时间与其参照标志之间差异的 16个最高有效位 。周期时 间 = (本地时间 -参照标志)的 16个最高有效的位 。 周期偏移是一个发送触发器或接收触发器参数的一部分 。 错误严重程度 :没有错误(S0) 、警告(S1) 、错误(S2) 、严重的错误(S3) 预期发送触发器 : 当发送计数达到预期发送触发器 ,此帧同步实体的所有发送触发器在当前矩阵周 期中被禁用 。 帧同步实体操控参照报文的发送或接收的时间 ,为应用层提供了一个状态或控制接 口 。 空闲时间窗口为将来的网络扩展而保留 。 全局同步标志(只有等级 2) 在帧同步脉冲时被存储 。 这个值 包 含 了 本 地 时 间 与 本 地 偏 移 之 和 的 16位整数部分和小数部分 。 初始化监察触发器的值是 216-1,是周期时间的最大值 。 本地时间在等级 1 中的宽度是 16位 ,在等级 2 中其宽度至少是 19位 。在等级 2 中提供网络时间 单元小数部分的是除 16个最高有效位之外的剩余位 。在本地时间的增加过程中 ,应保证非小数部分的 每次增长与网络时间单元相对应 。 例如 :如果小数部分使用了 3个位 ,在等级 2 中本地时间增加了 8 次 ,每次的增量是网络时间单元 的八分之一 。 在一个合并的仲裁时间窗口内 , 因为丢失了仲裁或受到了错误的干扰而导致帧的重发是允许的 。 网络时间单元是整体网络的常量 : — 在等级 1 中 ,NTU是名义上的 CAN位时间 ; — 在等级 2 中 ,NTU是物理秒的小数部分 。 节点全局时间是节点的本地时间与其本地偏移之和的整数部分 。小数部分只用于时钟同步 。 因此 节点的全局时间是全局时间在本地网络时间单元中的本地映射 。节点全局时间作为一个连续的单调值 提供给应用程序 。 参照标志 :在每次参照报文成功完成时 , 当前同步标志成为参照标志 。 接收触发器 :一个接收触发器的必要信息中包括一个时间标志(在这个时间点后相应的报文预期被 完整接收) 、发送列队中第一次接受的位置(周期偏移)和该传输队列中的重复率(重复因数) 。 当然 ,对 于接收触发器而言 ,一个报文对象的参照是有效的 。几个接收触发器可以指定给相同的报文 。 只有在 专用时间窗口中接收触发器可以用于报文的发送 。 时间窗 口 :共有三种类型的时间窗 口 :专用的 、仲裁的和空闲的 。 时间单元比率(只有等级 2)用于时钟同步 。 发送计数 :每次激活一次发送触发器 ,发送计数的值都增加 ,超过了预期发送触发器 ,发送计数将不 增加 。 发送使能起始于发送触发器 ,在达到一个预先定义且由系统配置的 CAN标称位时间数量后关闭 。 监察触发器参数值取决于时间触发 CAN 的运行方式(事件同步或时间触发) 。
5.2 协议的一般原理
5.2. 1 系统矩阵的矩阵周期 在一个时间触发系统中 , 网络中所有节点的所有报文组成系统矩阵的一部分 。 系统矩阵规定了报 文和其发送所属的时间窗口之间的相互关系 。在时间触发 CAN 中 , 系统矩阵由基本周期(矩阵的行) 和发送列(矩阵的列)组成 。在系统矩阵中基础周期的数目是 2 的整数幂 ,最小值是 1。 每个基本周期 由一个规定的特征报文开始 :参照报文(见图 2) 。 图 2 时间触发 CAN 的基本周期 在一个基本周期中 ,一个报文可能被分配到不止一个时间窗 口 , 即一个特定的报文可能属于多个发 送列 。在系统矩阵中 ,所有基本周期的循环就构成了矩阵周期 。在一个矩阵周期中 ,周期计数将计算基 本周期的数量 。计数将从零开始 ,达到周期计数最大值时结束 。周期计数的当前值将作为参照报文的 一部分被时间主节点发送 。尤其 ,周期计数值将因时间主节点的每个基本周期的发送而递增 。任何帧 同步实体接收一个有效的参照报文后将使用此参照报文中的周期计数 。在一个矩阵周期中基本周期的 数目(周期计数最大值 +1)是 2 的整数幂 。 一个矩阵周期的列被称为发送列 。在一个发送列中 ,周期性的传递一个特定的报文 ,周期是 2 的整 数幂 ,它不大于系统矩阵的行数 。这一周期的单位是 “系统矩阵的行 ”。第一个发送特定报文的基本周 期的数量(作为周期计数的值)称作周期偏移 。这个周期被称作重复系数 。一个特定的报文可能不止属 于一个发送列 ,也可能用同一发送列中不止一个时间窗口来传递 。
5.2.2 时间窗 口
每个报文都将由一个指定的时间窗口来传递 。在时间窗口里 ,报文的发送只开始于发送使能窗 口 (见 7. 2. 2) , 比如 :报文的帧起始位将在发送使能窗口中发送 。 在时间-触发器总线里 ,提供了三种不同类型的时间窗 口 : — 专用时间窗 口 ; — 空闲时间窗 口 ; — 仲裁时间窗 口 。 一个基本周期由不同类型和长度的时间窗口构成 。发送列中的所有时间窗口都应有相同的长度 , 但是可以是不同的类型 。 (图 3 给出了在周期计数最大值为 3 时的系统矩阵) 。 图 3 系统矩阵 专用时间窗口被分配给周期性发送的特定报文 , 与 CAN 总线没有竞争 。 网络中仅有的一个帧同 步实体可以在专用时间窗口中开始发送 。 仲裁时间窗口被分配给共享同一个时间窗口的报文 。在仲裁 时间窗口内 ,通过 CAN 仲裁标识符解决总线冲突 。 网络中的几个帧同步实体可以在仲裁时间窗 口 中 开始发送 。万一丢失了仲裁 ,无自动重发功能(例外 :合并仲裁窗 口) 。连续的仲裁时间窗口可能会合并 成一个单一窗 口 。失去仲裁或者被错误干扰的帧可以在合并仲裁窗口中被重新发送 。空闲时间窗口为 将来网络的拓展做准备 。 注 : 关于发送使能窗口的细节表述 ,见 7. 2. 2。
5.2.3 基本周期的事件同步开始
在一个非事件同步的时间触发系统中 ,参照报文应在等距的时间槽中被周期性的传输 。在主节点 中 ,时间触发总线可以选择性地将基本周期与一个特定的事件进行同步 。 当通信同步时 ,周期报文的发 送将在一个基本周期结束之后被终止 , 同时会在上一个基本周期结束和下一个基本周期开始之间出现 一个时间间隔 。此时间间隔在上一个基本周期参照报文中被时间主节点广播 。 当前时间主节点或者备 用的时间主节点发送一个用于开始矩阵周期的基本周期的参照报文时 , 时间间隔终止 。 这部分如图 4 所示 。 注 : 一个基本周期的事件同步启动可用于同步两个或多个时间触发 CAN 总线的传输周期 。 图 4 时间同步基本周期
5.3 参照报文
5.3. 1 描述说明 所有时间触发 ,在 CAN 总线上的周期通信以参照报文为基础 。一个参照报文通过特定的 CAN 标 识符表示成数据帧 ,应被除了主节点(参照报文的发送方)之外的所有的帧同步实体接收并认可 。对于 等级 1,数据长度代码至少是 1;对于等级 2,数据长度代码至少是 4;否则报文将不作为参照报文被接 收 。标示符中除了最低 3个有效位之外的所有位描述报文是参照报文 。最后的 3个位指定至多 8个备 用时间主节点的优先级 。 在等级 1 和等级 2 中 ,参照报文将包含当前基本周期的数量(周期计数)和状态位(下个间隔) ,该状 态位宣布了下一个周期是否以参考报文的事件同步传输开始 。等级 2 中 ,参照报文还应包含主节点参 照标志(在全局时间中测量)和状态位 、中断位 ,该中断位描述全局时间中是否出现中断 。 时间主节点应 发送参照报文 ,通常在等距时隙中或可选择性的同步到一个特定事件 。如果参照报文被一个错误干扰 , 应能立即重发 。如果重发功能禁用 ,总线上将不会有任何通信 。参照报文一旦重发 ,应更新发送的主节 点参照标志 。参照报文应周期性发送 ,但允许其停止周期性发送(下个间隔位) ,并在下一个基本周期开 始时被当前时间主节点或者其他的备用时间主节点初始化同步事件 。 时间主节点是发送参照报文的帧同步实体 。 时间主节点被允许传输其他的报文 。如果当前时间主 节点发生故障 ,它的功能应由另外的帧同步实体即备用时间主节点来重复实现 。 每个备用的时间主节 点在传输参照报 文 时 根 据 优 先 权 使 用 不 同 的 特 定 CAN 标 识 符 。 每 个 作 为 参 照 报 文 标 识 符 的 特 定 CAN 标识符应被网络中的所有帧同步实体识别 。这里的帧同步实体既不是时间主节点也不是备用时 间主节点而是用于定时接收的帧同步实体 。 对于等级 1 和等级 2,参照报文有不同的格式(见图 5 和图 6) 。在这两种情况中 ,参照报文可能被 其他数据延长 ,直到 8个 CAN数据字节总数 。预留位将以逻辑 0 发送并且将会被其他接收方忽略 。
5.3.2 等级 1
等级 1 的参照报文至少由一个数据字节构成 。首字节包含下个间隔位和周期计数 ,最高有效位(位 号 7)首先被发送 。一个时间触发 CAN 的帧同步实体可以把周期计数的值分配至 63(6个位) ,但在实 际的时间触发 CAN 中不必要使用 。 注 : 支持不同的周期计数最大值的帧同步实体在事件触发 CAN 网络中被 连 续 使 用 。然 而 网 络 中 所 有 的 备 用 时 间 主节点都应保证支持使用网络中的任何帧同步实体的周期计数最大值 。
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|
| 下个间隔 | 预留 | 可选 :周期计 | |||||
| 数 5 | 可选 :周期计 | ||||||
| 数 4 | 可选 :周期计 | ||||||
| 数 3 | 可选 :周期计 | ||||||
| 数 2 | 可选 :周期计 | ||||||
| 数 1 | 可选 :周期计 | ||||||
| 数 0 |
图 5 等级 1 参照报文格式
5.3.3 等级 2
对于等级 2 的参照报文将包含至少 4 个数据字节(见图 6) 。首字节包含下个间隔位和周期计数 。 每个字节的最高有效位(位号 7)首先被发送 。 第二个字节将包含中断位(见 6. 6)和网络时间单元分辨率(NTU_Res) ,这是主节点参照标志的小 数部分 。在等级 2 中 , 网络时间单元分辨率至少支持 3个位 ,备用的帧同步实体可以支持额外至多 7个 位 。不支持位作为逻辑 0被发送 。 第三个字节应包含主节点参照标志的低字节 ,第四个字节包含主节点参照标志的高字节 。
| 第一个字节 | 第一个字节 | 第一个字节 | 第一个字节 | 第一个字节 | 第一个字节 | 第一个字节 | 第一个字节 |
|---|---|---|---|---|---|---|---|
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 下个间隔 | 预留 | 可选 :周期计 | |||||
| 数 5 | 可选 :周期计 | ||||||
| 数 4 | 可选 :周期计 | ||||||
| 数 3 | 可选 :周期计 | ||||||
| 数 2 | 可选 :周期计 | ||||||
| 数 1 | 可选 :周期计 | ||||||
| 数 0 | |||||||
| 第二个字节 | 第二个字节 | 第二个字节 | 第二个字节 | 第二个字节 | 第二个字节 | 第二个字节 | 第二个字节 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 网络时间单 | |||||||
| 元带宽 6 | 网络时间 | ||||||
| 单元带宽 5 | 网络时间单 | ||||||
| 元带宽 4 | 网络时间单 | ||||||
| 元带宽 3 | 网络时间单 | ||||||
| 元带宽 2 | 网络时间单 | ||||||
| 元带宽 1 | 网络时间单 | ||||||
| 元带宽 0 | 中断位 | ||||||
| 第三个字节 | 第三个字节 | 第三个字节 | 第三个字节 | 第三个字节 | 第三个字节 | 第三个字节 | 第三个字节 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 主节点参考 | |||||||
| 标志 7 | 主节点参 | ||||||
| 考标志 6 | 主节点参考 | ||||||
| 标志 5 | 主节点参考 | ||||||
| 标志 4 | 主节点参考 | ||||||
| 标志 3 | 主节点参考 | ||||||
| 标志 2 | 主节点参考 | ||||||
| 标志 1 | 主节点参考 | ||||||
| 标志 0 | |||||||
| 第四个字节 | 第四个字节 | 第四个字节 | 第四个字节 | 第四个字节 | 第四个字节 | 第四个字节 | 第四个字节 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 主节点参考 标志 15 | 主节点参 考标志 14 | 主节点参考 标志 13 | 主节点参考 标志 12 | 主节点参考 标志 11 | 主节点参考 标志 10 | 主节点参考 | |
| 标志 9 | 主节点参考 | ||||||
| 标志 8 |
图 6 等级 2 参照报文帧格式
6 定时和同步特征
- 1 等级 1 和等级 2 在时间触发 CAN 中有两个可能的等级 :等级 1 和等级 2。等级 1 只提供使用周期时间的时间触发 操作 。等级 2则在此基础上额外增加了同步质量 ,提供了全局时间和外部时钟同步 。在两个等级中 ,所 有的定时特征都是基于本地时基(等于本地时间) 。原则上 , 网络中的所有帧同步实体使用网络时间单 元计算其本地时间 。节点的网络时间单元因本地振荡器(系统时钟)的不同与整个网络的网络时间单元 存在少量的差异 。在等级 2 中 , 同步程序应确保不同帧同步实体中的本地网络时间单元非常接近(见 6. 4) 。在等级 1 中 , 网络时间单元是 CAN标称位时间 ;在等级 2 中 , 网络时间单元是物理时间参数 “s” 的小数部分 。 如果等级 2 的网络时间单元等于等级 1 的网络时间单元 (CAN 标称位时间) ,则在一个时间触发 的 CAN 总线网络中 ,等级 1 和等级 2 的帧同步实体就可以混用 。然而 ,在这样的混合网络中 ,所有备 用的时间主节点应是等级 2 的特性 。
6.2 本地时间的产生
在每个帧同步实体中 ,本地时间通过一个周期增加的计数器实现 。在等级 1 中 ,计数器算上网络时 间单元(在等级 1 中为标称位时间)之后是 16个位 。在等级 2 中 ,计数器中要包含至少 19个位 ,除了 16 个最高有效位之外的剩余位 ,为网络时间单元的小数部分 。换言之 ,如果网络时间单元分辨率覆盖了 n 个位 ,那么计数器以网络时间单元/2n 为单位计数 。 因此 ,在等级 1 中每一个(本地等量) 网络时间单元 使计数器增加一次 ,而等级 2 中每一个(本地等量)网络时间单元使计数器增加 2n 次 。 除了计数器增加 之外 ,本地时间只会被硬件复位影响 。在硬件方面 ,每个帧同步实体可以访问提供本地时钟计时单元的 振荡器 。在等级 2 中 ,一个网络时间单元的实现将以时间单元比率为基准 。 注 : 时间单元比率影响网络时间单元的长度 ,进而影响本地时间增长的速率 。 时间单元比率是一个特定帧同步实体相关的数(通常非整数) ,它是网络时间单元的长度和特定帧 同步实体的基本时间单元之间的比率 。 特定帧同步实体的基本时间单元可以指的是振荡器周期的长 度 。一个本地网络时间单元的生成应以当前有效的时间单元比率的本地值为基准 :实际时间单元比率 。 在帧同步实体中 ,实际时间单位比率的精度影响任意两个本地网络时间单元的最大差值 。 时间单元比 率的值将决定一个(本地)网络时间单元的长度进而影响本地时间计数器的速率 。 时间单元比率的实现 及数据格式由帧同步实体规定 。 注 1: 一个用于网络时间单元生成的等级 2 硬件实现 ,可以在(大约) 等距的时间间隔内 ,每个实际时间 单 元 比 率 对 应本地时间计数器增加 8次 , 由于时间单位比率通常不是一个整数 ,所以连续网络时间单元 的 长 度 可 能 会 相 差一个本地振荡器周期 。 注 2: 原则上 ,不同的网络时间单元是可以区分开的 ,如下 : a) 标称网络时间单元是指非常精确的理论时间长度 ,这个理论时间长度只能够通过以“s”为单位的时间参数得到 或者进行测量 。实际上 ,这是无法实现的 。但是 ,标称网 络 时 间 单 元 在 被 作 为 任 何 时 间 相 关 的 规 范 的 时 候 ,都 是非常重要的 。在任何的应用中 ,标称网络时间单元都会 利 用 系 统 中 的 公 共 时 间 重 新 估 算 。标 称 网 络 时 间 单 元是一个现实中不能准 确 满 足 的 规 定 值 。 为 了 指 定 全 局 时 间 , 需 给 出 构 成 1 s所 需 的 标 称 网 络 时 间 单 元 的 数量 。 b) 全局网络时间单元 : 当前时间主节点将产生一个内部时间标记足以让整 个 系 统(即 网 络) 应 用 它 的 时 钟 。 时 钟 基于全局网络时间单元为系统生成一个全局时间 。对于依靠外 部 时 钟 同 步 的 情 形 , 当 前 时 间 主 节 点 的 内 部 时 间 tick将被替代或者被外部时钟源影响 ,全局网络时间单元由当前时间主节点的网络时间单元代表 ,也就是整 个网络的网络时间单元 。 c) 本地网络时间单元 :在时间-触发 CAN 系统中的每个节 点 ,都 有 作 为 源 的 本 地 时 钟 用 来 产 生 本 地 时 间 ,这 个 本 地时间是全局时间的本地副本 。 当节点接收到时间主节点发送 的 参 照 报 文 的 全 局 时 间 ,这 个 副 本 将 偏 离 全 局 时间 。本地时间与全局时间准确映射的实现取决于系统 。实 际 上 ,本 地 网 络 时 间 单 元 精 度 由 时 间 单 元 比 率 的 精度决定 。本地网络时间单元即是节点的网络时间单元 。 图 7展示了生成节点网络时间单元的原理 。 图 7 等级 2 中网络时间单元节点视图的产生 对于帧同步实体 ,需要明确时间单元比率的数据格式 。 时间单元比率在一个帧同步实体(时间单元 比率配置)内的初始值是已知的 。非时间主节点的帧同步实体与时间触发 CAN 网络同步时 ,应根据其 本地时间(系统时钟)和主节点的全局时间(见 6. 4)之间的比率持续更新其时间单元比率值 。
6.3 周期时间参数
在 CAN 总线网络中 ,对于每个数据帧或远程帧 , 帧同步脉冲在每个帧同步实体中产生 ,并且位于 帧起始(SOF)的采样点 。忽略信号的传播时间 ,这个脉冲用于整个网络的同步 。在帧同步脉冲中 ,本地 时间的当前值会被保存为同步标志 。在每个参照报文成功完成之后 , 当前的同步标志被保存成为参照 标志 。 周期时间是帧同步实体的本地时间和其参照标志之间的差值 。周期时间理论上是在每个基本周期 开始时(参照报文的同步标志)从 0 重新开始 。但实际上只有在完成参照报文之后的时间点才被认为是 周期时间的起始点 。在等级 2 中 ,只有此差值的 16个最高有效位才对周期时间有效 。换言之 ,周期时 间没有小数部分 ,在等级 1 和等级 2 中都是 16位的值 。所有的时间标志都会在周期时间参数中给出 。
6.4 等级 2 中的同步
在等级 2 同步中 ,通过调整时间单元比率值 ,实现改善参照报文之间不同的时间计数器的同步性 。 时间单元比率通常不是整数 。 帧同步实体不是时间主节点 ,在每次接收到参照报文之后 ,时间单元比率 适应主节点的全局时间 ,从而弥补时钟偏移 。 在帧同步脉冲中 ,节点的本地时间和本地偏移之和的当前值将被保存为全局同步标志(节点的全局 时间包括小数部分) 。全局同步标志至少 19位 。 时间主节点在参照报文中发送其当前的全局同步标志 作为主节点参照标志 。在每个参照报文成功完成之后 , 当前的主节点参照标志被保存为全局参照标志 。 每个参照报文成功完成后 ,节点本地时间中的参照标志和参照报文中的主节点参照标志之间的差 移(;)本。。因点。 时 ,另一个(备用时间主节点)帧同步实体成为时间主节点 ,新的时间主节点的本地偏移将被保留 。一个 帧同步实体成为当前的时间主节点之后 ,将会继续更新时间单元比率的值 。在此之后 ,可以选择性地支 持由实际时间单元比率值逐步返回配置时间单元比率值 。 示例 :每一个参照报文完成 ,都会以系统时钟周期(p_sys)和全局时间(q_ gt= 网络时间单元内两次主节点参照标志 的差值)测量最后一个基本周期的当前长度 。新的时间单元比率的值计算方法如下 : 当前网络时间单元 = p_ sys/q_gt。 为了提供足够的时间单元比率 ,q_gt的分辨率应高于 1个网络时间单元的分辨率 。这意味着在主节点参照标志里 ,关于 主节点时间的时间信息将会以高于 1个网络时间单元的分辨率给出 。这就是在主节点参照标志内网络时间单元有小数 部分的原因 。
6.5 等级 2 中的全局时间(本地时间 +本地偏移)
一个时间触发的 CAN 总线网络的全局时间在时间主节点里是 16个最高有效位(本地时间 +本地 偏移) 。在每个帧同步实体中 ,本地时间 +本地偏移的 16个最高有效位将得到一个全局时间的近似值 。 这个近似值不会产生连续的值(也就是两个连续值最多相差 1) ,它将提供一个 16个最高有效位的无变 化值(本地时间 +本地偏移) ,这个连续的无变化值应用于全局时间 。全局时间的单位是网络时间单元 。 为了保持全局时间的无变化性和连续性 ,外部时钟同步的频率调节(见 6. 6) 、长时间的间隔 、时间的变化 等是十分必要的 。如果由于外部时钟同步导致出现中断(在参照报文中设置的中断位) ,它将发信号(中 断标志)给应用程序 。
6.6 外部时间同步
时间触发 CAN 的时间主节点能够使用外部时间基础来提供一个网络的全局时间 。外部时基的同 步可以通过以下方式来维持 。 — 调频可以通过使用外部时间周期作为网络时间单元的基础 ,这会使时间单元比率的值能够适 应外部时间周期的长度 。 当前主节点将在调节时间单元比率中写入新的时间单元比率值并设 置外部时钟同步命令 。在下一个基本周期开始时 , 帧同步实体使用新的调整时间单元比率作 为实际时间单元比率 。 — 调相可以通过连续的频率调节或在全局时间中插入中断实现 。对于这种情况 , 中断位将是参 照报文的一部分 ,表明了全局时间的中断行为被期望 。此应用将把网络中期望全局时间和当 前全局时间的差值写入预设全局时间里并置位设置时间命令 。在下一个基本周期开始时 ,这 个值将被加入时间主节点的本地偏移中 ,进而加入全局时间中 。参照报文中的中断位能够被 设置 。 网络中不应出现两个连续的带有置位中断位的参照报文 。 — 对于特定的外部全局时间的值 ,应通过设置参照报文中的下个间隔来调整周期时间 , 同时根据 修正请求开始一个事件同步的基本周期 。
7 发送和接收
- 1 综述 在一个时间触发系统中 , 网络中所有节点的所有报文都是构成系统矩阵的要素 。 系统矩阵中规定 了报文和其被发送的时间窗口之间的相关性 。在时间触发 CAN 里 , 系统矩阵由基本周期(矩阵的行) 和发送列(矩阵的列)构成 。每个基本周期由一个规定的特殊报文开始 , 即参照报文(见图 2) 。 在系统 矩阵中所有基本周期的周期将是矩阵周期 。在基本周期中的时间窗口的序列 ,应通过与周期时间相比 的时间标志来控制 。 当开启一个特殊的时间窗 口 ,周期时间点应用时间窗 口 的时间标志来表示 。 当下 一个时间窗口打开时 ,之前的时间窗口关闭 。 时间触发 CAN 的定时 ,应以系统矩阵的特定时间标志有 关的下一个触发器为基础 ,这个触发器包括 :发送触发器 、接收触发器 、发送参照触发器 、监察触发器 。
7.2 报文发送
7.2. 1 发送触发器 在节点中 ,发送触发与时间触发 CAN 网络是同步的 ,报文的发送将由发送触发器控制 。 因此 , 发 送触发器指定参照报文在矩阵周期的哪一个时间窗口中被发送 。 一个发送触发器将由不同部分组成 , 由以下序列表示 : a) 报文的参照是有效的 ; b) 时间标志被激活(系统矩阵的列 、发送列) ; c) 在发送列中的位置(位置由周期计数给定 ,系统矩阵的行)被第一个激活 ; d) 在相同发送列的重复系数位置被下一次激活 。 重复系数应是 2 的幂次方 ,大于周期偏移但是小于周期计数最大值 +1。此外 ,发送触发器将包含 关于是否引用一个仲裁或一个专用窗口的信息 。如果引用一个仲裁窗 口 ,是否与后面窗口合并的信息 也应给出(见 5. 2. 2) 。多个发送触发器可以指定给相同的报文 。 注 : 即使由于错误条件而禁用了相应报文传输 ,发送触发器在每次满足其触发条件时应变为激活状态 。 如图 8所示 ,一个专用的报文 D 的发送触发器举例 ,报文 D应在这个系统矩阵的第一个和第三个 基本周期的第五个时间窗 口 (专用时间窗口) 中发送 。对于这个例子 ,周 期 偏 移 的 配 置 是 0, 重 复 系 数 是 2。 图 8 专用报文的发送触发示例
7.2.2 发送使能
发送触发器指定了报文时间窗口的开始 。为了遵守线下定义的调度表(矩阵周期) 的定时限制 ,开 始发送一个报文的事件将受限于一个报文时间窗口的开始 。发送使能是一个指定了发送开始时间的窗 口 ,其应在时间窗口开始时打开 ,在一个指定数量的标称 CAN 总线位时间(1…16) 之后关闭 。 发送使 能窗口的长度由系统配置指定(见 10. 1. 3. 7) , 同时对于网络中不同的帧同步实体发送使能会出现变化 。 虽然这个允许出现 ,在一个时间触发 CAN 的帧同步实体内 ,对于每个时间窗 口 ,没有必要针对发 送使能窗口指定不同长度 。也就是说 ,发送使能窗口的长度可以是一个帧同步实体常数 。 所有的 MAC发送需求 , 由报文发送触发器设置(如果是 LLC发送请求) ,在发送使能窗口结束时 重新设置 。 当已经开始重新设置一个 MAC 的发送请求时 ,在 MAC发送过程中不能中断传输 , MAC 的发送 应完整 。 当一个节点需要在指定窗口发送一个报文时 ,不能在发送使能窗 口 中开始(例如 : 因为总线不 是空闲的或者应用程序暂时关闭了报文发送) ,传输在这个时间窗 口 中不会开始 ,对于需要发送的报文 将会延缓发送直到下个发送触发或彻底被忽略 。任何情况下 ,在报文发送触发器事件中 ,报文发送请求 (LLC发送请求)从 LLC转发到到 MAC,MAC发送请求在发送使能窗口结束时被关闭 。 合并仲裁窗口的发送使能窗口在第一个时间窗口启动时开始 ,在最后一个合并的时间窗 口 的发送 使能窗口结束时停止 。 因此 ,最后的合并时间窗口长度指定在合并仲裁时间窗 口 中可以发送的报文的 最大长度 。 合并仲裁时间窗口内的第一个和最后一个发送触发 ,应被每个加入合并仲裁时间窗 口 中的帧同步 实体所识别 。
7.2.3 发送消息对象
一个消息对象应提供一个 LLC帧(见 ISO 11898-1)的存储 , 当这个消息对象的发送触发器被激活 时 ,LLC帧 、控制信息和状态信息将一起发送 。对于时间触发 CAN , 消息对象将包含附加的状态信息 MSC(见 9. 2) 。在初始化期间 ,消息对象应被配置 ,并且在时间触发的操作期间可能会被更新 。
7.3 报文接收
7.3. 1 接收触发器 在帧同步实体同步到时间触发 CAN 网络时 ,接收触发器控制着报文接收的检验 。 接收触发器与 发送触发器的组成部分一样 ,核实一个专用报文的成功接收 。接收触发器的时间标志给出了一个时间 点 ,在此时间点之后以及下一个基本周期开始之前 ,相应报文接收应完成(本地接受过滤完成) 。多个接 收触发器有可能指定给相同的报文 。
7.3.2 接收消息对象
消息对象应提供 LLC帧(见 ISO 11898-1)的存储 ,如果接收触发器的时间标志与当前周期时间相 匹配 ,消息对象也应为接收到的专用报文的确认提供控制和状态信息 。对于时间触发 CAN , 消息对象 应包含额外的状态信息 MSC,用于展示验证的结果 。在初始化期间 ,消息对象应被配置 ,并且在时间触 发的操作期间可能会被更新 。 报文的实际接收应独立于接收触发器 。如 ISO 11898-1中所描述的那样 ,每个控制器检查 CAN协 议错误的所有报文并且对接收到的每个有效报文进行应答 。
7.4 参照报文的发送
7.4. 1 发送参照触发器 发送参照触发器是一个特别的发送触发器 ,这个发送触发器只与参照报文的触发相关 。发送参照 触发器只有在潜在时间主节点中出现 。在严格的时间触发系统中 , 只有一个发送参照触发器保证参照 报文的周期性发送 。 只要发送参照触发出现 ,帧同步实体尝试发送一个参照报文 。 在一个事件同步基本周期的系统中 ,需要使用两个发送参照触发器 。在周期性的情况下 ,一个发送 参照触发器是活跃的 ,并且在下一个基本周期被同步到一个事件(时间主节点激活下个间隔位)之前 ,需 要保证参照报文的周期性发送 。在同步事件未出现或者丢失的情况下 ,另一个发送参照触发器应该重 新开始参照报文的周期性发送 , 因此对于间隙情况 , 发送参照触发器检查应用程序规定的最大间隙长 度 。在一个给定的时间内 ,只会有一个发送参照触发器有效 。 周期情况的发送参照触发器的时间标志应与网络中所有的潜在时间主节点相同 。这些时间标志的 大小给出了基本周期的长度 。 此外 ,发送参照触发器的时间标志可以被参照触发偏移修改 。
7.4.2 发送参照触发器的消息对象
发送参照触发器的消息对象应保存参照报文标示符和数据长度代码 。参照报文的数据部分由时间 触发 CAN协议机制提供(见 5. 3) 。 参 照 报 文 标 示 符 的 最 后 3 位 规 定 了 帧 同 步 实 体 的 时 间 主 节 点 优 先权 。
7.4.3 参照触发器偏移
参照触发器偏移通过修改发送参照触发器的时间标志来实现时间主节点的初始化和容错 。发送参 照触发器的时间标志与参照触发器偏移的和决定参照报文发送的开始时间 。参照触发器偏移的值应由 主节点状态和初始化状态决定 。 当前主节点正常运转情况下 ,参照触发器偏移的值为 0,对于其他的备 用时间主节点 ,参照触发器偏移等于初始化参照偏移量 。这里初始化参照偏移量是一个由配置确定的 正值 。例如 :在初始化期间或在重新设置之后 ,一个备用的时间主节点有比当前主节点更高的优先权 , 其应重新设置参照触发器偏移的值等于 0(如果参照触发器偏移的值是正的) ,并且参照触发器偏移每 经过一个基本周期都减 1,直到发出或接收到的参照报文有更高的优先权 , 间隙中不会减少 。参照触发 器偏移的值在 -127~ +127之间 ,见第 8章 。
7.4.4 监察触发器
如果很长时间没有参照报文发送 , (例如 :在总线受到强烈干扰期间 ,所有备用主节点经过多次重试 发送参照报文之后) ,帧同步实体的监察触发器应当激活 。对于发送参照触发器 ,应有两个监察触发器 。 一个用于周期情况 ,另一个用于事件同步情况 。这也适用于时间接收的帧同步实体 。然后 ,错误处理程 序将开始运作并告知应用层(见第 8章) 。在初始化过程中 ,监察触发器应关闭直到完全发送或接收 一 个报文 。 注 : 完整系统的矩阵信息不需要被每个帧同步实体识别 。每个帧同步实体知道发送其自身的报文(发送触发器 、发 送参照触发器) , 同时确认报文的接收(接收触发器)和验证参照报文的丢失(监察触发器)即可 。
8 时间主节点的初始化和容错
- 1 综述 在 CAN 总线上所有的时间触发和周期通信 ,都以参照报文为基础 ,通常在等距时间间隔内通过时 间主节点发送 。对于正常的总线通信来说 ,时间主节点的功能是必需的 ,系统启动和失效时间主节点的 替换单独考虑 。 为了从上一个参照报文开始监察 ,要使用发送参照触发器 、监察触发器和初始化监察触发器 。 只有 备用时间主节点才可能会使用发送参照触发器 。每当一个发送参照触发器(由参照触发器偏移修改)准 备就绪 ,帧同步实体就会尝试发送一个参照报文 。这个过程将持续进行 ,直到它接收到一个参照报文或 是成功的发送了一个参照报文才停止 。 除此之外 ,如果总线不是空闲状态 , 当发送参照触发器已经准备 就绪 ,在发送自己的参照报文之前 ,帧同步实体将检查在总线上的最后一个信息是否是参照报文 。在一 个备用的时间主节点里 ,有两个发送参照触发器 :一个用于周期型情况 ,另一个用于事件同步情况(在最 后的参照报文的下个间隔位后发送) 。 假如很长时间没有发送参照报文 , 比如 :在总线受到强烈干扰期间 ,所有备用时间主节点经过多次 重试发送参照报文 ,帧同步实体特定的监察触发器将会工作 。如发送参照触发器 , 同样有两个监察触发 器 :一个用于周期情况 ,另一个用于事件-同步情况 。 这也适用于时间接收帧同步实体 。 然后应启动 一 个错误处理程序 ,并通知应用程序(见 9. 3. 8) 。
8.2 初始化程序
一个时间触发总线网络的 8个帧同步实体都有可能是备用的时间主节点 ,一旦建立起正常的时间 触发通信总线 ,只有其中的一个会成为当前的时间主节点 。在系统启动 ,硬件复位后 ,所有备用的时间 主节点都将发挥功能 ,试着发送一个参照报文 ,按照特定的优先权和等待时间 。具有最高优先权的帧同 步实体将使用总线的最高 CAN标识符优先权 ,在硬件复位之后 ,它将在最短的时间内开始发送 。不同 的备用时间主节点的参照报文优先权 ,可能只是 3个最低有效位有所不同(标示符剩下的最高有效位都 一样) 。 系统设计时 ,应确保网络中任何的帧同步实体都能对其识别 。 在硬件复位后 ,本地时间 ,全局时间和周期时间都将归零 。本地时间将在 TUR 配置完成后启动 。 当配置模块停止后 ,帧同步实体(节点)应初始化并准备接收报文 。 当状态进入到 “同步 ”时(见 9. 4. 2) , 周期时间将归零 。全局时间将会被认为是无效的 ,直到完成时间触发总线网络的同步 。涉及事件同步 通信的发送参照触发器 ,应在备用时间主节点中 ,引起参照报文的发送 。具有最高优先级的帧同步实体 应使用具有最低时间标志的发送参照触发器 。 只有作为时间接收器的帧同步实体 ,应在通知应用程序 之前 ,对于第一个参照报文等待一段特定的时间 。 当配置模式停止后(见 10. 1. 2. 2) ,监察触发器应被禁用 , 同时初始化监察触发器将会监控总线上的 报文 。初始化监察触发器的值应是 216 -1,它是周期时间的最大值 。在满足初始化监察触发器的时间 标志之前 ,第一次成功接收或发送任何报文 ,监察触发器应使能 ,初始化监察触发器应禁用 。如果满足 了初始化监察触发器的时间标志 ,所有的数据帧的发送都被禁用 ,并通过初始化监察触发器达到的信号 来通知应用层 。在满足初始化监察触发器的时间标志后 ,CAN节点仍然可以接收(响应)CAN报文 ;然 而 ,周期时间和全局时间将会被认为是无效的 ;通过参照报文的接收或(备用的时间主节点)进入和离开 配置模式来重新启动 “同步 ”, 同时监察到两个连续的参照报文完成接收或发送(如果它接收最后的参照 报文不包含固定的中断) 。 注 : 引入这个机制是为了解决网络中严重的唤醒时 间 不 同 的 状 况 。在 这 种 情 况 下 ,备 用 的 时 间 主 节 点 在 找 到 相 关 方给予应答之前 ,需要很长一段时间 。 参照触发器偏移修改发送参照触发器的时间标志 。发送参照触发器的时间标志与参照触发器偏移 的和确定了发送开始的标志 。参照触发器偏移的值取决于主节点状态和初始化状态 。在当前主节点工 作期间 ,参照触发器偏移为 0,对于另一个备用的时间主节点的参照触发 器 偏 移 等 于 初 始 化 参 照 偏 移 量 ,初始化参照偏移量是一个由配置规定的正值 。在复位之后 ,所有备用的时间主节点 ,从参照触发器 偏移等于初始化参照偏移量开始 ,用于事件同步通信的发送参照触发器把主节点状态作为时间主节点 的备份 。 如果一个备用的主节点有比当前主节点较高的时间主节点优先权 , 同时它的参照触发器偏移是正 值 ,那么应把它的参照触发器偏移重置为零 。如果一个备用的时间主节点在同步模式时间表里 ,且参照 触发器偏移不是正值 , 同时在接收参照报文时 ,具有较低的时间主节点优先权 ,那么它的参照触发器偏 移值将减小 1,直到它成功的发送或接收一个具有更高优先级的信息 。参照触发器偏移的值在 -127~ 127 的范围内 。 任何时候一个备用的时间主节点接收一个高于它自身优先级的参照报文 ,它的参照触发器偏移就 等于初始化参照偏移 ,并且改变它的主节点状态来备份时间主节点 。如果它成为当前的时间主节点(通 过成功发送一个参照报文) ,那么它的参照触发器偏移应等于零 。 当所有的帧同步实体 开 始 总 线 活 动 时 , 具 有 最 高 优 先 级 的 帧 同 步 实 体 应 是 网 络 中 当 前 的 时 间 主 节点 。 复位后 ,一个帧同步实体将考虑在第二个连续的参照报文之后与网络同步(如果接收到的参照报文 不包含一个中断位) 。直到一个帧同步实体与网络同步 ,它才不发送信息(备用的时间主节点 :参照报文 除外) ,也不更新消息对象的 MSC, 以及认为它的全局时间是无效的 。
8.3 当前时间主节点故障
任何时候只要发送参照触发器激活(包括利用参照触发器偏移修改的) ,那么应请求发送参照报文 。 该请求会一直保持着 ,直到参照报文全部完成(发送或接收) 。 只要当前的时间主节点 ,在正确的调度表内发送它的参照报文 ,对于其他的备用时间主节点来说此 时总线不是空闲的 ,且不发送其他参照报文 。 当前时间主节点未能发送一个参照报文时 ,总线保持空闲状态 ,且带有最短时间初始化参照偏移的 备用时间主节点 ,一旦其发送参照触发器到达(包括利用参照触发器偏移修改的) ,就会发送一个参照报 文 ,并且成为当前时间主节点 。如果有两个备用时间主节点在同一时间发送参照报文 ,位仲裁机制应确 保具有最高优先级的一个成为时间主节点 。如果 ,除了两个具有竞争性的备用主节点之外 ,一个具有较 低优先级的备用时间主节点由于未完成同步而较早开始发送参照报文 ,则不会发生仲裁 。在初始化期 间 ,具有更高优先级的备用时间主节点将减少它的参照触发器偏移值 ,直到成功发送参照报文为止(或 接收另一个具有更高优先级的参照报文) 。 当一个参照报文被错误干扰时会根据更新的主节点参照标志立即重发 。 当一个预期的参照报文丢 失时间太长时 ,任何一个帧同步实体都将提供一个激活的监察触发器 。在这种情况下 , 同步看门狗将通 知应用层 ,并且开启一个错误处理程序 。 当一个故障的时间主节点与有效的时间触发通信系统重新联 机时 ,它需要等待网络同步直到重新成为当前的时间主节点 。 注 : 用一个固定的中段位(见 6. 6)观察两个连续的参照报文是错误的 。
8.4 关机
时间触发 CAN 总线的休眠是通过上层实现的 , 比如应用层或容错层 。本文件未规定上层相关的 内容 。
9 故障处理
- 1 综述 ISO 11898-1中规定了 CAN故障 。 当一个帧同步实体发现调度安排错误时 , CAN 协议规范按照 ISO 11898-1的说明发出错 误 指 示 被 禁 止 。 在 系 统 矩 阵 中 , 所 有 明 确 的 通 知(错 误 报 文) 都 会 被 处 理 。 有效的故障禁闭 , 由更高层或是应用程序来决定 ,帧同步实体有错误检测和故障消除功能 。 下面的错误检测机 制(严 重 度 S1至 S3) , 应 包 括 在 内(初 始 化 过 程 中 处 理 缺 失 参 照 报 文 , 见 第 8 章) 。 — 调度错误 1(S1)被 设 置 , 如 果 在 一 个 矩 阵 周 期 中 , 一 个 帧 同 步 实 体 的 所 有 报 文(专 用 时 间 窗 口) ,在最高报文状态计数值与最低报文状态计数值之间的差值大于 2,或是其中一个专用的 接收报文对象的报文状态计数值达到了 7。在一个矩阵周期内 ,如果这些情况都是无效的 ,则 该位复位 。 — 发送下溢(S1)被设置 ,在一个新的矩阵周期开始时 , 发送计数小于预期发送触发器 。 在一个 新的矩阵周期开始时 , 当发送计数在最小的预期发送触发器 ,则需要复位 。 — 调度错误 2(S2)被设置 , 当一个传输报文对象的报文状态计数值达到了 7。 当传输的报文对象 的报文状态计数值没有达到 7 时 ,则该位被复位 。 — 发送上溢(S2)被设 置 , 当 发 送 计 数 等 于 或 大 于 预 期 发 送 触 发 器 的 值 , 发 送 触 发 器 事 件 发 生 。 当一个新的矩阵周期 ,其发送计数不超过预期发送触发器时 ,将该位被复位 。 — 应用程序看门狗(S3) :程序看门狗没起作用 。通过设置应用程序的 Host_Alive_Sign,重置看 门狗 。 时间触发 CAN 一 旦 被 设 置 成 操 作 模 式(时 间 触 发 或 事 件 同 步 发 生) , 程 序 看 门 狗 就 启动 。 — 总线关闭(S3) : 由于总线特有的错误 ,导致控制器进入总线关闭 。 — 配置错误(S3) :一个合并的仲裁窗口没有正确的关闭 , 或带有时间标志的发送触发器超出了 发送参照触发器 。 — 监察触发器超范围(S3) :监察触发器由于参照报文的缺失而超范围 。 S3的错误一直保持有效 ,直到应用程序更新配置为止 。 四种错误级别的严重性说明 :无错误(S0) 、警告(S1) 、错误(S2) 、严重的错误(S3) 。如果几个错误 同时出现 ,应以最高级的错误为准 。严重的级别代表帧同步实体的错误状态 。 当检测到错误时 ,应通过 更新中断状态矢量的方法通告应用程序(见 10. 2. 2) 。 a) S0— 无错误 。 b) S1— 警告 : 只通知应用程序 ,反应到应用层特征中 。 c) S2— 错误 :通知应用程序 。在专用或 仲 裁 时 间 窗 口 的 所 有 传 输 都 被 禁 止 。 (也 就 是 没 有 开 始数据或远程帧的传输) 。备用的时间主节点可能仍传输接收触发器偏移值设置为 127 的参 照报文 。 d) S3— 严重的错误 :通知程序显示 。所有的 CAN 总线操作都停止 ,也就是不应该显性位的传 输 。应用层服务请求 ,要求更新时间触发 CAN 帧同步实体的配置 。 错误等级机制如下 : — 在等级 S3中 ,至少一个 S3错误监控机制是开启的 ,否则 — 在等级 S2中 ,至少一个 S2错误监控机制是开启的 ,否则 — 在等级 S1中 ,至少一个 S1错误监控机制是开启的 ,否则 — 应处于等级 S0中 。
9.2 报文状态计数
报文状态计数(范围从 0~ 7)是一个错误计数 ,它提供在专用时间窗口周期报文检测调度错误的方 法 。对于仲裁窗口没有报文状态计数 。专用时间窗口的每一个报文对象都有自己的报文状态计数 。报 文状态计数的增加或者减小在限制外是不被允许的 。 当任何报文的报文状态计数到达一个等级是 7 的 错误水平 ,那么错误处理程序将被启动 。一个显著的区别 ,在一个矩阵周期中不同报文的报文状态计数 之间的差值大于 2将被指示程序错误 ,例如 :在前一个时间窗 口 中 ,信息传输时间过长或是开始时间太 晚 。报文状态计数在配置过程中复位为零 ,而且在本地帧同步实体同步之前不更新 。 对于报文接收来说 ,报文状态计数应在报文接收触发器触发时更新 。接收触发器应检查报文是否 在当前基本周期开始时或在这个报文的最后的接收触发器时已经接收到 。如果检查不成功 ,那么报文 状态计数将加 1,否则减 1。 对于报文传输来说 ,如果尝试传输没有成功 ,报文状态计数应加 1。对于错误等级为 S0、S1或 S2, 报文状态计数减少的情况是不一样的 。 当报文传输成功时 ,报文状态计数将减 1。在 S2(所有的传输被 禁止)中 , 当帧同步实体在此报文时间窗口的发送使能窗口中检测到总线闲置 ,报文状态计数将减 1。 如果总线受到干扰 ,在干扰期间 ,所有发送或接收报文的报文状态计数都应增加 。
9.3 中断状态矢量
9.3. 1 综述 对于错误指示 ,时间触发 CAN将使用中断状态矢量(见 10. 2. 2) 。对于每个错误检测机制 ,在中断 状态矢量应有一位来表示 。相应的机制检测到一些错误应设置对应的位 。一个给定的执行程序 ,应提 供如下所述的错误检测机制 。它也提供附加的错误检测机制 。 帧同步实体至少为应用程序提供一个中 断线 。在中断状态矢量中的每个中断源 ,都能由中断使能分别激活 。 中断状态矢量的更新与中断使能 无关 。 中断使能寄存器应激活中断源到中断线的访问 。 注 : 每一种错误检测机制的等级 , 已经在 9. 3. 2~ 9. 3. 9 中列出 。
9.3.2 调度错误 1(S1)
调度错误 1(S1)将被置位 ,如果在一个矩阵周期中 ,一个帧同步实体的最高报文状态计数值与最低 报文状态计数之间的差值大于 2;或是专用的接收报文对象的报文状态计数的值达到 7。
9.3.3 发送下溢(S1)
在一个新的矩阵周期开始时 ,发送计数小于预期发送触发器 。
9.3.4 调度错误_2(S2)
当传输的报文对象的 MSC达到 7 时 ,调度错误应置位 。
9.3.5 发送上溢(S2)
发送计数等于或大于预期发送触发器的值同时引起发送触发器事件发生 。
9.3.6 应用程序监控(S3)
程序看门狗没起作用 。通过设置应用程序的 Host_Alive_Sign,重置看门狗 。 时间触发 CAN 一旦 被设置成操作模式(时间触发或事件同步发生) ,程序看门狗就启动 。
9.3.7 总线关闭(S3)
由于总线特有的错误 ,导致控制器进入总线关闭 。 9.3. 8 配置错误(S3) 一个合并的仲裁窗口没有正确的关闭 ,或带有时间标志的发送触发器超出了发送参照触发器 。
9.3.9 监察触发器超范围(S3)
由于参照报文丢失导致监察触发器激活 。 注 : 在一个备选的时间主节点里 ,如果参照报文被之前的发送参考触发器反复干扰 ,那么会导致一个监察触发器超 范围 。在事件同步基本周期的系统里 ,对于两个 发 送 参 照 触 发 器 有 不 同 的 监 察 触 发 器 。 当 一 个 发 送 参 照 触 发 器没被激活时 ,那么相应的监察触发器也是无效的 。
9.4 主节点状态
9.4. 1 综述 主节点状态有 6个位向量 ,包括关于帧同步实体的错误状态 、同步和主从关系 ,也就是一个三元组 (错误等级 、同步模式 、主从模式) 。按照 9. 1所述 ,错误等级是一个具有四个状态 S0、S1、S2、S3 的两个 位的向量 。其他组成部分 , 同步模式和主从模式也都是两个位的向量 ,在 9. 4. 2 和 9. 4. 3 中给出了详细 说明 。 主节点状态的完整状态机是三个状态机的总和 。
9.4.2 同步模式
同步模式中的两个位描述如下 : — 同步关闭状态 :在程序中没有同步活动 ; — 同步状态 : 帧同步实体在同步过程中 ,但尚未同步 ; — 间隔中状态 : 帧同步实体已经同步 ,有预期间隔 ; — 调度中状态 : 帧同步实体已经同步 ,没有预期间隔 。 状态机跳转见图 9。 标引序号说明 : TS0— 转换条件是必要的 ; TS1— 配置模式停止 ,周期时间为零 ; TS2— 至少检测到两个连续的参照报文(最后一个参照报文不包括设置中断位) 最后的参照报文包含一个下个间 隔位 ; TS3— 至少检测到两个连续的参照报文(最后一个参照报文不包括设置中断位) 最后的参照报文不包含一个下个 间隔位 ; TS4— 在参照报文中检测到下个间隔位= 1; TS5— 在参照报文中检测到下个间隔位= 0;
1 —————— 或; (模式= 配置)或(错误状态= S3) ;
3 — 同步中 ;
4 — 间隔中 ;
5 — 调度中 。
图 9 同步模式状态机跳转
9.4.3 主从模式
这个两位的主从模式 ,应说明以下含义 : — 主节点状态关闭 ,代码为 0:无主节点特性 ; — 从节点状态 ,代码为 1: 帧同步实体为时间接收帧同步实体 ; — 备份主节点状态 ,代码为 2: 帧同步实体是备用的主节点 ,但不是网络的当前主节点 ; — 当前主节点状态 ,代码为 3: 帧同步实体是网络的当前主节点 。 状态机如图 10所示 。 标引序号说明 : TM0— 转换条件是必要的 ; TM1— 帧同步实体不是备用的主节点 ,检测到参照报文 ; TM2— 帧同步实体是备用的主节点 ,错差状态不是 S2或 S3,检测到的参照报文的主节点优先级不等于他自己的 主节点优先级 ; TM3— 帧同步实体是备用的主节点 ,错误状态不是 S2或 S3,检测到的参照报文的时间主节点优先级等于他自己 的主节点优先级(参照报文由帧同步实体自己传输) ; TM4— 当其检测到参照报文是他自己的时间主节点优先级时 ,帧同步实体从备用主节点变为当前主节点 ; TM5— 当其检测到参照报文的时间主节点优先级高于自己的时间主节点优先级 , 帧同步实体从当前主 节 点 变 为 备用主节点 ; TM6— 错误状态为 S2; TM7— 错误状态为 S2;
1 — 硬件重置或(模式等于配置)或(错误等级为 S3) ;
2 — 主节点关闭 ;
3 — 备份主节点 ;
4 — 从节点 ;
5 — 当前主节点 。
图 10 主从模式状态机跳转
10 可视接口
- 1 配置接口
-
- 1 综述 通过锁定配置接口来防止随机变化 ,可以验证接口的初始化是否正确 ,并且读取配置数据 。
- 1.2 通用配置接口
- 1.2. 1 时间单元比率配置 有 3个寄存器设置 TUR: a) 第一个寄存器(TUR配置)应在初始化期间由应用程序写入 ; b) 第二个寄存器(TUR调整)用于与外部时间的同步 ; c) 第三个寄存器(TUR实现) 受偏差修正的影响 ,且对应用程序只读 ; 另外 ,此寄存器应由 FSE 内部使用 ,在启动时从 TUR配置中加载 ,而在同步命令时从 TUR调整中加载 。 所有的值都可以被程序读取 ,这 3个寄存器的格式能够特定实现 。
- 1.2.2 操作模式 可以允许的模式有 : — 配置模式 ; —CAN 总线通信 ; — 时间触发通信 ; — 事件同步时间触发通信 。 操作模式第一次只可改变到配置模式 ,然后才能改变为其他模式 。
- 1.2.3 时间触发 CAN等级 使用一位来区分等级 1 和等级 2。
- 1.2.4 主从状态 一位可以区分(备用)时间主节点和从节点 。
- 1.2.5 外部时钟同步 在运行期间(只有在总线等级 2) ,使用一位来表示是否允许外部时钟同步 。
- 1.2.6 中断使能寄存器 对于应用接口(中断状态矢量)中的每个中断源 , 中断使能寄存器都应包含一个使能位 。
- 1.2.7 应用看门狗限定 在应用看门狗限定时间 256NTUs 中 , 应 用 看 门 狗 限 定 是 一 个 8 位 的 值 , 用 来 说 明 应 用 看 门 狗 的 周期 。
- 1.3 系统矩阵
- 1.3. 1 说明 在初始化过程中 ,通过应用程序读/写系统矩阵配置 ;在时间触发通信期间 ,系统矩阵将被锁定 。节 点的系统矩阵由不同的发送触发器 、接收触发器和发送参照触发器组成 。
- 1.3.2 触发器 触发器的配置数据包含几个不同的部分 : a) 第一部分是参照报文是否有效 ; b) 第二部分是被激活的时间标志 ; c) 第三部分包含首次被激活的传输列中的数据 ; d) 第四部分是重复因数 。 另外 ,触发器还包括关于仲裁或是专用窗口的信息 。
- 1.3.3 合并 对于每个发送触发器 ,它应标明属于这个触发器的时间窗口是否与接下来的窗口合并 。
- 1.3.4 监察触发器 对于一个帧同步实体的监察触发器 ,包括一个时间标志和操作模式(事件同步或时间触发) 的代码 说明 。
- 1.3.5 初始化参照偏移 对参照触发器偏移的初始化来说 ,初始化参照偏移是一个 8位的值 。
- 1.3.6 预期发送触发器 预期发送触发器是一个 8位的值 ,在一个矩阵周期中 , 限制了 FSE传输报文的数量 。
- 1.3.7 发送使能窗口的长度 发送使能窗口的长度是一个 4 位的值 , 表 示 传 输 开 始 期 间 的 时 间 长 度(1-16位 标 准 CAN 的 位 时 间) 。
- 1.3. 8 周期计数最大值 周期计数最大值是一个值 ,用来说明系统矩阵中最后基本周期的数目 。一个帧同步实体的上限是 63(见 5. 3. 2) 。
- 1.4 消息对象 每一个发送触发器 、接收触发器和发送参照触发器都有一个报文对象 ,报文对象在初始化期间可以 配置 ,并在时间触发操作过程中可以被更新 。 发送触发器和接收触发器的报文对象应为 LLC帧提供存储 ,根据 ISO 11898-1,并提供控制和状态 信息以及 3位报文状态计数 。 发送参照触发器的报文对象会为参照报文的标示符和数据长度代码提供存储 ,参照报文的部分数 据由帧同步实体提供 。 参照报文标示符的最后 3位将指定帧同步实体的时间主节点优先权 。
10.2 应用界面
10.2. 1 一般应用界面 10.2. 1. 1 时间控制器优先级 时间主节点优先权用 3个位的值(参照报文的最后 3位数据)表示当前主节点的优先级 。 10.2. 1.2 主节点状态 主节点状态是结合了一个帧同步实体钟错误范围 、同步和主从关系 , 即一个三元组(错误等级 、同步 模式 、主从模式)的六位矢量值 。 10.2. 1.3 全局时间 全局时间参数是一个计算 NTU 的 16位的值 。 10.2. 1.4 周期时间 周期时间参数是一个计算 NTU 的 16位的值 。 10.2. 1.5 周期计数 周期计数参数是一个表示当前基本周期数目的值(0~ 63) 。 10.2. 1.6 等待事件 等待事件只有一位 , 表 示 上 一 个 参 照 报 文 接 收 到 下 个 间 隔 位 , 它 在 下 一 个 基 本 周 期 开 始 阶 段 被 重置 。 10.2. 1.7 参照触发器偏移 参照触发器偏移包含一个只读的 8位值 。 10.2. 1. 8 时间单元比率实现 时间单元比率参数包含一个只读位 。 10.2. 1.9 报文状态计数 MSC只用在专用时间窗口中的报文传输 。
10.2.2 中断状态矢量
10.2.2. 1 说明 时间触发 CAN 的帧同步实体应为应用程序提供至少一条中断线 。应提供多个中断源 , 每个中断 源可以单独使能(中断使能) 。 中断状态矢量的更新与中断使能寄存器无关 ,允许两种应用程序 , 即中断 驱动和查询 。每个已经置位的中断状态矢量都会保持置位 ,直到通过程序复位 。 中断使能寄存器应激 活中断源到中断线的访问 。 中断矢量应包含可操作中断源和错误检测 ,这些中断源如下所示 。一个特定的实现可能会提供额 外的中断源 。在这些实现中 ,相应的中断使能也包含这些中断源 。
10.2.2.2 可操作中断源
可操作中断源包括以下这些方面 : — 开始基本周期 ; — 开始系统矩阵 ; — 同步事件(在最后的参照报文中接收到下个间隔位) ; — 中断标志(一个状态标志 ,标示在全局时间中发生的中断) ; — 变化主节点状态(本地帧同步实体改变其主节点状态) ; — 全局时间溢出(全局时间溢出) ; — 初始化监察触发器(初始化监察触发器达到) 。
10.2.2.3 错误检测中断源
错误检测中断源包含(见 9. 3) : — 应用看门狗 ; — 发送上溢 ; — 发送下溢 ; — 调度错误 1; — 调度错误 2; — 监察触发器达到 ; — 总线关闭 。
10.2.3 应用接口控制
10.2.3. 1 主节点激活标记 应用程序应定期对主节点激活标记进行访问 , 目的是服务时间触发帧同步实体的应用看门狗 。
10.2.3.2 设置下个间隔
当前时间主节点的应用程序会设置下个间隔位来控制事件同步时间触发通信 。在包含下个间隔位 的参照报文发送后 ,时间触发 CAN 总线 FSE会把这个位复位 。可操作的中断源同步事件也应在时间 主节点中被设置 。
10.2.3.3 间隔结束(1个位)
间隔结束只包含一位 ,应用程序会通过设置间隔结束位开始下一个基本周期 。 当基本周期从带有 下个间隔位的参照报文完成后时启动时 ,该功能被启用 。
10.2.3.4 设置时间命令
设置时间命令用于当前时间主节点应用程序通过全局时间预设置(调整阶段)的数量去改变网络中 全局时间的值 。此命令在下个基本周期开始生效 ,参照报文的不连续位应在下个基本周期的开始阶段 设置 。
10.2.3.5 全局时间预设置
全局时间预设置参数值 ,包括网络中预期全局时间和当前全局时间的差值 ,全局时间预设置的内容 由应用程序写入 。在下个基本周期开始时 ,这个值会添加到时间主节点的本地偏移中 ,此后作为当前全 局时间(调整阶段) 。
10.2.3.6 外部时钟同步命令
外部时钟同步命令用于通过时间主节点的应用程序同步外部时钟(频率调整) 。应用程序会针对时 间单元比率写入一个新的值到时间单元比率调整中 ,并且激活外部时钟同步命令 ,然后将这个值传送到 时间单元比率实现中 。
10.2.3.7 时间单元比率调整
时间单元比率调整 ,用于调节外部时钟的内部时钟 。
10.3 可选接口
10.3. 1 说明 以上规定的接口都应符合本文件的需求 ,实际中可能还有其他接 口 , 以下是对系统内的描述 ,在此 作为可选内容 。
10.3.2 失效中断
失效中断是一个配置接 口 ,它用来禁止中断位 , 因此在全局时间内的连续性将会被释放 。
10.3.3 不同步参数
不同步参数标明帧同步实体与全局时间主节点不同步 。
10.3.4 同步偏差
仅对于等级 2, 同步偏差参数是参照报文中的全局参照标志与全局同步标志之间的最大误差 。
10.3.5 同步质量
仅对于等级 2, 同步质量表明了同步偏离是否超过了预先的设定值 。
10.3.6 全局时间小数
仅对于等级 2,全局时间小数表示全局时间的小数部分 。
10.3.7 失效全局时间滤波
仅对于等级 2,失效全局时间滤波表示全局时间滤波失效 。 10.3. 8 使能时间单元比率修复 仅对于等级 2,使能时间单元比率修复允许当前时间主节点逐渐恢复到它的时间单元比率配置值 。
| 参 考 文 献 | ||
|---|---|---|
| [1] GB/T 41588. 1 | 道路车辆 | 控制器局域网(CAN) 第 1部分 :数据链路层和物理信令 |
| [2] GB/T 41588. 2 | 道路车辆 | 控制器局域网(CAN) 第 2部分 :高速媒介访问单元 |
| [3] GB/T 41588. 3 | 道路车辆 | 控制器局域网(CAN) 第 3部分 :低速容错 、媒介相关接 口 |
. 中 华 人 民 共 和 国 国 家 标 准 道路车辆 控制器局域网(CAN) 第 4 部分 : 时间触发通信 GB/T 41588. 4—2022/ISO 11898-4:2004 * 中 国 标 准 出 版 社 出 版 发 行 北京市朝阳区和平里西街甲 2 号(100029) 北京市西城区三里河北街 16号(100045) 网址:www. spc. org. cn 服务热线 :400-168-0010 2022年 7 月第一版 * 书号 : 155066 · 1-70284 版权专有 侵权必究
版权与来源说明:本页全文提取自已授权收录的标准文件(来源:标准官方发布版本)。全文仅供学习与研究使用,请遵守标准版权条款;商业使用请通过官方渠道(ISO / 国家标准全文公开系统)获取正式版本。 内容说明:正文由原始文件自动提取并整理排版(保留章节结构与表格),个别格式/字符可能与原版有差异,关键参数请以官方正式版本为准。