关于BMS唤醒和休眠的一个案例
前文的继电器粘连检测相关高压知识点先告一段落,我再沉淀一下,后面接着说。
BMS里面有两种单板,控制板和检测板;它们的工作场景也分为两种:normal状态和sleep状态。整车在未启动时,BMS是处于休眠状态的,此时BMS外部供电是常电KL30,但所有唤醒信号(例如KL15)为低电平,内部的单片机处于休眠或未上电状态,等待外部的唤醒信号。(图片来源于网络)
针对BMS的这个休眠唤醒的过程,我们遇到这样一个奇怪的问题:“BMS被命令进入休眠后,立即又被唤醒了,一直重复这个过程,而且期间BMS外部没有唤醒源”。具体的唤醒电路示意图如下:多路唤醒信号通过开关二极管实现线与的功能,然后经过简单的电阻分压与限流输入到被唤醒源。被唤醒源可以是电源,也可能是单片机。其中,唤醒信号2没有使用,悬空状态;只使用了唤醒信号1。
我们发现,当命令BMS进入休眠后,BMS又立即被唤醒;被唤醒一定是有唤醒信号有效输入进来,但实际在BMS进入休眠时,外部的唤醒信号1都同时拉低为无效了,唤醒信号2是悬空状态,那么这个唤醒信号是从哪里来的呢?更加奇怪的是,我们用示波器去捕捉这个休眠到唤醒的过程,实际什么唤醒信号也没有捕捉到,而且上面的这个休眠后被误唤醒的故障又消失了。接下来就一步一步来定位问题,最后发现把唤醒信号2的端口电容C1去掉后,问题就消失了…C1这个电容一般被用来做端口的ESD防护,容值不大,例如10nF以下。定位到问题器件后,问题原因就比较清晰了:当BMS工作时,唤醒信号2悬空,唤醒信号1通过二极管D2\D1反向给C1充电。
而当休眠时,唤醒信号1消失,变为低电平,此时电容C1开发放电,被唤醒源只要有2V以上的电平就可以被唤醒,这样就误唤醒了BMS。
进一步的分析,二极管都有一个反向电流的指标,这个在应用中不能被忽视;C1由于容量小,所以之前用示波器的探头去戳时,会有一个放电路径形成,上面的电很快被耗掉,所以有探头时,故障就不出现。解决方法有几种,一是更换更小反向电流的开关二极管,不过这个不太好,没有彻底解决问题;二是将端口的电容C1去掉,用ESD防护二极管替代;三是可以在软件控制上面做一个延时,先拉低外部的唤醒源,然后延时一段时间,让C1上面的电耗掉,再去休眠BMS。这个例子比较不常见,其实当唤醒信号2使用而不是悬空时,这样的场景更加常见;这个场景下也会有C1的放电造成误唤醒现象,而且C1的充电速度更快,这个问题会更突出。 著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-08-26
最近编辑:1年前