基于Nut/OS的城市路灯远程控制系统的设计

时间:2022-05-10 05:15:17

基于Nut/OS的城市路灯远程控制系统的设计

【摘要】借助嵌入式web技术,通过B/S架构实现计算机远程控制路灯等设备已经变成现实。然而这样的实现往往需要将路灯的每一个控制节点作为一个web服务器,至少运行有简单的web服务功能。通常这样的系统不仅架构复杂,而且造价成本高。本文在此基础上提出一种基于Nut/OS的城市路灯远程控制系统,该系统将路灯控制节点和嵌入式web服务器进行分离。路灯控制节点只运行TCP/IP基本通信功能而没有web服务功能,嵌入式web服务器通过UDP通信来管理和控制各个路灯控制节点,远端计算机通过嵌入式web服务器管理路灯系统。该方案不仅实现远程管理和控制路灯,同时降低了系统的复杂度和硬件成本。

【关键词】嵌入式web;Nut/OS;B/S架构;路灯管理

1.引言

目前城市路灯远程控制系统流行C/S架构和B/S架构模式。C/S架构可靠,造价高,系统不方便维护。而B/S架构不需要监控计算机安装有特定的服务器软件和客户端软件,不需要专机专用,而且配置监控计算机位置不需要固定,只需要能与监控的路灯远端的web服务器网络相通,即可实现远程监控。因此B/S架构越来越流行。

然而,当前的B/S架构,往往都是监控区域里,一个路灯控制节点作为一个嵌入式web服务器处理,控制节点硬件不仅需要运行基本的网络通信协议TCP/IP,还要在此基础上运行web服务,以便远程监控PC机访问嵌入式网页进行相应的监控。这样的设计架构方便每一个节点的编程和控制,但是推高了系统的硬件成本,同时整个系统的软件架构复杂。

本文在现有架构基础上,将路灯控制节点的控制功能和嵌入式web服务功能进行分离,控制节点主要运行基本的TCP/IP通信协议和路灯控制和信号采样,从而实现简化控制节点的电路。嵌入式web服务器主要运行web服务功能,对远端的PC机提供相应的web服务。嵌入式web服务器的路灯管理和控制室数据,是通过UDP协议与控制节点进行数据交换,通过UDP对控制节点进行控制操作。该方案降低了硬件资源需求,从设计可靠上,采用内核小巧的Nut/OS作为操作系统。

2.Nut/OS介绍

Nut/OS是一款开源的优秀的嵌入式系统,适合在硬件资源不是很充裕的控制系统里应用。Nut/OS实时操作系统包括Nut/OS实时内核和Nut/Net协议栈,除了非常少量与硬件相关的源代码使用汇编语言编写外,剩下的都是使用C语言编写的,具有很高的可移植性。Nut/OS实时内核是一个相对独立的组件,可以单独分拆出来当作一个小型实时操作系统使用,也可以很容易地移植到其他MCU上。

Nut/OS提供了I/O管理功能,不仅包含了大多数应用所需的I/O接口API函数,如文件管理系统、串行通信驱动、网络驱动、声卡和显示驱动等。更重要的是它和免费的TCP/IP协议栈,NUT/NET无缝集成,NUT/NET除了支持ARP、IP、ICMP、UDP和TCP等协议外,还支持DHCP、PPP、DNS和HTTP用户协议,是8位MCU中支持协议最多的免费TCP/IP协议栈。

3.远程控制系统的系统架构设计

当前,很多的B/S路灯控制系统架构如图1(a)中所示,即控制节点是通过嵌入式web实现对路灯的监控,然后通过交换机连接到监控中心。该架构增加了控制节点的硬件成本。本文的架构体系在此基础上,进行改进,如图1(b)所示。

改进的架构体系中如图1(b)所示,将嵌入式web服务器从原来的各个控制节点抽出来单独作为一个模块,与远程监控中心的计算机机进行交互。

在硬件设计上,嵌入式web服务器资源相对充裕些,它一方面与远程监控中心进行web服务交互,一方面它与路灯控制节点进行UDP通信,对路灯控制节点进行相关的操作和控制。由于控制节点只要运行基本的TCP/IP通信协议,不需要运行web服务功能,大大降低的控制节点对硬件的要求,可以用低成本的芯片组来实现。

同时,由于路灯的采样和控制的内容不多,采用低速的网络的芯片组足以满足系统性能的要求,而且可靠,降低了系统的软件、硬件复杂度。

