一種BiSS協議的編碼器數據讀取方法
摘要:針對目前BiSS協議編碼器數據讀取多采用FPGA實現的實際情況,文中介紹一種基于XMC4500微控制器的BiSS協議編碼器數據讀取實現方案。采用該方案,可將使用BiSS協議編碼器的伺服系統控制電路常用的DSP+FPGA雙控制器架構方式簡化為XMC4500單控制器方式,在一定程度上降低了硬件成本和開發難度。用該方案采集BiSS協議編碼器數據的實物平臺,使用LabVIEW顯示對讀取的數據,并與電機自帶增量編碼器值進行對比,同時記錄BiSS協議編碼器實際數據波形圖,結果表明,該方案具有較高的采樣速率和較好的讀取效果,具有一定參考價值。
作者簡介:李紹軍(1989—),男,碩士,從事光電轉臺伺服控制技術研究。Email:lsj_gdsf@163.com。
0 引言
BiSS 協議是一種快速雙向通信協議,具有通信速率高、抗干擾能力強、硬件電路簡單等優點,在伺服系統位置傳感器領域得到了越來越廣泛的使用[1-2]。BiSS通信協議物理接口采用全雙工差分RS422 方式,但由于其時序較為獨立及長度不定,難以使用常用的通用異步串口直接對BiSS 協議編碼器數據解碼讀取。實際使用中,BiSS 協議的編碼器數據可通過編碼器廠商提供的專用解碼芯片、微控制器或FPGA 讀取[3]。編碼器廠商提供的專用解碼芯片一般價格較高且功能單一;文獻[4] 中提出使用CY8C29466 微控制器對BiSS 協議編碼器數據進行解碼,以讀取正確的解碼值,但受限于微控制器功能及性能,只能實現較低的采樣速率,難以滿足高速、高性能伺服控制系統的要求;文獻[5] 提出使用A3P400 型FPGA 對BiSS 協議編碼器數據進行解碼,以準確讀取解碼值且具有較高采樣速率,但FPGA 只用于編碼器數據采集,實際伺服電機由DSP 驅動,即伺服系統電路結構采用DSP+FPGA 方式實現。這種雙控制器方式通過高性能DSP 實現控制算法的快速準確計算,同時利用FPGA 的并行機理完成信號采集[6]。如果可以使用較為簡化的硬件電路實現對BiSS 協議編碼器數據準確的解碼,并具有較高的數據采樣速率,這樣的方式顯然具有更高實用價值。
圖1 BiSS-B協議傳感器模式時序圖
1 設計方案
BiSS-B 在BiSS 協議中應用最為廣泛,由于涉及專利保護問題,隨之開發出BiSS-C 協議,BiSS-C 與BiSS-B 可實現物理接口兼容[7],不同點在于兩者時序定義略有差異,文中編碼器使用BiSS-B 協議。BiSS 協議具有傳感器模式和寄存器模式兩種不同工作模式,前者可實現編碼器數據的快速讀取,后者可實現編碼器寄存器數據的讀寫雙向訪問[8],文中基于傳感器模式對方案的可行性進行了驗證。
BiSS 協議編碼器使用Hengstler 公司的AD36-1213AF.0RBI 多圈絕對式光電編碼器,其具有500 kHz 帶寬,適合作為無刷伺服電機位置傳感器。BiSS-B 協議傳感器模式時序如圖1 所示。
MA 為BiSS 總線的時鐘線,SLO 為Biss 總線的數據線。當MA 和SLO 同為高電平狀態時,總線處于空閑時間,不進行數據傳送。非空閑時間BiSS-B 協議編碼器數據線SLO 上的數據幀格式如圖2 所示,圖中括號內的數字表示該段數據所占用的MA 時鐘個數,不帶括號的表示與MA 時鐘個數無關。
根據3 種不同BiSS 協議編碼器數據解碼方式特點和BiSS-B 協議編碼器時序的分析, 文中采用XMC4500 微處理器實現對BiSS-B 協議編碼器數據的解碼,該方案硬件電路組成如圖3 所示。
XMC4500 是Infineon 公司推出的基于Arm Cortex-M4內核的微控制器,主頻可以達到120 MHz,其內部集成多種專用電機控制外設,有多達6 個通信接口方面,分別用于UART、SPI、IIC 和IIS 等4 種不同功能的通用串行接口。本文使用其SPI 功能接口實現對BiSS-B 編碼器數據的解碼。XMC4500 的SPI 接口MOSR 引腳作為輸出引腳,輸出BiSS 協議編碼器時鐘線MA 信號;MRSO 引腳作為輸入引腳,采集BiSS 協議編碼器數據線SLO 上的信號。LabVIEW 是一種圖形化編程的數據采集軟件,具有數據讀取、數據分析、數據管理等功能,可減少程序代碼編寫,縮短設計時間[9]。為方便對BiSS編碼器數據的觀察,使用LabVIEW 設計了對應的上位機,顯示XMC4500 通過UART 接口定時發出的編碼器解碼數據。
XMC4500 將BiSS-B 協議編碼器MA 線狀態由空閑時間的高電平狀態置為低電平狀態,以啟動一次BiSS-B 總線上的數據發送。作為回應,編碼器會在一定時間后將SLO 線狀態由高電平置為低電平狀態,并隨后再次置為高電平,以表示開始傳輸位置數據。位置數據以Start 位開始,后面依次為:12 位多圈計數值用于記錄編碼器旋轉圈數;13 位單圈計數值用于記錄編碼器單圈位置;1 位錯誤位用于監測光電編碼器LED 工作狀態;1 位警告位用于監測編碼器內部傳感器工作環境溫度、6 位CRC 校驗位和Timeout 段。
2 軟件設計
XMC4500 的SPI 接口有長達64 位的FIFO 存儲空間,可以一次性存儲全部BiSS-B協議數據幀。初始化時,應對SPI 接口的波特率及FIFO 存儲空間進行相應設置。文中BiSS-B 協議編碼器數據通過定時中斷來讀取。根據BiSS-B 協議編碼器傳感器模式時序,XMC4500 的MOSR 引腳先發送若干Ack 位檢測時鐘,直到MRSO引腳檢測到Ack 位為止。由于編碼器輸出SLO 數據響應MA 時鐘和總線傳輸有一定延遲時間,需要測量并記錄Ack 位相對時鐘延遲時間以進行補償。然后,XMC4500 的MOSR 引腳根據數據幀有效位數不斷發送其他數據位時鐘,同時MRSO 引腳將SLO 線數據逐一存儲。當有效數據位數計數完畢后,XMC4500 讀取存于FIFO 中的數據幀位,并根據編碼器Timeout 延遲時間將MA 線拉高直至數據幀結束。根據前面記錄的Ack位延遲時間,對讀取的FIFO 數據幀位逐一處理,并采用多數表決方式確定每位的準確值,完成編碼器單圈和多圈位置值重組,并定時將通過CRC 校驗的正確位置值發送至上位機進行顯示。CRC 校驗方式為BiSS-B 協議編碼器數據幀中的多圈值+ 單圈值+ 錯誤位+ 警告位。根據編碼器CRC 計算等式,將計算出的6 位CRC校驗值與數據幀結尾處的6 位動態隨機CRC 校驗值比較,若兩者相同則表示接收編碼器數據正確,該讀取值可以使用;否則應判定為錯誤值,予以忽略。編碼器數據讀取軟件程序工作流程圖如圖4 所示。
圖5 實物驗證平臺圖
3 實驗結果與分析
使用安川公司SGMM-A2C312 伺服電機配合AD36-1213AF.0RBI 多圈絕對值光電編碼器搭建的實物平臺對該方案實際效果進行了測試,實物驗證平臺如圖5 所示。
LabVIEW 上位機分別顯示編碼器上傳的單圈和多圈位置值,如圖6 所示。編碼器單圈位置值為13 位,最大值8 191,多圈值為12 位,最大值為4 195。
圖6 上位機顯示效果圖
將同步采集伺服電機自帶的2 048 線增量式編碼器位置值與采集到的13位絕對式編碼器位置值進行對比,對比效果如圖7 所示。
圖7 編碼器數據對比圖
記錄連續3 個周期采集到的絕對式編碼器和增量式編碼器輸出的位置值,并計算每個周期的平均速度,對比結果如表1 所示。
采用絕對式編碼器和增量式編碼器連續3 個周期獲得的平均速度相比誤差很小,可見采用XMC4500 采集的絕對式編碼器值與增量式編碼器相比具有較好的準確度和線性度。
使用XMC4500 的SPI 接口對BiSS-B 協議編碼器以傳感器模式讀取實際時序波形,如圖8 所示。圖中通道1 為MA 線波形,通道2 為SLO 線波形,與BiSS-B協議傳感器模式協議時序一致。
圖8 編碼器實際時序波形圖
局部波形如圖9 所示,圖中可見,XMC4500 的SPI接口所提供的MA 線時鐘頻率大于5 MHz。
圖9 編碼器局部時序波形圖
綜合圖8 和圖9 進行分析,使用XMC4500 微控制器SPI 接口對該型編碼器完成一次讀取用時少于28 μs,其中包含編碼器廠商設定的Timeout 時間約(10~15)μs,可實現較高的采樣速率。
4 結束語
文中提出了一種基于XMC4500 讀取BiSS 協議編碼器數據的方法,試驗結果表明,該方法可替代FPGA完成對BiSS 協議的解碼,具有較高的數據采樣速率。使用該方法可以用XMC4500 單控制器替代DSP+FPGA方式,實現對BiSS 協議編碼器伺服系統的控制,簡化了硬件電路設計,具有較好的參考價值。
參考文獻:
[1] 商懷昊,韓基鵬,肖鵬,等.基于BiSS-C協議的編碼器接口技術及在伺服驅動系統中的應用[J].工藝技術創新,2014,01(02):211-215.
[2] 俞小露,趙志方,盧欣霽.BiSS-C絕對式級聯光柵編碼器在工業機器人領域的應用[J].世界制造技術與裝備市場,2015 (2):119-120.
[3] 王希遠,成榮,朱煜,等.基于FPGA的BiSS-C協議編碼器接口技術研究及解碼實現[J].液晶與顯示,2016,31(4):386-391.
[4] 高長清,林輝,張輝.BiSS接口的光電編碼器數據讀出研究[J].計算機測量與控制,2009,17(5):957-958,961.
[5] 王列虎,皮佑國.基于BiSS協議的編碼器接口技術研究及研究[J].機床與液壓,2011,39(8):103-105,121.
[6] 李捷,盧子廣,楊達亮.基于DSP/FPGA的級聯型固態變壓器控制研究[J].電測與儀表,2016,53(24):39-43,55.孫彥超.基于XMC4500的PMSM的控制系統的設計[D].沈陽:沈陽航空航天大學,2016.
[8] 霍海龍.基于BiSS的編碼器及其在伺服驅動系統中的應用[J].電氣自動化,2011,33(3):12-14.
[9] 謝志遠,魏佳紅,時方,等.LabVIEW在中壓電力線信道噪聲發生器設計中的應用[J].電測與儀表,2014,51(14):120-124.
(本文來源于《電子產品世界》雜志2021年6月期)
評論