基于FPGA的****式編碼器智能接口設計
于泳,楊明,貴獻國,徐殿國
(哈爾濱工業大學,黑龍江哈爾濱150001)
摘要:實現了一種基于FPGA的****式碼盤智能接口,用以進行****式編碼器和伺服驅動器的DsP處理器之間的通訊。該接口完全可以替代價格昂貴的專用接口芯片,降低產品成本。
關鍵詞:****式編碼器;接口;FPGA
中圖分類號:TM383.4 文獻標識碼:A 文章編號:1004—7018(2008)01—0004—02
O引言
碼盤是一種基本的位置、速度反饋單元,廣泛應用于變頻器、直流伺服、交流伺服等系統的閉環控制中,碼盤主要分為增量式和****式兩種。增量式編碼器轉動時輸出脈沖,通過計數設備來知道其位置,當編碼器不動或停電時,依靠計數設備的內部記憶來記住位置。停電后,編碼器不能有任何的移動,當來電工作時,編碼器輸出脈沖過程中,也不能有干擾
而丟失脈沖。不然,控制器認 定的位置與實際位置有較大的偏差。增量式碼盤通常設有A、B、Z、u、V、W六路信號,以差動或者集電極開路的形式輸出,其中A、B、Z信號用于位置的檢測;也可用來作速度檢測;u、V、W信號一般為永磁電機起動提供參考信號,其接口較為簡單,且多數用于電機控制的微處理器均具有增量式碼盤的接口,使增量式碼盤的應用非常簡單:****式編碼器旋轉一周過程中,每個機械位置對應于一個********編碼,所以它無需記憶,無需找參考點,而且無需一直計數,控制器什么時候需要知道位置,什么時候就去讀取它的位置。失電后無需控制器記憶當前位置,待下次上電時直接讀取位置即可。這樣,****式編碼器的抗干擾特性、數據的可靠性大大高于增量式編碼器。但是****式編
碼器信號的接收較增量式編碼器困難得多,一般****式編碼器為8位到17位之間,為了減小體積,一般采用串行方式輸出****編碼,對于伺服電機控制等高端場合,為了適應快速的電流環、速度環、位置環的需要,編碼輸出的速度又應該非常快,這些都對****式編碼的接收增加了難度:
****式編碼器廠家大多為其編碼器配套了接收芯片,實現串行編碼到并行編碼的轉換,方便控制器的讀取。但是該芯片通常價格昂貴,約占****式編碼器價格的四分之一。目前國內外高端交流伺服系統中普遍采用FPGA+DsP結構,DsP用來實現矢量變換和其它算法流程;FPGA用以實現譯碼、A、B、z信號輸出、L/O擴展等功能,FPGA中尚有很多資源
沒有得到充分利用:本文研制了一種用于交流伺服系統中的基于FPGA的****式編碼器智能接口,實現與****式編碼器的雙工通訊,接收高速數據流,同時在FPGA內部開辟RAM空間,將收到的編碼器數據存人RAM中,DSP可以以訪問內存的方式湊取數據,提高了工作速度。同時,該接口還具有奇偶校驗等糾錯功能,完全可以替代廠家提供的接收芯片,大
幅度降低了產品成本。
1 TS5669N120型****式編碼器
國內外****式編碼器產品很多,如日本的多摩川精機、德國的海德漢、國產的長春三峰等,綜合價格和產品質量因素,我們選用了多摩川的TS5669N120型****式編碼器。主要技術指標如表1所示。
每次通訊時,由處理器先向編碼器發送cF控制字,控制字中的CCo至CC3四位數據為指令碼,指令碼包括“要碼盤數據”、“寫EEROM”、“讀EE-ROM”和“復位”四種。當碼盤接收到cF數據串之后,延時3μs后向控制器發送cF控制字、sF狀態字、DF數據字和奇偶校驗位,從而完成一次通訊。通訊速率為2.5 Mb/s,每一個位(bit)的傳輸時間為
O.4μs,所以,完成一次通訊的時間為51μs。
2****式編碼器接口的實現
為了清晰該接口在整個交流伺服系統中的作用,先對整個伺服控制單元作一下介紹:本全數字化交流伺服系統中采用TMS320LF2407A作為控制器,用以實現位置環、速度環和電流環以及sVPwM、電流采樣等功能。此外,采用Xinlinx公司的型號為xc2sloo的SPATAN 2系列FPGA用以實現與****式碼盤接口、正交編碼輸出、按鍵/顯示接口以及譯碼邏輯等功能。同時,在FPCA內部實現了512字節的雙口RAM,用來與DsP之間通過總線實現數據傳輸。pPGA部分的功能框圖如圖l所示。
碼盤接口部分分為發送模塊、接收模塊、雙口RAM模塊、主程序模塊四個部分。因為每次通訊時問嚴格固定,FPGA為主叫,向編碼器發送“要數據”控制字共10位,需時4μs,編碼器向FPGA共發送11個控制字的數據共需時44μs,發送和接收之間有3μs的延時,所以每次通訊需要51μs的時間,而且每個時刻具體傳遞哪一位數據也嚴格確定。
所以采用基于時基的設計方法。FPGA內部設計了一個時基為50 ns的計數器,每50 ns加1,作為整個電路的時基,根據時基來確定每一時刻收到的數據具體屬于哪個位。
在FPGA內部實現了512 bytes的雙口RAM空間,A口具有8位數據線,9位地址線,用于與編碼器通訊,B口具有16位數據線,8位地址線,用于與DSP通訊,因為TMS20LF2407A為16位DSP,所以與FPGA中RAM的數據傳遞極為方便。DSP在每個電流環周期發送一個有效的“uan—begin”信號,51μs之后,碼盤信號接收模塊將接收到的11字節數據存人FPGA內部雙口RAM的A口中,并按順序排列成16位數據的形式,然后向DSP 發送comm—end信號,表示一次通訊結束,DSP接收到中斷之后從FPGA的雙口RAM的B口中讀取數據,完成一次通訊,與DSP的連接如圖2所示。
在該接口的研發過程中,對FPGA的開發采用xIlinx公司的IsE集成環境,硬件描述語言為Veril—0g語言,利用M0delsim XE 5.7g進行仿真,綜合工具使用symplify7.3.3;利用IsE提供的chipscopeIP核可以方便地進行在線硬件仿真,加速開發進程。圖3為主程序流程,圖4為碼盤與FPGA之間的通訊波形,圖5為DsP收到的碼盤位置信號,從位置信號可以看出該接口工作正常。
3結語
本文實現了一種基于FPGA的****式碼盤智能接口,用以進行****式編碼器和伺服驅動器的DsP處理器之間的通訊。并且具有奇偶校驗等糾錯功能。該接口完全可以替代價格昂貴的專用接口芯片,降低產品成本,促進伺服電機驅動器的國產化進程。
|