APP下载

一种基于DALI通信电路的设计

2015-12-27胡南中

电子与封装 2015年7期
关键词:中断指令总线

万 清,胡南中

(中国电子科技集团公司第58研究所,江苏 无锡 214035)

一种基于DALI通信电路的设计

万 清,胡南中

(中国电子科技集团公司第58研究所,江苏 无锡 214035)

介绍目前用于智能照明系统的数字可寻址照明接口(DALI)协议,重点介绍了该协议的通信电路组成及软件设计方法。针对智能照明控制系统,提出一种采用单片机设计的DALI协议通信电路,给出了具体通信电路的硬件设计,以及一种高可靠的DALI协议通信的软件设计方法。通过对整体通信电路的常温、高温测试验证,结果达到了设计要求。该电路设计思想可以应用在符合DALI通信协议标准的各种主从控单元中,程序设计思想可以方便移植到其他单片机上。该方案简单实用,可以进一步推广应用,是一种实现低成本、高可靠的DALI协议通信解决方案。

协议;数字可寻址照明接口;照明控制;电子镇流器

1 引言

近年来,智能照明领域得到了飞速发展。采用新一代智能照明系统及更高效率的节能灯具,具有广阔的市场前景。实现照明控制系统智能化的主要目的有两个:一是可以提高照明系统的控制和管理水平,减少照明系统的维护成本;二是可以节约能源,减少照明系统的运营成本。同时照明市场潜力巨大,可用于办公室、商店、酒店、家庭,另外随着智能照明技术的不断进步和成本下降,预计在不久的将来会逐步进入普通照明领域。因此,研究、开发智能照明技术有着重要的社会意义和经济意义[1]。

本文对采用数字可寻址照明接口(DALI)的智能照明技术进行简要描述。该系统具有分布式照明模块,各个智能化模块都具有数字控制和通信能力,地址和灯光场景信息等都存储在各个DALI模块的存储器内。每个智能模块在DALI总线上进行数字通信,传递指令和反馈状态信息,实现控制灯具的开关、调光以及对整个系统的设置等功能。本文紧跟智能照明发展方向,主要研究DALI智能照明系统中,作为重要基础的收发通信电路的软硬件设计与实现。

2 数字可寻址照明接口协议

本设计实例,电气特征是基于DALI协议的智能照明控制系统,具有简单、可靠、功能优良等特点。DALI接口通信协议编码简单明了,通信传输由主控单元控制,共可连接64个从控单元,采用双向曼彻斯特编码的异步串行物理层通信协议,传输的数据可以分为两类。接收帧的传输方向是从主控器到从设备,它由19位组成,1个起始位,8个地址位,8个数据位和2个停止位。发送帧由从设备到主控器,由11位组成,1个起始位,8个数据位,2个停止位。信息传送速率1 200 bit/s,半双工双向编码方式,其主要电气特征如图1所示。

图1 DALI通信接口电平

根据IEC 60929标准,DALI总线上的最大电流限制为250 mA,DALI线路长度不得超过300 m,DALI线路上最大电压降应确保不超过2 V。任何时候,系统都需要保证不能超过这些限制值,否则会降低信号的安全性和完整性,系统运行也变得不稳定[2]。

3 设计原理

3.1 总体设计

符合DALI协议的网络模块主要由主控器、传感器、LED调光模块或直管荧光灯(TL)的调光镇流器等组成。每个DALI模块,通信部分主要由DALI发送/接收电路和协议处理微控制器来完成。微控制器接收解析完成DALI指令后,可以传送至主控器模块来进行整个DALI系统的监测与控制,同时也可以传送至传感器、LED调光模块和荧光灯镇流器等终端实现网络控制,本文以从控单元中收发处理协议部分的软硬件设计展开描述,总体设计框架如图2所示。

DALI总线采用2根芯线的双绞线,用于正、负信号传送,另外屏蔽层用作信号地。本文研究协议收发及处理部分采用PIC单片机为调试实例,进行协议的打包和处理,另外采用本文的软件设计方法,实现了稳定可靠的协议通信。

图2 总体设计框架

3.2 硬件设计

在硬件电路部分,本文以DALI从控单元的发送/接受电路设计为例,进行简单介绍。电路需要符合DALI协议的相关电气特征要求完成接收和发送,由于DALI电平与CMOS电平标准不同,需要对其进行电平转换,同时考虑安全与稳定的总线通信,采用隔离的方式实现。

