自建极简Ethercat主站-第8章 FOE基础功能实现

第8章 FOE

源码地址

8.1 FOE简介

​ FOE(File Access over Ethercat),用于节点之间的文件传输。协议类似于TFTP协议,感觉和TFTP协议没有太大的区别,只是一个是UDP传输,一个是Ethercat传输。从机在通过FOE进行固件更新的时候,作为服务端,主机作为客户端,由主机发起固件的上传和下载。FOE与COE一样都是使用邮箱通信,在邮箱头中有一个TYPE字段用来标记当前的数据是COE、FOE或者其他数据。

​ 在使用过程中FOE一般是在Bootstrap状态下与从站通信,当然其他状态下也可以使用。不过在Bootstrap状态下只能使用FOE,因为从站源码中有对邮箱数据进行判断,如果在Bootstrap状态下,接收到的邮箱数据不是FOE,则会报错。

8.2 FOE 数据结构

8.2.1 FOE帧格式
目标地址 源地址 类型 Frame Header Datagram Header Mailbox Header FOE Header Data FCS
6 bytes 6 bytes 2 bytes (0x88A4) 2 bytes 10 bytes 6 bytes 2bytes N bytes 4bytes

FOE 的帧格式与COE的帧格式差不多,也是邮箱数据。FOE Header 2个字节,第一个字节是opcode,第二个字节为预留。opcode的取值范围是1~6,表示数据包的不同功能。

8.2.2 FOE请求

FOE总共有6种请求,分别是读请求、写请求、数据、应答、错误、忙。

1、FOE Read请求

帧部分 数据区域 大小 说明
Mailbox Header Length 2byte 邮箱数据的长度,包含2个命令字节。
Address 2byte 如果主站是客户机,指源站地址,如果从站是客户机,指目的地址。
Channel bit[0:5] 保留,默认0
Priority bit[6:7] 数据的优先级,0~3;0最低。
Type bit[0:3] 0x00:错误;0x01:保留;0x02:EOE;0x03:COE;0x04:FOE;0x05:SOE;0x06~0x0E:保留;0x0F:供应商特定
Cnt bit[4:6] 邮箱服务计数器(1~7)。从站与主站的邮箱数据中的Cnt没有关联,两者都是递增的。从站通过主站邮箱数据中的Cnt来判断是否是重复写服务。主站通过从站邮箱服务的Cnt可以检查出是否丢包。
Reserved bit[7] 保留,默认0
FOE Header Opcode 1byte 0x01:读请求
Reserved 1byte 默认0
Read Data Password 4byte 0:不适用密码 1~0xFFFFFFFF:密码 从站对password作为一个判断,只有当密钥正确的时候才进行操作
File Name n byte 被读文件名字

2、写请求

帧部分 数据区域 大小 说明
Mailbox Header Length 2byte 邮箱数据的长度,包含2个命令字节。
Address 2byte 如果主站是客户机,指源站地址,如果从站是客户机,指目的地址。
Channel bit[0:5] 保留,默认0
Priority bit[6:7] 数据的优先级,0~3;0最低。
Type bit[0:3] 0x00:错误;0x01:保留;0x02:EOE;0x03:COE;0x04:FOE;0x05:SOE;0x06~0x0E:保留;0x0F:供应商特定
Cnt bit[4:6] 邮箱服务计数器(1~7)。从站与主站的邮箱数据中的Cnt没有关联,两者都是递增的。从站通过主站邮箱数据中的Cnt来判断是否是重复写服务。主站通过从站邮箱服务的Cnt可以检查出是否丢包。
Reserved bit[7] 保留,默认0
FOE Header Opcode 1byte 0x02:写请求
Reserved 1byte 默认0
Write Data Password 4byte 0:不适用密码 1~0xFFFFFFFF:密码 从站对password作为一个判断,只有当密钥正确的时候才进行操作
File Name n byte 被读文件名字

3、数据

帧部分</
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值