本發(fā)明專利技術(shù)公開了一種采用現(xiàn)場(chǎng)可編輯邏輯門陣列實(shí)現(xiàn)電子齒輪輸出的方法,本方法首先在FPGA中設(shè)置第一寄存器,根據(jù)公式將非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)增量加入第一寄存器,并使其與FPGA的晶振次數(shù)相關(guān),從而得到非脈沖形式編碼器的脈沖個(gè)數(shù);然后在FPGA中設(shè)置第二寄存器,根據(jù)公式將非脈沖形式編碼器的脈沖個(gè)數(shù)或脈沖形式編碼器的脈沖個(gè)數(shù)加入第二寄存器,并且與電子齒輪比值的分子、分母相關(guān),由FPGA按電子齒輪比值輸出脈沖,實(shí)現(xiàn)電子齒輪輸出。本方法適用于脈沖或非脈沖形式編碼器實(shí)現(xiàn)電子齒輪輸出功能,通過現(xiàn)場(chǎng)可編輯邏輯門陣列能夠快速反應(yīng)、處理并輸出上位機(jī)所需脈沖信號(hào),提高了硬件資源利用的性能。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及一種采用現(xiàn)場(chǎng)可編輯邏輯門陣列實(shí)現(xiàn)電子齒輪輸出的方法。
技術(shù)介紹
在伺服系統(tǒng)中一般采用光電編碼器的輸出信號(hào)作為位置反饋信號(hào),當(dāng)電機(jī)旋轉(zhuǎn)時(shí),根據(jù)光電編碼器產(chǎn)生的脈沖數(shù)來(lái)對(duì)電機(jī)進(jìn)行精確的定位。在實(shí)際應(yīng)用中,上位機(jī)并不需要伺服系統(tǒng)那樣精密的位置控制。例如2500線光電編碼器電機(jī),電機(jī)旋轉(zhuǎn)一圈,光電編碼器反饋為2500個(gè)正交脈沖,但上位機(jī)只需要認(rèn)定一圈250個(gè)正交脈沖。此時(shí),伺服驅(qū)動(dòng)器對(duì)應(yīng)的電子齒輪輸出就需要設(shè)置成1:10,將2500個(gè)正交脈沖改為250個(gè)正交脈沖輸出給上位機(jī)。因此,電子齒輪功能實(shí)際是一種任意比例分頻功能。通常伺服驅(qū)動(dòng)器電子齒輪輸出功能大多預(yù)先計(jì)算好電子齒輪分頻數(shù)據(jù),并將數(shù)據(jù)放入RAM等存儲(chǔ)器中。在正常使用過程中,通過光電編碼器的反饋脈沖對(duì)RAM存儲(chǔ)器進(jìn)行不斷地查表,將表格中對(duì)應(yīng)的數(shù)據(jù)以正交脈沖形式輸出,用以實(shí)現(xiàn)電子齒輪功能。此方法在硬件方面需要有一個(gè)快速讀取、至少有14位地址的存儲(chǔ)器,并將14個(gè)地址的對(duì)應(yīng)引腳、數(shù)據(jù)的對(duì)應(yīng)引腳與現(xiàn)場(chǎng)可編輯邏輯門陣列(簡(jiǎn)稱FPGA)連接;在軟件方面,需要在上電初始化內(nèi)將電子齒輪比以數(shù)據(jù)的形式寫入存儲(chǔ)器中。因此可以看出該方法對(duì)硬件性價(jià)比不是很好,軟件初始化耗時(shí);而且對(duì)于非脈沖形式編碼器(如旋轉(zhuǎn)變壓器、絕對(duì)式編碼器)的反饋信號(hào)就顯得無(wú)能為力,必須先將反饋形式轉(zhuǎn)換成脈沖形式才行。對(duì)于非脈沖形式編碼器,其在數(shù)字電路中,反饋信號(hào)以二進(jìn)制數(shù)據(jù)出現(xiàn),通過在單位時(shí)間內(nèi)讀取開頭和結(jié)尾的數(shù)據(jù),并對(duì)其求出增量,就可以知道單位時(shí)間內(nèi)電機(jī)旋轉(zhuǎn)了多少位置及旋轉(zhuǎn)方向。再對(duì)增量乘以電子齒輪比,加入上一次單位時(shí)間剩下的小數(shù)數(shù)據(jù),合成新的整數(shù)加小數(shù)數(shù)據(jù),將整數(shù)提取出來(lái),在本次單位時(shí)間內(nèi)平均發(fā)送出整數(shù)個(gè)脈沖,以這種形式完成電子齒輪輸出功能。該方法在硬件方面省去了存儲(chǔ)器和對(duì)應(yīng)的FPGA引腳,在軟件方面省去了上電初始化的操作。該方法對(duì)于脈沖輸入形式也能實(shí)現(xiàn),不過沒有該方法直接、實(shí)時(shí)。對(duì)FPGA的宏單元資源要求極大,需要做出多個(gè)乘法,除法計(jì)算及存儲(chǔ)能夠描述該小數(shù)數(shù)據(jù)的資源,在FPGA宏單元資源利用方面性價(jià)比不是很好。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)所要解決的技術(shù)問題是提供一種采用現(xiàn)場(chǎng)可編輯邏輯門陣列實(shí)現(xiàn)電子齒輪輸出的方法,本方法可適用于脈沖形式編碼器和非脈沖形式編碼器實(shí)現(xiàn)電子齒輪輸出功能,通過現(xiàn)場(chǎng)可編輯邏輯門陣列能夠快速反應(yīng)、處理及輸出上位機(jī)所需脈沖信號(hào),提高了硬件資源利用的性能。為解決上述技術(shù)問題,本專利技術(shù)采用現(xiàn)場(chǎng)可編輯邏輯門陣列實(shí)現(xiàn)電子齒輪輸出的方法包括如下步驟:步驟一、設(shè)定公式 (1)式(1)中:B1為非脈沖形式編碼器在單位時(shí)間內(nèi)輸出的二進(jìn)制數(shù)據(jù)增量、A1為單位時(shí)間所對(duì)應(yīng)的現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)、C1為現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)、D1為常數(shù),其值為A1B1/C1;步驟二、非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)傳輸至現(xiàn)場(chǎng)可編輯邏輯門陣列,現(xiàn)場(chǎng)可編輯邏輯門陣列中設(shè)置第一寄存器,初始值為0,現(xiàn)場(chǎng)可編輯邏輯門陣列在每次晶振觸發(fā)操作時(shí),第一寄存器內(nèi)加入二進(jìn)制數(shù)據(jù)增量B1;步驟三、比較第一寄存器內(nèi)的二進(jìn)制數(shù)據(jù)增量B1和現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)A1,如果D1≤B1≤- D1,現(xiàn)場(chǎng)可編輯邏輯門陣列輸出一次脈沖,并且根據(jù)≥D1或≤-D1選擇輸出脈沖為正轉(zhuǎn)脈沖或反轉(zhuǎn)脈沖,同時(shí)第一寄存器加上或減去D1,使第一寄存器始終保持在(-D1 ,D1)范圍內(nèi);步驟四、單位時(shí)間內(nèi)現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)C1與非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)增量B1相等;步驟五、設(shè)定公式 (2)式(2)中:B2為電子齒輪比值的分子、A2為伺服驅(qū)動(dòng)器接收到的脈沖個(gè)數(shù)、C2為現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的電子齒輪脈沖個(gè)數(shù)、D2為電子齒輪比值的分母;其中,伺服驅(qū)動(dòng)器接收到的脈沖個(gè)數(shù)A2是步驟四中的現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)C1或直接由脈沖形式編碼器輸出的脈沖個(gè)數(shù);步驟六、在現(xiàn)場(chǎng)可編輯邏輯門陣列中設(shè)置第二寄存器,初始值為0,伺服驅(qū)動(dòng)器在接收到A2的每個(gè)脈沖時(shí),對(duì)第二寄存器進(jìn)行加上或減去電子齒輪比值分子B2的操作;步驟七、將第二寄存器與電子齒輪比值的分母D2進(jìn)行比較,如果D2≤B2≤- D2,現(xiàn)場(chǎng)可編輯邏輯門陣列輸出一次脈沖,并且根據(jù)≥D2或≤-D2選擇輸出正轉(zhuǎn)脈沖或反轉(zhuǎn)脈沖,同時(shí)第二寄存器加上或減去D2,使第二寄存器始終保持在(-D2 ,D2)范圍內(nèi);步驟八、根據(jù)式(2),現(xiàn)場(chǎng)可編輯邏輯門陣列輸出電子齒輪脈沖C2,并且對(duì)此脈沖C2進(jìn)行轉(zhuǎn)換成上位機(jī)能夠識(shí)別的脈沖形式,進(jìn)行輸出。進(jìn)一步,在A1次晶振結(jié)束后,第一寄存器內(nèi)的數(shù)據(jù)清零,根據(jù)式(1)的意義,A1次B1的疊加減去C1次D1的疊加等于零,此時(shí)修改二進(jìn)制數(shù)據(jù)增量B1,從而改變單位時(shí)間內(nèi)現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)C1。進(jìn)一步,在A2次脈沖后,第二寄存器內(nèi)的數(shù)據(jù)清零,根據(jù)式(2)的意義,A2次B2的疊加減去C2次D2的疊加等于零,此時(shí)變更電子齒輪比值,避免第二寄存器數(shù)據(jù)紊亂。 由于本專利技術(shù)采用現(xiàn)場(chǎng)可編輯邏輯門陣列實(shí)現(xiàn)電子齒輪輸出的方法采用了上述技術(shù)方案,即本方法首先在現(xiàn)場(chǎng)可編輯邏輯門陣列中設(shè)置第一寄存器,根據(jù)公式將非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)增量加入第一寄存器,并使其與現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)相關(guān),從而得到非脈沖形式編碼器的脈沖個(gè)數(shù);然后在現(xiàn)場(chǎng)可編輯邏輯門陣列中設(shè)置第二寄存器,根據(jù)公式將非脈沖形式編碼器的脈沖個(gè)數(shù)或脈沖形式編碼器的脈沖個(gè)數(shù)加入第二寄存器,并且與已設(shè)置的電子齒輪比值的分子、分母相關(guān),從而由現(xiàn)場(chǎng)可編輯邏輯門陣列按電子齒輪比值輸出脈沖,實(shí)現(xiàn)電子齒輪輸出。本方法可適用于脈沖形式編碼器和非脈沖形式編碼器實(shí)現(xiàn)電子齒輪輸出功能,通過現(xiàn)場(chǎng)可編輯邏輯門陣列能夠快速反應(yīng)、處理及輸出上位機(jī)所需脈沖信號(hào),提高了硬件資源利用的性能。附圖說(shuō)明下面結(jié)合附圖和實(shí)施方式對(duì)本專利技術(shù)作進(jìn)一步的詳細(xì)說(shuō)明:圖1為本方法的流程框圖。具體實(shí)施方式實(shí)施例如圖1所示,本專利技術(shù)采用現(xiàn)場(chǎng)可編輯邏輯門陣列實(shí)現(xiàn)電子齒輪輸出的方法包括如下步驟:步驟一、設(shè)定公式 (1)式(1)中:B1為非脈沖形式編碼器在單位時(shí)間內(nèi)輸出的二進(jìn)制數(shù)據(jù)增量、A1為單位時(shí)間所對(duì)應(yīng)的現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)、C1為現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)、D1為常數(shù),其值為A1B1/C1;其中二進(jìn)制數(shù)據(jù)增量也可以是負(fù)數(shù),脈沖個(gè)數(shù)為正轉(zhuǎn)脈沖和反轉(zhuǎn)脈沖之和;步驟二、非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)傳輸至現(xiàn)場(chǎng)可編輯邏輯門陣列,現(xiàn)場(chǎng)可編輯邏輯門陣列中設(shè)置第一寄存器,初始值為0,現(xiàn)場(chǎng)可編輯邏輯門陣列在每次晶振觸發(fā)操作時(shí),第一寄存器內(nèi)加入二進(jìn)制數(shù)據(jù)增量B1;現(xiàn)場(chǎng)可編輯邏輯門陣列是一個(gè)并行運(yùn)算系統(tǒng),每一次晶振都能使現(xiàn)場(chǎng)可編輯邏輯門陣列操作一次;步驟三、比較第一寄存器內(nèi)的二進(jìn)制數(shù)據(jù)增量B1和現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)A1,如果D1≤B1≤- D1,現(xiàn)場(chǎng)可編輯邏輯門陣列輸出一次脈沖,并且根據(jù)≥D1或≤-D1選擇輸出脈沖為正轉(zhuǎn)脈沖或反轉(zhuǎn)脈沖,同時(shí)第一寄存器加上或減去D1,使第一寄存器始終保持在(-D1 ,D1)范圍內(nèi);本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種采用現(xiàn)場(chǎng)可編輯邏輯門陣列實(shí)現(xiàn)電子齒輪輸出的方法,其特征在于本方法包括如下步驟:步驟一、設(shè)定公式(1)式(1)中:B1為非脈沖形式編碼器在單位時(shí)間內(nèi)輸出的二進(jìn)制數(shù)據(jù)增量、A1為單位時(shí)間所對(duì)應(yīng)的現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)、C1為現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)、D1為常數(shù),其值為A1B1/C1;步驟二、非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)傳輸至現(xiàn)場(chǎng)可編輯邏輯門陣列,現(xiàn)場(chǎng)可編輯邏輯門陣列中設(shè)置第一寄存器,初始值為0,現(xiàn)場(chǎng)可編輯邏輯門陣列在每次晶振觸發(fā)操作時(shí),第一寄存器內(nèi)加入二進(jìn)制數(shù)據(jù)增量B1;步驟三、比較第一寄存器內(nèi)的二進(jìn)制數(shù)據(jù)增量B1和現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)A1,如果D1≤B1≤??D1,現(xiàn)場(chǎng)可編輯邏輯門陣列輸出一次脈沖,并且根據(jù)≥D1或≤?D1選擇輸出脈沖為正轉(zhuǎn)脈沖或反轉(zhuǎn)脈沖,同時(shí)第一寄存器加上或減去D1,使第一寄存器始終保持在(?D1?,D1)范圍內(nèi);步驟四、單位時(shí)間內(nèi)現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)C1與非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)增量B1相等;步驟五、設(shè)定公式(2)式(2)中:B2為電子齒輪比值的分子、A2為伺服驅(qū)動(dòng)器接收到的脈沖個(gè)數(shù)、C2為現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的電子齒輪脈沖個(gè)數(shù)、D2為電子齒輪比值的分母;其中,伺服驅(qū)動(dòng)器接收到的脈沖個(gè)數(shù)A2是步驟四中的現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)C1或直接由脈沖形式編碼器輸出的脈沖個(gè)數(shù);步驟六、在現(xiàn)場(chǎng)可編輯邏輯門陣列中設(shè)置第二寄存器,初始值為0,伺服驅(qū)動(dòng)器在接收到A2的每個(gè)脈沖時(shí),對(duì)第二寄存器進(jìn)行加上或減去電子齒輪比值分子B2的操作;步驟七、將第二寄存器與電子齒輪比值的分母D2進(jìn)行比較,如果D2≤B2≤??D2,現(xiàn)場(chǎng)可編輯邏輯門陣列輸出一次脈沖,并且根據(jù)≥D2或≤?D2選擇輸出正轉(zhuǎn)脈沖或反轉(zhuǎn)脈沖,同時(shí)第二寄存器加上或減去D2,使第二寄存器始終保持在(?D2?,D2)范圍內(nèi);步驟八、根據(jù)式(2),現(xiàn)場(chǎng)可編輯邏輯門陣列輸出電子齒輪脈沖C2,并且對(duì)此脈沖C2進(jìn)行轉(zhuǎn)換成上位機(jī)能夠識(shí)別的脈沖形式,進(jìn)行輸出。...
【技術(shù)特征摘要】
1.一種采用現(xiàn)場(chǎng)可編輯邏輯門陣列實(shí)現(xiàn)電子齒輪輸出的方法,其特征在于本方法包括如下步驟:步驟一、設(shè)定公式 (1)式(1)中:B1為非脈沖形式編碼器在單位時(shí)間內(nèi)輸出的二進(jìn)制數(shù)據(jù)增量、A1為單位時(shí)間所對(duì)應(yīng)的現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)、C1為現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)、D1為常數(shù),其值為A1B1/C1;步驟二、非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)傳輸至現(xiàn)場(chǎng)可編輯邏輯門陣列,現(xiàn)場(chǎng)可編輯邏輯門陣列中設(shè)置第一寄存器,初始值為0,現(xiàn)場(chǎng)可編輯邏輯門陣列在每次晶振觸發(fā)操作時(shí),第一寄存器內(nèi)加入二進(jìn)制數(shù)據(jù)增量B1;步驟三、比較第一寄存器內(nèi)的二進(jìn)制數(shù)據(jù)增量B1和現(xiàn)場(chǎng)可編輯邏輯門陣列的晶振次數(shù)A1,如果D1≤B1≤- D1,現(xiàn)場(chǎng)可編輯邏輯門陣列輸出一次脈沖,并且根據(jù)≥D1或≤-D1選擇輸出脈沖為正轉(zhuǎn)脈沖或反轉(zhuǎn)脈沖,同時(shí)第一寄存器加上或減去D1,使第一寄存器始終保持在(-D1 ,D1)范圍內(nèi);步驟四、單位時(shí)間內(nèi)現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的脈沖個(gè)數(shù)C1與非脈沖形式編碼器輸出的二進(jìn)制數(shù)據(jù)增量B1相等;步驟五、設(shè)定公式 (2)式(2)中:B2為電子齒輪比值的分子、A2為伺服驅(qū)動(dòng)器接收到的脈沖個(gè)數(shù)、C2為現(xiàn)場(chǎng)可編輯邏輯門陣列輸出的...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:于濤,方杰,項(xiàng)恩畢,郁敏杰,張金琳,
申請(qǐng)(專利權(quán))人:上海開通數(shù)控有限公司,
類型:發(fā)明
國(guó)別省市:上海;31
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。