基于FPGA的絕對式編碼器通信接口設計
2 絕對式編碼器接口的實(shí)現
全數字化交流伺服系統中采用TMS320X2812作為控制器,用以實(shí)現位置環(huán)、速度環(huán)和電流環(huán)以及SVPWM、電壓和電流采樣等功能。此外,采用Altera公司的型號為FP1C6的~Cyclone系列FPGA,用以實(shí)現與絕對式碼盤(pán)接口、譯碼邏輯等功能。同時(shí),在FPGA內部實(shí)現了256字節的雙口RAM,用來(lái)與DSP之間通過(guò)總線(xiàn)實(shí)現數據傳輸。FPGA部分的功能框圖如圖2P所示。
碼盤(pán)接口部分分為發(fā)送模塊、接收模塊、雙口RAM模塊、主程序模塊四部分。由于每次通信時(shí)間是嚴格固定的,設系統時(shí)鐘為2MHz。FPGA為主叫,向編碼器發(fā)送"請求數據"控制字共6位,需時(shí)3 μs,編碼器向FPGA共發(fā)送1個(gè)起始位、兩個(gè)"錯誤位"、26位位置值和5位CRC校驗位,共34位的數據共需時(shí)17 μs,所以每次通信需要20 μs的時(shí)間,并且每個(gè)時(shí)刻具體需要傳遞哪一位數據也是嚴格確定的。因此采用基于時(shí)基的設計方法。
FPGA內部設計了一個(gè)時(shí)基為20ns的計數器,每20ns加1,作為整個(gè)電路的時(shí)基,根據這個(gè)時(shí)基來(lái)確定每一時(shí)刻收到的數據具體屬于哪個(gè)位。在FPGA 內部實(shí)現了256bytes的雙口RAM空問(wèn),A口具有8位數據線(xiàn),8位地址線(xiàn),用于與編碼器通信,B口具有16位數據線(xiàn),8位地址線(xiàn),用于與DSP通信,因為T(mén)MS320X2812為16位DSP,所以與FPGA中RAM的數據傳遞極為方便。
DSP在每個(gè)電流環(huán)周期發(fā)送一個(gè)有效的"begin"信號,20μs之后,碼盤(pán)信號接收模塊將接收到的數據存入FPGA內部雙口RAM的A口中,并按順序排列成16位數據的形式,然后向DSP發(fā)送end信號,表示一次通信結束,DSP接收到中斷之后從FPGA的雙口RAM的B口中讀取數據,完成一次通信, DSP的連接如圖3所示。
評論