- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于VB串口通信的电动天窗耐久性测试系统
1 概述
汽车天窗是为满足消费者乘车健康和舒适度的要求而设计的,因此人们对天窗性能的要求不仅仅停留在美观、豪华上,还必须满足安全、可靠、运行自如等全方位的要求。所以,在汽车天窗装车前要首先对其进行耐久性和安全性测试,以确保其装车后符合技术和用户的要求。而现有汽车天窗存在行程不到位,天窗打不开;行程不到位,天窗关不严,对汽车防盗防雨构成威胁;控制开关失灵,出现夹人现象等隐患和问题。
目前,国内天窗测试大都采用单机式的下位机系统。该类系统虽能进行常规测试,但不能记录或反馈测试信息。我们设计的汽车天窗测试系统分上、下位机,下位机具有控制天窗的执行机构,不但可以控制天窗的往返等动作,完成测试项目,而且还具备自动辨别故障功能,能自动记录天窗电机故障时间。通过上位机显示耐久测试次数、显示故障。依靠上位机和下位机的可靠通讯,实现了测试运行、信息传递和信息反馈。
2 电动天窗耐久性测试系统的关键技术
2.1 硬件技术特性
本硬件系统要实现天窗的开到位,关到位,中途停和电机必要休息的判断。主要由检测电路和控制电路两部分组成,其系统原理图如图1所示:
图1 电路原理图
到位检测电路:在系统中,为了保证天窗测试台的自身耐久性,设计中采用非接触式传感器(红外线光电式传感器)代替易损的接触式传感器,而且可以灵活的调节天窗的开到位或关到位的位置,方便用户的需求,天窗到位的电路工作原理为:电路由3D红外线发射管和3E接收管以及运放LM324构成,当天窗未开到位或未关到位,无信号发出,只有天窗到位,才发信号给单片机。
中途停检测电路:系统中,由于控制对象(天窗电机)的负载特性,不允许天窗电机持续不停的工作,防止电机过热而影响正常工作。在获取中途停信号的子系统中,用取样电阻采样、保持。为了保证信号的不失真,可采用两级放大电路,经过V/F和F/V转换(因为取信号的地与电源地不能共地),然后再经一级放大,经过比较后接入到单片机中。
报警控制电路:通过8255出来的信号经过7405控制光耦,若检测到系统堵转,则声音报警。
过流保护控制电路:当系统堵转时,继电器打开,电机立即停止工作。
电机控制电路:开到位信号(关到位信号)经8255出来后,经过7405控制光耦的导通,然后通过晶体管控制继电器,使电机停30秒。
2.2 软件技术特性
单片机部分:下位机部分由单片机及扩展接口电路构成,主要有8031,地址锁存器74LS373,用作片外程序存储器的EPROM2764以及用于扩展I/O口的8255,然后通过RS-232接口与上位机通信。由于单片机输入、输出电平是TTL电平,而PC机配置的是RS-232标准串行接口,二者的电气规范不一致,因此要完成单片机与PC机的数据通讯,必须对单片机输出的TTL电平进行电平转换。本电路中使用的是一种标准的RS-232芯片MAX232。下位机软件由汇编语言编写,主要由主程序、延时子程序、中断子程序、跳过电机启动子程序、握手联络子程序和赋堵转电流子程序组成。其功能如下:
图2 单片机程序流程图
主程序:完成系统的初始化,分配调用各子程序以实现系统功能;
延时子程序:为了满足天窗电机的特性要求,控制电机不连续工作;
中断子程序:当堵转电流大于设定电流时,电机停止工作;
跳过电机启动子程序:当电机启动时电流很大,有可能超过堵转电流,此程序可使电机正常工作;
握手联络子程序:上、下位机在通讯时, 握手联络子程序起到保证通讯可靠,减少误动作的作用;
堵转电流子程序:设定堵转电流值,以控制电机工作; 其部分代码如下,程序流程图如图2所示:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TOT0
ORG 0030H
MAIN: MOV R6,#0FFH ; 延时子程序,等待8255完全复位
MAIN1: DJNZ R6,MAIN1
MOV P1,#0FFH
MOV SP,#40H
MOV DPTR,#7FF3H ; 对8255写控制字,PA,PB.PC输出,0010 0100 0000 0011
MOV A,#80H
MOVX @DPTR,A
MOV DPTR,#7FF0H ; PA输出全01111111
MOV A,#00H
MOVX @DPTR,A
MOV DPTR,#0BFFFH
MOV A,#0FFH
MOVX @DPTR,A
MOV TMOD,#22H ; T1为波特发生器,方式2,定时.T0方式2,定时
MOV TL1,#0F3H ; 波特为1200B/S
上位机部分:由PC机构成,具有人机接口界面,如图3所示。由于VISUAL BASIC语言有非常友好的界面,很好发挥了其可视化特点,深受广大编程人员的青睐。所以,软件编写利用VB6.0语言环境,界面操作方便直接。在本系统中要使用上下位机通讯,则要用到串口技术。串口通讯一般采用RS232或者RS485等规范,并有专用芯片实现相关硬件通讯电路。在Windows环境下我们可以调用API函数或直接使用Ac-tiveX串口通讯控件,利用API函数编写串口通讯程序比较复杂,而VB6.0的MSComm通讯控件为标准的通讯命令集,提供了一个接口,它允许程序员建立一个基于串行口的连接,可进行命令的确认、数据交换以及对串行接口处可能出现的各种事件或错误进行监视,并可做出反应。另外VB6.0通过属性方法,提供了串行通讯口参数的设置,可以较容易地解决串口通讯问题。而且MSComm控件屏蔽了通信过程中的底层操作,使串口编程非常方便。因此在进行系统开发时,利用MSComm控件能起到缩短设计周期、增加系统可靠性的作用。同时,只要了解自己需要的参数即可顺序编写上位机软件,所以此处采用MSComm控件编程来实现与单片机的通讯。该控件的各项参数简介如下:
[p]