電動(dòng)車窗防夾的基本思想可以概括為:在車窗自動(dòng)上升過程中,傳感器檢測到障礙物的存在(包括已被夾或判斷有障礙物存在上升途中)。當(dāng)檢測到有障礙物存在時(shí),驅(qū)動(dòng)電機(jī)反轉(zhuǎn),使車窗下降一段距離,釋放障礙物。本文介紹的防夾保護(hù)算法主要是通過檢測電機(jī)轉(zhuǎn)速的變化來實(shí)現(xiàn)的。
電機(jī)周期的測量
在防夾設(shè)計(jì)中,嚴(yán)格地說涉及到的參數(shù)應(yīng)該是電機(jī)的轉(zhuǎn)速。但是,在本課題中,更確切地說,檢測到的不是轉(zhuǎn)速,而是周期。本課題采用TImer模塊里的捕捉模式來檢測兩個(gè)脈沖下降沿之間的時(shí)間間隔從而得到周期值。周期越大,速度就越慢,反之,周期越小,速度就越快。因此,從功能上看,兩個(gè)參數(shù)的效果是一致的。為了節(jié)省微控制器的資源,就直接周期來代替速度進(jìn)行防夾檢測。
捕捉計(jì)算到脈沖周期與實(shí)際的脈沖周期之間的換算關(guān)系為:
TImer設(shè)置的是16預(yù)分頻,重裝載值為0000H,因此它的溢出周期為43ms,分辨率為2.7ms。
在周期檢測中,霍爾傳感器的輸出腳與XC886的P3.4口相連。P3.4復(fù)用為TImer21脈沖捕獲模式的輸入引腳。本課題中,當(dāng)霍爾傳感器輸入為脈沖下降沿時(shí),TImer產(chǎn)生中斷,并在中斷程序中計(jì)算周期。具體計(jì)算流程如下:
其中,Pre_reload為前一次脈沖到達(dá)時(shí)寄存器中的值,用當(dāng)前值減去前一次的值即為周期。值得一提的是,period_count這個(gè)變量。當(dāng)計(jì)時(shí)器溢出一次,period_count就加一。從而避免因計(jì)時(shí)器溢出而導(dǎo)致周期計(jì)算錯(cuò)誤。
實(shí)現(xiàn)的具體做法是:由于只需在車窗自動(dòng)上升時(shí)進(jìn)行防夾。所以首先先判斷是否為自動(dòng)上升。若是自動(dòng)上升,則判斷是否為第一次進(jìn)入中斷程序,如果是第一次進(jìn)入中斷,將當(dāng)前計(jì)數(shù)器中的值存入變量 Pre_reload,如果不是第一次進(jìn)入,則將當(dāng)前計(jì)數(shù)器的值減去Pre_reload的值作為周期值,再將當(dāng)前值存入Pre_reload中。留待下一次進(jìn)入中斷時(shí)使用。每進(jìn)入一次中斷就如此工作,直到收到停止命令或車窗到達(dá)頂部為止。
車窗位置的確定
車窗在上升過程中,由于存在車窗重量和窗框阻力等因素,在每個(gè)位置上的周期大小是不一樣的。因此判斷車窗位置也是相當(dāng)重要的。從機(jī)械的角度講,電機(jī)旋轉(zhuǎn)會(huì)帶動(dòng)鋼絲繩的運(yùn)動(dòng),從而帶動(dòng)車窗的上下開閉。電機(jī)每旋轉(zhuǎn)一定角度,鋼絲繩就相應(yīng)地運(yùn)動(dòng)一定行程,因此車窗運(yùn)動(dòng)的行程與電機(jī)旋轉(zhuǎn)的圈數(shù)成線性關(guān)系。而電機(jī)的旋轉(zhuǎn)會(huì)使得霍爾傳感器產(chǎn)生脈沖信號(hào),因此車窗位置也可以采用霍爾傳感器和XC886CS中的計(jì)時(shí)器模塊相結(jié)合的方式來測量。當(dāng)電機(jī)轉(zhuǎn)過一圈,計(jì)時(shí)器Timer就會(huì)捕獲到霍爾信號(hào)的下降沿,從而在中斷服務(wù)程序中對(duì)車窗位置作出記錄。由于車窗有可能上下運(yùn)動(dòng),因此車窗位置的計(jì)算不能只在車窗上升時(shí)進(jìn)行,在車窗下降的時(shí)候也要作出相應(yīng)的調(diào)整。因此程序在進(jìn)入中斷服務(wù)后首先查詢車窗的狀態(tài)是上升還是下降。如果是上升,則電機(jī)每轉(zhuǎn)動(dòng)一圈車窗位置就相應(yīng)遞增;如果是下降,則電機(jī)每轉(zhuǎn)動(dòng)一圈,車窗位置就遞減。
防夾車窗算法的提出和實(shí)現(xiàn)
本課題采用的防夾算法是基于電機(jī)運(yùn)行參數(shù)的方法。如何得到準(zhǔn)確的運(yùn)行參數(shù)即周期,是防夾算法能否實(shí)現(xiàn)的關(guān)鍵。本課題還根據(jù)實(shí)際運(yùn)行中發(fā)現(xiàn)的算法紕漏,對(duì)算法進(jìn)行優(yōu)化。