一种GOOSE报文收发系统及其控制方法与流程

文档序号:11732053阅读:393来源:国知局
一种GOOSE报文收发系统及其控制方法与流程

本发明涉及报文收发控制技术领域,具体而言,涉及一种goose报文收发系统及其控制方法。



背景技术:

goose是iec61850中规定的一种快速报文传输机制,用于在变电站内智能电子设备之间传输重要的实时性信号。goose报文通常用于传输跳闸、合闸、闭锁等信息,在iec61850标准中属于快速报文类型,所以iec61850中对goose报文的实时性以及可靠性提出了较高的要求。

为了确保goose报文传输的实时性和可靠性,需要合理设计电路,并且通过编程实现goose报文的特殊映射方式。目前,如何在实现goose报文特殊映射方式的同时保证goose报文传输的实时性和可靠性,是本领域技术人员需要解决的技术问题。



技术实现要素:

本发明提供一种goose报文收发系统,用以在实现goose报文特殊映射方式的同时保证goose报文传输的实时性和可靠性。

为达到上述目的,本发明提供了一种goose报文收发系统,其包括:外围模块、数据处理模块和以太网控制模块,其中,

所述外围模块包括液晶显示模块、数据存储模块、通信报警模块和按键输入模块,所述数据存储模块用于记录goose数据集成员变化的历史数据;通信报警模块当通信发生中断或报文发生丢失时触发报警;液晶显示模块与按键输入模块用于实现人机交互;

所述数据处理模块连接在所述外围模块与所述以太网控制模块之间;

所述数据处理模块与以太网控制模块通过十六路并行数据线连接;

所述以太网控制模块使用符合iso/iec8802-3的100base-fx光纤传输系统,在光纤上实现传输速率为100mbps的以太网。

在本发明的一实施例中,所述数据处理模块包括两个stm32f407,所述数据处理模块用于控制以太网控制模块完成网卡的初始化、报文的发送/接收以及对外围模块中的液晶显示模块、数据存储模块、通信报警模块和按键输入模块发送/接收的数据进行处理及控制。

在本发明的一实施例中,所述以太网控制模块包括以太网控制器dm9000aep和以太网连接器hr911105a,以太网控制器dm9000aep能够实现100mbps的通信速率,以完成goose报文的快速发送和接收,以太网连接器hr911105a用于避免dm9000aep受到双绞线上直流电压和高频信号干扰。

本发明还提供了一种应用于上述goose报文收发系统中的goose报文收发控制方法,其包括以下步骤:

s1:初始化以太网控制器dm9000aep,首先设置stm32f407的fsmc管脚以及配置dm9000aep的控制口线,然后再通过stm32f407设置dm9000aep内部寄存器的初始值;

s2:控制goose报文进行发送,通过stm32f407控制dm9000aep内部的寄存器,设置报文内容以及发送时间间隔,外围模块中的数据存储模块对发送的goose报文进行记录并存储;

s3:控制goose报文进行接收,stm32f407通过读取帧接收标志判断有无数据包,如果有则读取数据包内容并对goose报文进行解码分析,外围模块中的数据存储模块对接收的goose报文进行存储,外围模块中的通信报警模块对通信进行监控,如果发生通信中断或报文丢帧则触发通信报警模块进行报警。

在本发明的一实施例中,步骤s1包括以下子步骤:

s11:配置dm9000aep控制口线,设置stm32f407的fsmc管脚为复用推挽输出;

s12:配置fsmc并口访问时序,初始化nor/sram,使能指定的nor/sram存储区域;

s13:将dm9000aep进行软件重置,关闭中断使能;

s14:设置写入phy寄存器的值,设定mac地址、广播寄存器和多播寄存器;

s15:打开中断使能,使能接收中断;

s16:读取芯片id,判断是否与预先设计值相同,如果是则进入步骤s17,如果否则进入步骤s18;

s17:初始化成功,进行后续步骤;

s18:初始化失败,重新开始初始化,返回步骤s11。

在本发明的一实施例中,步骤s2包括以下子步骤:

s21:goose报文组帧和预处理;

s22:检测数据集成员是否发生变位,如果是则进入步骤s24,如果否则进入步骤s23;

s23:sqnum加1,stnum保持不变,同步当前时间到goose报文;

s24:sqnum清零,stnum加1,同步数据集成员值和当前时间到goose报文;

s25:判断数据包长度是否超过最大长度,如果是则进入步骤s27,如果否则进入步骤s26;

s26:计算下一帧传送指针位,并将goose报文数据从系统中移入内存;

s27:该封包为无效数据包,计算下一帧传送指针位并返回步骤s21;

s28:控制dm9000aep数据包传送控制寄存器发送goose报文。

