张婉茹,陈厚军,聂 燕,刘苏苏,3,张 平
(1.南通大学机械工程学院,江苏南通 226019;2.中天智能装备有限公司,江苏南通 226009;3.南通棉花机械有限公司,江苏南通 226002;4.南通友星线束有限公司,江苏南通 226010)
汽车线束是汽车的传动系统、制动系统、行走系统和转向系统传递信号的载体,线束的安全可靠是汽车正常行驶的保障。随着人们对汽车安全性能的要求不断增加,汽车线束也更加复杂,给线束故障检测带来了困难。传统的检测方法利用万用表等工具采用逐点搭接的方式来判断线束的通断,该方法速度慢、检测效率低、智能化水平低且容易造成线束的错检和漏检[1]。
国内有关线束的故障检测与诊断技术正处于起步阶段,存在检测数量受限制等问题。S. Y. Jiang等以S3C44B0微处理器为核心设计了线束检测的硬件电路[2]。盛碧云等分析了任意拓扑结构线束的故障模型,并运用矩阵降价处理和矩阵异或运算实现了故障分析[3],此方法减少内存消耗,缩短了检测时间。W. D. Feng等基于LabVIEW编程语言开发的测试系统更加灵活[4]。G. H. Bao等提出了基于无线网络通信的新型系统,用于飞机线束导通试验[5]。
国外已经出现了较专业化、自动化的线束检测系统,准确性高但成本高。因此。本文针对国内检测系统存在的问题,设计了一套基于STM32的汽车线束故障检测系统。
图1 线束故障模型图
线束检测的基本原理是将检测到的线束状态信号转为数字信号,将数字信号转化为矩阵模型再进行线束故障的诊断分析。基于此原理可确立线束检测的基本步骤:
(1)将线束设计图纸中的线号连接信息解析处理后存储到设计矩阵中。
(2)系统主板向各个单元板发送检测命令,检测由n×64(n为单元板个数)个引脚所组成的点阵,观察其信号信息。
(3)单元板依次选择1个引脚X给其施加一定电压,对剩余的n×64-1个引脚循环扫描读取其电压变化情况。若存在m个引脚的电压随X点的电压变化而变化,则这m个引脚与X点存在导通关系,该状态记为“1”;剩余的n×64-m-1个引脚电压未发生变化,则这些点与X点不存在导通关系,该状态记“0”。
(4)将状态信号{0,1}转化为检测矩阵的数字信息,将其与设计矩阵进行运算进而得到判断矩阵,即可判断出线束是否有断路、短路等故障发生。
基于线束故障检测原理建立的3种类型的矩阵分别为设计矩阵Ai×j、检测矩阵Bi×j和判断矩阵Ci×j。其中,Ai×j存储线束正确连接信息;Bi×j存储检测时的状态信息;Ci×j存储线束故障信息。3种矩阵的运算关系如式(1)所示。
Ci×j=Ai×j-Bi×j
(1)
设检测含有5个点位的护套的线束连接情况,5个点位分别记为1、2、3、4、5。其中,1号点与2号点存在导通关系,3号点与4号点存在导通关系,共两条线束。检测系统的3种矩阵如图2所示。
图2 三类型矩阵
首先,根据导通关系可得5×5的设计矩阵A5×5,如图2(a)所示。设计矩阵中,“1”代表点与点之间存在导通关系,“0”代表不存在导通关系。故由假设条件可知,记A12与A21为“1”,A34与A43为“1”;而5个引脚自导,也将A11、A22、A33、A44与A55记作“1”。
接着,在检测过程中发现1号点与5号点存在导通关系,3号点与4号点存在导通关系。根据实际检测过程中的线束检测状态可编写5×5的检测矩阵B5×5,如图2(b)所示。
最后,根据式(1)运算处理得到判断矩阵C5×5,如图2(c)所示。该判断矩阵中的“1”代表断路故障,“-1”表示短路故障。在此矩阵中,C12与C21为“1”,即1号点与2号点发生断路故障;C51与C15为“-1”,即1号点与5号点发生短路故障。线束故障矩阵是检测系统的核心,矩阵的建立也为检测系统的设计提供了依据。
系统总体架构图如图3所示。汽车线束故障诊断系统主要由上位机软件、下位机硬件、串口通信模块和被测线束4个部分组成。上位机通过串口将检测命令下发至下位机,下位机的主板中的STM32通过解析串口命令,向单元板发送不同的检测脉冲波形。单元板执行板卡自检、导通检测、电压检测等相应的检测命令,并将检测结果按照相应协议通过RS-485总线[6]反馈到主板中,主板再将检测结果送至上位机中。上位机对接收到的数据进行相应变换和运算,在界面上实时显示诊断结果,并将显示故障信息打印,进而定位到故障线束。
图3 系统总体架构图
线束检测系统的流程图如图4所示。上位机打开串口和检测线程,串口通信的波特率为115 200 kbit/s[7]。使用条码枪扫描被测线束条形码,若与上位机预设线束条形码一致,则向下位机发送检测命令。下位机的检测分为两个部分,分别是板卡硬件自检和线束检测。板卡硬件自检是为了获取单元板的数量和单元板是否都被上电进而为线束检测做准备;线束检测则是为了获取线束的检测点数据。主板将采集的检测数据上传至上位机,由上位机转换后形成检测矩阵,并通过式(1)的矩阵运算进行线束检测。上位机通过操作具有自描述功能的XML文件[8],将XML文件与图形化编程相结合,实现了线束的可视化动态检测。
图4 检测流程图
汽车线束检测系统下位机的硬件电路主要由电源电路、串口电路、STM32单片机最小系统[9]、检测电路、串/并口转换电路和并/串口转换电路、电压检测电路和多路模拟开关电路组成,硬件电路总体框架图如图5所示。
图5 硬件电路总体框架图
主板中STM32向单元板发送“点名”指令,单元板控制74HC595串口/并口电路对通断检测电路施加不同的检测信号,并将检测结果通过74HC165并口/串口电路返回至单元板中,进而单元板对主板“应答”,实现了闭环控制。多路模拟开关电路中的通道电路均有不同阻值的电阻,实现了多种电压测量范围的电阻测量。
硬件电路中最核心的部分是通断检测电路。单元板的STM32对主板命令进行解析,通过8个级联的HC595芯片将高低电平施加至MOS管的栅极中,被检测线束连接至输出点OUT,8个级联的HC165芯片将检测点OUT的高低电平反馈到STM32中,进而完成对线束的检测电压采集,线束故障检测电路图如图6所示。
图6 线束故障检测电路
CTRH0、CTRH1…对MOS管进行高端控制,CTRL0、CTRL1…对MOS管进行低端控制,OUT0…OUT63为电平检测点,故一块单元板可检测64个点。若有一被检测线束两端连接在OUT0和OUT63两点,故检测时对OUT0的MOS管的高端驱动输入高电平,其他输出点的MOS管的高端驱动输入低电平,对MOS管的低端驱动始终输入低电平。由电路原理可知,OUT0输出高电压,若线束导通,则OUT63输出高电压,反之,输出低电压。理论上,由于单元板个数不受限制,故检测线束的点数亦不受限制,但经实测,检测的线束过多时,检测的速度也相应降低。
系统的诊断原理是将{0,1}信号上传至上位机进行检测运算,故需将检测的电压转化为逻辑电平,电压比较电路如图7所示。
图7 电压比较电路
本文设计的电压比较电路利用双路电压比较器LM319比较两输入电压[10],进而输出逻辑电平。由D/A转换芯片DAC7512输出的模拟电压为LM319的基准电压,待测电压接LM319的“-”输入端。由于LM319是OC(集电极开路)输出,故接10 kΩ的上拉电阻保证高电平输出。
为了适应被测线束电阻在不同量程范围内变化,系统选择74HCF4051和干簧继电器组成多路模拟开关电路[11]实现不同电阻阻值的自动切换。STM32通过改变A、B和C 3个通道的信号值来控制X0~X7通道任一通道被接通,连接在此通道的干簧继电器的常开触点闭合,实现不同电阻的切换。多路模拟开关电路图如图8所示。
图8 多路模拟开关电路
对于本文研究的线束检测系统,研究它的速度和准确率是非常有必要的。为此,系统搭建了由工控机、银信检测台、RF10安全气囊线束和检测机箱组成的实验平台,如图9所示。
图9 实验平台图
单个检测机箱由1块主板、10块单元板以及1块底板组成。主板上分别有机箱转接插槽、串口插槽和电源插槽。机箱转接插槽将多个机箱相连,可扩展被检测线束的数量;串口插槽则负责与上位机进行实时通信。而被测线束则通过单元板的线束插槽与单元板的通断检测电路相连。
被测对象RF10安全气囊线束由7个护套组成,共产生 23条导通关系。为了检测此安全气囊线束是否存在故障,首先,要为线束设计护套模块,为每个端口添加PIN点物理地址和线号名等信息,如图10(a)所示;接着,根据设计矩阵生成带有导通关系的测试台文件,即将线束的导通关系添加至预先设计的线束模块中,护套间的连线即是被测线束;最后将生成的测试台文件导入到线束检测界面,即可检测此线束的通路、断路和短路等信息,如图10(b)所示。
图10 上位机系统界面
汽车线束检测系统投入试行后,实现了64 h工作无故障记录,线束检测数据如表1所示。测量结果表明,线束测量点数在3 000个点以内,检测速度约为0.6 ms/点,准确率为100%,不会出现丢失测量点的现象;当测试点数量大于3 000个点时,测试速度降低为0.65 ms/点且会丢失4个测量点,准确率降低至99.89%。故本文设计的诊断系统适合检测测量点在3 000个点以内的汽车线束。
本文设计了一个基于STM32的汽车线束故障诊断系统,实现了线束检测信息的采集、上传、处理,且系统检测机箱的可扩展性使线束的检测数量得以扩充。此外,上位机通过观测图形界面上线束颜色的变化进而判断该线束的合格与否形象直观,对故障信息的打印可直接定位至故障线束,显著提高了工作效率。
表1 线束检测数据表