通過ENDAT接口獲取****編碼器位置
劉琳,陳建平
(上海交通大學機械與動力工程學院,上海200240)
摘要:利用DsP的SPI接口實現與編碼器的通信;而ENDAT接口為數據傳輸和信號發送提供了便利。通過開機前獲取****位置值,工作時讀取增量脈沖,不僅減少了斷電干擾,省去開機歸零,而且避免了使用大體積碼盤,使得計算讀取位置值更加簡易,精確。
關鍵詞:****編碼器;DSP;串行通信
0引 言
伺服系統需要測量系統為位置和速度控制器提供反饋信號和電子換向信號。光電編碼器具有精度高、慣量小、穩定性好的優點,廣泛應用于數控機床、回轉臺、伺服傳動、機器人、雷達、軍事目標測定等需要檢測角度的裝置和設備中。
旋轉式增量編碼器一般需要通過歸零動作找到機械原點后才能進行工作,因此使用上有局限性。****編碼器的抗干擾特性和數據的可靠性大大提高了。但是當****編碼器精度增加,線數也增加,碼盤增大,導致體積很大,安裝不便,無法在小型伺服系統上使用。電子式****編碼器以內置低功耗電路來進行位置計數,采用電池來保持內部計數值的數據,不僅體積小巧,而且抗干擾性強。
1 Endat2.2編碼器雙向數據接口
本文采用的編碼器是Endat2.2編碼器雙向數據接口,即可傳輸****編碼器位置值也可傳輸增量式編碼器位置值,還能傳輸或更新保存在編碼器中的信息或保存新信息。它只需一個接口就能適用于所有****編碼器和增量式編碼器,方便用于小型電機和減小系統尺寸。cRc循環冗余檢驗更提高了數據傳輸的可靠性,對于****編碼器位置值的傳輸十分方便。本文設計DsP與****編碼器,通過Endat之間的通信,獲取****位置值。
2數據傳輸
2.1初始設置
設置DsP的串行外設接口操作控制寄存器(sPIcTL),使DsP處于主動方式工作狀態。主動工作方式中,串行外設接口時鐘由DSP串行外設接口產生并由sPIcLK引腳輸出。該時鐘信號用于編碼器同步數據傳輸。不傳輸數據時,時鐘信號默認為高電平。
2.2編碼器選型
海德漢提供了多種****編碼器類型,產品主要分為單轉和多轉以及內置定子聯軸器和分離定子聯軸器等型號。輸出方式包括ENDAT和常用的SSI(串行同步傳輸),能夠滿足不同需求。2.3選擇傳輸類型
海德漢的****編碼器傳輸數據類型分為位置值和附加信息及參數,需要通過模式指令用以選擇編碼器數據傳輸類型。兩個時鐘脈沖(2T)后.DSP發送3位模式指令給****編碼器,來選擇所需的數據類型。每位均采用冗余發送(反向或兩次)。
2.4數據格式
1)錯誤信息l和2
一旦編碼器發生可能導致不正確位置值的故障時,它將立即發出錯誤信息;同時錯誤原因保存在編碼器上。為安全起見,必須獨立產生第二個錯誤檢測信息。錯誤信息2用反相電平發送。
2)位置值數據
位置值數據以一個完整數據字形式傳輸,其長度取決予編碼器的分辨率。數據發送從****有效位(LsB)開始(第一個LsB、。
3)附加信息
根據發送類型,可以隨位置值發送一個到兩個附加信息。每條附加信息長度為30bit并以低電平位開始,每條附加信息均以cRc結束。相應碼器所支持的附加信息保存在編碼器參數中。附加信息包括狀態信息、地址和數據。狀態數據中,wRN一報警表示編碼器的某公差是否已達到或超出;RM一參考點表示是否已執行參考點回零操作;BusY一參數請求用于在低電平時可以請求發送參數。
2.5數據傳輸過程
編碼器傳輸周期從第一個時鐘脈沖下降沿開始。編碼器保存測量值并計算位置值。
兩個時鐘脈沖(2T)后,DSP發送模式指令。模式指令用以選擇編碼器數據傳輸類型。DsP發送模式指令給編碼器,編碼器發送位置值(帶或不帶附加信息)。
編碼器成功計算****位置值后,由起始位開始由編碼器向DsP傳輸數據后續“錯誤位”一“錯誤1”和“錯誤2”是監測類信號,用于檢測故障。
然后編碼器從****有效位(LSB)開始發送****位置值。其長度取決與所用編碼器。發送一個位置值所需要的時鐘脈沖數保存在編碼器制造商參數中。
循環冗余檢驗后發送附加信息1和2。每個都以cRc結束。附加信息內容由存儲區選擇決定,并在下個采樣周期中發送附加信息,然后每個采樣周期都發送信息選擇新存儲區改變內容為止。
在數據字結尾處,必須將時鐘信號置為高電平。10μs到30μs后或1 25μs到3.75μs后,數據線返回低電平,然后,時鐘信號啟動另一次數據發送。
3 DSP與****值編碼器串行數據通信設計
3.1硬件電路設計
圖1所示為DsP與****編碼器電氣連接圖。通過DsP的sPI外設串行通訊模塊,利用TI的RS485專用差分線路接收器sN75146P和驅動器SN75AL$19IP來連接編碼器。sPI是一個高速、同步串行『/O口,它是允許長度可編程的位置傳輸速度移入或移出器件。通常sPj用于DsP處理器和外部外設以及其他處理器之間的通信。Rs一485是一種常用的串行接口標準,采用平衡驅動器和差分接收器的組合,抗共模干能力增強,即抗噪聲干擾性好。
3.2軟件設計
初始化DSP的sPI模塊,其中包括設置sPI的主從動工作方式,以及設置sPI波特率和時鐘方式。
設置串行外設接口配置控制寄存器sPIccR為Ox4c,使其在sPIcLK信號的下降輸出數據,在E升沿輸人數據。當無數據發送時,sPIcLK保持高電平。數據長度選擇13位,該數據取決于所用編碼器。設置串行外接接口操作控制寄存器sPIc_rj_為0如6,使能主動工作模式,一般的時鐘方式,使能TALK。設置串行外設接口波特率設置寄存器spIBRR,設置方法為:
sPIBRR=3~127時:SP工波特率:sYscLK/
(SPIBRR+1)。
sPIBRR=(sYscLK/sPI波特率)一1
S~BRR=O,l或2時:
sPI波特率=SYS(:LK/4。
sPIBRR=0x14時,時鐘頻率為200kHz時,波
特率約為9600bif/s。
DSP接法數據流程如圖2所示。
3.3格雷碼轉二進制碼
格雷碼(Gray code)又叫循環二進制碼或反射二進制碼。格雷碼屬于可靠性編碼,是一種錯誤最小化的編碼方式。它大大減少了由一個狀態到下一個狀態時邏輯的混淆(故通常又Ⅱq格雷反射碼或循環碼),所以大部分****編碼器輸出的位置值都是格雷碼。當DSP讀到的位置數據格式為格雷碼時,需要對其進行轉換為純二進制碼,才能進行運算和操作。二進制格雷碼轉換成自然二進制碼,其法則是保留格雷碼的****位作為自然二進制碼的****位,而次高位自然二進制碼為高位自然二進制碼與次高位格雷碼相異或,而自然二進制碼的其余各位與次高位自然二進制碼的求法相類似。格雷碼轉二進制碼(解碼):從左邊第二位起,將每位與左邊一位解碼后的值異或,作為該位解碼后的值(最左邊一位依然不變)。
4小結
本文利用TMS320LF240x DSF’的sPI接口實現與海德漢****光電編碼器之間的Endat2.2接口通信。本系統在硬件設計中未采用昂貴的專用解碼芯片,也沒有采用額外的cPLD(FPGA)來處理編碼器數據,僅依靠D幾P來完成編碼器數據的接收,可以大大簡化系統設計,降低產品成本。采用軟件的方式處理編碼器數據,CR(:檢驗提高了傳輸可靠性,不但可滿足系統獲取位置信息的需要,還可以靈活地對通信錯誤進行診斷和處理。
|