新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 汽车CAN节点的低功耗设计及实现

汽车CAN节点的低功耗设计及实现

作者:马建辉 张云 胡代荣 孙常青时间:2018-02-27来源:电子产品世界收藏
编者按:满足OSEK NM规范的CAN节点进入休眠后,一方面可以被本地唤醒信号唤醒,另一方面可以被总线上的有效显性位唤醒,当本地唤醒信号的滤波电路滤除不掉杂波时,本地唤醒信号线上的杂波会唤醒本地CAN节点。当CAN物理层收发器电路滤除不掉总线上的毛刺时,总线毛刺也会唤醒CAN节点。为了防止CAN节点被错误唤醒,通过设计临时唤醒模式和唤醒确认模式,判断是否存在有效的本地唤醒条件或CAN报文,避免了CAN节点被误唤醒进而唤醒,整个网络,从而大大增加整车电流消耗的问题。

作者 / 马建辉1,2,3 张云1,2,3 胡代荣1,2,3 孙常青1,2,3 1、齐鲁工业大学(山东省科学院)(山东 济南 250353) 2、山东省科学院自动化研究所(山东 济南 250014) 3、山东省汽车电子技术重点实验室(山东 济南 250014)

本文引用地址:http://www.eepw.com.cn/article/201802/376165.htm

  *基金项目:山东省重点研发计划(重大关键技术)(编号:2016ZDJS03A04);山东省科学院创新工程专项《纯电动汽车关键技术研究及产业化应用》;山东省重点研发计划(编号:2016GGC01023)

  马建辉(1983-),男,助理研究员,研究方向:嵌入式及汽车电子。

摘要:满足 NM规范的进入休眠后,一方面可以被本地唤醒,另一方面可以被总线上的有效显性位唤醒,当本地的滤波电路滤除不掉杂波时,本地线上的杂波会唤醒本地。当CAN物理层收发器电路滤除不掉总线上的毛刺时,总线毛刺也会唤醒。为了防止CAN节点被错误唤醒,通过设计临时唤醒模式和唤醒确认模式,判断是否存在有效的本地唤醒条件或CAN报文,避免了CAN节点被误唤醒进而唤醒,整个网络,从而大大增加整车电流消耗的问题。

0 引言

  随着汽车功能和电子电气系统越来越复杂,常电供电节点也越来越多。现代汽车CAN网络大多遵循直接网络管理协议实现常电供电CAN节点的休眠和唤醒功能[1]。根据直接网络管理协议,所有常电供电CAN节点都满足休眠条件后,整个CAN网络协同进入睡眠状态,当某个CAN节点被本地唤醒条件唤醒后,它将向CAN网络上发送ALIVE报文唤醒整个CAN网络[2],其它CAN节点检测到CAN网络上出现有效的显性位时,CAN物理层收发器向CAN控制器的接收脚输出一个下拉脉冲,唤醒MCU和CAN节点,然后,被唤醒的CAN节点向总线上发送ALIVE报文,这些节点通过ALIVE报文完成网络建环。一般情况下,整车静态电流一般为唤醒状态下的几十分之一,甚至几百分之一。

  在一个实现了OSEK直接网络管理规范的CAN网络中,当CAN网络进入休眠状态后,CAN节点一方面可以被本地唤醒[3](一般为开关信号),一方面可以被总线唤醒。总线物理层收发器及其外围电路具备滤波功能,当总线上出现比较短的毛刺时,总线物理层收发器会过滤掉该毛刺,但是,由于CAN物理层规范对CAN信号的上升沿和下降沿有一定要求,它能过滤掉的杂波一般都只是微秒级,当总线上出现时间长度比较宽的毛刺时,物理层收发器便会在MCU的CAN控制器的接收引脚上产生一个低有效电平,这样,该CAN节点便会被唤醒,根据直接网络管理规范,除了自身被唤醒之外,它还会通过ALIVE报文唤醒其它CAN节点,使得整个CAN网络退出休眠状态,使得整车的电流消耗比休眠状态下的整车静态电流大几十倍,甚至上百倍,不仅大大增加了整车的电流消耗,还可能会造成蓄电池亏电无法启动发动机的情形[4]。本地唤醒条件也有类似的误唤醒问题。

  为了保证CAN节点不会被本地唤醒信号或者CAN信号误唤醒,本文设计了一种方法,只有在确实满足本地唤醒条件的情况下,或者总线上确实存在有效报文的条件下,节点才会被唤醒[5]

