刘丽伟, 王艳梅*, 刘爱军
(1.长春工业大学 计算机科学与工程学院, 吉林 长春 130102;2.长春振宇机电成套有限公司, 吉林 长春 133000)
近年来,国家经济发展迅速,人民物质生活水平提高,汽车成为家庭消费的重要选择。随着人们对生活舒适度的要求越来越高[1],汽车在各方面的性能不断更新,汽车上的电器部件随之增加,汽车线束也越来越复杂。车辆的可靠性是衡量车辆性能的重要指标,而线束的可靠性是其重要的组成部分[2],确保它在制造过程中不发生故障是一个非常重要的研究课题[3]。
目前国内的线束检测与诊断技术正在逐步发展,存在线束导通信息设定单一、检测正确率低等问题。周树艳等[4]研究了线束的快速检测,检测系统与被测线束相连,若无故障,则相应回路中的发光二极管被点亮,采样电路输出脉冲由高电平变为低电平,单片机根据采集到的脉冲信号,计算被点亮的发光二极管数量,在数码管上进行显示。许雪军等[5]设计了无地线线束检测仪,在发射端对应的电路施加电压,接收端有输出,则认为导通,同时使用 CRC 校验确保数据的正确性。张婉茹等[6]设计了基于STM32的汽车线束故障诊断系统, STM32将高低电平施加至MOS 管的栅极中,被检测线束连接至输出点OUT,通过采集到检测点OUT 的电压判断线束的导通。
本设计针对目前国内检测方法存在的问题,设计了一套基于压控恒流源检测方式的汽车线束检测系统,提出一种新的线束导通检测方法。
线束生产加工的过程中,常见的故障主要包括:断路(开路)、错路和短路。断路(开路)是指线路断开,在输出端接收不到输入端的信号;错路故障通常都成对出现,虽然在输出端会有输入端信号的响应,但是成对出现的输入输出端连接并不正确;短路故障则会出现多对连通导线。标准正确线束则是输入输出一致[7],无错路、短路。
标准线束模型及三种故障模型如图1所示。
图1 线束模型
对于大型线束,由于连接关系复杂,线束中的特殊元器件数量增多,线束导通信息的设定变得非常复杂,对线束的检测不再仅仅是短路、断路和错路的故障检测,更要对存在于导线中的元器件进行检测,确保线束中的元器件安装正确,例如电阻、电容是否安装,阻值、容量是否正确,二极管是否正确接入。
目前国内线束检测设备对小规模线束的断路、错路和短路故障都能有效进行检测。传统汽车线束检测的主要方法是:依次选择一个端点施加一定的电压,读取剩余端点的电平进行通断判断和故障定位[8]。实际应用表明,虽然使用该方法可以较好地满足检测需求,但仍旧有很大的弊端。倘若导线接触不良,接触电阻过大时,也可能被识别为导通,这使得检测准确率下降。而且传统的线束检测设备对线束中的电阻、电容、二极管等元器件的检测存在很大问题,尤其是对电阻、电容检测的精准度。
因此,本设计主要对线束检测方法和线束中存在的电阻、电容等元器件的检测进行完善。
汽车线束检测系统最主要是满足国内线束生产厂家对检测系统的需求。首先在线束检测系统工作之前对硬件设备进行自检,确保硬件设备的完好性;其次确保系统能满足不同汽车线束的检测需求,经过调研和分析,该检测系统主要实现的功能有以下几方面:
1)所开发设备能够对三种故障进行准确检测,当多种故障同时出现时,也能够对故障进行准确分析;
2)能够对线束中存在的电阻、电容、二极管等特殊元器件进行测量[9],确保这些元器件的正确接入;
3)能够实现用触摸屏对系统操控,并实时地将线束的检测结果和错误线束的故障信息显示在上机位触摸屏,以便返修时工人能快速地解决问题, 同时能够打印线束信息等厂家需要信息的实时报表;
4)具有自学习功能,可以对标准线束的连通进行自主学习,通过输入特殊元器件的信息(如电阻的阻值)对线束中的元器件进行学习,根据学习信息进行线束检测,同时具备学习多种类型线束信息的能力。
硬件电路MCU 采用STM32F407ZGT6,它是ARM核心,拥有丰富的片内资源,可以完成线束检测所需的功能。同时使用16 M字节,128 Mb容量的W25Q128芯片存储不同类别的线束类型信息,以便进行检测时的信息调用。
硬件电路包括以下四部分:
1)电源电路负责给整个系统提供所需的电压;
2)MCU 及其外围电路包括时钟电路、复位电路、串口通信电路、USB电路、Flash存储器、按键和控制输出接口电路、LCD屏幕接口电路等;
3)线束检测电路对线束进行通断检测,对线束内的电阻、电容、二极管进行测量。线束检测部分电路包含压控恒流源电路、模拟开关电路、地址译码器电路、电容测量电路以及控制电路等;
4)状态指示灯驱动电路使用LED作为指示灯,用来指示检测电路的工作状态、故障状态等。
硬件总体框图如图2所示。
图2 硬件总体框图
硬件中最核心的部分是检测电路,要确保检测部分能在MCU的控制下完成线束的通断,错接检测以及对线束内的电阻、电容、二极管的检测。线束检测部分的电路包含压控恒流源电路[10]、模拟开关电路、地址译码器电路、电容测量电路以及控制电路等。
基于传统的电平检测方法对线束导通检测的误判考虑,本系统设计了压控恒流源电路来进行导线检测,采用电流源流过被测导线,通过A/D转换来检测导线两端电压,如果电压超过限定值(事先测量出给定电流值时,标准导线导通时的电压最大值,并留出少许余量,定该值为限定值),就认为不合格(STM32F407ZGT6的A/D转换时间低至0.5 μs,可以较高的精度快速完成检测)。同时测量电阻、电容和二极管也使用恒流源电路实现。检测电阻时给定电流,让电流流过被测电阻,经过A/D转换测得电压,计算出电阻值。检测二极管时,使其正向流过电流,正向的导通压降在正常范围,反向流过电流,因二极管反向截止,电流无法流过,故反向压降超出测量范围(大于3 V),就认为二极管安装正确。电容的测量采用恒流源给电容充电,通过计数器测量充电时间,从而确定电容的大小。
3.2.1 压控恒流源电路设计
恒流源电路如图3所示。
图3 恒流源电路
恒流源输出的电流值根据被测电阻和电容的范围来确定。MCU 的A/D转换电压基准源选择3 V,即A/D转换的输入满量程电压为3 V,电流源的大小设置要使其流过电阻产生的电压不超过3 V,而且在测量范围内,电流值要稍大一些。例如检测的电阻范围为50 Ω~200 kΩ,当被测电阻为200 kΩ时,恒流源的最大电流Iom=3 V/200 kΩ=0.015 mA。这个电流值要留出余量,故取0.014 mA。可以测量的电阻最大值Rmax=3 V/0.014 mA=214.29 kΩ。
电阻测量分3个范围:
1)50 Ω~2 kΩ,测量电流为1.2 mA;
2)2~20 kΩ,测量电流为0.14 mA;
3)20~200 kΩ,测量电流为0.014 mA。
恒流源的电流经过Q1的漏极输出,流经被测电路,再通过控制开关流入GND。电流源输出的电流由D/A输出的电压来控制。在该系统中,MCU的PA4,PA5脚是D/A输出引脚,用PA5输出电压控制恒流源的输出电流。PA5的输出电压UD/A与输出电流Io的关系为
其中,Io单位为mA,UD/A单位为V。
恒流源的输出使能由三极管Q3控制,当Q3截止时,电流流经被测线束进行测量,当Q3导通时,电流通过Q3流入GND。 Q3的导通或者截止,通过STM32F407ZGT6的PB11引脚控制。
3.2.2 模拟开关电路设计
由于要检测的线束端点较多(以1 024个检测点为例),若每个端点都接一路恒流源,并且连接到A/D的输入端,这就使得检测系统复杂化,不利于实际应用。因此为简化系统,选用模拟开关,把需要检测的端点切换到恒流源和A/D检测输入端。由于检测的端点较多,故使用8选1结构的74HC4051D。该模拟开关能通过模拟信号和数字信号实现信号双向传输,并且具有较低的导通内阻。采用两个芯片为一组的电路结构,一个芯片作为发送端,另一个作为接收端,两个芯片组成8个检测端点,这8个端点既可以作为发送端,又可以作为接收端。当检测点同时作为发送端和接收端时,该电路结构可实现电路的自检。
模拟开关电路如图4所示。
图4 模拟开关电路
要组成1 024点的检测电路,就需要256片74HC4051D,系统采用插卡式结构,分成8块检测卡,每块卡检测128点,即每块卡32片74HC4051D。发送端的公共点连接到一起,接收端的公共点连接到一起,分别接到恒流源输出端和MCU的A/D检测输入端。每个检测点都有保护电路,防止因为静电而烧坏74HC4051D。保护电路由100 Ω电阻和钳位二极管BAV99W组成。保护电路如图5所示。
图5 保护电路
3.2.3 测试通道切换电路
测试通道切换电路的基本结构如图6所示。
图6 测试通道切换电路
其中导线、电阻、电容和二极管等都在同一位置检测,即图中待测电阻RX的位置。
该电路用上下两片74HC4051D芯片组成8个检测点,两片74HC4051D的X0~X7分别连接到一起,再通过一个100 Ω电阻连接到检测点。上方两片74HC4051D的X端接在一起,构成发送端的公共端,使用发送端地址选通,下方两片74HC4051D的X端接在一起,构成接收端的公共端,使用接收端地址选通。以测量电阻为例,需测量4次才可以精确计算出RX的阻值。具体步骤为:待测电阻RX两个端点的地址分别为A和B(上端点为A,下端点为B),连接电阻两端的4个74HC4051D的导通电阻从左至右,从上至下分别标记为Ra,Rb,Rc和Rd。
第一次测量:发送端和接收端地址都为A,测量电阻R1=Ra+Rc;
第二次测量:发送端和接收端地址都为B,测量电阻R2=Rb+Rd;
第三次测量:发送端地址为A,接收端地址为B,测量电阻R3=Ra+Rd+200 Ω+RX;
第四次测量:发送端地址为B,接收端地址为A,测量电阻R4=Rb+Rc+200 Ω+RX。
通过4次测量,可以计算出电阻
RX=0.5(R3+R4-R1-R2)-200 Ω,
该测量计算方法有效地消除了模拟开关导通电阻的影响。所以测量电阻的误差主要来源于检测点上100 Ω的电阻,该电阻选用1%误差的电阻,使测量电阻的理论误差不大于2 Ω。考虑上述实际情况可能出现的其他误差,实际测量误差小于5%(测量范围50 Ω≤RX≤200 kΩ)。
3.2.4 电容测量电路设计
电容的测量方法是通过恒流源给电容充电,计数器测量充电时长,当电容两端电压达到设定电压时,比较器控制计数器停止计数,根据电容容量与充电时长成正比,计算出电容容量。计数器的启动和停止都由比较器控制。
电容的检测范围为1 nF~1 000 μF,检测范围较大,因此把测量范围分成两段:1 nF~1 μF和1~1 000 μF。
由图6可以看出,恒流源输出的电流共流经两个模拟开关和两个100 Ω的保护电阻,模拟开关导通电阻最大为150 Ω(根据数据手册得知74HC4051D最大内阻,留出余量)。故检测通道的最大总电阻为
100+100+150+150=500 Ω。
控制计数器开始计数比较器的阈值电压设定为1 V,故检测通道的最大压降不能大于1 V,所以检测电容的恒流源输出的最大电流Imax≤2 mA。测量1~1 000 μF较大范围的电容时,为了缩短测量时间,使用2 mA的电流,测量1 nF~1 μF的小电容时,使用小一些的电流值,这里采用0.3 mA的电流。
采用不同的时钟频率测量两个范围的电容,时钟源和计数器都在MCU内部,1 nF~1 μF选择2 MHz时钟计数;1~1 000 μF选择1 MHz时钟计数,并对其进行8分频产生125 kHz时钟,对125 kHz时钟进行计数。不同频率的时钟经过控制电路输入到MCU的PA0引脚,该引脚可对外部时钟进行计数。计数器启动、停止,控制电路如图7所示。
图7 控制电路
Ucx是电容电压(连接到恒流源输出),送入比较器U9B(控制计数器开始计数)和U9A(控制计数器停止计数),当电容电压Ucx达到1 V时,U9B输出低电平,此时时钟经过U10A和U10B送入MCU的PA0引脚,控制计数器开始计数。U7是二选一模拟开关,用来选择比较器U9A的阈值电压(被测电容在1 nF~1 μF,选择2.5 V电压,选取较大的阈值,使计数时间加长,方便测量。被测电容在1~1 000 μF,选择1.2 V电压)。当电容两端达到比较器U9A的阈值电压时,U9A输出高电平,U10B的输出变为高电平,计数器停止计数。MCU的PB1检测到高电平时,读取计数器的值,就可以计算出电容值。
被测电容
式中:I----恒流源电流;
T----时钟周期;
N----计数值;
Ut----两个比较器U9A和U9B的阈值之差。
当电容范围为1 nF~1 μF 时,电容值与计数值N之间的关系为
其中,Cx单位是nF。
当电容范围为1~1 000 μF时,
其中,Cx单位是μF。
系统软件分为以下两部分:
1)触摸屏上用户端的界面操作设计,一切操作指令都由操作者通过触摸屏向MCU下发,同时触摸屏将接收到的系统反馈信息在屏幕上显示;
2)MCU中的测试程序,即程序代码,对从触摸屏传来的指令进行分析处理,例如存储数据、学习线束、检测线束和显示错误线束信息、打印信息等。
为使测试程序方便移植,程序代码使用C语言编写,开发环境采用Keil5,便于调试。触摸屏使用北京迪文科技有限公司的迪文智能屏,界面开发软件采用DWIN_DGUS[11],对屏幕背景界面上的按键、显示框、输入框等进行设计,以实现触摸屏的所有指令发送和接收显示。界面背景图片使用CorelDRAW软件进行设计和绘制。需要绘制出线束检测、自学习信息输入和用于信息显示的所有界面,实现触摸屏和硬件电路之间的信息通信,同时使用人性化的操作界面,使操作直观容易,提高线束检测效率。
设计了基于压控恒流源检测方式的汽车线束检测系统,采用压控恒流源电路对汽车线束进行导通检测,同时实现对导线中存在的元器件的精确测量,保证实际测量误差小于5%。解决了传统线束检测采用电平检测存在的误判问题,提高了检测精确度,同时对传统线束检测中电阻、电容等元器件无法精确检测的问题进行了完善。