本帖最后由 IFX_OwenSu 于 2024-5-21 10:18 编辑
Ethernet for Control Automation (EtherCAT)是一种基于以太网的高性能工业控制总线。它的通讯速度可以达到100Mbps,在一个网络配置中最多支持65535个从站节点。它支持多种拓扑结构例如星型,线型,树形等。 XMC4000系列中XMC4300/XMC4800集成了EtherCAT模块。XMC4800内部集成了电机控制模块和模拟信号检测模块,可以用于电机控制领域。XMC4300刨除了XMC4800中电机应用模块,可以用于工业控制中的I/O模块。 以下是基于XMC4800的EtherCAT控制方案和其它方案比较。 左上是基于XMC4800的EtherCAT控制方案,可以看到这个方案仅需2片外部PHY,无需外部EEPROM和外部存储器。右上是基于其它带EtherCAT模块的MCU,大部分这类MCU都需要外部的Flash和EEPROM,而且PHY需要外部的晶振。左下是基于ASIC(例如ET1100)的解决方案,这种方案需要额外的MCU去做控制,而且同样需要外置的EEPROM和外部晶振。右下是基于FPGA实现EtherCAT IP,除此之外,有些FPGA还可以作主控,这种方案虽然运算性能和扩展性能都比较好,但是成本很高,而且同样需要外部的存储器和外部晶振。
XMC4800系列的官方KIT主要有以下两款:
KIT_XMC48_RLX_ECAT_V2.1:
KIT_XMC48_IOT_AWS_WIFI:
两块板子的Key features对比: Features | | | | XMC4800 microcontroller, 144MHz, 2MB Flash, 352kB SRAM, LQFP144 | XMC4800 microcontroller, 144MHz, 2MB Flash, 352kB SRAM, LQFP100 | | 66 x 99 mm (66 x 101 mm with connectors) | 75 x 138 mm (91 x 144 mm with connectors incl. Phy-2-Phy) | | 12 MHz and 32.768 kHz crystal for CPU. 25 MHz crystal for Ethernet Phy | 12 MHz and 32.768 kHz crystal for CPU | | 5 V external powering • Micro-AB USB Connector interface or • On-Board Debugger USB interface | Via USB connector (Micro-AB USB) or Via On-Board Debugger (Micro-AB USB) | | 1) Arduino compatible connectors 2) All relevant XMC™ pins available on expansion pads (X1, X2) 3) All EtherCAT signals available on expansion pads (X1, X2) 4) Ethernet interface via RJ45 jac 5) microUSB 6) microSD-Card slot 7) Serial Wire Debug interface (2x5, 50 mil pitch) to XMC™ (on board debugger can be overridden by externally connected debugger)
| 1) EtherCAT® Slave IN and OUT interface via RJ45 jack 2) mikroBUS™ socket (2x8-pin) 3) Arduino compatible connectors (1x10-pin, 2x8-pin, 1x6pin, 2x3pin) 4) USB connector (Micro-AB USB) 5) CAN connector (D-Sub DE-9) 6) EtherCAT® Phy-2-Phy connector (not assembled) 7) Serial Wire Debug interface (2x5, 50 mil pitch) to XMC™ (not assembled) (on board debugger can be overridden by externally connected debugger)
| | On-Board J-Link debug probe via USB supporting. • Serial Wire Debug (SWD) • UART-to-USB bridge (virtual COM) | On-Board J-Link debug probe via USB supporting. • Serial Wire Debug (SWD) • UART-to-USB bridge (virtual COM) | | 1) On-board debug probe, based on XMC4200 microcontroller. 2) Ethernet Phy 3) CAN transceiver 4) 32 Mbit Quad-SPI Flash Memory 5) 2 user push-buttons, 2 user LEDs 6) Reset push-button |
1) On-board debug probe, based on XMC4200 microcontroller. 2) 2x EtherCAT® Phys 3) CAN transceiver 4) 2 user push-buttons 5) 2 user LEDs 6) Reset push-buttons
|
从上面的表格可以看到,两块板子主要的区别在于:芯片的封装不同;KIT_XMC48_RLX_ECAT_V2.1在没有外接板的情况下可以实现Ethernet,接上外接板之后可以实现EtherCAT;而KIT_XMC48_IOT_AWS_WIFI无法实现Ethernet,但其接上mikroBUS™之后可以实现Wi-Fi功能。 官方目前提供的EtherCAT例程是基于KIT_XMC48_RLX_ECAT_V2.1进行开发的,但因为上述的区别,这个例程直接烧录到KIT_XMC48_IOT_AWS_WIFI上是无法正常运行的,所以我们可以基于官方的例程来创建相应的工程。 前提条件: 1) DAVE IDE,可从以下链接下载: 2) TwinCAT3,可从以下链接下载: 3) 需要参考‘ETHCAT_SSC_XMC43’和‘ETHCAT_SSC_XMC48’这两个例程进行开发,可从以下链接下载: 4) SSC Tool可以从以下链接下载,但是需要ETG的membership:
步骤: 1. 在DAVE IDE中基于KIT_XMC48_IOT_AWS_WIFI创建一个新的DAVE CE工程.
2. 完成之后添加’ECAT_SSC’ APP,这时候工程中应该会添加一系列的APP,但这并不能完全实现相应的功能,我们还需要添加两个‘INTERRUPT’分别对应INT_SYNC0/1,然后再添加两对’EVENT_GENERATOR’和’EVENT_DETECTOR’分别代表EG_SYNC0/1和ED_SYNC0/1。 3. 然后再添加一个PWM_CCU8,这个模块主要是检查主机OUT_GEN_INT1设置的整数,并相应设置PWM驱动LED2的占空比,但在我们这个基础的例子中可以不使用。 4. 最后添加完成之后结果如下: 5. 点击‘Manual Pin Allocator’进行引脚的分配,在每个引脚的下拉框中应该都能看到ECAT对应的引脚,所有的都选上ECAT对应的引脚即可。 6. 完成之后在‘ECAT_SSC’上击右键点击‘HW Signal Connections’,将对应信号进行连接。除了‘ECAT_SSC’之外,还需对‘ED_SYNC0/1’和‘EG_SYNC0/1’进行配置。 完成之后的HW Signal Connectivity应该如下图所示:
7. 完成之后记得点击‘Generate Code’,这一步很重要。 8. 修改main.c,这一步可以将‘ETHCAT_SSC_XMC43’的main.c直接复制过来,因为这两块板子的schematic非常相似,几乎不需要进行改动。 9. 接下来在编译之前还需要生成Slave Stack Code和ESI file。在创建工程的时候SSC文件夹中就会生成对应的XMC_ESC.xlsx表格,但是点开之后会发现里边缺少相应的配置,所以你可以参考‘ETHCAT_SSC_XMC48’中的XMC_ESC.xlsx表格(直接复制到对应目录下即可)。生成Slave Stack Code和ESI file的步骤在getting started中都有详细的介绍,这里就不过多赘述。
10. 完成之后还需要修改相关的代码,这一部分也可以在getting started中看到:
11. 上述步骤都是新建工程之后的一些基本配置,完成之后就可以按照我们的getting started说明文档一步一步的进行测试了。附件工程是配置好并测试过的,可以对照一下看看有没有什么遗漏。
|