同步DMX512标准在LED控制系统设计中的应用
扫描二维码
随时随地手机看文章
灯光控制系统大量采用了由USIT T ( 美国剧场技术协会) 提出的DMX512 通信协议,该通信协议采用异步通信格式。灯具控制方案主要包括DMX512 协议、DAL I 总线方案、SPI 移位总线方案。DMX512 是现在最流行的控制方法,但是在实际应用中多采用控制器互联来进行控制的照明方案,软件比较复杂。
DALI 总线是欧洲提出的一种灯光控制总线方案,DALI 系统中每个灯具都有一个地址和一组控制命令,但其通信的速度不够快。SPI 移位总线方案是采用级联的方法,变化速率很高,但是此方法数据量比较大,灯之间的线较多,软件难度大,产品可靠性差。
DMX512 标准要求每个灯具都要有一个控制器,而每个灯都要设置地址很麻烦,异步传输方式也很麻烦。针对此缺点,本文提出了基于SD5128 的同步DMX512 的LED控制系统设计。本文给出了同步DMX512 实现的软硬件设计方法,在硬件上增加了存储接口芯片以实现灯光控制数据的移动存储,具有更好的拓展性。
同步DMX512 是采用同步DMX512 总线( 用一根线实现控制数据的移位和置入) 的同步串行传输的方式,吸取了DMX512 和SPI 移位总线两者的优点。同步DMX512 在电气特性、数据结构方面与DMX512 协议大致相同,采用同步传输的方法来进行两线移位传输,并且采取了SPI 一位传输的方法来避免DMX512 协议的地址设置问题。同步DMX512 保留了DMX512 的电气特性,故在灯与灯之间的距离不是很远的情况下,不使用RS485总线。
1 DMX512 灯光控制协议
DMX512 协议是一个数字调光协议,应用它能够对舞台、剧场、演播室等场所的调光器以及其他的控制设备进行数字控制,适用于一点对多点的主从控制。其互联形式采用了多点总线结构,不存在信息通路阻塞问题,可靠性较高。
协议规定控制信号数据包的传输通过异步通信的方式进行。一个DMX512 数据包包含起始码和512 个数据帧。每一帧数据包括1 位低电平起始位、8 位数据位、2 位高电平停止位。一个数据帧代表一个控制通道,因此该协议支持512 个控制通道。DMX512 协议的帧结构与数据包结构如图1 所示。
2 SD5128 及其同步DMX512 协议
SD5128 是高集成度低功耗LED 控制芯片。它采用的单线传输模式,内置采样/ 时钟再生电路、数字锁相电路、移位寄存器、脉宽调制模块,级联能力超过1024 颗芯片;提供3 个I/ O 通道,每通道最大8 mA 输出电流,采用外置驱动的工作模式,可驱动三极管和MOS 管。SD5128 采用24 位真彩色( 8R+ 8G+ 8B) ,结合DMX512协议数据格式,SD5128 的帧结构与数据包结构如图2所示。
图2 中,数据帧和结束符都是高位先移入,每个数据位在时钟的上升沿被采样,下降沿被打出;第一个数据帧对应距移入端最近的LED 灯,N 表示芯片数量。结束符= 1 位“0”+ 24 位“1”,但在实际编程中,按字节发送1 位的“0”和31 位的“1”,所以结束符实际为“0x7FFFFFFF”。对比图1 与图2,可以发现SD5128 的帧结构和数据包结构比DMX512 更简洁。SD5128 帧结构没有起始位和停止位,数据位从8 位增加到24 位( 8R+ 8G+ 8B);SD5128 的数据包包括24 N 位数据( 即N 帧数据) 和1个结束符,没有DMX512 的MTBP 位、BREAK 位、MAB位、SC 位。更简洁的数据结构对实现快速的同步DMX512 协议有很大的作用,SD5128 的单线级联移位串行控制使控制系统更加简洁,接线更加简单。
SD5128 的级联方式能实现多像素点控制,每个SD5128 控制一个LED 像素点,级联方式如图3 所示。
3 LED 控制系统设计
3. 1 硬件设计
硬件结构如图4 所示。相比传统的DMX512 主从控制模式要简单很多,只有一个主控制器( MCU) 、级联的SD5128 芯片和存储DMX512 数据文件的USB 接口芯片。SD5128 与RGB LED 灯的连接方式如图5 所示。可以实现单色256 个灰度变化以及2563 种混合颜色变化,达到更好的混色效果。
USB 接口选择南京沁恒电子公司研发的USB 接口芯片CH 375,采用被动并行接口方式。CH375 工作在主机方式下,主要实现单片机读U 盘功能以及对灯光数据的移动控制,增强了可拓展性和易用性。CH375 与MCU 的接口电路如图6 所示,CH 375 的D0~ D7 与MCU 的P1总线相连。
3. 2 软件设计
MCU 通过读取U 盘中存储的灯光控制文件来实现对LED 灯的控制。U 盘中可以存放多个文件,且每个文件都是一组数据的组合,并以文件名区分和识别。
CH 375提供了U 盘文件级子程序库,MCU 可以直接调用子程序库读写U 盘中的灯光控制数据,无需考虑文件系统,这不仅降低了研究难度,而且也降低了综合开发成本。主程序流程如图7 所示。
当确定U 盘插入时,先搜索U 盘里指定文件的个数,再读取指定的文件,判断该文件的大小,打开文件并发送一组控制数据。当一组控制数据的末尾是0x7FFFFFFF时,说明是一组控制数据的结束符,再发送下一组控制数据,直到文件中数据发送完为止,关闭文件并打开下一个文件。这样,U 盘中多个文件可以组合成绚丽的控制效果。
结 语
传统DMX512 协议采用多控制器互联的控制方法,较为复杂。
本文采用基于SD5128 的同步DMX512 实现LED 系统的控制,用单个控制器来实现DMX512 协议,不仅让控制系统更加简单,而且使用U 盘存储灯光控制数据能够极大地方便用户。