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