基于VB串口通信的電動天窗耐久性測試系統(tǒng)
1 概述
汽車天窗是為滿足消費者乘車健康和舒適度的要求而設(shè)計的,因此人們對天窗性能的要求不僅僅停留在美觀、豪華上,還必須滿足安全、可靠、運行自如等全方位的要求。所以,在汽車天窗裝車前要首先對其進(jìn)行耐久性和安全性測試,以確保其裝車后符合技術(shù)和用戶的要求。而現(xiàn)有汽車天窗存在行程不到位,天窗打不開;行程不到位,天窗關(guān)不嚴(yán),對汽車防盜防雨構(gòu)成威脅;控制開關(guān)失靈,出現(xiàn)夾人現(xiàn)象等隱患和問題。
目前,國內(nèi)天窗測試大都采用單機式的下位機系統(tǒng)。該類系統(tǒng)雖能進(jìn)行常規(guī)測試,但不能記錄或反饋測試信息。我們設(shè)計的汽車天窗測試系統(tǒng)分上、下位機,下位機具有控制天窗的執(zhí)行機構(gòu),不但可以控制天窗的往返等動作,完成測試項目,而且還具備自動辨別故障功能,能自動記錄天窗電機故障時間。通過上位機顯示耐久測試次數(shù)、顯示故障。依靠上位機和下位機的可靠通訊,實現(xiàn)了測試運行、信息傳遞和信息反饋。
2 電動天窗耐久性測試系統(tǒng)的關(guān)鍵技術(shù)
2.1 硬件技術(shù)特性
本硬件系統(tǒng)要實現(xiàn)天窗的開到位,關(guān)到位,中途停和電機必要休息的判斷。主要由檢測電路和控制電路兩部分組成,其系統(tǒng)原理圖如圖1所示:
圖1 電路原理圖
到位檢測電路:在系統(tǒng)中,為了保證天窗測試臺的自身耐久性,設(shè)計中采用非接觸式傳感器(紅外線光電式傳感器)代替易損的接觸式傳感器,而且可以靈活的調(diào)節(jié)天窗的開到位或關(guān)到位的位置,方便用戶的需求,天窗到位的電路工作原理為:電路由3D紅外線發(fā)射管和3E接收管以及運放LM324構(gòu)成,當(dāng)天窗未開到位或未關(guān)到位,無信號發(fā)出,只有天窗到位,才發(fā)信號給單片機。
中途停檢測電路:系統(tǒng)中,由于控制對象(天窗電機)的負(fù)載特性,不允許天窗電機持續(xù)不停的工作,防止電機過熱而影響正常工作。在獲取中途停信號的子系統(tǒng)中,用取樣電阻采樣、保持。為了保證信號的不失真,可采用兩級放大電路,經(jīng)過V/F和F/V轉(zhuǎn)換(因為取信號的地與電源地不能共地),然后再經(jīng)一級放大,經(jīng)過比較后接入到單片機中。
報警控制電路:通過8255出來的信號經(jīng)過7405控制光耦,若檢測到系統(tǒng)堵轉(zhuǎn),則聲音報警。
過流保護(hù)控制電路:當(dāng)系統(tǒng)堵轉(zhuǎn)時,繼電器打開,電機立即停止工作。
電機控制電路:開到位信號(關(guān)到位信號)經(jīng)8255出來后,經(jīng)過7405控制光耦的導(dǎo)通,然后通過晶體管控制繼電器,使電機停30秒。
2.2 軟件技術(shù)特性
單片機部分:下位機部分由單片機及擴展接口電路構(gòu)成,主要有8031,地址鎖存器74LS373,用作片外程序存儲器的EPROM2764以及用于擴展I/O口的8255,然后通過RS-232接口與上位機通信。由于單片機輸入、輸出電平是TTL電平,而PC機配置的是RS-232標(biāo)準(zhǔn)串行接口,二者的電氣規(guī)范不一致,因此要完成單片機與PC機的數(shù)據(jù)通訊,必須對單片機輸出的TTL電平進(jìn)行電平轉(zhuǎn)換。本電路中使用的是一種標(biāo)準(zhǔn)的RS-232芯片MAX232。下位機軟件由匯編語言編寫,主要由主程序、延時子程序、中斷子程序、跳過電機啟動子程序、握手聯(lián)絡(luò)子程序和賦堵轉(zhuǎn)電流子程序組成。其功能如下:
圖2 單片機程序流程圖
主程序:完成系統(tǒng)的初始化,分配調(diào)用各子程序以實現(xiàn)系統(tǒng)功能;
延時子程序:為了滿足天窗電機的特性要求,控制電機不連續(xù)工作;
中斷子程序:當(dāng)堵轉(zhuǎn)電流大于設(shè)定電流時,電機停止工作;
跳過電機啟動子程序:當(dāng)電機啟動時電流很大,有可能超過堵轉(zhuǎn)電流,此程序可使電機正常工作;
握手聯(lián)絡(luò)子程序:上、下位機在通訊時, 握手聯(lián)絡(luò)子程序起到保證通訊可靠,減少誤動作的作用;
堵轉(zhuǎn)電流子程序:設(shè)定堵轉(zhuǎn)電流值,以控制電機工作; 其部分代碼如下,程序流程圖如圖2所示:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TOT0
ORG 0030H
MAIN: MOV R6,#0FFH ; 延時子程序,等待8255完全復(fù)位
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為波特發(fā)生器,方式2,定時.T0方式2,定時
MOV TL1,#0F3H ; 波特為1200B/S
上位機部分:由PC機構(gòu)成,具有人機接口界面,如圖3所示。由于VISUAL BASIC語言有非常友好的界面,很好發(fā)揮了其可視化特點,深受廣大編程人員的青睞。所以,軟件編寫利用VB6.0語言環(huán)境,界面操作方便直接。在本系統(tǒng)中要使用上下位機通訊,則要用到串口技術(shù)。串口通訊一般采用RS232或者RS485等規(guī)范,并有專用芯片實現(xiàn)相關(guān)硬件通訊電路。在Windows環(huán)境下我們可以調(diào)用API函數(shù)或直接使用Ac-tiveX串口通訊控件,利用API函數(shù)編寫串口通訊程序比較復(fù)雜,而VB6.0的MSComm通訊控件為標(biāo)準(zhǔn)的通訊命令集,提供了一個接口,它允許程序員建立一個基于串行口的連接,可進(jìn)行命令的確認(rèn)、數(shù)據(jù)交換以及對串行接口處可能出現(xiàn)的各種事件或錯誤進(jìn)行監(jiān)視,并可做出反應(yīng)。另外VB6.0通過屬性方法,提供了串行通訊口參數(shù)的設(shè)置,可以較容易地解決串口通訊問題。而且MSComm控件屏蔽了通信過程中的底層操作,使串口編程非常方便。因此在進(jìn)行系統(tǒng)開發(fā)時,利用MSComm控件能起到縮短設(shè)計周期、增加系統(tǒng)可靠性的作用。同時,只要了解自己需要的參數(shù)即可順序編寫上位機軟件,所以此處采用MSComm控件編程來實現(xiàn)與單片機的通訊。該控件的各項參數(shù)簡介如下:
評論