基于C8051F021的雙通道軸角測(cè)量實(shí)驗(yàn)裝置的設(shè)計(jì)
0 引 言
現(xiàn)代電子技術(shù)的進(jìn)步不斷推動(dòng)數(shù)字伺服系統(tǒng)的發(fā)展,人們對(duì)位置角度測(cè)量提出了越來(lái)越高的要求。軸角轉(zhuǎn)換裝置旋轉(zhuǎn)變壓器以其高精度、抗震動(dòng)、高可靠性著稱,在工業(yè)控制和武器控制系統(tǒng)等設(shè)備中應(yīng)用廣泛。為了促進(jìn)學(xué)員對(duì)旋轉(zhuǎn)變壓器角度轉(zhuǎn)換、測(cè)量和通過(guò)雙通道粗精組合提高測(cè)量角度精度的原理和技術(shù)的掌握,在不需要復(fù)雜的外圍設(shè)備情況下,利用C8051F021混合型芯片內(nèi)置的集成12位ADC與DAC,方便的實(shí)現(xiàn)激勵(lì)信號(hào)產(chǎn)生、正余弦信號(hào)測(cè)量、軸角計(jì)算,同時(shí),C8051F021對(duì)C語(yǔ)言編程有較好的支持能力,利用C語(yǔ)言編程,可以方便的實(shí)現(xiàn)程控?;诖?,設(shè)計(jì)本實(shí)驗(yàn)裝置。
1 系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)原理與結(jié)構(gòu)
為了讓裝置能自動(dòng)完成測(cè)量軸角任務(wù),利用C8051F021混合型單片機(jī)產(chǎn)生驅(qū)動(dòng)旋轉(zhuǎn)變壓器的激磁信號(hào)并測(cè)量旋轉(zhuǎn)變壓器輸出的正余弦信號(hào),根據(jù)信號(hào)幅值和相位計(jì)算旋轉(zhuǎn)角度,通過(guò)應(yīng)用粗精雙通道卦限判別和組合糾錯(cuò)技術(shù)提高測(cè)量角度精度,最后將組合后的結(jié)果作為真實(shí)值由LCD顯示。總體設(shè)計(jì)框架圖如圖1所示:
雙通道旋轉(zhuǎn)變壓器作為軸角測(cè)量元件,一般與轉(zhuǎn)軸同軸安裝,它相當(dāng)于一臺(tái)的1:1旋轉(zhuǎn)變壓器和一臺(tái)1:n的旋轉(zhuǎn)變壓器的結(jié)合體。當(dāng)粗級(jí)旋變轉(zhuǎn)過(guò)1圈時(shí),精級(jí)旋變則轉(zhuǎn)過(guò)n圈,精級(jí)的1圈(360°)表示真實(shí)軸角角度的1個(gè)360°/n。數(shù)據(jù)組合時(shí),由粗級(jí)數(shù)據(jù)計(jì)算真實(shí)軸角所在區(qū)間,由精級(jí)數(shù)據(jù)計(jì)算出該區(qū)間的精確值,粗精組合后得到軸角的真實(shí)值.理想情況下數(shù)據(jù)組合公式為:
D=INT[Dc/(360°/n)]×(360°/n)+(Dj/n)
式中:D為軸角的真實(shí)值;Dc為粗級(jí)數(shù)據(jù);Dj為精級(jí)數(shù)據(jù)。設(shè)D=INT[θc/(360°/n)],則有0≤i≤n,i表示真實(shí)軸角落入第i個(gè)區(qū)間。在本設(shè)計(jì)中采用1:32的轉(zhuǎn)速比。
將O°~360°劃分為32個(gè)區(qū)間,每個(gè)區(qū)間為11.25°。真實(shí)軸角D落入哪個(gè)區(qū)間,可用esc(粗級(jí)正弦輸出)、ecc(粗級(jí)余弦輸出)計(jì)算出Dc來(lái)得到。而后再用esj(精級(jí)正弦輸出)、ecj(精級(jí)余弦輸出)計(jì)算出Dc得到落入該區(qū)間的精確值(具體計(jì)算方法將在軟件設(shè)計(jì)部分給出)。由此,本設(shè)計(jì)中的數(shù)據(jù)組合公式可寫(xiě)成如下形式:
D=INT[Dc/(11.25)]×(11.25)+(Dj/32)
上述的粗精級(jí)軸角組合原理是建立在粗讀數(shù)整數(shù)部分不能有差錯(cuò)的基礎(chǔ)上的,而實(shí)際中由于傳感器誤差、工藝因素等往往導(dǎo)致得不到粗、精級(jí)的理想配合:當(dāng)Dj在兩個(gè)區(qū)間的上(下)邊界附近時(shí),會(huì)出現(xiàn)粗級(jí)讀整數(shù)與真實(shí)軸角D所在區(qū)間多“1”或者少“1”(“1”即360°/n,本設(shè)計(jì)中“1”為11.25°)的大角度的誤差,且這種誤差是原理性誤差,是粗精級(jí)組合系統(tǒng)中粗讀整數(shù)不可避免的誤差,依靠提高器件及電路精度來(lái)達(dá)到絕對(duì)避免這種誤差是不可能的(只會(huì)減少產(chǎn)生這種差錯(cuò)的機(jī)率)。但可利用軟件的方法來(lái)排除該誤差:采用一個(gè)循環(huán)和一個(gè)糾錯(cuò)判決條件來(lái)實(shí)現(xiàn)糾錯(cuò),判決條件的基準(zhǔn)值η由裝置的測(cè)量精度決定,它是裝置糾錯(cuò)能力的具體表示。本設(shè)計(jì)中取粗級(jí)單個(gè)區(qū)間長(zhǎng)度的一半作為基準(zhǔn)值,即此時(shí)η=6.125°。實(shí)現(xiàn)過(guò)程將在軟件設(shè)計(jì)中給出。
1.2 關(guān)鍵電路設(shè)計(jì)
1.2.1 激磁信號(hào)產(chǎn)生及調(diào)理電路設(shè)計(jì)
通過(guò)查正弦函數(shù)表的方法,經(jīng)過(guò)D/A轉(zhuǎn)換成模擬量而輸出正弦波。其波形的頻率可以通過(guò)改變定時(shí)器的初值,即改變查表輸出的時(shí)間來(lái)控制。采用n位D/A轉(zhuǎn)換器產(chǎn)生幅度為0~2n的m點(diǎn)正弦信號(hào),其函數(shù)表可通過(guò)如下公式計(jì)算:
D/A輸入=sin(2πj/m)×2n-1+2n-1 j="0",1,2…2m
本設(shè)計(jì)采用C8051F021的12位D/A轉(zhuǎn)換器產(chǎn)生16點(diǎn)正弦信號(hào),利用如下公式計(jì)算:
D/A輸入=sin(2πj/16)×2048+2048 j="0",1,2…32
可計(jì)算得到的16項(xiàng)16位二進(jìn)制數(shù)結(jié)果,以32個(gè)8位二進(jìn)制數(shù)的形式存放在code段(ROM中)具有32項(xiàng)的一維數(shù)組SINE_TABLE[32]中,每2項(xiàng)合成一個(gè)16位數(shù),取低12位送D/A轉(zhuǎn)換器進(jìn)行D/A轉(zhuǎn)換。
設(shè)系統(tǒng)振蕩頻率為f0,要產(chǎn)生頻率為-廠的正弦信號(hào),n位定時(shí)器的初值可按如下公式計(jì)算:
初值=2n-f0/12×1/100Hz×1/n
本設(shè)計(jì)中,C8051F021的系統(tǒng)振蕩頻率f0=22.11840O MHz,n=16,產(chǎn)生10kHz正弦信號(hào)時(shí)定時(shí)器初值應(yīng)設(shè)置為:
216-22.118400MHz/12×1/100Hz×1/16=64384
DAC0輸出的是0~2.4V的正極性正弦信號(hào),為驅(qū)動(dòng)旋轉(zhuǎn)變壓器,需要雙極性的激磁電壓,且2.4V的電壓幅度不足以使旋轉(zhuǎn)變壓器產(chǎn)生較大的感應(yīng)電壓,因此,需對(duì)DAC0輸出信號(hào)進(jìn)行調(diào)理,調(diào)理電路如圖2所示,采用集成運(yùn)放LM324N作為放大器,為便于調(diào)節(jié),達(dá)到合適的電壓增益,使用量程為100kΩ的可變電阻R3,改變R3阻值可適應(yīng)不同增益要求。電容C3為隔直電容,C1用于濾去高頻噪聲。后級(jí)放大電路采用乙類雙電源互補(bǔ)對(duì)稱功率放大電路。C4、C5為去耦電容,二極管D1、D2用于克服交越失真。
1.2.2 輸入調(diào)理電路設(shè)計(jì)及A/D轉(zhuǎn)換模塊
C8051F021芯片內(nèi)有一個(gè)完全由CIP-51通過(guò)特殊功能寄存器控制的片內(nèi)12位SAR ADC(ADC0),一個(gè)9通道輸入多路選擇開(kāi)關(guān)和可編程增益放大器。9個(gè)有一個(gè)輸入通道被連到內(nèi)部溫度傳感器,其他8個(gè)通道接外部輸入且每一對(duì)都可被配置為兩個(gè)單端輸入或一個(gè)差分輸入。
旋轉(zhuǎn)變壓器輸出正弦和余弦兩路信號(hào),因此,雙通道旋轉(zhuǎn)變壓器將輸出四路信號(hào)。本設(shè)計(jì)中采用單端輸入方式,將AIN0.0-AIN0.3四個(gè)端口作為單端輸入口。ADC0的工作電壓選擇為0~2.4V,而旋轉(zhuǎn)變壓器輸出的是雙極性電壓,因此,需對(duì)其調(diào)理,使其成為范圍為0~2.4V的正極性電壓信號(hào),以滿足ADC采樣要求。調(diào)理電路如圖3所示。運(yùn)放U2輸出一個(gè)負(fù)極性穩(wěn)定電壓,輸入信號(hào)與之疊加后變?yōu)樨?fù)極性信號(hào),經(jīng)運(yùn)放U1反相放大調(diào)理至0~2.4V。二極管D1和D2為穩(wěn)壓二極管。
2 軟件設(shè)計(jì)
軟件由主模塊、激磁信號(hào)產(chǎn)生、雙通道角度信號(hào)采集轉(zhuǎn)儲(chǔ)、雙通道角度計(jì)算與糾錯(cuò)及鍵盤(pán)顯示5個(gè)模塊組成。
2.1 激磁信號(hào)產(chǎn)生模塊
通過(guò)查正弦函數(shù)表的方法,經(jīng)過(guò)D/A轉(zhuǎn)換成模擬量而輸出正弦波。其波形的頻率可以通過(guò)改變定時(shí)器的初值,即改變查表輸出的時(shí)間來(lái)控制。
T3中斷服務(wù)響應(yīng)后,軟件先清除中斷標(biāo)志,按次序輸出正弦表數(shù)據(jù)給DAC0。由DAC0輸出模擬的激磁信號(hào)。當(dāng)數(shù)據(jù)表指針指向正弦波波峰時(shí),啟動(dòng)一次ADC0采樣。
2.2 雙通道角度計(jì)算與糾錯(cuò)模塊
在實(shí)際應(yīng)用中,快速準(zhǔn)確確定粗、精機(jī)的讀數(shù)是十分關(guān)鍵的,本設(shè)計(jì)中,通過(guò)采集由旋轉(zhuǎn)變壓器輸出的正余弦值來(lái)算出當(dāng)前的角度,計(jì)算的整體思想是先確定角度的卦限,然后根據(jù)正余弦值之商(即正切)來(lái)匹配角度值。將圓均分為八個(gè)卦限,沿逆時(shí)針?lè)较蛞来尉幪?hào)為I、Ⅱ……Ⅷ。
為得到真實(shí)軸角D,需解決兩個(gè)問(wèn)題:(1)確定D所處卦限(解決大范圍問(wèn)題);(2)確定D在各卦限中的角度θ是多少(解決小角度問(wèn)題),本設(shè)計(jì)中,θ為真實(shí)軸角D偏離0°、90°、180°、270°、360°線的角度。真實(shí)軸角D在各卦限與θ關(guān)系如下表所示:
具體計(jì)算流程如圖4所示。
依此法可分別求得DC與Dj,經(jīng)組合即可求得真實(shí)軸角值。
當(dāng)待測(cè)角度小于0°或大于360°時(shí),可將其加上或減去360°轉(zhuǎn)化為0°~360°間的角度。
糾錯(cuò)程序流程如圖5所示。
3 系統(tǒng)測(cè)試
3.1 實(shí)驗(yàn)測(cè)量
利用該裝置,測(cè)得數(shù)據(jù)如表1所示:
從表中可看出,測(cè)量值與真實(shí)值的誤差控制在0.05°以內(nèi),表明裝置具有較高精度。
3.2 糾錯(cuò)檢測(cè)
選取易出錯(cuò)的特殊角度(0°、90°、180°、270°),通過(guò)轉(zhuǎn)動(dòng)旋轉(zhuǎn)變壓器,對(duì)其進(jìn)行糾錯(cuò)檢測(cè),情況如表2所示。
從表中可看出,對(duì)各個(gè)角度而言,無(wú)論出錯(cuò)情況是“超前”還是“滯后”,結(jié)果誤差始終控制在0.05°以內(nèi),說(shuō)明該裝置具有較好的糾錯(cuò)能力。
4 結(jié)束語(yǔ)
本文設(shè)計(jì)了1:32雙通道軸角測(cè)量實(shí)驗(yàn)裝置,給出了軟硬件實(shí)現(xiàn),若應(yīng)用于其他轉(zhuǎn)速比的系統(tǒng)中,只需更改算法中相應(yīng)部分的具體數(shù)值即可,因此方法具有普遍意義。由于充分利用了C8051F021內(nèi)部集成的DAC、ADC等功能部件,硬件電路結(jié)構(gòu)簡(jiǎn)單;程序采用模塊化設(shè)計(jì),條理清晰,可移植性強(qiáng);系統(tǒng)運(yùn)行穩(wěn)定,測(cè)試結(jié)果可靠性高。文中采用的實(shí)現(xiàn)方法貼近實(shí)際,利于學(xué)習(xí)掌握測(cè)角原理,解決了實(shí)驗(yàn)教學(xué)需要,對(duì)實(shí)驗(yàn)教學(xué)和產(chǎn)品的進(jìn)一步研發(fā)有很好的參考價(jià)值。
評(píng)論