?

輕量一體化機器人關節的SPI通信及EtherCAT通訊研究

2019-08-30 01:56宋孫浩鄭天江陳慶盈楊桂林
制造業自動化 2019年8期
關鍵詞:驅動器數據包控制器

宋孫浩,鄭天江,張 馳,陳慶盈,楊桂林

(中科院寧波材料技術與工程研究所,寧波 315201)

0 引言

近年來工業機器人已經成為“制造業皇冠上的明珠”,被越來越多地應用在制造業等領域,然而傳統的工業機器人不具備本質安全以及與人協同工作等能力,因而研發輕量化協作式機器人已成為機器人研究的熱點。為了提高負載載重比以及輕量化的特征,協作式的機器人往往具有模塊化的結構和緊湊的設計、安裝和調試空間,其軟硬件的設計十分重要。在協作式的一體化機器人中,往往電機直接安裝于運動部位,因而通常需要采用分布式通訊,而通訊的實時性則是制約機器人運動控制性能的關鍵。

近年來,實時工業以太網技術的快速發展為解決傳統運動控制器控制問題提供了良好的解決方案。EtherCAT(Ethernet for Control Automation Technology)總線是德國倍福公司提出的一種實時以太網技術,它于2007年成為國際電工委員會IEC的61158標準[1]。EtherCAT具有系統配置簡單、拓撲結構靈活、良好的實時性和傳輸速度快等優點,解決了數據的長距離高速傳輸和信號干擾等問題[2]。EtherCAT總線對標準的以太網技術進行了優化,其有效數據率可達90%以上,同時還具有良好的同步性,同步精度可小于1us,使得運動控制性能得到了極大的提升?;贓therCAT工業以太網的運動控制系統已成為當前工業現場控制總線技術的一個重要發展方向[3]。

現有的輕量化機器人設計要么采用了CAN總線等技術進行通訊,要么購買標準的EtherCAT商業化模塊。采用CAN總線的問題是通訊速率比較低,采用商業的EtherCAT模塊的機器人更注重的是機器人的系統集成,缺乏自主設計能力,并且商業化的軟件和硬件無法自行更改設計和定制。本文針對輕量一體化機器人關節模塊的通訊技術進行了研究,機器人關節采用模塊化設計,并且驅動模塊和控制模塊分離,便于系統軟硬件的開發和維護。本文重點研究了控制模塊和驅動模塊的實時通訊問題以及關節模塊間的通訊問題,針對驅動模塊和控制模塊提出了一種新型的SPI總線通訊方法,針對關節之間的實時通訊問題,自主設計了實時性較強的EtherCAT模塊,并研究了其實時性。經過實驗驗證,本文提出的SPI通訊方法,收發速率快,每幀可傳輸10個Word數據,通訊丟包率低,本文設計的EtherCAT模塊實時性強,可靠性高。

1 運動控制器整體結構設計

本設計系統采用“PC+運動控制器”的模式來構建機器人運動控制系統,實現高速高精度運動控制功能,原理框圖如圖1所示。與傳統的驅控方案不同,本文的控制器和驅動器之間采用高速SPI總線通信,控制器可以實時給驅動器發送電流指令和速度指令,同時接收驅動器反饋的電流、編碼器和電機速度等數值。

控制系統硬件主要由基于PC的EtherCAT主站和基于EtherCAT從站ESC的運動控制器組成,采用DSP作為運動控制器的主控芯片,其通過SPI總線與伺服驅動器進行數據交互并控制電機的運轉。

圖1 基于EtherCAT的運動控制器原理框圖

由于一體化關節機器人內部空間的限制,我們對其進行了小型化設計??刂破鞯恼w硬件架構如圖2所示。

圖2 運動控制器硬件架構圖

