1、- 1 -基于 CAN 网采用滑动窗口技术传输电网故障信息的方案实现唐喜 1 孟岩 1(北京四方继保护自动化股份有限公司研发中心 北京 100085)摘要:针对 CAN(Controller Area Network)网传输智能电子设备 IED(Intelligent Electronic Device,以下简称 IED)信息速度慢的现状,提出基于 CAN网结构采用滑动窗口技术实现 IED内部各通信插件之间信息交换的方法,将以太网 TCP/IP协议中的“一问多答” 、 “断点续传”等先进技术应用到 CAN网,可使IED大量的描述信息准确、快速交换,尤其是 IED长时间故障录波后,可快速上传到分
2、析终端进行故障诊断,缓解 IED嵌入式系统的缓冲压力,提高 IED长时间故障录波次数,满足国内外市场对 IED 连续故障录波能力的高要求。对比试验发现,与传统的“停止-等待协议”相比, “滑动窗口协议”传输电网故障信息更加高效,同时“滑动窗口协议”配置灵活,通过设变窗口尺寸,即可兼容“停止-等待协议” 。此技术也可用于 IED其它信息要求快速交换的场合。关键词:IED; 滑动窗口; 停止-等待协议; 嵌入式系统0 引言电力行业正在飞速发展,电力系统不断壮大,快速、准确定位电网故障显得尤为重要,从而用户对 IED故障录波 1能力要求也不断提高,迫使各大 IED生产厂家不断推出新的硬件、软件平台,
3、随着近几年电子工业的发展,硬件不断网络化,软件网络化也有了新的进展,但出于对 IED实时性的特殊要求,保护软件直接借用TCP/IP协议 2显然不能满足快速性要求,为此需要采用简单、可靠协议,通常各 IED生产厂家对 IED内部各插件之间的通信协议均是自己制订,没有统一的标准,在对故障录波能力要求不高的情况下,都可以满足要求。但随着国内外市场对 IED故障录波能力要求的不断提高,传统的软件协议已不能满足要求。故障录波存储容量、传输速度、打印速度等已成为衡量 IED能力的一个重要指标。以往电网出现大扰动时,故障复杂,再加上连续故障,大多数IED的故障录波并不理想,有的因为故障录波超过存储容量,更多
4、的还是因为 IED嵌入式系统 3缓冲受限,故障录波后不能及时存储、上传至远方,造成录波数据丢失,即使不丢失,想及时查看故障波形也需要等待好长时间,原因就在于大多数 IED对于录波处理采用传统的“停止-等待协议”4,不能满足录波容量大、快速传输的要求,成为 IED录波处理能力的瓶颈。本文提出的滑动窗口技术可以打破此瓶颈,提高 IED录波处理能力的性能指标,并给出基于 CAN网的实现方案及对比试验。1 原理CAN5属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。CAN具有十分优越的特点,使人们乐于选择。这些特性
5、包括: 低成本 极高的总线利用率 很远的数据传输距离(长达10Km) 高速的数据传输速率(高达1Mbit/s) 可根据报文的ID决定接收或屏蔽该报文 可靠的错误处理和检错机制 6 发送的信息遭到破坏后,可自动重发 节点在错误严重的情况下具有自动退出总线的功能 - 2 - 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息CAN网上对于一些简单应用,可以采用“停止-等待协议” ,即传统意义上的“一问一答式协议” ,(主要流程如图 1所示)。但对于数据量大、实时性要求高的场合,“停止-等待协议”不能满足要求,本文提出“滑动窗口协议” ,对比二者原理上的优缺点后,即可以发现“滑动窗口协
6、议”的优势。1.1 停止-等待协议停止-等待(stop-and-wait)的思想:发送方传输一帧之后,在传输下一帧之前等待一个确认。如果在某段时间之后确认没有到达,则发送方超时,重发原始帧。介绍两个专有名词:确认(acknowledgement)和超时(timeout)确认 4(简称 ACK):协议发给它的对等实体的一个小的控制帧,告知它已收到刚才的帧。控制帧是一个无任何数据的头部,但是一个协议也可以将一个 ACK捎带在一个恰好要发向对方的数据帧上。发送方收到一个确认,表明帧发送成功。如果发送方在合理的一段时间后未收到确认,那么它重发(retransmit)原始帧。等待一段合理的时间的这个动作
7、称为超时 4(timeout)使用确认和超时实现可靠传输的策略有时称为自动请求重发(Automatic Repeat Request,ARQ) 。发送端 接收端帧 0A C K 0帧 1A C K 1帧 NA C K N 时间线图 1 停止-等待协议正常情况下的流程图Fig. 1 Stop-wait protocol flow chart under normal conditions上述可以发现停止-等待算法的主要缺点:允许发送方每次在链路上只有一个未确认的帧,这可能远远低于链路的容量。1.2 滑动窗口协议滑动窗口 2(slide window)技术主要用于信息流量控制,协调改善发送端和接收
8、端的工作速度, 广泛使用于 Internet和其它网络之间的通信,一个好的实现既可以提高网络通信的数据流量,同时又能提高通信质量和解决拥塞控制问题。简要描述一下该算法:1、将需要传递的信息编码为一个有序的帧序列;2、发送方设置一个滑动窗口(缓冲区) ,该窗口大小为最大发送帧数(N) 。该缓冲区采用先进先出队列机制,首先发送 N帧信息,每帧都有一个定时器,当超时还没有收到接收方的应答帧时,则重发该帧;3、接收方设置一接收队列,对接收到的每帧入队列。如果该帧是编号最小的帧,则发送该帧收到的应答帧给发送方;4、发送方如果收到接收方的某帧的应答消息,则判断,如果是队列的第一个帧,则该帧出列。队列空出一
9、位,再发送一帧,否则记录其为可出列标记。利用滑动窗口算法原理,可以保证数据在有序发送的情况下,顺利达到接收方。- 3 -(1)窗口机制滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下面举一个例子(假设发送窗口尺寸为 2帧,接收窗口尺寸为 1帧) 。初始态,发送方没有帧发出,发送窗口前后沿相重合
10、。接收方 0号窗口打开,等待接收 0号帧。发送方打开 0号窗口,表示已发出 0帧但尚确认返回信息。此时接收窗口状态不变。发送方打开 0、1 号窗口,表示 0、1 号帧均在等待确认之列。至此,发送方打开的窗口数已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变。接收方已收到 0号帧,0 号窗口关闭,1号窗口打开,表示准备接收 1号帧。此时发送窗口状态不变。发送方收到接收方发来的 0号帧确认返回信息,关闭 0号窗口,表示从重发表中删除 0号帧。此时接收窗口状态仍不变。发送方继续发送 2号帧,2 号窗口打开,表示 2号帧也纳入待确认之列。至此,发送方打开的窗
11、口又已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧,此时接收窗口状态仍不变。接收方已收到 1号帧,1 号窗口关闭,2号窗口打开,表示准备接收 2号帧。此时发送窗口状态不变。发送方收到接收方发来的 1号帧收毕的确认信息,关闭 1号窗口,表示从重发表中删除 1号帧。此时接收窗口状态仍不变。若从滑动窗口的观点来统一看待 1比特滑动窗口、后退 n及选择重传三种协议,它们的差别仅在于各自窗口尺寸的大小不同而已。1 比特滑动窗口协议:发送窗口=1帧,接收窗口=1 帧;后退 n协议:发窗口1帧,接收窗口1 帧;选择重传协议:发送窗口1 帧,接收窗口1 帧。(2) 1比特滑动窗口协议 1
12、3当发送窗口和接收窗口的大小固定为 1时,滑动窗口协议退化为停等协议(stopandwait) 。该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。(3) 后退 n协议由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退 n协议。后退 n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据
13、帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设置超时定时器。只要在所设置的超时时间内未收到确认帧,就要重发相应的数据帧。如:当发送方发送了 N个帧后,若发现该 N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。从这里不难看出,后退 n协议一方面因连续发送数据帧而提高了效率,但另一方面,在重传时又必须把原来已正确传送过的数据帧进行重传(仅因这些数据帧之前有一个数据帧出了错) ,这种做法又使传送效率降低。由此可见,若传输信道的传输质量很差因而误码率较大时,连续测协议不一定优于
14、停止-等待协议。此协议中的发送窗口的大小为 k帧,接收窗口仍是 1帧。- 4 -(4) 选择重传协议 14在后退 n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICE REPEAT)。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。利用滑动窗口算法原理,可以
15、保证一堆数据在有序发送的情况下,顺利的达到接收方。滑动窗口技术具备以下优缺点:优点:a)滑动窗口有利于提高带宽利用率,传输效率高b)滑动窗口使主机在等待确认消息的同时,可以发送多个字节或数据包c)滑动窗口的大小以字节数表示d)滑动窗口的大小在连接建立阶段指定e)滑动窗口的大小随数据的发送而变化f)滑动窗口可以提供流量控制缺点:控制复杂。2 应用实现系统平台架构如图 2 所示,系统主要由两大部分组成,一部分是电网故障信息采集及处理单元,由保护插件负责;另一个部分为电网故障信息管理单元,由信息管理插件负责。系统采用双 CAN网 7结构,一个 CAN网用于与信息管理插件实时通信 8,另一个 CAN网
16、用于与开入、开出插件实时通信,总线不出芯片 2,有利于保护装置的高可靠性。大容量的故障录波,可以保存不少于 24次事故录波。完整的事件记录和动作报告,可保存不少于 2000条动作报告和2000次操作记录,停电不丢失。后台终端信息管理插件人机对话 M M I显示打印机C T / P T交流插件 nC P U 保护插件 nD I n开入插件D O n开出插件P O WE R 电源插件C T / P T交流插件 1C P U保护插件 1D I 1开入插件D O 1开出插件I E D 设备内部通信架构光 / 电以太网C A N 总线数据网控制网4 8 5 网C A N 总线P C 终端C A N 总线
17、图 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; /由被控方实
18、际上送的实际报文数bool bIsStartTimeOut; /是否启动超时定时器的处理StruSlideWinTransmit;IED通信平台 15:所有 CAN总线部分均采用滑动窗口协议传输,其通信流程如图 3所示:- 5 -信息管理插件 保护 C P U 插件 时间线发送方确认帧序号 1帧序号 N帧序号 N + 1确认帧序号 N + N窗口尺寸窗口尺寸窗口尺寸若发现帧序号 1 N 中有丢失 ,则确认帧中含事丢失帧的起始序号 , 发送方收到确认帧后 ,从丢失的帧序号起开始重新传送接收方图 3 IED内部滑动数据窗传输流程Fig. 3 Flow chart of slide window c
19、ommunication in the IED3 对比试验通过以上的算法论述及应用实现,决定通过网络对比试验 10来验证采用“滑动窗口协议”的优势。 试验方法:通过改变滑动窗口尺寸测试录波数据传输时间(单位:秒),采用多次试验取平均值的算法。试验条件: 数据包大小:90K CAN网速率:1M试验内容:通过测试仪模拟 “距离 I、II、III 段保护出口” 11动作实验,使 IED产生一次故障录波数据,通过定时器记录故障录波传输时间,针对同一次故障录波,改变窗口尺寸,重复多次试验,取平均值,如表 1所示。试验次数窗口尺寸(帧)1 2 3 4 5平均值(秒)1 25 26 26 26 25 25.
20、62 20 21 21 21 21 20.83 18 18 19 19 18 18.44 15 15 16 16 15 15.45 13 14 13 13 14 13.46 10 10 9 9 10 9.67 5 4 5 4 5 4.6表 1 录波数据传输速度对比试验Table 1 Contrast test of record data transmission改变窗口尺寸,故障录波传输时间变化曲线图如图 4所示。滑 动 窗 口 尺 寸 与 录 波 传 输 时 间 关 系0510152025301 2 3 4 5 6 7窗 口 尺 寸 (帧 )录波传输时间(秒)系 列 1图 4 滑动窗口尺寸
21、与录波传输时间关系图Fig. 4 Relation between slide window size and record transmission time由图 4 可以发现,随着窗口尺寸的不断加大,故障录波传输时间不断缩小。当窗口尺寸为 1 帧时, “滑动窗口协议”即退化为“停止-等待协议”。由此说明,“滑动窗口协议”的优势相当明显,录波传输速度有数倍的提升。4 结语1) 滑动窗口技术在 CAN 网上的应用,解决了 IED 各插件之间大数据量通信的核心问题,充分发挥硬件资源优势,传输效率高,通过对比试验发现,此技术应用在电网故障录波信息传输时,优势更加明显,突破了嵌入式系统资源不平衡带来
22、的通信瓶颈,为电网故障诊断带来极大便利,同时此技术也可用于其它大数据包通信的场合;2) 滑动窗口技术实现复杂,针对 IED 内部实现部分,目前还未有统一的协议标准,仅个别 IED 厂家使用此技术,待试运行一段时间后,可大面积推广。3) 通过对滑动窗口算法原理的分析,可以- 6 -将该算法应用在如下场景:A 系统需要给 B 系统发送大量的资料,这些资料需要拆分为 M 次才能发送完成,考虑到网络流量问题,不能一次性的就全部把 M 个数据块发送给 B 系统。较好的处理方式是设置符合网络流量大小的值 N,作为 A 系统一次发送的数据块个数。 N 作为滑动窗口的长度。采用滑动窗口算法来完成 A、B 系统
23、的数据发送,考虑到发送的数据可以是无序(既数据没有先后之分)的情况。需要对该算法略加修改,即发送队列中的任何一个数据块如果收到应答信息,队列都向前滑动一格,并允许立即发送一个新的数据块。就可以很好的解决这个问题。参考文献:1 王梅义.电网继电保护应用M.北京;中国电力出版社,1999.WANG Mei-yi. The Utility of Power System Network ProtectionM. Beijing: China Electric Power Press, 1999.2 周明天 汪文勇,TCP/IP 网络原理与技术M北京 清华大学出版社 19933 桑楠 嵌入式系统原理及
24、应用开发技术M. 北京: 北京航空航天大学出版社, 20024 Andrew S.Tanenbaum 计算机网络 M. 第四版 潘爱民,译. 北京 清华大学出版社,2004.Andrew S.Tanenbaum Computer NetworksM, Fourth Edition. PAN Ai-ming. Tsinghua University Press,2004.5 邬宽明 CAN 总线原理和应用系统设计M. 北京 北京航空航天大学出版社 19966 芦东昕,张华强,王陈. 基于 UDP的可靠数据传递技术环境J. 计算机工程,2003,29(22):62-63.LU Dong-xin ,
25、 ZHANG Hua-qiang , WANG Chen. Research on the reliable data transfer based on UDPJ . 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 di
26、gital 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 plat
27、form of relaysJ. Relay , 2005,33(14): 29-31.10 杨金生 计算机网络实验指导M 上海交通大学出版社 上海 2002.11 朱声石. 高压电网继电保护原理与技术M. 第 3版. 北京:中国电力出版社,2005.ZHU Sheng-shi. The Principle and Technique of High Voltage Network ProtectionM. 3rd ed. Beijing: China Electric Power Press, 2005.12 陈露晨 . 计算机通信接口技术 M. 成都:电子科技大学出版社,1999.13 阮
28、家栋,钱亦平,邓琛. 计算机通信技术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 busJ. Electric Power Automation Equipment, 2005,25(1):43-45.15 任雁铭 . 基于嵌入式以太网的变电站自动化系统通信网络J. 电力系统自动化, 2001,25(17):36
29、-38.REN Yan-ming. Computer network based on embedded Ethernet technique for substation automation systemJ. Automation of Electric Power Systems , 2001,25(17):36-38- 7 -作者简介:唐喜(1979 - ),男,吉林松原人,工程师,主要从事电力系统通信、电力系统规约和电力系统软件组件方面的研究与开发工作;(E-mail:tangxi3721sf-)孟岩(1979 - ),女,辽宁锦州人,工程师,主要从事继电保护研究与开发工作。(E-mail:mengyansf-)Scheme realization of “Slide window protocol” applied to transmit fault records based on CAN networkTANG Xi1, MENG Yan1(Beijing Sifang Automation Co.,Ltd research Slide window; Stop-wait protocol; Embedded Systems