当前位置:文档之家› 基于DALI协议的多传感器控制设备设计

基于DALI协议的多传感器控制设备设计

基于DALI协议的多传感器控制设备设计

摘 要: 针对目前DALI系统中传感器安装分散、系统控制不灵活、参数配置不方便的问题,提出了一种以SN32F248微控制器为核心、以μC/OS-II操作系统为平台、带有多种传感器的控制设备设计方案。利用WiFi芯片ESP8266,实现了对控制设备的无线配置与查询。红外遥控器配合多传感器的使用,实现了系统的模式切换、场景切换与灯光控制等功能。通过μC/OS-II在SN32F248上的移植以及信号量机制的建立, 解决了任务间的通信、任务的调度问题, 实现了实时操作系统的功能。
关键词: DALI;红外遥控;WiFi;μC/OS-II
0 引言
随着人们生活水平的不断提高,传统的模拟照明控制系统已不能满足用户的需求,灵活的照明控制成为人们追求的目标,而功能丰实、结构简单、使用方便的DALI照明系统既能够营造温馨和谐的家居氛围[1],又能达到绿色节能的目的,正被各大照明设备厂商所使用,成为全球统一规范。但传统的DALI控制设备产品带有的传感器种类单一,特别是国内的DALI产品,通常只采用触摸面板或触摸屏控制方式,对灯具的控制缺乏灵活性。在对系统的参数进行配置时,往往采用有线连接方式实现上位机与控制设备的通信,不利于系统安装后的参数配置工作。
针对以上问题,本文提出了一种多传感器集中连接在同一控制设备的设计方案。使系统可采用红外遥控控制方式,对灯具进行亮度调节、场景唤醒、模式切换等,多功能遥控器的使用使得灯具控制更加灵活;亮度实时监控,确保了灯具在恒亮度模式下的恒亮度输出;人体移动探测的配合使用可实现灯具在节能模式下的自动控制;WiFi模块使控制设备参数配置与环境信息查询更方便。
1 DALI协议简介
数字可寻址照明接口(Digital Addressable Lighting Interface,DALI)总线协议是一种专门用于照明控制的协议标准。其具有调光、场景选择和灯具地址分配等功能。DALI系统中包含控制设备和控制装置等设备。控制设备是指连接到接口上的设备,并用于发送指令控制其他连接到相同接口上的设备。控制装置用于给灯具提供电源,接收控制指令并直接控制灯具的装置。DALI系统工作在主从模式:一个接口上最多控制64台独立可寻址的控制装置/控制设备[2]。该通信采用异步半双工串行通信方式,双线差分驱动,两线压差值在9.5 V~22.5 V之间为高电平,-4.5 V~+4.5 V之间为低电平,总线上的电流不能超过250 mA,每个从设备消耗的电流不超过2 mA。DALI信号采用曼彻斯特编码方式,波特率为1 200 b/s[3]。
2 DALI系统结构
带有多传感器的DALI系统由控制设备和控制装置组成,

系统结构。控制设备通过红外接收器接收遥控器下达的对灯具的控制命令(包括场景唤醒命令、亮度控制命令、模式切换命令等)并转发给控制装置。系统工作模式分为自动模式、恒亮度模式、节能模式和一般模式。各模式的描述如下:

