关闭

汽车控制器CAN网络管理解析及测试方法(OSEK)

发表于:2023-6-06 09:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:汽车电控技术开发    来源:懂车帝

  一、网络管理功能的目的
  解决蓄电池电量有限,如果整车控制器同时工作会造成电池亏电的问题。通过网络管理功能,当用户需要请求相关功能时,参与该功能的相关ECU节点才需要启动起来。
  协调各 ECU 同时进入网络睡眠模式;车载控制器网络管理功能就是通过在各个ECU的网络上,发送一些命令制定一套规则,来实现整车各个ECU的协同睡眠和唤醒。按照唤醒方式,我们可以将ECU网络节点类型划分为本地唤醒与远程唤醒。本地唤醒:唤醒源来源于自身模块,比如KL15硬线唤醒;远程唤醒:唤醒源来源于自身ECU节点所在的网络报文,该节点可以处于完全休眠状态;
  二、结合硬件电路说说网络管理功能
  为了支持睡眠和唤醒,ECU的芯片必须支持低功耗模式和正常工作模式的切换。低功耗模式(ECU睡眠)指一个ECU断电或者处于极少数的外围器件工作的模式;唤醒指的是ECU处于全工作模式。
  休眠机制:控制器在一段时间接收不到CAN网络管理帧,控制器的主芯片MCU通过GPIO口控制TJA1043 CAN芯片管脚STB_N为低电平和管脚EN为高电平,经过最小保持时间后芯片进入休眠模式,CAN芯片INH管脚置低。TLE8366电源芯片使能管脚EN置低(INH连接至电源管理芯片EN脚),停止输出主5V电源,主芯片不工作,整个控制器断电不再工作。TJA1043进入低功耗状态,仅由汽车电池对管脚VBAT提供基础工作电源。
  唤醒机制:控制器收到CAN网络管理帧,TJA1043短时唤醒,INH管脚置高。电源芯片使能管脚EN置高(INH连接至电源管理芯片EN脚)开始输出主5V电源,主芯片开始工作,MCU进入工作状态后立即控制CAN TJA1043芯片管脚STB_N为高电平和EN为高电平,使TJA1043从休眠模式进入待机模式后开始正常工作。
  三、网络管理功能的工作原理
  所有参与直接网络管理的ECU,建立逻辑环的通信机制:是由若干个节点组成的环状结构,每个节点都有一个逻辑上的后继节点,而最后一个节点的后继节点又是第一个节点,这样就组成了一个环状的结构。NM 报文以这种令牌环机制依次发送形成逻辑环;网络管理报文ID从小到大发送,然后从最大节点到最小节点依次建成逻辑环。
  唤醒后建立逻辑环过程:申请和传递的路径。
  1) 控制器唤醒后想参与网络的节点会先发Alive报文申请加入逻辑环。
  2)逻辑环建成后,各节点按顺序发Ring报文向后续节点传递“令牌”。
  每个参与网络管理报文包括ID和目标地址、操作码、用户数据部分组成。ECU 都有一个特定的网络管理地址;网络管理报文类型分为 Alive 报文、Ring 报文和 LimpHome 报文,通过操作码的组合形式实现;
  当建立逻辑环,ECU 发送Ring 报文,接收到Ring 报文的其它 ECU 监控目标地址,判断是否被跳过,若被跳过则发送Alive 报文,提示其它 ECU 更新逻辑后继,重新建立逻辑环;
  逻辑环稳定时,ECU不需要 CAN通信时,该 ECU 将发送的 Ring 报文中设置SleepInd,以通知网络中其它 ECU。当逻辑环中所有的 ECU 都发送了设置 Sleep.Ind 的 Ring 报文,总线上所有 ECU 都满足睡眠条件的 ECU 会发送Sleep.Ack的 Ring 报文,网络中所有的 ECU 接收到设置 Sleep.Ack 的 Ring 报文后同步进入等待睡眠状态;如果在进入等待睡眠状态后 t WaitBusSleep 时间内,网络中所有 ECU 没有检测到中断事件,将同步进入睡眠状态。如果ECU 监测到中断事件,则 ECU 重新发送 Alive 报文,重新建立逻辑环;如果应用程序需要 CAN 通信,睡眠指示位将被复位,此时 ECU 睡眠条件不满足,即 Sleep.Ind=0;当应用程序不再需要 CAN 通信,此时 ECU 睡眠条件满足,在下次发送 NM 报文时会将其睡眠指示位置位,即Sleep.Ind=1。
  四、网络管理报文格式
  OSEK网络管理报文规则:
  ID:4xx,其中4代表此帧报文为网络管理报文,xx代表当前节点的基地址。在OSEK网络管理中会给每个节点分配一个基地址(00~FF)。
  Byte0: 网络管理报文发送的目标地址。表明网络管理报文是发送给哪个控制器节点。
  Byte1:代表发送的网络管理报文的类型即是ring报文还是Alive报文或者LimpHome报文;01:代表 Alive报文,在总线上声明自己的存在,请求其他节点与自己建环。02:代表Ring报文;12:代表当前节点已无通讯请求(睡眠标志位置位SleepInd=1),即告知其他节点我已满足睡眠条件;32:睡眠应答请求(SleepAck =1),当检测到其他节点都在发送12的ring报文后,最后节点发送此应答报文,此时进入睡眠等待状态。04:代表跛行报文,如果网络管理报文接收计数器和发送计数器超限后,发送跛行报文即无其他节点与此节点建环,只有一个节点存在。
  Byte2-Byte7:用户定义的数据。
  五、网络管理功能测试方法
  测试工具主要包括CANoe工具、CANStress工具、VN1640工具及其上位机软件。
  测试项目主要包括:逻辑环测试、睡眠状态测试、Limphome状态测试、逻辑环中新节点加入测试、本地唤醒请求测试、远程唤醒请求测试、结束唤醒测试、网络管理报文格式测试、TType/TMax/Terror/TWaitBusSleep等时间参数测试、网络管理错误处理测试。
  逻辑环测试
  CANOE工具模拟其它节点,通过KL15唤醒网络,通过CANOE模拟总线其它节点,与该节点进行建立逻辑环。
  睡眠状态测试
  CANOE工具模拟其它节点,通过KL15唤醒网络,通过CANOE模拟总线其它节点,并设置睡眠标志位为真,检测睡眠标志位为真,经过t时间后,总线进入睡眠模式。
  Limphome状态测试
  CANOE工具模拟其它节点,通过KL15唤醒网络,被测节点进入Limphome模式。
  逻辑环中新节点加入测试
  CANOE工具模拟其它节点,通过KL15唤醒网络,通过CANOE模拟总线其它节点,与该节点进行建立逻辑环,通过CANOE再模拟一个新的节点加入到逻辑环中。
  逻辑环中某节点退出测试
  CANOE工具模拟其它节点,通过KL15唤醒网络,通过CANOE模拟总线其它节点,与该节点进行建立逻辑环,通过CANOE停止模拟其中一个节点退出逻辑环。
  本地唤醒请求测试
  CANOE工具模拟其它节点,通过KL15唤醒网络,检查是否发出Alive及Ring报文
  远程唤醒请求测试
  CANOE工具模拟其它节点,通过CANOE模拟总线其它网络节点报文,检查是否有Alive报文发出。
  结束唤醒测试
  CANOE工具模拟其它节点,通过CANOE模拟总线其它网络节点报文,Alive报文发出后,进入Limphome模式,并发送SleepInd标志位。
  网络管理报文格式测试
  CANOE工具模拟其它节点,通过KL15唤醒网络,检查是报文格式及ID。包含Alive、Ring、Limphome、SleepInd、SleepAck、Dest等报文组合形式。
  TType/TMax/Terror/TWaitBusSleep等时间参数测试
  测试的Alive报文与Ring报文之间的时间参数TTyp、测试的Ring和下一帧Alive报文之间的时间参数TMax、测量时间参数TError是否满足协议要求的网络管理时间参数,NMNormal状态下TWaitBusSleep时间参数测试。
  网络管理错误处理测试
  使用CANOE模拟节点网络管理报文,让总线进入睡眠模式,通过本地唤醒,使用CANstress干扰DUT发送报文RTR bit位,确保进入busoff状态,通过canoe trace窗口检查Tbusoff的时间。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号