DSP芯片選用32位實時浮點處理器TMS320F28335,其工作頻率高達150MHz,片上資源豐富,能夠實現復雜的控制算法。整個運動控制器可分為兩大部分:運動控制部分和EtherCAT通訊模塊。EtherCAT通訊模塊包括從站專用芯片ET1100、PHY芯片KS8721、網絡變壓器H1102和RJ45網口等。DSP和ET1100之間采用同步16位微控制器接口方式來傳輸過程數據[4]。運動控制部分包括電源模塊、存儲模塊、AD模塊、DA轉換和信號放大模塊、JTAG接口、外部中斷口、通用I/O接口、差分接收模塊以及SPI板級連接端口等。DSP通過DAC芯片和精密運算放大器電路可輸出±10V模擬電壓。編碼器輸入信號通過差分接收芯片轉換后可直接輸入DSP端口進行采集??刂破鞯腟PI端口通過LVDS差分收發器轉接后,與驅動器的SPI端口進行全雙工通信??刂破靼l送電流指令或控制指令給驅動器,同時接收驅動器反饋的電流值以及電機端編碼器值等數據,從而實現控制器和驅動器之間的高速實時數據傳輸。

2 自定義SPI通信協議設計

與傳統的控制器發送模擬量或PWM信號給伺服驅動器以控制電機運轉不同,在本文的運動控制系統中,為了實現模塊化設計并提升控制性能,將控制器與驅動器的接口做了改進,采用SPI總線進行通信,并使用了自定義SPI通信協議實現驅控之間的高速數據傳輸。

在本文的SPI通信系統中,SPI主設備為控制器,SPI從設備為驅動器,每次傳輸一幀數據包,傳輸過程中SPI主設備和從設備進行雙向應答。傳輸模式可以分為常規模式和調試模式,數據傳輸長度為10個Word,包括1個幀頭,7個數據和2個CHKSUM校驗值。SPI主從設備采用DMA方式傳輸數據,SPI主設備和SPI從設備的接口端都配有LVDS差分收發器,延長了SPI通信距離,增強了抗干擾性能。SPI主從設備通信框圖如圖3所示。

圖3 SPI主從設備通信框圖

2.1 SPI主從設備通信機制

傳統的SPI通信由一個主設備和一個從設備組成,使用四條線:串行時鐘信號SCK、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和從機片選信號CS,并沒有一個有效的通信協議確保其通信的穩定性。在本文設計的SPI通信系統中,增加了應答信號線ACK、復位信號線RST和異常反饋信號線ABN,如圖3所示,以完善SPI應答機制。

其中,一幀完整的數據包括:數據包幀頭標識(HeadWord)、數據長度、通信數據序列和CRC校驗值。SPI主設備和從設備的發送數組都有兩組,采用雙緩沖發送模式。SPI主從設備的通信示意圖如圖4所示。

圖4 SPI通信示意圖

待發送數據包可分為常規數據和調試數據,二者對應的幀頭不同。采用常規模式時,SPI主設備可發送電機命令代碼、期望電流、速度和位置等數據;在控制器進入調試模式時,可發送PID微調參數,以改善驅動器電流環性能。

待接收數據包亦可分為常規數據和調試數據。SPI主設備正常通信時,可接收電機的運行狀態參數、反饋電流、編碼器值和速度值等數據。如果啟動了控制器調試模式,則切換到調試數據,此時會將驅動器的PID參數和其他狀態值反饋給控制器端。

2.2 SPI主從設備之間采用單線應答機制。

當一幀數據傳輸完畢時,SPI從設備端發送ACK應答正確信號給主設備,SPI主設備端收到應答信號后,繼續進行下一幀數據的傳輸。如果SPI主設備收到ACK應答錯誤信號,則重新發送該數據包。

SPI主設備每次都會對發送數據包進行CRC校驗,并生成兩個校驗值:CHKSUM1和CHKSUM2。主設備端在構建發送包時,計算得到兩個CHKSUM值,接收端在接收數據包時重新計算一輪,得到的結果與收到的兩個CHKSUM值做比較,不一致時作出處理。同樣,主設備在接收從設備反饋的數據包時,也會進行接收數據包CRC校驗,生成校驗值并做比對處理。

