同步DMX512的LED控制系统设计

同步DMX512的LED控制系统设计,第1张

  灯光控制系统大量采用了由USITT(美国剧场技术协会)提出的DMX512通信协议,该通信协议采用异步通信格式。灯具控制方案主要包括DMX512协议、DALI总线方案、SPI移位总线方案。DMX512是现在最流行的控制方法,但是在实际应用中多采用控制器互联来进行控制的照明方案,软件比较复杂。DALI总线是欧洲提出的一种灯光控制总线方案,DALI系统中每个灯具都有一个地址和一组控制命令,但其通信的速度不够快。SPI移位总线方案是采用级联的方法,变化速率很高,但是此方法数据量比较大,灯之间的线较多,软件难度大,产品可靠性差。

  DMX512标准要求每个灯具都要有一个控制器,而每个灯都要设置地址很麻烦,异步传输方式也很麻烦。针对此缺点,本文提出了基于SD5 128的同步DMX512的LED控制系统设计。本文给出了同步DMX512实现的软硬件设计方法,在硬件上增加了存储接口芯片以实现灯光控制数据的移动存储,具有更好的拓展性。

  同步DMX512是采用同步MX512总线(用一根线实现控制数据的移位和置入)的同步串行传输的方式,吸取了DMX512和SPI移位总线两者的优点。同步DMX512在电气特性、数据结构方面与DMX512协议大致相同,采用同步传输的方法来进行两线移位传输,并且采取了SPI一位传输的方法来避免DMX512协议的地址设置问题。同步DMX512保留了DMX512的电气特性,故在灯与灯之间的距离不是很远的情况下,不使用RS485总线。

  DMX512灯光控制协议

  DMX512协议是一个数字调光协议,应用它能够对舞台、剧场、演播室等场所的调光器以及其他的控制设备进行数字控制,适用于一点对多点的主从控制。其互联形式采用了多点总线结构,不存在信息通路阻塞问题,可靠性较高。

  协议规定控制信号数据包的传输通过异步通信的方式进行。一个DMX512数据包包含起始码和512个数据帧。每一帧数据包括1位低电平起始位、8位数据位、2位高电平停止位。一个数据帧代表一个控制通道,因此该协议支持512个控制通道。DMX512协议的帧结构与数据包结构如图1所示。

  同步DMX512的LED控制系统设计,同步DMX512的LED控制系统设计,第2张

  SD5128及其同步DMX512协议

  同步DMX512的LED控制系统设计,同步DMX512的LED控制系统设计,第3张

  图2中,数据帧和结束符都是高位先移入,每个数据位在时钟的上升沿被采样,下降沿被打出;第一个数据帧对应距移入端最近的LED灯,N表示芯片数量。结束符=1位“0”+24位“1”,但在实际编程中,按字节发送1位的“0”和31位的“1”,所以结束符实际为“0x7FFF-FFFF”。

  对比图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所示。

  同步DMX512的LED控制系统设计,同步DMX512的LED控制系统设计,第4张

  LED控制系统设计

  硬件结构如图4所示。相比传统的DMX512主从控制模式要简单很多,只有一个主控制器(MCU)、级联的SD5128芯片和存储DMX512数据文件的USB接口芯片。

  SD5128与RGB LED灯的连接方式如图5所示。可以实现单色256个灰度变化以及2 563种混合颜色变化,达到更好的混色效果。

  USB接口选择南京沁恒电子公司研发的USB接口芯片CH375,采用被动并行接口方式。CH375工作在主机方式下,主要实现单片机读U盘功能以及对灯光数据的移动控制,增强了可拓展性和易用性。CH375与MCU的接口电路如图6所示,CH375的D0~D7与MCU的P1总线相连。

  同步DMX512的LED控制系统设计,同步DMX512的LED控制系统设计,第5张

  MCU通过读取U盘中存储的灯光控制文件来实现对LED灯的控制。U盘中可以存放多个文件,且每个文件都是一组数据的组合,并以文件名区分和识别。CH375提供了U盘文件级子程序库,MCU可以直接调用子程序库读写U盘中的灯光控制数据,无需考虑文件系统,这不仅降低了研究难度,而且也降低了综合开发成本。主程序流程如图7所示。

  同步DMX512的LED控制系统设计,同步DMX512的LED控制系统设计,第6张

  当确定U盘插入时,先搜索U盘里指定文件的个数,再读取指定的文件,判断该文件的大小,打开文件并发送一组控制数据。当一组控制数据的末尾是0x7FFFFFFF时,说明是一组控制数据的结束符,再发送下一组控制数据,直到文件中数据发送完为止,关闭文件并打开下一个文件。这样,U盘中多个文件可以组合成绚丽的控制效果。

  结语

  传统DMX512协议采用多控制器互联的控制方法,较为复杂。本文采用基于SD5128的同步DMX512实现LED系统的控制,用单个控制器来实现DMX512协议,不仅让控制系统更加简单,而且使用U盘存储灯光控制数据能够极大地方便用户。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2578229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-07
下一篇 2022-08-07

发表评论

登录后才能评论

评论列表(0条)

保存