news 2026/4/27 18:48:06

Ehercat代码解析中文摘录<4>

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ehercat代码解析中文摘录<4>

8. 邮箱

EtherCAT 邮箱(MBX)用于传输非周期性数据,SSC 支持多种邮箱协议,本章介绍 FoE 和 EoE 的实现与使用。

8.1 FoE(EtherCAT 文件传输)

FoE 用于在主站和从站间传输文件(如配置文件、固件),SSC 默认支持 FoE 服务器功能。

8.1.1 FoE 测试
  1. 启用 FoE:在ecat_def.h中设置FOE_SUPPORTED = 1
  2. 测试步骤
    • 从站进入 PREOP 状态
    • 使用 TwinCAT FoE 客户端或 ET9400 测试工具连接从站
    • 执行文件上传 / 下载操作:
      • 下载:主站→从站(如写入 EEPROM 配置)
      • 上传:从站→主站(如读取 EEPROM 配置)

FoE 核心函数

// FoE初始化(在APPL_StartMailboxHandler中调用) UINT16 FOE_Init(void); // FoE主处理函数(在MainLoop中调用) void FOE_MainFunction(void);

8.2 EoE(EtherCAT 以太网)

EoE 允许在 EtherCAT 总线上传输标准以太网帧,SSC 支持 EoE 从站实现。

8.2.1 实现

1. 启用 EoEecat_def.h中配置以下参数:

#define EOE_SUPPORTED 1 // 启用EoE #define EOE_MAX_FRAMES 4 // 最大并发帧数量 #define EOE_BUFFER_SIZE 1518 // 以太网帧最大长度 #define EOE_CHANNELS 1 // EoE通道数(最多8个)

2. 硬件适配需实现以太网物理层(PHY)驱动,核心接口函数:

// 初始化EoE硬件(PHY/MAC) UINT16 EOE_HW_Init(void); // 发送以太网帧 void EOE_HW_SendFrame(UINT8 Channel, UINT8 *pData, UINT16 Len); // 接收以太网帧(由硬件中断调用) void EOE_HW_ReceiveFrame(UINT8 Channel, UINT8 *pData, UINT16 Len);

3. EoE 核心状态机SSC 提供 EoE 状态机处理逻辑,包含以下状态:

  • EOE_STATE_INIT:初始化状态
  • EOE_STATE_IDLE:空闲状态,等待帧传输
  • EOE_STATE_TRANSMIT:帧发送中
  • EOE_STATE_RECEIVE:帧接收中
8.2.2 EoE 示例

以下是简化的 EoE 实现示例(基于 EL9800 评估板):

1. EoE 初始化(eoeappl.c)

