DSP的正交解碼電路與捕獲單元在電機(jī)測(cè)速中的運(yùn)用
1 引言 對(duì)于交流異步電機(jī)調(diào)速來(lái)講,電機(jī)轉(zhuǎn)子轉(zhuǎn)角和轉(zhuǎn)速的測(cè)量是一個(gè)極其關(guān)鍵的環(huán)節(jié)。美國(guó)TI公司專為電機(jī)調(diào)速設(shè)計(jì)的 數(shù)字電機(jī)微控制器TMS320F240具有其特殊功能模塊--正交解碼(QEP)電路和捕獲單元,它們可直接與光電編碼器相 連,用于轉(zhuǎn)速檢測(cè)。其中QEP電路內(nèi)部設(shè)有轉(zhuǎn)向判別和倍頻功能,因此不再需要其它輔助電路,接口電路設(shè)計(jì)變得 非常簡(jiǎn)單。而且F240具有三個(gè)功能強(qiáng)大的通用定時(shí)器,可靈活應(yīng)用于各種測(cè)速方法。 TMS320F240與測(cè)速相關(guān)的管腳主要有四個(gè):CAP1/QEP1,CAP2/QEP2,CAP3和CAP4。正交解碼(QEP)電路與捕獲單元 CAP1、CAP2共享兩個(gè)輸入引腳,因此需要正確配置捕獲控制寄存器CAPCON來(lái)使能正交解碼電路并禁止捕獲單元1、 2。這樣就把相應(yīng)的管腳分配給QEP電路使用。 F240與增量式光電編碼器連接如圖一所示,光碼盤的A與B信號(hào)相差900,-A、-B分別為反向1800的信號(hào)。Z、-Z信號(hào) 互為反向,是每轉(zhuǎn)輸出一個(gè)脈沖的零位參考信號(hào)。其中TL714是高速差分比較器。 2 QEP電路和捕獲單元的工作原理 正交解碼電路必須選擇一個(gè)計(jì)數(shù)器用于計(jì)算電路的輸入脈沖次數(shù),即將QEP電路脈沖信號(hào)作為某通用定時(shí)器的時(shí)鐘 源。F240的通用定時(shí)器2,3或2和3一起形成的一個(gè)32位定時(shí)器可供其選擇。以通用定時(shí)器2為例,首先要求T2定時(shí) 器工作在雙向加/減計(jì)數(shù)模式。在這種工作模式下,QEP電路不僅為定時(shí)器T2提供計(jì)數(shù)時(shí)鐘,而且還決定了計(jì)數(shù)方 向。 當(dāng)電機(jī)正轉(zhuǎn)時(shí),QEP電路的方向檢測(cè)邏輯測(cè)定出連接到光碼盤A相的QEP1輸入引腳上脈沖序列的相位領(lǐng)先于QEP2上的 脈沖信號(hào),然后產(chǎn)生一個(gè)方向信號(hào)(此信號(hào)可以在特殊寄存器內(nèi)讀取,以此判別轉(zhuǎn)向)作為T2定時(shí)器的計(jì)數(shù)方向,則 計(jì)數(shù)器T2CNT遞增計(jì)數(shù);反之,若電機(jī)反轉(zhuǎn),QEP2輸入是先導(dǎo)脈沖序列,則計(jì)數(shù)器T2CNT遞減計(jì)數(shù)。定時(shí)器T2在計(jì)數(shù) 器下溢或上溢時(shí)發(fā)生翻轉(zhuǎn),并重新開始計(jì)數(shù)。如果兩列正交解碼輸入脈沖的兩個(gè)邊沿均被QEP電路檢測(cè),則T2的時(shí) 鐘頻率是每個(gè)輸入序列頻率的4倍,如圖2所示。由此省去了原有的正交解碼脈沖電路4倍頻電路。 F240共有四個(gè)捕獲單元,每一個(gè)捕獲單元都有一個(gè)相應(yīng)的捕獲輸入引腳。用戶定義捕獲控制寄存器檢測(cè)捕獲引腳上 的轉(zhuǎn)換:上升沿、下降沿或二者均檢測(cè)。每個(gè)捕獲單元都可以選擇通用定時(shí)器2或3作為其時(shí)間基準(zhǔn)。每當(dāng)在捕獲輸 入引腳上檢測(cè)到一個(gè)設(shè)定的轉(zhuǎn)換時(shí), 該捕獲單元選定的通用定時(shí)器的計(jì)數(shù)器值被捕獲并鎖存在相應(yīng)的2級(jí)深度FIFO 堆棧中。如果去除了捕獲中斷屏蔽,捕獲單元同時(shí)會(huì)向CPU發(fā)送一個(gè)中斷申請(qǐng)。 在檢測(cè)電機(jī)轉(zhuǎn)角和轉(zhuǎn)速之前,必須先作以下設(shè)置: 選擇通用定時(shí)器1工作在連續(xù)遞增計(jì)數(shù)模式,允許周期定時(shí)中斷。在這種工作模式下,定時(shí)器按照定標(biāo)輸入時(shí)鐘遞 增計(jì)數(shù),直到計(jì)數(shù)器的值與周期寄存器的值相同時(shí),計(jì)數(shù)器復(fù)位為零,周期中斷標(biāo)志被設(shè)置為1,然后開始另一個(gè) 計(jì)數(shù)周期。通用定時(shí)器2工作在雙向加/減計(jì)數(shù)模式,計(jì)算QEP電路輸入脈沖個(gè)數(shù)。通用定時(shí)器3工作方式與定時(shí)器1 完全相同,但是被選為捕獲單元4的時(shí)間基準(zhǔn)。 3 轉(zhuǎn)角計(jì)算 在計(jì)算電機(jī)轉(zhuǎn)角之前,必須先解決轉(zhuǎn)角定位問題。當(dāng)在捕獲輸入引腳CAP3上檢測(cè)到零位參考信號(hào)時(shí),定時(shí)器2的計(jì) 數(shù)值T2CNT被捕獲并存儲(chǔ)在相應(yīng)的2級(jí)深度FIFO堆棧中,被捕獲的T2CNT值就可以作為計(jì)算轉(zhuǎn)角的基準(zhǔn)值。這樣,轉(zhuǎn) 子每旋轉(zhuǎn)一周,基準(zhǔn)值就被重新定義一次,從而保證了轉(zhuǎn)角的準(zhǔn)確性。 為了方便說明,我們只考慮正轉(zhuǎn)情況。用于正交解碼電路計(jì)數(shù)的定時(shí)器T2是一個(gè)16的通用定時(shí)器,因此當(dāng)定時(shí)器T2 計(jì)數(shù)到******值FFFFH時(shí),計(jì)數(shù)器T2CNT發(fā)生翻轉(zhuǎn),重新從零開始計(jì)數(shù)。必須分兩種情況來(lái)計(jì)算轉(zhuǎn)角。 3.1 定時(shí)器T2不發(fā)生翻轉(zhuǎn)計(jì)數(shù) 如圖3(a)所示,f(1)、f(2)分別是t1、t2時(shí)刻定時(shí)器T2計(jì)數(shù)值;f(0)、f1(0)為相鄰兩次零位參考信號(hào)時(shí)的定時(shí)器T2 計(jì)數(shù)值。那么在t1~t2時(shí)間內(nèi)電機(jī)轉(zhuǎn)子旋轉(zhuǎn)的機(jī)械角度應(yīng)是 (rad) (1) 式中PN—每轉(zhuǎn)脈沖數(shù), PN=2500脈沖/轉(zhuǎn); 式中Δ1=f(2)-f(1)。 若要計(jì)算t2時(shí)刻相對(duì)于以光碼盤Z信號(hào)轉(zhuǎn)角基準(zhǔn)的旋轉(zhuǎn)夾角,則必須以最后一次捕獲值f1(0)為參考值。可表示為 (rad) (2) 式中Δ2=f(2)-f1(0) 3.2 定時(shí)器T2發(fā)生翻轉(zhuǎn) 因?yàn)橛?jì)數(shù)器T2CNT每計(jì)數(shù)FFFFH次,才翻轉(zhuǎn)一次,這遠(yuǎn)遠(yuǎn)大于光碼盤每轉(zhuǎn)輸出脈沖的四倍數(shù)(10000)。因此,在相鄰 兩個(gè)零位參考信號(hào)之間,計(jì)數(shù)器T2CNT最多出現(xiàn)一次翻轉(zhuǎn)的情況。如圖3(b)所示。可知 (rad) (3) 其中Δ1=f(2)-f(1)+FFFFH 同定時(shí)器T2不翻轉(zhuǎn)情況相同: (rad) (4) 式中Δ2=f(2)-f1(0)+FFFFH 4 轉(zhuǎn)速計(jì)算 下面介紹M法、T法以及M/T法三種常用測(cè)速方法。M法測(cè)速是在相等的時(shí)間間隔Tc內(nèi)用光碼盤輸出脈沖個(gè)數(shù)來(lái)算出轉(zhuǎn) 速,從而得到轉(zhuǎn)速的測(cè)量值。T法測(cè)速是測(cè)出相鄰兩個(gè)脈沖之間的間隔時(shí)間來(lái)計(jì)算轉(zhuǎn)速。根據(jù)以上定義可知,轉(zhuǎn)速 越低,M法測(cè)速誤差越大;T法測(cè)速則正好相反,測(cè)速誤差隨轉(zhuǎn)速加大而加大。那么若想檢測(cè)低轉(zhuǎn)速,同時(shí)又要保證 高轉(zhuǎn)速的精度,就必須綜合這兩種測(cè)速方法的特點(diǎn),從而得到M/T法的測(cè)速方法:在M法的基礎(chǔ)上,以時(shí)間TC之后光 碼盤再輸出第一個(gè)脈沖為止的時(shí)間為檢測(cè)時(shí)間。 4.1 M法測(cè)速 設(shè)置通用定時(shí)器T1的時(shí)鐘輸入為20MHz。并且開通定時(shí)器周期中斷,中斷周期等于計(jì)算轉(zhuǎn)速的采樣周期TC。則定時(shí) 器每隔時(shí)間TC向CPU發(fā)出一次中斷請(qǐng)求,CPU響應(yīng)中斷后,在中斷服務(wù)子程序中按前面所述方法求出定時(shí)器T2變化 量 ,則電機(jī)轉(zhuǎn)速: (5) M法計(jì)算轉(zhuǎn)速只需要檢測(cè)一個(gè)變化量,即定時(shí)器T2變化量, 而且由于PN和TC均為常數(shù),令,將上式改為: (6) 這樣避免了復(fù)雜的定點(diǎn)除法運(yùn)算,因此計(jì)算程序十分簡(jiǎn)單,只需四、五條語(yǔ)句便能實(shí)現(xiàn)。 不過,正如前面講到的一樣:轉(zhuǎn)速越低,M法測(cè)速誤差越大。這在DSP中更加明顯。通常情況下,我們希望控制周期 越短越好,而同一轉(zhuǎn)速下,周期越短,能夠檢測(cè)到光碼盤輸出脈沖個(gè)數(shù)就越少,分辨率也越高。舉例說明見表1。 表1 M法測(cè)速性能表 每轉(zhuǎn)脈沖數(shù)PN=2500脈沖/轉(zhuǎn): 控制周期TC(ms) 轉(zhuǎn)速(轉(zhuǎn)/分) 定時(shí)器T2變化量△1 分辨率(q=1/△1) 1 3000 500 0.2% 50 8.33 12.5% 0.1 3000 50 2% 50 △1小于1無(wú)法檢測(cè) 可知當(dāng)控制周期TC=0.1ms,轉(zhuǎn)速低于60轉(zhuǎn)/分時(shí),使用M法將無(wú)法檢測(cè)到轉(zhuǎn)速。 3.2 T法測(cè)速 T法測(cè)速可以利用捕獲單元的功能來(lái)實(shí)現(xiàn)。選擇通用定時(shí)器T3時(shí)鐘頻率f=20MHz,作為計(jì)算轉(zhuǎn)速的時(shí)鐘基準(zhǔn).設(shè)定當(dāng)捕 獲引腳上發(fā)生上升或下跳沿時(shí),均將計(jì)數(shù)器T3CNT值捕獲并鎖存。在計(jì)算兩個(gè)連續(xù)捕獲發(fā)生的間隔時(shí)間T時(shí)也必須考 慮16位定時(shí)器翻轉(zhuǎn)情況。與前面所述定時(shí)器T2翻轉(zhuǎn)情況相同: 不翻轉(zhuǎn)時(shí),m=f(1)-f(0) (7) f(1)為當(dāng)前捕獲發(fā)生時(shí)16位定時(shí)器的計(jì)數(shù)值; f(2)為前一捕獲發(fā)生時(shí)16位定時(shí)器的計(jì)數(shù)值; 翻轉(zhuǎn)時(shí),只考慮翻轉(zhuǎn)一次的情況; m=f(1)-f(0)+0FFFFh (8) 那么轉(zhuǎn)子轉(zhuǎn)速: (9) 這里TC指引腳CAP3上兩個(gè)連續(xù)跳變沿間隔時(shí)間,TC=(m/20)MHz 在計(jì)數(shù)器T3CNT翻轉(zhuǎn)一次的情況下,T時(shí)間里內(nèi),定時(shí)器計(jì)數(shù)值******變化量為mmax=0FFFFH,則******檢測(cè)時(shí)間 那么可測(cè)最低轉(zhuǎn)速 在一般情況下,每分鐘3.66轉(zhuǎn)的轉(zhuǎn)速已經(jīng)相當(dāng)?shù)土耍虼瞬荒芤晃兜刈非蟮退贉y(cè)量,而選取由通用定時(shí)器T2和T3合 成的32位定時(shí)器作為QEP電路的計(jì)數(shù)器,設(shè)計(jì)復(fù)雜的32位運(yùn)算程序來(lái)計(jì)算更低轉(zhuǎn)速。所以可以認(rèn)為定時(shí)器出現(xiàn)兩次 或兩次以上翻轉(zhuǎn)的情況時(shí),轉(zhuǎn)子是靜止的,即n=0rpm。 當(dāng)電機(jī)轉(zhuǎn)速n為3000rpm時(shí),兩個(gè)脈沖間的計(jì)數(shù)值: 分辨率q%=1/160=0.625%。這已經(jīng)能滿足一般測(cè)速系統(tǒng)要求,所以對(duì)高速的DSP而言,采用T法測(cè)速即可達(dá)到要求。 但是T法測(cè)速含有定點(diǎn)除法運(yùn)算,因此計(jì)算過程比M法稍微復(fù)雜一些。 3.3 M/T法 仍然按M法設(shè)置通用定時(shí)器T1,按T法設(shè)置通用定時(shí)器T3。當(dāng)發(fā)生定時(shí)器T1周期中斷時(shí)(中斷周期TC,計(jì)算定時(shí)器T2 計(jì)數(shù)值變化量△1,讀取此時(shí)定時(shí)器T3計(jì)數(shù)值T3CNT(0),并允許捕獲單元CAP4捕獲中斷。在此之后,當(dāng)捕獲單元 CAP4捕獲到第一個(gè)跳變沿時(shí),向CPU申請(qǐng)捕獲中斷。在捕獲中斷子程序中,根據(jù)捕獲的計(jì)數(shù)值T3CNT(1),得檢測(cè)時(shí) 間 (10) 則電機(jī)轉(zhuǎn)子轉(zhuǎn)速: (11) M/T法綜合了M法和T法的測(cè)速特點(diǎn),能夠在很寬范圍內(nèi)按要求檢測(cè)轉(zhuǎn)速。但是它涉及兩個(gè)通用定時(shí)器、捕獲單元、 QEP電路等多個(gè)特殊寄存器的設(shè)計(jì),所以在定義特殊寄存器時(shí)一定要小心,以免相互沖突。 5 結(jié)束語(yǔ) 本文主要介紹了數(shù)字電機(jī)控制專用控制芯片TMS320F240中專用模塊正交解碼電路和捕獲單元的功能特點(diǎn),給出了由 它們實(shí)現(xiàn)M法、T法以及M/T法測(cè)速的三種方案,并做了對(duì)比。無(wú)論采用哪一種方法,在設(shè)計(jì)過程中都應(yīng)該注意硬件 與軟件的配合,有效地利用QEP電路、捕獲單元、定時(shí)器三者間的關(guān)系實(shí)現(xiàn)了測(cè)速功能。 |