APP下载

基于μC/OS-II 系统的HISLIP 代理的设计与实现*

2020-06-09李晓俊李宥谋闫海卿李延峰

计算机与数字工程 2020年3期
关键词:服务器端测控字节

李晓俊 李宥谋 闫海卿 李延峰

(西安邮电大学计算机学院 西安 710100)

1 引言

随着人工智能和大数据的发展,未来领域仪器和测控技术的完美结合将使仪器变得更加网络化、智能化和数字化[1]。仪器使用起来也会更加方便,对于刚入门的新手来说只要按照说明书,就可以简单方便地使用仪器设备,更快地融入工作中。

目前虚拟化的测量和仪器有很多优点,主要是用户可以自定义测量,结构简单,转换灵活[2]。虚拟化已经应用在全世界的各个领域中,包括每个国家最看重的军事领域都能随时看到虚拟化的仪器,包括军用的武装直升机、坦克、军舰和航空母舰等都配备了这种先进的设备。

基于μC/OS-II 系统和HISLIP 协议实时性及精简性能,提出了基于μC/OS-II 系统的HISLIP 远程测控的设计方案[3~6]。它融合了自动控制技术、现代电子技术、计算机技术等多种技术,结合了信息化和自动化的特点,把以前不能连网的设备通过代理接入网络中,使工作人员可以通过代理来对设备进行控制和管理。测控人员通过控制台界面的一些简单的操作就可以把监控现场的监控信息通过计算机网络传输到管理界面,从而达到远程测控的目的。本课题以μC/OS-II 系统下HISLIP 远程测控通信为研究对象,硬件方面采用LPC1768为微处理器的开发板,操作系统采用μC/OS-II 系统,这两者结合为我们提供了一个嵌入式环境;HISLIP 协议为测控协议,提高了数据的可靠性和安全性。本课题设计的软件系统开发维护容易、功能完备,很好地实现传统工业设备改造升级,具有一定的现实意义和应用价值。实现的远程测控代理模块,使用数字化的测控方式能够实现从远程到终端的具体控制,而且能够在处理中得到实时可靠准确的数据。

2 嵌入式实时操作系统分析

2.1 嵌入式实时操作系统概述

实时操作系统,即RTOS(Real-Time Operating System),是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。在军事领域对系统都有超高要求。尤其是实时性方面更是战场致胜的关键因素,所以实时性对它们而言是非常重要的。因此,RTOS 主要用于对响应时间具有较高实时性要求的嵌入式系统中。

2.2 嵌入式uC/OS-II实时操作系统

操作系统运行时,如果占用的CPU内存非常低且实时性较好,有可剥夺的内核可以及时处理紧急任务,那么它就是一个性能良好的内核。我们本次使用的μC/OS-II,满足以上几点要求。

μC/OS-II 操作系统与其他系统的主要区别是μC/OS-II 操作系统它没有进程和线程,μC/OS-II操作系统采用的是为每一个任务建立优先级。它的任务采用可剥夺的形式,高优先级的任务可以打断低优先级的任务,高优先级的任务有优先执行的权利。μC/OS-II操作系统的内核包含了任务调度、信号量、消息队列、邮箱等,可以实现任务之间同步通信与异步通信。同时还提供了中断服务、内存管理等功能。如果想要准确的预测、能够及时判断、有效控制在预定时间内完成所设定的目标,因此需要可预测的执行时间,所以当想运行速度快时,只要选择一个速度合适的CPU即可,这个需要的速度在μC/OS-II 系统中是可以精确算出来。因此,μC/OS-II操作系统称为实时操作系统。

2.3 嵌入式操作系统的选择

现在,我们看到的多数嵌入式系统都不是免费的,比如Vx work系统等;而且操作系统对硬件支持要求较高,比如要有快速运行的CPU、CPU 内部要有MMU单元和较大的存储空间等。操作系统本身费用和开发工具价格也比较昂贵,所以开源的实时操作系统在价格方面有了明显的优势,目前选择较多的操作系统有linux和μC/OS-II系统。

μC/OS-II系统具有较好的可扩展性、程序代码免费开源、资料丰富、技术成熟、简单易用、易于维护、优化和移植等特点,适合用于教学科研和一些实时系统的应用。μC/OS 面世的这几十年来,在雷达系统、POS 机、人工智能等领域的都有应用[7],这些实践证明μC/OS-II实时系统的实用性、无误性是非常好的,综合了多种因素,综合考虑选择了μC/OS-II实时操作系统。

3 HISLIP服务器设计

3.1 HISLIP协议简介

HISLIP 协议与传统仪器作比较的话,HISLIP协议可以为我们提供相同的测量功能,并且它可以实现远程控制[8]。HISLIP 在通信时创建两个TCP连接到相同的服务器端口[端口分配HISLIP IANA 4880]来建立同步通道和异步通道。这两条通道为HISLIP 消息的数据收发和异常处理的提供通道。

