基于cpld的光電碼盤(pán)正交脈沖任意小數(shù)分頻方法
【技術(shù)領(lǐng)域】
[0002] 本發(fā)明設(shè)及一種光電碼盤(pán)正交脈沖任意小數(shù)分頻方法,具體設(shè)及一種基于CPLD的 光電碼盤(pán)正交脈沖任意小數(shù)分頻方法,計(jì)算機(jī)軟件領(lǐng)域。
【背景技術(shù)】
[0003] 在伺服系統(tǒng)位置控制中,為構(gòu)成全閉環(huán)需將電機(jī)位置信號(hào)反饋至上位機(jī),W便顯 示伺服電機(jī)的運(yùn)行狀態(tài)和監(jiān)控其運(yùn)行;但在通常情況下,碼盤(pán)信號(hào)的頻率較高,上位機(jī)無(wú)法 直接接收,必須對(duì)碼盤(pán)的正交脈沖進(jìn)行分頻處理后再反饋給上位機(jī),而且要保證在電機(jī)頻 繁正反轉(zhuǎn)切換時(shí)不丟失脈沖并保證方向正確。由于在某些場(chǎng)合中,碼盤(pán)輸出脈沖頻率與上 位機(jī)所接收的脈沖頻率不是整數(shù)倍關(guān)系,所W簡(jiǎn)單的整數(shù)分頻不能滿足實(shí)際應(yīng)用,必須設(shè) 計(jì)小數(shù)分頻。
[0004] 在常規(guī)的小數(shù)分頻的設(shè)計(jì)中,主要采用的是雙模前置小數(shù)分頻。其主要思想是:假 設(shè)分頻比為攝Sf <玉古M蝴,先選擇M分頻輸出巧個(gè)脈沖,接著選擇曲神分頻輸出艱個(gè) 脈沖,然后再選擇M分頻輸化為個(gè)脈沖,如此循環(huán)。運(yùn)種小數(shù)方法存在比較嚴(yán)重的缺點(diǎn):由 于硬件電路的延時(shí),在M分頻巧(MW)分頻的切換點(diǎn)上,可能產(chǎn)生毛刺;當(dāng)分頻比xas財(cái), 其分頻后脈沖的占空比將無(wú)法保證為50%和75%;為實(shí)現(xiàn)任意小數(shù)分頻,消耗的CPLD資源相 對(duì)較多。
[000引中國(guó)專利CN101789781A"基于FPGA的任意數(shù)值分頻器實(shí)現(xiàn)方法",該發(fā)明實(shí)現(xiàn)了利 用FPGA和外圍矩陣電路實(shí)現(xiàn)了任意數(shù)值分頻,其中包括小數(shù)分頻,同時(shí)克服了在分頻切換 點(diǎn)上可能產(chǎn)生毛刺的問(wèn)題。但是該發(fā)明是針對(duì)單路脈沖分頻進(jìn)行設(shè)計(jì)的,而且在實(shí)現(xiàn)過(guò)程 中消耗了大量的邏輯資源:225個(gè)LE。另外,該發(fā)明羅列了各種類(lèi)型的分頻,包括偶數(shù)分頻、 奇數(shù)分頻、小數(shù)分頻,貌似功能齊全,但是其分頻本質(zhì)是一樣的,其做法不僅增加了操作的 復(fù)雜性,也增加了資源的消耗。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明為解決現(xiàn)有基于FPGA的任意數(shù)值分頻器實(shí)現(xiàn)方法在實(shí)現(xiàn)過(guò)程中消耗了大 量的邏輯資源,且增加了操作復(fù)雜性和資源消耗的問(wèn)題,進(jìn)而提出基于CPLD的光電碼盤(pán)正 交脈沖任意小數(shù)分頻方法。
[0007] 本發(fā)明為解決上述問(wèn)題采取的技術(shù)方案是:本發(fā)明所述方法的具體步驟如下: 步驟一、伺服驅(qū)動(dòng)器上電時(shí),讀取存儲(chǔ)在E2PR0M里的分頻比值; 步驟二、伺服電機(jī)啟動(dòng)后,伺服系統(tǒng)主控單元DSP在每個(gè)位置環(huán)周期內(nèi)通過(guò)犯P模塊對(duì) 碼盤(pán)脈沖進(jìn)行4倍頻計(jì)數(shù)及方向鑒定; 步驟=、根據(jù)步驟二中4倍頻計(jì)數(shù)值和分頻比值計(jì)算該位置環(huán)周期內(nèi)CPLD應(yīng)該輸出的 脈沖數(shù)目和相應(yīng)周期,該過(guò)程的公式如下:
其中,挺呼OW為位置環(huán)周期內(nèi)伺服系統(tǒng)主控單元〇5口的犯口模塊計(jì)數(shù)值; M/測(cè)[M<巧為分頻比; 駐W、為CPLD輸出脈沖的總時(shí)間、CPLD系統(tǒng)時(shí)鐘頻率; 心^濟(jì)nf為分頻后脈沖數(shù)目及其四分之一周期值. 商址為分頻后脈沖滯留數(shù); 步驟四、伺服系統(tǒng)主控單元DSP通過(guò)SPI總線將獲得的分頻后脈沖信息發(fā)送給CPLD; 步驟五、C化D在接收伺服系統(tǒng)主控單元DSP傳輸來(lái)的分頻信息后,即按照正交脈沖的特 性在0.95ms內(nèi)產(chǎn)生方向和數(shù)目固定的正交脈沖。
[0008] 本發(fā)明的有益效果是:1、本發(fā)明在實(shí)現(xiàn)過(guò)程中不存在分頻比的切換問(wèn)題,所W不 存在在分頻比切換點(diǎn)產(chǎn)生毛刺的問(wèn)題;2、本發(fā)明中DSP按照流程圖計(jì)算分頻脈沖的脈沖數(shù) 和相應(yīng)周期值,從而確保了在分頻比比較大且電機(jī)頻繁正反轉(zhuǎn)切換的情況下不丟失脈沖。 3、本發(fā)明為實(shí)現(xiàn)碼盤(pán)脈沖任意小數(shù)分頻功能,消耗EPM3256器件的宏單元124個(gè),比中國(guó)專 利CN101789781A"基于FPGA的任意數(shù)值分頻器實(shí)現(xiàn)方法及雙模前置小數(shù)分頻消耗的資 源少。
【附圖說(shuō)明】
[0009] 圖1是本發(fā)明的分頻信息計(jì)算流程圖。
【具體實(shí)施方式】
[0010] 【具體實(shí)施方式】一:結(jié)合圖1說(shuō)明本實(shí)施方式,本實(shí)施方式所述基于CPLD的光電碼盤(pán) 正交脈沖任意小數(shù)分頻方法是通過(guò)如下步驟實(shí)現(xiàn)的: 步驟一、伺服驅(qū)動(dòng)器上電時(shí),讀取存儲(chǔ)在E2PR0M里的分頻比值; 步驟二、伺服電機(jī)啟動(dòng)后,伺服系統(tǒng)主控單元DSP在每個(gè)位置環(huán)周期內(nèi)通過(guò)犯P模塊對(duì) 碼盤(pán)脈沖進(jìn)行4倍頻計(jì)數(shù)及方向鑒定; 步驟=、根據(jù)步驟二中4倍頻計(jì)數(shù)值和分頻比值計(jì)算該位置環(huán)周期內(nèi)CPLD應(yīng)該輸出的 脈沖數(shù)目和相應(yīng)周期,該過(guò)程的公式如下:
其中,為位置環(huán)周期內(nèi)伺服系統(tǒng)主控單元DSP的犯P模塊計(jì)數(shù)值; if/i叫;M<巧為分頻比; JfJW、〇^^卻心&為〔?〇)輸出脈沖的總時(shí)間八?〇)系統(tǒng)時(shí)鐘頻率; ip|5?ssfc皿、:j?y&姆^為分頻后脈沖數(shù)目及其四分之一周期值. 為分頻后脈沖滯留數(shù); 步驟四、伺服系統(tǒng)主控單元DSP通過(guò)SPI總線將獲得的分頻后脈沖信息發(fā)送給CPLD; 步驟五、C化D在接收伺服系統(tǒng)主控單元DSP傳輸來(lái)的分頻信息后,即按照正交脈沖的特 性在0.95ms內(nèi)產(chǎn)生方向和數(shù)目固定的正交脈沖。
[0011] 本實(shí)施方式中為了確保CPLD在位置環(huán)周期內(nèi)將固定數(shù)目的脈沖數(shù)輸出完畢,選擇 了 CPLD輸出脈沖的總時(shí)間(該時(shí)間為分頻后脈沖周期與脈沖數(shù)目的乘積)為0.95ms,從而導(dǎo) 致了分頻后脈沖的最高極限頻率為20KHZ。對(duì)采用精度不是特別高的增量式編碼器的伺服 系統(tǒng)而言,20KHZ的最高極限頻率已經(jīng)能滿足大部分參合的要求。在現(xiàn)有的伺服驅(qū)動(dòng)器產(chǎn)品 中,帶碼盤(pán)脈沖任意小數(shù)分頻功能的伺服驅(qū)動(dòng)器就不多;而在帶有該功能的伺服驅(qū)動(dòng)器產(chǎn) 品中,分頻后脈沖的最高極限頻率也不到15KHZ。如=菱公司的J3系列驅(qū)動(dòng)器分頻后脈沖的 最高極限頻率僅為SIfflz。
[0012]
【具體實(shí)施方式】二:結(jié)合圖1說(shuō)明本實(shí)施方式,本實(shí)施方式所述基于CPLD的光電碼盤(pán) 正交脈沖任意小數(shù)分頻方法的步驟一中伺服系統(tǒng)主控單元DSP的控制流程如下: 步驟S( -)、在伺服系統(tǒng)上電初始化時(shí),伺服系統(tǒng)主控單元DSP(1)讀取存儲(chǔ)在E2PR0M 中的預(yù)設(shè)分頻比值; 步驟=(二)、計(jì)算碼盤(pán)反饋脈沖數(shù)及其方向; 步驟= ( = )、計(jì)算累計(jì)反饋脈沖數(shù); 步驟=(四)、依據(jù)分頻比計(jì)算分頻后的脈沖數(shù)及周期; 步驟S(五)、通過(guò)SPI總線(3)將步驟S(四)中的計(jì)算結(jié)果傳輸給CPLD,并計(jì)算滯留脈 沖數(shù)。
[0013] 其它組成及連接關(guān)系與【具體實(shí)施方式】一相同。
【具體實(shí)施方式】 [0014] 結(jié)合圖1說(shuō)明本實(shí)施方式,本實(shí)施方式所述基于CPLD的光電碼盤(pán) 正交脈沖任意小數(shù)分頻方法的步驟S(二)中伺服系統(tǒng)主控單元DSP在每個(gè)位置的環(huán)周期為 1ms。其它組成及連接關(guān)系與二相同。
[0015]
【具體實(shí)施方式】四:結(jié)合圖1說(shuō)明本實(shí)施方式,本實(shí)施方式所述基于CPLD的光電碼盤(pán) 正交脈沖任意小數(shù)分頻方法的步驟=中CPLD實(shí)現(xiàn)產(chǎn)生方向和數(shù)目固定的正交脈沖的具體 步驟如下: 步驟五(一)、定義一個(gè)脈沖周期計(jì)數(shù)器和脈沖數(shù)目計(jì)數(shù)器; 步驟五(二)、CPLD系統(tǒng)時(shí)鐘到來(lái)時(shí),脈沖周期計(jì)數(shù)器累加1;并在脈沖周期計(jì)數(shù)器累加 至Ij 1/4、2/4、3/4、4/4脈沖周期值,輸出正交脈沖的狀態(tài)按照脈沖方向改變一次:脈沖方向?yàn)?正時(shí),輸出正交脈沖的狀態(tài)依次為10、11、01和00;脈沖方向?yàn)樨?fù)時(shí),輸出正交脈沖的狀態(tài)依 次為 11、10、00 和 01; 步驟五( = )、當(dāng)輸出正交脈沖的狀態(tài)改變一周期,脈沖數(shù)目計(jì)數(shù)器累加1;直到脈沖數(shù) 目計(jì)數(shù)器累加到脈沖數(shù)目時(shí),停止正交脈沖輸出。
[0016] 其它組成及連接關(guān)系與【具體實(shí)施方式】一相同。
【主權(quán)項(xiàng)】
1. 基于CPLD的光電碼盤(pán)正交脈沖任意小數(shù)分頻方法,其特征在于:所述基于CPLD的光 電碼盤(pán)正交脈沖任意小數(shù)分頻方法是通過(guò)如下步驟實(shí)現(xiàn)的: 步驟一、伺服驅(qū)動(dòng)器上電時(shí),讀取存儲(chǔ)在E2PR0M里的分頻比值; 步驟二、伺服電機(jī)啟動(dòng)后,伺服系統(tǒng)主控單元DSP在每個(gè)位置環(huán)周期內(nèi)通過(guò)QEP模塊對(duì) 碼盤(pán)脈沖進(jìn)行4倍頻計(jì)數(shù)及方向鑒定; 步驟Ξ、根據(jù)步驟二中4倍頻計(jì)數(shù)值和分頻比值計(jì)算該位置環(huán)周期內(nèi)CPLD應(yīng)該輸出的 脈沖數(shù)目和相應(yīng)周期,該過(guò)程的公式如下:其中,綜呼口*?為位置環(huán)周期內(nèi)伺服系統(tǒng)主控單元DSP的犯P模塊計(jì)數(shù)值; 巧為分頻比; JS?姑皿、Gi&O蝴sieiS:為CPLD輸出脈沖的總時(shí)間、CPLD系統(tǒng)時(shí)鐘頻率; 心If、為分頻后脈沖數(shù)目及其四分之一周期值. 為分頻后脈沖滯留數(shù); 步驟四、伺服系統(tǒng)主控單元DSP通過(guò)SPI總線將獲得的分頻后脈沖信息發(fā)送給CPLD; 步驟五、C化D在接收伺服系統(tǒng)主控單元DSP傳輸來(lái)的分頻信息后,即按照正交脈沖的特 性在0.95ms內(nèi)產(chǎn)生方向和數(shù)目固定的正交脈沖。2. 根據(jù)權(quán)利要求1所述基于CPLD的光電碼盤(pán)正交脈沖任意小數(shù)分頻方法,其特征在于: 步驟Ξ中計(jì)算該位置環(huán)周期內(nèi)CPLD應(yīng)該輸出的脈沖數(shù)目和相應(yīng)周期的步驟如下: 步驟Ξ( -)、在伺服系統(tǒng)上電初始化時(shí),伺服系統(tǒng)主控單元DSP(l)讀取存儲(chǔ)在E2PR0M 中的預(yù)設(shè)分頻比值; 步驟Ξ(二)、計(jì)算碼盤(pán)反饋脈沖數(shù)及其方向; 步驟Ξ(Ξ)、計(jì)算累計(jì)反饋脈沖數(shù); 步驟Ξ(四)、依據(jù)分頻比計(jì)算分頻后的脈沖數(shù)及周期; 步驟Ξ(五)、通過(guò)SPI總線(3)將步驟Ξ(四)中的計(jì)算結(jié)果傳輸給CPLD,并計(jì)算滯留脈 沖數(shù)。3. 根據(jù)權(quán)利要求2所述基于CPLD的光電碼盤(pán)正交脈沖任意小數(shù)分頻方法,其特征在于: 步驟Ξ(二)中伺服系統(tǒng)主控單元DSP在每個(gè)位置的環(huán)周期為1ms。4. 根據(jù)權(quán)利要求1所述基于CPLD的光電碼盤(pán)正交脈沖任意小數(shù)分頻方法,其特征在于: 步驟五中CPLD產(chǎn)生方向和數(shù)目固定的正交脈沖是通過(guò)如下步驟實(shí)現(xiàn)的: 步驟五(一)、定義一個(gè)脈沖周期計(jì)數(shù)器和脈沖數(shù)目計(jì)數(shù)器; 步驟五(二)、CPLD系統(tǒng)時(shí)鐘到來(lái)時(shí),脈沖周期計(jì)數(shù)器累加1;并在脈沖周期計(jì)數(shù)器累加 到1/4、2/4、3/4、4/4脈沖周期值,輸出正交脈沖的狀態(tài)按照脈沖方向改變一次:脈沖方向?yàn)?正時(shí),輸出正交脈沖的狀態(tài)依次為10、11、01和00;脈沖方向?yàn)樨?fù)時(shí),輸出正交脈沖的狀態(tài)依 次為 11、10、00 和 01; 步驟五(Ξ)、當(dāng)輸出正交脈沖的狀態(tài)改變一周期,脈沖數(shù)目計(jì)數(shù)器累加1;直到脈沖數(shù) 目計(jì)數(shù)器累加到脈沖數(shù)目時(shí),停止正交脈沖輸出。
【專利摘要】一種基于CPLD的光電碼盤(pán)正交脈沖任意小數(shù)分頻方法,它涉及一種光電碼盤(pán)正交脈沖任意小數(shù)分頻方法,具體涉及一種基于CPLD的光電碼盤(pán)正交脈沖任意小數(shù)分頻方法。本發(fā)明為了解決現(xiàn)有基于FPGA的任意數(shù)值分頻器實(shí)現(xiàn)方法在實(shí)現(xiàn)過(guò)程中消耗了大量的邏輯資源,且增加了操作復(fù)雜性和資源消耗的問(wèn)題。本發(fā)明的步驟為:讀取存儲(chǔ)在E2PROM里的分頻比值;伺服系統(tǒng)主控單元DSP在每個(gè)位置環(huán)周期內(nèi)通過(guò)QEP模塊對(duì)碼盤(pán)脈沖進(jìn)行4倍頻計(jì)數(shù)及方向鑒定;CPLD在接收伺服系統(tǒng)主控單元DSP傳輸來(lái)的分頻信息后。本發(fā)明屬于計(jì)算機(jī)軟件領(lǐng)域。
【IPC分類(lèi)】H03K23/68
【公開(kāi)號(hào)】CN105553466
【申請(qǐng)?zhí)枴緾N201510884407
【發(fā)明人】張明玉
【申請(qǐng)人】天津凌浩科技有限公司
【公開(kāi)日】2016年5月4日
【申請(qǐng)日】2015年12月3日