You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
4.0 KiB
C

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/****************************************************************************
** File name : HTIEC61850Protocol.h
** Description : define iec 61850 network protocol api
** Create date : 2019.09.01
** Auther by : Liuyx
** Version info : V1.0.01
** Copyright (C) 2002-2019 xi'an huatek, Inc Co., Ltd
** Update record:
** DATE AUTHER DESC
** -------------------------------------------------------------------------
** 2019.09.01 Liuyx first build
****************************************************************************/
#ifndef __HT_IEC_61850_PROTOCOL_H
#define __HT_IEC_61850_PROTOCOL_H
#if defined (__cplusplus)
extern "C" {
#endif /* defined (__cplusplus) */
#pragma pack (push ,1)
/************************************************************************************
* svpdu_lpdu_head - 9-2/9-1采样值(sample value)链路层(link layer)报文(pdu)头部信息。
* @des_mac: 目标地址(为FF:FF:FF:FF:FF:FF表示广播包),ISO/IEC8802-3标准地址
* @src_mac: 源地址,ISO/IEC8802-3标准地址
* @tpid: 标记的协议标识(Tag Protocol Identifier),有些报文没有该字段(非标准的)
* @tci: 标记的控制信息(Tag Control Information),有些报文没有该字段(非标准的)
* @ether_type: 以太网类型;
* @appid: 应用标识,标识不用的应用的采样值,连续几个包取得采样值时需要核对应用标识,否则会导致取得采
* 样值混乱;
* @epdu_length: 包括以APPID开始的以太网类型PDU在内的八位位组的数目其值为8m(m<1480);
* @reserve1: 保留字节为0;
* @reserve2: 保留字节为0;
*
* TPID 值0x8100;
* TCI 值: 由三部分组成:
* PRIUser priority(优先权),占前3bit(BS3)应对user priority值进行配置,以区分采样值和定时苛
* 刻的、保护相关的GOOSE信息或低优先级的总线负载。如果不配置优先级则应采用缺省值(4);
* CFI占PRI后面1bit用于标识是否含有RIF信息;在以太网标记帧中长度/类型域后没有嵌入RIF域,值应
* 该为0;若值为1则表明在ISO/IEC8802-3标记帧中Length/Type域后接着内嵌的路由信息域(RIF);
* VID: 占之后剩下的12bit;为支持虚拟局域网是一种可选的机制,如果采用了这种机制,那么配置时应设
* 定虚拟局域网标识(VID)。另外虚拟局域网标识VID 缺省值为0
* 注IEEE802.1Q允许应用带有一组优先级限制高优先级帧应设置其优先级为47低优先级帧则为13
* 先级1为未标记的帧应避免采用优先级0因为这会引起正常通信下不可预见的传输时延。优先级和虚拟
* 网标识(VID)的缺省值表:优先级和虚拟网标识(VID)的缺省值
* 服务 VID缺省值 优先级缺省值
* 采样值 0 4
* ETHER_TYPE 值: 以太网类型码16位表示下表描述[以太网类型码]取值和[APPID类型码]取值;
* 表:分配的以太网类型码取值([APPID类型码]指APPID的最高两位
* 应用 以太网类型码取值(16进制) APPID类型
* IEC61850-8-1GOOSE 88-B8 0 0
* IEC61850-8-1GSE管理 88-B9 0 0
* IEC61850-9-1采样值 88-BA 0 1
* IEC61850-9-2采样值 88-BA 0 1
* APPID 值应用标识。APPID 用以选择采样值信息并区分应用关联。APPID的值是[APPID 类型码]和[实际标识]
* 的组合APPID 类型码被定义为其最高两位(如表8 所定义)。因而采样值取如下值:
* 为采样值保留的取值范围为 0x40000x7fff。如果没有配置APPID缺省值应为0x4000。缺省值被保留为
* 表明缺少配置。强烈推荐在同一系统内采用唯一的、面向数据源的采样值应用标识(SV APPID)。这应当由
* 配置系统强迫执行。
*
************************************************************************************/
typedef struct {
unsigned char des_mac[6];
unsigned char src_mac[6];
unsigned short tpid;
unsigned short tci;
unsigned short ether_type;
unsigned short appid;
unsigned short epdu_length;
unsigned short reserve1;
unsigned short reserve2;
}ST_SVPDU_LPDU_HEAD;
#pragma pack (pop)
#if defined (__cplusplus)
}
#endif /* defined (__cplusplus) */
#endif /* __HT_IEC_61850_PROTOCOL_H */