1
扫一扫,分享给好友
三、EtherCAT 主站 SOEM 源码解析----IOmap SOEM 通过函数 ec_config_map(&IOmap)完成逻辑地址和物理地址的映射,应用程序需要定义一个数组 IOmap,例如: char IOmap[4096]; 完成映射后,应用程序就可以通过读写数组 IOmap[]来完成与从站的数据交换。 1、映射关系 SOEM 首先将所有从站的输出映射到 IOmap[]的开始位置,然后是输入,如下图所示: 2、具体实现 函数 ec_config_map(&IOmap)最终会调/soem/EthercatConfig.c 中的以下函数完成映射。 int ecx_config_map_group(ecx_contextt *context, void *pIOmap, uint8group) 该函数完成主要的功能为:
读取从站 EEPROM 中的 PDO 信息,统计需要映射的输入输出长度;
根据步骤 1 的结果配置从站 SM 寄存器;
将从站的输出映射到 IOmap[],并配置从站 FMMU 寄存器;
将从站的输入映射到 Iomap[],并配置从站 FMMU 寄存器;
为应用程序提供读写 IOmap[]的接口。 具体代码如下:
3、映射实例 在 SOEM 说明文档中有 1 个 IOmap 的例子,如下图所示:
Slave2 EL4001 的 1*16bit 输出被映射到逻辑地址的最开始处。 Slave6、7、8、9 每个站只有 2bit,被映射到一个逻辑地址中。
发布
开发板免费试用移植CH32V208risc-v沁恒mcu
【AG32开发板体验连载】简易逻辑分析仪
【LuckFox Pico 开发板免费试用】+ 驱动SPI接口LCD显示
【LuckFox Pico 开发板免费试用】6.使能 DHT11 Driver
【LuckFox Pico 开发板免费试用】5.内核驱动温湿度传感器 DHT11
【LuckFox Pico 开发板免费试用】4.纯终端Windows下SDK编译
【LuckFox Pico 开发板免费试用】3.镜像烧录+多种调试
【LuckFox Pico 开发板免费试用】2 LuckFox Pico画的扩展板分享
【LuckFox Pico 开发板免费试用】+ 系统烧写
【中科微CSM32RV003绿色开发板免费体验】第一帖-开箱体验
【Start_DSC28034PNT湖人开发板免费体验】+点灯
德赢Vwin官网 网
德赢Vwin官网 论坛