//大力哥谈 DALI – DALI 电源进阶调试招式

大力哥谈 DALI – DALI 电源进阶调试招式

发布者 |2021-01-18T09:49:10+08:00一月 18th, 2021|最新文章|大力哥谈 DALI – DALI 电源进阶调试招式已关闭评论

DALI电源的常规调试和测试手段重点在于参数配置和状态查看,但这是建立在DALI系统内所有设备工作正常的前提之下。如果测试的环境中存在故障或者部分设备为待验证功能的新产品,那么采用这种方式就很难进行底层的故障诊断和有针对性的单项功能测试,比如以下几种典型情况:

  • DALI系统布线后的初次调试出现DALI电源扫描和地址分配故障
  • DALI系统部署运行一段时间出现DALI电源失控故障
  • DALI系统部署运行后偶尔出现DALI电源的意外操作
  • DALI电源为开发中的产品,需要验证其DALI协议完备性和调光行为
  • DALI应用控制器为开发中的产品,需要验证其通信序列的合理性

一旦遇到以上几种情况,就需要采用更加深度和细微的测试方式,也就是本文所说的进阶调试招式。进阶调试手段允许使用者更加灵活的进行命令的收发测试,当然也要求使用者对于命令的含义和作用有比较清晰的认知。好在DALI的数据帧种类较少,格式也并不复杂,只要具备一些基本的数字通信的知识,就很容易理解。

预备知识

DALI 电源通常是被控制的目标,在使用过程中难免要与另一端发送控制指令的设备打交道。无论另一端是中控主机或者是协议转换网关,在DALI-2中的设备类型均为控制设备(Control Device)类别下的应用控制器(Application Controller),应用控制器发送前向帧(Forward Frame)和DALI电源或其他DALI 控制装置(Control Gear)通信。当然它也可以发起与其他控制设备(Control Device)的通信或者接收其他控制设备(Control Device)发送的前向帧(通常为事件帧),不过本文主要讨论DALI电源相关的协议指令。

DALI 数据传输

数据传输流向

DALI的数据传输集中在应用控制器(Application Controller)和其他设备之间,如下图所示。

DALI总线设备间的通信传输
  • 应用控制器(Application Controller)和控制装置(Control Gear):应用控制器发起传输,应用控制器发送16 bit 前向帧(FF, Forward Frame),控制装置返回或不返回后向帧(BF,Backward Frame)。
  • 应用控制器(Application Controller)和输入设备(Input Device):两种情况。(1)应用控制器发起传输,发送24 bit 前向帧(FF, Forward Frame),输入设备返回或不返回后向帧(BF,Backward Frame);(2)输入设备发起传输,发送发送24 bit 前向帧(FF, Forward Frame)。

DALI数据帧长度

在IEC 62386-101ed2.0中,定义了以下几种标准数据帧:

  • 16 bit 前向帧(Forward Frame):用于和IEC 62386-102中定义的控制装置(Control Gear)通信。
  • 24 bit 前向帧(Forward Frame):用于和IEC 62386-103中定义的控制设备(Control Device)通信。
  • 后向帧(Backward Frame): 8 bit,控制装置或者控制设备在接收到查询指令后返回的响应数据。
  • 20 bit 和 32 bit的前向帧:保留,其中32-bit前向帧已在 IEC 62386-105中被定义,用于固件更新时的数据传输。

其他长度的数据帧为私有协议,不是我们讨论的重点。

16-bit 前向帧

IEC 62386-102 中定义了16-bit前向帧的数据格式,16-bit数据帧由应用控制器发起,用于对控制装置进行控制、配置和查询,格式如下。

16-bit 命令帧编码

DALI LED驱动电源的命令主要集中在IEC 62386-102(控制装置的一般要求)和特定类型的标准中,目前最常见的是面向LED驱动的调光和调色电源的 IEC 62386-207 (LED模块的要求 )和IEC 62386-209 (颜色控制的要求 )中。在必要的时候,应该查找以上标准的适用版本中关于的DALI数据帧、指令定义及使用方法的说明,以帮助正确理解相关的DALI指令功能,避免主观臆测和不当的参考来源带来的认知错误。

24-bit 前向帧

IEC 62386-103中定义了24-bit前向帧的数据格式,分别为命令帧和事件帧。命令帧由应用控制器发起,用于对控制设备进行控制、配置和查询,格式如下。

24-bit 命令帧编码

事件帧由输入设备发起,用于在自身检测到事件触发条件后,主动将事件发送到总线上,格式如下。

24-bit 事件消息帧编码

进阶调试

以下仍以DALI电源常规测试时使用的Tridonic DALI USB 控制器及配套软件masterConfigurator为例,介绍两大类调试手段:指令发送和数据监控。如果上线运行的DALI系统内的应用控制器所在的产品(如中控主机或者协议网关)本身具备丰富的调试功能,通常也能直接在产品的调试工具中进行故障诊断。否则需要向目标DALI系统总线接入类似下文中所使用的DALI USB控制器的方式来发送调试指令和监控总线数据。

