基于rmii接口的smv/goose报文的fpga实现方法

文档序号:10538496阅读:1169来源:国知局
基于rmii接口的smv/goose报文的fpga实现方法
【专利摘要】本发明公开了基于RMII接口的SMV/GOOSE报文的FPGA实现方法,步骤一、对FPGA内部寄存器进行初始化,将报文数据缓存至发送缓冲区,等待发送使能信号;步骤二、接收到使能信号后,发送使能端拉高,首先发送前导数据,用于接收方实现同步及提取时钟信息,接着发送SFD信号,用于通知接收方有效数据的开始;步骤三、报文数据按SMV/GOOSE报文帧格式依次发送帧头部分和应用协议数据单元;步骤四、当报文数据达到要发送的长度时,数据传输结束。保证瞬时数据的传输要求,SMV接口可以高效、快速的将波形数据进行外传,减小数据传输的延时时间。GOOSE接口可以充分保证数据的传输时效性。
【专利说明】
基于RM丨丨接口的SMV/GOOSE报文的FPGA实现方法
技术领域
[0001] 本发明涉及电力系统数据通讯领域,尤其涉及一种基于RMII接口的SMV/G00SE报 文的FPGA实现方法。
【背景技术】
[0002] SMV是Sampled Measured Value的缩写,米样测量值,也称SV(Sampled Value),一 种用于实时传输数字采样信息的通信服务。采样值(SMV)报文在数据链路层的传输都是基 于IEEE802.3的以太网结构。
[0003] GOOSE是Generic Object Oriented Substation Event的缩写,面向通用对象的 变电站事件,是IEC 61850标准中用于满足变电站自动化系统快速报文需求的机制。
[0004] 随着以太网交换机芯片的集成度越来越高,1/0 口引脚的数目增加,功耗也随着增 加。传统的Mil (Media Independent Interface,媒体独立接口)接口有16个引脚,此接口也 可以实现SMV/G00SE的发送,但是会造成芯片尺寸的增加和功耗的增大,并加大了 PCB设计 的复杂度。严重消耗了 FPGA的硬件资源,并给硬件布局布线带来的相当大的困难,对于合并 单元的升级造成障碍,加大了合并单元的成本。

【发明内容】

