為了在運動控制系統中實施高性能的EtherCAT總線,我們選用賽靈思公司(Xilinx)推出的行業第一個全可編程SoC產品ZYNQ-7000,它將雙核ARM Cortex-A9處理器,低功耗可編程邏輯以及常用的外設緊密集成在一起。Zynq-7000可編程 SoC (AP SoC) 器件集成了ARM處理器的軟件可編程性與FPGA的硬件可編程性的特點,可實現各種各樣靈活而高效的運算。兩者的結合是開發EtherCAT高性能主站的一種可靠實施方案。主站基于XC7Z020器件,可以運行基于Linux,Android,WinCE或其他嵌入式OS/ RTOS等操作系統。
首先基于ZYNQ-7000硬件平臺,運用系統模塊化設計方法對EtherCAT主站進行總體方案規劃,然后基于電子設計平臺Vivado設計主站的硬件工程,接著在CPU0上搭建Fre-eRTOS操作系統,在此基礎上移植了開源主站庫(SOEM-1.3.3),并對網卡驅動進行優化,最后建立了EtherCAT主站測試系統。主站的周期通信時間約為40μs,通信抖動為納秒級,具有很高的實時性和穩定性。
根據基于ZYNQ的EtherCAT主站的功能特點,我們把ACB720系列產品再分成3類:
(1)主控采用單核版本的ZYNQ,這是低成本方案,運行FreeRTOS,其中優先級最高的任務是EtherCAT主站,其余為UDP服務器等,外設為兩個以太網口和I/O口若干。
(2)主控采用XC7Z010,這是雙核版本,由于FPGA資源非常豐富,因此嵌入式的主頻不需要很高。其中,CPU0運行EtherCAT的Bare Metal程序;CPU1運行FreeRTOS,UDP服務器程序,負責接收游戲數據和收發平板數據,雙核通過共享內存方式通信。外設為兩個以太網口和I/O若干。
(3)主控采用XC7Z020,這是雙核版本,屬于高端方案,選用較高的主頻。CPU0運行EtherCAT的Bare Metal程序;CPU1運行Linux,Linux負責UDP服務器和GUI,雙核之間采用共享內存通信或者雙核采用SMP架構,運行RTLinux(具體方案以性能而定)。外設為兩個以太網口,一個視頻輸出接口,兩個USB接口和I/O口若干。對成本敏感的產品可以用方案(1),如果希望和倍福主站性能媲美的產品可以選擇方案(3)。