/**************************************************************************** ** 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在内的八位位组的数目,其值为8+m(m<1480); * @reserve1: 保留字节,为0; * @reserve2: 保留字节,为0; * * TPID 值:0x8100; * TCI 值: 由三部分组成: * PRI:User 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允许应用带有一组优先级限制,高优先级帧应设置其优先级为4~7,低优先级帧则为1~3,优 * 先级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 所定义)。因而采样值取如下值: * 为采样值保留的取值范围为 0x4000~0x7fff。如果没有配置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 */