2.3 SPI通信異常處理機制

為保證數據傳輸的準確性,增加了異常處理機制。當連續10次收發數據幀的過程中,若SPI從設備的數據接收端出現任意3次及3次以上CRC校驗錯誤,則說明SPI通信不穩定。此時SPI從設備需通過異常反饋信號線ABN給SPI主設備發送報警信號,SPI主設備收到ABN報警信號后通過RST信號線給SPI從設備發送復位信號,同時對SPI主設備和SPI從設備進行軟復位,重新開始數據傳輸,并將通信不穩定的次數保存到EEPROM以備 追溯。

2.4 SPI雙機通信性能測試

在本文的運動控制器中,SPI傳輸速率、通信延遲以及穩定性對整體性能有著至關重要的影響。SPI通信采用DMA方式傳輸數據,以降低MCU的工作負荷。SPI通信程序使用了DSP定時器CPU-Timer 0.

經過實測,一體化機械臂單個關節所有程序的完整運行時間大約為140us,包括SPI雙機通信、EtherCAT通信、CiA402協議處理、運動控制算法和機器人軌跡規劃、絕對式編碼器數值讀取、傳感器信號采集和I/O處理等所有程序時間。為提高SPI通信速率,我們將Timer 0周期設為125us,SPI雙機通信程序每個周期都運行,控制器其他程序則分成兩個周期來運行。這樣,SPI通信速率為8kHz,整個控制器的刷新速率(EtherCAT從站速率)為4kHz,即以250us刷新一幀EtherCAT數據,預留了44%(110us)的裕量。整個運動控制器的運行周期如圖5所示。

圖5 控制器運行周期

為了驗證SPI雙機通信的性能,我們對控制器和驅動器分別進行了SPI透傳測試和帶電機測試,測試實物圖如圖6所示。

圖6 運動控制器與電機調試圖

測試條件如下:

1)SPI時鐘頻率為9.375MHz,SPI程序的運行周期為125us;

2)EtherCAT從站運行周期250us,啟用DC同步時鐘模式;

3)控制器發送正弦電流,頻率為1kHz。

本測試使用了自定義的SPI通信協議,驅動器在收到控制器的SPI數據包后需要進行數據類型和幀頭的判定處理,并在下一個周期將數據回發給控制器。透傳測試結果如圖7所示,藍線為控制器給驅動器發送的正弦電流值,紅線為驅動器將收到的數據直接反饋給控制器。圖7所示的SPI透傳測試實際延遲為1個定時器周期,與設定的預期目標吻合,達到了較為理想的傳輸 效果。

圖7 控制器和驅動器SPI透傳測試

帶電機負載測試時,控制器將正弦電流發送給驅動器以控制電機的運轉,驅動器將電機端電流值實時反饋給控制器。測試曲線如圖8所示。

圖8 控制器和驅動器SPI帶電機測試

在本測試中,控制器還使用了在線調試功能,通過調試模式對驅動器的電流環PID等參數進行了多次微調。如圖8所示,藍線為控制器發送的正弦電流值,綠線為第1次參數微調后的反饋電流值,紅線為第2次微調后的反饋電流值。相比較而言,第2次微調后的電流值相位延遲更小,驅動器的帶寬性能更好。實測速度響應帶寬可達1kHz,可以滿足機器人運動控制的需求。

2.5 SPI通信誤碼率測試

在運動控制系統中數據通訊越來越重要,評估誤碼率是評判傳輸系統性能的最終標準。為了驗證SPI傳輸的可靠性,我們對SPI通訊系統進行了誤碼率測試。

