本發(fā)明涉及伺服控制技術(shù)領(lǐng)域,特別涉及一種編碼器控制器及其配置方法。
背景技術(shù):
在伺服控制中,編碼器是電機(jī)轉(zhuǎn)子的位置和轉(zhuǎn)速的檢測裝置,對于伺服系統(tǒng)的閉環(huán)控制至關(guān)重要。常用的編碼器可以分為增量型編碼器和絕對值型編碼器。
現(xiàn)有技術(shù)中,增量型編碼器通常采用相同的串行通訊協(xié)議與編碼器控制器進(jìn)行通訊。絕對值型編碼器是對應(yīng)一圈,每個基準(zhǔn)的角度記錄一個唯一與該角度對應(yīng)的二進(jìn)制數(shù)值,編碼器控制器通過串行總線讀取絕對值型編碼器當(dāng)前記錄到的角度數(shù)值和多圈數(shù)值。然而本申請的發(fā)明人發(fā)現(xiàn):現(xiàn)有技術(shù)中,每家絕對值型編碼器所支持的串行總線通訊協(xié)議并不相同,由此導(dǎo)致伺服控制系統(tǒng)需要通過相應(yīng)的編碼器控制器和不同的絕對值型編碼器進(jìn)行通訊,才能將絕對值型編碼器中的數(shù)值從中讀取出來。
舉例而言,目前市面上常見的絕對值型編碼器所支持的串行總線通訊協(xié)議有:海德漢編碼器的Endat、尼康編碼器的RAS102、SICK編碼器的HIPERFACE等。對于通用性伺服系統(tǒng)來說,就需要支持類似上述多廠家的編碼器。為了實現(xiàn)這一目的,現(xiàn)有技術(shù)中,需要將各廠家的編碼器控制器均加入到現(xiàn)場可編程邏輯門陣列FPGA設(shè)計中。如圖1所示為傳統(tǒng)的支持多協(xié)議編碼器的伺服驅(qū)動器的編碼器控制器的結(jié)構(gòu)示意圖。其中,編碼器控制器10包括:內(nèi)部總線接口模塊100、復(fù)用控制模塊101,以及連接于內(nèi)部總線接口模塊100和復(fù)用控制模塊101之間的多種類型的編碼器控制器,例如,增量型編碼器控制器102、第一絕對值型編碼器控制器103、第二絕對值型編碼器控制器104等等。由于第一、第二或者第三絕對值型編碼器控制器中的每個僅支持一種類型的編碼器通訊協(xié)議,所以在不明確客戶實際選定的編碼器的具體類型時,通常所有標(biāo)稱支持的類型的編碼器控制器都需要加入至FPGA中,但同時工作的只會是其中的一個某種類型的編碼器控制器。因此,現(xiàn)有的編碼器控制器在實現(xiàn)伺服控制的通用性時,易造成FPGA資源太大,硬件成本上升的問題。而另一種支持多種通信協(xié)議類型的編碼器控制器的設(shè)計方法是,預(yù)先設(shè)計對應(yīng)于不同類型的編碼器的FPGA配置文件,這種方案在實際應(yīng)用時,需要通過軟件將客戶實際選定的編碼器對應(yīng)的FPGA配置文件下載至FPGA中,軟件操作繁瑣,同時還需要較大的非易失存儲區(qū)空間用于存放備選的FPGA配置文件,造成軟硬件成本都會上升。并且,現(xiàn)有中,由于FPGA中包括有多種類型的編碼器控制器,在實際應(yīng)用時,還會給設(shè)計維護(hù)造成困難。
技術(shù)實現(xiàn)要素:
本發(fā)明部分實施方式的目的在于提供一種編碼器控制器及其配置方法,使得編碼器控制器在支持多種類型的編碼器時,能夠節(jié)省FPGA資源,操作方便,有利于降低軟硬件成本。
為解決上述技術(shù)問題,本發(fā)明的實施方式提供了一種編碼器控制器,用于與外部編碼器進(jìn)行串行通訊,所述編碼器控制器包括:狀態(tài)機(jī)、時鐘模塊、數(shù)據(jù)解析模塊和寄存器組;所述寄存器組用于為所述時鐘模塊配置對應(yīng)于不同編碼器通信協(xié)議類型的工作頻率、為所述數(shù)據(jù)解析模塊配置對應(yīng)于不同編碼器通信協(xié)議類型的數(shù)據(jù)收發(fā)模式、為所述狀態(tài)機(jī)配置對應(yīng)于不同編碼器通信協(xié)議類型的工作狀態(tài);其中,所述時鐘模塊用于根據(jù)所述寄存器組的配置工作于相應(yīng)的編碼器通信協(xié)議類型的工作頻率;所述數(shù)據(jù)解析模塊用于根據(jù)所述寄存器組的配置工作于相應(yīng)的編碼器通信協(xié)議類型的數(shù)據(jù)收發(fā)模式;所述狀態(tài)機(jī)用于根據(jù)所述寄存器組的配置控制所述時鐘模塊和所述數(shù)據(jù)解析模塊工作于相應(yīng)的編碼器通信協(xié)議類型的工作狀態(tài)。
本發(fā)明的實施方式還提供了一種編碼器控制器的配置方法,應(yīng)用于如前所述的編碼器控制器,該方法包括:在圖形用戶界面中接收寄存器組的配置參數(shù);將所述接收到的配置參數(shù)寫入所述寄存器組。
本發(fā)明實施方式相對于現(xiàn)有技術(shù)而言,通過寄存器組將狀態(tài)機(jī)、時鐘模塊和數(shù)據(jù)解析模塊的工作參數(shù)配置為對應(yīng)于不同的編碼器通信協(xié)議類型所要求的工作參數(shù),從而使得通過僅相當(dāng)于一個編碼器通信協(xié)議類型所要求的FPGA資源的規(guī)模即可滿足多種不同的編碼器通信協(xié)議類型的編碼器的通信要求,大幅降低對于FPGA資源的要求,同時,本實施方式僅需通過對寄存器組進(jìn)行參數(shù)配置,即可實現(xiàn)對應(yīng)于不同的編碼器通信協(xié)議類型的編碼器的通信,操作方便,不需要額外的放置FPGA配置文件的非易失性存儲空間,有利于降低軟硬件成本。
另外,所述寄存器組包括:編碼器種類配置寄存器,用于配置不同編碼器通信協(xié)議類型的循環(huán)冗余校驗CRC多項式;所述數(shù)據(jù)解析模塊用于根據(jù)所述編碼器種類配置寄存器當(dāng)前配置的CRC多項式進(jìn)行數(shù)據(jù)傳輸校驗。由于不同編碼器通信協(xié)議類型所要求的循環(huán)冗余校驗CRC多項式不同,所以本實施方式通過編碼器種類配置寄存器確定編碼器控制器需要使用的CRC多項式,由此提高了編碼器控制器的通用性。
另外,所述寄存器組還包括:發(fā)送數(shù)據(jù)配置寄存器,用于配置發(fā)送至支持不同編碼器通信協(xié)議類型的編碼器的命令;所述數(shù)據(jù)解析模塊根據(jù)所述發(fā)送數(shù)據(jù)配置寄存器當(dāng)前配置的命令向編碼器發(fā)送命令。由于不同編碼器通信協(xié)議類型所要求發(fā)送至編碼器的命令不同,所以本實施方式通過發(fā)送數(shù)據(jù)配置寄存器確定編碼器控制器需要發(fā)送的命令,由此提高了編碼器控制器的通用性。
另外,所述寄存器組還包括:控制寄存器,用于配置不同編碼器通信協(xié)議類型的通訊模式;其中,所述通訊模式包括軟件觸發(fā)通訊或者自動周期通訊;所述狀態(tài)機(jī)用于根據(jù)所述控制寄存器當(dāng)前配置的通訊模式控制所述時鐘模塊和所述數(shù)據(jù)解析模塊工作于所述軟件觸發(fā)通訊或者自動周期通訊狀態(tài)。由于不同編碼器通信協(xié)議類型所要求的通訊模式不同,例如一些類型的通信協(xié)議要求自動周期通訊,而一些類型的通訊協(xié)議要求軟件觸發(fā)通訊。所以本實施方式通過控制寄存器確定編碼器控制器需要使用的通訊模式,由此提高了編碼器控制器的通用性。
另外,所述寄存器組還包括:數(shù)據(jù)位數(shù)配置寄存器,用于配置不同編碼器通信協(xié)議類型的數(shù)據(jù)位數(shù);所述狀態(tài)機(jī)用于根據(jù)所述數(shù)據(jù)位數(shù)配置寄存器當(dāng)前配置的數(shù)據(jù)位數(shù)控制所述數(shù)據(jù)解析模塊進(jìn)行數(shù)據(jù)的收發(fā)以及校驗。由于不同編碼器通信協(xié)議類型所要求的數(shù)據(jù)位數(shù)不同,所以本實施方式通過數(shù)據(jù)位數(shù)配置寄存器確定編碼器控制器的數(shù)據(jù)位數(shù),由此提高了編碼器控制器的通用性。
另外,所述寄存器組還包括:波特率配置寄存器,用于配置不同編碼器通信協(xié)議類型的波特率;所述時鐘模塊用于根據(jù)所述波特率配置寄存器當(dāng)前的配置產(chǎn)生對應(yīng)頻率的時鐘信號。由于不同編碼器通信協(xié)議類型所要求的傳輸速率不同,所以本實施方式通過波特率配置寄存器確定編碼器控制器的波特率,由此提高了編碼器控制器的通用性。
另外,所述編碼器控制器由現(xiàn)場可編程邏輯門陣列FPGA實現(xiàn)。FPGA處理速度快,可以提高伺服控制響應(yīng)的速度。
附圖說明
圖1是根據(jù)現(xiàn)有技術(shù)編碼器控制器的結(jié)構(gòu)示意圖;
圖2是根據(jù)本發(fā)明第一實施方式編碼器控制器的結(jié)構(gòu)示意圖;
圖3是根據(jù)本發(fā)明第二實施方式編碼器控制器的結(jié)構(gòu)示意圖;
圖4是根據(jù)本發(fā)明第二實施方式編碼器控制器寄存器組的結(jié)構(gòu)示意圖;
圖5是根據(jù)本發(fā)明第二實施方式編碼器控制器狀態(tài)機(jī)的工作流程圖;
圖6是根據(jù)本發(fā)明第三實施方式編碼器控制器的配置方法的流程圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的各實施方式進(jìn)行詳細(xì)的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實施方式中,為了使讀者更好地理解本申請而提出了許多技術(shù)細(xì)節(jié)。但是,即使沒有這些技術(shù)細(xì)節(jié)和基于以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請所要求保護(hù)的技術(shù)方案。
本發(fā)明的第一實施方式涉及一種編碼器控制器,其用于與外部編碼器進(jìn)行串行通訊。
如圖2所示,該編碼器控制器10包括:狀態(tài)機(jī)102、時鐘模塊104、數(shù)據(jù)解析模塊106和寄存器組108。其中,狀態(tài)機(jī)102用于控制時鐘模塊102和數(shù)據(jù)解析模塊104的工作狀態(tài)。
寄存器組108用于為時鐘模塊104配置對應(yīng)于不同編碼器通信協(xié)議類型的工作頻率、為數(shù)據(jù)解析模塊106配置對應(yīng)于不同編碼器通信協(xié)議類型的數(shù)據(jù)收發(fā)模式、為狀態(tài)機(jī)102配置對應(yīng)于不同編碼器通信協(xié)議類型的工作狀態(tài)。時鐘模塊104用于根據(jù)寄存器組的配置工作于相應(yīng)的編碼器通信協(xié)議類型的工作頻率,數(shù)據(jù)解析模塊106用于根據(jù)寄存器組的配置工作于相應(yīng)的編碼器20通信協(xié)議類型的數(shù)據(jù)收發(fā)模式,狀態(tài)機(jī)106用于根據(jù)寄存器組的配置控制時鐘模塊和數(shù)據(jù)解析模塊工作于相應(yīng)的編碼器20通信協(xié)議類型的工作狀態(tài)。
本實施方式中,狀態(tài)機(jī)102、時鐘模塊104、數(shù)據(jù)解析模塊106和寄存器組108等均可以由現(xiàn)場可編程邏輯門陣列FPGA實現(xiàn)。
在實際應(yīng)用中,由于本實施方式的編碼器控制器包括有寄存器組,且通過寄存器組可以對編碼器控制器中的狀態(tài)機(jī)、時鐘模塊以及數(shù)據(jù)解析模塊的的工作參數(shù)進(jìn)行配置,所以,當(dāng)編碼器控制器需要與A種通信協(xié)議類型的編碼器進(jìn)行串行通信時,只要對寄存器組中相應(yīng)的工作參數(shù)進(jìn)行配置即可。需要說明的是,本實施方式的寄存器組可以配置的參數(shù)類型越多,比如,可以對循環(huán)冗余校驗CRC多項式或者波特率等進(jìn)行配置,伺服系統(tǒng)能夠支持的編碼器的通信協(xié)議類型就越多。因此,對于各種可配置工作參數(shù)的編碼器控制器中的模塊,均可以設(shè)置對應(yīng)的寄存器以配置其工作參數(shù)。
本實施方式與現(xiàn)有技術(shù)相比,在實現(xiàn)編碼器控制器時,僅需要保留一套可配置的工作模塊,并通過寄存器組對各工作模塊進(jìn)行參數(shù)配置,使得經(jīng)過配置的編碼器控制器能夠與對應(yīng)的編碼器進(jìn)行串行通訊,因此,本實施方式的編碼器控制器在實現(xiàn)通用的同時,大幅減小FPGA硬件規(guī)模,同時,也不需要額外備份對應(yīng)于不同編碼器通訊協(xié)議類型的FPGA文件,操作簡單,有利于降低軟硬件成本。
本發(fā)明的第二實施方式涉及一種編碼器控制器。第二實施方式在第一實施方式的基礎(chǔ)上做出改進(jìn),主要改進(jìn)之處在于:在第二實施方式中,進(jìn)一步提供了可采用寄存器組進(jìn)行配置的編碼器控制器的工作參數(shù),從而,豐富了本實施方式的實現(xiàn)方式。
如圖3、4所示,本實施方式的編碼器控制器10包括:狀態(tài)機(jī)102、時鐘模塊104、數(shù)據(jù)解析模塊106和寄存器組108。本實施方式的編碼器控制器10中的寄存器組經(jīng)配置后,與對應(yīng)通信協(xié)議類型的編碼器20進(jìn)行通信。
本實施方式的寄存器組108包括:編碼器種類配置寄存器1081,用于配置不同編碼器通信協(xié)議類型的循環(huán)冗余校驗CRC多項式。數(shù)據(jù)解析模塊106用于根據(jù)編碼器種類配置寄存器1081當(dāng)前配置的CRC多項式進(jìn)行數(shù)據(jù)傳輸校驗。
發(fā)送數(shù)據(jù)配置寄存器1082,用于配置發(fā)送至支持不同編碼器通信協(xié)議類型的編碼器的命令。數(shù)據(jù)解析模塊106根據(jù)發(fā)送數(shù)據(jù)配置寄存器1082當(dāng)前配置的命令向編碼器發(fā)送命令。
控制寄存器1083,用于配置不同編碼器通信協(xié)議類型的通訊模式。通訊模式包括軟件觸發(fā)通訊或者自動周期通訊。狀態(tài)機(jī)102用于根據(jù)控制寄存器1083當(dāng)前配置的通訊模式控制時鐘模塊104和數(shù)據(jù)解析模塊106工作于軟件觸發(fā)通訊或者自動周期通訊狀態(tài)。
數(shù)據(jù)位數(shù)配置寄存器1084,用于配置不同編碼器通信協(xié)議類型的數(shù)據(jù)位數(shù)。狀態(tài)機(jī)102用于根據(jù)數(shù)據(jù)位數(shù)配置寄存器1084當(dāng)前配置的數(shù)據(jù)位數(shù)控制數(shù)據(jù)解析模塊106進(jìn)行數(shù)據(jù)的收發(fā)以及校驗。
波特率配置寄存器1085,用于配置不同編碼器通信協(xié)議類型的波特率。時鐘模塊104用于根據(jù)波特率配置寄存器1085當(dāng)前的配置產(chǎn)生對應(yīng)頻率的時鐘信號。
需要說明的是,本實施方式的編碼器控制器10還可以包括:增量型編碼器控制器模塊100,用于與增量型編碼器控制器通信。具體而言,增量型編碼器控制模塊100包括:測速控制子模塊1002,用于檢測增量型編碼器的旋轉(zhuǎn)速度。正反計數(shù)子模塊1004,用于檢測增量型外部編碼器的運轉(zhuǎn)方向,并進(jìn)行相應(yīng)的計數(shù)。
下面通過舉例對本實施方式的編碼器控制器中的寄存器組的配置進(jìn)行說明如下:
例如考慮本實施方式的編碼器控制器需要支持SSI編碼器和海德漢編碼器。在對寄存器組進(jìn)行配置時,考慮到SSI的通信協(xié)議類型只要求進(jìn)行接收操作,接收從SSI編碼器傳回的位置及溫度信息。海德漢編碼器則需要編碼器控制器先發(fā)送請求命令給海德漢編碼器,海德漢編碼器再傳送回命令要求的數(shù)據(jù)。另外,兩者的CRC校驗位數(shù)和多項式也不一樣。但是兩者也有相同之處,例如都是根據(jù)時鐘信號來傳輸數(shù)據(jù)。根據(jù)兩者的異同點,在實際應(yīng)用中,需要對寄存器組配置如下參數(shù):
SSI編碼器:
海德漢編碼器:
然后結(jié)合圖5所示,對本實施方式的狀態(tài)機(jī)102的工作流程簡要說明如下:
步驟501:根據(jù)寄存器組的配置選擇編碼器的通訊協(xié)議,編碼器波特率,數(shù)據(jù)位數(shù)。即狀態(tài)機(jī)從寄存器組中讀取時鐘模塊、數(shù)據(jù)解析模塊以及狀態(tài)機(jī)自身的一些工作參數(shù),確定本編碼器控制器工作的具體通信協(xié)議類型。
步驟502:自動傳輸?如果為自動周期通訊模式,則進(jìn)入步驟504,如果為軟件觸發(fā)通訊模式,則進(jìn)入步驟503。
步驟503:等待控制寄存器下發(fā)指令。
在軟件觸發(fā)通訊模式下,編碼器控制器需要等待軟件下發(fā)的指令。
步驟504:發(fā)送請求位置的命令給編碼器。在自動周期模式下,編碼器控制器周期性地發(fā)送請求位置的命令給編碼器。
步驟505:根據(jù)數(shù)據(jù)配置寄存器和配置的發(fā)送數(shù)據(jù)位數(shù)發(fā)送請求指令。
步驟506:等待接收是否超時?
步驟507:接收數(shù)據(jù)。在步驟507中,狀態(tài)機(jī)控制接收數(shù)據(jù)的位數(shù)達(dá)到寄存器組當(dāng)前配置的數(shù)據(jù)位數(shù)。
步驟508:CRC接收和校驗。在步驟508中,狀態(tài)機(jī)控制接收CRC的位數(shù)達(dá)到寄存器組當(dāng)前配置的數(shù)據(jù)位數(shù)。
步驟509:將接收到的數(shù)據(jù)存儲到接收寄存器中并在狀態(tài)寄存器中指示CRC校驗結(jié)果。
值得一提的是,本實施方式中所涉及到的各模塊均為邏輯模塊,在實際應(yīng)用中,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現(xiàn)。此外,為了突出本發(fā)明的創(chuàng)新部分,本實施方式中并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的單元引入,但這并不表明本實施方式中不存在其它的單元。
本領(lǐng)域技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序存儲在一個存儲介質(zhì)中,包括若干指令用以使得一個設(shè)備(可以是單片機(jī),芯片等)或處理器(processor)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本發(fā)明第三實施方式涉及一種編碼器控制器的配置方法。
如圖6所示,該方法包括以下步驟:
步驟602:在圖形用戶界面中接收寄存器組的配置參數(shù)。
步驟602中,例如可以在圖形用戶界面中提供對應(yīng)于市面上常見的絕對值型編碼器的選項,例如SSI、海德漢等,用戶可以選取對應(yīng)的選項,同時,該選項下對應(yīng)有用于配置寄存器組的相應(yīng)的配置參數(shù),該配置參數(shù)用于使得編碼器控制器以與前述選項指定的編碼器進(jìn)行通訊。當(dāng)然,還可以在圖形用戶界面中指定寄存器組中各寄存器的名稱,便于用戶手動輸入寄存器對應(yīng)的工作參數(shù)。
步驟604:將接收到的配置參數(shù)寫入寄存器組。從而,該編碼器控制器即可等同于與寫入的配置參數(shù)對應(yīng)的編碼器的控制器。
本實施方式在通用伺服控制系統(tǒng)中,可以快速、方便地將編碼器控制器定制成不同的通信協(xié)議類型控制器,便于配合不同協(xié)議類型的編碼器工作。
上面各種方法的步驟劃分,只是為了描述清楚,實現(xiàn)時可以合并為一個步驟或者對某些步驟進(jìn)行拆分,分解為多個步驟,只要包含相同的邏輯關(guān)系,都在本專利的保護(hù)范圍內(nèi);對算法中或者流程中添加無關(guān)緊要的修改或者引入無關(guān)緊要的設(shè)計,但不改變其算法和流程的核心設(shè)計都在該專利的保護(hù)范圍內(nèi)。
本領(lǐng)域的普通技術(shù)人員可以理解,上述各實施方式是實現(xiàn)本發(fā)明的具體實施例,而在實際應(yīng)用中,可以在形式上和細(xì)節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。