摘要:為了配合EtherCAT協議在機器人控制系統上的使用,本文提出了基于COMX和STM32的機器人伺服控制器解決方案。介紹了COMX模塊的功能及結構,設計了基于FSMC的接口電路來控制COMX,并設計了COMX驅動和伺服控制器的應用軟件。zui后搭建實驗平臺以測試通信功能和分析轉發延時,驗證了本方案的可行性。
關鍵詞:
機器人;伺服控制器;EtherCAT;STM32;COMX
引言
目前,機器人控制系統的研究重點在開放式、模塊化控制系統等方面,機器人控制器的標準化和網絡化已成為研究熱點;同時,機器人伺服控制器的研究也具有很大的應用價值。在伺服通信方面,傳統的基于模擬信號傳輸的集散控制系統需采用數/模轉換器,系統構成復雜、分辨率低、可靠性得不到保障且難以擴展。為了解決此問題,本系統采用實時工業以太網EtherCAT協議作為機器人伺服系統的底層協議,同時構建伺服從站控制器。實時以太網技術簡化了一般總線的互操作性和實時性等方面的問題,能滿足控制網絡傳輸的實時性要求,EtherCAT工業以太網技術以其網絡實時性高、速度快、拓撲結構靈活等優點得到廣泛關注。本控制器采用德國赫優訊公司開發的嵌入式實時以太網模塊COMX來完成EtherCAT通信的功能,采用STM32系列單片機(以下簡稱STM32)為主控制器,由STM32來控制電機和COMX的工作流程。
1、COMX介紹
嵌入式實時以太網模塊COMX-CA-RE是德國赫優訊公司開發的特殊網卡,支持所有主流的實時工業以太網協議(EtherCAT、PROFINETIO、Ethernet/IP、Power-Link、SereosIII、ModbusTCP等)。其協議棧設計成可裝載的固件存儲在Flash中;在系統啟動時,COMX模塊會自動裝載保存在Flash中的協議固件。COMX模塊使用netX500網絡控制芯片,主機通過雙端口內存DPM接口來進行數據交互,通過對DPM讀和寫來實現網絡通信及模塊控制。COMX結構框圖如圖1所示。
COMX模塊與主機交互的接口是雙端口內存DPM,DPM是netX500控制器和主機之間共享的存儲區,應用程序通過DPM來實現EtherCAT數據通信、netX系統配置和診斷信息的獲取。在使用COMX模塊進行通信時,主要完成主機對DPM操作程序的編寫以及握手標記的設置等。EtherCAT網絡上的數據是實時地映射到DPM的,同時應用程序通過DPM來發送和接收數據,整個DPM區域是16KB的地址空間。
2、硬件設計
本伺服控制器主要用于機器人伺服節點通信、關節電機的控制、I/O控制,以及傳感信息的采集。主要硬件由COMX和STM32來組成。其中COMX負責EtherCAT通信,STM32采用FSMC機制來讀寫COMX。STM32是從站的伺服控制器主控芯片,主要進行電機控制和A/D、D/A轉換模塊的控制,以及負責管理COMX模塊的運行流程。其中,伺服通信功能是基于EtherCAT協議進行組網來達到各模塊互聯和數據交換的目的,這樣便于伺服節點的擴展和硬件結構的設計;電機控制方面,采用RS485接口控制SR518數字舵機;STM32的I/O口用于基本的輸入/輸出功能;A/D通道可以連接傳感設備用于機器人的感知,D/A通道用于對語音、電流等模擬量的輸出;RS232是開發過程中的調試接口。其硬件結構框圖如圖2所示?! ?div style="text-align: center">
STM32采用FSMC機制控制COMX,將COMX映射到STM32的內存空間中,對COMX的讀寫方式與讀寫SRAM相同。嵌入式模塊COMX通過一個50引腳插槽來連接主控芯片,插槽包含了與主機通信*的控制線總線、16位數據總線和14位地址總線等。COMX與STM32的硬件電路如圖3所示。COMX內存映射到FSMC的*個存儲塊的第4個分區中,起始地址為0x6C000000,并且采用8位數據寬度來讀寫DPM存儲區。
3、軟件設計
3.1軟件結構
基于COMX的伺服控制器的軟件框架如圖4所示。伺服系統的主控芯片是STM32,在軟件上采用了ST公司開發的底層固件庫來操作硬件接口。在本系統中,主要有RS485通信模塊、COMX驅動模塊、A/D轉換模塊、D/A轉換模塊以及I/O模塊。系統中通過COMX來實現EtherCAT通信,采用RS485來控制SR518舵機,同時采用這些模塊的API來構建伺服驅動的應用程序。
3.2COMX驅動設計
COMX驅動的執行流程,在硬件電路連接好的前提下,主要任務是寄存器的配置及通信流程的控制。首先,要配置STM32的相關引腳,將與COMX相關的數據線、地址線、片選線和讀寫信號線全部設置成復用推挽輸出模式;然后,設置FSMC的相關寄存器,配置FSMC時鐘、時序邏輯、讀寫模式、數據寬度等;接著,就是COMX啟動檢測階段,由于COMX是獨立網卡,內部有獨立的系統,只有在它內部系統運行就緒后才能正常通信,這就需要檢測COMX提供的一些標志寄存器的相關位,以此來判斷內部系統的狀態;zui后,等COMX一切就緒后就可以正常通信,執行讀寫操作。
COMX是獨立的網卡設備,通過加載不同的固件程序,來實現各種實時以太網通信協議,本系統中使用的是EtherCAT從站協議。在COMX使用之前,要保證固件程序下載到Flash中,同時配置文件也要保存在Flash中。
COMX上電啟動時,會自動加載運行固件,并讀取配置文件。下載固件時要使用赫優訊公司配套的PCI板卡和cifXTest軟件工具,配置文件的下載需要用SYCON.net工具,具體步驟可以查看參考文獻。當固件程序和配置文件下載完畢后,就可以使用COMX網卡了。
3.3COMX讀寫操作實現
COMX讀寫模式是基于緩沖的握手方式,在DPM中,主機和netX500系統通過握手標記來劃分DPM的數據讀寫權限,這些握手標記在握手通道中。每個通道都有一對CMD和ACK標記位,當這兩個標記位相同時,主機可以寫相應的DPM區域;當不同時,主機可以讀相應的DPM區域。COMX發送數據的過程如圖5所示。
根據以上分析過程,可以設計出COMX發送數據的驅動程序,其執行流程如圖6所示。
COMX接收數據的過程如圖7所示。根據以上分析過程可以設計出COMX接收數據的驅動程序,其執行流程如圖8所示。
3.4伺服控制器軟件流程
伺服從站控制器在啟動后會初始化COMX模塊,然后等待COMX就緒。在控制過程中首先會通過數據發送電機的設置參數,在參數設置完成后就會發送過程命令來啟動電機控制,然后進入電機控制循環。在電機控制過程中可以使用數據發送命令來停止電機控制,在沒接到停止命令時會循環接收命令,解析后用于控制電機,直到控制結束。伺服從站控制器的程序流程如圖9所示。
4、實驗測試
本系統主要進行的實驗如下:其一,對COMX伺服控制器的協議兼容性測試;其二,對COMX伺服控制器轉發延時的測試。針對以上測試需求,搭建了相應的測試平臺。在PC平臺上安裝netANALYZER應用軟件和Wireshark軟件。其中netANALYZER用于數據抓取和時間分析;Wireshark用于數據報分析和時間抖動分析。在主站上使用德國赫優訊公司的cifX50-RE網卡和SYCON.net軟件,在從站上使用STM32和COMX開發的伺服控制器。采用netANALYZER分析卡抓取數據包,并采用Wireshark軟件分析數據,這樣就可以測試通信的兼容性和功能的實現。同時也可以采用netANALYZER分析卡的時間分析功能去測試控制器的轉發延時。為了分析總線在不同壓力下的轉發延時,進行了一組數據的測量,并轉換為曲線。如圖10所示,從站的轉發延時基本不變。由于總線從站采用了硬件FMMU的映射機制來獲取數據,這一過程延時很短,而且每個從站只處理與自己相關的數據,因此在轉發過程中數據的增加基本不影響轉發延時。
5、結語
機器人伺服控制器是機器人組成的關鍵部件,在使用EtherCAT作為機器人控制協議時,需要關節控制器能兼容EtherCAT通信。為了解決這個問題,本文設計了基于COMX和STM32的伺服控制器,從軟件和硬件兩方面進行了設計,同時實現了基于FSMC接口的COMX驅動以及EtherCAT通信過程。zui后,采用測試工具分析了伺服控制器在不同BusLoad下的轉發延時,通過實驗分析驗證了基于COMX模塊的伺服控制器方案的可行性。