UINT16 EOE_Init(void) { // 初始化硬件 if (EOE_HW_Init() != 0) { return ALSTATUSCODE_HW_ERROR; } // 初始化EoE通道 for (UINT8 i = 0; i < EOE_CHANNELS; i++) { EOE_Channel[i].State = EOE_STATE_IDLE; EOE_Channel[i].Buffer = (UINT8 *)malloc(EOE_BUFFER_SIZE); if (EOE_Channel[i].Buffer == NULL) { return ALSTATUSCODE_OUT_OF_MEMORY; } } return ALSTATUSCODE_NOERROR; }

2. EoE 主处理函数(eoeappl.c)

void EOE_MainFunction(void) { for (UINT8 i = 0; i < EOE_CHANNELS; i++) { switch (EOE_Channel[i].State) { case EOE_STATE_IDLE: // 检查是否有待发送的帧 if (EOE_Channel[i].TxPending) { EOE_HW_SendFrame(i, EOE_Channel[i].TxBuffer, EOE_Channel[i].TxLen); EOE_Channel[i].State = EOE_STATE_TRANSMIT; } break; case EOE_STATE_TRANSMIT: // 检查发送完成状态 if (EOE_HW_IsTransmitComplete(i)) { EOE_Channel[i].State = EOE_STATE_IDLE; EOE_Channel[i].TxPending = FALSE; } break; default: EOE_Channel[i].State = EOE_STATE_IDLE; break; } } }

3. 以太网帧接收处理(eoehw.c)

void EOE_HW_ReceiveFrame(UINT8 Channel, UINT8 *pData, UINT16 Len) { if (Channel >= EOE_CHANNELS || Len > EOE_BUFFER_SIZE) { return; } // 复制接收到的帧到EoE缓冲区 MEMCPY(EOE_Channel[Channel].RxBuffer, pData, Len); EOE_Channel[Channel].RxLen = Len; // 通知SSC处理接收到的帧 EOE_ProcessReceivedFrame(Channel); }

4. ESI 文件配置在 ESI 文件中添加 EoE 通道描述:

<Eoe> <Channels>1</Channels> <Channel> <Index>0</Index> <Name>EOE Channel 0</Name> <MacAddress>00:01:02:03:04:05</MacAddress> <MTU>1500</MTU> </Channel> </Eoe>

来源:AN_ET9300.pdf

用作个人学习和分享,侵删

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 8:54:14

云端GPU租赁推荐:哪些平台适合部署HunyuanOCR提供对外服务?

云端GPU租赁部署HunyuanOCR实战指南 在AI模型日益“重载化”的今天&#xff0c;一个仅1B参数却能在OCR任务上媲美SOTA的轻量级大模型——HunyuanOCR&#xff0c;正悄然改变着企业对文字识别服务的认知。它不是另一个臃肿的多模态巨兽&#xff0c;而是一款真正为落地而生的专家模…

作者头像 李华
网站建设 2026/4/24 9:16:39

数字图书馆建设新思路:HunyuanOCR+OCR后处理实现高质量转录

数字图书馆建设新思路&#xff1a;HunyuanOCROCR后处理实现高质量转录 在数字人文、学术研究和文化遗产保护的浪潮中&#xff0c;纸质文献的数字化早已不再是简单的“扫描存档”。如今&#xff0c;我们面对的是数以百万计的老期刊、古籍手稿、多语种档案——它们不仅需要被“看…

作者头像 李华
网站建设 2026/4/18 17:43:11

雷家林(レイ・ジアリン)詩歌集録 その一

&#xff08;晶晶&#xff09;晶&#xff08;きょう&#xff09;晶&#xff08;きょう&#xff09;として白玉のような雪が長い橋を覆い、湖水は凍らず春の潮を蓄えている。高い木がまっすぐに立ち、守り護っている。小さな亭が堂々として水の流れに任せられている。&#xff0…

作者头像 李华
网站建设 2026/4/23 10:55:32

构建多模态搜索系统:以HunyuanOCR为基础建立图文联合索引

构建多模态搜索系统&#xff1a;以HunyuanOCR为基础建立图文联合索引 在企业知识库、数字档案馆和智能办公平台中&#xff0c;一个常见的痛点是——成千上万的扫描件、合同图片、发票截图静静躺在服务器里&#xff0c;却“看得见但搜不到”。用户输入“2023年张三的劳动合同”…

作者头像 李华
网站建设 2026/4/26 9:05:42

HunyuanOCR应用于宠物芯片登记:快速录入身份信息与主人联系方式

HunyuanOCR应用于宠物芯片登记&#xff1a;快速录入身份信息与主人联系方式 在城市养宠家庭数量持续攀升的今天&#xff0c;如何高效、准确地管理每一只宠物的身份信息&#xff0c;已成为社区治理和公共安全的新课题。传统的宠物登记方式依赖人工填写表格或手动输入系统——拍照…

作者头像 李华
网站建设 2026/4/27 2:00:37

营业执照识别准确率实测:HunyuanOCR对企业注册信息抽取效果

营业执照识别准确率实测&#xff1a;HunyuanOCR对企业注册信息抽取效果 在企业服务、金融风控、政务审批等高频场景中&#xff0c;每天都有成千上万张营业执照需要被录入系统。传统做法依赖人工逐字填写或基于模板的OCR工具&#xff0c;效率低、容错差——尤其是面对不同地区、…

作者头像 李华