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

1 year ago
/****************************************************************************
** 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<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ(sample value)<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>(link layer)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(pdu)ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>
* @des_mac: Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ(ΪFF:FF:FF:FF:FF:FF<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>),ISO/IEC8802-3<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>
* @src_mac: Դ<EFBFBD><EFBFBD>ַ,ISO/IEC8802-3<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>
* @tpid: <EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ(Tag Protocol Identifier),<EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>и<EFBFBD><EFBFBD>ֶ<EFBFBD>(<EFBFBD>DZ<EFBFBD>׼<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD>
* @tci: <EFBFBD><EFBFBD><EFBFBD>ǵĿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(Tag Control Information),<EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>и<EFBFBD><EFBFBD>ֶ<EFBFBD>(<EFBFBD>DZ<EFBFBD>׼<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD>
* @ether_type: <EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>
* @appid: Ӧ<EFBFBD>ñ<EFBFBD>ʶ,<EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Ӧ<EFBFBD>õIJ<EFBFBD><EFBFBD><EFBFBD>ֵ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>ֵʱ<EFBFBD><EFBFBD>Ҫ<EFBFBD>˶<EFBFBD>Ӧ<EFBFBD>ñ<EFBFBD>ʶ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ò<EFBFBD>
* <EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD>
* @epdu_length: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APPID<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PDU<EFBFBD><EFBFBD><EFBFBD>ڵİ<EFBFBD>λλ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ8<EFBFBD><EFBFBD>m(m<1480);
* @reserve1: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<EFBFBD>Ϊ0;
* @reserve2: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<EFBFBD>Ϊ0;
*
* TPID ֵ<EFBFBD><EFBFBD>0x8100;
* TCI ֵ: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
* PRI<EFBFBD><EFBFBD>User priority(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ),ռǰ3bit(BS3)<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>user priorityֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>Ͷ<EFBFBD>ʱ<EFBFBD><EFBFBD>
* <EFBFBD>̵ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>GOOSE<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߸<EFBFBD><EFBFBD>ء<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱʡֵ(4);
* CFI<EFBFBD><EFBFBD>ռPRI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1bit<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʶ<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RIF<EFBFBD><EFBFBD>Ϣ;<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>г<EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>Ƕ<EFBFBD><EFBFBD>RIF<EFBFBD><EFBFBD>,ֵӦ
* <EFBFBD><EFBFBD>Ϊ0;<EFBFBD><EFBFBD>ֵΪ1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ISO/IEC8802-3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>У<EFBFBD>Length/Type<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>(RIF);
* VID: ռ֮<EFBFBD><EFBFBD>ʣ<EFBFBD>µ<EFBFBD>12bit;Ϊ֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ֿ<EFBFBD>ѡ<EFBFBD>Ļ<EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱӦ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ(VID)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶVID ȱʡֵΪ0<EFBFBD><EFBFBD>
* ע<EFBFBD><EFBFBD>IEEE802.1Q<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>֡Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>Ϊ4<EFBFBD><EFBFBD>7<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>֡<EFBFBD><EFBFBD>Ϊ1<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>ȼ<EFBFBD>1Ϊδ<EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>֡<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ӡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ(VID)<EFBFBD><EFBFBD>ȱʡֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ(VID)<EFBFBD><EFBFBD>ȱʡֵ
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> VIDȱʡֵ <EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>ȱʡֵ
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ 0 4
* ETHER_TYPE ֵ: <EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16λ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]ȡֵ<EFBFBD><EFBFBD>[APPID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]ȡֵ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡֵ<EFBFBD><EFBFBD>[APPID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]ָAPPID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
* Ӧ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡֵ(16<EFBFBD><EFBFBD><EFBFBD><EFBFBD>) APPID<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* IEC61850-8-1GOOSE 88-B8 0 0
* IEC61850-8-1GSE<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 88-B9 0 0
* IEC61850-9-1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ 88-BA 0 1
* IEC61850-9-2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ 88-BA 0 1
* APPID ֵ<EFBFBD><EFBFBD>Ӧ<EFBFBD>ñ<EFBFBD>ʶ<EFBFBD><EFBFBD>APPID <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APPID<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>[APPID <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]<EFBFBD><EFBFBD>[ʵ<EFBFBD>ʱ<EFBFBD>ʶ]
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>APPID <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>8 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
* Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡֵ<EFBFBD><EFBFBD>ΧΪ 0x4000<EFBFBD><EFBFBD>0x7fff<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APPID<EFBFBD><EFBFBD>ȱʡֵӦΪ0x4000<EFBFBD><EFBFBD>ȱʡֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD>ͬһϵͳ<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>Ψһ<EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>ֵӦ<EFBFBD>ñ<EFBFBD>ʶ(SV APPID)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳǿ<EFBFBD><EFBFBD>ִ<EFBFBD>С<EFBFBD>
*
************************************************************************************/
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 */