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