(交通信息工程及控制专业论文)钩计划传输打印控制系统的研究与开发.pdf_第1页
(交通信息工程及控制专业论文)钩计划传输打印控制系统的研究与开发.pdf_第2页
(交通信息工程及控制专业论文)钩计划传输打印控制系统的研究与开发.pdf_第3页
(交通信息工程及控制专业论文)钩计划传输打印控制系统的研究与开发.pdf_第4页
(交通信息工程及控制专业论文)钩计划传输打印控制系统的研究与开发.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 铁路调车作业计划( 简称钩计划) 传输打印控制系统( 简称钩打控制 系统) 是铁路编组站管理信息系统的重要组成部分,其主要功能是实现钩 计划及相关信息在异型网络上的传输。随着需求的变化和技术的进步,钩 打控制系统也在不断的更新,从第代的基于工控机的钩打控制系统,到 第二代基于s x 5 2 专用传输网关的系统,均在一定时间内起到了相当重要的 作用。但现有的系统均是以本地使用、本地维护为背景设计和开发的,一 般不具备远程维护和远程管理的功能。随着铁路系统的改革,管理的集中 化、科学化己成为必然的趋势,现行系统由于本身的原因,大多不能适应 铁路发展所提出的新要求。 本文在第二代钩打控制系统的基础上,研究并提出了适合于远程维护 和管理的第三代钩打控制系统。第三代钩打控制系统的关键硬件平台钩计 划传输控制器选择以a r m 处理器s 3 c 4 4 b o 为c p u 搭建,构筑基于a r m 处理 器的最小系统,并在其上移植了具有优秀网络功能的嵌入式操作系统 u c l i n u x ,取代了第二代基于s x 5 2 的双m c u 结构;同时本文针对第二代系 统存在的问题,研究并提出了适合于远程维护和管理的系统架构,并对信 息流控制作了进一步优化。 本文还对钩计划传输打印控制系统外围设备协议转换器( 传输钩 计划到驼峰及其他需要系统) 的开发和设计给出了详细的说明,具体又分 为上位机和下位机的开发。 关键词:钩计划传输嵌入式系统a r m 处理器l i n u x 第一章绪论 第一章绪论 1 1 课题背景及意义 铁路调车作业计划( 简称:钩计划) 传输打印控制系统( 简称钩打控 制系统) 是铁路编组站信息管理系统的重要组成部分,其主要功能是实现 钩计划及相关信息在异型网络上的传输,核心部分为钩计划传输系统。随 着需求的变化和技术的进步,钩打控制系统也在不断的更新,从第一代的 基于工控机的钩打控制系统,到第二代基于s x 5 2 专用传输网关的系统,均 在一定时间内起到了相当重要的作用。但现有的系统均是以本地使用、本 地维护为背景设计和开发的,一般不具备远程维护和远程管理的功能。随 着铁路系统的改革,管理的集中化、科学化已成为必然的趋势,现行系统 由于本身的原因,大多不能适应铁路发展所提出的新要求。 随着信息技术、计算机技术、网络技术的发展,嵌入式技术也得到了 广阔的发展空间。嵌入式系统,国内一个普遍被认同的定义是:以应用为 中心、以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可 靠性、成本、体积、功耗等严格要求的专用计算机系统。 其中a r i 微处理器凭借体积小、功耗低、成本低而高性能等优点,已 被成功应用于诸多领域。另外,嵌入式操作系统经过多年的发展目前也已 十分丰富,特别是自由免费软件l i n u x 的出现。l i n u x 凭借源码开放、内 核可裁减、功能丰富、运行稳定等优势,被移植到了多种不同结构的c p u 和硬件平台上。 i n t e r n e t 现己成为社会重要的信息流通渠道。如果嵌入式系统能够 连接到i n t e r n e t 上面,则可以方便、低廉地将信息传送到几乎世界上的 任何一个地方。可以预言,嵌入式设备与i n t r n e t 的结合代表着嵌入式 ,1 北京交通大学硕上学位论文 系统和网络技术的真正未来。随着i p v 6 的应用,设备都可能获得一个全 球唯一的i p 地址,通过i p 地址和互联网相连成为一个网络设备。 钩计划传输打印控制系统即为嵌入式系统和网络技术结合的例子,该 系统应用嵌入式网络技术、采用a r m 架构s 3 c 4 4 8 0 ,将现车管理信息系统所 处的局域网与各钩打控制器所处的现场控制网很好的联系起来,很好地解 决了异型网的信息传递问题。 1 2 主要研究内容 本文在第二代钩计划传输打印控制系统的基础上,研究并提出了第三 代钩打控制系统。此系统的关键硬件平台钩计划传输控制器( 也称钩打网 关) 选择s 3 c 4 4 8 0 ( a r m 7 t d m i 核) 为c p u 搭建,并在其上移植了u c l i n u x 操作 系统,成功开发了基于a i m 的嵌入式系统,取代了基于s x 5 2 双m c u 结构的第 二代系统:而且本文还针对第二代系统存在的问题,研究并提出了适合于 远程维护和管理的系统架构,并对信息流控制作了进一步优化。 1 3 章节安排 本文共分7 章内容,具体章节安排如下: 第一章,介绍了钩打控制系统的发展背景,然后概述了本文的主要研 究内容,最后给出了论文的章节安排。 第二章,钩打控制系统概述,侧重对比于第二代系统,第三代系统的 主要改进方向及基本工作原理,同时说明了系统改进后解决的问题。 第三章,对本系统所采用的相关技术进行简介,具体包括t c p i p 网 络通信协议、u n i x 和w i n d o w s 下s o c k e t 编程技术。 第四章,本文的重点部分,对钩打控制系统的信息流进行详细地分析 和说明,具体又分为管理机与现车管理系统之间,钩打网关与现车管理系 2 第一章绪论 统之间,现车管理系统两后台程序之间,同时对网络管理功能的配置管理 在钩打控制系统中的应用进行分析,最后对第三代钩打控制系统远程配置 和管理功能进行说明。 第五章,本文的重点部分,钩打网关硬件设计及实现、软件设计及实 现及第三代钩打网关相比于第二代网关优点。硬件部分介绍了钩打网关的 系统架构,重点是c p us 3 c 4 4 b o 的特性,及其他外围电路设计:软件部分 是u c l i n u x 操作系统的优势及a r m l i n u x 嵌入式系统的设计方法,包括 建立嵌入式开发环境,设计b 0 0 t l o a d e r 启动程序,移植嵌入式l i n u x 操 作系统内核、文件系统以及针对本系统具体的应用程序流程, 第六章,钩打控制系统的外围设备协议转换器的研究与开发,从 上位机和下位机两方面详细分析。 第七章,对全论文进行总结,讨论了本研究的不足和对将来主要工作 的展望。 最后是致谢及参考文献。 北京交通大学硕上学位论文 第二章钩计划传输打印控制系统概述 2 1 系统简介 铁路调车作业计划传输打印控制系统是编组站综合自动化系统的一个 重要组成部分,其主要任务是及时准确地将钩计划文件传送给编组站中的 各相关作业点。所谓钩计划,就是在各个编组站中,现场工作人员所遵循 的对车列重新编排的文件。随着科学技术的不断发展,钩计划单的下达经 历了从人工传递、电话通报到计算机网络传输几个不同的阶段。 第三代钩打控制系统( 如图2 1 所示) 由钩计划传输控制器、钩打控制 器、标准打印机、管理机和数据传输通道组成。 钩计划传输控制器是钩计划传输打印控制系统中的关键设备,其应用 嵌入式网络技术、采用a r m 架构s 3 c 4 4 8 0 ,并在其上移植了u c l i n u x 操作 系统。它上端通过以太网与车站局域网相连,下端通过串行传输网络与现 场钩打控制器相连,将车站系统所处的局域网与各钩打控制器所处的现场 控制网很好的联系起来,解决了异型网的信息传递问题,是一个具有多通 道接口的专用硬件设备,提高了系统运行的稳定性和可靠性。 为了能方便的对钩打网关进行远程地管理和控制,我们设计开发了一 套远程管理软件,该软件可以安装在路局计算中心的任意台p c 机上, 就把安装了此软件的p c 机称为( 钩打) 管理机。 钩打控制器通过r s 4 8 5 串行接口实时地接收钩打网关送来的钩计划及 状态反馈命令,根据命令中对打印份数以及字体的要求,控制打印机打印, 并把打印结果及工作状态回送钩打网关。 第二章钩计划传输打印控制系统概述 2 2 系统改进 本文对钩打控制系统最大的改进为两个部分,硬件部分和整个系统架 构的变更部分。硬件部分是采用第三代基于a r m 架构的s 3 c 4 4 b o 钩打网关取 代了第二代基于s x 5 2 的双m c u 钩打网关;系统架构变更的两个方面是:第 一,管理机的位置发生了变化,原来管理机在当地局域网内( 见图2 1 虚线 部分所示) ,改进的系统架构中管理机处于远程路局计算中心( 见图2 1 实 线部分所示) ,这是由铁路集中化管理决定的;第二,原来管理机是直接 访问钩打网关,修改后是管理机通过现车管理系统访问,可靠性和稳定性 提高,最主要的是改进后的系统架构支持远程的访问和控制。 图2 1 钩打控制系统架构 2 3 系统工作原理 先简要介绍一下钩打控制系统的工作原理,具体地分析详见第四和第 五章。现车管理系统所在主机使用的操作系统是u n i x ,其通过以太网上端 北京交通大学硕士学位论文 与钩打管理机、下端与钩打网关通信,以完成信息的传递。现车管理系统 将生成的钩计划文件、各站点打印份数文件存放于指定的路径下,而后由 后台钩计划传输程序( p r o g e x e ) 将钩计划发送给钩打网关。钩计划传输程 序( p r o g e x e ) 使用的编程技术是u n i x 下s o c k e t 编程( 详见第三章) ,通信 时双方的协议标准是t c p i p ( 详见第三章) 。在使用的客户机朋艮务器( c s ) 网络编程模式中( 详见第三章) ,现车管理系统作为通信的客户端,通信 的另一方钩打网关作为服务器端。网关接到钩计划后,分发到各个钩 打站点的钩打控制器,钩打控制器按要求的份数打印出钩计划。钩打网关 不断检测各站点的工作状态( 包括通讯状态和打印状态) ,定时报告给现 车管理系统,然后当需要的时候现车管理系统将各状态传送到钩打管理机 或其他终端。 钩打网关是钩计划传输打印控制系统中的关键设备,所以说对钩计划 传输打印控制系统的管理,主要是说对于钩打网关的管理。为了能方便的 对钩打网关进行远程地管理和控制,我们设计开发了远程管理软件 ( c o n s o l e e x e ) 。c o n s o l e e x e 是在w i n d o w s 下利用v c + + 工具开发出来的,使 用的是w i n d o w s 下s o c k e t 编程( 详见第三章) 。钩打管理机通过现车管理系 统对钩打网关进行管理和控制,这是由铁路改革和对钩打系统优化改革所 决定的。管理机与现车管理系统之间使用的编程模式也是客户服务器 ( c s ) 模式,在此模式下,装有c o n s 0 1 e e x e 管理软件的管理机作为通信 的客户端,而现车管理系统运行的后台程序( b a c k e x e ) 是通信的服务器 端。 钩打网关远程管理软件的作用是远程对钩打网关进行配置、管理和维 护,以实现整个系统的良好运转。管理软件所能实现的主要功能如下: 修改网关的i p 地址。 对钩打网关进行各种初始化参数设最。 第二章钩计划传输打印控制系统概述 通过读取钩打控制器所连打印机的工作状态,及时掌握现场设备 的情况。 此软件运行环境:w i n 2 0 0 0 w i n 2 0 0 3 w i n x p 2 4 改进后解决的问题 改进的第三代钩打控制系统能很好地解决第二代系统( 即现行系统) 存在的问题。 第一个解决的问题,是现行钩打控制系统稳定性、可靠性低的问题。 由于第二代系统采用s x 5 2 的双m c u 钩打网关,采用单任务的方式实现信 息的传递,所以处理能力受到局限,当系统繁忙的时候,可能造成钩打网 关任务处理不及时或者未处理的情况发生,更为严重的是由于任务阻塞导 致的钩打网关死机。第三代钩打控制系统的钩打网关采用a r m 架构 s 3 c 4 4 8 0 技术,直接在u c l i n u x 操作系统下运行多进程,多任务的运行使 c p u 的利用率达到最高,并使应用程序模块化,开发人员可以将很复杂的 应用程序层次化,使应用程序更容易设计与维护,而且系统的可靠性和稳 定性得到很大程序的提高。 第二个解决的问题,铁路集中化管理后带来的远程维护问题。2 0 0 5 年铁道部出台“实行铁道部一铁路局一站段三级管理模式”的改革方案, 取消了铁路分局,各铁路局成立适应直接管理站段的调度指挥机构,对铁 路局管辖范围内的运输工作统一指挥。为提高系统维护和管理效率,对许 多基于计算机和网络的应用系统都提出了远程维护和管理的要求。改进的 系统架构完全支持远程维护,系统的管理机能够方便地通过网络远程访问 现车管理系统,进而管理与现车管理系统处于同一局域网内的钩打网关。 第三个解决的问题,当钩打管理机和现车管理系统同时访问钩计划传 输控制器的时候,可能会造成钩打网关死机的现象发生。若管理机位于本 北京交通大学硕士学位论文 地局域网,发生了问题可以在现场直接对网关复位或者采取其他的措篪进 行解决。铁路集中化管理后,由于时间、距离等条件的限制,不可能每次 出现故障的时候都去站段的现场进行解决。采用改进的系统架构后,只有 现车管理系统才可以直接访问钩打网关,管理机不再直接地对钩打网关进 行操作,而是要通过现车管理系统间接进行。概括起来说,改进的架构, 只要求钩打网关对应现车管理系统,是一对一的问题,从而提高了系统的 可靠性和稳定性,很大程序上避免了故障情况的出现。 第三章相关知识简介 第三章相关知识简介 在第二章对钩计划传输打印控制系统做简单说明的时候,涉及到了 t c p i p 网络通信协议和网络s o c k e t 编程技术。在这一章中,对这些相关 知识做稍微详细地介绍。 3 1 t c p i p 网络通信协议简介 3 1 1 概述 0 s i 对服务、接口和协议的概念区别十分明了,但它却没有真正的用 户群。t c p i p ( 传输控制协议互联网协议) 模型对服务、接口和协议的 概念区别不像o s i 模型那样明晰,但很实用,互联网历史上和技术上的开 发标准都是t c p i p 模型。t c p i p 模型及其协议族使得几乎世界上任意两 台计算机之间的通信成为可能。下图显示t c p i p 模型与o s i 模型的近似 对应关系。t c p i po s i 应用层 传输层 互联网络层 网络接入层 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 图3 1 t c p i p 模型与0 s i 模型的近似对应关系 北京交通大学硕士学位论文 3 1 2 t c p i p 模型分层介绍 3 1 2 1 网络接入层 这一层的名称非常广泛,也被称为主机网络层或数据链路层,通常包 括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处 理与电缆( 或其他任何传输媒介) 的物理接口细节。 3 ,l 2 2 互联网络层 互联网络层把来自互联网络上的任何网络设备的源分组发送到目的 设备,而且这一过程与它们所经过的路径和网络无关。这一层进行最佳路 径的选择和分组交换。网络层使用始终如一的协议( i p 协议) 和不变的 分组格式( i p 分组) 。图3 2 描述了i p 分组的基本结构。 版本 首部长度 服务类型总长度 标志 标志 片偏移量 寿命协议首部校验和 源站i p 地址 目的站i p 地址 i p 选项( 若有)填充 数据 图3 2i p 分组的基本结构 i p 分组包括头和数据部分,i p 分组的长度为4 个字节的( 3 2 ) 的整 数倍,从版本到填充部分是分组头部分,i p 选项和填充部分也可以没有, - l o - 第三章相关知识简介 以下是对分组中的段逐个加以分析: 1 、版本号:表明当前使用的i p 协议的版本( 4 位) 2 、首部长度:以3 2 位字为单位,表示的数据报长度( 4 位) 3 、服务类型;规定了分组的优先级,该优先级是由某个上层协议指 定的( 8 位) 。 4 、总长度:规定了整个i p 数据包的长度,包括数据和包头,以字节 为单位( 1 6 位) 。 5 、标志( 标识) :包含了一个表示当前数据报的整数( 1 6 位) 。 6 、标志:总共3 位。低两位控制分片,第一位规定报文是否可以分 片,第二位规定该报文是否为一系列分片报文的最后一片( 3 位) 。 7 、片偏移量:用于将数据报分片拼装起来( 1 3 位) 。 8 、寿命:保存一个逐渐递减为0 的计数器,计数器为0 时该数据报 将被丢弃,以防止报文在网络中无限循环地传递( 8 位) 。 9 、协议:表明在i p 处理结束后哪个上层协议会接收该数据包( 8 位) 。 1 0 、首部校验和:确保i p 包头的完整性( 1 6 位) 。 1 1 、源站i p 地址:发送节点的i p 地址( 3 2 位) 。 1 2 、目的站i p 地址:接收节点的i p 地址( 3 2 位) 。 1 3 、i p 选项:使得i p 能够支持各种选项,比如安全性( 长度可变) 。 i 4 、填充:额外添加的o ,确保i p 报头的大小总是为3 2 位的倍数。 1 5 、数据:包含上层的信息( 变长,最大为6 4 k b ) 。 i p 协议规定每台机器都要有一个i p 地址,而当i p 模块建立了i p 分 组,并且准备发送给以太网之前,必须知道目的主机的以太网地址( m a c 地址) 。a r p 协议( 地址解析协议) 用来进行m a c 地址和i p 地址的映射, 一些设备会保存一个地址表,用来保存同一个局域网内其它设备的m a c 地址和i p 地址,这个地址表被称为地址解析协议( a r p ) 表。如果i p 模 北京交通大学硕十学位论文 块在a r p 表里找不到某一目的主机的m a c 地址,它就会使用广播方式发送 一个a r p 请求给网上的每一台主机,收到广播的每台主机检查请求分组中 的i p 地址,如果发现该i p 地址和自己的i p 地址一致,就发送个响应 分组给源主机,其中就包含了目的主机的m a c 地址。 3 1 。2 3 传输层 传输层的主要功能是负责端到端的对等实体之间进行通信,处理关于 可靠性、流量控制和重传等典型的问题,对高层屏蔽了底层网络的实现细 节,同时它真正实现了源主机到目的主机的端到端的通信。t c p ,口的传 输层定义了两个协议: 传输控制协议( t r a n s p o r tc o n 仃0 1p r o t o c 0 1 ) ,简称t c p 。 用户数据报协议( u s 8 rd a t a 髀mp r o l o c o 】) ,简称u 】) p 。 t c p 协议是可靠的,面向连接的协议,它在终端用户的应用程序之 间提供了一条虚电路,用于包交换的计算机通信网络、互联系统以及类似 的网络上,保证通信主机之间有可靠的字节流传输。u d p 是无连接的、 不可靠的协议,提供主机之间的不可靠数据传输。它的优点是协议简单、 额外开销小、效率较高;缺点是不保证正确传输,也不排除重复信息的发 生。因此,需要可靠数据传输保证的应选用t c p 协议;相反,对数据要 求不太高,而对速度、效率要求很高的环境,如声音、视频的传输,应该 选用u d p 协议。 在整个t c p i p 的分层模型中,i p 层提供了一个无连接的、不可靠的网 络传输机制。i p 分组可能会在传输中丢失、失序或数据错误。t c p 协议最 主要的是解决了数据的可靠传输和端到端的流量控制问题。 t c p 坼议设计的一个重要特点就是它为发送的每一个字节都赋予一个 顺序的编号序列号。这一设计可以对每一个字节都产生一个确认。t c p 第三章相关知识简介 采用了种积累式的确认方式:当对序列号为s 的字节返回确认时,实际上 是对序列号为s 之前( 但不包括s ) 的所有字节加以确认。 t c p 使用三次握手协议来建立连接:连接发起方a 先随机选择个初始 序号来发送个s y n ,b 收到s y n 后,也选择一个初始序号,发送一个s y n ,同 时返回对收到的s y n 的确认,a 收到后对对方的s y n 返回确认,连接就建立起 来了。如图3 3 所示。 主机a 发送s y n ( 序号为x ) 主机b 发送s y n ( 序号为x ) 对x 确认( a c k 咐1 ) 连接建立 图3 3 三次握手建立连接 在本系统中,现车管理系统与钩打管理机和钩打网关通信的时候,采 用的就是t c p 协议,就是由于t c p 是面向连接的、可靠的协议。 3 1 2 4 应用层 t c p p 将所有与应用相关的内容都归为一层,并保证下一层适当将 数据分组( 打包) 。应用层是t c p p 协议族的最高层,它包含了所有o s i 参考模型中会话层、表示层和应用层这些高层的协议功能。互联网络上的 应用层协议有以下几种:( 图3 4 是t c p ,印参考模型对这些常用协议的定 义) 1 、f t p 文件传输协议。 2 、h t t p 超文本传输协议。 13 北京交通大学硕士学位论史 3 、s m t p 简单邮件传输协议。 4 、d n s 域名系统。 5 、t f t p 简单文件传输协议。 图3 4t c p 口参考模型对常用协议的定义 3 2 洲i x 下s o c k e t 编程技术 3 2 1 综述 u x i n 是一个多道程序分时操作系统,支持多终端用户。它具有短小精 悍,可靠,易于理解,易于扩充和移植等特点。现已成为一个面向多任务, 多用户的操作系统,主要在p o w e rp c 、工作站和小型机上应用。 t c p i p 协议的应用开发接口的事实标准是s o c k e t ( 套接口) 。它是u n i x 环境下的一个编程接口。它提供了不同主机进程间的双向通信端点,开发 s o c k e t 的目的是屏蔽网络底层复杂的结构与协议,使编程人员能够简单抽 第三章相关知识简介 象地对网络进行操作。利用它可以构造任意的跨操作系统、跨网络协议的 分布式处理系统。每一个套接字都用一个半相关描述: 协议、本地地址、 本地端口) 来表示;一个完整的套接字则用一个相关描述: 协议、本地地 垃、本地端口、远程地址、远程端口 ,每一个套接字都有一个本地的由操 作系统分配的唯一的套接字号。s o c k e t 的三种类型:流式s o c k e t ( s o c k s t r e a m ) ,提供可靠、面向连接的通信流,使用t c p 协议,保证了数据传输 的正确性和顺序;数据报s o c k e t ( s o c k _ d g r a m ) ,它定义了一种无连接的服 务,数据通过相互独立的报文进行传输,是无序的,不保证可靠、无差错, 它使用数据报协议u d p 协议;原始s o c k e t ( s o c k r a w ) ,允许对底层协议如i p 或i c m p 直接访问,它功能强大但使用较为不便,主要用于一些协议的开发。 3 2 2 基本函数介绍 首先调用基本函数s o c k e t ( ) 创建一个套接字,函数为i n ts o c k e t ( i n t d o m a i n ,i n tt y p e ,i n tp r o t 。c 0 1 ) ,其中参数d o m a i 时旨定要创建的套接字 的协议族,可以是如下值:p f l o c a l ( u n i x 域协议族,本机的进程间通信时 使用) ,p f _ i n e t ( i n t e r n e t 协议族t c p i p ) ,p f _ i s o ( i s 0 协议族) ;参数t y p e 指定套接字类型,可以是如下值:s o c k - s t r e a m ( 流套接字,面向连接的和 可靠的通信类型) ,s o c k _ d g r a m ( 数据报套接字,非面向连接的和不可靠的 通信类型) ,s o c k r a w ( 原始套接字,只对i n t e r n e t 协议有效,可以用来直 接访问i p 协议) ;参数p r o t o c o l 通常设置成0 ,表示使用默认协议,如 i n t e r n e t 协议族的流套接字使用t c p 协议,而数据报套接字使用u d p 协议。 该调用成功时返回s o c k e t 描述符,否则返回一1 ,并设置相应的错误代码。 函数c o n n e c t ( ) 定义为i n tc o n n e c t ( i n ts o c k f d ,s t r u c ts o c k a d d r s e r v a d d r ,i n ta d d r l e n ) ,参数s o c k f d 是函数s o c k e t 返回的套接字描述符; 参数s e r v a d d r 指定远程服务器的套接字地址,包括服务器的i p 地址和端口 北京交通大学硕十学位论文 号;参数a d d r l e n 指定这个套接字地址的长度。成功时返回o ,否则返回一1 。 在调用函数c o n n e c t 之前,客户机需要指定服务器进程的套接字地址。客户 机一般不需要指定自己的套接字地址( i p 地址和端口号) ,系统会自动从 1 0 2 4 至5 0 0 0 的端口号范围内为它选择一个未用的端口号,然后以这个端口 号和本机的i p 地址填充这个套接字地址。客户机调用函数c o n n e c t 来主动建 立连接。这个函数将启动t c p 协议的3 次握手过程。在建立连接之后或发生 错误时函数返回。 函数b i n d ( ) 将本地地址与套接字绑定起来,函数定义为i n tb i n d ( i n t s o c k f d ,s t r u c ts o c k a d d r 木m y a d d r ,i n ta d d r l e n ) ,参数s o c k f d 是函数s o c k e t 返回的套接字描述符;参数m y a d d r 是本地地址;参数a d d r l e n 是套接字地址 结构的长度。执行成功时返回0 ,否则返回一1 。服务器和客户机都可以调用 函数b i n d 来绑定套接字地址,但一般是服务器调用函数b i n d 来绑定自己的 公认端口号。我们一般不在客户机上使用固定的客户机端口号,除非是必 须使用的情况。 函数l i s t e n ( ) 将一个套接字转换为侦听套接字,定义为i n tl i s t e n ( i n t s o c k f d ,i n tb a c k l o g ) ,参数s o c k f d 指定要转换的套接字描述符;参数 b a c k l o g 设置请求队列的最大长度,执行成功时返回o ,否则返回一1 。 函数a c c e p t ( ) 从侦听套接字的完成队列中接收一个已经建立起来的 t c p 连接。如果完成连接队列为空,那么这个进程睡眠。定义为i n t a c c e d t ( i n ts o c k f d ,s t r u c ts o c k a d d r 木a d d r , i n t : a d d r l e n ) ,参娄殳s o c k f d 指定侦听套接字描述符;参数a d d r 为指向一个i n t e r n e t 套接字地址结构的 指针;参数a d d r l e n 为指向一个整型变量的指针。执行成功时,返回3 个结 果:函数返回值为一个新的套接字描述符,标识这个接收的连接;参数a d d r 指向的结构变量中存储客户机地址;参数a d d r l e n 指向的整型变量中存储客 户机地址的长度。失败时返回一1 。侦听套接字专为接收客户连接请求,完 第三章相关知识简介 成3 次握手操作而用的,所以t c p 协议不能使用侦听套接字描述符来标识这 个连接,因此t c p 协议创建一个新的套接字来标识这个要接收的连接,并将 它的描述符发送给应用程序。现在有两个套接字,一个是调用函数a c c e p t 时使用的侦听套接字,另一个是函数a c c e p t 返回的连接套接字( c o n n e c t e d s o c k e t ) 。一个服务器通常只需创建一个侦听套接字,在服务器进程的整个 活动期间,用它来接收所有客户机的连接请求,在服务器进程终止前关闭 这个侦听套接字;对于每一个接收的( a c c e p t e d ) 连接,t c p 协议都创建一个 新的连接套接字来标识这个连接,服务器使用这个连接套接字与客户机进 行通信操作,当服务器处理完这个客户机请求时,关闭这个连接套接字。 函数c l o s e ( ) 关闭一个套接字描述符,定义为i n tc l o s e ( i n ts o c k f d ) 。 执行成功时返回o ,否则返回一1 。它将套接字描述符的引用计数器减1 ,如 果描述符的引用计数大于0 ,则表示还有进程引用这个描述符,函数c l o s e 正常返回:如果为0 ,则启动清除套接字描述符的操作,函数c 】o s e 立即正 常返回。调用c l o s e 之后,进程将不再能够访问这个套接字,但t c p 协议将 继续使用这个套接字,将尚未发送的数据传递到对方,再执行关闭操作, 一直等到这个t c p 连接完全关闭之后,t c p 协议才删除该套接字。 函数r e a d ( ) 和w r i t e ( ) 用于从套接字读写数据。定义为i n tr e a d ( i n t f d ,c h a r 柚u f ,i n t1 e n ) 和i n tw “t e ( i n tf d ,c h a r 柚u f ,i n t1 e n ) , 函数执行成功时,返回读或写的数据量的大小,失败时返回一1 。每个t c p 套 接字都有两个缓冲区:套接字发送缓冲区、套接字接收缓冲区,分别处理 发送和接收任务。从网络读、写数据的操作是由t c p 协议在内核中完成的: t c p 协议将从网络上接收到的数据保存在相应套接字的接收缓冲区中。等待 用户调用函数将它们从接收缓冲区拷贝到用户缓冲区;用户将要发送的数 据拷贝到相应套接字的发送缓冲区中,然后由t c p 协议按照一定的算法处理 这些数据。读写连接套接字的操作与读写文件的操作类似,也可以使用函 北京交通大学硕上学位论文 数r e a d 年口w r i t e 。函数r e a d 完成将数据从套接字接收缓冲区拷贝到用户缓冲 区:当套接字接收缓冲区有数据可读时,立即返回实际读到的数据量;当 无数据可读时,函数r e a d 将阻塞不返回,等待数据到达。函数w r i t e 完成将 数据从用户缓冲区拷贝到套接字发送缓冲区的任务:到套接字发送缓冲区 有足够拷贝所有用户数据的空间时,函数w r i t e 将数据拷贝到这个缓冲区 中,如果可用空间小于w r i t e 参数l e n 丰旨定的大小时,函数w r i t e 将阻塞不返 回,等待缓冲区有足够的空间。 以上函数应用时都要引用文件# i n c l u d e 和 # i n c l u d e 。 3 2 3 客户机服务器模式 一个在建立分布应用时最常用的范例便是客户机服务器( c s ) 模型。 在这种方案中,我们将请求服务的一方称为客户,将提供某种服务的一方 称为服务器。在i n t e r n e t 的应用中,大多数都是比较单一的客户机服务器 模式。也有一些应用程序,本身请求服务的同时也提供一些服务,假如把 功能拆分开来看,这种程序也是客户服务器模式。 我们将网络编程模式定义为客户服务器模式后,程序就可分为客户 端程序和服务端程序。 在t c p i p 协议中,传输层协议包括面向连接的t c p 和无连接数据报 u d p 。其中t c p 通信模式如下图: 第三章相关知识简介 阻 服务器 图3 5 进行面向连接的通信时的原理图 使用无连接的u d p 协议时,服务端进程创建一个s o c k e t ,之后调用 r e c v f r o m 接收客户端的数据报,然后调用s e n d t o 将要返回客户端的消息发 送给客户进程。客户端也要先创建一个s o c k e t ,再使用s e n d t o 向服务端进 程发出请求,使用r e c v f f o m 得到返回的消息。 3 3 w i n d o w s 下s o c k e t 编程技术 w i n d o w ss o c k e t 不是协议而是一套规范,是m i c r o s o f tw jn d o w s 的网络 北京交通人学硕士学位论文 程序设计接口,它继承了b e r k e l e ys o c k e t 主要特征,又对它进行了重要扩 充,提供了一些异步函数,并增加了符合w i n d o w s 消息驱动特性的网络事件 异步选择机制。w i n d o w ss o c k e t 支持多线程的w i n d o w s 进程,一个进程包含 了一个或多个同时执行的线程。无论是u n l x 、l i n u x 还是w i n d o w s 操作系统, 其s o c k e t 编程概念、基本步骤以及所调用的函数名都有很大相似性,所以 具体w i n d o w s 下s o c k e t 编程可以参加3 2 u n i x 下s o c k e t 编程,而且w i n d o w s s o c k e t 编程最常用的范例也是客户机服务器( c s ) 模型,通信模式也大 致相同。但是也有一些区别,主要因为w i n d o w s 是非抢先多任务环境,各任 务之间的切换通过消息驱动。因此,在w i n d o w s 下开发s o c k e t 网络程序要避 开阻塞工作方式,而使用w i n d o w ss o c k e t 提供的基于消息机制的网络事件 异步存取接口。 l i n u x 下s o c k e t 编程与u n i x 下s o c k e t 也大致相同,在此不在赘述。 具体对于钩打控制系统的开发来说,现车管理系统与管理机进行信息 传递时,现车管理系统使用的u n i x 下s o c k e t 编程,作为c s 模式的服务器端; 管理机使用的是w i n d o w s 下s o c k e t 编程,作为c s 模式的客户机端。现车管 理系统与钩打网关通信的时候,现车管理系统使用的u n i x 下s o c k e t 编程, 作为c s 通信模式的客户端;钩打网关采用l i n u x 下s o c k e t 编程,作为c s 通 信模式的服务器端。 第四章钩计划传输打印控制系统信息传输机制厦远程维护 第四章钩计划传输打印控制系统信息传输机 制及远程维护 钩计划是怎么传送到钩打网关的,通过什么协议格式? 钩打网关远程 管理软件是如何实现远程对钩打网关配置、管理和维护的? 第二章对钩计划传输打印控制系统做了一个简单说明,有了第三章相 关技术的基础,在这一章,就要回答上述问题。对其内部具体通信过程及 信息流程做一个非常详细的设计和剖析。 本系统能响应多客户浏览作业现场工作状态的浏览请求和执行单个 超级权限客户( 即管理机) 的控制命令。实现现场通信与网络通信之间的 信息交互,让来自客户端的浏览命令能浏览到作业现场的工作信息,控制 命令能对钩打网关进行配置和管理。 按信息的流向,钩计划传输打印控制系统具体又可分为钩打管理机与 现车管理系统之间、现车管理系统与钩打网关之间咀及钩打网关与钩打控 制器之间。最后一部分放到第五章介绍。 4 1 管理机与现车管理系统之间 管理机与现车管理系统之问通过t c p i p 协议通信时,管理机作为通信 的客户端,现车管理系统是客户服务器模式的服务器端。为保证及时可靠, 使用t c p 而不是【j d p 协议。尽管t c p 和u d p 都使用相同的网络层( i p ) ,t c p 却 向应用层提供与u d p 完全不同的服务。t c p 提供面向连接的、可靠的字节流 传输,而u d p 是一个简单的面向数据报的运输层协议,不提供可靠性。虽然 t c p 提供的可靠性会使其效率稍低于u d p ,由于系统可靠性占主导地位,所以 t c p 提供的可靠性会使其效率稍低于u d p ,由于系统可靠性占主导地位,所以 北京交通大学硕士学位论文 选用t c p 而不是u d p 。 管理机运行在w i n d o w s 操作系统之下,而现车管理系统运行的是u n i x 操 作系统,具体编程使用的都是s o c k e t 网络编程。选择v i s u a lc + + 6 0 作为 管理机钩打网关远程管理软件的开发语言,不仅因为它自身的强大功能和 对w i n d o w s 编程的优秀支持,也是因为其对s o c k e t 网络编程的强大支持。 管理机与现车管理系统之间交换的信息主要是钩打网关的口地址、初 始化信息及各钩打作业点的状态信息,本文因此就以这几大功能模块来说 明。钩打网关的口地址、初始化信息以本地配置文件的形式保存。 4 1 1 配置文件的设计 配置文件使用的是x m l 格式。) ( m l 是可扩展标志语言( e x t e n s i b l em a r k u p l a n g u a g e ) 的简称。象h t m l 一样,x m l 是从所有标志语言的元语标准通 用标志语言s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ) 那里派生出来 的。 x m l 的命名系统,与h t m l 类似,一个) ( 】1 l 的开始标签是这样声明的: ,结束标签也类似,不过在小于号后面要加一个前斜杠 。个 标签对和它中间所包含的内容,象 g o n ew i t ht h ew i n d , 被称为一个元素。所有在一个开始标签和一个结束标签中的东西都被称为 个元索的内容。在上面的例子中,g o n ew i t ht h ew i n d 是m o v i e 这个元素 的内容。 一个格式正确的煳l 文件必须至少包含一个元素;也就是说,文件中必 须有根元素( 不在其他任何一个元素中的元素) 。这使得每一个x m l 文件都是 个层次分明的元素列表。) ( m l 文件通过把元素置于其他标签对中,来定义 产生这种元素间的层次关系( 父子、兄弟关系) 。 相对于i n i 文件格式使用x m l 格式的配置文件有以下优点: 第四章钩计划传输打印控制系统信息传输机制及远程维护 配置具有层次性 取值有效性检查 支持链表、枚举等其他复杂数据类型 配置文件可以嵌套 结合x m ls p y 等x m l 编辑工具编辑配置文件十分便捷 存在大量第三方的x m l 对象绑定工具,并且功能强大、开发便捷。如 j a v a 语言版的x g e n 、j a x b ,c 十+ 版工具x b i n d 钩打网关远程管理软件配置文件具体形式如下: 北京交通大学硕士学位论文 第一行 ? x m lv e r s i o n _ 1 0 ”是x m l 的标准标题,这个标题告诉处理 程序这是一个x m l 文件,同时声明这个文件遵从哪一个订l 版本( 到现 在为止只有1 o 版) ; 文件的第二行是一个注释: x m l 文件中所有的开始标签都必须匹配一个结束标签,所以在层次 结构首部的开始标签 ,必须有一个匹配的结束标签 配置,在文 件的结尾: 剩下的则是一系列被开始标签和结束标签定义的元素。这个例子描述 了钩打控制系统的各种信息,具体包含了下面所示的层次化的数据; 钩打网关地址 钩打网关口地址 钩打网关p o r t 端口号 钩打点点数 名称表 逻辑端口1 的名称 逻辑端口2 的名称 映射关系 逻辑端口1 对应的物理端口 逻辑端口2 对应的物理端口 传输波特率9 6 0 0 打印字体 打印机名称表 逻辑端口l 连接的打印机型号 逻辑端口2 连接的打印机型号 介绍了信息的载体配置文件之后,下面对管理机与现车管理系统之间 第p q 章钩计划传输打印控制系统信息传输机制及远程维护 的信息传递按功能模块进行详细说明。 4 1 2 设置i p 地址、探测网关状态 系统i p 地址设置和探测功能模块要放在其他功能模块之前进行,因为 只有管理机通过现车管理系统与钩打网关建立了联接之后,才可以进行其 他功能模块的操作。 钩打网关采用a r m 架构s 3 c 4 4 b o ,内部运行u c l i n u x 操作系统。u c l i n u x 稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、 以及标准丰富的a p i 等,使第三代钩打控制系统的稳定性和可靠性得到很大 程序的提高。 钩打网关位于现场局域网内,所以必须为它预先分配一个此局域网内 的i p 地址。根据现场局域网分配给钩打网关的真实i p 地址,位于路局计 算中心的管理机通过现车管理系统来修改和探测网关,并将该信息记录下 来,保存到配置文件中( 见上面的配置文件示例图4 1 ) 。管理机通过现 车管理系统向钩打网关发送i p 地址修改命令,即对目标地址进行探测, 钩打网关按照收到的新i p 地址修改原来的i p 地址,修改完成后回答确认 码0 8 给管理机。管理机修改网关i p 地址的命令格式为: 0 x a ao x c c 0 x 5 5 0 x 3 3 o x 0 8 i p 3i p 2i p li p o 女口:i p 地址为1 0 0 0 1 ,贝0i p 3 = 1 0 :i p 2 = 0 :i p l = 0 :i p o = 1 网关返回信息格式为:0 x 0 8 假如确认码正确,说明管理机采用新设定的钩打网关i p 地址作为目标 地址探测成功。否则说明修改钩打网关i p 地址操作失败。这时就应该重新 进彳亍修改i p 地址和探测目的地址的操作,直到成功为止。 修改和探测成功后,钩打网关发送其他初始化参数到现车管理系统, 然后再由现车管理系统将这些初始化参数通过局域网传给钩打网关。钩打 北京交通人学硕上学位论文 网关操作结果同样通过现车管理系统返回管理机( 见图4 4 ) 。 4 1 3 初始化信息 管理机把钩打控制系统初始化所需要的信息通过t c p i p 协议远程传给 现车管理系统。这些初始化信息具体包括传输波特率、打印字体、钩打点 点数、逻辑端口与物理端口的映射关系等,管理机完成参数设置后,以配 置文件的形式保存( 见上面的配置文件示例图4 1 ) ,并作为下次启动时的 初始值。 配置文件中钩打名称表用

温馨提示

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

最新文档

评论

0/150

提交评论