指令发送

在masterConfigurator的主菜单中,选择 Tools->Command administrator…即可打开如下图所示的Command administrator (命令管理器)界面,在这个工具界面中支持三种命令发送模式,分别是:

  • DALI commands:发送单条DALI命令,目前的软件版本只能发送16-bit的前向帧,因此只能发送和102控制装置通信的命令。如果测试和103控制设备之间的通信,需要发送24-bit前向帧,使用这个方法是无法测试的。
  • DSI commands:发送单条DSI(DALI的前身,只支持广播)命令,除了Tridonic的产品,目前大部分厂商并不支持,基本不需关心。
  • Command sequence:发送命令序列,可以创建一个命令序列,然后进行单次或者自动重复发送。
命令管理器界面

任意发送单条指令

按照前面的步骤,打开Command administrator (命令管理器)后,默认的标签页即为 DALI commands, 每个控件的功能含义参考下图中的标注,主要包含这几个部分:

  • 目标地址:指定命令的寻址方式,有广播、未分配地址的设备广播、组播和单播这四种。
  • 设备类型:选择合适的设备类型(如图中的6-LED)以支持相应的扩展命令。
  • 命令号:控制设备的一般命令在每种设备类型的命令列表中均会列出,但扩展命令部分则依据设备类型选择而定。
  • DAP/MASK: 当选择的命令为“DAPC(直接功率控制)”时,显示要发送的控制亮度级数滑动条。
  • 数值:显示DAPC对应的具体数值,有十进制和十六进制两种显示方式,其他命令时不显示。
  • 命令发送控制:点击“Send command(发送命令)”即发送定义好的命令,“Repeat Command(命令发送两次)”选项可以自动使得定义的命令连续发送两次,主要用于调试一些DALI标准中定义的Send-Twice命令,这些命令通常是对DALI电源进行参数配置的,为了防止意外操作导致的参数配置错误,标准中要求在规定的时间(100ms)内应该连续发送两次。“Repeat command every 500ms(每500ms重复发送) ”选项选中后,一旦启动命令发送,则会自动每隔500ms重复发送。
  • 数据:“Data to send(待发送数据)”和“Response(响应)”分别显示将向总线发送的数据和接收到的响应数据,可以通过检查这里的数据和待测试的目标设备中的收发数据是否一致。
DALI commands 控件说明

对于常规的DALI LED驱动电源,设备类型应选择“6:LED”或“8:Colour control”,根据调试目标设备的定义来选择。当然软件也支持其他常规的设备类型,如果有需要也可以选择测试。

设备类型下拉列表

选择好设备类型后,在命令列表中会显示所有的常规命令和扩展命令,如下图所示。当选中的是某种设备类型支持的扩展命令时,软件也会自动发送“ENABLE DEVICE TYPE (x) ”命令来使能对应的设备类型。

命令列表

有些命令需要预先设置DTR0,作为该命令执行的前置条件,如下图中选择“SET SCENE 0 (DTR0)”来设置场景0的亮度等级时。在该界面上提供了一种方便的方法,用户可以选中“send DTR0”后直接填入想要设置的DTR0数值,这样在发送设置命令时,会自动先发送设置DTR0命令。同时可以看出,“Repeat command(重复发送)”选项已经自动勾选,也就是说软件能够帮助用户将标准中定义的send-twice命令自动勾选好期望的选项。因此,除非特别的情况,使用时不要改变这些默认勾选的选项。

需要预设DTR0的命令

同样,某些命令需要预先设置DTR0和DTR1,软件也支持自动发送,使用时只需要勾选好选项后填写好数值即可,如下图发送“WRITE MEMORY LOCATION(写存储地址)”命令时。

需要预设DTR0和DTR1的命令

发送命令序列

单条命令的调试有时并不能满足需求,比如当我们需要读取连续存储区的数据时,就需要按照标准中要求来发送一系列的命令,如果使用单条命令调试时需要反复修改发送命令,极不方便。此时可以选择下图中的“Command Sequence(命令序列)”界面,通过创建并添加命令形成一个命令序列,然后再通过单次循环、无限循环和单步发送命令序列进行测试,就会很容易地实现前面提到的测试需求。

命令序列界面控件

点击上图中的File区域内的New创建一个新的命令序列,然后在Command区域点击Add添加命令,添加命令的对话框如下所示。这里的命令类型我们只选择DALI,定义方式和单条命令类似。在“Delay time”可以指定该命令发送之后的延时,用来控制命令之间的间隔。

添加命令到命令序列

总线数据监控

除了主动发送命令进行调试之外,对已有的总线进行数据监控可以用于:

  • 故障诊断:通过查看总线上的数据传输诊断现有系统的故障。
  • 产品分析:分析目标产品在DALI命令底层传输的工作机制。

数据帧列表显示

masterConfigurator在安装时同时安装了一个DALIMonitor的工具软件,详细使用指导可参考软件帮助中所附的DALIMonitor.pdf帮助文档。当masterConfigurator运行后,可以通过Windows系统的任务栏中驻留的DALI BusServer图标打开DALI Monitor应用程序,如下图所示。