1 方案设计

  为CAN节点设计四种工作模式:唤醒模式、休眠模式、临时唤醒模式[6]和唤醒确认模式。其中,唤醒模式为正常工作模式,CAN节点电流消耗最大。休眠模式、临时唤醒模式和唤醒确认模式为低功耗模式,其中,休眠模式下的电流消耗最小。CAN节点的静态电流是指CAN节点在低功耗模式下的电流消耗[7],即在休眠模式、临时唤醒模式和唤醒确认模式下的平均电流消耗。四种工作模式跳转如图1所示。

  CAN节点上电后自动进入唤醒模式,并在休眠条件不满足的情况下保持唤醒模式。CAN节点满足本地休眠条件且整个CAN网络协同休眠后,CAN节点禁能CAN收发器和控制器[8],设置唤醒源,然后进入休眠模式。

  为了保证本地唤醒信号线上的杂波不会误唤醒CAN节点,进入休眠模式时只设置两个唤醒源——CAN信号和内部定时器。其中,CAN唤醒源能够保证当CAN总线上出现一个有效的显性位时,CAN节点会马上唤醒,内部定时器唤醒源定时值记为Tsleep,能够保证CAN节点被周期唤醒。

  临时唤醒模式保持时间为Ttempwake,在临时唤醒模式中轮询本地唤醒条件,不仅可以避免本地唤醒信号线的杂波唤醒MCU,减少了MCU的唤醒次数,降低了静态电流,还降低了对MCU唤醒中断引脚的需求。

  Tsleep和Ttempwake时间根据CAN节点静态电流约束条件和本地唤醒时间定义,为了保证功能的实时性,出现本地唤醒后,CAN节点要在一定的时间内向CAN网络上发送ALIVE报文唤醒其它节点,Tsleep越大,本地唤醒时间越长,Tsleep和Ttempwake的比值越大,CAN节点静态电流越小。

2 唤醒算法设计

  为了保证CAN节点不被总线毛刺和本地唤醒信号毛刺误唤醒,设计了临时唤醒模式和唤醒确认模式。在临时唤醒模式下,CAN节点轮询CAN控制器标志位和本地唤醒信号电平,在唤醒确认模式下,CAN节点查询CAN报文接收和本地唤醒条件是否有效。唤醒算法流程如图2所示。

  当节点进入休眠后,CAN信号或者内部定时器临时唤醒节点,进入临时唤醒模式,临时唤醒模式保持时间为Ttempwake,在临时唤醒模式期间轮询CAN控制器的唤醒状态位和本地唤醒信号的电平,如果CAN控制器唤醒状态位和本地唤醒信号电平一直无效,Ttempwake后CAN节点再次进入休眠模式。如果CAN控制器唤醒状态位有效或者本地唤醒信号电平有效,进入唤醒确认模式。

  在唤醒确认模式中,如果CAN控制器唤醒标志位有效,使能CAN物理层收发器和CAN控制器,根据该CAN网络的波特率,设定一定的滤波时间(记为Tfilter),检查该段时间以内是否接收到CAN报文,如果接收到,说明这是有效的CAN报文唤醒,CAN节点进入唤醒模式,如果没有收到,说明CAN节点是被总线上的毛刺唤醒的,这时,节点返回休眠模式。在唤醒确认模式中,如果本地唤醒信号有效,以2 ms为周期,连续检测三次本地唤醒信号电平,如果均有效,进入唤醒模式。否则,节点返回休眠模式。

  Tfilter根据总线网络的波特率确定,根据CAN协议,CAN报文数据场的最大长度为8字节,一条数据场长度为8字节的CAN报文包含108个总线位,根据波特率可以计算出报文数据场长度为8字节的CAN报文的时长,Tfilter设置为最大CAN报文时长的2倍左右。汽车CAN网络的波特率有500 kbps、250 kbps、125 kbps三种,具体而言:

  波特率为500 kbps时,CAN报文最大时长为0.216 ms,Tfilter设置为0.5 ms;

  波特率为250 kbps时,CAN报文最大时长为0.432 ms,Tfilter设置为1 ms;

  波特率为125 kbps时,CAN报文最大时长为0.864 ms,Tfilter设置为2 ms。

3 结论

  本文设计了一种汽车CAN节点的低功耗方案,通过设置唤醒确认模式,区分有效的CAN报文和总线毛刺,区分有效的本地唤醒条件和信号毛刺,避免了误唤醒。根据CAN网络的波特率确定CAN报文滤波时间,避免了无效等待。本方法应用在为某车型设计的PEPS中,具有较强的实用性。

  参考文献:

  [1]蔡营,王永峰,岳意娥,等.基于OSEK标准的整车CAN网络管理设计及测试验证[J].汽车电器,2016,(8):38-41,49.

  [2]苗斌,王卫华,赵永胜,等.具有OSEK功能汽车仪表的睡眠及唤醒管理研究[J].汽车电器,2014,(2):15-18.

  [3]刘文英,邹洪波,王东,等.一种基于CAN总线的低功耗汽车组合开关[J].机电工程,2013,(11):1406-1409,1429.

  [4]付国良.整车静态电流设计及验证[J].汽车电器,2015,(11):17-19.

  [5]山东省科学院自动化研究所.一种汽车CAN节点的低功耗设计方法:中国, 201710458567.7 [P].2017-6-16.

  [6]马建辉,刘源杨,候冬冬,等.汽车BCM的低功耗设计及实现[J].电子产品世界,2016,(11):55-56,30.

  [7]山东省科学院自动化研究所.一种低功耗车身控制器及其控制方法:中国, 201510125944.6 [P].2015-03-20.

  [8]初洪超.网络管理在汽车CAN系统的应用[J].汽车实用技术,2016,(5):114-118.

  本文来源于《电子产品世界》2018年第3期第42页,欢迎您写论文时引用,并注明出处。



推荐阅读

评论

技术专区

关闭