1. 前言
目前,絕對式光柵編碼器廣泛應用于工業(yè)機器人領域。在市場需求的推動下,隨著國內機器人控制技術的提高,工業(yè)機器人朝著高精度、高速度、高動態(tài)響應、多自由度方向和智能化發(fā)展。控制系統(tǒng)將更加依賴對整個運動系統(tǒng)運行狀態(tài)的監(jiān)控,需要多個光柵編碼器來監(jiān)測電機系統(tǒng)的運動數據。以往伺服系統(tǒng)與光柵編碼器普遍采用的點對點通信,由于布線繁多、數據同步性差,逐漸成為機器人結構減重、控制優(yōu)化的繞不開的問題。
我公司在設計機器人驅動控制系統(tǒng)時,受限于以下問題,只能允許一組光柵編碼器接口:
1、主控系統(tǒng)采用單控制器控制兩個獨立伺服電機,要求兩個運動系統(tǒng)嚴格同步;
2、機器人內部布線空間十分有限,這種情況下仍需兼顧降低結構慣量、控制總體成本、提高抗干擾能力和方便安裝維護等多個需求;
3、過長的走線增加線延時,不利于對機器人運動的控制。
針對以上問題,我公司向客戶提供了BiSS-C絕對式光柵編碼器級聯(lián)解決方案,采用單一光柵編碼器接口,對兩個伺服系統(tǒng)光柵編碼器數據高速同步讀取,且布線簡單方便,不增加線延時,成功解決了客戶的難題,幫助客戶走向成功。
2編碼器總線的現(xiàn)狀和發(fā)展趨勢
隨著現(xiàn)場總線技術發(fā)展,SOC片上系統(tǒng)逐漸普及,控制系統(tǒng)全數字化已成該領域的發(fā)展方向和研究熱點。編碼器也在向數字化發(fā)展,從而帶來傳絕對式編碼器和相關通信總線的技術進步。由于編碼器在運動控制領域應用最多,編碼器總線要滿足運動控制器對精度、分辨率、響應速度的要求,應包括如下幾個特征:
1、 高速通信
2、 時延固定
3、 數據診斷
4、 雙向通信
5、 低成本
高速通信有助于提高響應速度;編碼器的精度和分辨率決定了控制系統(tǒng)的精度,時延是影響編碼器精度的重要因素。運動控制器發(fā)出 “讀指令”的時刻到編碼器開始采樣這段時間理想情況下應是是固定的。這個時延越小,編碼器的編碼值的物理意義越準確。從而有利于伺服控制器的算法調節(jié)。
試想利用CAN總線實現(xiàn)編碼器通信的情況。首先,伺服控制器發(fā)出一個CAN通信幀;然后,編碼器從CAN通信幀提取出“讀指令”;最后,編碼器進行數據采樣,并回傳數據。這樣的采樣滯后是多長時間,時長是固定的么?作為對比, BiSS在MA(MA是主機發(fā)出的時鐘)的第一上升沿采樣數據,理論上是沒有延遲的。
可以說,通用現(xiàn)場總線目前還不適合高速編碼器通信。專門用于高速數據通信的傳感器總線大都是編碼器廠商開發(fā),有很強的封閉性。比較有代表性的總線通信協(xié)議有EnDat2.2、Hiperface、SSI、NRZ等等。BiSS是國際通用協(xié)議且協(xié)議開放。
3 BiSS通信協(xié)議的關鍵技術特征
1、 二線串行同步數據總線,采用RS422接口,波特率達到10Mbit/s;采用LVDS接口,波特率 > 10Mbit/s,這反映了BiSS有高的響應速度;
2、 通信效率高,每10uS傳輸超過64個比特,有效負載率大于80%。這反映出BiSS能承載高分辨率編碼器數據;
3、線路時分復用,包括每個通信周期傳輸一幀的數據通信信道和傳輸一個幀位的寄存器通信信道。其中,寄存器通信和數據通信完全獨立,互不干涉。對于不需要寄存器通信的應用場合,可以使用BiSS-C Unidirectional版本。這個版本的協(xié)議沒有寄存器通信。
這反映了采用BiSS的控制系統(tǒng)有更好的穩(wěn)定性和便利性。
4、多種安全機制確保數據可靠,BiSS的延遲補償技術能補償傳輸線帶來的信號延遲,采用兩組CRC生成多項式分別對傳感器數據與寄存器數據進行校驗。BiSS協(xié)議幀還包括一位報警位和一位錯誤位,CRC生成多項式可自定義。6位CRC能滿足大多數應用,對于高安全場合(例如需要滿足歐洲安全標準的場合),BiSS可以使用16位CRC。
這反映了BiSS傳輸更可靠,采用BiSS的控制系統(tǒng)更可靠。
5、數據同步,BiSS利用時鐘信號同步傳感器數據,傳感器在第一個時鐘脈沖到來時進行數據更新,每一幀到達后續(xù)電子設備的數據其傳輸延遲都是相同的,方便后續(xù)電子設備進行時延補償,特別適合電機控制等對時間位置關系要求苛刻的應用場合。
這反映BiSS對于編碼器精度的影響很小,有助于提高控制系統(tǒng)的高速特性。
6、組網能力,通過BiSS可以構成單總線傳感器環(huán)網,一個通信周期采集全部傳感數據,并且信號采集是同步的。
這反映BiSS的擴展性和前瞻性。
7、即插即用,BiSS支持從寄存器讀出編碼器參數,來配置數據通信。凡是支持BiSS標準EDS和Profile的編碼器和控制系統(tǒng)都可以直接通信,無需修改任何程序。
這反映了BiSS高度的開放性和兼容性。
4 BiSS通信協(xié)議的基本內容
1、組網方式
圖1是BiSS的基本組網方式,叫point-to-point方式。后續(xù)電子設備(圖中為PLC),通過差分信號向傳感器提供時鐘,傳感器同步地通過差分信號向后續(xù)電子設備發(fā)出傳感數據。在BiSS協(xié)議中后續(xù)電子設備被稱為Master,傳感器被稱為Slave。在point-to-point方式下,Master可以接收Slave的數據,同時與Slave進行雙向數據通信。
圖1 point-to-point組網
圖2 是BiSS的多從機組網方式,叫Multi-slave Networking。Master在一個周期可以內完成與多個Slave之間的通信。所有的設備按照菊花鏈首尾連接,每個Slave有兩個端口,分別用于接收前端信號和向后端發(fā)送信號。這是一種類似流水線的工作方式,每個Slave接收上一個Slave的數據放在自己的發(fā)送隊列隊尾,同時將自身的數據優(yōu)先發(fā)出。整個通信由Master發(fā)出的時鐘信號進行同步。Master通過MO信號將Actuator數據串行地移入到每個Slave,同時通過SL信號依次接收每個Slave的數據。
圖2 Multi-slave Networking組網
2、BiSS的幀結構和數據通信
圖3 描繪了point-to-point組網時的BiSS通信幀。MA由Master發(fā)出用于驅動通信,SL是Slave發(fā)出的數據信號。完成1個BiSS通信幀表示Master收到1幀數據。
圖3 point-to-point組網的BiSS幀結構
圖4描繪了Multi-slave Networking組網的BiSS通信幀,對于每一個Slave而言,不但要發(fā)送自己的數據,而且要接收并轉發(fā)前一個Slave發(fā)過來的數據。限于篇幅,不詳述Multi-slave Networking組網時的數據通信,有興趣的讀者可以閱讀BiSS-C-protocal C5版了解更多內容。
圖4 Multi-slave Networking組網的BiSS幀結構
BiSS通信過程可以描述為如下幾個狀態(tài)的切換:IDLE(空閑),Start Frame(幀開始),Tranmission(發(fā)送),Timeout(超時)。
IDLE,空閑狀態(tài);BiSS通信空閑,MA,SL保存常高。
Start Frame,開始幀通信:MA發(fā)送時鐘,在MA第一個上升沿,Slave鎖存?zhèn)鞲衅鳡顟B(tài)。在MA第二個上升沿,編碼器將SL拉低,用于應答Master的通信請求。
理想狀態(tài)下,SL拉低與MA第二上升沿的時延很小,在實際系統(tǒng)中,由于長線延遲、信號整形、濾波以及信號傳遞通過多級門電路等因素的綜合作用,SL相對MA信號存在一定的相移,造成SL拉低滯后MA第二上升沿一段時間,這個時間被稱為line-delay線路延遲,如果SL信號采樣電路不能修正這個延遲,那么總線的通信距離和通信速率都要降低,以保證SL信號被可靠地采樣。BiSS規(guī)定每個通信幀發(fā)起時都要檢測一次line-delay,并加以修正。從而確保BiSS通信波特率可以達到10Mbit/s。
在line-delay期間,MA持續(xù)輸出脈沖。
Tranmission,(發(fā)送):當SL信號從常高拉低后維持一段時間。這段時間叫ACK,表示Slave響應了MA信號,正在進行數據準備。通常ACK維持0.1us到8us之間,這與Slave數據是否準備就緒有關,對于特定的Slave,其ACK的長度是基本上是固定的。ACK期間MA持續(xù)輸出脈沖。當SL發(fā)送1個BIT的START位(常‘1’),表示Slave數據準備就緒。開始數據發(fā)送。
SL會順次發(fā)1個BIT的CDS信號,1個單周期字段(SCD);BiSS規(guī)定單周期字段長度要大于4個BIT,小于64個BIT。對于特定應用,字段長度由Slave廠商規(guī)定(例如:禹衡公司多圈編碼器的單周期位域包括16個BIT的多圈計數、17個BIT的單圈位置,2個BIT的錯誤告警和6個BIT的CRC校驗)。這個期間,MA持續(xù)輸出脈沖。
Timeout,(超時):當SCD發(fā)出完成后,SL維持0.5~40us的低電平,這個時間段被稱為Timeout,對于特定的應用,Timeout由Slave廠商規(guī)定。MA在Timeout期間發(fā)送CDM信號,該信號一直維持到SL被拉高,SL被拉高后,本次通信完全結束。
3、BiSS的寄存器通信
CDM和CDS是Master和Slave進行寄存器通信的信號。當Master與Slave進行個多個周期的數據通信后,Slave收到的Master發(fā)送的CDM序列和Master接收的CDS序列構成了BiSS寄存器通信幀,如下圖5所示。
圖5多個BiSS幀構成的寄存器通信序列
圖6、圖7描述了BiSS寄存器通信讀寫時序。通過時序圖,可以了解BiSS可以與編碼器進行雙向數據交換。BiSS的寄存器通信有CRC校驗,和讀回校驗(針對寫時序)。
BiSS的寄存器通信占用帶寬很少,對比EnData2.2和NRZ等有優(yōu)勢。這是由于伺服控制器初始化時讀編碼器參數情況多,正常工作時用戶通常只關注錯誤報警信息,BiSS將錯誤報警信息放在實時性高的數據通信中,把耗時的寄存器通信用CDS和CDM實現(xiàn),這種根據數據實時性設計不同的通信速率的方法,能夠大幅節(jié)約通信帶寬,有效降低通信時延。所以,使用BiSS編碼器能帶來更好的控制效果。關于BiSS寄存器通信的細節(jié),限于篇幅不再說明,有興趣的讀者請參閱BiSS技術筆記BiSS_AN11_appnote_A2en
5 BiSS通信協(xié)議的實現(xiàn)方法
1、 硬件解碼
對于采用硬件解碼的用戶,可以根據需要選擇IC-HAUS提供的解碼芯片,或者采用IC-HAUS提供的IP軟核進行解碼。也可以選擇帶有IP硬核的MCU。如果想利用IC-HAUS提供的IP軟核實現(xiàn)數據通信和寄存器兩種功能,需采用FPGA解碼。FPGA資源數需大于1300個LE(將BiSS與MCU的接口設置為SPI時的編譯的結果)或等效資源數。如果僅想實現(xiàn)數據通信,可以采用CPLD解碼。CPLD資源數需大于96個LE(增加時鐘分頻電路和SPI接口后需150個以上的LE)或等效資源數。自行設計的難點是線延遲的處理,對于外引線很短或無外引線的應用,線延遲的變化很小,這時可以設計延遲固定的采樣時鐘,否則每個周期要進行一次線延遲補償。
2、 軟件解碼
用戶可以通過IO模擬的BiSS時序,但這種方法不推薦使用。推薦使用MCU的硬件外設解碼,這樣能夠將BiSS通信速度設定很高。而且節(jié)約了外部邏輯電路的成本,對于很多應用,節(jié)約的成本十分可觀,同時對于產品的系列化有優(yōu)勢。一個功能強大的通用串行解碼模塊,采用不同的解碼程序應該能夠支持多種串行通信協(xié)議、全雙工、半雙工等等。例如:對于BiSS可以利用SPI的SCK可以用來模擬MA,MISO可以模擬SL。這樣用需考慮三個問題:
1、 MCU硬件模塊的FIFO深度。有些MCU,外設的SPI寄存器長度是固定的,完成一幀BiSS通信需通信多次,中斷多次。結果造成MA的波形不連續(xù)。這可能帶來問題,造成通信出錯。
2、 MCU硬件模塊是否具備線延遲補償的能力。具有線延遲補償能力的外設,可以應對實際應用環(huán)境的變化帶來的影響,可以是需求的變化,環(huán)境的變化,線路老化等等。具有線延遲的系統(tǒng),其可靠性和適應性比沒有線延遲補償的系統(tǒng)高得多。
3、 CRC解碼能力,CRC校驗對MCU的處理能力提出了要求。
使用MCU進行解碼要充分考察不同MCU外設的特點和處理能力,以及芯片廠家技術支持的力度,是否有成熟的設計等等。
3、 混合解碼
如果既想利用硬件解碼,又想降低成本。可以使用混合解碼的方法。例如用FPGA或CPLD的部分資源完成數據通信,將CDM和CDS信號引出交給MCU處理。這種方案是一種過渡性質的方案,同時也是很實用的做法。需要注意的是,CDM必須在通信發(fā)起前準備好。隨著MCU和FPGA的發(fā)展。這種方案會逐漸淘汰,以降低系統(tǒng)之間的耦合性。
4、 BiSS通信幀實例
圖8給出了BiSS通信幀的實例,幫助讀者直觀地了解BiSS通信過程。
圖8:BiSS通信幀實例
6 BiSS-C絕對式級聯(lián)光柵編碼器組網方式
圖1 是BiSS-C絕對式級聯(lián)光柵編碼器,采用級聯(lián)方式進行組網,稱為Multi-slave Networking。Master(后續(xù)電子設備,主控模塊)在一個周期可以內完成與多個Slave(光柵編碼器)之間的通信。所有的設備按照菊花鏈首尾連接,每個Slave有兩個端口,分別用于接收前端信號和向后端發(fā)送信號。這是一種類似流水線的工作方式,每個Slave接收上一個Slave的數據放在自己的發(fā)送隊列隊尾,同時將自身的數據優(yōu)先發(fā)出。整個通信由Master發(fā)出的時鐘信號進行同步。Master通過MO信號將Actuator數據串行地移入到每個Slave,同時通過SL信號依次接收每個Slave的數據。
圖1 Multi-slave Networking組網
圖2描繪了Multi-slave Networking組網的BiSS通信幀,對于每一個Slave而言,不但要發(fā)送自己的數據,而且要接收并轉發(fā)前一個Slave發(fā)過來的數據。以Slave3為例,在收到第二個MA上升沿后,其輸出SLO3拉低,響應MA,此位應答(ACK)階段;經過時間T(光柵編碼器數據準備時間),SLO3拉高,表示輸出數據(Start);一個MA周期后開始發(fā)送數據。在發(fā)送數據過程中,接收MA輸出的數據(MAO)。SLO3先發(fā)自身采樣到的數據,然后轉發(fā)收到的MAO值,直到MA不再輸出時鐘。
圖2 Multi-slave Networking組網的BiSS幀結構
7 BiSS-C光柵編碼器2級級聯(lián)結構
客戶提出是應用場景是在不改變原來驅動控制系統(tǒng)硬件系統(tǒng)和架構前提下,新增一個或多個光柵編碼器對系統(tǒng)參數進行采集。針對客戶的需求,我公司提出了兩個光柵編碼器級聯(lián)架構的解決方案。具體結構如圖3所示。
圖3 BISS-C光柵編碼器2級級聯(lián)結構圖
圖3中Master是驅動控制系統(tǒng),為光柵編碼器1提供電源(VCC,BAT)、控制時鐘(MA)及接收光柵編碼器1的數據(SLO),與點對點組網方式下接口完全一致。光柵編碼器1為光柵編碼器2提供電源(VCC,BAT)、控制時鐘(MA)及接收光柵編碼器2的數據(SLO),可以認為光柵編碼器2為光柵編碼器1的slave。
從上述分析可以看出,除了最高一級的光柵編碼器,其他光柵編碼器不與master相連,且若新增一個光柵編碼器級聯(lián),只需將其連接在最后一級光柵編碼器的輸出端,完全不改變其他光柵編碼器的走線與連接,這就極大的方便了整個驅動系統(tǒng)的布局與走線。
8 通信過程
圖4展示了BiSS-C級聯(lián)光柵編碼器的通信過程。Master為伺服驅動控制器,芯片為Actel IGLOO系列AGL600V5,256管腳。光柵編碼器1為一33位多圈絕對式光柵編碼器,光柵編碼器2為17為單圈絕對式光柵編碼器。Master每隔1ms讀取一次數據。示波器抓取的光柵編碼器靜態(tài)數據如圖4所示。黃色線為Master發(fā)出的控制時鐘(MA),藍色線為光柵編碼器1數據輸出端口輸出時序(SLO1),紅色線為光柵編碼器2數據輸出端口輸出時序(SLO2)。從圖4可以看出,在驅動器發(fā)出控制時鐘后,光柵編碼器1首先輸出自身數據(33位數據,到a光標傳輸完成),接著傳輸接收到的光柵編碼器2數據(17位,到b光標處傳輸完成),數據傳輸完成后一直拉低直到MA時鐘取消。
9 結束語
BiSS-C協(xié)議通信速度快,通信效率高,支持線路時分復用,可全雙工通訊,延時小且固定,極大簡化了線延時補償算法。BiSS-C采用多種CRC校驗機制確保數據可靠,傳感器數據與寄存器數據分開進行校驗,使得BiSS-C傳輸更可靠,多達16位CRC足以應付絕大多數場合。BiSS-C協(xié)議多種組網方式極大豐富了其應用領域,其BUS級聯(lián)組網方式因以下優(yōu)勢得以在工業(yè)機器人領域廣泛被應用:
1、減少了主控系統(tǒng)接口數量;
2、降低了主控系統(tǒng)數據解析復雜度;
3、簡單方便的組網方式降低布線難度,優(yōu)化結構;
4、固定的線延時方便了控制器補償設計。
由于上述優(yōu)勢BiSS-C絕對式級聯(lián)光柵編碼器級聯(lián)解決方案在工業(yè)機器人領域的應用會越來越廣泛。