整個測試在CCS5.4集成開發環境下進行,使用XDS100V3仿真器在線連接運動控制器并記錄參數值,實測結果如圖9所示。在電機轉速為1800 RPM時,SPI發送成功的數據包為473394個,只有1個數據包發送錯誤,誤碼率低于3×10-6,證明了采用自定義協議的SPI通信可靠性很高,非常適用于控制器和驅動器之間的高速數據傳輸。

圖9 SPI通信誤碼率測試

3 CiA402協議在運動控制器中的實現

要研究控制器的伺服控制性能,首先要在其內部實現CANopen伺服運動控制行規CiA402協議。CiA402在運動控制器代碼上的實現可分為三個部分:CiA402狀態機、CiA402對象字典和CiA402應用程序。

CiA402定義控制設備的狀態機切換如圖10所示。該狀態機根據電壓級別分為三個區域:A區為低電壓區,B區為高電壓區,C區中伺服系統處于運行狀態,此時電機有輸出電流,可啟動力矩模式。在本文的運動控制系統中,A區采用DC 24V,用于給控制板、驅動板和電機制動器等部件供電;B區為電機工作電壓,采用DC 48V供電;在控制板中設計了力矩傳感器接收端口,可實時采集機器人關節反饋的力矩信號值。

圖10 CiA402狀態轉換圖[5]

CiA402的應用程序支持多種運行模式,在本設計中同時采用了兩種運動控制模式,分別是周期性同步速度模式CSV和周期性同步位置模式CSP,可通過EtherCAT上位機主站修改模式參數進行切換。這樣即可根據機器人控制系統的算法負荷及運行需求合理選用對應的模式,靈活分配任務,提升了控制器性能。在本運動控制器中,嵌入CiA402協議對象字典中配置了24個字節的RxPDO和32個字節的TxPDO,用于實現CSV/CSP伺服運動控制。

4 EtherCAT從站同步性能研究

4.1 EtherCAT從站同步功能的實現

EtherCAT在周期性數據通信模式下,主站和從站之間有三種同步運行模式,分別是:1)自由運行(Free-run);2)同步于數字輸入或輸出事件;3)同步于分布時鐘同步事件(DC-Sync)[6]。

為了更好地提升EtherCAT同步性能,本文控制器采用了優化的SYNC0運動控制周期設計。EtherCAT數據幀比SYNC0同步信號提前T1時間到達,從站在SYNC0中斷產生前已對EtherCAT數據和控制計算做預處理,接到SYNC0中斷后可立即執行其他運動控制操作,從而使同步性能更佳。

為實現上述效果,本文采用了雙定時器方式實現SYNC0中斷和SM2中斷相對位置固定偏移的調節方式,實測運行周期的波形如圖11所示。

圖11 SYNC0和控制器周期波形

在本設計中,EtherCAT從站周期設置為250us,主站SYNC0同步時鐘周期默認為500us(最快可達250us),一個主站DC周期對應兩個從站周期,從站數據包可以刷新兩次,最大程度地降低了數據丟包率,提升了主/從站的數據同步性。

圖11中的T1為DSP芯片從ET1100復制數據并計算輸出數據的預處理時間。在本控制器中需要實時刷新的PDO數據為12個Word,每個數據的讀寫時間大約為1.3us,所以我們把T1設定為20us,預留了一定的緩存時間。在控制器的DSP主程序中使用了兩個定時器:CPUTimer 0和CPU-Timer 1。其中,將Timer 0設定為主定時器,Timer 1用作輔助定時器。

在運行程序時,將Timer 1設定為20us,并首先啟動Timer 1定時器,觸發SM2中斷,進行DSP和ET1100芯片的數據計算和控制交換。Timer 1執行完畢,則以SYNC0中斷為觸發信號,啟動Timer 0中斷。Timer 0周期設定為125us,以250us即每2個Timer 0周期刷新一幀EtherCAT數據。經過主站時鐘同步到參考從站時鐘算法處理,SYNC0中斷和SM2中斷的相對位置偏移不再變化,即EtherCAT主站時鐘已經同步到參考從站時鐘,實現了優化的同步于SYNC0運行周期的效果。