(1)自动模式:系统根据存储的参数自动调节灯具亮度,参数由上位机配置,参数格式为某时间段某灯具的亮度等级。
(2)恒亮度模式:为达到环境恒亮度目的,根据亮度传感器采集到当前环境亮度,调节灯具亮度使环境亮度达到预设值,恒亮度模式下移动传感器不起作用。
(3)节能模式:环境亮度小于阈值且探测到人员移动时,点亮灯具至设定的亮度,数分钟(由上位机配置)后自动关闭灯具,以达到节能的目的。节能模式中移动传感器和亮度传感器协同工作。
(4)一般模式:灯具亮度通过红外遥控器来控制,可以实现亮度调节和唤醒场景等功能,只有在一般模式下遥控器的亮度调节和唤醒场景功能才起作用。一般模式下移动传感器和亮度传感器不起作用。
控制设备通过WiFi模块接收上位机下达的参数配置命令,并存储在控制设备的存储区,上位机可以配置的参数包括:每天8个时间段的场景值、恒亮度模式下的预设亮度、节能模式中的亮度阈值、控制装置地址、灯具最大/最小亮度、控制装置组地址等。同时控制设备可上传当前LED灯具的运行状态和传感器测量值,供查询使用。控制装置通过DALI接口接收控制设备发送的控制命令,并对控制命令进行解析,实现对LED灯具的控制。本文重点设计控制设备的设计。
3 控制设备硬件设计
控制设备以ARM Cortex-M0为内核的32位嵌入式微控制器SN32F248为核心,其包含64 KB Flash ROM程序内存、8 KB RAM程序内存、3个16位和3个32位通用定时器,共带有6路捕获输入和21路PWM输出。通信接口包括两组I2C、一组USART、一组UART等,其低功耗、高性能的优点符合本设计要求。
控制设备硬件电路包括WiFi通信电路、DALI接口电路、光照度测量电路、移动探测电路、红外接收电路、电源电路等,其硬件电路总体框图。

3.1 WiFi通信电路
考虑到控制设备需要安装在天花板上,使用有线连接不利于安装后的系统进行参数配置和查询,在此通过无线WiFi实现上位机与控制设备之间的通信。用户可根据要求对控制设备参数进行灵活配置[4]。WiFi通信电路以ESP8266为核心,该芯片是专门针对WiFi协议的SOC系统解决方案。无线通信电路主要由处理器、Flash芯片组成。ESP8266使用3.3 V电源供电,通过UART接口与微控制器SN32F248进行数据交换。
3.2 DALI接口电路
DALI接口电路主要用于将单片机

的TTL电平与DALI协议规定的电平相互转换。DALI 接口电路包括发射电路和接收电路,其中发射电路主要由光耦U1、三极管T1和整流器B1组成。U1用于单片机TTL电平和DALI电平的隔离;T1控制总线的导通与关断;B1的使用可以使两根总线的接法互换,避免接线错误。接收电路主要由光耦U2、恒流源U3和稳压管D4组成,其中恒流源U3用于驱动光耦。电路。

在发送电路中,单片机输出高电平,U1截止,T1处于截止状态,总线为高电平;相反,单片机输出低电平,U1导通,T1处于饱和导通状态,DALI总线经T1和整流桥形成回路,DALI总线电压被拉至低电平。
接收电路中,当DALI总线为高电平时,电流经过整流桥,D4处于反向击穿状态,U3的REXT端和VS端电压被稳定在3 V左右,U3工作,光耦U2导通,RX端为高电平。相反,当总线为低电平时,RX端为低电平。DALI数据的接收需要用到外部中断,SN32F248的每个引脚都可以配置成外部中断使用,在此,RX端接到微控制器的P0.5引脚。
3.3 光照度测量电路
光照度测量电路以ROHM公司推出的BH1750FVI为核心。BH1750FVI是一种用于两线式串行总线接口的数字型光强度传感器集成电路,能将光照度转化成16位标准I2C数字量输出信号,测量范围1~65535lx。通过微控制器P0.6和P0.7两个I2C总线引脚读取相应寄存器的值就可以得到环境亮度。
恒亮度模式下,微控制器通过光照度测量电路获得当前小区域内环境亮度,控制设备通过发送调亮/调暗指令调节灯具亮度,直到达到设定亮度为止,达到恒亮度控制的目的。
3.4 移动探测电路
为了在自动模式下通过对是否有人员移动的探测实现对灯具的自动化控制,系统采用被动式热释电红外线传感器探测人体移动。移动探测电路以BISS0001为核心,其是由运算放大器、状态控制器、电压比较器、定时器等构成的数模混合专用集成电路。当人体进入传感器报警区域,人体发射的红外线穿过菲涅尔滤镜照射在传感器表面,传感器内的热释电元件失去电荷平衡,向外释放电荷,电荷经过OP1进行第一级放大,再由C3耦合给运算放大器OP2进行第二级放大,输出到BIS0001的2OUT引脚,如BIS0001检出有效触发信号,则启动延迟时间定时器,并从RC1端输出报警信号。通过读取引脚电平,即可判断是否有人员流动,达到移动探测的目的。同时可以通过调节R12与C10的参数来调节输出延迟时间。电路。

