汽车控制器LIMPHOME电路设计

摘要:本文介绍汽车控制器上常用的3种LIMPHOME电路设计方法,用于在单片机复位重启期间仍能保证外部输出正确性,确保行车安全。
    在电子电气领域,单片机使用非常广泛,单片机的复位重启是设计时必须面对的一个问题,要求有些功能在单片机复位重启期间不能有任何异常,否则会影响到驾驶员的安全。比如行驶期间发动机不能突然熄火,夜晚行驶期间前照灯不能突然熄灭等。这些输出状态的保持,都需要有独立于单片机之外的电路来保证,即LIMPHOME电路。
    常用的LIMPHOME电路有几类:一是用触发器锁存器等组成的门电路;二是用带有LIMPHOME功能的芯片;三是用串行通信锁存芯片。

    1 门电路
    图1是由RS触发器和或门组成的电路,其中RS触发器的S端和R端都由单片机控制。当需要输出高电平时,单片机控制S端为高电平,R端为低电平。反之当需要输出低电平时,单片机控制S端为低电平,R端为高电平。一旦单片机发生复位,所有IO口都恢复成默认状态,比如低电平,RS触发器的输出会自动保持之前的状态,从而达到档位锁存的目的,实现了LIMPHOME功能,如表左边所示。


    不同单片机的复位特性有所不同,如果单片机复位时,IO口的初始状态为高电平,则需要选择特性相反的RS触发器,如表右边所示。
    奔腾B90、X80、B70等车型无钥匙起动控制器的供电档位保持功能就是采用的这种电路,保证了车辆行驶期间供电的可靠性。

    2 带有LIMPHOME功能的芯片
    在汽车控制器领域,越来越多地使用SBC(系统基础芯片),比如NXP公司的UJA 1079,它除了集成电源转换、 CAN收发器、LIN收发器、看门狗等模块之外,还带有一路LIMP输出,见图2。平时UJA 1079通过SPI接口与单片机维持通信,LIMP管脚会输出高电平。在单片机复位重启期间,LIMP管脚会输出低电平。

    这个低电平经过一个PNP管转换为高电平,再与单片机的输出管脚通过2个二极管所搭建的“或门”共同控制外部输出,只要有其中一个是高电平,则输出信号就有效,如图3所示。

    通过解读电路可以发现,这种方式实现的LIMPHOME功能有一个缺点,即无论MCU在复位前输出的是什么状态,UJA 1079和或门都会使输出处于有效状态,这点在使用的时候需要注意。目前奔腾B90、X80、B70等车型车身控制器的近光灯控制就是采用的这种电路,在夜晚行车期间,保证了近光灯不会异常熄灭。

3 串行通信锁存芯片
    如图4所示,采用串行通信锁存芯片也可以实现LIMPHOME功能,比如INFINEON公司的TLE7240系列芯片。单片机通过SPI串行接口向TLE7240芯片发送控制命令,然后TLE7240的8路输出就可以控制外部的继电器、负载等执行动作,同时TLE7240还可以通过SPI串行接口将内部的诊断信息传送给单片机。当单片机复位重启时,无法通过SPI通信控制TLE7240, TLE7240自然就锁存之前的状态,从而实现了LIMPHOME功能。

    上述LIMPHOME电路需要配合单片机软件来共同使用,即当单片机控制某路输出状态发生变化时,软件需要将变化后的状态存储在EEPROM中。一旦单片机发生复位重启,软件需要首先执行一段初始化程序,在此期间由LIMPHOME电路来进行输出状态的保持,而初始化完成后,单片机应首先读取EEPROM中的状态量,并将其恢复到输出控制,从而完成软件对LIMPHOME电路的接管。奔腾B90、X80、B70等车型发动机控制单元的起动使能继电器的控制就是采用的这种电路。

    4 总结
    本文介绍了3种汽车控制器上常用的LIMPHOME电路设计方法,第1种需增加一个RS触发器芯片即可,对控制器无其他需求,方案灵活,成本最低;第2种需要控制器内具有SBC芯片;第3种需要采用串行通信锁存芯片,对于成本要求不高,且单片机IO口资源紧张的控制器适合采用此方案。

原文地址:https://www.cnblogs.com/isAndyWu/p/9577651.html

时间: 2024-10-07 21:32:28

汽车控制器LIMPHOME电路设计的相关文章

第五篇:本人多年来积累的单片机程序 资料下载(绝对干货,内附下载链接)

首先打个广告:如果需要做毕设以及嵌入式项目合作,欢迎进入我们工作室:创想嵌入式设计工作室 本人搜集的大量单片机源码资料及毕业设计资料,足有1200+套,很多实用的demo源码和毕业设计参考方案,可用于做项目时借鉴,博尾附有下载链接.(内附本人联系方式,可一起交流探讨,交朋友) 为了方便 查找,我已将项目源码的目录整理出来了,方便 采用"ctrl +F"快速查找验证是否有需要的demo.可以一键打包下载,也可只下载需要的demo. 下载链接内附本人联系方式,如果在安装过程中遇到问题,可以