在本发明的一实施例中,步骤s3包括以下子步骤:

s31:清除中断标志,读取帧接收标志;

s32:判断帧接收标志是否为01h,如果是则进入步骤s33,如果否则进入步骤s34;

s33:数据包为有效数据包,读取数据包相关信息和长度;

s34:判断帧接收标志是否为00h,如果是则进入步骤s35,如果否则进入步骤s36;

s35:没有接收到数据包,返回步骤s31。

s36:初始化失败,重新初始化dm9000aep,返回步骤s31;

s37:判断数据包长度是否在64~1356字节之间,如果是则进入步骤s38,如果否则进入步骤s39;

s38:对数据包进行asn.1/ber解码,读取stnum和sqnum,读取goose报文数据集内容;

s39:跳过该数据包,返回步骤c1;

s310:判断stnum和sqnum是否变化正确,如果是则进入步骤s311,如果否则进入步骤s312;

s311:根据goose报文数据集内容,对事件作出相应处理;

s312:发出报文丢失报警,返回步骤s31;

s313:将内存中的goose报文数据移入系统中,计算下一包指针位,返回步骤s31。

本发明提供的goose报文收发系统及其控制方法不仅能够实现goose报文特殊映射方式,同时还能够保证goose报文传输的实时性和可靠性,不仅能够更快速、更规范地传输goose报文,还能够有效克服电磁干扰。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一个实施例的goose报文收发系统的架构示意图;

图2为以太网控制器dm9000aep初始化的流程图;

图3为goose报文发送的流程图;

图4为goose报文接收的流程图。

附图标记说明:1-外围模块;11-液晶显示模块;12-数据存储模块;13-通信报警模块;14-按键输入模块;2-数据处理模块;3-以太网控制模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明一个实施例的goose报文收发系统的架构示意图,如图1所示,本发明提供的goose报文收发系统包括:外围模块1、数据处理模块2和以太网控制模块3,其中,

外围模块1包括液晶显示模块11、数据存储模块12、通信报警模块13和按键输入模块14,数据存储模块12用于记录goose数据集成员变化的历史数据;通信报警模块13当通信发生中断或报文发生丢失时触发报警;液晶11显示模块与按键输入模块14用于实现人机交互;

数据处理模块2连接在外围模块1与以太网控制模块3之间;

数据处理模块2与以太网控制模块3通过十六路并行数据线连接;

以太网控制模块3使用符合iso/iec8802-3的100base-fx光纤传输系统,在光纤上实现传输速率为100mbps的以太网。

如图1所示,数据处理模块2包括两个stm32f407,数据处理模块2用于控制以太网控制模块完成网卡的初始化、报文的发送/接收以及对外围模块中的液晶显示模块、数据存储模块、通信报警模块和按键输入模块发送/接收的数据进行处理及控制。

如图1所示,以太网控制模块3包括以太网控制器dm9000aep和以太网连接器hr911105a,以太网控制器dm9000aep能够实现100mbps的通信速率,以完成goose报文的快速发送和接收,以太网连接器hr911105a用于避免dm9000aep受到双绞线上直流电压和高频信号干扰。

另外说明图1中未能呈现出的具体细节:stm32f407与以太网控制器dm9000aep通过fsmc(灵活的静态存储控制器)接口相连,并采用软件复位。操作需要用到的dm9000aep上的引脚有sd0~sd15、iow、ior、int0、cmd和cs,读信号线ior与处理器读信号线fsmc_noe相接,写信号线iow与处理器写信号线fsmc_nwe相接,片选信号线cs与fsmc_ne2相连接,这三根信号线均低电平有效,cmd端口与fsmc_a18相连,数据总线sd0~sd15与fsmc_d0~fsmc_d15相连接。采用dm9000aep作为以太网控制模块的主要组成部分,可以实现100mbps的通信速率。生成goose报文时,采用iso/iec8802-3的帧格式进行打包传输。采用hr911105a作为网络连接器,可以限制直流信号和高频电压的干扰。

本发明提供的应用于上述goose报文收发系统中的goose报文收发控制方法包括以下步骤:

s1:初始化以太网控制器dm9000aep,首先设置stm32f407的fsmc管脚以及配置dm9000aep的控制口线,然后再通过stm32f407设置dm9000aep内部寄存器的初始值,以确保dm9000aep初始化成功;

图2为以太网控制器dm9000aep初始化的流程图,如图2所示,步骤s1包括以下子步骤:

s11:配置dm9000aep控制口线,设置stm32f407的fsmc管脚为复用推挽输出;

s12:配置fsmc并口访问时序,初始化nor/sram,使能指定的nor/sram存储区域;

