(电力系统及其自动化专业论文)变电站自动化系统嵌入式以太网研究.pdf_第1页
(电力系统及其自动化专业论文)变电站自动化系统嵌入式以太网研究.pdf_第2页
(电力系统及其自动化专业论文)变电站自动化系统嵌入式以太网研究.pdf_第3页
(电力系统及其自动化专业论文)变电站自动化系统嵌入式以太网研究.pdf_第4页
(电力系统及其自动化专业论文)变电站自动化系统嵌入式以太网研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(电力系统及其自动化专业论文)变电站自动化系统嵌入式以太网研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南交通大学硕士研究生学位论文第l ii 员 f o u n d a t i o no fd e s i g n i n gt h ec o 唧u n i c a t i o nn e t w o r k ,e s p e c i a l l yw h e nt h e e t h e r n e tl a ni su s e da st h ec o m m u n i c a t i o nn e t w o r ko fb a yl a y e ri nas a s t h i st h e s i sa n a l v z e se p o c h s( e l e c t r i cp o w e ra n dc o m m u n i c a t j ( ) n s y n c h r o n i z i n gs i m u l a t o r ) , a n ds t u d i e st h em e t h o do fs y n c h r o n i c a l ly s i m u l a t i n gt h et r a f f i ci nas u b s t a t i o nw i t ht h ep s c a d e m t d e ( p o w e rs y s t e m c o l p u t e ra i d e dd e s i g n e l e c t r o m a g n e 墨i 鼻蠢鏊羔羁基;j “儿卜爿蓦¥薯:菲蚕 ;$ o | 豢蠢:一至 薹! 酊“菲嚣斗蚌kr _ p ;土i 任i 薹二睦妻蕈耋里轰套韭尹霉l 塞 享巨蠡鞫襄i ? 薯羔i 疆嘻jr 薯耄菲挚兰i 鼍? 亨基¥ 主;妻善一目薹王要尊;妻鳝5 耋妻! 骧篱掣鸯孝主每耋鸯;j 毫i l 妻2 茎| 毒蠹蘩琴童辇釜善善蔓! 雏百 ;要事等 | j i i ! i 目i 薹目自i i i ;君, 动化测控保护装置中的应用 j ,电力自动化设备,2 0 0 5 ,2 5 ( 1 0 ) :5 9 6l _ 5 7 v n g o h o k a r ,t m d h a n d e , s s k a b r a a p p l i c a t i o no fi n f o r m a t i o n t e c h n o l o g yi ns u b s t a t i o na u t o ma t i o n j 2 0 0 4i e e e ,2 0 0 4 5 8 孙军平,盛万兴,王孙安新一代变电站自动化网络通信系统研究中国电 机工程学报,2 0 0 3 ,2 3 ( 3 ) :1 6 1 9 5 9 (美) 莱特,( 美) 史蒂文斯t c p i p 详解,卷2 :实现 m 陆雪莹等译北京: 机械工业出版社,2 0 0 0 7 6 0 廖泽友,蔡运清i e c6 0 8 7 0 一5 1 0 3 和i e c6 0 8 7 0 一5 1 0 4 协议应用经验 j 电力系统自动化,2 0 0 3 ,2 7 ( 4 ) :6 6 6 8 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 变电站是输配电系统的重要环节。变电站自动化系统实现对全变电站主要 设备和输、配电线路的自动监视、测量、自动控制、微机保护以及调度通信等 功能,其中通信技术是分散式变电站自动化系统的关键技术之一“。 1 1 变电站自动化通信系统的发展及其现状 从9 0 年代初开始,变电站自动化通信系统先后采用了多种通信方案,经历 了点对点通信、r s 4 8 5 总线和现场总线技术的变革,而伴随着变电站自动化系 统的发展,其标准化通信协议体系正在经受着i e c 6 0 8 7 0 一5 系列标准向i e c 6 1 8 5 0 系列标准的变迁。目前,在变电站自动化领域,正刮起一阵研究应用嵌入式以 太网技术和i e c 6 1 8 5 0 系列标准的浪潮”“1 。 1 1 1 变电站自动化通信技术的发展及其现状 星型通信系统是分散式变电站自动化系统早期常使用的一种点对点的通信 系统,它以安装于控制室的计算机为中心点,通过通信介质与分散在每一个开 关柜上的监控i 0 设备和保护设备连接,形成一对多的连接形式。星型网络为不 平等的网络,它极易形成瓶颈,并且通信速率和灵活性都很低。 总线型通信系统了克服星型连接的不足,它在变电站自动化系统中有多种 应用形式,常见的有m o d b u s 或者r s 4 8 5 总线以及现场总线技术。基于m o d b u s 或者 r s 4 8 5 总线技术的通信系统在国内早期的变电站自动化系统中使用地较多,它采 用一个主站对多个从站的通信方式。应用中,它存着实时性差、各个从站之间 无法直接通信和抗干扰纠错能力较差等缺点。 现场总线技术具有组网方便和抗干扰能力强等特点,变电站自动化领域使 用较多的是l o n w o r k s 网络和c a n 总线。l o n w o r k s 现场总线技术是一种基于嵌入式 神经元的总线技术,可以很容易地组成对等主从式、决策设备传感器总线等 现场总线通信系统,它的通信速率最高可达2 5 m b p s 。考虑到变电站内部二次设 备分散安装距离远的特点,一般选用7 8 k b p s 的通信速率,此时的通信距离可达 2 7 0 0 米,基本上可以满足目前中、低压变电站自动化系统在通信速率和通信距 离的要求4 “。 采用c a n 总线技术实现的变电站自动化系统有易于实现双网备用、信息优先 级丰富、抗干扰能力强和成本低等特点。c a n 总线的通信效率最高可达1 m b p s , 西南交通大学硕士研究生学位论文第8 页 第2 章变电站自动化系统嵌入式以太网应用和 e p o c h s 仿真平台研究 嵌入式以太网( e t h e r n e t ) 应用于变电站自动化系统已经成为新一代变电站 自动化系统的发展趋势。本章概述了嵌入式以太网技术,分析了它在变电站自 动化系统中的应用模式以及影响变电站自动化系统中嵌入式以太网实时传输的 因素,研究了变电站自动化系统中采用嵌入式以太网通信方式的传输协议。另 外,本革还研究了可以用于研究变电站自动化通信系统的e p 0 c h s 同步仿真平 台,分析了在n s 2 中仿真应用层i 办议的方法。 2 1 嵌入式以太网技术概述 以太网( e t h e r n e t ) 是分组交换局域网,由x e r o x 公司的p a r c ( p a l o a l t o 研 究中心) 在7 ) 年代早期发明,x e r o x 公司、i n t e i 公司和d e c 公司于1 9 7 8 年把 它标准化,i e 旺用号码8 0 2 3 发布了与这个标准兼容的版本即“i e e e 8 0 2 3 c s m a c d ”。随后,i e 雎8 0 2 ,3 以太网标准被国际标准化组织( i s o ) 接收为国际标 准。目前,所有的网络连接中8 0 都是基于以太网,以太网技术是目前使用最 广泛的局域网技术。 以太网在8 0 年代得到繁荣兴旺。随着联网的计算机数量的不断增加,传输 介质由原来的同轴电缆变成了现在的双绞线电缆,使利用电话业采用的高可靠 性结构化布线,实现建筑物内双绞线系统传输以太网信息成为可能。9 0 年代, 以太网在速度方面一再革新,先后推出了1 0 0 肪p s 以太网、1 0 0 0 m b p s 以太网甚 至1 0 g h p s 以太网。 以太网是具有尽虽大努力投递含义和分布式接入控制的广播总线网络,硬 件没有向发送者提供任何信息,判断所要发送的分组是否已被接收。它采用多 路访问载波监听c s m a c d ( c a r r i e rs e n s em u l t i p l ea c c e s sw i t hc o l l is i o n d e t e c t ) ,多个节点可以同时访问以太网。某节点要发送一个分组时,它首先执 行载波监听,当没有监听到发送时,节点开始发送;硬件必须在两次发送之间 保持一个最小空闲时间,也就是说没有任何一个正在通信的节点可以连续使用 网络而不给其他节点接入网络的机会。以太网上传输的信号有可能交、汇在一起, 出现冲突( c o l l l s i o n ) ,它使用二进制指数退避策略( b i n a r ye x p o n e n t i a l b a c k o f fp o l i c y ) 处理冲突问题,很快的把各网络节点重新发送的时间间隔拉 h a c l o f fp o c y ) 处理冲突问题,很快的把各网络节点重新发送的时间间隔持 西南交通大学硕士研究生学位论文第9 页 开,使发生再一次冲突的可能性变小。 利用嵌入式设计技术在微控制器微处理器和以太网控制器上实现的以太 网就是嵌入式以太网。嵌入式以太网与传统以太网一样,在物理上遵循 i e e e 8 0 2 3 标准,逻辑上大都选用广泛使用的t c p i p 协议族。嵌入式以太网与 传统以太网的最大区别在于:传统以太网技术是基于p c 机、工作站的软件和硬 件环境,与p c 机、工作站的硬件直接配合,其使用的网络协议如t c p i p 等内 嵌在w i n d o w sn t 、u n i x 等操作系统中,传统的以太网技术总脱离不了p c 机、 工作站的软、硬件环境,这限制了传统以太网在工业控制领域的应用。而嵌入 式以太网是基于微控制器微处理器的软、硬件环境的,使用的网络协议如 t c p i p 协议族内嵌在嵌入式操作系统,甚至不使用操作系统,从而为嵌入式以 太网技术应用于变电站自动化领域打开了方便之门,且它能与传统以太网在物 理上和通信协议上相互兼容,因此它们之间能够相互通信“”。5 “。 目前,国内外各厂商推出的直接利用双以太网通信的变电站自动化产品不 是很多,并且一般采用几个智能电子设备( i e d ) 通过r s 4 8 5 、m o d b u s 或者现场总 线等方式连在一起,然后用嵌入式以太网接口作为一个以太网节点连在以太网 上“”,例如北京四方公司的c s c 2 0 0 0 变电站自动化系统,这种方式提高了变 电站内的通信速率,但是目前每个智能电子装置( i e d ) 配置嵌入式以太网接口已 经成为一种趋势“”“。 变电站自动化系统利用嵌入式以太网进行通信时,系统的实时性和可靠性 主要由采用的协议的性能、对报文进行协议编码解码的速度和以太网的冲突情 况等因素决定”。但是目前在变电站自动化系统中,尤其是在无操作系统环 境下,对以太网常使用的t c p i p 协议栈的实现差异很大,没有如t c p i p 协议 栈通用实现的那样有统一的标准“,导致性能差异较大。 目前,在变电站内实现嵌入式以太网时,不仅对i c m p ( i n t e r n e t 互连网控 制报文协议) 的实现一般仅停留在利用i c m p 报文进行通信测试,而且也没有考 虑i p 多播、i p 选项和i p 分片组装等功能。考虑到即将颁布的i e c 6 1 8 5 0 采用 的发布订阅等通信方式要求的i p 多播、i e d 接收配置文件时可能需要i p 分片 组装和广域保护等紧急控制系统可能利用电力系统i n t r a n e t 网采用广域发布 订阅方式交换信息等问题,本文建议实现i p 多播、i p 选项和i p 分片组装等功 能,实现和i p 多播紧密相关的i g m p 协议( i n t e r n e t 组管理协议) ,把它们实现 为灵活的宏编译方式,可以动态的加入或者删除。 西南交通大学硕士研究生学位论文第1 0 页 2 2 嵌入式以太网在变电站自动化系统中的应用模式 嵌入式以太网应用于变电站自动化系统内部的通信网络一般有三种典型应 用模式,其典型结构如图2 一l 所示”。 站控制层设备l l l 站控制层设备2 变电站层 站控制层设备n _ l l 、r l _ 上1 1 间隔层 间隔层i l 间隔层i 设备1 l 设备m | 通信管理 单元主机 通信管理 单元备机 巴到唑 图2 一l 嵌入式以太网应用模式 双以太网 应用模式a :每个间隔层设备都配置一个嵌入式以太网接口( 如c s 8 9 0 0 a ) , 将设备作为一个以太网节点直接连接到以太网上。 应用模式b :几个不具备以太网接口的智能电子设备( i e d ) 通过 r s 一4 2 2 4 8 5 或者现场总线等方式连接在一起,然后通过一个具有嵌入式以太网 接口的通信管理单元连接到以太网上,典型系统为g e h a r r i s 公司的d 2 0 0 系统。 应用模式c :应用模式a 和应用模式b 的混合。 对比这三种应用模式,从技术实现而言,三者都必须设计嵌入式以太网硬 件接口,实现t c p i p 协议栈传输数据。通信管理单元硬件配置平台较高,一般 采用x 8 6 或者高性能的a r m 芯片为主处理器,软件上引入性能好的商业r t 0 s ( 实 时操作系统) 如q n x 或者v x w o r k s 操作系统及其t c p i p 协议栈,而间隔层设备 的硬件配置平台较低,一般使用无操作系统环境下的以太网通信模块进行通信。 就具体应用而言,尤其是现阶段,变电站中的i e d ( 如智能电能表) 可能由 不同的厂家提供,这些i e d 的对外通信接口可能只有r s 一4 8 5 或者现场总线接口, 没有嵌入式以太网接口。因此,现阶段的变电站自动化系统,尤其是中低压变 电站自动化系统,一般采用应用模式b 或者应用模式c ,但是应用模式a 是变 电站自动化系统发展的趋势。 2 3 嵌入式以太网应用于变电站自动化系统的传输协议 变电站的间隔层设备采用以太网方式通信时,目前普遍采用的协议体系如 西南交通大学硕士研究生学位论文第11 页 图2 2 所示。应用层使用网络1 0 3 协议,即采用i e c6 0 8 7 0 5 一1 0 3 协议的应用 服务数据单元( a s d u ) 封装继电保护设备信息,使用i e c6 0 8 7 0 一5 一1 0 4 协议提供 的应用规约控制信息( a p c i ) 封装a s d u ,组成完整的应用规约数据单元( a p d u ) 进 行传输( i e c6 0 8 7 0 一5 1 0 4 协议是i e c6 0 8 7 0 一5 一1 0 l 的网络访问协议,由于i e c 6 0 8 7 0 5 1 协议的网络访问协议没有颁布,目前国内普通采用i e c 6 0 8 7 0 5 1 0 4 协议的a p c i 封装i e c6 0 8 7 0 5 1 0 3 协议的a s d u 组成a p d u 进行传 输) n 扣瑚咱3 3 。 应用层 运输层 网络层 链路层 i e c6 0 8 7 0 一5 一1 0 3 等 u d p 或t c p i p 和i c m p a l 冲和以太网硬件驱动 图2 2 夏电站内部以太潮方式通信的协议层次 传输层一般使用u d p 协议或者t c p 协议,网络层使用i p 协议( 网际协议) 和 i c m p 协议( i n t e r n e t 互连网控制报文协议) ,i p 协议运载t c p 、u d p 和i c m p 。i c m p 协议在i p 系统问传递差错报文和管理报文。链路层主要是a r p 协议和以太网硬 件的驱动,a r p 协议( 地址解析协议) 解析l p 地址和以太网m a c ( m e d i aa c c e s s c o n t r 0 1 ) 地址的映射,以太网硬件驱动直接操作以太网硬件的寄存器,实现对 以太网帧的接收和发送n 。 2 3 1 网络1 0 3 协议 网络1 0 3 协议即指利用以太网进行传输的i e c6 0 8 7 0 一5 一1 0 3 协议,其常用 的应用规约数据单元( a p d u ) 的定义如图2 3 所示“”“。 启动字符6 8 h ji a p d u 长度 l 控制域八位位组l a fc i 控制域八位位组2 控制域八位位纽3 a p d u j 长度控制域八位位组4 1r + i e c6 0 8 7 0 5 一1 0 3 定义的a s d u a u rr 图2 _ 3 网络t 0 3 坼议的a p d u 定义 西南交通大学硕士研究生学位论文 第13 页 的缓存空间和没有实现处理乱序帧的能力,同时t c p 的滑动窗口机制常常蜕变成为连续a r q 协议机制。 udp协议效率高,处理比较简单,消耗处理器的处理能力较少,因此在低 硬件配置平台上实现嵌入式以太网通信时,宜采用u d p 协议,并且美国电力科学研究院定义的u c a 通信协议体系也推荐使用u d p 方式o ”。 变电站间隔层网络上的信息流主要有两大类:第一类为出现扰动时断路器 的变位信号、保护动作信蚕警毹鞘婴剽鬻铆;曦隰潺澳骈捌浠- 卧助旧懈哺强 希滞喝拜艨舔海嚏德溺堪五i 周咱瘫降潲裘酮她浆哩缉前绉篓穗佩签薹辞眦 m 载娶酲斡 戆兰鼢静墅醒目j 阱一适渖发送队列鞲耩w 臻淮灞嗡颡珊;硐 鲶型寰赫飘趟颡插i 蓄怦公照孺掣阶葡餐m 黛髓勤。 封好强誓媳翳匏斡鞑悭怒堙塑驰= 陛m p 报文; 6 ) 插口层后把报文中的数据转移到对应的应用层 x 西南交通大学硕士研究生学位论文第1 5 页 按时i 刈步长求解差分方程。n s 2 为采用事件驱动的离散事件仿真系统,它被广 泛用于评估t c p 以及u d p 的网络传输行为。 仿真开始后,rti等待来自电力系统仿真器和ns2的同步信息,然后向船ent 中心发控制信息,a g e n t 中心将控制信息传递给每个a g e n t ,然后蟾e n t 处理接收到的这些信息。在交互过程中,a g e n t 可能发送通信信息、接收或者设置电 力系统变量。当所有的a g e n t 执行完毕后,a g e n t 中心把控制权返回给r t i ,r t i 通知n s 2 和电力系统仿真器目前时间步长已经结束,然后两个仿真器的调度器 运行下一个时间步长。 在n s 2 中,信息可能在两个同步点间接收到。如果信息到达,n s 2 将迅速 通过r t i 把信息发送到a g e n t 中心,然后a g e n t 中心把它传送到合适a g e n t 处 理。如果信息需要读取电力系统的状态或者改变电力系统的状态,则a g e n t 将 把信息放到一个队列中,直到下一个同步点的到来。 2 4 3p s c a d e m t d c 和n s 2 之间的同步原理 p s c a d e m t d c 软件是单线程编写的软件,n s 2 是采用事件驱动的离散事件仿 真系统”,它们的工作原理分别如图2 6 和图2 7 所示,e p o c h s 仿真平台采 用时间步长的方法实现它们之间的同步,同步原理如图2 8 所示,它们在同步 点利用r t i 交互数据“”“。 p s c a d 堆m t d c 调度器时钟 图2 6p s c a d 明t d c 的工作原理 图2 6 中,仿真起始点为t 。,仿真终点为t ,时刻点t ,和t 。分别为相邻的 计算点。在t 。时刻计算到的参数变化与实际的电力系统从t 。时刻运行了步长t 后的参数变化保持一致。在p s c a d e m t d c 中,任何相邻两个计算点之间的步长 相等,且在每个计算点p s c a d e m t d c 程序可以被挂起、休眠或者运行。 图2 7 中,n s 2 调度器中有e ( t ) 、e ( t 。) 、e ( t 。) 和e ( t 。) 四个事件,它们的 执行时刻分别为t 、t 。、t :,和t 。,其中e ( t ) 在e ( t ;) 事件之后产生,但是由 于t 。大于t 。,则把e ( t 。) 插入到e ( t 、;) 事件之前。n s 2 调度器根据事件执行时刻 的大小依次激活调度器中的事件e ( t 。) 、e ( t :) 、e ( t 。) 和e ( t 。) ,被激活的事件 执行操作,产生新的事件,并把新产生的事件插入到调度器中,同时n s 2 设置 调度器时钟设为执行激活事件的时刻值。在n s 2 中,每个被传送的报文对应n s 2 西南交通大学硕士研究生学位论文 第17 页 e 珂编译对象i -纯c + 对象 编译类声明口编译类成员方法。 编译类绑定韵成员变爵伊 cornd函数h 卧 +匕 叶窄闽o + 丽时一+ o t c l 窀间解释对象 纯o t c l 对象解释类声明0 t c l 操作解释类绑定的变量图2 一g ns2分裂对象编程原理 对象和编译对象,在o t e l 空间中存在纯o t c l 对象和解释对象,解释对象和编 译对象是针对同一构件的在两个空间的对象实体,共同协作完成构件需要的操 作,这一方法被称为“分裂对象编程“。例如在c+空间存在一个tcpagent 类对象“a”,在otcl空间存在一个agenttcp类对象“a”,对象“a”完成复 杂的tcp协议算法,而对象“a,可以用来设置拓扑参数等操作,它们一起协作 完成对t c p 协议的仿真。 两个空间之间的分裂对象类声明(编译类声明和解释类声明)利用声明 tclclass类静态实体实现映射,而其分裂对象实体(编译对象和解释对象)之 间采用以解释对象名为关键字的hash表实现映射。0tcl解释器创建某解释对象时,它调用实现这个类声明的t c l c l a s s 类静态实体的“c r e a t e s h a d o w ”函 数创建编译类,并把它们注册到h a s h 表中;当o t c l 解释器释放某解释对象时, 它调用对应的t c l c l a s s 类静态实体的“d e l e t e s h a d o w ”函数释放对应的解释 对象。例如t c l c l a s s 类静态实体c l a s s t c p 实现t c p a g e n t 类声明和a g e n t t c p 类声明的映射。 对应的方法,则otcl解释器就会调用对应编译对象的comand函数,command 函数再根据传入的参数选择合适的成员方法执行复杂算法。在c+空间,如果 以把otcl语言的命令语句通过tcl类提供的接口输入到眦cl解释器执行,并 返回操作结果。创建编译对象时,可以绑定o t c l 变量和c + + 变量,使解释对象的成员变量 和编译对象的成员变量都访问相同的数据,并且当任何一边的变量值改变时对 应另一边的变量也改变为相同的值。在n s 2 中,这一机制利用i n s t v a r 类实现, 它把c 上+ 空间变量的地址与0 t c l 空间的变量名绑定在一起。当o t c l 解释器读 写解释类被绑定的变量时,激活与此绑定相关的i n s t v a r 类实体的“c a t c n v a r ” 日o 一 西南交通大学硕士研究生学位论文第2 2 页 属性 内存分区 连续内存 图3 2 内存分区的组织形式 图3 3 中,内存管理块中的成员变量内存块的大小被赋值为内存分区中内 存块的实际大小,内存块的数目被赋值为内存分区中实际的数目,内存分区的 起始地址被赋值为内存分区的起始地址,通过这些成员量的设置,使内存管理 块和内存分区相对应。 圈3 3 内存管理块和内存分区的关系 3 2 2 报文的缓存形式 以太网帧的用户数据长度变化范围大,在4 6 字节到1 5 0 0 字节之间变化, 通信模块涉及的通信协议、应用层协议较多”。为了能灵活的操作可变长数据, 并减小为这些操作所做的数据拷贝,需很好的组织报文,以提高报文解码编码 的效率。 报文的缓存形式可以分为两大类:静态形式和动态形式。静态形式最常见 就是每个报文占用的内存长度一致,一般都是以太网运行允许的最大帧长度 ( 1 5 1 4 字节) ,这种方式的内存平均利用率很低,在动态插入和删除数据时,数 据拷贝操作太多。动态形式常见的是以链表的形式组织报文,报文可以被分成 几个数据段,它使处理相对灵活,内存利用率比较高,但是内存的管理相对要 复杂。 变电站自动化系统的间隔层设备硬件配置低,资源有限,为了兼顾报文处 西南交通大学硕士研究生学位论文 第2 4 页 络,i p 协议层和a r p 协议层根据m - i n t e r f a c e 参数识别报文来自的网络,利用 此参数可以很好的支持变电站内部的双以太网通信。段内偏移量mo f f s e t 参数 记录数据的起始位置,利用段内偏移量m _ o f f s e t 参数、内存段中数据长度m 1 e n 参数和报文的总长度m - p k t l e n 参数,能方便的完成报文分片的重组、数据删除 和插入数据等操作,有效的减小完成这些操作所需的复制拷贝操作,提高了解 码编码报文的实时性。 3 3 分时和多任务处理 嵌入式以太网通信模块采用分时多任务的思想进行设计,每个功能模块为 一个任务,都有休眠、就绪和运行三个状态。 3 3 1 多任务处理 在变电站自动化系统中,间隔层设备的软件构架目前一般使用前后台系统 或者超循环系统,系统的主程序为一个无限循环,循环中调用相应的函数完成 相应的操作,而时间相关性很强的操作如保护功能,利用中断服务程序来实现, 为了实现多任务的并行处理,每个任务需要分时间片执行的策略。以太网通信 模块可以作为主程序中的一个子程序运行,调度通信模块内的各个任务执行通 信操作,其调度管理任务的原理如图3 5 所示。 图3 5 中,任务a 和任务b 是以太网通信模块的两个功能子模块,其中任 务b 包含两个子任务:子任务a 和子任务b 。任务按循环调度的思想以时间片 的形式被执行,如完成任务a 需要四个时间片,任务之间通过报文队列传递数 据。标志量标识任务的状态,如标志量a 标识任务a 的状态为休眠状态还是就 绪状态。当任务a 需要任务b 执行相关操作时,则把数据压入报文队列b ,同 时设置标志量b 的值为“就绪状态”,而任务a 执行完毕后,如果报文队列a 为空,则任务a 设置标志量a 的值为“体眠状态”。 以太网通信模块的主程序检查标志量的状态,如果标志量的值为“就绪状 态”,则激活对应任务进入“运行状态”。任务运行一个时间片后自动挂起,等 待下一轮时间片的到。任务时间片的划分由任务自身决定,且时间片的大小一 般不等,但是在一个时间片内都执行了一小段代码或者一个简单操作。 3 3 2 分时处理 任务时间片的划分由任务自身决定,利用对函数进行分时实现,一个时间 西南交通大学硕士研究生学位论文 第3 1 页 第4 章变电站自动化系统嵌入式以太网的实现 本章针对具体的8 0 2 9 6 s a 单片机和c s 8 9 0 0 a 网卡芯片构建的硬件平台,研 究了采用8 0 2 9 6 s a 单片机为处理藉捌越袭凛嘲嘲晤固孺件! l ? ;引凇援壤; 滞攀妖:趸氆崖耀也封0 剀鲺强秘羁妾翘露遵角蚕警蒹弼若戮甜鞴戳掣裂 菱f 括帑黔拦鳊割警。甜嚣斟矍欷孔氍霆黝裂部的网络接口一般较多,这样使建立路由表占用的内存 资源较大,并且增加了报文发送的复杂程度。在变电站自动化系统的间隔层设 备上实现以太网通信时,把路由和地址解析功能分离,设备上只支持a r p 协议, 变电站的网关设定a r p 代理功能,帮助其他设备回答a r p 请求,这样能很好的 支持如广域保护系统要求的不同厂站间隔层设备之间直接通信的内在需求 ”“,如图3 7 所示。 图3 7 中,变电站内部通信网为以太网a 和以太网b 双以太网,a 、b 、c 、 d 和e 是网络接口的i p 地址,m 是c 所在的网络接口的以太网姒c 地址,设备 2 和变电站网关通过网络中继系统相连。变电站内的间隔层设备l 不支持i p 路 由,变电站网关支持a r p 代理,设置c 对应的网络接口为e 地址的a r p 代理接 口,于是设备1认为设备2 在以太网a 上,其以太网地址为m 。 图3 7 路由和图37路由和地址解析功能分离通信示意图 x 西南交通大学硕士研究生学位论文第3 3 页 为了摆脱对处理器处理能力的这种浪费,可以不进行连续的读寄存器查询 操里;堡售誊唑搿援鬈菸坚范咀婴联链鞲烈;嚣竖融丽f 豁埘烈篓靛= 警“ 嘏堕妊塥群蒋荇韫群磁黠黼坚ji j ! im 瑚缁弱彰豁矧幂前鏊朝酣鞠魏阻 拍蛩j 墨灌篙岸暴i 删h * 捌扪篙番! 僦羹积祁牾自篦;# 妫猷娃彰孙1 驸 缈 ! 嚣弭辫髓嚣骶 ;i p多播地址对应的磁a c 地址是以太网 多播地址,它的格式为:前3 个字节是o x 0 1 0 05 e ,紧跟1 个o 比特位,然后是 对应i p 多播地址的9 3 2 比特位o ”。 3 4 3a r p 信息表更新 变电站系统的间隔层设备通信模块故障率高,设备的i p 地址和以太网m a c 地址的映射关系在长期运行中会发生改变,而a r p 信息表中的地址映射信息基 本上是系统通信初始化时建立。如果设备的a r p 信息表没有被实时的更新,则 通信时就会因地址解析出错而丢失数据。 实时更新a r p 信息表是对a r p 协议的应用,它在结点信息完整的情况下定 时的发送a r p 请求报文,触发a r p 回答报文,刷新节点的a r p 信息表。当间隔 层设备由不同厂家提供时,其以太网协议实现可能有一定的差异,该功能不仅 能够刷新本设备关于其他设备的地址映射信息,同时,也能帮助其他设备刷新 关于本设备的地址映射的最新信息。 在具体实现时,并非同时向系统中所有设备发送a r p 请求,以免造成广播 风暴,而是给每个设备设定对应的生存周期。在生存周期时间内接收到对方的 a r p 报文,自动延长其生存周期;而在生存周期外( 即该节点已失效) 接收到 a r p 报文,则重新激活该节点:如果在节点失效的情况下,依然等间隔的发送 若干次ar p 请求而未接收到对应的a r p 报文,则认为该节点已死亡,不再发送 a r p 请求。 3 4 4 防止a r p 洪泛 变电站自动化系统投运后,通信初始化过程启动,设备之间交换与自身设 备相关以及和应用层数据传输规则相关的信息,触发a r p 请求报文和a r p 回答 报文进行地址解析。在地址解析时,设备不能以过高的速度向同一目的设备的 发送a r p请求报文,否则网络上将出现a r p 洪泛”,使系统的通信初始化过程 变得很长 。 从网络的角度看,发送到某目的设备的a r p 请求报文以组的形式被发送到 亘壹窭望奎兰塑主塑窒竺兰堡笙皇篁! !里幽4 3 接收数据的流程 识,使变电站内的双以太网通信成为可能,interface结构如下所示:i n t e r f a c e接口的硬件地址i f haddr接口的协议地址i fd a d d r 以太网多播链i fe m u l t i a d d r s ip多播链i fi p m u l t i a d d r s发送队列i fs n d ) : i n t e r f a c e 结构中,i l h a d d r 变量保存对应的网卡芯片的硬件地址 i f - p a d d r 为本通信接口的i p 地址,它们实现了本地i p 地址和网卡硬件地址的 映射,标识了网络通信接口。发送队列i f s n d 变量缓存等待发送的以太网帧, 以太网多播链i f e m u l t i a d d r s 和i p 多播链i l i p m u l t i a d d r s 用于多播接收, 维护网络接口允样隋严辖军荐信号曝惟礤浩峄岛;差篙锚崔辱筵: 老差曹趸l ! 屣墨挥薹稚 通用的协议之一,可以利用它方便、有 效、快速的监测到网络上的设备通信是否出现故障。 监测网络故障功能可以和a r p 协议的实现融合在一起,刷新a r p 信息表信 息时,与监测相关的控制变量也被同时更新。监测网络故障的设备记录运行时 接收到的所有a r p 报文,周期性的根据本周期内的最新记录把网络上的设备分 西南交通大学硕士研究生学位论文第3 6 页 址,则填写完整的以太网首部信息,发送报文。e t h e r _ i n p u t 函数的主要任务 是判断接收到的以太网帧的类型,如a r p 报文、i p 报文等,并根据类型把以太 网帧压入对应的报文队列等待处理。 4 。3 2 插口屡 插口层为应用层程序提供插口结构,管理应用层程序与以太网通信模块协 议层之间的数据交互。应用层程序和插口层通过应用程序缓存区交互数据,插 口层分配m a n a g e r 结构链缓存来自应用程序发送缓存区的数据,并把它交给协 议层处理;同时,插口层缓存柬自协议层的m a n a g e r 结构链,取出其中数据写 入应用层接收缓存区等待应用层程序处理。插口层管理应用层程序通信的数据 结构如图4 4 所示。 插口s o c k e t 厂 协议控制块p c b 【 内核发送缓存区s o j n d 外部地址i t l p f 甜d r 内核接收缓存区s o j e c v 外部端口i n p _ f p o n 协议控制块s o p 曲- 本地地址i n p - 1 a d d r 本地端口i n p l p o n l 读选项1 “p o p t i o n s 7 写选项m p o p t l o n s w 多播信息呻一m 叩t l o n s 差错信息j l l p e r r o r s i p 首部信息i n p i p 图4 4 插口层维护的信息 图4 4 中,插口s o c k e t 结构管理协议层与应用层交互的信息,内核发送缓 存区s os n d 控制发送到网络上数据的突发流量,减小网络资源被独占和网络出 现拥塞的几率,内核接收缓存区s 0 一r e c v 缓存和控制来自协议层的m a n a g e r 结 构链缓存的数据,减小应用层程序处理速度较慢而造成数据丢失的可能性。 图4 4 中的协议控制块p c b 结构标识了实现u d p 协议的基本信息,如果要 实现t c p 协议,还要加入实现滑动窗口等功能需要的信息。图4 4 的p c b 结构 中,外部地址i n p _ f a d d r 和外部端口i n p f p o r t 指定通信远端的应用层程序, 本地地址i n p - 1 a d d r 指明以太网通信接口,本地端口i n p 1 p o r t 为应用层程序 的标识。读选项i n p o p t i n s r 保存接收到i p 选项信息,写选项i n p o p t i o n s w 保存应用层程序使用i p 选项携带的信息,例如源路由等。多播信息 i n pm o p t i o n s 用于多播通信,维护应用层程序加入的i p 多播组信息,而i p 首 部信息i n p _ i p 用于保存应用程序设置的i p 首部的一些初始化参数。 西南交通大学硕士研究生学位论文第3 7 页 4 4 协议层 协议层主要包括a r p 协议层、i p 协议层、i c m p 协议层、i g m p 协议层和u d p 协议层,其中a r p 协议层处理a r p 输入队列中的a r p 报文,发送a r p 请求报文, 对i p 地址进行解析找到对应的m a e 地址。i p 协议层组织i p 报文,解读输入队 列中的i p 报文并把它分用到i c 伸、i g m p 、u d p 协议层或者t c p 协议层进行处 理。i c m p 协议层发送差错报文和控制信息,并把接收到的差错报告给相应的出 错的应用层程序。i g m p 协议层管理i p 多播组,u d p 协议层组织和解读u d p 报文, 把应用层数据组织成u d p 报文进行发送,将接收到的u d p 报文放到内核接收缓 存区缓存。 4 4 1a r p 协议层 图4 5 为a r p 协议层处理a r p 报文时涉及到的主要函数功能的关系图,其 中函数a r p i n p u t 函数取a r p 报文输入队列中的m a n a g e r 结构链,然后把它传给 a r p i n p u t p r o c e s s 函数处理,m _ f r e e 函数释放 l a n a g e r 结构链。 图4 5 处理a r p 输入队列中a r p 撤文 a r p 的概念比较的简单,但是它的实现比较的复杂,a r p i n p u t p r o c e s s 函数 可能遇到的情况有”: 1 ) 如果接收到一个针对本系统的i p 地址请求,刚发送一个a r p 回答报文; 2 ) 如果接收到一个a r p 回答,那么此时就知道了对方的m a c 地址,则应该 调用e t h e ro u t p u t 将保存在此a r p 节点的数据发送出去: 3 ) 如果其他主机( 终端设备) 发送了一个a r p 请求或者回答,且发送方的 i p 地址和本机的i p 相同,则系统配置的i p 地址出现冲突; 西南交通大学硕士研究生学位论文第3 8 页 4 ) 如果主机接收到其他主机的请求或者回答,对方的a r p 节点已经存在, 但是硬件地址发送变化,那么应该更新a r p 节点。 地址解析函数a r p r e s o l v e 实现地址解析操作,解析流程如图3 9 所示,当 解析不到淞c 地址时,它调用a r p w h o h a s 函数向所有的网络接口发送a r p 请求 报文,实现对i p 地址的解析。 4 4 2i p 协议层 i p 协议层的主要功能是组织i p 报文发送或者解读接收到的i p 报文,图4 6 说明了i p j n p u t 函数解读i p 报文时主要涉及到的函数被调用情况。 圈4 6 处理输入i p 报文的函披 i 口i n p u t 函数调用i l d e q u e u e 函数从i p 输入队列中取出报文( m a n a g e r 结构链) ,利用c k s u m 函数校验接收的i p 报文的i p 首部;如果含有i p 选项则 调用i pd o o p t i o n s 函数处理接收到的i p 选项,然后检查是否为发送到接收到 此报文的接口a 上的i p 报文: 1 ) 如果报文为多播报文,则调用i n j o o k u p u l t 函数寻找接口a 的多播地 址表,如果没有和目标i p 地址匹配的多播i p 地址,则丢弃这个报文; 2 ) 如果报文为单播报文且目的i p 地址与接口a 的协议地址不匹配,则调用 i c m p 协议层的i c m p e r r o r 函数发送i c m p 差错报文。 西南交通大学硕士研究生学位论文 第3 9 页 如果i p 报文是发送到接口a 的报文,执行i p 报文分片处理,调用i pr e a s s 组装i p 报文分片,否则根据i p 首部的协议字段把报文( m a n a g e r 结构链) 分 用到i c m p 、i g m p 、u d p 或者t c p 协议层处理。 图4 7 说明了发送i p 报文的函数调用顺序,i p o u t p u t 是i p 协议的输出 函数,它组装i p 首部。如果要发送i p 选项,则调用i p i n s e r t o p t i o n s 在i p 首部和i p 报文的数据中间直接插入i p 选项。然后调用i nc k s u m 函数计算i p 首部和i p 选项( 如果有) 的校验和,并检查i p 报文的长度,如果太大返回差 错信息。 幽4 7 发送i p 报文的涉及的主要函数 4 4 3u d p 协议层 图4 8 说明了u d p j n p u t 函数解读u d p 报文涉及到的主要函数的执行次序。 u d p i n p u t 函数从u d p 输入队列取u 盼报文( m a n a g e r 结构链) ,调用 i n p c b l o o k u p 函数查找最匹配( 包括通配) 的协议控制块p c b 。如果没有匹配的 协议控制块,则调用i c m p e r r o r 发送端口不可达报文。如果有i p 源路由信息, 则调用u d p s a v e o p t 函数保存源路由,并可以根据应用层程序的需要保存报文 的源地址和端口。u d p _ i n p u t 函数调用i n c k s u m 函数校验i p 伪首部和u d p 数 据,如果校验和为o ,则把数据插入到对应插口的内存接收缓存区,否则调用 t lf r e e 函数释放内存。 在u d p 协议层中,u d p o u t p u t 函数负责组织u d p 报文,初始化u d p 首部和 协议控制块p c b 中设置的i p 首部参数,并调用i n c k s u m 计算i p 伪首部和u d p 数据的校验和,然后把u d p 报文传给i p o u t p u t 函数处理。 西南交通大学硕士研究生学位论文第4 0 页 图4 8 解读u d p 报文处理涉及的函数 4 4 4l c m p 协议层 1 c m p e r r 。r 函数形成差错报文,i c m p j n p u t 函数解读i c m p 报文,它的原 理如图4 9 所示。 l 执行c k s u m 函数校验 l 报文a 的1 5 m p 字段 出错正确 执行功- f r e e 函 数释放报文a 回显 执磊窑嵩端酬避 函数向应用层li c m p 葬送队列 程序传差错信息l 刿 图4 9l c m pi n p u t 函数流程图 西南交通大学硕士研究生学位论文第4 1 页 图4 9 中,i c m p j n p u t 函数解读报文a ( m a n a g e r 结构链) ,调用c k s u m 函 数校验报文a 的i c m p 字段。如果报文a 为接收到的i c m p 差错报文,则调用 u d p _ c t l i n p u t 函数把差错放入到对应的协议

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论