机器人驾驶的神经网络愿景(下)

3.4 通过缓冲增加多样性 为了避免重复范例的影响,保险起见,通过保持一个先前遇到的训练模式缓冲器来进一步增加训练集的多样性.当新的训练模式是通过数字化和变换当前传感器图像获得时,将它们添加到缓冲器中,而将旧的模式移除.我们已经尝试了四种方法确定替换哪些模式.第一种方法是替换最旧的模式.采用这种方案,训练模式缓冲区代表最近遇到行驶状况的历史记录.但如果行驶状况在一段时间内保持不变,如一段时间的右转,那么缓冲器将失去其多样性,充满了右转模式.第二个方法是随机选择一个旧模式用新的模式来替代.运用这种

使用 Power BI 分析 “回家的路”

很多年以前,不知道怎么就听说,有个小小的转换器,能够把汽车CAN总线转接为串口,然后,就出现了再转成蓝牙或者WIFI接口的小设备.这个小设备能够获取OBD II标准的数据.OBD II的标准广泛用在各种汽车控制器上,能够通过这些数据获得汽车的各种状态数据和告警. 于是很多牛人基于这个小玩意,在电脑特别是手机上开发了不少应用.通过蓝牙或者WIFI获得数据后,处理显示出来.数据的使用多种多样,例如自定义仪表,然后利用挡风玻璃实现HUD抬头显示,利用手机对简单的故障告警进行清楚(消码)-我当时也很有兴

【Verilog HDL】汽车尾灯控制器的实现

基于Verilog的汽车尾灯控制器的实现 首先进行模块的定义 模块具有三个输入:时钟,重置,和汽车状态.以及六个输出分别控制左右(l,r)三色LED的红绿蓝三个阴极 module ? car_rear_light (??? input ?clk, ???? input ?rst, ???? input ?[ 3 : 0 ]car_status, ???? output ? reg [ 0 : 0 ]l_light_r,??????? //左侧红灯 ???? output ? reg [ 0 :

[硬件项目] 1、汽车倒车雷达设计——基于API8108A芯片简易智能语音模块的设计与实现

前言 汽车倒车防碰撞系统是一种辅助汽车泊车装置.低配的由超声波收发电路.回波放大电路.语音提示电路.数码显示.报警及温度补偿电路组成,高配的有时会带有后视视频系统.[1]      一.工作原理 如下图在汽车的尾部安装4个超声波探头,倒车时,采用往返时间测量法测量汽车尾部到障碍物的距离,通过数码管实时显示距离,当车尾部的超声波探头与障碍物的距离小于设定值的安全值时,通过蜂鸣器报警提示驾驶员. 这里测距一般采用4路超声波传感器分时隙工作,采用往返时间测量法测距,测距原理是当汽车进行倒车时,防碰撞系

对越Altium Designer 17.0.9电路设计软件

对越Altium Designer 17.0.9电路设计软件altium designer17最新中文版特点:1.智能的元器件布局系统,帮助设计师高效地实现在PCB板上实现排列整齐的元器件布局.2.全新的替代元器件选择系统,帮助设计师掌控制定义元器件可替换方案的全过程.3.直观的间距指示,帮助设计师在PCB板上正确地放置各种设计元素,因为他可以直观的看到它们之间的距离.QQ:16264558 电话TEL:13963782271 其核心功能强大无比,让电路板设计工作的朋友工作更轻松愉快哦!从事着专

汽车CAN总线详解

概述 CAN(Controller Area Network)总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线,它起初用于实现汽车内ECU之间可靠的通信,后因其简单实用可靠等特点,而广泛应用于工业自动化.船舶.医疗等其它领域.相比于其它网络类型,如局域网(LAN, Local Area Network).广域网(WAN, Wide Area Network)和个人网(PAN, Personal Area Network)等,CAN 更加适合应用于现场控制领域,因此得名. CAN

iOS开发UI篇----UI基础之复杂的汽车列表

plist : 模型Car 1 #import <Foundation/Foundation.h> 2 3 @interface CZCar : NSObject 4 5 /** 6 * 汽车名称 7 */ 8 @property (nonatomic,copy) NSString *name; 9 10 /** 11 * 汽车的图标 12 */ 13 @property (nonatomic,copy) NSString *icon; 14 15 //实现字典转模型的方法 16 // 对象方

根据价格范围筛选汽车(路由以及JS与Jquery)

通过输入价格范围,来筛选汽车,主要方法是通过点击“查询”按钮,触发chaxun()方法,利用Jquery和JS获取输入的值,然后为相应的div加载相应的动作,通过更改路由的路径,以此来实现筛选车辆,然后将筛选出来的车辆显示在相应的div上 1.Models public class CarBF { private MyDBDataContext _context = new MyDBDataContext(); public List<car> Select(decimal Low,decim