理论教育 LED智能照明控制系统软件结构优化

LED智能照明控制系统软件结构优化

时间:2023-06-16 理论教育 版权反馈
【摘要】:从图4.12的LED 智能照明控制系统的硬件结构组成来看,可以把系统分为控制中心、集中控制器和单灯控制器三个部分。图4.23单灯控制器软件流程图3.集中控制器软件设计根据系统的功能要求,集中控制器需要实现无线网络的建立、数据的无线接收和发送、与上位机之间的通信等功能。如图4.24所示,根据集中控制器的功能,对集中控制器软件进行设计。

LED智能照明控制系统软件结构优化

从图4.12的LED 智能照明控制系统的硬件结构组成来看,可以把系统分为控制中心、集中控制器和单灯控制器三个部分。整个系统的工作由控制中心进行控制。控制中心处PC 端(或手机端)通过GPRS发送指令给集中控制器,集中控制器收到指令后进行相应的操作,如采集数据和控制路灯,这些操作指令则由ZigBee模块发送给单灯控制器,由单灯控制器具体执行,同时将数据信息上传到集中控制器,由集中控制器再传给控制中心。

在上述过程中,集中控制器在ZigBee通信中作为协调器工作,而单灯控制器在ZigBee通信中作为路由器工作。

LED 智能照明控制系统的软件可以分为三部分:控制中心软件模块、集中控制器软件模块和单灯控制器软件模块。软件功能示意图如图4.19所示。

图4.19 软件功能示意图

1.Z-stack 协议栈

Z-stack协议栈是由TI公司在2007年4月推出的ZigBee无线通信协议,硬件结构中集中控制器和单灯控制器使用ZigBee芯片CC2530,其软件中的通信使用Zstack协议栈。Z-stack协议栈是一种半开源式的ZigBee协议栈,就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些API,供用户调用。协议栈体系分层结构与协议栈代码文件夹对应关系如表4.6所示。

表4.6 协议栈体系分层结构与协议栈代码文件夹对应关系

Z-stack协议栈的架构如图4.20所示。

App:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。

HAL:硬件层目录,包含有与硬件相关的配置和驱动及操作函数。

MAC:MAC 层目录,包含了MAC 层的参数配置文件及其LIB 库的函数接口文件。

MT:监控调试层,主要用于调试目的,即实现通过串口调试各层,与各层进行直接交互。

NWK:网络层目录,含网络层配置参数文件、网络层库的函数接口文件及APS层库的函数接口文件。

OSAL:协议栈的操作系统。

Profile:AF层目录,包含AF层处理函数文件。

Security:安全层目录,包含安全层处理函数接口文件,比如加密函数等。

Services:地址处理函数目录,包含地址模式的定义及地址处理函数。

Tools:工程配置目录,包括空间划分和与Zstack相关的配置信息。

ZDO:ZDO 目录。

ZMac:MAC层目录,包括MAC 层参数配置及MAC层的LIB库函数回调处理函数。

ZMain:主函数目录,包括入口函数main()及硬件配置文件。

Output:输出文件目录,用于存放编译好的二进制文件。

图4.20 Z-stack协议栈架构

Z-stack协议栈的运行采用轮转查询的调度方式。轮转查询将优先级放在最重要的位置,优先级高的任务中的所有事件都具有很高的级别,只有将此任务中所有事件处理完,才会去执行下一任务的查询。如果当前处理的任务中有两个以上的事件需要处理,处理完一件后,需转回查询任务优先级更高的事件,在没有更高级事件处理的情况下,处理优先级第二高的事件。

Z-stack协议栈的main函数在Zmain.c中,Z-stack协议栈的运行都是从main函数开始的,如图4.21所示,对系统进行初始化和开始执行操作系统实体。

