• 303查看
  • 0回复

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

[复制链接]


该用户从未签到

发表于 5-3-2024 16:47:26 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


一、网络管理功能的目的

->解决蓄电池电量有限,如果整车控制器同时工作会造成电池亏电的问题。通过网络管理功能,当用户需要请求相关功能时,参与该功能的相关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从休眠模式进入待机模式后开始正常工作。


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

三、网络管理功能的工作原理

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

      ->所有参与直接网络管理的ECU,建立逻辑环的通信机制:是由若干个节点组成的环状结构,每个节点都有一个逻辑上的后继节点,而最后一个节点的后继节点又是第一个节点,这样就组成了一个环状的结构。NM 报文以这种令牌环机制依次发送形成逻辑环;网络管理报文ID从小到大发送,然后从最大节点到最小节点依次建成逻辑环。

唤醒后建立逻辑环过程:申请和传递的路径。

1) 控制器唤醒后想参与网络的节点会先发Alive报文申请加入逻辑环。

2)逻辑环建成后,各节点按顺序发Ring报文向后续节点传递“令牌”。

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



    每个参与网络管理报文包括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 报文后同步进入等待睡眠状态;如果在进入等待睡眠状态后 tWaitBusSleep 时间内,网络中所有 ECU 没有检测到中断事件,将同步进入睡眠状态。如果ECU 监测到中断事件,则 ECU 重新发送 Alive 报文,重新建立逻辑环;如果应用程序需要 CAN 通信,睡眠指示位将被复位,此时 ECU 睡眠条件不满足,即 Sleep.Ind=0;当应用程序不再需要 CAN 通信,此时 ECU 睡眠条件满足,在下次发送 NM 报文时会将其睡眠指示位置位,即Sleep.Ind=1。

四、网络管理报文格式

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

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工具及其上位机软件。

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

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

测试项目主要包括:逻辑环测试、睡眠状态测试、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发送报文RTRbit位,确保进入busoff状态,通过canoe trace窗口检查Tbusoff的时间。

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-2-2025 10:42 , Processed in 0.302563 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.