引言
燈光控制系統大量采用了由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總線。
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”,所以結束符實際為“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所示。
3 LED控制系統設計
3.1 硬件設計
硬件結構如圖4所示。相比傳統的DMX512主從控制模式要簡單很多,只有一個主控制器(MCU)、級聯的SD5128芯片和存儲DMX512數據文件的USB接口芯片。
SD5128與RGB LED燈的連接方式如圖5所示??梢詫崿F單色256個灰度變化以及2 563種混合顏色變化,達到更好的混色效果。
USB接口選擇南京沁恒電子公司研發的USB接口芯片CH375,采用被動并行接口方式。CH375工作在主機方式下,主要實現單片機讀U盤功能以及對燈光數據的移動控制,增強了可拓展性和易用性。CH375與MCU的接口電路如圖6所示,CH375的D0~D7與MCU的P1總線相連。
3.2 軟件設計
MCU通過讀取U盤中存儲的燈光控制文件來實現對LED燈的控制。U盤中可以存放多個文件,且每個文件都是一組數據的組合,并以文件名區分和識別。CH375提供了U盤文件級子程序庫,MCU可以直接調用子程序庫讀寫U盤中的燈光控制數據,無需考慮文件系統,這不僅降低了研究難度,而且也降低了綜合開發成本。主程序流程如圖7所示。
當確定U盤插入時,先搜索U盤里指定文件的個數,再讀取指定的文件,判斷該文件的大小,打開文件并發送一組控制數據。當一組控制數據的末尾是0x7FFFFFFF時,說明是一組控制數據的結束符,再發送下一組控制數據,直到文件中數據發送完為止,關閉文件并打開下一個文件。這樣,U盤中多個文件可以組合成絢麗的控制效果。
結語
傳統DMX512協議采用多控制器互聯的控制方法,較為復雜。本文采用基于SD5128的同步DMX512實現LED系統的控制,用單個控制器來實現DMX512協議,不僅讓控制系統更加簡單,而且使用U盤存儲燈光控制數據能夠極大地方便用戶。