前言:
此刻你们对“stm32曼彻斯特编码算法”大约比较关注,看官们都需要知道一些“stm32曼彻斯特编码算法”的相关知识。那么小编在网摘上网罗了一些关于“stm32曼彻斯特编码算法””的相关内容,希望同学们能喜欢,朋友们一起来学习一下吧!数字化照明技术具有易于控制、维护等特点,符合人们对节能减排、智能管理的需求,在工业照明、商业照明领域受到了广泛重视。构建标准统一、稳定可靠、互联互通的照明系统是智能照明的发展趋势。DALI作为一种标准的通信接口和协议,以符合人体视觉效果的对数调光曲线和渐变调整效果以及丰富的调光指令集,在照明工程中得到广泛应用[1]。
而传统DALI照明系统(DALI 1.0系统)中只有和照明装置,系统工作在单一的主从模式(single-master),由主控器单向控制照明装置的调光效果[2]。为提升照明系统自动化及减少人为操作环节,市面上主要通过如下两种方式对主控器增加输入设备:
(1)第一类是在主控器上直接集成了如红外传感器等传感器[3],这类系统的扩展性低,灵活度差;
(2)第二类是通过协议网关接入至其他总线,如ZIGBEE-DALI网关[4],这种方式将输入设备放置于其他总线中,不仅操作复杂且不同系统之间存在着无法避免的兼容性问题,以致DALI系统的可靠性下降。
为确保DALI系统良好的兼容性,DALI 2.0技术定义了输入设备标准,新增了输入设备与主控器的标准通信模式。输入设备可以主动发送数据,DALI 2.0系统工作在多主机通信模式(multi-master)[5]。
而DALI总线上的带宽有限,随着DALI系统的设备类型和通信数据的增加,对主控器也提出了更高的要求。如何提升系统可靠性,充分发挥输入设备的作用,使主控器处理有用数据,最终达到高效自主管理的效果是实际工程项目中需要克服的难题。
1 DALI 2.0标准简介
DALI 2.0系统中,一条总线上最多支持64盏照明装置、64个输入设备。系统中的所有照明装置和输入设备均具备一个6 bit的短地址码,范围为0~63。
DALI 2.0规范制定了不同类型的输入设备标准,如照度传感器、移动传感器、按键面板等[6]。
总线和总线电源提供了DALI数字信号的传输介质。在DALI总线上,设备间传送的是曼彻斯特码的二相电平信号,每个信号位由一个高电平和一个低电平组成,信号从高电平变化为低电平表示逻辑信号“0”,反之为“1”。DALI信号传输速率是1 200波特率,即逻辑信号由417 μs的高电平和低电平组成。
在总线上,存在着3种类型的数据,分别是24 bit和16 bit的前向帧,以及8 bit的后向帧。表1是DALI系统设备与对应的通信数据。
2 主控器设计
2.1 主控器框架
采用STM32F429作为主控MCU,负责与PC终端的USB通信、DALI协议编解码及总线接口控制;设计AC-DC的主电源,实现AC市电与20 V直流电压的转换。并分别进行DC-DC的转换得到总线供电17 V电压及用于MCU外围线路的5 V供电电压,采用5 V转3.3 V的线性稳压线路为MCU提供工作电压。主控器线路框图如图1所示。
采用外部Flash芯片SST25VF020B做内存管理,存储照明设备参数及照明效果配置数据;采用芯片PCF2129做RTC时钟管理,使主控器能实现精准的时间操作,包括动作的延时、工作日记录及断电时不间断记录时间信息等。
为便于用户进行照明设备及照明效果的参数设置,主控器搭配了PC操作软件。PC终端与主控器的连接方式为USB线缆。主控器有如下两种工作状态:
(1)线缆连接时主控器为在线操作状态。在线操作下,在软件上为照明装置和输入设备自动分配DALI短地址码及配置参数,并可设定用户所需的照明效果。
(2)线缆移除时主控器进入离线操作状态。离线状态下,主控器自主分析、处理输入设备的事件报告,并自动控制照明装置的动作。
2.2 主电源与接口线路设计
设计主控器内置主体电源最大功率15 W,线路采用隔离反激拓扑,采用UCC28740的PWM控制芯片为主控IC,电源工作在DCM模式下[7]。电源线路框图如图2所示。
采用LM317的稳压控制芯片,制作20 V转17 V总线电压的DC-DC变换线路,为总线接口提供输出电压。在总线接口线路上,设计MCU的DALI信号发送与接收线路,总线接口线路如图3所示。
(1)接收状态:结合表1的要求,为了避免在总线电平低于10 V但高于4.5 V的情况下MCU错误地认为总线为高电平状态,ZD1可选用8.2 V稳压管。当总线为高电平状态时,Q1管栅极得到驱动电压,此时D3截止,MCU的DALI_RX引脚获得3.3 V的电压;同理,当总线低于4.5 V,Q1管截止,D3导通,MCU的DALI_RX引脚电平接近D3的正向导通压降。通过识别电压信号变化,MCU接收来自其他设备的数据。
(2)发送状态:当MCU的DALI_TX引脚向三极管输出高电平驱动信号时,Q2导通,从而拉低Q3管的栅极电压使Q3截止,DALI接口电压为输出总线高电平;同理,当DALI_TX引脚对外输出低电平时,Q2截止,Q3导通,总线电平被拉低至0 V。通过高低电平驱动信号的切换,MCU向总线发送数据帧。
2.3 主控器程序设计
2.3.1 数据冲突的避免
DALI 1.0系统中,只有主控器为主机,主控器除了在等待接收后向帧以外的任一时间的数据发送不受限制。而DALI 2.0系统是多主模式,输入设备可以自由发送数据,即在总线上可能会有多个数据帧同时发送的情况发生,因此设计主控器采用载波侦听的机制(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)监控DALI总线上的数据变化以避免数据传送冲突。当总线空闲时,主控器发送数据;当总线存在数据帧时,主控器等待总线空闲再发送数据;当主控器已开始发送数据但侦测到总线上存在数据冲突时,立即停止发送数据并等待重新发送。
2.3.2 系统设备初始化
在DALI系统的初始化过程中,主控器需要对总线上的输入设备和照明装置进行短地址分配[8],分配短地址流程图如图4所示。
主控器配置输入设备和照明装置的短地址的核心算法是二分法。主控器不断产生搜寻地址并与系统中的设备随机地址相比较,直至搜寻地址与随机地址相等即找到该特定设备并可配置短地址码。若已配置地址码个数为64或已无设备响应最大搜寻地址0xFFFFFF,则主控器完成地址分配。
2.3.3 DALI指令与时序
主控器与输入设备之间及主控器与照明装置之间具有不同的DALI指令集,需要单独设计。DALI系统正常运行的关键在于主控器正确识别总线上数据帧的来源及数据帧的内容,并满足特定的通信时序。
在程序设计上将DALI的底层数据发送和上层的指令应用分开。在主控器中,设计STM32F429产生1个tick为32 μs的基本定时器中断。在发送过程中,高电平或低电平连续保持13个tick,从而产生上升沿或下降沿的逻辑信号。在接收过程中,通过边沿触发的外部IO中断方式配合定时器中断实现数据的精准接收。
主控器通过外部Flash存储DALI系统中输入设备与照明装置的绑定关系。在系统运行过程中,采用查找表的方式,当总线上存在匹配的事件报告时控制照明灯具对象执行指定操作。
2.4 PC上位机实现
设计PC上位机操作软件,以便用户进行参数设定。采用Visual Studio 2017作为上位机开发环境,系统框架选用.NET,开发语言为C#。通过PC软件,用户可以进行DALI系统的地址分配、设备的基本属性修改、灯具分组和场景值设置等基本操作。
为了实现某种特定的照明效果,用户需要将输入设备与照明装置进行绑定并设置相关参数,从而使输入设备作为触发信号源,而照明装置作为与输入设备相关联的执行器。以照度传感器为例,用户设定环境亮度参数的界面如图5所示。
3 实验
3.1 实验方案
实验设备采用LED驱动器类型的照明装置。采用照度传感器类型的输入设备,支持最大10 bit的照度分辨率,即测量范围为0x0~0x3FF。在PC上设定所期望达到的环境亮度区间,设定完成后移除USB线缆。
当照度传感器感知外界环境亮度变化时间隔向主控器发送亮度值报告,主控器进一步判断亮度值与预设的环境亮度区间差异来控制LED灯具的实际亮度等级,从而使环境维持在设定的亮度区间。
实验方案拓扑如图6所示。
3.2 主控器通信控制验证
图7是主控器配置输入设备和照明装置的波形图。主控器配置输入设备时,传送24 bit前向帧,并接收8 bit后向帧;配置照明驱动装置时,发送16 bit前向帧,接收8 bit后向帧。
在PC上预设环境亮度值区间为照度传感器最大测量亮度的50%~60%,即照度值为0x1FF~0x266,设置照度传感器间隔30 s或在检测亮度变化量大于0x0A(即1%亮度)时发送事件报告。当外界环境亮度变亮至大于0x266的照度值时,主控器自主向照明装置发送步进调暗(Step Down)的16 bit指令;当事件报告中的照度值低于0x1FF时,发送步进调亮(Step Up)指令。实验结果验证了系统方案的正确性。
4 结论
本文进行了对DALI 2.0标准及照明系统的研究,提出了完整的智能照明解决方案。设计了符合DALI 2.0多主机通信标准的主控器,从而确保照明系统良好的互操作性及兼容性。还将DALI总线电源内置于DALI主控器中,实现对总线的异常监测及保护。本设计可于在线状态下设定整个DALI系统的参数;也可于离线状态下自主高效运行照明控制效果。本设计实现了智能化管理和绿色照明,十分适合应用于实际照明工程项目。
参考文献
[1] 戴广年,戴保灵.DALI总线在智能灯光控制中的应用[J].江苏建筑,2016(6):113-115.
[2] 林展鹏,史涛,许锦标.基于PIC单片机的智能照明系统USB-DALI网关研究[J].工业控制计算机,2014,27(5):41-42.
[3] 张玉杰,杨小伟.基于DALI协议的多传感器控制设备设计[J].电子技术应用,2015,41(7):19-22.
[4] 弓盼,王嘉梅,孙善通.基于ZigBee-DALI协议的智能照明系统设计[J].现代电子技术,2016,39(4):63-66.
[5] IEC 62386-101-2014/AMD1-2018,Digital addressable lighting interface-Part 101:General requirements-System components.AMENDMENT 1[S].2018.
[6] Digital illumination interface alliance.IEC 62386-the international standard for DALI technology[EB/OL].https://.
[7] 潘永雄.开关电源技术与设计(第2版)[M].西安:西安电子科技大学出版社,2019.
[8] 刘洪雷,马建设,苏萍.一种应用于智能照明的自动组网方法[J].照明工程学报,2014,25(2):138-142.
作者信息:
蔡炳利1,潘永雄1,胡敏强2
(1.广东工业大学 物理与光电工程学院,广东 广州510006;2.明纬(广州)电子有限公司,广东 广州510660)
标签: #stm32曼彻斯特编码算法