总线监控数据帧列表

该界面中可以很直观地查看总线上每一帧数据的指令细节,包括原始指令数据、类型、寻址、命令号和传输的日期时间等,无论是对于故障诊断还是研究产品底层的工作机制都有很大的帮助,实际上就是一个DALI协议的Sniffer(嗅探器)。除了正常的数据解析之外,对于总线掉电故障或者数据帧的传输时序错误也会有适当的提示。但是要指出的是,我们所使用的的软件并不能作为DALI-2认证或者目标产品是否符合认证的标准,因为从使用情况来看,在某些参数判断指标上,例如Settling Time(总线静置时间)的合法性判断,Tridonic DALI USB的容忍度比标准要宽松。也就是说,某些没有严格符合标准的数据帧也会被正确解析接收,所以不要将通过DALI-2认证和能配合某个工具工作混为一谈。

数据帧显示控制

对于已经接收显示的数据帧列表,可以在列表区右键弹出菜单中选择“Clear Buffer”清除,或者选择“Stop Reception”停止接收。

数据帧显示控制菜单

更有用的功能是在弹出的菜单中选择“Filter… ”来配置过滤选项,这样可以突出显示我们最关心的数据帧。

数据帧显示过滤配置

Filter对话框中,首先可以选择是否打开过滤。

  • Filter OFF,display all commands:关闭过滤,显示所有命令。
  • Filter ON,display the following commands ONLY:打开过滤,仅显示下列命令。
  • Filter ON,do NOT display the following commands:打开过滤,不显示下列命令。

一旦选择打开过滤后,在Filter对话框的中接着可以配置选中显示或者选中不显示的命令种类和适配符。

  • DALI:配置DALI命令,实际上就是DALI标准中的16-bit前向帧(Forward Frame)。
  • DA24:配置DA24命令,实际上是DALI标准中的24-bit前向帧(Formward Frame),主要是用于和103控制设备(Control Device)之间的通信。虽然masterConfigurator中不能直接发送24-bit前向帧,但是DALI Monitor中是可以接收并显示总线上传输的24-bit前向帧的,这可以部分辅助查看有24-bit 前向帧传输的总线通信情况。
  • eD:配置eD命令,eD命令即Tridonic私有的扩展协议(extended DALI)命令,在总线上传输25-bit编码数据,但其中只有24-bit是有效数据帧,用于Tridonic私有的面板按键、传感器等产品。这类命令不是DALI标准数据帧格式,因此一般我们不需要研究。

在上述的各类命令中,还可以进一步配置具体的命令类型和寻址等匹配条件。

总线传输统计

在Window任务栏直接双击DALI BusServer可以打开如下所示的统计界面,该界面显示了每一个DALI USB控制器当前的使用统计情况,例如每种类型的数据帧的数目和错误数目。

总线传输统计信息

其他工具

Lunatone Cockpit

由于Tridonic的DALI USB产品实际上和Lunatone的DALI USB产品相同,因此Lunatone的DALI测试软件DALI Cockpit也可以配合Tridonic DALI USB产品使用。Lunatone DALI Cockpit软件中同样也有类似Command administrator的工具,但是额外地可以支持发送DALI 24-bit 命令,所以涉及到103设备测试时,如果需要发送DALI 24-bit前向帧命令,可以改用Lunatone DALI Cockpit软件。

Loytec LDALI 网关

在很多中控主机或者网关的配套工具中,常常也有数据指令发送和数据监控的功能,在对当前系统进行故障诊断时,可以先看看此类设备的自带工具能否满足要求。例如在Loytec的BACnet/DALI网关LDALI-ME201-U的Web界面中,可以通过选择“Statistics”->“DALI”显示当前设备的DALI总线统计信息,如下图所示。

LDALI 网关 DALI 统计信息

进一步地,在上图中点击“Protocol Analyzer”,显示协议分析器界面,在此页面中点击“Start”后,也可以像前面介绍的Tridonic masterConfigurator一样,显示接收的总线数据并解析成容易理解的信息。在下图中,我们可以看到不同的数据帧类型,因为LDALI-ME201-U支持DALI-2的输入设备(开关输入、移动传感器和光照传感器等设备类型),因此也能显示自身发送的24-bit请求帧和设备发送的24-bit事件帧。

LDALI 网关 DALI协议分析器

参考资料

  1. DALI 标准文件IEC 62386-101,102,103
  2. Tridonic 软件使用手册:masterConfigurator manual,DALIMonitor manual
  3. 文章内部分软件操作界面截图取之于Tridonic软件手册及软件运行界面
  4. 文章内部分截图取之于LDALI-ME201-U的网页界面

关于作者

大力哥
大力哥谈DALI 知乎专栏:https://zhuanlan.zhihu.com/dalige 微信公众号: 搜索“大力哥谈DALI”或者 id “dalitalks” ,关注后回复”资料共享“可获取DALI协议标准等学习资料。