【EtherCAT】 EoE简介

目录

1、EoE简介

2、EtherCAT协议结构

3、从站节点参考模型

4、EoE编码

4.1 Initiate EoE请求

(1)Initiate EoE请求的数据类型

(2)Initiate EoE 请求的编码

 4.2 Initiate EoE响应

(1) Initiate EoE 响应的属性类型

 (2) Initiate EoE 响应的编码

 4.3 EoE Fragment 请求

(1) EoE Fragment 请求的属性类型

 (2) EoE Fragment 请求的编码

 4.4 EoE 数据元素

 (1) EoE 数据的编码

 4.5 Set IP Parameter 请求

(1) Set IP Parameter 请求的属性类型

(2) Set IP Parameter 请求的编码

 4.6 Set IP Parameter 响应

(1) Set IP Parameter 响应的属性类型

(2) Set IP Parameter 响应的编码

4.7 Set Address Filter 请求

(1) Set Address Filter 请求的属性类型

(2) Set Address Filter 请求的编码

 4.8 Set Address Filter 响应

(1) Set Address Filter 响应的属性类型

(2) Set Address Filter 请求的编码


1、EoE简介

        EoE :Ethernet tunneled over EtherCAT services, 基于EtherCAT服务的以太网隧道。从站需要移植自己的TCP/IP协议栈(如lwip),底层还是通过EtherCAT的邮箱通信

2、EtherCAT协议结构

3、从站节点参考模型

        

4、EoE 编码

