EtherCAT简介
EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议,用于在工业自动化领域中进行实时控制和通信。它是由德国Beckhoff自动化公司在2003年开发的,并被国际电工委员会(IEC)标准化为IEC 61158标准。
EtherCAT的设计目标是实现极低的通信延迟和高带宽的数据传输,以满足高速控制和数据采集的需求。它通过一种特殊的主从架构实现,其中一个主站(Master)负责协调整个网络,而从站(Slave)则负责提供输入输出功能
EtherCAT由一个主站设备和多个从站设备组成。主站设备使用标准的以太网控制器,具有良好的兼容性,任何具有网络接口卡的计算机和具有以太网控制的嵌入式设备都可以作为EtherCAT的主站。对于PC计算机而言,主站控制器多采用倍福开发的TwinCAT软件。EtherCAT从站使用专门的从站控制器(ESC),如专用集成芯片ET1100和ET1200,或者是利用FPGA集成EtherCAT通信功能的的IP-Core。EtherCAT物理层使用标准的以太网物理层器件,如传输介质通常使用100BASE-TX规范的5类UTP线缆。
在EtherCAT网络中,主站和从站之间的通信是实时的、高效的和可靠的。主站通过广播方式将命令和控制数据传输到所有的从站,从站接收到相应的数据后进行处理并发送响应。这种并行处理的方式使得EtherCAT能够实现低延迟和高带宽的数据交换,适用于对实时性要求较高的工业自动化应用。
准备
安装riscv编译工具链:
![image.png](//file1.elecfans.com/web2/M00/FC/3B/wKgZomaTxRiAFEUCAALPoaj_N5k216.jpg)
安装Cmake:
![image.png](//file1.elecfans.com/web2/M00/FC/3B/wKgZomaTxSCAHzfkAAK_ayqBRz4071.jpg)
下载EtherCAT源码:
![image.png](//file1.elecfans.com/web2/M00/FD/27/wKgaomaTxS6AevJqAACaTqox44w536.jpg)
移植步骤
新建文件夹,build,输入Cmake ..
![image.png](//file1.elecfans.com/web2/M00/FD/27/wKgaomaTxUuADr8oAAHxDlRmQPg757.jpg)
编译源码,make:
Scanning dependencies of target soem
[ 4%] Building C object CMakeFiles/soem.dir/soem/ethercatbase.c.o
[ 9%] Building C object CMakeFiles/soem.dir/soem/ethercatcoe.c.o
[ 14%] Building C object CMakeFiles/soem.dir/soem/ethercatconfig.c.o
[ 19%] Building C object CMakeFiles/soem.dir/soem/ethercatdc.c.o
[ 23%] Building C object CMakeFiles/soem.dir/soem/ethercateoe.c.o
[ 28%] Building C object CMakeFiles/soem.dir/soem/ethercatfoe.c.o
[ 33%] Building C object CMakeFiles/soem.dir/soem/ethercatmain.c.o
[ 38%] Building C object CMakeFiles/soem.dir/soem/ethercatprint.c.o
[ 42%] Building C object CMakeFiles/soem.dir/soem/ethercatsoe.c.o
[ 47%] Building C object CMakeFiles/soem.dir/osal/linux/osal.c.o
[ 52%] Building C object CMakeFiles/soem.dir/oshw/linux/nicdrv.c.o
[ 57%] Building C object CMakeFiles/soem.dir/oshw/linux/oshw.c.o
[ 61%] Linking C static library libsoem.a
[ 61%] Built target soem
Scanning dependencies of target simple_ng
[ 66%] Building C object test/simple_ng/CMakeFiles/simple_ng.dir/simple_ng.c.o
[ 71%] Linking C executable simple_ng
[ 71%] Built target simple_ng
Scanning dependencies of target slaveinfo
[ 76%] Building C object test/linux/slaveinfo/CMakeFiles/slaveinfo.dir/slaveinfo.c.o
[ 80%] Linking C executable slaveinfo
[ 80%] Built target slaveinfo
Scanning dependencies of target eepromtool
[ 85%] Building C object test/linux/eepromtool/CMakeFiles/eepromtool.dir/eepromtool.c.o
[ 90%] Linking C executable eepromtool
[ 90%] Built target eepromtool
Scanning dependencies of target simple_test
[ 95%] Building C object test/linux/simple_test/CMakeFiles/simple_test.dir/simple_test.c.o
[100%] Linking C executable simple_test
[100%] Built target simple_test
接下来将编译生成的库文件,以及测试代码导入开发板中:
![image.png](//file1.elecfans.com/web2/M00/FC/3C/wKgZomaTxWCAHVs4AAB1Ny9L3ps191.jpg)
通过ssh登录开发板,将库文件和测试文件传入开发板
![image.png](//file1.elecfans.com/web2/M00/FC/3C/wKgZomaTxWyAcuiPAAD9CWbjMaU219.jpg)
将编译的文件添加可执行权限,并且运行,如下:
![image.png](//file1.elecfans.com/web2/M00/FD/27/wKgaomaTxXqACG7wAAEQUrAmRfU650.jpg)
|