远程监控系统与数据通信论文

时间:2022-09-13 12:16:15

远程监控系统与数据通信论文

1总线无关策略设计框架

远程监控系统由目标机端和监控主机端构成,通过前面所说的不同通信接口进行连接.目标机端运行远程监控,负责接收来自监控主机的命令,进行解析,根据命令执行相应的动作.监控主机端运行控制台程序,通过监控界面发出相应的命令,同时接收目标机的状态信息.远程监控系统的物理实现示意图如图1所示.为了实现对多种通信总线的支持,本文分析了传统远程监控系统的体系结构,对其进行了扩展.通过在应用层和总线驱动层之间增加通信管理层,将具体应用和通信总线隔离开来,应用不必再关心所使用的通信总线类型,使用何种总线建立通信,对于应用程序来说是完全透明的[6-7].通信管理层实现的是一种命令/应答式通信协议,监控主机和目标机之间采用这种命令/应答式通信协议进行通信,通信过程总是先由监控主机向目标机发送一个命令协议包,目标机根据协议进行命令包的解析,执行相应读写功能后,再通过发送状态协议包向监控主机回送通信状态和数据.对于通信端口来说,该协议可以自动解析使用哪种端口进行通信,同时可以屏蔽不同通信端口之间的差异性,从而在监控主机与目标机之间建立与具体通信总线无关的数据通信策略.目前已实现了RS232串口、1553B接口以及CAN总线接口的通信功能,通过对底层总线驱动模块的扩展,可以非常方便地实现对SPI、SPACEWIRE等其它总线的支持.图2中给出了本文研究的远程监控系统的体系结构模型.通信管理层根据协议执行通信命令分析与组织、数据缓冲管理、通信重试、总线访问控制等操作,实现底层总线驱动模块与顶层具体应用的隔离,使得远程监控系统从功能与通信接口两个方面都很容易进行扩展,并且互不影响.它相当于一个格式变换的缓冲区,对底层的通信端口进行管理,在扩展不同的总线协议时,只要遵从缓冲区的数据交互规范,数据直接存放到缓冲区即可,从而可以满足不同的总线通信要求,实际的缓冲区对于用户来说是透明的.为了完成不同的命令功能,在实现时设置了四个缓冲区,分别为命令执行缓冲区、命令接收缓冲区、数据执行缓冲区、数据接收缓冲区.底层的各种通信总线可以直接发送数据到通信管理层,通信管理层通过对数据重新组织成新的数据格式,直接提供给上层的模块使用,因此通信管理层起到承上启下的作用.本文着重针对嵌入式系统开发调试和升级换代过程中对远程程序加载、目标机数据回传等方面的应用需求,设计远程监控系统应用层功能,实现了程序或数据的上传加载和下载回传,并能控制目标机程序的启动运行,未来可以根据需要很方便的扩展功能.该系统包含了三部分内容:监控主机运行的控制台软件(V8_Loader)、目标机上运行的软件(V8_Agent)及命令/应答式通信协议(CP).V8_Loader通过控制界面提供给用户通信接口选择、数据/程序文件发送与接收、程序运行控制等功能,按照通信协议与软件通信,实现程序/数据的上下传;V8_Agent运行在以SPARCV8处理器为CPU的目标机上,接收控制台命令,根据协议完成命令的解析、执行,实现程序/数据在存储器指定区域的加载或回传;命令/应答式通信协议规定了控制台软件和之间的通信格式及命令功能与格式[8].

2命令/应答式通信协议

2.1协议框架

V8_Loader(监控主机,PC)与V8_Agent(目标机)之间采用命令/应答式通信协议进行命令、数据、状态等信息的传送.通信过程总是由监控主机首先向目标机发送一个命令包,目标机在收到命令包后,执行相应读写操作,再根据通信协议向监控主机回送相应的状态应答包.因为远程监控系统对于不同命令的反应实效性是不一样的,为了便于管理,将协议命令分为三种类型,包括立即命令、缓冲命令和数据命令.立即命令信息量短,用于需要马上执行的命令;缓冲命令用于对可延时命令进行延时管理,主要是对数据包进行管理;数据命令主要是用来对大量数据信息进行数据包装.三种命令的具体定义如下:(1)立即命令:目标机接收到立即命令后进行校验,如果正确则立即执行,完成相应控制和状态查询等功能,并回送状态应答包.若校验不正确,则不进行处理和响应.(2)缓冲命令:目标机接收到缓冲命令后,首先存储在缓冲区中,并不立即执行,当监控主机发送执行命令后才执行缓冲区中的命令;执行完成后,也不立即向监控主机回送状态应答包,而是将执行结果存储在缓冲区中,当接收到监控主机发来的查询命令时,才将缓冲区中的状态应答信息作为查询命令的应答包回送给监控主机.(3)数据命令:目标机接收到数据命令后,将数据放在缓冲区中,同时进行校验,根据校验结果设置数据缓冲区的状态,数据包接收后不回送状态应答包给监控主机.

2.2协议包格式