系统的初始化是为操作系统的运行做好准备工作,主要分为初始化所有系统时钟、检测电压是否正常、配置系统定时器、初始化Flash、初始化堆栈等,系统初始化流程图如图4.22 所示。初始化流程中每一步骤都有对应的函数,依次为osal_int_disable(INTS_ALL)、HAL_BOARD_INIT()、zmain_vdd_check(、Initboard(OB_COLD)、HalDriverInit()、osal_nv_init()、zmain_ext_addr()、ZMacInit()、afInit()、osal_init_system()、osal_int_disable(INTS_ALL)、zmain_dev_info()和osal_start_system()。当系统上电,会自动通过调用这些初始化函数进行初始化系统,在完成初始化后调用osal_start_system()启动操作系统。

图4.21 协议栈主要流程图

图4.22 系统初始化流程图

2.单灯控制器软件设计

在整个系统中,单灯控制器具备四个需要实现的功能:采集数据信息(LED 电源电流,环境温度等);加入网络;收发数据(数据信息的上传和控制指令的接收);控制LED 灯(亮度和开关)。单灯控制器在ZigBee网络中可以是终端节点,也可以是路由节点。在利用软件进行系统配置时可以将其配置为路由器,起到中继的作用,可以转发集中控制器的控制命令,拓展了网络规模。(www.daowen.com)

单灯控制器软件工作流程如下:

(1)系统上电后进行初始化,将本控制器配置成为ZigBee路由器。

(2)运行操作系统,创建任务并分配相应的优先级。

(3)搜索无线网络,同时申请作为路由器加入网络,等待信号的同时,任务挂起,运行空任务。当收到信号时,则加入网络成功;反之,则继续申请加入网络。

(4)运行设备绑定的任务,等待指令,同时运行空任务。

(5)当控制器接收到协调器传递过来的控制指令,判断是否是对本控制器的控制指令,若为是,进一步对控制指令进行判断,若再为是,执行灯光调节指令,则输出不同占空比的PWM 波形,通过LED 驱动电路产生不同强度的电流信号对LED 路灯进行驱动,改变其亮度控制器,若为否,则采集路灯数据信息,将数据信息上传;若为否,则转发控制指令给下一级的单灯控制器。

单灯控制器软件流程图如图4.23所示。

图4.23 单灯控制器软件流程图

3.集中控制器软件设计

根据系统的功能要求,集中控制器需要实现无线网络的建立、数据的无线接收和发送、与上位机之间的通信等功能。

如图4.24所示,根据集中控制器的功能,对集中控制器软件进行设计。

集中控制器软件工作流程如下:

(1)系统上电后进行设备初始化。

(2)系统通过串口发送AT 指令对GPRS模块进行配置,建立与控制中心的网络连接。

(3)系统配置成为ZigBee协调器,以协调器的身份来运行操作系统。

(4)创建任务并分配优先级。

(5)系统将建立网络的任务分配为较高优先级,执行之后任务就被挂起。

(6)无线网络建立完成之后,会对无线网络覆盖区域内的设备进行扫描。

当有路由器设备(单灯控制器)申请加入网络时,分配16位网络地址给该路由器,该网络地址在网络中是唯一的,也作为数据传输时的源地址和目的地址。

(7)对路由器进行绑定。当发出绑定命令后,任务被挂起,等待路由器绑定成功。

(8)在将路由器绑定之后,协调器根据收到的PC端的指令,转发给相应的路由器。同时,协调器将路由器发送过来的数据信息通过串口以AT 指令的方式传输到PC 端(手机端)。

图4.24 集中控制器软件流程图

4.控制中心软件设计

控制中心软件是LED 照明网络控制系统的重要组成部分。

作为远程控制中心设备的手机(也可以连接计算机),使用监控管理软件通过GPRS网络对集中控制器运行状况进行控制,对每个单灯的运行状态实时监控,并可以发送命令来控制路灯的开关和调光,还能对系统中的一些运行状况生成报表,便于研究和分析。

根据系统的功能需求分析,控制中心软件主要实现用户信息管理、系统控制管理、系统监测管理、数据库管理等功能。控制中心通过集中控制器获取整个网络的数据信息,以图形化方式直观地显示整个系统的状态;控制中心还能够实现对于整个系统的远程监控和管理。控制中心软件的基本工作流程如图4.25所示。

控制中心具体有如下功能。

(1)用户信息管理。该功能主要用于监控系统的身份认证。鉴于系统的安全性需求及系统用户的分类,系统中不同用户类型的权限是不同的。用户主要分为系统管理员和普通用户,系统管理员权限最高,可以对系统进行任何操作;普通用户只能对系统进行简单的控制。每一种身份登录需要账号名和密码验证。

(2)系统控制管理。系统控制是对LED 灯的远程控制。根据需求,系统可以对路灯进行集体控制,还可以对单个路灯进行控制。

(3)系统监测管理。显示LED 灯当前运行状态,包括电源电压、电流、工作温度等。

(4)数据库管理。所有LED 灯数据信息存储在数据库中,可以查询历史信息。

图4.25 控制中心软件的基本工作流程图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