资源描述
基于CAN网采用滑动窗口技术传输电网故障信息的方案实现
唐喜1 孟岩1
(北京四方继保护自动化股份有限公司研发中心 北京 100085)
摘要:针对CAN(Controller Area Network)网传输智能电子设备IED(Intelligent Electronic Device,以下简称IED)信息速度慢的现状,提出基于CAN网结构采用滑动窗口技术实现IED内部各通信插件之间信息交换的方法,将以太网TCP/IP协议中的“一问多答”、“断点续传”等先进技术应用到CAN网,可使IED大量的描述信息准确、快速交换,尤其是IED长时间故障录波后,可快速上传到分析终端进行故障诊断,缓解IED嵌入式系统的缓冲压力,提高IED长时间故障录波次数,满足国内外市场对IED 连续故障录波能力的高要求。对比试验发现,与传统的“停止-等待协议”相比,“滑动窗口协议”传输电网故障信息更加高效,同时“滑动窗口协议”配置灵活,通过设变窗口尺寸,即可兼容“停止-等待协议”。此技术也可用于IED其它信息要求快速交换的场合。
关键词:IED; 滑动窗口; 停止-等待协议; 嵌入式系统
- 7 -
0 引言
电力行业正在飞速发展,电力系统不断壮大,快速、准确定位电网故障显得尤为重要,从而用户对IED故障录波[1]能力要求也不断提高,迫使各大IED生产厂家不断推出新的硬件、软件平台,随着近几年电子工业的发展,硬件不断网络化,软件网络化也有了新的进展,但出于对IED实时性的特殊要求,保护软件直接借用TCP/IP协议[2]显然不能满足快速性要求,为此需要采用简单、可靠协议,通常各IED生产厂家对IED内部各插件之间的通信协议均是自己制订,没有统一的标准,在对故障录波能力要求不高的情况下,都可以满足要求。但随着国内外市场对IED故障录波能力要求的不断提高,传统的软件协议已不能满足要求。故障录波存储容量、传输速度、打印速度等已成为衡量IED能力的一个重要指标。以往电网出现大扰动时,故障复杂,再加上连续故障,大多数IED的故障录波并不理想,有的因为故障录波超过存储容量,更多的还是因为IED嵌入式系统[3]缓冲受限,故障录波后不能及时存储、上传至远方,造成录波数据丢失,即使不丢失,想及时查看故障波形也需要等待好长时间,原因就在于大多数IED对于录波处理采用传统的“停止-等待协议”[4],不能满足录波容量大、快速传输的要求,成为IED录波处理能力的瓶颈。本文提出的滑动窗口技术可以打破此瓶颈,提高IED录波处理能力的性能指标,并给出基于CAN网的实现方案及对比试验。
1 原理
CAN[5]属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。CAN具有十分优越的特点,使人们乐于选择。这些特性包括:
l 低成本
l 极高的总线利用率
l 很远的数据传输距离(长达10Km)
l 高速的数据传输速率(高达1Mbit/s)
l 可根据报文的ID决定接收或屏蔽该报文
l 可靠的错误处理和检错机制[6]
l 发送的信息遭到破坏后,可自动重发
l 节点在错误严重的情况下具有自动退出总线的功能
l 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息
CAN网上对于一些简单应用,可以采用“停止-等待协议”,即传统意义上的“一问一答式协议”,(主要流程如图1所示)。但对于数据量大、实时性要求高的场合,“停止-等待协议”不能满足要求,本文提出“滑动窗口协议”,对比二者原理上的优缺点后,即可以发现“滑动窗口协议”的优势。
1.1 停止-等待协议
停止-等待(stop-and-wait)的思想:发送方传输一帧之后,在传输下一帧之前等待一个确认。如果在某段时间之后确认没有到达,则发送方超时,重发原始帧。
介绍两个专有名词:确认(acknowledgement)和超时(timeout)
确认[4](简称ACK):协议发给它的对等实体的一个小的控制帧,告知它已收到刚才的帧。
控制帧是一个无任何数据的头部,但是一个协议也可以将一个ACK捎带在一个恰好要发向对方的数据帧上。
发送方收到一个确认,表明帧发送成功。如果发送方在合理的一段时间后未收到确认,那么它重发(retransmit)原始帧。等待一段合理的时间的这个动作称为超时[4](timeout)
使用确认和超时实现可靠传输的策略有时称为自动请求重发(Automatic Repeat Request,ARQ)。
图 1停止-等待协议正常情况下的流程图
Fig. 1 Stop-wait protocol flow chart under normal conditions
上述可以发现停止-等待算法的主要缺点:允许发送方每次在链路上只有一个未确认的帧,这可能远远低于链路的容量。
1.2 滑动窗口协议
滑动窗口[2](slide window)技术主要用于信息流量控制,协调改善发送端和接收端的工作速度, 广泛使用于Internet和其它网络之间的通信,一个好的实现既可以提高网络通信的数据流量,同时又能提高通信质量和解决拥塞控制问题。
简要描述一下该算法:
1、将需要传递的信息编码为一个有序的帧序列;
2、发送方设置一个滑动窗口(缓冲区),该窗口大小为最大发送帧数(N)。该缓冲区采用先进先出队列机制,首先发送N帧信息,每帧都有一个定时器,当超时还没有收到接收方的应答帧时,则重发该帧;
3、接收方设置一接收队列,对接收到的每帧入队列。如果该帧是编号最小的帧,则发送该帧收到的应答帧给发送方;
4、发送方如果收到接收方的某帧的应答消息,则判断,如果是队列的第一个帧,则该帧出列。队列空出一位,再发送一帧,否则记录其为可出列标记。
利用滑动窗口算法原理,可以保证数据在有序发送的情况下,顺利达到接收方。
(1)窗口机制
滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下面举一个例子(假设发送窗口尺寸为2帧,接收窗口尺寸为1帧)。
①初始态,发送方没有帧发出,发送窗口前后沿相重合。接收方0号窗口打开,等待接收0号帧。
②发送方打开0号窗口,表示已发出0帧但尚确认返回信息。此时接收窗口状态不变。
③发送方打开0、1号窗口,表示0、1号帧均在等待确认之列。至此,发送方打开的窗口数已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变。
④接收方已收到0号帧,0号窗口关闭,1号窗口打开,表示准备接收1号帧。此时发送窗口状态不变。
⑤发送方收到接收方发来的0号帧确认返回信息,关闭0号窗口,表示从重发表中删除0号帧。此时接收窗口状态仍不变。
⑥发送方继续发送2号帧,2号窗口打开,表示2号帧也纳入待确认之列。至此,发送方打开的窗口又已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧,此时接收窗口状态仍不变。
⑦接收方已收到1号帧,1号窗口关闭,2号窗口打开,表示准备接收2号帧。此时发送窗口状态不变。
⑧发送方收到接收方发来的1号帧收毕的确认信息,关闭1号窗口,表示从重发表中删除1号帧。此时接收窗口状态仍不变。
若从滑动窗口的观点来统一看待1比特滑动窗口、后退n及选择重传三种协议,它们的差别仅在于各自窗口尺寸的大小不同而已。1比特滑动窗口协议:发送窗口=1帧,接收窗口=1帧;后退n协议:发窗口>1帧,接收窗口>1帧;选择重传协议:发送窗口>1帧,接收窗口>1帧。
(2) 1比特滑动窗口协议[13]
当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。
(3) 后退n协议
由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n协议。后退n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设置超时定时器。只要在所设置的超时时间内未收到确认帧,就要重发相应的数据帧。如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。
从这里不难看出,后退n协议一方面因连续发送数据帧而提高了效率,但另一方面,在重传时又必须把原来已正确传送过的数据帧进行重传(仅因这些数据帧之前有一个数据帧出了错),这种做法又使传送效率降低。由此可见,若传输信道的传输质量很差因而误码率较大时,连续测协议不一定优于停止-等待协议。此协议中的发送窗口的大小为k帧,接收窗口仍是1帧。
(4) 选择重传协议[14]
在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICE REPEAT)。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。
利用滑动窗口算法原理,可以保证一堆数据在有序发送的情况下,顺利的达到接收方。
滑动窗口技术具备以下优缺点:
优点:
a)滑动窗口有利于提高带宽利用率,传输效率高
b)滑动窗口使主机在等待确认消息的同时,可以发送多个字节或数据包
c)滑动窗口的大小以字节数表示
d)滑动窗口的大小在连接建立阶段指定
e)滑动窗口的大小随数据的发送而变化
f)滑动窗口可以提供流量控制
缺点:控制复杂。
2 应用实现
系统平台架构如图2所示,系统主要由两大部分组成,一部分是电网故障信息采集及处理单元,由保护插件负责;另一个部分为电网故障信息管理单元,由信息管理插件负责。
系统采用双CAN网[7]结构,一个CAN网用于与信息管理插件实时通信[8],另一个CAN网用于与开入、开出插件实时通信,总线不出芯片[2],有利于保护装置的高可靠性。大容量的故障录波,可以保存不少于24次事故录波。完整的事件记录和动作报告,可保存不少于2000条动作报告和2000次操作记录,停电不丢失。
图 2 系统通信平台[9]架构
Fig. 2 Structure of system communication
软件主要结构体实现:
滑动窗口数据传输结构体:
typedef struct _SLIDEWIN_TRANSMIT
{
//以下为主控方信息
bool bIsUsedFlag;//是否使用滑动窗口技术传输
WORD wStBarNo; //起始条序号
BYTE BStSubBarNo; //起始子条序号
WORD wWinSize; //窗口尺寸
WORD wMaxFrmLen;//最大帧长度
//以下是被控方信息
WORD wRealWinSize;//由被控方实际上送的窗口尺寸
int nRealBarNum; //由被控方实际上送的实际报文数
bool bIsStartTimeOut; //是否启动超时定时器的处理
}StruSlideWinTransmit;
IED通信平台[15]:所有CAN总线部分均采用滑动窗口协议传输,其通信流程如图3所示:
图 3 IED内部滑动数据窗传输流程
Fig. 3 Flow chart of slide window communication in the IED
3 对比试验
通过以上的算法论述及应用实现,决定通过网络对比试验[10]来验证采用“滑动窗口协议”的优势。
试验方法:通过改变滑动窗口尺寸测试录波数据传输时间(单位:秒),采用多次试验取平均值的算法。
试验条件:
l 数据包大小:90K
l CAN网速率:1M
试验内容:
通过测试仪模拟 “距离I、II、III段保护出口”[11]动作实验,使IED产生一次故障录波数据,通过定时器记录故障录波传输时间,针对同一次故障录波,改变窗口尺寸,重复多次试验,取平均值,如表1所示。
试验次数
窗口尺寸(帧)
1
2
3
4
5
平均值
(秒)
1
25
26
26
26
25
25.6
2
20
21
21
21
21
20.8
3
18
18
19
19
18
18.4
4
15
15
16
16
15
15.4
5
13
14
13
13
14
13.4
6
10
10
9
9
10
9.6
7
5
4
5
4
5
4.6
表 1录波数据传输速度对比试验
Table 1 Contrast test of record data transmission
改变窗口尺寸,故障录波传输时间变化曲线图如图4所示。
图 4 滑动窗口尺寸与录波传输时间关系图
Fig. 4 Relation between slide window size and record transmission time
由图4可以发现,随着窗口尺寸的不断加大,故障录波传输时间不断缩小。当窗口尺寸为1帧时,“滑动窗口协议”即退化为“停止-等待协议”。由此说明,“滑动窗口协议”的优势相当明显,录波传输速度有数倍的提升。
4 结语
1) 滑动窗口技术在CAN网上的应用,解决了IED各插件之间大数据量通信的核心问题,充分发挥硬件资源优势,传输效率高,通过对比试验发现,此技术应用在电网故障录波信息传输时,优势更加明显,突破了嵌入式系统资源不平衡带来的通信瓶颈,为电网故障诊断带来极大便利,同时此技术也可用于其它大数据包通信的场合;
2) 滑动窗口技术实现复杂,针对IED内部实现部分,目前还未有统一的协议标准,仅个别IED厂家使用此技术,待试运行一段时间后,可大面积推广。
3) 通过对滑动窗口算法原理的分析,可以将该算法应用在如下场景:
A系统需要给B系统发送大量的资料,这些资料需要拆分为M次才能发送完成,考虑到网络流量问题,不能一次性的就全部把M个数据块发送给B系统。较好的处理方式是设置符合网络流量大小的值N,作为A系统一次发送的数据块个数。N作为滑动窗口的长度。采用滑动窗口算法来完成A、B系统的数据发送,考虑到发送的数据可以是无序(既数据没有先后之分)的情况。需要对该算法略加修改,即发送队列中的任何一个数据块如果收到应答信息,队列都向前滑动一格,并允许立即发送一个新的数据块。就可以很好的解决这个问题。
参考文献:
[1] 王梅义.电网继电保护应用[M].北京;中国电力出版社,1999.
WANG Mei-yi. The Utility of Power System Network Protection[M]. Beijing: China Electric Power Press, 1999.
[2] 周明天 汪文勇,《TCP/IP网络原理与技术》[M]
北京 清华大学出版社 1993
[3] 桑楠 嵌入式系统原理及应用开发技术[M].
北京: 北京航空航天大学出版社, 2002
[4] Andrew S.Tanenbaum 计算机网络[M]. 第四版 潘爱民,译. 北京 清华大学出版社,2004.
Andrew S.Tanenbaum Computer Networks[M], Fourth Edition. PAN Ai-ming. Tsinghua University Press,2004.
[5] 邬宽明 CAN总线原理和应用系统设计[M].
北京 北京航空航天大学出版社 1996
[6] 芦东昕,张华强,王陈. 基于UDP的可靠数据传递技术环境[J]. 计算机工程,2003,29(22):62-63.
LU Dong-xin , ZHANG Hua-qiang , WANG Chen. Research on the reliable data transfer based on UDP[J] . Computer Engineering , 2003,29(22): 62-63
[7] 姚志强,盛孟刚. 基于数字信号处理和CAN总
线的综合微机保护系统的设计[J]. 湘潭大学自然科学学报,2005,27(4):108-113.
YAO Zhi-qiang , SHENG Meng-gang. Design of
multifunctional microcomputer protection system based on digital signal processing and CAN bus [J]. Natural Science Journal of Xiangtan University ,
2005,27(4):108-113.
[8] DOUGLASS B P. 嵌入式与实时系统开发[M]. 柳翔,译. 北京:机械工业出版社,2005.
[9] 李钢,王善祥,苏文辉,等. 微机保护通用平台的分析和研究[J]. 继电器,2005,33(14):29-31.
LI Gang , WANG Shan – xiang , SU WEN-hui , et al . Analysis and studies on universal platform of relays[J]. Relay , 2005,33(14): 29-31.
[10] 杨金生 计算机网络实验指导[M] 上海交通大学出版社 上海 2002.
[11] 朱声石. 高压电网继电保护原理与技术[M]. 第3版. 北京:中国电力出版社,2005.
ZHU Sheng-shi. The Principle and Technique of High Voltage Network Protection[M]. 3rd ed. Beijing: China Electric Power Press, 2005.
[12] 陈露晨. 计算机通信接口技术[M]. 成都:电子科技大学出版社,1999.
[13] 阮家栋,钱亦平,邓琛. 计算机通信技术[M]. 北京: 电子工业出版社,2000.
[14] 杨如锋,伍爱莲,朱华伟. 基于CAN总线的变电站监控系统[J]. 电力自动化设备,2005,25(1):43-45 .
YANG Ru-feng , WU Ai-lian , ZHU Hua-wei. Substation supervisory system based on CAN bus[J]. Electric Power Automation Equipment, 2005,25(1):43-45.
[15] 任雁铭. 基于嵌入式以太网的变电站自动化系统通信网络[J]. 电力系统自动化,2001,25(17):36-38.
REN Yan-ming. Computer network based on embedded Ethernet technique for substation automation system[J]. Automation of Electric Power Systems , 2001,25(17):36-38
作者简介:
唐喜(1979 - ),男,吉林松原人,工程师,主要从事电力系统通信、电力系统规约和电力系统软件组件方面的研究与开发工作;(E-mail:tangxi3721@sf-)
孟岩(1979 - ),女,辽宁锦州人,工程师,主要从事继电保护研究与开发工作。
(E-mail:mengyan@sf-)
Scheme realization of “Slide window protocol” applied to transmit fault records based on CAN network
TANG Xi1, MENG Yan1
(Beijing Sifang Automation Co.,Ltd research & develop center, 100085,China )
Abstract: Aiming at the CAN( Controller Area Network) network transmitting the slow present condition in speed in information among IED( Intelligent Electronic Device, below brief name IED) , putting forward “Slide window” protocol based on CAN network structure to take on information exchange among inner plug-ins. Adopting advanced technique in Ethernet TCP/ IP protocol such as "One asking Many answers " and " Transmit continuously after interruption" etc. IED may transmit fault record information to remote master station within a short time after complex faults so that experts may look though record wave and find fault position. Thus, it satisfies domestic and foreign market demands for long and continuous record abilities. It is found by experiments that there are more fast and reliable information than traditional “Stop-wait protocol”. “Slide window protocol” is also applied to other situation with the requirement of fast information exchange.
Keywords:IED; Slide window; Stop-wait protocol; Embedded Systems
展开阅读全文