目前实现设计的相关硬件电路如图3所示,单片机接收的信号与DALI总线电平相反。光耦BU3是发送隔离光耦,BU4是接收隔离光耦,总线电平通过光耦隔离后进行CMOS电平的相互转换。图3中标识1部分是恒流电路组成的接收部分电路,实现信号接收,标识2部分电路是发送部分电路,实现信号发送。

从接收部分看,总线高电平经过整流桥整流后,经过恒流源电路,使接收隔离光耦BU4导通,单片机接收到与总线相反的低电平信号。从发送部分看,DALI空闲时总线为高电平,允许从机向主机回复信号状态,当单片机发送高电平信号时,使发送隔离光耦BU3导通同时触发三极管BQ5的导通,之后给MOS管Q5一个导通电压使得MOS管Q5打开,DALI总线被拉到低电平,若当单片机发送低电平信号时,反之亦然,DALI总线维持高电平。

另外,这里因为是列举的从控单元设计,不考虑最大250 mA的DALI总线电流,最大总线电流由总线上主控单元中的限流电阻来起总线电流保护作用。但作为从控单元收发电路,往往是与高压、大功率灯具整合在一起,需要考虑瞬时尖峰脉冲电压的出现,一般在其输入电路中并联一个压敏电阻进行输入保护。

3.3 软件设计

DALI通信接口包括DALI指令的发送和接收两部分,采用双向曼彻斯特编码,每位的发送时间为833.33 μs。DALI协议从主控单元向从控单元发出的指令数据由19位数据组成,如图4所示。

发送帧第1位是起始位(S位),第2到第9位是地址位,第10到第17位是数据位,第18、19位为停止位。DALI协议中从控单元只有在主控单元查询时,才向主控单元发送接收帧数据。从控单元发送的接收帧数据由11位数据组成。第1位是起始位,第2到第9位是数据位,第10和第11位是停止位。只有符合上述指令标准的信息,智能照明网络中的DALI设备才对其做出反应,否则将不予理睬。

图3 DALI接收/发送电路

图4 DALI发送接收帧

本文采用PIC单片机为例来设计实现DALI协议的收发处理,PIC单片机内有精确的内部振荡器,出厂时已经校准到±1%,可选频率范围为8 MHz~32 kHz,宽工作电压范围2.0~5.5 V,包括外部中断INT0和3个定时器中断TMR0、TMR1、TMR2,在协议分析和打包方面需要采用单片机的中断资源。

DALI指令的发送操作比较简单,只需配置计时器中断周期为416.67 μs,再对需要发送的数据进行编码、封装,通过格式化检测之后,计时器每中断一次发送1/2 bit的数据位,直至发送完成。

关于单片机内部振荡器温漂的问题,只要通过一个计数器记录接受主机发送数据位的周期,然后以该周期计数值来产生发送的频率,有效解决由温度变化带来的频率漂移,发送不符合DALI协议的数据包。所以只要软件设计合理,就能解决稳定发送数据的问题。发送过程中要关闭其他所有中断,防止中断冲突。

与发送相比,如何正确地采样DALI协议的接收指令,确保DALI指令接收的准确性一直是一个难点[3]。传统方法是,当DALI接收端口收到下降沿信号时产生外部中断,中断周期为416.67 μs,计时器每中断一次进行一次端口采样。这种方法有多个缺点,最主要是单片机时钟有误差,每中断一次采样时间误差累积一次,最终导致数据采样出错。

此外,高温环境带来的单片机内部震荡频率温漂问题,影响了指令接收的可靠性。在前期做过的定时采样DALI设计方案,发现接收指令不响应的问题,通过分析和验证,发现电路模块工作环境温度对单片机的影响比较大。例如,一般DALI从控单元安放位置靠近灯管上方,灯管产生的热量上升,使工作环境温度升高,导致单片机内部振荡频率产生温漂,减弱了DALI设备的指令识别能力,因此重点考虑协议的正确接收,有助于提升DALI网络可靠性。

本文提出了一种新的DALI指令的接收采集方法,是通过单片机的外部中断INT0(I0)上下边沿交替触发中断,同时与TMR0(T0)中断相互配合,以前后数据位相同或相反的方式来读取数据。此过程较为复杂,但能完成对接收指令的高可靠采样。

前面已介绍过,单片机接收的信号与DALI总线相反。起始位检测比较简单,在出现第一个下降沿I0中断后(见图5),TMR0设置t1为1/4T的定时器中断。T0产生中断后,单片机应该采样到起始位是低电平,则起始位接收成功,否则起始位报接收错误返回,初始化到重新接收指令状态。

图5 起始位及第一数据位1信号