4.2 EtherCAT從站同步性能測試

EtherCAT從站的DC時鐘同步性能對于機器人運動控制系統的多軸精準控制有著至關重要的影響。因此,在實際項目的測試中,我們級聯了7個運動控制器、驅動器和電機等,用以實現七自由度的一體化關節機器人的控制系統,如圖12所示。

圖12 七軸關節電機測試圖

首先,我們測試了第1軸和第7軸關節控制器之間的SYNC0中斷時間間隔,其代表了整個從站系統DC中斷的最大時間差值。測試條件如下:

1)本文采用了基于Linux系統的開放式PC機作為上位機,通過加入RTAI內核實時補丁以提高Linux操作系統的實時性,EtherCAT主站采用商業版的主站軟件安裝于操作系統,主站啟動DC-Synchron操作模式,SYNC0對應的Cycle Time設定為500us.

2)從站運行在CSP模式下,控制周期設定為250us,用500MHz混合域示波器對其DC時鐘信號線SYNC0進行周期測量,并比較第1個從站和最后一個從站之間的SYNC0信號觸發時間間隔。

根據圖13和圖14的示波器測量結果,第1軸和第7軸控制器從站的DC周期均500us,非常準確。第7軸控制器比第1軸控制器的SYNC0中斷時間滯后88ns,即整個控制系統中7個從站的分布式時鐘同步精度小于100ns,能夠滿足實時運動控制的需求。

圖13 控制器SYNC0中斷時間間隔

圖14 從站之間SYNC0中斷最大時間間隔

4.3 EtherCAT從站同步性能測試驗證

為了進一步驗證EtherCAT DC同步模式的性能,我們采用了Free-run和DC-Sync兩種模式對主站和從站的第7軸進行了數據傳輸測試,測試結果如圖15和圖16所示。其中,藍線為主站發送的數據包,紅線為第7軸從站反饋的數據包。圖15為Free-run模式測試結果,圖16為DC-Sync模式測試結果,兩幅圖的左邊部分均為測試曲線的局部放大圖。

圖15 Free-run模式數據傳輸曲線

從測試結果來看,在Free-run模式下,第7軸從站反饋的數據會產生延時,實測大約延遲1~2個主站控制周期;而在DC-Sync模式下,由于做了優化的控制周期處理,反饋數據和發送數據實現了周期性同步,在一個主站DC周期內沒有延時。由此可見,DC-Sync模式經過優化后很好地解決了EtherCAT數據的同步性問題,有效提升了運動控制器的實時性能。

圖16 DC-Sync模式數據傳輸曲線

5 結語

本文設計了一款基于EtherCAT總線的運動控制器用于一體化機器人關節模塊,其采用自定義SPI通信協議,實現控制器與驅動器的高速可靠數據傳輸。同時,還對控制器和驅動器、電機進行了聯調測試,實測速度響應帶寬可達1kHz。本控制器嵌入了CiA402伺服運動控制協議,并通過研究EtherCAT同步時鐘優化技術,提升了運動控制效果。測試結果表明,本運動控制器運行穩定,實時性強,能夠支持多種運動控制模式,很好地滿足了多軸機器人實時高速控制的需求。

猜你喜歡
驅動器數據包控制器
二維隱蔽時間信道構建的研究*
工商業IC卡控制器改造為物聯網控制器實踐
氣動網絡多腔室彎曲軟體驅動器結構優化
民用飛機飛行模擬機數據包試飛任務優化結合方法研究
藏起驅動器號確保數據安全
PLC可編程控制器相關外置的選擇計算研究
C#串口高效可靠的接收方案設計
空間大載荷石蠟驅動器研制
模糊PID控制器設計及MATLAB仿真
Freescale公司的可編程電磁閥控制器MC33816
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合