4.远程控制系统的硬件模块设计

4.1 嵌入式web服务器设计

嵌入式web服务器的硬件设计CPU采用LM3S8962,该芯片是德州仪器(TI)公司提供基于ARM CortexTM-M3的控制器,它们为对成本尤其敏感的嵌入式微控制器应用方案带来了高性能的32位运算能力。芯片内部集成了256kB的单周期flash,64kB单周期访问的SRAM,芯片的内存和flash足够运行Nut/OS系统。而芯片的价格和中端的8/16位芯片差不多。内部集成的资源也很丰富,包括10M/100M以太网控制器等。

由于该芯片已经集成了以太网控制器MAC层和物流层PHY,所以不需要外接其他以太网控制器比如CS9000、RTL8019等。只需要芯片引脚TXOP/TXON、RXIP/RXIN引脚外接网络变压器然后通过RJ45网口即可实现对外的网络连接。

4.2 控制节点电路设计

控制节点由于不需要运行web服务功能,所以只需要能运行基本UDP通信功能即可。因此采用mega16芯片作为控制几点的CPU,通过外接ENC28J60实现与web服务器的通信。ENC28J60与CPU通信接口SPI,而Mega16自身就集成了SPI接口,从而大大简化控制节点网络接口的设计。

5.远程控制系统的软件模块设计

嵌入式web服务器,其主要功能是对远端监控PC提供web服务功能,对控制节点,要进行相应的控制。所以嵌入式web服务器运行了相应的远程管理网页,远端通过访问页面实现对系统的管理。应用层运行两个服务任务,一个任务是web服务,对外提供网页输出和获取相应的web输入内容,并根据http协议获取相应的输入后,执行相应的操作。当远端请求操作控制节点时,web服务通过CGI执行与节点UDP通信程序,对控制节点发送相关的消息实现对控制节点相关的硬件控制,比如路灯的打开和关闭,路灯状态的检测等等。

控制节点主要执行web服务器发送来的命令,并根据相应的命令执行后,把结果返回给web服务器。由于控制节点只运行基本的UDP通信,而且通信数据量不大,所以对Nut/OS进行裁剪,只保留基本的任务管理和TCP/IP协议栈,在这基础上,增加一个UDP应用任务。该任务接收来自web服务器的命令,并将相关的命令翻译成相关的动作并执行。主要执行的web服务器发来的开灯、关灯、电流/电压采样。并将执行的结果通过UDP方式传给web服务器。

整个路灯远程控制系统软件模块架构如图2所示。

远端计算机(或PC机)通过http协议访问嵌入式web服务器,执行相应的web操作后,web服务器将操作转换为相应的命令,并通过调用CGI接口来启动UDP服务器程序,UDP服务器程序将相关的操作命令通过UDP的方式发送给控制节点。控制节点的UDP应用程序接收到相关的UDP报文后,将其翻译为具体的操作命令,操作命令通过调用相应的I/O控制函数,实现对路灯的开、关控制以及相关的环境数据的采集,并将执行的结果通过UDP方式发回web服务器。Web服务器收到相关的反馈结果后,对web页面的相关控制条目进行响应和修改,然后把修改的结果传回给远端的监控PC机。

6.结束语

本文介绍了基于Nut/OS的远程路灯控制系统B/S软件架构和硬件实现方法,该方案在原有的B/S控制系统架构上进行改进,将嵌入式web服务器和控制节点控制电路分离,简化了系统架构,尤其是简化了控制节点终端的软件体系,同时降低了设备的硬件成本。

当然,该方案降低了硬件性能和实现成本,但增加了一定的软件设计难度,主要的难点在Nut/OS的裁剪后运行于控制节点的处理上。总体上,该方案同时降低了整个系统的软件复杂度和硬件复杂度,仍然利大于弊。

参考文献

[1]朱小平,孙军,方彦军.基于NUT/OS的DTU模块设计与开发[J].通信技术,2008(11):89-91.

[2]章君达,陆觉民,向群.城市道路照明系统节能控制方法的实现[J].能源工程,2011(4):55-56.

[3]Luminary Micro.LM3S8962微控制器数据手册[M].2008:421-463.

作者简介:潘承毅(1981―),男,贵州剑河人,助教,主要研究方向:计算机应用和嵌入式系统。

上一篇:基于电力载波与微功率无线通信双网融合智能采... 下一篇:浅析电梯电气控制系统的故障与预防