3.5 红外遥控接收电路
红外接收电路采用一体化红外接收头,内部电路包括红外监测二极管、放大器、限幅器、带通滤波器、积分电路、比较器等[5]。红外遥控信号通过红外滤光片后作用于红外光电二极管,将红外光信号

转变为电信号。该电信号经放大器放大后再经过选频电路选频。然后经过检波电路取出调制信号,再经过施密特电路整形后,还原成代码波形,最后送给微处理器进行信息识别和处理。利用SN32F248 16 bit定时器的捕获中断功能实现数据解码,可使软件设计更加简洁[6]。
4 控制设备的软件设计
控制设备的软件以μC/OS-II操作系统为平台。在SN32F248上移植后,通过对系统的初始化、任务的创建与调度来实现功能要求。
4.1 μC/OS-II在SN32F248上的移植
μC/OS-II是一个抢占式实时多任务内核。μC/OS-II在SN32F248上的移植根据处理器的内部资源,将与处理器相关的μC/OS-II的3个文件(os_cpu_c.c、os_cpu_a.asm、os_cpu.h)进行必要的修改。主要是将文件中的汇编指令,改为Thumb的汇编指令,并根据SN32F248特点对文件中寄存器的初值进行改写[7]。
4.2 软件任务管理的设计
μC/OS-Ⅱ主要完成任务的创建、任务间的通信和任务调度与切换[8]。根据功能要求,将系统划分为6个任务,根据任务的实时性和重要性,整个系统中的任务按优先级由高到低分为:系统初始化任务、接收上位机指令任务、接收红外遥控器指令任务、DALI总线通信任务、数据采集任务、数据处理与存储任务。另外,μC/OS-II本身还带有统计、任务创建、空闲3个任务[9]。
4.2.1 任务创建
μC/OS-Ⅱ任务的创建通过函数OSTaskCreate()完成。首先,进行任务的优先级和堆栈分配,7个任务:start_task、OS_Stat_Init_task、Re_Computer_Cmd_task、Re_IR_Cmd_task、DALI_task、Data_col_task和Data_deal_task的优先级从5开始依次增大,每个任务分配128 B大小的堆栈。在主函数中只创建start_task一个任务,随后在start_task中再创建另外6个任务,在6个任务被创建后start_task任务被挂起。至此,完成所有任务的创建。
4.2.2 任务间的通信与同步
为了协调任务的运行,采用信号量方式实现任务间的通信与同步[10]。首先,利用函数OSSemCreate()创建信号量,信号量创建后任务可通过调用函数OSSemPend()请求信号量。任务获得信号量,并在访问共享资源结束以后,通过OSSemPost()函数释放信号量[11]。各任务信号量的设置如表1所示。

4.2.3 任务调度与切换
任务调度就是将CPU分配给符合条件的任务使用。μC/OS-II采用基于优先级和中断级任务调度的方法实现任务的调度。在完成中断服务函数后,根据各任务的优先级先由任务调度函数OSSched()实现任务的调度,调用OS_SchedNew()函数进行任务的切换,切换到需要运行的任务并执行。
5 结束语
DALI协议已成为灯光控制系统中的一种重要协议,采用DALI构成的调光控制系统具有安装简单、价格低廉、系统重构灵活、可以级联等特点

,被世界主要的镇流器厂商采用。本文在研究DALI协议的基础上设计了带有多种传感器的DALI系统,大量试验结果表明,该系统可靠性强,效率高,操作方便灵活,实时性好,具有良好的前景和较大的现实意义。

相关主题
文本预览
相关文档 最新文档