[0005] 本发明的目的就是为了解决上述问题,提供一种基于RMII接口的SMV/G00SE报文 的FPGA实现方法,能够保证瞬时数据的传输要求,SMV接口可以高效、快速的将波形数据进 行外传,减小数据传输的延时时间,G00SE接口可以充分保证数据的传输时效性。
[0006] 为了实现上述目的,本发明采用如下技术方案:
[0007] 基于RMII接口的SMV/G00SE报文的FPGA实现方法,包括以下步骤:
[0008] 步骤一、对FPGA内部寄存器进行初始化,将报文数据缓存至发送缓冲区,等待发送 使能信号;
[0009] 步骤二、接收到使能信号后,发送使能端拉高,首先发送前导数据,用于接收方实 现同步及提取时钟信息,接着发送帧起始定界符sro信号,用于通知接收方有效数据的开 始;
[0010]步骤三、报文数据按SMV/G00SE报文帧格式依次发送帧头部分和应用协议数据单 元;
[0011] 步骤四、当报文数据达到要发送的长度时,数据传输结束。
[0012] 所述步骤二中,前导数据为7个字节的0x55,SH)信号为1个字节的0xd5。
[0013] 每当物理层芯片时钟下降沿时,通过TXD[1:0]端口发送出2bit数据,每发送完一 个字节,计数器加一。
[0014]所述步骤三中帧头部分包括目的地址、源地址、优先级标记、以太网类型码、APPID (application identification,应用标识)以及长度(Length,SMV/G00SE的字节长度)。 [0015]应用协议数据单元包括控制信息及采样数据。
[0016]所述步骤三的传送方法为,将缓冲区中报文数据送至发送端口,进入报文传输状 态,将报文数据按字节存放至发送缓冲寄存器,同时将要发送字节输出到CRC(Cyclic Redundancy Code,循环冗余校验码)校验模块,4个物理层PHY时钟后,发送完一个字节数 据,同时将CRC值更新,送回发送控制模块,等待下一字节数据。
[0017] CRC校验模块用来检验除前导同步码、帧起始定界符和帧校验序列以外内容在传 输过程中是否出现错误。
[0018]所述步骤四中,当计数器值等于要发送的长度时表明报文发送完毕,此时将最后 的CRC校验值通过TXD端口送出,数据传输结束。
[0019]在基准时钟REF_CLK的下降沿输出TXD [ 1:0 ]数据,然后在接下来的上升沿将数据 发送出去,保证足够长时间的数据建立和保持时间;分别发送同步帧数据和SFD信号以及数 据,并在数据发送完后紧跟着发送CRC校验码数据,完成整个以太网数据的发送过程。
[0020] 基于RMII接口的SMV/G00SE报文的FPGA实现系统,包括发送控制模块和双口 RAM芯 片,所述发送控制模块的两个输出端分别与双口 RAM芯片的R_Clk读时钟端口和R_En读使能 端口连接,发送控制模块的一个输出端通过地址产生器与双口 RAM芯片的RData_Ad数据地 址端口连接,还有一个输出端口直接连接RMII接口;
[0021] 所述双口 RAM芯片输出Data_out端口直接连接RMII接口的同时还通过并行CRC32 连接RMII接口;
[0022] 上层控制器的一个输出端直接连接发送控制模块的输入端,另外的四个输出端分 别连接双口 RAM芯片的W_En端口、Data_In端口、WData_Ad端口及W_Clk端口。
[0023]本发明的有益效果:
[0024]保证瞬时数据的传输要求,SMV接口可以高效、快速的将波形数据进行外传,减小 数据传输的延时时间。GOOSE接口可以充分保证数据的传输时效性。
【附图说明】
[0025] 图1为本发明所提供的方法的流程图;
[0026] 图2为RMII的发送时序;
[0027]图3为整个数据的发送时序图;
[0028]图4为程序占用资源图;
[0029] 图5为SMV报文;
[0030] 图6为程序原理图。
【具体实施方式】
[0031]下面结合附图与实施例对本发明作进一步说明。
[0032] 如图1所示,基于RMII接口的SMV/G00SE报文的FPGA实现方法,包括:
[0033]步骤一:对FPGA内部寄存器进行初始化,将报文数据缓存至发送缓冲区;等待发送 使能信号;
[0034]步骤二:接收到使能信号后,发送使能端TX_EN拉高,进入数据传输状态;每当PHY 芯片时钟下降沿通过TXD[1:0](发送数据线)端口发送出2bit数据,每发送完一个字节,计 数器加一;首先发送7个字节的"0x55"(Preamble),用于接收方实现同步及提取时钟信息, 接着发送为1个字节的"0xd5"(SFD),用于通知接收方有效数据的开始;
[0035]步骤三:将缓冲区中报文数据送至发送端口,进入报文传输状态。将报文数据按字 节存放至发送缓冲寄存器,同时将要发送字节输出到CRC校验模块,4个PHY时钟后,发送完 一个字节数据,同时将CRC值更新,送回发送控制模块,等待下一字节数据。报文数据按SMV/ GOOSE报文帧格式依次发送帧头部分(目的地址、源地址、优先级标记、以太网类型码、APPID 以及Length等)、APDU(应用协议数据单元,包括控制信息及采样数据);
[0036]步骤四:当计数器值等于Length时表明报文发送完毕,此时将最后的CRC校验值通 过TXD端口送出,数据传输结束。
[0037] RMII的发送时序如图2所示,在REF_CLK的下降沿输出TXD [ 1:0 ]数据,然后在接下 来的上升沿将数据发送出去,保证足够长时间的数据建立和保持时间。分别发送同步帧数 据和SH)信号以及数据,并在数据发送完后紧跟着发送CRC校验码数据,完成整个以太网数 据的发送过程。
[0038]如图3所示,整个数据的发送时序图,CPU将需要发送的数据填入发送缓冲区以后, 使能(TxEn_Phy)拉高,然后发送7个字节的"0x55",用于接收方实现同步及提取时钟信息; 发送SFD为1个字节的"0xd5",用于通知接收方有效数据的开始,发送完前导数据和SH)以 后,发送以太网帧头,之后将缓冲区域的数据按照PHY时钟进行发送,每发送完一个字节计 算一次CRC的值,直到数据发送完毕,输出CRC的值,此时SMV/G00SE报文发送完成。
[0039]如图4所示,总共消耗172个逻辑门,占用1%的内存,消耗内存较少,所占用FPGA的 总资源较少。
[0040] 如图5所示,使用Wireshark抓包工具获取SMV报文,然后我们就能知道MAC目的地 址为(^€€€€€€€€€€€1源地址为(^01000)040001,5]\^报文对应的以太网类型为(^88匕3, APPID为0x4000,长度Length为0x0077 (119);紧接着为4个字节的保留字,0x60为APDU标记, 0x6d为APDU的长度,0x80为ASDU数目标记,0x01为ASDU数目长度,0x82为采样值计数器标 记,0x02代表采样值计数器长度有2个字节,0x0521代表采样值计数器值(即SmpCnt值为 1313),每次取得新采样值时加1,在采样值被时钟信号同步(即SmpSynch = True)且同步信 号出现时计数器应置0; 0x83为配置版本号标记,0x04表示配置版本号长度有4个字节,即紧 接着的0x00000001,表明配置版本号值为1,接下来的0x85代表采样值同步标记,Length = 0x01,Value = 0x01;采样值被时钟信号同步则置为1,否则置为0; 0x87为采样值序列标记, 0x30则代表采样值序列长度有64个字节,并配置了 8路数据,每一路数据占8个字节,前四个 字节表示数据的值域,后四个字节表示数据的品质位。
[0041 ] 编译环境:
[0042] FPGA采用的是Altera公司生产的Cyclonelll系列的EP3C10E144C8,此芯片共有 144个引脚封装,10320个逻辑门单元,414K内部存储器和94个I/O口。实现中采用Verilog HDL硬件描述语言进行描述,使用模块化设计构建整个并行硬件处理系统。Verilog HDL适 合算法级、寄存器传输级、逻辑级、门级和版图级等各个层次的电路设计和描述。如图6所 示,给出了报文发送硬件实现结构框图,通过写时钟和写使能将SMV采样序列值的8个通道 的数据填充进去,之后将缓冲区域的数据通过RMII接口行发送,每发送完一个字节计算一 次CRC的值,直到数据发送完毕,输出CRC的值,此时SMV/G00SE报文发送完成。原理图如图6 所示。
[0043] MAC层数据发送模块的设计
[0044] 1,定义输入输出接口,输入接口为Phy_Clk(模块输入时钟),Phy_Tran_En(数据包 发送触发信号),Crc_In(校验值输入);输出接口为Data_0ut(数据输出)Clk_CRC320ut(校 验时钟),PhyTx_En(发送使能信号),Phy_Txd(发送数据线)。
[0045] 2,定义寄存器和参数。寄存器包括:reg DataValid_CRC320ut(校验数据有效有效 标志位)reg Calc_CRC320ut(校验数据计算有效标志位),reg Clk_CRC320ut(校验数据计 算时钟位),reg RmiiTx_En(RMII接口,输出使能控制位),reg PhyTx_En(RMII接口,输出使 能线),reg[l :0]Phy_Txd(RMII接口,输出数据线),reg TxEn_Flag(数据包发送使能标志 位),reg[9:0]TxData_Count(包含APPID数据发送计数),reg[ 'ADDR_SZ_1:0]TxAllData_ Count (所有数据发送计数,帧头除外)reg[2:0]TxPreaSfd_Count (数据帧首部发送计数包 括字节同步码和SFD),reg [ 1:0 ] TxByte_Count (字节发送计数,一个字节拆成4部分发送,小 端形式,低位在前),reg[2:0]TxCrc_Count,(四字节CRC数据发送计数),reg[l :0]State_ Send(状态机寄存器,reg[' ADDR_SZ-1:0]Length(数据发送的总长度);内部相关参数包括: parameter Preamble = 8 'h55(Preamble前导码),parameter SFD = 8 'hD5(SFD,帧起始定界 符),parameter SFDCountEnd = 3'd7(SFD所在地址位置),parameter LengthByteAdd=10' d21(数据长度所在地址以0..开头),发送状态机参数:parameter State_PreaSfd = 2'dO (发送帧头),?&瓜1116丨613丨&丨6_麻0802 = 2'(11(发送数据帧)4&瓜1116丨613丨&丨6_?03 = 2'(12 (发送校验序列)。
[0046] 3,初始化寄存器。
[0047] 4,发送帧头和数据,接收到使能信号后,发送使能端TX_EN拉高,进入数据传输状 态;每当PHY芯片时钟下降沿通过TXD[1:0]端口发送出2bit数据,每发送完一个字节,计数 器加一;首先发送7个字节的"0x55"(Preamble),用于接收方实现同步及提取时钟信息,接 着发送为1个字节的"〇 xd5"(sro),用于通知接收方有效数据的开始;将缓冲区中报文数据 送至发送端口,进入报文传输状态。将报文数据按字节存放至发送缓冲寄存器,同时将要发 送字节输出到CRC校验模块,4个PHY时钟后,发送完一个字节数据,同时将CRC值更新,送回 发送控制模块,等待下一字节数据。报文数据按SMV/G00SE报文帧格式依次发送帧头部分 (目的地址、源地址、优先级标记、以太网类型码、APPID以及Length等)、APDU(应用协议数据 单元,包括控制信息及采样数据);
[0048] 5,当计数器值等于要发送的长度时表明报文发送完毕,此时将最后的CRC校验值 通过TXD端口送出,数据传输结束。
[0049] 按照以上的原理具体的程序如下所示。
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057] CRC校验模块的设计
[0058] CRC校验模块用来检验除前导同步码、帧起始定界符和帧校验序列以外内容在传 输过程中是否出现错误,程序的实现如下:
[0059]
[0060]
[0061] 目前以太网物理层功能通常是直接采用专业的物理层芯片来完成。物理层为以太 网上的各个设备之间的数据通信提供了传输介质及互连设备,并且向数据链路层设备提供 标准接口。IEEE802.3给出了MAC层与PHY层接口的标准定义,常用的接口有Mil、RMII、GMII 等。
[0062] MII(Media Independent Interface)即媒体独立接口。它是IEEE-802.3定义的以 太网行业标准。它包括一个数据口,以及一个MAC和PHY之间的管理接口。数据接口包括分别 用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数 据接口总共需要16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信 号。通过管理接□,上层能监视和控制PHY。"介质无关"表明在不对MAC硬件重新设计或替换 的情况下,任何类型的PHY设备都可以正常
[0063] RMII(Reduced Media Independent Interface)即简化的MII接口,在数据的收发 上它比MII接口少了一倍的信号线,一般要求是50M的总线时钟。RMII-般用在多端口的交 换机上,它不是每个端口安排收发两个时钟,而是所有的数据端口公用一个时钟用于所有 端口的收发,节省了不少的端口数目。RMII的接口有7根数据线,比MII少了一倍。工作。支持 10/100M的物理环境,工作频率为5M/50M。
[0064] 智能变电站作为智能电网建设的核心环节,是智能电网安全稳定运行的基础。由 于电子式互感器在智能变电站中的应用,改变了传统变电站保护测控装置直接模拟采样并 进行数据运算的方式,对装置软、硬件平台及数据接收处理方法提出了新的要求。所以研究 适用于RMII接口发送SMV/G00SE的方法具有重要的意义。此外,通过RMII接口发送SMV/ G00SE,采用SMV对采样点进行快速传输,保证数据的实时性,解决了大数据的吞吐能力。采 用GOOSE数据传输协议,可对事件信息进行快速传输,减小通信延时,有助于对电网状态的 实时把控。通过SMV和GOOSE高速接口可以对实时的波形数据及遥信位置进行外传,此接口 适用于上层应用需要波形数据,并且对数据延时有较高要求的场合。
[0065] 上述虽然结合附图对本发明的【具体实施方式】进行了描述,但并非对本发明保护范 围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不 需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
【主权项】
1. 基于RMII接口的SMV/GOOSE报文的FPGA实现方法,其特征是,包括以下步骤: 步骤一、对FPGA内部寄存器进行初始化,将报文数据缓存至发送缓冲区,等待发送使能 信号; 步骤二、接收到使能信号后,发送使能端拉高,首先发送前导数据,用于接收方实现同 步及提取时钟信息,接着发送帧起始定界符SFD信号,用于通知接收方有效数据的开始; 步骤三、报文数据按SMV/G00SE报文帧格式依次发送帧头部分和应用协议数据单元; 步骤四、当报文数据达到要发送的长度时,数据传输结束。2. 如权利要求1所述基于RMII接口的SMV/G00SE报文的FPGA实现方法,其特征是,所述 步骤二中,前导数据为7个字节的0x55,SFD信号为1个字节的0xd5。3. 如权利要求1所述基于RMII接口的SMV/GOOSE报文的FPGA实现方法,其特征是,每当 物理层芯片时钟下降沿时,通过TXD[1:0]端口发送出2bit数据,每发送完一个字节,计数器 加一。4. 如权利要求1所述基于RMII接口的SMV/GOOSE报文的FPGA实现方法,其特征是,所述 步骤三中帧头部分包括目的地址、源地址、优先级标记、以太网类型码、应用标识APPID以及 长度。5. 如权利要求1所述基于RMII接口的SMV/GOOSE报文的FPGA实现方法,其特征是,应用 协议数据单元包括控制信息及采样数据。6. 如权利要求1所述基于RMII接口的SMV/GOOSE报文的FPGA实现方法,其特征是,所述 步骤三的传送方法为,将缓冲区中报文数据送至发送端口,进入报文传输状态,将报文数据 按字节存放至发送缓冲寄存器,同时将要发送字节输出到CRC校验模块,4个PHY时钟后,发 送完一个字节数据,同时将CRC值更新,送回发送控制模块,等待下一字节数据。7. 如权利要求6所述基于RMII接口的SMV/GOOSE报文的FPGA实现方法,其特征是,CRC校 验模块用来检验除前导同步码、帧起始定界符和帧校验序列以外内容在传输过程中是否出 现错误。8. 如权利要求3所述基于RMII接口的SMV/GOOSE报文的FPGA实现方法,其特征是,所述 步骤四中,当计数器值等于要发送的长度时表明报文发送完毕,此时将最后的CRC校验值通 过TXD端口送出,数据传输结束。9. 如权利要求1所述基于RMII接口的SMV/GOOSE报文的FPGA实现方法,其特征是,在基 准时钟REF_CLK的下降沿输出TXD[1:0]数据,然后在接下来的上升沿将数据发送出去,保证 足够长时间的数据建立和保持时间;分别发送同步帧数据和SFD信号以及数据,并在数据发 送完后紧跟着发送CRC校验码数据,完成整个以太网数据的发送过程。10. 基于RMII接口的SMV/GOOSE报文的FPGA实现系统,其特征是,包括发送控制模块和 双口 RAM芯片,所述发送控制模块的两个输出端分别与双口 RAM芯片的R_CIk读时钟端口和 R_En读使能端口连接,发送控制模块的一个输出端通过地址产生器与双口 RAM芯片的 RData_Ad数据地址端口连接,还有一个输出端口直接连接RMII接口; 所述双口 RAM芯片输出Data_out端口直接连接RMII接口的同时还通过并行CRC32连接 RMII接口; 上层控制器的一个输出端直接连接发送控制模块的输入端,另外的四个输出端分别连 接双口 RAM 芯片的 W_En 端口、Data_In 端口、WData_Ad 端口及 W_Clk 端口。
【文档编号】H04L7/04GK105897395SQ201610209498
【公开日】2016年8月24日
【申请日】2016年4月6日
【发明人】程新功, 张 浩, 于明珠, 丁冬睿, 李石清, 张静亮, 殷文月, 邵振振, 王玉真
【申请人】济南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1