同步通道以同步的方式来执行SCPI 和类似GPIB 的类似元消息。同步通道主要用来实现正常状态下的命令的收发与信息传输,同时也可以将消息保存在同步缓冲区。

异步通道完成的主要功能是为有较高优先级的锁机制、中断、异步中断、设备清除、未知错误等消息提供传输通道,并在来自同步通道的消息之前对其执行操作。同步和异步通道都是头部消息为16 字节的固定格式,消息负载在头部之后,具体消息的大小有头部中的负载长度来说明。

所有HISLIP 客户端和服务器在默认情况下使用IANA 分配的端口号4880。这并不排除配置为在其他端口上使用HISLIP协议的HISLIP客户端和服务器。

HISLIP帧格式如图1所示。

图1 HISLIP协议的帧格式

1)由图1 我们可以看到 HISLIP 协议的一、二字节分别是“H”“S”的 ASCII 码值。“H”“S”为我们提供了消息验证机制,如果接收到的前两个字节消息不是“H”“S”,这该消息应被舍弃。

2)帧格式中的第三个字节是消息类型(Message Type),是我们收发消息的识别码,用来表示消息的类型。不同消息类型负载不同,可以根据消息的类型来解析出需要的信息。

3)第四个字节为随消息类型的变化而变化控制码(Control Code),该字段表明当前消息的响应参数。

4)消息参数(Message Parameter)用4 个字节来说明在不同类型的消息中起到的不同作用。

5)随后的八个字节是数据长度(Payload Length),它表明消息的负载长度,个别类型的消息负载为0。

6)最后是可变长度的数据段(Data),负载内容是根据具体消息类型的实际数据来决定。

3.2 HISLIP服务器的架构设计

首先,将HISLIP 协议的服务器端与设备进行连接。然后,HISLIP 服务器开启,监听HISLIP 客户端的请求。当服务器端收到客户端的请求后,客户端与服务器通过TCP协议三次握手建立连接后,阻塞等待客户端请求[9~12]。客户端与服务器建立连接后,将消息封装进行传输[13]。HISLIP 客户端通过网络发送数据给HISLIP 服务器。当服务器端接收到相应的数据包后,对数据包的头部消息进行分析处理,根据不同的消息类型得到不同的信息。通过简析消息负载,将得到的命令对设备进行对应的操作。最后,服务器将由子模块返回来的HISLIP 包发送给客户端,并且删除刚创建的新任务,这样就实现了对设备的远程测量控制。流程图如图2 所示。

图2 HISLIP总体架构设计图

3.2.1 HISLIP协议的数据结构

在程序设计中消息格式的数据结构:

3.2.2 HISLIP建立连接

1)服务器处于监听状态,监听客户端的请求并与之建立同步通道;

2)客户端发送初始化消息:<初始化><0><客户端协议版本+客户端厂商标识符><客户端的ip地址>;

3)服务器端发送响应消息:<初始化响应><工作模式><服务器协议版本+设备会话号><0>;

4)客户端再次请求建立连接,主要是为了建立异常消息的异步通道;

5)客户端发送异步通道初始化消息:<异步初始化><0><设备会话号><0>;

6)服务器端发送的响应消息:<异步初始化响应><0><服务器端厂商标示符><0>。

3.2.3 消息析构模块设计与实现

服务器将接收到的客户端消息按照协议结构体以字节来进行解包。

1)先对前16 字节中的前两个字节进行分析,查看消息头的prolong 是否是ASCII 码的“HS”,如果不是的话,消息出错;

2)判断HISLIP 消息的头部是否是16 字节,大于或小于16字节,都是错误消息;

3)将HISLIP协议赋值给局部变量;

4)使用switch……case语句对消息类型字段进行判断,匹配后调用对应模块处理,进行处理;

5)将得到的数据返回改客户端。

3.2.4 消息处理模块设计与实现

消息处理模块包含的模块有:异步通道初和同步通道始化信息响应模块、异步通道最大数据响应模块、锁信息响应模块、锁信息查询响应模块、设备清楚完成告知模块、远程本地控制模块、数据结束消息响应模块、锁请求响应模块等多个模块,根据不同的需求实现不同的功能。实现对设备的远程通信及控制,具体用一下几个模块来说明。

static int server_initialize(void)

实现服务器的初始化操作,创建socket,绑定端口和服务器端IP地址,监听客户端的请求信息。

static int handle_async_message_size()

服务器与客户端协商和约定消息式尺寸的函数。

static int recv_message_handle()

服务器用来处理接收到消息,主要完成数据包的解析。判断是否是HISLIP 消息,头部消息是否满足要求,消息类型的分析以及相应模块函数的选取。

static int communicate_device()

实现服务器与设备间的直接通信。

