《2022年OSEK直接网络管理规范.pdf》由会员分享,可在线阅读,更多相关《2022年OSEK直接网络管理规范.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、OSEK 直接网络管理 (NM)规范OSEK 直接网络管理 (NM) 介绍OSEK 直接网络管理 (NM)赋予节点“消息地址”的概念, 即每个网络上的节点有唯一的标识号。NM规范没有定义最大的节点标识号, 但建议采用8 位地址 (0-255) 。虽然底层物理网络不支持消息地址, 但直接 NM要求间接实现对消息地址的支持。一个网关节点可连接不同的网络, 并且在每一网络中它的消息地址可能就是不同的。如图3 2 所示 :图 3 2 两个总线网络中的逻辑环结构在图 3 2 中, 子网 1 的 3 个节点在逻辑上形成一个环, 称之逻辑环 (LogicalRi ng)。逻辑环通过环消息 (Ring Mes
2、sage) 序列实现消息传输。环消息自低地址节点(ID 号小)向高地址节点 (ID 号大) 发送, 再由最高节点传回最低节点, 形成一个环。逻辑环上的消息交换机制如图3 3 所示: 图 3 3 逻辑环上的消息交换机制直接 NM 还要求网络广播的实现 , 允许异步广播 Alive 消息与 limpHome消息。Alive 消息指定网络上一个新的节点;ImpHome消息指定一个不再能工作的节点。NM 通过传输 NM 消息来确定网络的内部状态, 状态反映了 NM 当前运行时的信息。状态就是分层级的 , 总的内部状态如图3 4 所示: 精品资料 - - - 欢迎下载 - - - - - - - - -
3、 - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 5 页 - - - - - - - - - - OSEK 直接网络管理 (NM)规范图 3 4 OSEK网络管理总的内部状态当系统复位时 ,NM进入 NMOff状态; 调用 StartNM() 使得 NM 进入 NMOn 状态;调用 StopNM()使得 NM 进入 NMShutdown 状态。函数 StartNM() 与 StopNM()就是NM 的核心 API。StartNM() 初始化一个 NM逻辑环 ;StopNM() 改变 NM 的状态为NMShutdown, 执行清除操作 , 然后进入 NMOff状
4、态。其中,NMOn 状态又有如下子状态 ( 表 3、1): 表 3、1 NMOn的子状态NMOn 存在两组并行子状态 :NMInit 、NMAwake、NMBusSleep与 NMActive、NMPassive 。NMOn 的并行子状态如图3 5 所示: 图 3 5 NMOn的并行子状态当 NM 进入 NMOn 状态时 ,NMInit与 NMActive 就是其缺省的初始化状态。NMInit 就是 NM 组件内部的瞬时初始化状态。 完成初始化任务后 , 即转入 NMAwake精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - -
5、 - - - -第 2 页,共 5 页 - - - - - - - - - - OSEK 直接网络管理 (NM)规范状态并保持 , 直到转到总线睡眠的条件被满足才转入NMBusSleep状态。 当系统处于 NMBusSleep状态时 , 一旦接收到 NM消息, 即转入 NMInit 状态。在并行状态图中 , 当系统处于 NMActive 状态时 ,NM通信正常运行 ; 当SilentNM() 被调用时 , 本地节点进入 NMPassive状态, 并停止参与逻辑环组成。 为了返回 NMActive 状态, 只需调用 TalkNM()函数。系统执行完 NMInit 状态所要求的动作后 , 即转入
6、NMActive 状态。 NMAwake状态有如下子状态 (表 3、2): 表 3、2 NMAwake 的子状态NMAwake 的状态图如图 3 6 所示: 图 3 6 NMAwake的状态图NMReset 子状态就是进入 NMAwake 状态后的缺省状态 ,NM在此时重置 NM 的通信链路、有关的计数器、参数等。初始化完成,NM将检查 NM 消息就是否正确的收发, 然后转入 NMNormal状态并保持。一旦致命错误发生将切换到NMLimpHome 状态。 当系统处在 NMLimpHome 状态时, 系统将会传输一个周期性的LimpHome 消息。NM 继续监听网络 , 以便确定消息传输就是否
7、已被恢复从而切换回NMNormal状态。汽车网络上的节点就是多种多样的, 可能在不同时刻运行、 开关或激活 , 也有可能因节点或网络的故障而失效, 因此网络的配置就是变化的。 NM维护当前网络的配置 , 并可以按要求为应用程序提供这些信息。NM 识别两种配置 : 实际(Actual)配置与故障 (LimpHome)配置, 实际配置指示可访问的节点 , 而故障配置指示那些因故障退出逻辑环组成的节点。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 5 页 - - - - - - - - - - O
8、SEK 直接网络管理 (NM)规范NM 并不管理应用程序的模式(APPMODE), 但就是 NM 管理两个主要的操作模式,对应于内部状态的NMAwake(NMActive) 与 NMBusSleep 。 节点在 NMAwake 操作模式下, 参与逻辑环组成并监视网络上所有同处于NMAwake 模式的节点 : 如果一个节点进入 NMBusSleep 操作模式 , 就不再参与逻辑环上的NM 通信。NM 消息包含 NM 协议数据单元 (NMPDU) 。NMPDU 在通信网络上传输 , 其结构如图 3 7 所示: 图 3 7 NMPDU 的结构地址域包含源消息地址与目的节点地址。控制域包含关于消息类型
9、的信息,上述部分就是必选部分 , 而数据域则就是可选部分, 它包含特定应用程序的数据。为了易于标识 NM消息与其它消息 ,NM采用基地址 (ID_Base) 与窗口(Window_Mask)机制, 类似于 IP 中的网络号与子网掩码。 如果一条消息的 ID满足: ID & WINDOW_MASK = = ID_BASE 则认为该消息就是NM 消息。假设有一个子网 , 网络配置中有 4 个节点 ,ID 为1-4, 如果采用 8 位消息地址与 11位掩码 , 设定 ID_BASE 为 0 x700 及 WINDOW_MASK为 0 x7F8,那么来自集合 0 x701,0 x 702,0 x 70
10、3,0 x 704的任一条消息就就是NM消息。报警器的设计 : 直接 NM定义了 5 个报警器 , 并通过其控制逻辑环上消息的收发, 进而监控网络配置与节点状态。 比如节点从收到一个Ring 消息到重传该 Ring 消息的间隔时间 Ttyp 就就是报警器 Ttyp 控制的。详细定义如表3、3 所示: 表 3、3 NM所用报警器的定义逻辑环运行 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 5 页 - - - - - - - - - - OSEK 直接网络管理 (NM)规范调用 Start
11、NM() 启动直接 NM 时,NM执行一系列初始化操作 , 然后广播第一个NM 消息 Alive消息。 Alive 消息通知网络上的其它节点( 如果有的话 ), 当前节点加入逻辑环 , 并启动 Ttyp 报警器。 当一个活动节点接收到一个Alive 消息时 ,它将执行以下步骤 : 1、将发送节点作为在线节点添加到网络配置中; 2、本地节点确定新节点就是否为环中的逻辑后继节点。任何时候 , 如果数据链路层通知 NM 消息失败 , 则启动 Ttx 报警器 , 并增加计数器的值。 如果计数器超过一个设定的阀值,NM将进入 LimpHome 状态。 否则, 当 Ttx到时 NM重传消息。逻辑环与 80
12、2、5 令牌环类似 , 在网络中只有一个节点控制Ring 消息。当节点接收到 Ring 消息并且 Ttyp 定时器到时 , 发送该消息。 NM启动时在 Alive消息传输之后 , 网络处于瞬时状态 , 在该状态下总线上可能存在Alive消息与 Ring 消息, 以及不同的情况 : 1、如果接收到 Alive 消息, 如前所述节点更新配置与后继节点; 2、 如果在 Tmax到时之前 , 节点接收到一个 Ring 消息, 则取消定时器 , 并处理Ring 消息; 3、当 Ttyp 到时, 本地节点发送 Ring 消息; 4、 如果在本地节点发送Ring 消息到数据链路层与消息发送确认返回之间接收到
13、一个 Ring 消息, 节点将忽略该消息以确保Ring 消息的唯一性。当接收到一个 Ring 消息时 , 本地节点检查 NMPDU 的目的地址 , 根据该域的有效值, 采取如下操作 : 如果 Ring 消息的目的地址不就是本地节点, 取消 Ttyp 报警器 , 然后重启Tmax报警器。 NM检查源地址、目的地址操作码, 据此更新网络配置与切换状态; 如果 Ring 消息的目的地址就是本地节点, 取消 Tmax报警器 , 然后重起 Ttyp报警器。如果源节点在配置信息中标识为离线, 则更新为在线。当逻辑环中没有 Alive 消息传输 , 并且唯一的 Ring 消息沿逻辑环传递一周后,网络状态从瞬
14、时状态切换到稳定状态。当网络处于瞬时状态时, 数据中的数据无效。NM 提供了检测离线节点的机制, 如果 Tmax到时则 NM 将进入 NMReset状态试图重建逻辑环从而返回NMNormal 状态, 这样离线节点将被排除在新的逻辑环组成之外 ;NM还提供了检测节点被跳过的机制, 如果一个节点被挑过 , 它立即发送一个 Alive消息, 以通知其它节点它仍然在线。当节点因故障进入LimpHome 状态后 , 由报警器 Terror控制周期性的发送LimpHome 消息, 当 NM 被停止 , 或总线进入睡眠 , 或接收到来自网络的一个有效消息时( 意味着通信恢复 ), 进入 NMReset进行初始化。当节点收到其它节点的LimpHome 消息时 , 更新 LimpHome 配置与 Actual 配置。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 5 页 - - - - - - - - - -