基于FPGA的合并单元数据传输编解码模块的研究
史皓然;方春恩;李伟;罗彦
【摘 要】合并单元是电子式电流、电压互感器的接口装置,在一定程度上实现了过程层数据的共享和数字化。其作为遵循IEC 61850标准的数字化变电站间隔层、站控层设备的数据来源,对智能化变电站运行有着十分重要的作用。利用FPGA(现场可编程逻辑门阵列)可构建合并单元数据传输编解码的实现方案,即对CRC校验和曼彻斯特编解码的实现。通过Verilog HDL语言在QuartusⅡ软件下编程,利用Model Sim仿真验证了本设计的可行性。
【期刊名称】《电器与能效管理技术》
【年(卷),期】安妮海瑟薇 奥斯卡2015(000)023
【总页数】6页(P23-27,43)
【关键词】FPGA 合并单元 CRC 曼彻斯特编码 曼彻斯特解码
【作 者】史皓然;方春恩;李伟;罗彦
【作者单位】西华大学,四川成都610039;;;;
【正文语种】中 文
高铁和动车【中图分类】TM564
0 引言
随着电子式互感器的广泛应用,变电站的二次接线概念也随之发生了很多变化,更多的间隔层功能被下放到过程层中完成。国际电工委员会制定了电子电流、电压互感器的标准IEC 60044-7/8,第一次提出了合并单元的定义。合并单元是电子式电流、电压互感器的接口装置[1],在一定程度上实现了过程层数据的共享和数字化。它作为遵循IEC 61850标准的数字化变电站间隔层、站控层设备的数据来源,起十分重要的作用。
在我国,随着DL/T 860系列标准在变电站自动化系统的广泛应用,变电站过程层设备和间隔层设备之间的信息交互发生了较大的改变。合并单元作为互感器和间隔层智能电子设备间采样数据的桥梁,已成为信息采样及传输的重要设备[2]。
1 数据编解码模块的总体设计
智能化变电站的结构一般分为3层:过程层、间隔层和变电站层,电子式电流、电压互感器属于过程层。电子式互感器保护和测量的数据按照FT3格式和曼彻斯传输,传输速度为2.5 Mb/s,保证了传输过程的实时性和准确性。用户接收数据终端首先要对传输数据的曼彻斯形式进行解码,得到相应的数据。数据传输总模块如图1所示。
睡过章子怡的人图1 数据传输总模块
下面对 FT3格式进行介绍,以及对 CRC(Cyclic Redundancy Check)校验和曼彻斯特编解码的概念和实现方法进行阐述,并对其进行仿真验证。
2 FT3帧格式
合并单元和电子式互感器的数据通信严格参照GB/T 18657.1—2002的FT3固定长度帧格式。在标准中,列出了4种不同的数据传输帧格式,这4种FT3格式分别适用于单相互感器,三相电流互感器,三相电压互感器以及三相电流、电压互感器。这4种帧格式都是以一个十六进制数0564作为帧头,后面为几组用户数据。适用于单相互感器、三相电流互感器、三相电压互感器的数据帧格式中包含两组用户数据,而三相电流、电压互感器所使用的数据帧格式里包含三组用户数据[3-7]。
FT3格式具有良好的数据完整性,其帧结构使它有可能用于高速率的多点网络同步数据链接[8]。链接服务类别为:SEND/NO REPLY(发送/不回答)。
在本设计中使用适用于单相互感器的FT3帧格式,其数据传输帧格式如表1所示。
表1 FT3固定长度格式帧(单相互感器)msb—最高有效位;lsb—最低有效位。?
金素梅传输规则:
R1——线路空闲状态是二进制1,两帧之间按曼彻斯特编码连续发送此值1,即010101……,且两帧之间传输空闲位不少于70位。
R2——每帧开始的两个八位位组为启动字符,固定为0564H。
R3——保护用数据、测量用数据由两个字节表示一个数据。
R4——一个帧中含有两组用户数据,第一组为16 Byte,第二组为4 Byte,每组数据之后跟随一个16 bit的CRC校验序列。
R5——校验序列为由多项式:x16+x13+x12+x11+x10+x8+x6+x5+x2+1生成的码,再将由此生成的校验序列的16 bit取反。
张铁林主演的电视剧
3 CRC校验实现
为了保证数据传输的可靠性,需要在数据组后加入CRC校验码对数据传输具有检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性[9]。
DL/T 282—2012要求用户数据之后跟随一个16 bit的CRC校验序列,由一个多项式G(x)生成校验,生成16 bit校验序列再取反成为所要求的校验序列[10],DL/T 282—2012 标准中所规定的多项式为
G(x)=x16+x13+x12+x11+x10+
x8+x6+x5+x2+1
把待发送的数据二进制序列作为一个多项式M(x)的系数,如 1011,其 M(x)=x3+x+1。
下面详细说明CRC校验的步骤:
(1)将信息多项式M(x)左移k位,即M(x)乘以xk得xkM(x)。
(2)将xkM(x)除以多项式G(x),得
M'(x)=xkM(x)/G(x) (1)令
M'(x)=Q(x)+R(x)/G(x) (2)其中,Q(x)为商;R(x)为余数多项式。将R(x)多项式进行取反后得到所需的校验序列r(x)。
每日一句英语(3)令 m(x)=M(x)x16+R(x),将 m(x)所对应的比特序列作为一个整体发送,接收方校验时,对所对应的序列多项式m'(x)做如下处理:
C(x)=m'(x)/G(x) (3)如果满足下列两个条件:
C(x)=Q(x),R(x)=0 (4)则有m'(x)=m(x) (5)
即认为校验无错码;
如果余式不满足条件,即R(x)≠0 (6)
则认为有错码。
CRC编码从根本上可认为是数字信号的移位和异或操作,因此,通过数字逻辑可对其实现[11]。本文中采用的是串行CRC编码方式。
串行编码方式结构比较简单,且容易实现。根据标准中规定的生成多项式可画出电路结构,如图2所示。由图2可知,在进行串行计算时,每当输入一位数据,输入的数据和上一次异或运算的结构组成新的数据,循环进行异或运算,直到所有数据输入完成。这时移位寄存器中的状态值即为输入数据的 CRC 校验码[12-13]。在QuartusⅡ9.1中使用 Verilog HDL语言编程进行编译,并在ModelSim中仿真,就可实现CRC检验的功能。