摘要:本文利用51單片機(jī)及相關(guān)元器件組成一個(gè)相對(duì)獨(dú)立的小系統(tǒng),實(shí)現(xiàn)對(duì)伺服系統(tǒng)的控制,從而降低主控計(jì)算機(jī)的處理能力,提高整個(gè)控制系統(tǒng)運(yùn)行的可靠性。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);伺服系統(tǒng);控制
1 引言
隨著計(jì)算機(jī)技術(shù)和自動(dòng)控制技術(shù)的迅速發(fā)展,人們對(duì)系統(tǒng)集成度的要求越來越高。為了減輕主控計(jì)算機(jī)的處理能力,將一些功能相對(duì)獨(dú)立的分機(jī)或分系統(tǒng)改用單片機(jī)或FPGA來控制,已經(jīng)成為一種趨勢(shì)。本文就是基于這種思想,通過單片機(jī)來實(shí)現(xiàn)對(duì)伺服系統(tǒng)的控制,從而達(dá)到降低主控計(jì)算機(jī)負(fù)擔(dān)的目的。
2 硬件設(shè)計(jì)
單片機(jī)系統(tǒng)由87C51單片機(jī)、地址譯碼及通道控制電路、數(shù)據(jù)鎖存電路和D/A轉(zhuǎn)換器等組成,如圖1所示。
單片機(jī)系統(tǒng)接收主控計(jì)算機(jī)送來的中斷信號(hào),將立即采集并存貯來自角度轉(zhuǎn)換模塊的實(shí)時(shí)角度數(shù)字信號(hào),作為方位的初始位置,另一方面以一定的速率采集來自角度轉(zhuǎn)換模塊的實(shí)時(shí)角度數(shù)字信號(hào),單片機(jī)在對(duì)兩個(gè)角度數(shù)字量進(jìn)行處理、誤差計(jì)算、PID校正計(jì)算后,將控制數(shù)字量輸出至D/A進(jìn)行數(shù)模轉(zhuǎn)換,然后D/A輸出的模擬電壓信號(hào)送到伺服驅(qū)動(dòng)電路控制電機(jī)轉(zhuǎn)動(dòng)。
2.1 譯碼及通道控制電路原理
通道控制邏輯由D7(74LS138)三線-八線譯碼器、D10(74LS74)及D9(CD40107)等電平轉(zhuǎn)換電路組成。通道開關(guān)由CD4051八選一模擬開關(guān)擔(dān)當(dāng)。CD4051是用數(shù)字信號(hào)去控制模擬開關(guān)的接通或斷開,具有低的導(dǎo)通電阻和高的斷開電阻,同時(shí)它具有正負(fù)電源供電,因而能夠傳輸峰峰值可達(dá)15VP-P的交流信號(hào),很適合作D/A輸出的通道通斷的開關(guān)用。當(dāng)系統(tǒng)上電或系統(tǒng)復(fù)位時(shí),CD4051的控制端INH為+15V(高電平),CD4051斷開;當(dāng)控制程序中向數(shù)據(jù)口寫打開通道命令時(shí),INH為0V(低電平),CD4051接通。其原理框圖如圖2所示。
2.2 譯碼及通道控制邏輯電路
74LS138譯碼器的輸入PC0-PC6接在主控計(jì)算機(jī)并行接口電路板(一般選用8255A芯片)的C口上。系統(tǒng)上電時(shí),由于C31和C32兩端的電壓不能突變,因此在D8的9腳和10腳將有一定寬度的負(fù)脈沖,寬度主要由C31和R16決定。74LS74組成單穩(wěn)觸發(fā)器,上電時(shí)D8的11腳負(fù)脈沖送到D10的1腳,強(qiáng)迫D10的5腳輸出為低電平,此狀態(tài)一直保持到D10的3腳來一個(gè)正脈沖為止。D10的 5腳低電平經(jīng)D9反向并變換為+15V的正電壓,此電壓使通道開關(guān)斷開。當(dāng)系統(tǒng)初始化完成后,進(jìn)入應(yīng)用程序,在應(yīng)用程序適當(dāng)?shù)牡胤?,通過主控計(jì)算機(jī)向并口電路板C口寫數(shù)據(jù)0X6D,D7譯碼器Y5輸出一負(fù)脈沖,經(jīng)反向在D10的3腳得到一個(gè)正脈沖,此脈沖使D10的5腳輸出與D10的2腳一致的電壓即正電壓,這時(shí)D9將輸出低電平(0V),通道開關(guān)將接通。當(dāng)系統(tǒng)復(fù)位時(shí),AUXRESET為負(fù)脈沖,同上電復(fù)位時(shí)一樣,通道開關(guān)將斷開,直到程序把通道開關(guān)接通為止。
邏輯電路圖如圖3所示。
圖中D9的第二單元是作為自檢判斷用的,在單片機(jī)程序中由P1.0腳輸出固定周期的方波,從而在發(fā)光二極管發(fā)出閃爍的光,表明單片機(jī)工作正常;反之單片機(jī)系統(tǒng)工作不正常。
單片機(jī)的P2口和讀寫信號(hào)參與譯碼,其口地址譯碼如表1所示。
2.3數(shù)/模轉(zhuǎn)換電路
本板采用的D/A轉(zhuǎn)換模塊為DATEL公司的DAC-HK12BMM轉(zhuǎn)換器。D/A完成的是12位數(shù)字量到模擬量的轉(zhuǎn)換,而單片機(jī)數(shù)據(jù)總線只有八位,為此D/A高八位數(shù)據(jù)用74LS373進(jìn)行鎖存,然后與低八位送來的數(shù)據(jù)同時(shí)送到D/A進(jìn)行轉(zhuǎn)換。D/A輸入的數(shù)據(jù)格式如圖4所示:
本板采用的編碼方式為二進(jìn)制,電壓量程為±10V。D/A轉(zhuǎn)換模塊的外圍分立元件的參數(shù)基本上是采用的DATEL公司提供的該模塊的默認(rèn)參數(shù)。其電路圖如圖5所示。
2.4數(shù)模轉(zhuǎn)換精度校正
數(shù)模轉(zhuǎn)換精度校正即D/A輸出模塊的精度調(diào)試由于輸入數(shù)據(jù)要經(jīng)常改變,而單片機(jī)程序是寫死的,所以一般需借助仿真器來完成。因篇幅有限,本文對(duì)仿真過程不在贅述,僅介紹調(diào)試過程以供參考。
將毫伏表量程設(shè)置在100V檔,一端接地,一端接測(cè)試輸出的D/A端口即可進(jìn)行校準(zhǔn)。具體步驟如下:
(1)將毫伏表輸入端一端接地,一端接D/A輸出管腳。
(2)裝入校準(zhǔn)程序。對(duì)于負(fù)滿刻度輸出,輸入轉(zhuǎn)換電壓對(duì)應(yīng)值0000H; 對(duì)于正滿刻度輸出,則輸入值為0FFFH。運(yùn)行程序,根據(jù)毫伏表上的顯示電壓調(diào)整對(duì)應(yīng)的電位器R11和R14以得到輸出-10.000V和+10.000V的電壓即可(注意:負(fù)滿刻度和正滿刻度的調(diào)整有時(shí)需重復(fù)幾次進(jìn)行,以得到滿意的輸出)。
3.2 源程序
由于主程序源代碼較長(zhǎng),本文僅提供數(shù)模轉(zhuǎn)換精度校正部分的源代碼。
說明:?jiǎn)纹瑱C(jī)晶振頻率:11.0592MHz。定時(shí)/計(jì)數(shù)器1定時(shí)時(shí)間為10MS,用于使P1.7腳輸出固定周期的高電平觸發(fā)脈沖。定時(shí)/計(jì)數(shù)器0定時(shí)時(shí)間為50MS,循環(huán)20次即1000MS=1S,用于使p1.0輸出固定周期的方波,以便判斷單片機(jī)是否工作正常。
ORG0000H
LJMPSTART ;轉(zhuǎn)移到START開始執(zhí)行
ORG0030H ;主程序
START:MOVR7,#14H;設(shè)定循環(huán)次數(shù)
MOV TMOD,#11H;定時(shí)/計(jì)數(shù)器0、1工作方式置為1
MOV TH1,#0D8H;定時(shí)/計(jì)數(shù)器1高8位置數(shù)
MOV TL1,#0F0H;定時(shí)/計(jì)數(shù)器1低8位置數(shù)
MOV TH0,#3CH;定時(shí)/計(jì)數(shù)器0高8位置數(shù)
MOV TL0,#0B0H;定時(shí)/計(jì)數(shù)器0低8位置數(shù)
MOV IE,#8AH ;定時(shí)/計(jì)數(shù)器0、1中斷允許
SETB TR1 ;定時(shí)/計(jì)數(shù)器1定時(shí)開始
SETB TR0 ;定時(shí)/計(jì)數(shù)器0定時(shí)開始
MOV P0, #00H ;高八位控制量數(shù)據(jù)
MOV P2, #84H;口地址
CLR P3.6;輸出高八位控制量至74LS373鎖存(寫信號(hào)有效)
NOP
NOP
SETB P3.6
MOV P0, #00H;低八位控制量數(shù)據(jù)
MOV P2, #85H;口地址
CLR P3.6 ;輸出低八位控制量至D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換開始(寫信號(hào)保持有效,使輸出電壓不變,便于測(cè)量及調(diào)試)
LOOP:SJMP$ ;等待中斷
ORG 000BH ;定時(shí)/計(jì)數(shù)器0中斷服務(wù)程序
MOV TH0, #3CH ;定時(shí)/計(jì)數(shù)器0重裝載(高8位)
MOV TL0, #0B0H;定時(shí)/計(jì)數(shù)器0重裝載(低8位)
DJNZ R7, LP1 ;循環(huán)次數(shù)未到,轉(zhuǎn)LP1
CPL P1.0 ;循環(huán)次數(shù)已到,P1.0腳電平改變
MOV R7, #14H ;循環(huán)已完成,R7重新賦初值
LP1: RETI
ORG 001BH ;定時(shí)/計(jì)數(shù)器1中斷服務(wù)程序
CPL P1.7 ;P1.7腳電平改變
MOV TH1, #0D8H ;定時(shí)/計(jì)數(shù)器1重裝載(高8位)
MOV TL1, #0F0H ;定時(shí)/計(jì)數(shù)器1重裝載(低8位)
RETI
4 結(jié)論
該系統(tǒng)已成功應(yīng)用于筆者所從事的控制系統(tǒng)中,經(jīng)過實(shí)踐驗(yàn)證,該系統(tǒng)運(yùn)行可靠,有效地降低了主控計(jì)算機(jī)系統(tǒng)的負(fù)擔(dān),大大降低了主控計(jì)算機(jī)因系統(tǒng)復(fù)雜、中斷源較多而出現(xiàn)意外死機(jī)的概率,從而提高系統(tǒng)的運(yùn)行可靠性。而且該系統(tǒng)本身只需一塊電路板,芯片也較少,成本低,有很大的推廣應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]吳炳勝,王桂梅. 80C51單片機(jī)原理與應(yīng)用[M] .北京:冶金工業(yè)出版社,2001.
[2]丁元杰. 單片機(jī)微機(jī)原理及應(yīng)用[M].機(jī)械工業(yè)出版社, 2002.
[3]劉樂善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].華中科技大學(xué)出版社,2000.
作者簡(jiǎn)介:王賢亮,男,本科,畢業(yè)于北京理工大學(xué)。目前在武漢華中光電技術(shù)研究所工作,從事光電跟蹤與自動(dòng)控制技術(shù)研究。