s13:将dm9000aep进行软件重置,关闭中断使能;

s14:设置写入phy寄存器的值,设定mac地址、广播寄存器和多播寄存器;

s15:打开中断使能,使能接收中断;

具体的,于步骤s15中,采用中断接收goose报文,将dm9000aep中断信号int0连接到stm32f407zgt6的pc0上,然后将pc0连接到中断线上,将中断设置为下降沿触发,抢占优先级为0,子优先级为1。当dm9000aep接收到报文时,会触发中断并且调用报文接收函数将接收到的报文存放在内存的指定位置。

s16:读取芯片id,判断是否与预先设计值相同,如果是则进入步骤s17,如果否则进入步骤s18;

s17:初始化成功,进行后续步骤;

s18:初始化失败,重新开始初始化,返回步骤s11。

s2:控制goose报文进行发送,通过stm32f407控制dm9000aep内部的寄存器,设置报文内容以及发送时间间隔,外围模块1中的数据存储模块12对发送的goose报文进行记录并存储;

图3为goose报文发送的流程图,如图3所示,步骤s2包括以下子步骤:

s21:goose报文组帧和预处理;

s22:检测数据集成员是否发生变位,如果是则进入步骤s24,如果否则进入步骤s23;

s23:sqnum加1,stnum保持不变,同步当前时间到goose报文;

s24:sqnum清零,stnum加1,同步数据集成员值和当前时间到goose报文;

具体的,于步骤s23和步骤s24中,同步当前时间到goose报文,采用stm32f407的内部实时时钟(rtc)来计算时间。

s25:判断数据包长度是否超过最大长度,如果是则进入步骤s27,如果否则进入步骤s26;

具体的,步骤s25中,判断数据包长度是否超过最大长度,通常情况下goose报文的apdu长度最少约为120字节。形成以以太网数据帧后,增加了其他必要的字段。其中前导码字段占7字节;目的地址字段和源地址字段各占6字节;优先级标记字段、帧校检字段占4字节;以太网类型值字段、appid字段、长度字段、保留位1字段和保留位2字段各占2字节;帧起始字段占1字节。所以以太网数据帧长度最少约为160字节左右。随着所传输数据量的增加,每帧goose报文的长度也会随之增加,通常情况下,goose报文的长度约为200字节左右。根据不同情况下的需要,可以对最大长度进行修改。

s26:计算下一帧传送指针位,并将goose报文数据从系统中移入内存;

s27:该封包为无效数据包,计算下一帧传送指针位并返回步骤s21;

s28:控制dm9000aep数据包传送控制寄存器发送goose报文。

s3:控制goose报文进行接收,stm32f407通过读取帧接收标志判断有无数据包,如果有则读取数据包内容并对goose报文进行解码分析,外围模块1中的数据存储模块12对接收的goose报文进行存储,外围模块1中的通信报警模块13对通信进行监控,如果发生通信中断或报文丢帧则触发通信报警模块13进行报警。

图4为goose报文接收的流程图,如图4所示,步骤s3包括以下子步骤:

s31:清除中断标志,读取帧接收标志;

s32:判断帧接收标志是否为01h,如果是则进入步骤s33,如果否则进入步骤s34;

s33:数据包为有效数据包,读取数据包相关信息和长度;

s34:判断帧接收标志是否为00h,如果是则进入步骤s35,如果否则进入步骤s36;

s35:没有接收到数据包,返回步骤s31。

s36:初始化失败,重新初始化dm9000aep,返回步骤s31;

s37:判断数据包长度是否在64~1356字节之间,如果是则进入步骤s38,如果否则进入步骤s39;

s38:对数据包进行asn.1/ber解码,读取stnum和sqnum,读取goose报文数据集内容;

s39:跳过该数据包,返回步骤c1;

s310:判断stnum和sqnum是否变化正确,如果是则进入步骤s311,如果否则进入步骤s312;

具体的,步骤s310中,当当前收到的goose报文中sqnum比上次收到goose报文中sqnum正好大1且stnum保持不变,或当前收到的goose报文中sqnum清零且当前收到的goose报文中stnum比上次收到goose报文中stnum正好大1时,判断没有发生报文丢失,其他所有情况都会发出报文丢失报警。

s311:根据goose报文数据集内容,对事件作出相应处理;

s312:发出报文丢失报警,返回步骤s31;

s313:将内存中的goose报文数据移入系统中,计算下一包指针位,返回步骤s31。

本发明提供的goose报文收发系统及其控制方法不仅能够实现goose报文特殊映射方式,同时还能够保证goose报文传输的实时性和可靠性,不仅能够更快速、更规范地传输goose报文,还能够有效克服电磁干扰。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1