胡寧博
遙控繼電器用于檢測(cè)航模接收機(jī)輸出的PWM信號(hào),并根據(jù)PWM信號(hào)脈沖寬度控制繼電器吸和與斷開以控制其他設(shè)備工作。其用途包括控制燈帶和水泵供電、控制點(diǎn)火頭和切纜器點(diǎn)火、控制發(fā)動(dòng)機(jī)啟動(dòng)或熄火、控制相機(jī)快門等。為防止誤觸發(fā)采用雙通道信號(hào)控制,當(dāng)兩路信號(hào)量都有效時(shí)繼電器才動(dòng)作,避免了因誤碰遙控器開關(guān)而造成事故的可能。模塊采用國(guó)產(chǎn)的8腳STC單片機(jī)編程控制,控制準(zhǔn)確可靠,體積小巧而且成本低。
航模遙控設(shè)備成本低廉、控制可靠,在航??刂?、無(wú)人機(jī)調(diào)試、試飛中有著廣泛的應(yīng)用。航模接收機(jī)輸出的信號(hào)為可變寬度的脈沖,即PWM信號(hào),用于控制航模舵機(jī)。脈沖的寬度決定舵機(jī)轉(zhuǎn)動(dòng)角度。一般而言,舵機(jī)的基準(zhǔn)信號(hào)都是周期為20ms,正脈沖寬度為1.5ms。這個(gè)基準(zhǔn)信號(hào)可使舵機(jī)位于舵機(jī)中位。不同型號(hào)舵機(jī)的轉(zhuǎn)角范圍可能不相同,但是其中間位置的脈沖寬度是一定的,都是1.5ms。航模遙控器輸出的PWM信號(hào)正脈寬一般在0.5ms-2.5ms之間。當(dāng)我們需要用航模遙控設(shè)備控制其他機(jī)載設(shè)備時(shí),就需要對(duì)航模接收機(jī)輸出的PWM信號(hào)脈寬進(jìn)行判別,根據(jù)脈寬控制繼電器動(dòng)作從而控制被控設(shè)備。
在控制航模發(fā)動(dòng)機(jī)啟動(dòng)熄火、點(diǎn)火頭或切纜器等火工品點(diǎn)火時(shí),操作手誤觸航模遙控器開關(guān)可能會(huì)導(dǎo)致嚴(yán)重的事故,造成較大的財(cái)產(chǎn)損失甚至人員傷亡。因此在控制此類設(shè)備時(shí),可采用雙通道信號(hào)控制,配置到航模遙控器上距離較遠(yuǎn)的兩個(gè)機(jī)械開關(guān),當(dāng)兩個(gè)開關(guān)同時(shí)打開時(shí)才動(dòng)作。這樣可以極大地避免誤觸開關(guān)造成的危險(xiǎn)。為了保護(hù)檢修航模的機(jī)務(wù)人員,必要時(shí)也可以設(shè)置手動(dòng)保護(hù)開關(guān),在檢修調(diào)試過(guò)程中禁止啟動(dòng)或點(diǎn)火,檢修完畢機(jī)務(wù)人員撤離前打開開關(guān)。
目前,市場(chǎng)上可選購(gòu)的航模遙控繼電器比較多,但都是單路控制,此類產(chǎn)品對(duì)于體積、重量等控制得很好,而對(duì)于可靠性及安全性的設(shè)計(jì)卻有所疏忽。因此我們?cè)O(shè)計(jì)了具有較高安全性的雙通道控制航模遙控繼電器。
硬件電路設(shè)計(jì)
航模遙控繼電器硬件電路組成框圖如圖1所示。航模遙控接收機(jī)的PWM信號(hào)經(jīng)信號(hào)調(diào)理電路簡(jiǎn)單處理后送到微控器進(jìn)行判別。微控器根據(jù)PWM信號(hào)脈寬,輸出高低電平控制繼電器驅(qū)動(dòng)電路控制繼電器的開閉。
信號(hào)調(diào)理電路
航模遙控繼電器信號(hào)調(diào)理電路部分如圖2所示。
P2為輸入信號(hào)連接器,從航模遙控接收機(jī)獲取供電和PWM信號(hào)。R4、R13為下拉電阻,當(dāng)信號(hào)線未可靠連接時(shí)下拉電阻將輸入端拉低,避免信號(hào)調(diào)理電路受外界信號(hào)干擾。R2與C12、R7與C15構(gòu)成簡(jiǎn)單的RC慮波電路。V3及V4為用于鉗位輸入電平的穩(wěn)壓二極管,在輸入電壓高于5.1V時(shí)起保護(hù)作用。U2為雙路反向輸出施密特觸發(fā)器,起輸入緩沖和波形整形作用,防止因輸入信號(hào)電平抖動(dòng)造成的誤判。
電源電路
電源電路如圖3所示。用電池直接供電時(shí),電壓變化范圍比較寬。在電池放電過(guò)程中可能會(huì)低于5V,采用升/降壓電路雖然能保證電源電壓恒定,但電路復(fù)雜體積大。而本電路功耗并不大,工作電壓范圍為4.5-5.5V,因此采用穩(wěn)壓二極管V1和串聯(lián)電阻R12穩(wěn)壓。為了減小模塊體積,慮波電容選用10uF陶瓷電容。C1、C2、C3為芯片去偶電容,元件布局時(shí)放在相應(yīng)芯片電源腳附近。
控制器電路
控制器采用國(guó)產(chǎn)單片機(jī)STC15F104W,該單片機(jī)為8腳SOP封裝,體積小,簡(jiǎn)單易用,成本低廉。該單片機(jī)采用增強(qiáng)型8051內(nèi)核,指令代碼完全兼容傳統(tǒng)51單片機(jī)。內(nèi)部集成RC振蕩器和復(fù)位電路,可以省掉外部晶振和外部復(fù)位電路。片上有4k字節(jié)Flash程序存儲(chǔ)器,128字節(jié)SRAM,INTO-INT4共5路外部中斷,2個(gè)16位可重載定時(shí)器、硬件看門狗等資源。
控制器電路如圖4所示,P1為程序下載口,可通過(guò)單片機(jī)的ISP功能向單片機(jī)中下載程序。D3為狀態(tài)指示燈,接P3.5口,用于指示模塊工作狀態(tài)。P3.2、P3.4用于接收PWM信號(hào)。P3.3為繼電器控制信號(hào)輸出,該引腳是RSTOUT LOW即上電和復(fù)位后輸出低電平(需要在下載程序時(shí)選擇相應(yīng)配置),可以避免上電或單片機(jī)復(fù)位瞬間輸出錯(cuò)誤電平使繼電器誤動(dòng)作。
繼電器驅(qū)動(dòng)電路
圖5為繼電器驅(qū)動(dòng)電路。用NMOS管2N7002作驅(qū)動(dòng)增強(qiáng)。R6、C11構(gòu)成RC濾波防止輸入端有尖峰脈沖。R11為下拉電阻。D2為保護(hù)二極管,在02關(guān)斷瞬間泄放繼電器線圈產(chǎn)生的反向電動(dòng)勢(shì)。P7為保護(hù)開關(guān)連接器,外接保護(hù)開關(guān),當(dāng)保護(hù)開關(guān)斷開時(shí),起保護(hù)作用;當(dāng)保護(hù)開關(guān)閉合時(shí),繼電器才能順利閉合。不用保護(hù)開關(guān)功能時(shí),可在R*1焊上0歐電阻,短接保護(hù)開關(guān)。也可以將保護(hù)開關(guān)接在R11兩端,當(dāng)開關(guān)閉合時(shí)02柵極被短路到地起保護(hù)作用,開關(guān)斷開時(shí)02可正常工作,避免因保護(hù)開關(guān)斷線造成電路一直處于保護(hù)狀態(tài)不能正常工作。繼電器選用5V超薄型繼電器HF41F/5-28S,平裝使電路更緊湊,6A的觸點(diǎn)切換能力滿足常見(jiàn)應(yīng)用,如將模塊用于點(diǎn)火啟動(dòng)可用該繼電器控制大電流的接觸器。P5為被控電路接線端。當(dāng)用作點(diǎn)火頭等火工品的控制時(shí),可將長(zhǎng)閉觸點(diǎn)接地,動(dòng)觸點(diǎn)接點(diǎn)火頭正極,常開觸點(diǎn)串聯(lián)合適限流電阻后接點(diǎn)火電源正極。當(dāng)驅(qū)動(dòng)大電流繼電器、電磁鐵等感性負(fù)載時(shí),需要外加續(xù)流二極管保護(hù)觸點(diǎn)。
軟件部分設(shè)計(jì)
軟件功能比較簡(jiǎn)單,主要是兩路PWM脈沖寬度的測(cè)量。在本設(shè)計(jì)中,用定時(shí)器1做PWM脈寬測(cè)量,定時(shí)器2做脈沖接收超時(shí)判斷以及故障狀態(tài)LED燈閃爍的計(jì)時(shí)。
主程序設(shè)計(jì)
主程序流程圖如圖6所示。上電后先配置IO口,把輸出拉低。然后延時(shí)2s,防止因帶電插拔造成信號(hào)抖動(dòng)產(chǎn)生誤判。延時(shí)結(jié)束后配置計(jì)時(shí)器,計(jì)時(shí)器1計(jì)數(shù)模式,計(jì)時(shí)器2定時(shí)中斷模式。配置完成后,運(yùn)行檢查PWM信號(hào)子程序,判斷PWM1及PWM2是否有信號(hào),無(wú)信號(hào)或者脈寬大于1.5ms時(shí)執(zhí)行空循環(huán),直到兩路PWM都有信號(hào),且兩路PWM信號(hào)都小于1.5ms才繼續(xù)往下運(yùn)行。以避免因接線問(wèn)題信號(hào)不通,或者遙控器開關(guān)未關(guān)閉信號(hào)一直有效,上電后繼電器直接吸合造成危險(xiǎn)。為保證安全,檢查PWM信號(hào)子程序可以運(yùn)行多次,以確保無(wú)誤。當(dāng)兩路信號(hào)都正常且脈寬小于1.5ms時(shí),進(jìn)入程序主循環(huán)。
在主循環(huán)中,依次測(cè)量并判斷PWM脈寬。為了避免異常脈沖信號(hào)的干擾,對(duì)收到的大于1.5ms的脈沖進(jìn)行計(jì)數(shù)。當(dāng)兩路PWM信號(hào)都連續(xù)收到了至少3個(gè)大于1.5ms的脈沖,才輸出高電平并且點(diǎn)亮LED指示燈,否則關(guān)閉輸出和LED。
脈寬測(cè)量程序段如下。采用等待計(jì)時(shí)的方法測(cè)量脈沖寬度。PWM信號(hào)的高電平脈寬為有效信號(hào)量,但硬件電路中PWM信號(hào)先經(jīng)過(guò)了反向輸出的施密特觸發(fā)器,信號(hào)電平已經(jīng)被反向,所以應(yīng)該測(cè)量低電平的脈沖寬度。
檢查PWM信號(hào)子程序
檢查PWM信號(hào)子程序流程圖如圖7所示。該子程序主要完成兩路PWM信號(hào)有無(wú)的檢驗(yàn),以及信號(hào)脈寬的測(cè)量與判斷。無(wú)PWM信號(hào)時(shí),電平不跳變,主程序不再向下運(yùn)行。LED指示燈在定時(shí)器2中斷函數(shù)的控制下閃爍,提示未收到信號(hào)。信號(hào)有無(wú)檢驗(yàn)通過(guò)后,程序?qū)y(cè)量每一路PWM信號(hào)的脈寬。先預(yù)置超限標(biāo)志,假設(shè)信號(hào)有誤。檢測(cè)到第一路PWM信號(hào)脈寬小于1.5ms,即PWM信號(hào)為正常的無(wú)效信號(hào)時(shí),清信號(hào)超限標(biāo)志位。接著檢測(cè)第二路PWM信號(hào),若脈寬大于1.5ms,即PWM信號(hào)為有效觸發(fā)信號(hào)時(shí),置信號(hào)超限標(biāo)志函數(shù)。如果第二路PWM信號(hào)脈寬小于1.5ms,不改變信號(hào)超限標(biāo)志函數(shù)的狀態(tài)。當(dāng)兩次脈寬測(cè)量結(jié)束后,如果信號(hào)超限標(biāo)志函數(shù)置位,將進(jìn)入下一輪測(cè)量脈寬的循環(huán),直到兩路脈沖都檢測(cè)到正常的無(wú)效信號(hào),才退出循環(huán),結(jié)束子程序。這樣的脈沖檢查對(duì)于信號(hào)斷線、開關(guān)忘關(guān)等意外情況具有很好的保護(hù)作用。尤其是對(duì)有效信號(hào)的檢測(cè),上電時(shí)必須兩路開關(guān)都處于關(guān)閉狀態(tài),程序才能正常向下運(yùn)行。保證了上電瞬間不會(huì)因?yàn)橥P(guān)開關(guān)而誤觸發(fā)。
計(jì)時(shí)器2中斷處理函數(shù)
計(jì)時(shí)器2中斷處理函數(shù)流程圖如圖8所示,完成脈沖接收超時(shí)判斷以及故障狀態(tài)LED燈閃爍的計(jì)時(shí)。
進(jìn)入中斷處理函數(shù)后,首先檢查有脈沖標(biāo)志函數(shù),如果有脈沖函數(shù)為有效計(jì)時(shí)函數(shù)自增。然后檢查PWM信號(hào)為新標(biāo)志,如果為新收到的計(jì)時(shí)函數(shù)清零,如果不為新,即在上一個(gè)計(jì)時(shí)器中斷間隔內(nèi)沒(méi)有檢測(cè)到新的PWM脈沖,就判斷計(jì)時(shí)是否超時(shí),如果超時(shí)就關(guān)閉輸出和LED并清有脈沖標(biāo)志。判斷結(jié)束后,清信號(hào)為新標(biāo)志。兩路PWM信號(hào)的計(jì)時(shí)操作相同,只是用到的變量不同。中斷函數(shù)里用到的有脈沖標(biāo)志以及信號(hào)為新標(biāo)志都是全局變量,在主程序PWM脈寬檢測(cè)中當(dāng)檢測(cè)順利完成后置位。而中斷處理函數(shù)中用到的計(jì)時(shí)和計(jì)數(shù)變量也都聲明為全局變量,每次進(jìn)入中斷其值不會(huì)被重置可以連續(xù)計(jì)數(shù)。
完成脈沖接收超時(shí)判斷后,LED計(jì)時(shí)變量自增,然后判斷兩路PWM信號(hào)的有脈沖標(biāo)志,以及在檢查PWM信號(hào)子函數(shù)中得到的脈沖寬度超限標(biāo)志。如果脈沖正常且上電時(shí)脈沖寬度都未超限,就清零LED計(jì)時(shí)變量。然后判斷超限標(biāo)志,看是否是上電后對(duì)PWM的初檢未通過(guò)。如果是初檢未通過(guò),判斷LED計(jì)時(shí)是否計(jì)滿200,如果計(jì)數(shù)滿清計(jì)數(shù)LED輸出反轉(zhuǎn),重復(fù)進(jìn)入中斷可以使LED以較快的速度閃爍。如果不是初檢未通過(guò),判斷LED計(jì)數(shù)是否滿2000,如果計(jì)數(shù)滿2000清計(jì)數(shù)LED輸出反轉(zhuǎn),LED將以較慢的速度閃爍,提示缺PWM信號(hào)。調(diào)試與應(yīng)用
程序編譯通過(guò)后,用STC-ISP軟件燒錄入單片機(jī),用信號(hào)發(fā)生器模擬接收機(jī)PWM信號(hào)輸入模塊的信號(hào)輸入端。經(jīng)測(cè)定,當(dāng)上電后PWM脈寬大于1.5ms或無(wú)信號(hào)時(shí)指示燈閃爍,繼電器無(wú)動(dòng)作。上電后兩路PWM脈寬均在0.5ms至1.5ms之間時(shí),調(diào)整兩路脈沖寬度大于1.5Ms,繼電器吸和。調(diào)小脈沖寬度,當(dāng)任一路PWM信號(hào)小于1.5ms時(shí)繼電器斷開。實(shí)現(xiàn)了設(shè)計(jì)的繼電器控制及出錯(cuò)保護(hù)等功能。目前此模塊已經(jīng)用于我公司蚊子直升機(jī)無(wú)人化改裝中發(fā)動(dòng)機(jī)啟動(dòng)熄火控制、消防滅火火箭彈打靶測(cè)試實(shí)驗(yàn)中推進(jìn)火箭點(diǎn)火,極大地提高了初期驗(yàn)證實(shí)驗(yàn)的安全性,避免了誤啟動(dòng)、誤點(diǎn)火等意外情況發(fā)生。該模塊結(jié)構(gòu)簡(jiǎn)單,成本低廉,使用靈活方便,具有較完善的保護(hù)措施,在航空模型及無(wú)人飛行器的設(shè)備遙控.發(fā)動(dòng)機(jī)啟??刂?、拉煙點(diǎn)火等火工品控制場(chǎng)合都有廣泛的應(yīng)用前景。