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