專利名稱:基于cpld的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于交流伺服系統(tǒng)技術(shù)領(lǐng)域,具體涉及一種基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng)和方法。
背景技術(shù):
在伺服系統(tǒng)的位置控制中,為構(gòu)成全閉環(huán)需要將電機(jī)位置信號(hào)反饋至上位機(jī),以便顯示伺服電機(jī)的運(yùn)行狀態(tài),監(jiān)控其運(yùn)行,但是在通常情況下,碼盤信號(hào)的頻率較高,上位機(jī)無法直接接收,必須對(duì)碼盤的正交脈沖進(jìn)行分頻處理后再反饋給上位機(jī),而且要保證在電機(jī)頻繁正反轉(zhuǎn)切換時(shí)不丟失脈沖并保證方向正確。由于在某些場(chǎng)合中,碼盤輸出脈沖頻率與上位機(jī)所接收的脈沖頻率不是整數(shù)倍關(guān)系,所以簡(jiǎn)單的整數(shù)分頻不能滿足實(shí)際應(yīng)用, 必須設(shè)計(jì)小數(shù)分頻。在常規(guī)的小數(shù)分頻的設(shè)計(jì)中,主要采用的是雙模前置小數(shù)分頻,其主要思想是假設(shè)分頻比為X(M彡X彡M+1),先選擇M分頻輸出N1個(gè)脈沖,接著選擇M+1分頻輸出N2個(gè)脈沖,然后再選擇M分頻輸出N1個(gè)脈沖,如此循環(huán)。這種小數(shù)方法存在比較嚴(yán)重的缺點(diǎn)由于硬件電路的延時(shí),在M分頻和M+1分頻的切換點(diǎn)上,可能產(chǎn)生毛刺;當(dāng)分頻比為X彡2時(shí),M 分頻后脈沖的占空比將無法保證為50%,M+1分頻后脈沖的占空比將無法保證為75% ;為實(shí)現(xiàn)任意小數(shù)的分頻,消耗的CPLD資源相對(duì)較多。中國專利CN101789781A “基于FPGA的任意數(shù)值分頻器實(shí)現(xiàn)方法”,該發(fā)明實(shí)現(xiàn)了利用FPGA和外圍矩陣電路實(shí)現(xiàn)任意數(shù)值的分頻,其中包括小數(shù)分頻,也克服了在分頻切換點(diǎn)上可能產(chǎn)生毛刺的問題。但是該發(fā)明是針對(duì)單路脈沖分頻設(shè)計(jì)的,而且在實(shí)現(xiàn)過程中消耗了大量的邏輯資源225個(gè)LE。另外,該發(fā)明羅列了各種類型的分頻,包括偶數(shù)分頻、奇數(shù)分頻、小數(shù)分頻,看似功能齊全,但是其分頻的本質(zhì)都是一樣的,這種做法不僅增加的操作的復(fù)雜性,也增加了資源的消耗。
發(fā)明內(nèi)容
本發(fā)明是為了解決現(xiàn)有的小數(shù)分頻系統(tǒng)消耗硬件的資源、操作復(fù)雜并且可能產(chǎn)生毛刺的問題,提出的一種基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng)及方法。本發(fā)明的基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng),它包括CPLD、DSP和 SPI總線,CPLD包括SPI總線模塊和正交脈沖分頻模塊,DSP包括SPI串行輸出口和QEP正交編碼輸入口,碼盤脈沖通過QEP正交編碼輸入口輸入DSP中,DSP的SPI串行輸出口的數(shù)據(jù)信號(hào)輸出端與CPLD的SPI總線模塊的數(shù)據(jù)信號(hào)輸入端相連接,SPI總線模塊的分頻信息輸出端與正交脈沖分頻模塊的分頻信息輸入端相連接,正交脈沖分頻模塊輸出分頻脈沖。本發(fā)明的基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng)的方法,其具體方法為步驟一、DSP對(duì)光電碼盤脈沖進(jìn)行計(jì)數(shù),根據(jù)該計(jì)數(shù)值和設(shè)定的分頻比計(jì)算分頻后脈沖的相關(guān)信息,包括脈沖方向、脈沖數(shù)目和相應(yīng)周期;步驟二、通過SPI數(shù)據(jù)總線將步驟一中 DSP計(jì)算的數(shù)據(jù)傳輸給CPLD ;步驟三、CPLD接收步驟二傳輸?shù)臄?shù)據(jù)信息,產(chǎn)生與該數(shù)據(jù)信息符合的正交脈沖,完成任意小數(shù)的分頻過程。本發(fā)明具有如下優(yōu)點(diǎn)1)在實(shí)現(xiàn)過程中,不存在分頻比的切換問題,所以不存在在分頻切換點(diǎn)產(chǎn)生毛刺的問題;2)DSP計(jì)算分頻脈沖的脈沖數(shù)和相應(yīng)周期值,可以確保在分頻比比較大并且電機(jī)頻繁正反轉(zhuǎn)切換的情況下不丟失脈沖;3)為實(shí)現(xiàn)碼盤脈沖任意小數(shù)分頻功能,消耗CPLD :EPM3256的宏單元IM個(gè),比中國專利CN101789781A “基于FPGA的任意數(shù)值分頻器實(shí)現(xiàn)方法”以及雙模前置小數(shù)分頻消耗的資源少,中國專利CN101789781A消耗225個(gè)LE,雙模前置小數(shù)分頻消耗142個(gè)宏單位。
圖1為本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖;圖2為分頻信息計(jì)算流程示意圖;圖3為正交脈沖特性示意圖。
具體實(shí)施例方式具體實(shí)施方式
一、結(jié)合圖1說明本實(shí)施方式,基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng),它包括CPLDl、DSP2和SPI總線3,CPLDl包括SPI總線模塊1-1和正交脈沖分頻模塊1_2,DSP2包括SPI串行輸出口 2-1和QEP正交編碼輸入口 2_2,碼盤脈沖通過 QEP正交編碼輸入口 2-2輸入DSP2中,DSP2的SPI串行輸出口 2_1的數(shù)據(jù)信號(hào)輸出端與 CPLDl的SPI總線模塊1-1的數(shù)據(jù)信號(hào)輸入端相連接,SPI總線模塊1_1的分頻信息輸出端與正交脈沖分頻模塊1-2的分頻信息輸入端相連接,脈沖通過位置脈沖計(jì)數(shù)模塊1-3的脈沖輸入端輸入到CPLDl中,正交脈沖分頻模塊1-2輸出分頻脈沖。本實(shí)施方式中,為了實(shí)現(xiàn)DSP2和CPLDl之間高速、可靠地通信,SPI總線3采用四線雙T模式,DSP2為主機(jī),CPLDl為從機(jī),通信頻率選定為1. 5M,CPLDl的SPI通信在時(shí)鐘信號(hào)的上升沿接收數(shù)據(jù),在時(shí)鐘信號(hào)的下降沿發(fā)送數(shù)據(jù)。
具體實(shí)施方式
二、結(jié)合圖1說明本實(shí)施方式,本實(shí)施方式與具體實(shí)施方式
一的區(qū)別在于,它還包括位置脈沖計(jì)數(shù)模塊1-3,脈沖通過位置脈沖計(jì)數(shù)模塊1-3的計(jì)數(shù)值輸出端與SPI總線模塊1-1的計(jì)數(shù)值輸入端相連接具體實(shí)施方式
三、結(jié)合圖1說明本實(shí)施方式,本實(shí)施方式與具體實(shí)施方式
一的區(qū)別在于,所述CPLDl采用EPM3256。
具體實(shí)施方式
四、結(jié)合圖1說明本實(shí)施方式,本實(shí)施方式與具體實(shí)施方式
一的區(qū)別在于,所述DSP2采用TMS320F2808。
具體實(shí)施方式
五、結(jié)合圖2說明本實(shí)施方式,本實(shí)施方式與具體實(shí)施方式
一的區(qū)別在于,基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng)的方法,其具體方法為步驟1、DSP對(duì)光電碼盤脈沖進(jìn)行計(jì)數(shù),根據(jù)該計(jì)數(shù)值和設(shè)定的分頻比計(jì)算分頻后脈沖的相關(guān)信息,包括脈沖方向、脈沖數(shù)目和相應(yīng)周期;步驟2、通過SPI數(shù)據(jù)總線將步驟一中DSP計(jì)算的數(shù)據(jù)傳輸給CPLD產(chǎn)生正交脈沖;步驟3、CPLD接收步驟二傳輸?shù)臄?shù)據(jù)信息,產(chǎn)生與該數(shù)據(jù)信息符合的正交脈沖。本實(shí)施方式中,首先,在伺服驅(qū)動(dòng)器在上電時(shí),讀取存儲(chǔ)在E2PROM里的分頻比值;而伺服電機(jī)啟動(dòng)后,伺服系統(tǒng)主控單元DSP在每個(gè)位置環(huán)周期內(nèi)通過QEP正交編碼模塊對(duì)碼盤脈沖進(jìn)行4倍頻計(jì)數(shù)及方向鑒定,依據(jù)該4倍頻計(jì)數(shù)值和分頻比值按照?qǐng)D2所示的流程圖計(jì)算該位置環(huán)周期內(nèi)CPLD應(yīng)該輸出的脈沖數(shù)目和相應(yīng)周期,該過程可用如下的公式具體表示
FPprecnt = Qepcnt / 4*M + FPcnt FPpostcnt = FPprecnt / N\
FPcnt = FPprecnt % N
FPhaljprd = FPtime * CPLDsysclk / (4 * FPpostcnt)其中,G^pcnt為位置環(huán)周期內(nèi)伺服系統(tǒng)主控單元DSP的QEP正交模塊計(jì)數(shù)值;M/ N(M^ N)為分頻比;FPtime、CPLDsysclk為CPLD輸出脈沖的總時(shí)間、CPLD系統(tǒng)時(shí)鐘頻率; FPpostcnt, FPhalfprd為分頻后脈沖數(shù)目及其四分之一周期值;FPcnt為分頻后脈沖滯留數(shù)。接著,伺服系統(tǒng)主控單元DSP通過SPI總線將獲得的分頻后脈沖信息(脈沖方向、 脈沖數(shù)目及相應(yīng)周期)發(fā)送給CPLD ;而CPLD在接收伺服系統(tǒng)主控單元DSP傳輸來的分頻信息后,即按照正交脈沖的特性在0. 95ms內(nèi)產(chǎn)生方向和數(shù)目固定的正交脈沖。
具體實(shí)施方式
六、本實(shí)施方式與具體實(shí)施方式
四的區(qū)別在于,所述步驟IDSP控制的具體過程為步驟1. 1、系統(tǒng)上電初始化,DSP讀取存儲(chǔ)在E2PROM中的預(yù)設(shè)分頻比值;步驟1. 2、系統(tǒng)正常運(yùn)行時(shí),DSP在每個(gè)位置環(huán)周期內(nèi),S卩Ims內(nèi),利用QEP正交編碼模塊計(jì)算光電碼盤的脈沖信息脈沖數(shù)目和脈沖方向;步驟1.3、DSP根據(jù)步驟一 2獲取的脈沖信息和系統(tǒng)設(shè)定的分頻比計(jì)算出在該位置環(huán)周期內(nèi)的應(yīng)該分頻輸出的脈沖數(shù)目和相應(yīng)周期,并保留脈沖滯留數(shù)目以便參與下一個(gè)位置環(huán)周期的分頻后脈沖信息的計(jì)算。本實(shí)施方式中,為了確保CPLD在一個(gè)位置環(huán)周期內(nèi),即Ims內(nèi),將DSP計(jì)算得到的分頻后脈沖數(shù)輸出完畢,即保證在該周期內(nèi)CPLD的輸出脈沖的總時(shí)間T小于位置環(huán)周期, 本發(fā)明選擇CPLD輸出脈沖的總時(shí)間為0. 95ms來計(jì)算分頻后脈沖數(shù)和相應(yīng)的周期,其中, CPLD的輸出脈沖的總時(shí)間T為分頻后脈沖周期與脈沖數(shù)目的乘積。
具體實(shí)施方式
七、結(jié)合圖3說明本實(shí)施方式,本實(shí)施方式與具體實(shí)施方式
四的區(qū)別在于,所述步驟3中CPLD產(chǎn)生與步驟二傳輸?shù)臄?shù)據(jù)信息符合的正交脈沖的具體過程為步驟3. 1、定義一個(gè)脈沖周期計(jì)數(shù)器和脈沖數(shù)目計(jì)數(shù)器,并做相應(yīng)的初始化;步驟3. 2、CPLD系統(tǒng)時(shí)鐘到來時(shí),脈沖周期計(jì)數(shù)器累加1,并在脈沖周期計(jì)數(shù)器累加到1/4、2/4、3/4、4/4脈沖周期值時(shí),輸出正交脈沖的狀態(tài)按照脈沖方向改變一次脈沖方向?yàn)檎龝r(shí),輸出正交脈沖的狀態(tài)依次為10、11、01和00 ;脈沖方向?yàn)樨?fù)時(shí),輸出正交脈沖的狀態(tài)依次為11、10、00和01 ;步驟3. 3、當(dāng)輸出正交脈沖的狀態(tài)改變一個(gè)周期時(shí),脈沖數(shù)目計(jì)數(shù)器累加1,當(dāng)脈沖數(shù)目計(jì)數(shù)器累加到脈沖數(shù)目時(shí),停止正交脈沖輸出。本實(shí)施方式中,結(jié)合圖3分析正交脈沖特性,當(dāng)正交脈沖方向?yàn)檎碅相超前B 相時(shí),對(duì)應(yīng)每四分之一周期,A相和B相的狀態(tài)依次為10、11、01和00,周期如此循環(huán);反之, 則依次為11、10、00和01,周期如此循環(huán)。在CPLD接收到來自伺服系統(tǒng)主控單元DSP的分頻信息后脈沖方向、脈沖數(shù)目及相應(yīng)周期,在0. 95ms內(nèi)產(chǎn)生方向和數(shù)目固定的正交脈沖。
本發(fā)明為了確保CPLD在位置環(huán)周期內(nèi)將固定數(shù)目的脈沖數(shù)輸出完畢,選擇了 CPLD輸出脈沖的總時(shí)間T為0. 95ms, CPLD輸出脈沖的總時(shí)間T為分頻后脈沖周期與脈沖數(shù)目的乘積,從而導(dǎo)致了分頻后脈沖的最高極限頻率為20KHz。對(duì)采用精度不是特別高的增量式編碼器的伺服系統(tǒng)而言,20KHz的最高極限頻率已經(jīng)能滿足大部分參合的要求。在現(xiàn)有的伺服驅(qū)動(dòng)器產(chǎn)品中,帶碼盤脈沖任意小數(shù)分頻功能的伺服驅(qū)動(dòng)器就不多;而在帶有該功能的伺服驅(qū)動(dòng)器產(chǎn)品中,分頻后脈沖的最高極限頻率也不到15KHz。如三菱公司的J3系列驅(qū)動(dòng)器分頻后脈沖的最高極限頻率僅為5KHz。
權(quán)利要求
1.基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng),其特征在于它包括CPLD(l)、 DSP(2)和SPI總線(3),CPLD(I)包括SPI總線模塊(1-1)和正交脈沖分頻模塊(1-2), DSP(2)包括SPI串行輸出口(2-1)和QEP正交編碼輸入口 ,碼盤脈沖通過QEP正交編碼輸入口(2-2)輸入DSP(2)中,DSP(2)的SPI串行輸出口的數(shù)據(jù)信號(hào)輸出端與 CPLD(I)的SPI總線模塊(1-1)的數(shù)據(jù)信號(hào)輸入端相連接,SPI總線模塊(1_1)的分頻信息輸出端與正交脈沖分頻模塊(1-2)的分頻信息輸入端相連接,正交脈沖分頻模塊(1-2)輸出分頻脈沖。
2.根據(jù)權(quán)利要求1所述的基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng),其特征在于所述 CPLD(I)采用 EPM3256。
3.根據(jù)權(quán)利要求1所述的基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng),其特征在于所述 DSPQ)采用 TMS320F2808。
4.根據(jù)權(quán)利要求1所述的基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng)的方法,其特征在于具體方法為步驟1、DSP對(duì)光電碼盤脈沖進(jìn)行計(jì)數(shù),根據(jù)該計(jì)數(shù)值和設(shè)定的分頻比計(jì)算分頻后脈沖的相關(guān)信息,包括脈沖方向、脈沖數(shù)目和相應(yīng)周期;步驟2、通過SPI數(shù)據(jù)總線將步驟一中DSP計(jì)算的數(shù)據(jù)傳輸給CPLD ;步驟3、CPLD接收步驟二傳輸?shù)臄?shù)據(jù)信息,產(chǎn)生與該數(shù)據(jù)信息符合的正交脈沖,完成任意小數(shù)的分頻過程。
5.根據(jù)權(quán)利要求4所述的基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻方法,其特征在于所述步驟1中DSP控制的具體過程為步驟1. 1、系統(tǒng)上電初始化,DSP讀取存儲(chǔ)在E2PROM中的預(yù)設(shè)分頻比值;步驟1. 2、系統(tǒng)正常運(yùn)行時(shí),DSP在每個(gè)位置環(huán)周期內(nèi),S卩Ims內(nèi),利用QEP正交編碼模塊計(jì)算光電碼盤的脈沖信息脈沖數(shù)目和脈沖方向;步驟1. 3、DSP根據(jù)步驟一 2獲取的脈沖信息和系統(tǒng)設(shè)定的分頻比計(jì)算出在該位置環(huán)周期內(nèi)的應(yīng)該分頻輸出的脈沖數(shù)目和相應(yīng)周期,并保留脈沖滯留數(shù)目以便參與下一個(gè)位置環(huán)周期的分頻后脈沖信息的計(jì)算。
6.根據(jù)權(quán)利要求4所述的基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻方法,其特征在于所述步驟3中CPLD產(chǎn)生與步驟二傳輸?shù)臄?shù)據(jù)信息符合的正交脈沖的具體過程為步驟3. 1、定義一個(gè)脈沖周期計(jì)數(shù)器和脈沖數(shù)目計(jì)數(shù)器,并做相應(yīng)的初始化;步驟3. 2、CPLD系統(tǒng)時(shí)鐘到來時(shí),脈沖周期計(jì)數(shù)器累加1,并在脈沖周期計(jì)數(shù)器累加到 1/4、2/4、3/4、4/4脈沖周期值時(shí),輸出正交脈沖的狀態(tài)按照脈沖方向改變一次脈沖方向?yàn)檎龝r(shí),輸出正交脈沖的狀態(tài)依次為10、11、01和00 ;脈沖方向?yàn)樨?fù)時(shí),輸出正交脈沖的狀態(tài)依次為11、10、00和01 ;步驟3. 3、當(dāng)輸出正交脈沖的狀態(tài)改變一個(gè)周期時(shí),脈沖數(shù)目計(jì)數(shù)器累加1,當(dāng)脈沖數(shù)目計(jì)數(shù)器累加到脈沖數(shù)目時(shí),停止正交脈沖輸出。
全文摘要
基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng)及方法,屬于交流伺服系統(tǒng)技術(shù)領(lǐng)域,具體涉及一種基于CPLD的光電碼盤正交脈沖任意小數(shù)分頻系統(tǒng)和方法。為了解決現(xiàn)有的分頻系統(tǒng)消耗硬件資源、操作復(fù)雜并且可能產(chǎn)生毛刺的問題。本發(fā)明的任意小數(shù)分頻系統(tǒng)包括CPLD、DSP和SPI總線,CPLD包括SPI總線模塊和正交脈沖分頻模塊,DSP包括SPI串行輸出口和QEP正交編碼輸入口。本發(fā)明的任意小數(shù)分頻方法,具體為DSP對(duì)光電碼盤脈沖進(jìn)行計(jì)數(shù),根據(jù)該計(jì)數(shù)值和設(shè)定的分頻比計(jì)算分頻后脈沖的相關(guān)信息;通過SPI數(shù)據(jù)總線將數(shù)據(jù)傳輸給CPLD;CPLD根據(jù)接收的數(shù)據(jù)信息產(chǎn)生正交脈沖,完成分頻過程。用于交流伺服系統(tǒng)中。
文檔編號(hào)H03K23/68GK102412828SQ20111044470
公開日2012年4月11日 申請(qǐng)日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者劉可述, 徐殿國, 楊明, 牛里 申請(qǐng)人:哈爾濱工業(yè)大學(xué)