單片機(jī)STCl2C2052AD的比例遙控系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
遠(yuǎn)程控制技術(shù)又稱為遙控技術(shù),是指實(shí)現(xiàn)對(duì)被控目標(biāo)的遙遠(yuǎn)控制,在工業(yè)控制、家用電器、無(wú)線電運(yùn)動(dòng)以及兒童玩具等領(lǐng)域都有非常廣泛的應(yīng)用。遙控技術(shù)可以分為單通道遙控和多通道遙控,也可以分為開(kāi)關(guān)型遙控和比例型遙控。
本文主要介紹了使用到單片機(jī)部分的控制電路,包括發(fā)射機(jī)電路和接收機(jī)電路。發(fā)射機(jī)采用電位器分壓作為比例控制信號(hào),由4路A/D電路轉(zhuǎn)換為數(shù)字信號(hào),各個(gè)通道數(shù)字信號(hào)連同兩路開(kāi)關(guān)量由單片機(jī)進(jìn)行多通道編碼,編碼信號(hào)由串行口送出,最后由發(fā)射模塊發(fā)射。接收機(jī)主要負(fù)責(zé)把收到的信號(hào)放大并從中解調(diào)出編碼信號(hào),最后由伺服機(jī)把接收機(jī)收到的電信號(hào)轉(zhuǎn)換成相應(yīng)的機(jī)械動(dòng)作,由此實(shí)現(xiàn)方向和速度的控制。
外觀上,在遙控器的發(fā)射端應(yīng)該有帶旋鈕的比例表盤(pán),把5 V電壓平均分成360°,每一個(gè)小的度量單位就代表一定的電壓值,當(dāng)旋鈕轉(zhuǎn)動(dòng)一定角度時(shí),也就是輸入給發(fā)射單片機(jī)一定的電壓值,與此同時(shí),發(fā)射單片機(jī)一直以一定的時(shí)間間隔去查詢當(dāng)前的速度并讀入到單片機(jī)內(nèi)部,并根據(jù)計(jì)算公式計(jì)算出模型應(yīng)該前進(jìn)的距離或者當(dāng)前應(yīng)該的速度且根據(jù)此值設(shè)置相應(yīng)的計(jì)數(shù)/定時(shí)器的初值,然后由系統(tǒng)外部驅(qū)動(dòng)電路(伺服機(jī))把接收單片機(jī)收到的電信號(hào)轉(zhuǎn)換成相應(yīng)的機(jī)械動(dòng)作,即前進(jìn)一定距離或者作加減速運(yùn)動(dòng);當(dāng)定時(shí)器溢出產(chǎn)生中斷以后,外部相應(yīng)的驅(qū)動(dòng)電路也幾乎同時(shí)發(fā)出控制信號(hào)控制模型停止任何動(dòng)作。
使用比例遙控的優(yōu)點(diǎn)有很多。例如:控制靈活;可以調(diào)整遙控的距離且調(diào)整的最大距離比一般遙控遠(yuǎn);可以根據(jù)使用者的意愿實(shí)現(xiàn)模型的速度改變;線路簡(jiǎn)單,抗干擾能力強(qiáng);伺服機(jī)構(gòu)(包括齒輪箱和伺服馬達(dá))簡(jiǎn)單等等。
1 比例遙控設(shè)備的基本原理
一般比例遙控系統(tǒng)的功能框圖如圖1所示。
圖1(a)中,鍵盤(pán)用于產(chǎn)生發(fā)射端控制信號(hào);編碼器對(duì)控制信號(hào)進(jìn)行編碼;顯示器顯示受控對(duì)象及其受控狀態(tài)類(lèi)別;發(fā)射機(jī)將操縱指令轉(zhuǎn)換為帶有控制信息的無(wú)線電信號(hào)并將此信號(hào)進(jìn)行功率放大,以滿足發(fā)射功率的要求。
圖1(b)中,解碼器將編碼信號(hào)譯成控制信號(hào);控制器對(duì)受控對(duì)象實(shí)施控制;接收機(jī)接收發(fā)射機(jī)發(fā)出的無(wú)線電信號(hào),同時(shí)將接收到的信號(hào)放大并從中解調(diào)出編碼信號(hào),一般和發(fā)射機(jī)配套使用。由于接收機(jī)是裝在模型上的,一般都應(yīng)該盡量做到小巧,同時(shí)還應(yīng)具有很高的靈敏度,能接收較遠(yuǎn)距離發(fā)射的無(wú)線電信號(hào)。
遙控設(shè)備的基本工作原理是:操縱者通過(guò)手中的遙控發(fā)射機(jī)(撥動(dòng)發(fā)射機(jī)上的旋鈕或者搖桿)將控制模型前進(jìn)、后退、加速或減速的指令變成電信號(hào)并將其發(fā)射到空中;模型上裝載的遙控接收機(jī)收到這些電信號(hào)并由伺服舵機(jī)轉(zhuǎn)換成相應(yīng)的機(jī)械運(yùn)動(dòng),從而實(shí)現(xiàn)對(duì)模型的遙控。
2 單片機(jī)比例遙控系統(tǒng)的具體設(shè)計(jì)
無(wú)線比例遙控系統(tǒng)主要由發(fā)射和接收兩個(gè)部分組成,發(fā)射部分完成對(duì)遙控指令的發(fā)射,接收部分完成對(duì)指令的實(shí)施。在設(shè)計(jì)時(shí)可將其分開(kāi)設(shè)計(jì)。
2.1 發(fā)射電路
圖2為使用STCl2C2052AD單片機(jī)設(shè)計(jì)的比例遙控系統(tǒng)發(fā)射機(jī)的主電路。由于使用了單片機(jī),使整個(gè)電路變得非常簡(jiǎn)潔。P1口為比例遙控信號(hào)的輸入端;通過(guò)電位器分壓得到比例控制信號(hào),由4路A/D電路轉(zhuǎn)換為數(shù)字信號(hào),各個(gè)通道數(shù)字信號(hào)連同兩路開(kāi)關(guān)量由單片機(jī)進(jìn)行多通道編碼,編碼信號(hào)由串行口送出,最后由發(fā)射模塊發(fā)射。如果需要設(shè)計(jì)更多通道的比例遙控系統(tǒng),可以利用其余沒(méi)有使用到的P1端口,外接電位器進(jìn)行相應(yīng)的功能擴(kuò)展。當(dāng)沒(méi)有控制信號(hào)時(shí),P1口均為高電平。由軟件控制將P1口的控制信號(hào)(低電平有效)送到單片機(jī)內(nèi)部進(jìn)行相關(guān)處理。
STCl2C2052AD是20腳封裝的單時(shí)鐘/機(jī)器周期的兼容8051 RISC型CPU內(nèi)核的單片機(jī)。它是本設(shè)計(jì)的核心器件,其速度比普通的8051快12倍;功耗低;片上集成256字節(jié)的RAM;15個(gè)通用可編程I/0口,可以設(shè)置成4種模式——準(zhǔn)雙向口/弱上拉、推挽/強(qiáng)上拉、僅為輸入/高阻、開(kāi)漏(其中復(fù)位后為準(zhǔn)雙向口/弱上拉模式);片內(nèi)有EEPROM功能;共有2個(gè)16位定時(shí)器/計(jì)數(shù)器;內(nèi)部還集成了RC振蕩器,在精度要求不高時(shí)可以省略外部晶振;具有較寬的操作電壓范圍以及獨(dú)立的片內(nèi)看門(mén)狗定時(shí)器;P1.7~P1.O共8路高精度的高速電壓輸入型8位A/D轉(zhuǎn)換器,速度可以達(dá)到100 kHz,可用于溫度檢測(cè)、電池電壓檢測(cè)、頻譜檢測(cè)等等,上電復(fù)位后P1口為弱上拉型I/0口,用戶可以通過(guò)軟件設(shè)置將8路中的任何一路設(shè)置為A/D轉(zhuǎn)換(不需要作為A/D使用的端口可以繼續(xù)作為I/O口使用,需作為A/D使用的端口要先將其設(shè)置為高阻輸入模式或者開(kāi)漏模式)。本設(shè)計(jì)中的單片機(jī)還可以由其他同類(lèi)型的20腳封裝的51系列單片機(jī)代替,設(shè)計(jì)方法多種多樣。
2.2 接收電路
接收電路主要作用是將發(fā)射機(jī)發(fā)射出的已調(diào)的編碼指令信號(hào)接收下來(lái),并進(jìn)行放大后送到解調(diào)電路,解調(diào)電路將已經(jīng)調(diào)制的指令編碼信號(hào)解調(diào)出來(lái),還原為編碼信號(hào)。指令譯碼器將編碼指令信號(hào)進(jìn)行譯碼,最后由驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)執(zhí)行電路實(shí)現(xiàn)各種指令的操作控制。圖3為接收機(jī)主電路,發(fā)射機(jī)傳來(lái)的信號(hào)由P3.O輸入后送至P1口,由軟件控制P1的相應(yīng)端口輸出控制信號(hào)。P1口的4位A/D端口可以接到不同的控制端。由于是比例遙控,所以應(yīng)將輸出口的控制信號(hào)送到下一級(jí)比例遙控專(zhuān)用的伺服電路。
整個(gè)系統(tǒng)的執(zhí)行部分是由直流電動(dòng)機(jī)驅(qū)動(dòng)電路來(lái)完成的,主要控制模型的行進(jìn)方向和速度。單片機(jī)STCl2C2052AD既是協(xié)調(diào)整個(gè)接收機(jī)工作的控制器,又是數(shù)據(jù)處理器和運(yùn)算器,由于它直接有PWM功能,因此不需要占用單片機(jī)資源,可以直接產(chǎn)生占空比可變的脈沖信號(hào),對(duì)橋式雙向電路驅(qū)動(dòng)電動(dòng)機(jī)進(jìn)行電壓控制,從而完成對(duì)電動(dòng)機(jī)驅(qū)動(dòng)、轉(zhuǎn)速以及前進(jìn)或后退的控制,并能夠?qū)崿F(xiàn)脈寬精確調(diào)速。
圖3中,與單片機(jī)左邊相連的部分為電動(dòng)機(jī)驅(qū)動(dòng)電路。該電路由2對(duì)晶體管組成一個(gè)橋式互補(bǔ)對(duì)稱電路,其中包含了電動(dòng)機(jī)。電動(dòng)機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成階躍型的角位移或者直線位移的變換器,它的旋轉(zhuǎn)是以固定的角度(步距角)運(yùn)行的。當(dāng)4個(gè)晶體管均為低電平時(shí)(由芯片控制),這4個(gè)晶體管的集電極和發(fā)射極均不能導(dǎo)通,此時(shí)電動(dòng)機(jī)a端和b端均為O V,電動(dòng)機(jī)不能轉(zhuǎn)動(dòng)。當(dāng)P3.0和P3.2為高電平,P3.1和P3.3為低電平時(shí),晶體管T1和T3均導(dǎo)通,此時(shí)a端得到高電平,而b端與地相通,電動(dòng)機(jī)開(kāi)始轉(zhuǎn)動(dòng)。除去晶體管T1和T3的壓降,電動(dòng)機(jī)的兩端大概可以得到4.5 V的電壓。同樣道理,當(dāng)P3.1和P3.3為高電平,P3.O和P3.2為低電平時(shí),b端得到高電平,而a端與地相通,電動(dòng)機(jī)反轉(zhuǎn)。通過(guò)該橋式電路,控制P3.O和P3.2、P3.1和P3.3端口的電平(注意:這4個(gè)端口不能全部為高電平)便可以實(shí)現(xiàn)電動(dòng)機(jī)的正轉(zhuǎn)、反轉(zhuǎn)和停轉(zhuǎn),即實(shí)現(xiàn)了模型的前進(jìn)或后退。為了消除電動(dòng)機(jī)的電弧干擾,應(yīng)在電動(dòng)機(jī)兩側(cè)加一個(gè)小電容,其值為0.1μF。
另外,設(shè)計(jì)中還要求能夠?qū)δP瓦M(jìn)行速度的控制??刂齐妱?dòng)機(jī)的運(yùn)行速度,實(shí)際上就是控制系統(tǒng)發(fā)出時(shí)鐘脈沖的頻率或著是換相的周期,即在升速過(guò)程中,使脈沖的輸出頻率逐漸增加;在減速過(guò)程中,使脈沖的輸出頻率逐漸減少。脈沖信號(hào)的頻率可以用軟件延時(shí)和硬件中斷兩種方法來(lái)確定:
①采用軟件延時(shí),一般是根據(jù)所需的時(shí)間常數(shù)來(lái)設(shè)計(jì)一個(gè)子程序。該程序包含一定的指令,設(shè)計(jì)者要對(duì)這些指令的執(zhí)行時(shí)間進(jìn)行精確的計(jì)算,以便確定延時(shí)時(shí)間。在每次確定前進(jìn)方向之后調(diào)用一個(gè)延時(shí)子程序,待延時(shí)結(jié)束以后再執(zhí)行換向,這樣周而復(fù)始就可以發(fā)出一定頻率的CP脈沖或換向周期。延時(shí)子程序的延時(shí)時(shí)間與換向程序所用的時(shí)間和,就是CP脈沖的周期。該方法簡(jiǎn)單,占用資源少,全部由軟件實(shí)現(xiàn),調(diào)用不同的子程序就可以實(shí)現(xiàn)不同速度的運(yùn)行;但是,若占用CPU的時(shí)間過(guò)長(zhǎng),就不能在運(yùn)行時(shí)處理其他的工作,因此它比較適合簡(jiǎn)單的控制過(guò)程。
②使用單片機(jī)中的定時(shí)器直接對(duì)系統(tǒng)時(shí)鐘脈沖或某一固定頻率的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)值由編程決定。定時(shí)器啟動(dòng)后,定時(shí)器從裝載的初值開(kāi)始對(duì)系統(tǒng)及其周期進(jìn)行加計(jì)數(shù)。當(dāng)定時(shí)器溢出時(shí),定時(shí)器產(chǎn)生中斷,系統(tǒng)轉(zhuǎn)去執(zhí)行定時(shí)中斷子程序,將電機(jī)換向子程序放在定時(shí)中斷服務(wù)程序中,定時(shí)中斷一次,電機(jī)換向一次,從而實(shí)現(xiàn)電機(jī)的速度控制。用定時(shí)中斷方式來(lái)控制電動(dòng)機(jī)的速度,實(shí)際上是不斷改變定時(shí)器裝載值的大小。
2.3 單片機(jī)程序設(shè)計(jì)
由于單片機(jī)的各個(gè)引腳都有很多功能,因此在軟件程序設(shè)計(jì)中要特別注意它們的定義和對(duì)片內(nèi)特殊功能寄存器的初始化設(shè)置,以便實(shí)現(xiàn)相應(yīng)的功能。在初始化設(shè)置完成之后,開(kāi)始接收第1通道數(shù)據(jù),同時(shí)必須使接收單片機(jī)同步接收通道數(shù)據(jù),相隔一定時(shí)間查詢第1通道當(dāng)前電壓A/D轉(zhuǎn)換的結(jié)果是否與查詢之前的結(jié)果相同。如果相同,則繼續(xù)發(fā)送下一個(gè)通道的數(shù)據(jù);反之,則立即向接收機(jī)發(fā)送該通道的通道號(hào)和相應(yīng)的A/D轉(zhuǎn)換結(jié)果,且在延時(shí)10 ms后準(zhǔn)備發(fā)送下一個(gè)通道的數(shù)據(jù)。全部數(shù)據(jù)發(fā)送完畢后再重新開(kāi)始新一輪的數(shù)據(jù)查詢和發(fā)送。延時(shí)的目的在于給接收單片機(jī)留出一定的處理時(shí)間。圖4(a)所示為發(fā)射單片機(jī)程序設(shè)計(jì)流程。
接收機(jī)用接收模塊將信號(hào)接收并解調(diào),解調(diào)后的信號(hào)送串行口由STCl2C2052AD譯碼,最后驅(qū)動(dòng)控制執(zhí)行機(jī)構(gòu)。由于本設(shè)計(jì)的任務(wù)簡(jiǎn)單,所以遙控系統(tǒng)對(duì)操作的響應(yīng)時(shí)間并沒(méi)有嚴(yán)格的要求,在A/D轉(zhuǎn)換和串行通信程序設(shè)計(jì)中可以采用查詢方式,將讀人的信號(hào)轉(zhuǎn)換成相應(yīng)的控制信號(hào),并用識(shí)別標(biāo)志位的方法識(shí)別所對(duì)應(yīng)的控制方式。接收單片機(jī)的串行口必須與發(fā)射機(jī)保持一致。由于改變的速度值可以直接轉(zhuǎn)換成相應(yīng)的電信號(hào)送入接收單片機(jī)的P1端口,單片機(jī)每響應(yīng)一次外部中斷,就會(huì)在對(duì)應(yīng)的中斷服務(wù)程序中根據(jù)計(jì)算公式增加或減小速度。當(dāng)電機(jī)處于正反向調(diào)速系統(tǒng)時(shí),在正反向調(diào)速子程序中根據(jù)該速度通過(guò)計(jì)算公式可以得到單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器的初值。在開(kāi)始計(jì)數(shù)的同時(shí),啟動(dòng)相應(yīng)的控制程序驅(qū)動(dòng)電動(dòng)機(jī)驅(qū)動(dòng)電路。定時(shí)時(shí)間結(jié)束的同時(shí),停止對(duì)相應(yīng)伺服電路的驅(qū)動(dòng),回到初始化狀態(tài),準(zhǔn)備開(kāi)始接收新的信號(hào)和數(shù)據(jù)。相應(yīng)的程序流程如圖4(b)所示。
2.4 系統(tǒng)調(diào)試及抗干擾措施
在調(diào)試電路時(shí)要注意將數(shù)字信號(hào)與模擬信號(hào)隔離,即兩部分不能交叉安裝;數(shù)字信號(hào)的地線應(yīng)與模擬信號(hào)的地線分開(kāi),電源間要加去耦電路。晶體諧振器形成的干擾一般很大,應(yīng)將其外殼接地。
系統(tǒng)調(diào)試時(shí)先分別調(diào)試各個(gè)單元模塊,調(diào)通后再進(jìn)行整機(jī)調(diào)試,這樣可提高調(diào)試效率。
隨著單片機(jī)在實(shí)際中的應(yīng)用越來(lái)越廣泛,對(duì)其可靠性的要求也越來(lái)越高。單片機(jī)系統(tǒng)的可靠性由多種因素決定,其中系統(tǒng)的抗干擾性能是可靠性的重要指標(biāo)。如果外界環(huán)境中有強(qiáng)烈的電磁干擾,就必須采取抗干擾措施,否則單片機(jī)就難以穩(wěn)定、可靠地運(yùn)行。所以在系統(tǒng)硬件方面應(yīng)該采取必要的抗干擾措施:
①器件選擇。本設(shè)計(jì)中的主要功能單元選用了專(zhuān)門(mén)的集成芯片,這對(duì)于提高系統(tǒng)的穩(wěn)定性和抗干擾性都有很大的好處。
②過(guò)壓保護(hù)電路。在輸入輸出通道上應(yīng)采用一過(guò)壓保護(hù)電路,以防止引入高電壓,傷害微機(jī)系統(tǒng)。過(guò)壓保護(hù)電路主要由限流電阻和穩(wěn)壓管組成。限流電阻選擇要適宜,太大會(huì)引起信號(hào)衰減,太小起不到保護(hù)穩(wěn)壓管的作用。穩(wěn)壓管的選擇也要適宜,其穩(wěn)壓值以略高于最高傳送信號(hào)電壓為宜,太低將對(duì)有效信號(hào)限幅,使信號(hào)失真。
③配置去耦電容。在電動(dòng)機(jī)的兩端安置一個(gè)0.1μF的電容,可以消除大部分的高頻干擾。
④良好接地。在單片機(jī)控制系統(tǒng)中,接地問(wèn)題將直接影響系統(tǒng)是否正常工作。
結(jié) 語(yǔ)
基于STC系列單片機(jī)STCl2C2052AD設(shè)計(jì)的比例遙控控制系統(tǒng),由于采用了模塊化的設(shè)計(jì)方法,使得整個(gè)系統(tǒng)具有一定的擴(kuò)展性。系統(tǒng)中的個(gè)別電路采用數(shù)字電路也可以實(shí)現(xiàn)同樣的功能,如信號(hào)振蕩器、A/D轉(zhuǎn)換器等;但是它們?cè)诳刂坪托阅芊矫娑驾^差,硬件設(shè)計(jì)也比較麻煩。本電路采用了帶A/D轉(zhuǎn)換的單片機(jī)進(jìn)行控制處理,使得整個(gè)系統(tǒng)具有簡(jiǎn)潔、靈活自由、易于控制、穩(wěn)定性較好等優(yōu)點(diǎn),大大提高了智能化自動(dòng)控制的程度,而且系統(tǒng)的性能也很好。