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 协议分析器
参考资料
DALI 标准文件 IEC 62386-101,102,103
Tridonic 软件使用手册:masterConfigurator manual,DALIMonitor manual
文章内部分软件操作界面截图取自于 Tridonic 软件手册及软件运行界面
文章内部分截图取之于 LDALI-ME201-U 的网页界面