协议包从传输方向上分为两类:上行协议包,由监控主机发送,目标机接收;下行协议包,由目标机发送,监控主机接收.其中上行协议包又包括立即命令包、缓冲命令包和数据命令包三种类型;下行协议包又包括状态应答包和数据应答包两种类型.各种协议包的格式如下:(1)立即命令包:监控主机发送的立即命令,包括前导字符、命令长度、命令内容和校验字节等部分.立即命令的类型包括很多种,具体使用中可以根据需要添加和扩展.(2)缓冲命令包:监控主机发送的缓冲命令,也是实际的功能命令,包括前导字符、命令长度、命令内容和校验字节等部分.缓冲命令包从功能上分为擦除命令、上传命令、下载命令、转移命令等,根据需要可以添加不同的功能命令.(3)数据命令包:监控主机发送的数据命令,用来向目标机的接收数据缓冲区注入一个数据块,包括前导字符、数据块长度、数据块内容和校验字节等部分.(4)状态应答包:目标机发送的状态应答信息,对来自监控主机的立即命令进行响应,包括长度、状态数据和校验字节等部分,长度表示状态数据的字节数,状态数据根据立即命令的不同而不同,从而给宿主机发送不同的状态响应.(5)数据应答包:目标机发送的数据信息,数据应答包是功能命令的数据块,包括长度、数据块和校验字节等部分,长度表示数据块的字节数,数据块是从宿主机接收到的具体数据信息.

3软件实现方法

远程监控系统软件具体实现分为两部分,分别为目标机上运行的V8_Agent,监控主机上运行的V8_Loader程序.本文按照图2所示的系统体系结构模型,采用模块化的设计方法进行了实现.软件整体设计框图如图3所示[9].下面分别从目标机和监控主机两个方面对该系统的软件实现进行说明.

3.1V8_Agent的实现

V8_Agent主要完成各种通信协议命令的解析、执行,在V8_Loader的控制下,将数据传送到目标机的指定区域,或将目标机指定区域的数据传给V8_Loader.图4给出了目标机解析命令的运行过程,主要分为以下几个步骤执行:(1)初始化所有通信端口和缓冲区,转步骤(2),进入通信端口选择过程;(2)采用自动识别方法对通信端口进行识别,按照预先设定的通道顺序查询各端口,首先查到数据的端口将被选择为临时端口;如果从临时端口接收到一个正确的命令,则认为收到该命令的通信通道就是当前选择的通信通道,将当前通道选择标志送给通信通道选择标志,完成通信通道的选择;(3)识别到可用通信端口后,执行命令解析过程;由所接收信息包的第一个字符确定监控主机送来的包类型;如果是缓冲命令包则执行步骤(4),数据命令包执行步骤(5),立即命令包执行步骤(6),其他转步骤(7);(4)接收到缓冲命令包后,将接收到的数据暂存到命令接收缓冲区,当监控主机确认目标机正确接收了缓冲命令后,再将其切换到命令执行缓冲区,并设置命令执行缓冲区状态为命令就绪状态后转步骤(7);(5)接收到数据命令包后,将接收到的数据暂存到数据接收缓冲区,当监控主机确认目标机正确接收了该包数据后,设置数据接收缓冲区状态为数据就绪状态后转步骤(7);(6)接收到立即命令包后,根据命令包类型执行不同的功能命令,同时给监控主机回送一个应答包,并转步骤(7);如果接收的是执行缓冲区中命令的命令,则执行命令缓冲区中存储的缓冲命令,执行完毕后转步骤(7);(7)结束本次通信命令解析过程,转步骤(2)

3.2V8_Loader的实现

V8_Loader软件在监控主机上运行,采用Vis-ualC++6.0进行开发.V8_Loader完成通信接口选择、文件管理、数据打包等功能,并按照通信协议与V8_Agent进行通信,完成数据上下传.考虑到未来扩展应用功能方面的需求,远程监控系统在实现时不仅需要提供如前面应用说明中的完整功能,还需要为未来的嵌入式应用提供其它方面的支持.因此V8_Loader在实现时,采用了如图5所示的多层次结构进一步细化了软件的层次结构,增强软件的可扩展性,提高软件的广泛适应性.界面管理层直接向用户提供文件上传、数据下载等用户界面管理,完成对文件的管理操作.文件上传是要将指定数据文件或程序文件的内容上传到目标机指定区域,而数据下载则是从目标机指定区域下载的指定长度二进制数据保存到主机的文件中.此外界面管理层还向用户提供了转移执行、FLASH擦除等功能.线程处理层完成基于文件和控制界面的监控功能处理.它将上传文件、下载数据区分成若干个包,通过调用功能处理层的上、下传支持函数来完成文件数据的上传和数据下载功能.线程处理层同时完成对界面上的进度条的实时处理与更新,完成与用户之间的信息交换,完成文件数据的读取与存储功能.功能处理层是真正的上传、下载、转移等功能的处理模块,按照协议规定通过通信管理层与V8_A-gent之间进行协议命令及上下传数据的交互,完成规定大小数据的上传与下载.通信管理层提供各种通信功能到不同总线接口的映射.在总线驱动程序的基础上,完成通信字符到协议包的简单转换工作.总线驱动层可以根据实际的通信端口添加相应的驱动程序,可以很方便的扩展其他通信总线,从而完成对通信端口的底层管理.

4结束语

本文提出的与总线协议无关的数据通信方法,为以SPARCV8为处理器的嵌入式目标机与监控主机之间提供了一种通用的通信策略.监控主机的控制台软件和目标机的程序通过中间层的通信协议完成彼此之间的通信,能够较好地屏蔽不同通信接口之间的差异性,并且很方便的实现对底层通信接口和上层应用功能的扩展.

作者:李静 周继芹 朱晓燕 单位:首都师范大学 首都师范大学

上一篇:合作探究法下医学信息论文 下一篇:Java数据通信论文