如果起始位接收成功,开始检测接收的第一位数据。在t2的起始点设置TMR0为5/4T定时器中断时间,根据曼彻斯特编码规则的特性,每个数据周期内都有电平变化,所以在连续传输数据的时候,上升和下降沿出现的周期为1/2T或T。同时考虑余量TMR0设置为(1+1/4)T时间,第一位数据的判断又分两种情况即0或1。当接收数据为1时(图5),下一个I0中断必定会在1/4T时出现;当接收数据为0时(图6),下一个I0中断必定会在3/4T时出现。所以只要判断TMR0的定时时间t2是否小于判断的中间值1/2T就可以识别数据,同时形成了数据识别1/4T的容差范围。这里还需要注意的是,当第一位数据识别为1的时候,下一个下降沿中断必定在同一个数据周期内产生,因为此位数据已经判断出来,不需要再做任何判断,只需跳过该周期内的外部中断即可。

对于后续数据的判断,0和1的周期时间只会出现在1/2T和T这两种情况,因此只需要TMR0中的计数时间,即图5和图6中t4运行的时间与3/4T来做大小判断,可得到后续的数据位和前一位相同或相反。数据结束位是占据每个发送帧的最后2位,在DALI总线上表示出一直高电平状态。对结束位的采样不再采用数据中断的方式,而是通过2次T0中断来判别。具体做法是,先识别到最后一位数据位(第16位),在该位数据周期中间开始设置TMR0为T的时间中断周期,连续2次T0中断时单片机接收到低电平信号(与DALI总线高电平相反),表示正确接收了停止位,反之停止位接收错误。

软件流程图如图7和图8所示,主要采用INT0中断和TMR0中断的程序相互配合来完成数据接收采样。软件初始化后,共设置了4个变量,分别为统计接收数据位计数变量、统计接收停止位计数变量、接收到起始标志位和跳中断标志位变量。

图6 起始位及第一数据位0信号

采用该软件设计方法的最大优点在于能够稳定接收数据。与传统方式比较,能够实现每一位数据采集误差都保持一致,不会因采集数据越长而导致采样误差越大。另外,能够产生一个高容限±1/4T的采样误差范围,使数据稳定正确地接收。

4 设计结果

为了验证DALI数字通信的功能正确性,对通信处理模块进行了调试。DALI指令采用一款DALI主控模块发送,发送指令为一条DALI协议中广播地址开灯指令0xFF08。图9中信号1是单片机接收到DALI信号的波形,信号2是TMR0中断的时序,中断检测到一次跳变一次,信号3是外部中断INT0的时序图,功能符合设计预期。

为了验证DALI数字通信的可靠性,在上述设计中,将DALI接收模块在常温和高温下进行实验,实验测得数据与理论值差距2%,采样周期的容限范围在±23%左右,与±1/4T的数据采样误差范围相近,满足设计需求。

5 结束语

文中设计的一种DALI通信电路,在系统软硬件设计的基础上,着重对软件设计部分进行了通信可靠性的设计提升,并对整体电路进行常温、高温测试验证,电路在实际测试中表现良好,程序思想也可以方便地移植到其他单片机上,设计思想可以应用在DALI主从控单元中。该方案简单实用,可以进一步推广应用,实现低成本、高可靠的DALI通信解决方案。

Design of a Communication Circuit Based on DALI Protocol

WAN Qing, HU Nanzhong
(China Electronics Technology Group Corporation No.58 Research Institute, Wuxi 214035, China)

The article introduces the digital addressable lighting interface(DALI)protocol for intelligent lighting systems. It focuses on the communication circuit and software design of the protocol. The paper describes a MCU design and a highly reliable software design for DALI protocol communication. The results meet the design requirements by the normal temperature and high temperature testing. In the paper, the circuit design can be applied to the DALI communication protocol from various master control and slave unit. Program design can be easily applied to other MCU. The solution is simple and practical and it can be more widely used. It’s low cost and high reliability solutions for DALI protocol.

protocol; digital addressable lighting interface; lighting control; electronic ballast

图7 INT0中断流程图

图8 TMR0中断流程图

TN402

A

1681-1070(2015)07-0028-05

2015-05-25

猜你喜欢

中断指令总线
ARINC661显控指令快速验证方法
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
基于FPGA的中断控制器设计*
一种基于CAN总线的误码测试方法
跟踪导练(二)(5)
千里移防,卫勤保障不中断
杀毒软件中指令虚拟机的脆弱性分析
CAN总线并发通信时下位机应用软件设计
中断与跳转操作对指令串的影响