4.1 Initiate EoE请求
(1)Initiate EoE请求的数据类型
typedef struct
{
    unsigned FrameType        : 4;
    unsigned Port             : 4;
    unsigned LastFragment     : 1;
    unsigned TimeAppended     : 1;
    unsigned TimeRequested    : 1;
    unsigned Reserved         : 5;
    unsigned FragmentNumber   : 6;
    unsigned CompleteSize     : 6;
    unsigned FrameNumber      : 4;
} TEOEHEADER;
typedef struct
{
    TMBXHEADER MbxHeader;
    TEOEHEADER EoeHeader;
    BYTE Data[MAX_EOE_DATA_SIZE];
} TINIEOEREQ;
(2)Initiate EoE 请求的编码
帧部分数据字段数据类型/描述
Mailbox HeaderLengthWORDN = 0x24+ y*0x20:邮箱服务数据的长度( y=0~0x2F
AddressWORD如果主站是客户机,则为源站地址;如果从站是客户机,则为目的站地址
ChannelUnsigned60x00 (为将来使用保留)
PriorityUnsigned20x00: 最低优先级…0x03: 最高优先级
TypeUnsigned40x02: EoE
CntUnsigned3邮箱服务计数器( 保留, 是起始值, 以后的下一个值为 1
ReservedUnsigned10x00
EoE HeaderFrameTypeUnsigned40x02
PortUnsigned40x00: 发送到非特定端口0x01-0x0F: 选择特定端口
Last FragmentUnsigned10x00: 后面至少还有一个 EoE Fragment 服务0x01: 整个以太网帧都位于数据部分
Time AppendedUnsigned10x00: 最后一个分段中的 EoE 数据之后不添加时间戳0x01: 最后一个分段中的 EoE 数据之后添加时间戳
Time RequestUnsigned10x00: 不要求发送时间的时间戳0x01: 要求有发送时间的时间戳
ReservedUnsigned5
FragmentNumberUnsigned60x00
Complete SizeUnsigned6(以太网数据帧的完整大小+ 31)/32
Frame NumberUnsigned4以太网帧的编号
EoE DataBYTE[N-4]以太网帧(不包括前导码、 SFD、 FCS)第一部分,长度为( N-4)个八位位组(如果包含时间戳,则再减去个八位位组)
(optional)TimeStampUnsigned32以 ns 为单位,从 DA 开始的帧接收时间
 4.2 Initiate EoE响应
(1) Initiate EoE 响应的属性类型
typedef struct
{
    TMBXHEADER MbxHeader;
    TEOEHEADER EoeHeader;
    TimeStamp Unsigned32;
} TINIEOERES;
 (2) Initiate EoE 响应的编码
帧部分数据字段数据类型/描述
Mailbox HeaderLengthWORDN = 0x08: 邮箱服务数据的长度
AddressWORD如果主站是客户机,则为源地址;如果从站是客户机,则为目的地址
ChannelUnsigned60x00 (为将来使用保留)
PriorityUnsigned20x00: 最低优先级…0x03: 最高优先级
TypeUnsigned40x02: EoE
CntUnsigned3邮箱服务计数器( 保留, 是起始值, 以后的下一个值为 1
ReservedUnsigned10x00
EoE HeaderFrameTypeUnsigned40x03
PortUnsigned40x00: 发送到非特定端口0x01-0x0F: 选择指定的端口
Last FragmentUnsigned10x00
Time AppendedUnsigned10x01: 添加时间戳
Time RequestUnsigned10x00: 不要求发送时间的时间戳
ReservedUnsigned5
FragmentNumberUnsigned60x00
Complete SizeUnsigned60x00
Frame NumberUnsigned4以太网帧的编号
TimeStampUnsigned32以 ns 为单位, 从 DA 开始的数据帧发送时间
 4.3 EoE Fragment 请求

(1) EoE Fragment 请求的属性类型
typedef struct
{
    TMBXHEADER MbxHeader;
    TEOEHEADER EoeHeader;
    BYTE Data[MAX_EOE_DATA_SIZE];
} TEOEFRAGREQ;
 (2) EoE Fragment 请求的编码
帧部分数据字段数据类型/描述
Mailbox HeaderLengthWORDN > 0x04: 邮箱服务数据的长度
AddressWORD如果主站是客户机,则为源地址;如果从站是客户机,则为目的地址
ChannelUnsigned60x00 (为将来使用保留)
PriorityUnsigned20x00: 最低优先级…0x03: 最高优先级
TypeUnsigned40x02: EoE
CntUnsigned3邮箱服务计数器( 保留, 是起始值, 以后的下一个值为 1
ReservedUnsigned10x00
EoE HeaderFrameTypeUnsigned40x00
PortUnsigned40x00: 发送到非特定端口0x01-0x0F: 选择特定端口
Last FragmentUnsigned10x00:至少还有一个 EoE Fragment 服务0x01:当前以太网数据帧的最后的数据部分(包括时间戳)
Time AppendedUnsigned10x00: 最后一个分段中的 EoE 数据后不添加时间戳0x01: 最后一个分段中的 EoE 数据后添加时间戳
Time RequestUnsigned10x00: 不请求发送时间的时间戳0x01: 请求有发送时间的时间戳
ReservedUnsigned5
FragmentNumberUnsigned60x01-0x2F: 以太网帧分段的个数
OffsetUnsigned6以太网帧分段的偏移量
Frame NumberUnsigned4以太网帧的编号
EoE DataBYTE[N-4]以太网帧(不包含前导码、 SFD、 FCS)的第一部分,长度为( N-4)个八位位组(如果包含时间戳还要减去个八位位组)
(optional)TimeStampUnsigned32以 ns 为单位, 从 DA 开始的数据帧接收时间
 4.4 EoE 数据元素

 (1) EoE 数据的编码
帧部分数据字段数据类型/描述
EthernetDest MACBYTE[6]符合 ISO/IEC 8802-3 的目标 MAC 地址
Src MACBYTE[6]符合 ISO/IEC 8802-3 的源 MAC 地址
(optional)VLAN TagBYTE[4]0x81、 0x00 与由 IEEE 802.1Q 规定的两个八位位组
Ether TypeBYTE[2]由 IEEE 分配
User FrameData用户数据( 八位位组串)或者 EoE 参数
PaddingBYTE[n]根据 ISO/IEC 8802-3 的规定,如果 DLPDU 长度少于
 4.5 Set IP Parameter 请求

(1) Set IP Parameter 请求的属性类型
typedef struct
{
    TMBXHEADER MbxHeader;
    TEOEHEADER EoeHeader;
    BYTE Data[MAX_EOE_DATA_SIZE];
} TEOEFRAGREQ;
(2) Set IP Parameter 请求的编码
帧部分数据字段数据类型/描述
Mailbox HeaderLengthWORDN > 0x08: 邮箱服务数据长度
AddressWORD如果主站是客户机,则为源地址;如果从站是客户机,则为目的地址
ChannelUnsigned60x00 (为将来使用保留)
PriorityUnsigned20x00: 最低优先级…0x03: 最高优先级
TypeUnsigned40x02: EoE
CntUnsigned3邮箱服务计数器( 保留, 是起始值, 以后的下一个值为 1
ReservedUnsigned10x00
EoE HeaderFrameTypeUnsigned40x02
PortUnsigned40x00: 发送到非特定端口0x01-0x0F: 选择特定的端口
Last FragmentUnsigned10x01: 最后的数据部分
Time AppendedUnsigned10x00: 不添加时间戳
Time RequestUnsigned10x00: 不请求发送时间的时间戳
ReservedUnsigned5
Fragment NumberUnsigned60x00
OffsetUnsigned60x00
Frame NumberUnsigned40x00
EoE ParameterMAC includedUnsigned1符合 ISO/IEC 8802-3 的 MAC 地址
IP address includedUnsigned1符合 IETF RFC 791 的 IP 地址
Subnet Mask includedUnsigned1符合 IETF RFC 791 的子网掩码
Default Gateway includedUnsigned1符合 IETF RFC 791 的默认网关地址
DNS Server IP Address includedUnsigned1符合 IETF RFC 791 的 DNS 服务器的 IP 地址
DNS Name includedUnsigned1符合 IETF RFC 791 的 DNS 名称
reservedUnsigned26
(conditional)MACBYTE[6]符合 ISO/IEC 8802-3 的 MAC 地址
(conditional)IP addressBYTE[4]符合 IETF RFC 791 的 IP 地址
(conditional)Subnet MaskBYTE[4]符合 IETF RFC 791 和 IETF RFC 826 的子网掩码
(conditional)Default GatewayBYTE[4]符合 IETF RFC 791 的默认网关地址
(conditional)DNS Server IP AddressBYTE[4]符合 IETF RFC 791 的 DNS 服务器的 IP 地址
(conditional)DNS Namechar[32]符合 IETF RFC 791 的 DNS 名称
 4.6 Set IP Parameter 响应

(1) Set IP Parameter 响应的属性类型
typedef struct
{
    unsigned FrameType       : 4;
    unsigned Port            : 4;
    unsigned LastFragment    : 1;
    unsigned TimeAppended    : 1;
    unsigned TimeRequested   : 1;
    unsigned Reserved        : 5;
    unsigned Result          : 16;
} TEOEPARAHEADER;
typedef struct
{
    TMBXHEADER MbxHeader;
    TEOEPARAHEADER EoeHeader;
} TEOEFRAGREQ;
(2) Set IP Parameter 响应的编码
帧部分数据字段数据类型/描述
Mailbox HeaderLengthWORDN=0X04: 邮箱服务数据长度
AddressWORD如果主站是客户机,则为源地址;如果从站是客户机,则为目的地址
ChannelUnsigned60x00 (为将来使用保留)
PriorityUnsigned20x00: 最低优先级…0x03: 最高优先级
TypeUnsigned40x02: EoE
CntUnsigned3邮箱服务计数器( 保留, 是起始值, 以后的下一个值为 1
ReservedUnsigned10x00
EoE HeaderFrameTypeUnsigned40x03
PortUnsigned40x00: 发送到非特定端口0x01-0x0F: 选择特定的端口
Last FragmentUnsigned10x01: 最后的数据部分
Time AppendedUnsigned10x00: 不添加时间戳
Time RequestUnsigned10x00: 不要求发送时间的时间戳
ReservedUnsigned5
ResultUnsigned16见表 84

                                                 表 84 – EoE Result 参数

结果代码含义
0x0000成功
0x0001未定义的错误
0x0002不支持的帧类型
0x0201无 IP 支持
0x0401无过滤器支持
4.7 Set Address Filter 请求

(1) Set Address Filter 请求的属性类型
typedef struct
{
    TMBXHEADER MbxHeader;
    TEOEHEADER EoeHeader;
    BYTE Data[MAX_EOE_DATA_SIZE];
} TEOEFRAGREQ;
(2) Set Address Filter 请求的编码
帧部分数据字段数据类型/描述
Mailbox HeaderLengthWORDN > 0x06: 邮箱服务数据的长度
AddressWORD如果主站是客户机,则为源地址;如果从站是客户机,则为目的地址
ChannelUnsigned60x00 (为将来使用保留)
PriorityUnsigned20x00: 最低优先级…0x03: 最高优先级
TypeUnsigned40x02: EoE
CntUnsigned3邮箱服务计数器( 保留, 是起始值, 以后的下一个值为 1
ReservedUnsigned10x00
EoE HeaderFrameTypeUnsigned40x04
PortUnsigned40x00: 发送到非特定端口0x01-0x0F: 选择特定的端口
Last FragmentUnsigned10x01: 最后的数据部分
Time AppendedUnsigned10x00: 不添加时间戳
Time RequestUnsigned10x00: 不要求发送时间的时间戳
ReservedUnsigned5
Fragment NumberUnsigned60x00
OffsetUnsigned60x00
Frame NumberUnsigned40x00
EoE ParameterMAC filter countUnsigned4计数当前从站上以太网端口接受的 MAC 地址, MAC 地址须符合 ISO/IEC 8802-3
MAC filter maskUnsigned2计数当前从站上以太网端口接受的 MAC 地址掩码, MAC 地址须符合 ISO/IEC 8802-3
ReservedUnsigned1符合 IETF RFC 791 的子网掩码
Inhibit BroadcastUnsigned1过滤广播报文
ReservedUnsigned8
(conditional)List of MAC AddressList of BYTE[6]符合 ISO/IEC 8802-3 的 MAC 地址。
(conditional)List of MAC Address FilterList of BYTE[6]符合 ISO/IEC 8802-3 的 MAC 地址。比特被置位意味着目标 MAC 地址的该地址位与 MAC地址列表中的相应条目进行比较
 4.8 Set Address Filter 响应

(1) Set Address Filter 响应的属性类型
typedef struct
{
    unsigned FrameType       : 4;
    unsigned Port            : 4;
    unsigned LastFragment    : 1;
    unsigned TimeAppended    : 1;
    unsigned TimeRequested   : 1;
    unsigned Reserved        : 5;
    unsigned Result          : 16;
} TEOEPARAHEADER;
typedef struct
{
    TMBXHEADER MbxHeader;
    TEOEPARAHEADER EoeHeader;
} TEOEFRAGREQ;
(2) Set Address Filter 请求的编码
帧部分数据字段数据类型/描述
Mailbox HeaderLengthWORDN = 0x08: 邮箱服务数据的长度
AddressWORD如果主站是客户机,则为源地址;如果从站是客户机, 则为目的地址
ChannelUnsigned60x00 (为将来使用保留)
PriorityUnsigned20x00: 最低优先级…0x03: 最高优先级
TypeUnsigned40x02: EoE
CntUnsigned3邮箱服务计数器( 保留, 是起始值, 以后的下一个值为 1
ReservedUnsigned10x00
EoE HeaderFrameTypeUnsigned40x05
PortUnsigned40x00: 发送到非特定端口0x01-0x0F: 选择特定的端口
Last FragmentUnsigned10x01: 最后的数据部分
Time AppendedUnsigned10x00: 不添加时间戳
Time RequestUnsigned10x00: 不要求发送时间的时间戳
ReservedUnsigned5
ResultUnsigned16见表 84

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小可嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值