static int handle_async_lock()

为设备的进行锁操作,针对客户端进行权限设置,可以有效保证资源的安全性。

void send_data()和 void send_dataend()

send_data()用来传输可以一次性把数据传输完成的消息,而send_dataend()是传输需要分为多次传输的消息。

4 远程测控系统的总体设计

本节主要介绍了远程测控代理的硬件和软件设计方案,硬件平台主要包括了核心处理器、外围电路以及各种接口,例如采用了恩智浦公司LPC1768 芯片为处理器为核心,以DP83640 为以太网物理芯片,并且使用了USB接口、串口、IIC接口、CAN 总线等多种接口的开发板。在此硬件基础上进行软件系统的方案设计,以及叙述HISLIP 服务端架构设计。

4.1 测控系统总体设计方案

本课题设计的远程测控系统代理模块主要组成如下,远端仪器管理模块、仪器代理模块和各类仪器设备等[14~15]。模型如图3所示。

图3 测控总体设计方案

4.2 硬件设计

为了使不能上网的传统的仪器设备(不具有以太网的接口的设备)能够实现网络通信功能,本文选择了处理器响应速度快、外设接口丰富、超低功耗、尺寸小、性价比高的LPC1768 处理器为核心,DP83640为以太网物理芯片的开发板。

4.3 软件架构的总体设计

如果硬件平台是设计骨架的话,那么软件平台的就是设计的血肉。所以,我们需要符合设计的软件平台。本次软件管理平台采用了SNMP(Simple Network Management Protocol)协议对远程测控代理模块进行配置[17],由 trap 来发送告警信息;采用自动发现协议得到代理模块是否在线信息;利用HISLIP协议来采集模块数据、控制相应的硬件模块。

图4 代理的软件设计

5 远程测控通信系统测试

5.1 代理平台的搭建

本文研究的是远程测控代理的设计与实现,为了对本课题所开发的软件进行测试,搭建如下的测试环境。需要的设备有远程控制PC 机,路由器,LPC1768 开发板,仪器包括US-100 传感器、GY-80传感器、示波器等,整个测控系统的硬件连接图如图5 所示。首先将传感器、示波器以及信号发生器与代理相连,之后将代理与局域网路由器相连,同时PC机也与路由器相连组成一套设备测量系统。

5.2 HISLIP服务器端的测试

硬件平台完成后,我们开始搭建软件平台。首先,开启HISLIP 服务器,服务器端监听客户端的请求。如果没有客户端连接请求,则一直在循环监听,直到有客户端连接。当服务器与客户端建立连接之后,创建第二个任务处理来处理接收到的数据包。根据协议的要求将数据包进行解包操作,完成相应的命令处理,将处理结果返回给客户端,同时删除此任务。服务器继续监听其他客户端的连接请求。

客户端运行HISLIP 客户端程序,在有需求时向服务器端发送请求,客户端与命令行中的IP 地址所指的服务器端建立连接。HISLIP 协议的通信模式有两种,分别是重叠模式和同步模式。本文就针对这两个模式来进行测试。示波器的SCPI 命令*IDN?命令是取波命令,为与示波器的命令(SCPI命令)进行统一,自定义一个SCPI 命令为命令行中的*IDN1?。所以本文设置*IDN1?为取传感器US-100测室内温度的命令。

同步模式就是指客户端需要接收到每一个发送上来的请求结果之后才能发送下一个请求,不能连续发送,就是发送一个命令处理一个结果及时的返回。从图5中可以看出室内的温度为19°。

同步模式时,传感器的测量结果如图5所示。

图5 同步模式

重叠模式可以一次连续发送多个SCPI 命令,等待服务器端全部处理完之后再把所有的结果全部返回,这刚好与同步模式相反,图6 是测量后全部返回的结果。

重叠模式测量结果如下。

图6(a)中,客户端在重叠模式下,同时发送3个请求命令,6(b)中显示服务器端在同时接收多个命令后返回处理结果,分别是23°,23°与22°。

图6 重叠模式

6 结语

本文主要研究的是基于μC/OS-II 系统的HISLIP代理的设计与实现。因此首先对代理环境的搭建进行了说明;其次在整个系统环境搭建完成后,对远程测控代理中实现的各个模块功能进行测试,测试完成后通过截取客户端和服务器端的信息交互图进行具体的分析。整个测试结果表明代理能够为客户端提供仪器数据的采集以及对仪器设备的实时监控管理。

猜你喜欢

服务器端测控字节
No.8 字节跳动将推出独立出口电商APP
昆山祺迈测控设备有限公司
Linux环境下基于Socket的数据传输软件设计
No.10 “字节跳动手机”要来了?
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于现代测控技术及其应用分析
虚拟仪器技术在农业装备测控中的应用
向着新航程进发——远望7号测控船首航记录
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用