串行編碼器的自動識別和統(tǒng)一協(xié)議裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本實用新型涉及一種編碼器的識別裝置,具體講是一種串行編碼器的自動識別和統(tǒng)一協(xié)議裝置,屬于伺服電機控制領(lǐng)域。
【背景技術(shù)】
[0002]目前,在根據(jù)伺服電機控制過程要根據(jù)不同類型的串行編碼器的電機分別采用不同類型的伺服驅(qū)動器,以適應(yīng)不同的編碼器的各種協(xié)議的解析。這就造成伺服驅(qū)動器制造商與客戶在使用伺服驅(qū)動器及廠家電機之前,首先要知道電機所帶編碼器的型號,然后在伺服驅(qū)動器及電機整體配套使用前在伺服驅(qū)動器上設(shè)置對應(yīng)電機的編碼器型號,才能識別使用。更有甚者,同樣的伺服驅(qū)動器對應(yīng)不同型號編碼器的電機需要燒寫不同的軟件程序。即:相同的物理結(jié)構(gòu),卻使用不同的軟件程序,這給伺服制造商的調(diào)試人員與伺服使用客戶造成很大的麻煩與資源浪費。
[0003]此外,目前軟件開發(fā)人員往往需要根據(jù)不同的編碼器協(xié)議,模擬不同的串行協(xié)議。但在實際使用過程中,即使FPGA/CPLD等可編程邏輯器件幫助實現(xiàn)了一些接口的轉(zhuǎn)換,但是往往由于各編碼器廠家協(xié)議的差異,最終與CPU/DSP等處理器訪問接口還是各有不同,所以造成了軟件開發(fā)人員與硬件FPGA/CPLD開發(fā)人員都必須牢牢掌握各家編碼器協(xié)議,才能“配合”工作。
[0004]以上不足給伺服電機控制帶來諸多不便,降低了控制效率,加重了開發(fā)人員的負擔且造成不必要資源浪費。
【實用新型內(nèi)容】
[0005]本實用新型所要解決的技術(shù)問題在于克服現(xiàn)有技術(shù)缺陷,提供一種能快速識別不同類型的串行編碼器,并對不同的編碼器協(xié)議進行統(tǒng)一的串行編碼器的自動識別和統(tǒng)一協(xié)議裝置。
[0006]為了解決上述技術(shù)問題,本實用新型提供的串行編碼器的自動識別和統(tǒng)一協(xié)議裝置,包括協(xié)議調(diào)度控制模塊、多個串行編碼器協(xié)議接口和通用接口轉(zhuǎn)換模塊;所述協(xié)議調(diào)度控制模塊分別與多個串行編碼器協(xié)議接口連接通訊,所述協(xié)議調(diào)度控制模塊可分別對各個串行編碼器協(xié)議接口進行調(diào)度;所述協(xié)議調(diào)度控制模塊并連接串行編碼器接口 ;所述多個串行編碼器協(xié)議接口均與通用接口轉(zhuǎn)換模塊連接通訊。
[0007]本實用新型的有益效果在于:(I)、采用本實用新型的伺服驅(qū)動器可自動識別編碼器類型,省去需人工先知道編碼器類型,然后通過參數(shù)設(shè)定伺服驅(qū)動器的步驟,使之與對應(yīng)的串行編碼器能快速、實時、高效地匹配,大大地提高了伺服電機的控制效率,避免資源浪費;(2)、軟件開發(fā)人員只需知道一套通用訪問接口協(xié)議,而不必關(guān)心繁多的各家串行編碼器的協(xié)議,進行軟件的協(xié)議模擬工作,減輕開發(fā)負擔;(3)、本實用新型結(jié)構(gòu)簡單,使用方便,可擴展性強,能正確無誤地識別出所連接的編碼器類型,且支持熱插拔。
【附圖說明】
[0008]圖1為本實用新型串行編碼器的自動識別和統(tǒng)一協(xié)議裝置結(jié)構(gòu)示意圖;
[0009]圖2為舉例當識別到編碼器I類型后的數(shù)據(jù)流向圖。
【具體實施方式】
[0010]下面結(jié)合附圖對本實用新型作進一步詳細說明。
[0011]如圖1、2所示,本實用新型串行編碼器的自動識別和統(tǒng)一協(xié)議裝置安裝在伺服驅(qū)動器中,包括協(xié)議調(diào)度控制模塊、多個串行編碼器協(xié)議接口和通用接口轉(zhuǎn)換模塊。協(xié)議調(diào)度控制模塊分別與多個串行編碼器協(xié)議接口連接通訊,協(xié)議調(diào)度控制模塊同時連接串行編碼器接口,串行編碼器接口用于各種串行編碼器的接入。多個串行編碼器協(xié)議接口分別與通用接口轉(zhuǎn)換模塊連接通訊,通用接口轉(zhuǎn)換模塊連接伺服驅(qū)動器的CPU/DSP等通用處理器。
[0012]協(xié)議調(diào)度控制模塊:主要負責串行編碼器協(xié)議的試探發(fā)送、接收等待以及枚舉發(fā)送、以及各個串行編碼器協(xié)議接口的調(diào)度。協(xié)議調(diào)度控制模塊根據(jù)串行編碼器反饋的信息,判定串行編碼器有無識別成功,若成功,繼續(xù)使能此模塊,進入正常工作模式;若不成功則關(guān)閉此串行編碼器協(xié)議接口的使能,打開下一個串行編碼器協(xié)議接口的使能,繼續(xù)逐步枚舉。拔掉編碼器后,由于通訊終斷,會產(chǎn)生超時,相當于原來識別到的串行編碼器類型丟失。一旦檢測到編碼器未連接,本實用新型的協(xié)議調(diào)度控制模塊會再次進入自動識別狀態(tài),直到新的串行編碼器接入后再次枚舉成功。
[0013]多個串行編碼器協(xié)議接口:主要將各個編碼器的具體串行協(xié)議翻譯成對應(yīng)的通用并行數(shù)據(jù)訪問接口,用于與CPU/DSP等處理器芯片通訊。每個不同協(xié)議的串行編碼器分別對應(yīng)一個串行編碼器協(xié)議接口 ;串行編碼器協(xié)議接口的數(shù)量可以根據(jù)實際控制需要進行選擇。串行編碼器協(xié)議接口對其對應(yīng)的串行編碼器串行通訊協(xié)議進行解析(從編碼器接收數(shù)據(jù)時)與轉(zhuǎn)換(CPU/DSP向編碼器發(fā)送數(shù)據(jù)時);
[0014]通用接口轉(zhuǎn)換模塊:主要負責把不同的串行編碼器返回的信息轉(zhuǎn)換成通用共同格式的輸出接口,把CPU/DSP通用的發(fā)給編碼器的命令接口翻譯成對應(yīng)編碼器類型的專用命令接口。例如,編碼器返回讀到的位置信息有的是16位的,有的是24位的,本實用新型統(tǒng)一轉(zhuǎn)換成32位的位置數(shù)據(jù)輸出(有效數(shù)據(jù)在低位,高位無效常為O);發(fā)給編碼器的命令,以“0x01”舉例代表統(tǒng)一的讀編碼器位置信息命令,但是由于各家編碼器協(xié)議不一樣,比如編碼器類型I的讀命令可能是“0x02”,編碼器類型2的讀命令是“0x03”等等,這時通用接口轉(zhuǎn)換模塊會根據(jù)協(xié)議調(diào)度控制模塊的編碼器類型信息,如圖1中enC_type,對應(yīng)地把統(tǒng)一的讀命令“0x01”轉(zhuǎn)換成“0x02”還是“0x03”等等。
[0015]這樣就方便CPU/DSP的軟件開發(fā),軟件開發(fā)人員就不需要關(guān)注最底層的不同串行編碼器的串行協(xié)議,只要知道對所有串行編碼器的通用的統(tǒng)一操作即可,例如發(fā)起對編碼器讀位置的要求,只需發(fā)“0x01”,發(fā)起對編碼器的寫EEPROM要求只需發(fā)“0x11”(此數(shù)字舉例,可根據(jù)需要改變),發(fā)起對編碼器的讀EEPROM要求只需發(fā)“0x21” (此數(shù)字舉例,可根據(jù)需要改變)等。因此根據(jù)此實用新型,無論是哪家的編碼器,即使不同的串行通訊協(xié)議,但CPU/DSP等處理器的軟件開發(fā)人員側(cè)的操作都是一樣。對于CPU/DSP等處理器來看就是一個黑盒子,而硬件FPGA負責黑盒子里面的具體內(nèi)容實現(xiàn)。
[0016]上電后,協(xié)議調(diào)度控制模塊會按照順序使用調(diào)度信號encl_en,調(diào)度串行編碼器I協(xié)議接口向編碼器發(fā)出請求信號encl_tx與encl_oe,經(jīng)協(xié)議調(diào)度控制模塊轉(zhuǎn)換為enc_tx與enc_oe,等待編碼器的應(yīng)答,若收到編碼器的應(yīng)答信號enc_rx,經(jīng)encl_rx反饋到調(diào)度串