引言
隨著數字化技術和計算機技術的廣泛普及,舞臺和演播廳等燈光控制系統由傳統的模擬控制轉變為數字控制。為了解決各廠家設備兼容性問題,美國劇場技術協會(USITT)制定了DMX512協議標準。由于該協議簡單實用,目前幾乎所有的燈光及舞臺設備生產廠商都支持該控制協議,使之成為燈光控制的國際標準。由于協議規定DMX512信號通過EIA-485有線線纜進行傳輸,這就造成在條件不利于有線布線的環境下設備安裝困難。因此,設計一種短距離無線通信系統來代替有線線纜完成信號的傳輸就顯得十分必要。
1 DMX512協議簡介
DMX512協議適用于一點對多點的主從式燈光控制系統,主控制器往總線發送控制時序,總線上的其他從燈光設備接收總線數據,提取其對應通道的數據,完成控制信號的接收。
協議規定控制信號數據包的傳輸通過異步通信的方式進行。一個DMX512數據包包含起始碼和512個數據幀。數據幀內包含1個起始位(低電平)、8個位數據和2個停止位(高電平),沒有奇偶校驗。DMX512的信號數據傳輸率為250kbps,數據幀每位寬度為4μs,發送一幀需要44μs。一個數據幀代表了一路控制通道,因此該協議支持512路控制通道。一般舞臺燈光設備可以同時接受多路通道控制。接受的通道數越多,接收的控制數據量也越大,燈光的表現能力也就越強。譬如,某些舞臺激光燈可以根據需要投射出不同圖案、顏色甚至字符。DMX512數據包的傳輸要符合一定的格式和時序要求。主要包含1個至少88μs的低電平輸出起始標志(Break)、起始碼幀、512個數據幀和最后的數據包結束標志(高電平)。控制器和接收器只有滿足DMX512數據包的時序要求,才能正常完成主從機之間的通信。具體的信號時序如圖1所示。
2 系統硬件設計
2.1 系統設計框圖
系統設計的目的是利用無線傳輸代替有線電纜,解決有線布線困難的問題,因此在設計上必須滿足輕便易安置的條件,以保證與原有線系統無縫結合。如圖2所示,整個系統的硬件結構由微控制器單元(MCU)、射頻收發單元和電源管理單元3部分組成。
在工作方式上,一方面發射模塊的MCU單元接收DMX512控制端的總線數據,分析并拆解總線數據,然后將數據經過適當處理之后通過射頻發送單元發送出去;另一方面接收模塊在接收無線數據之后,由MCU單元將數據整合重組,在接收端總線恢復DMX512控制信號。這樣設計的好處是可以將有線和無線傳輸相結合。在接收端架設一個無線接收模塊就可以保證該區域DMX512控制信號得到有效傳輸,并不需要為每個設備都安置一個無線接收模塊。
2.2 微控制器單元
本系統的微控制器采用了STC系列單片機STC12C5410。該單片機含有12KB的Flash存儲器、512字節RAM、異步串口(UART)和內部PLL單元等。內置的SPI總線控制器可以方便地與射頻芯片CC1100通信,而內部的ISP(在線可編程)模塊允許用戶直接通過串口下載程序,給系統軟件升級帶來便捷條件。由于DMX512的數據波特率為250kbps,所以選取16MHz晶振作為時鐘源,以便產生同頻波特率。
2.3 射頻收發單元
CC1100是一款低功耗單片射頻收發芯片,具有通信距離遠、功耗低、接口靈活等優點。該芯片主要設定工作在315MHz、433MHz、868MHz和915MHz的工業、科學和醫學波段;數據速率支持1.2~500kbps的可編程控制;提供-30~10dBm的輸出功率;最大空地發射距離大于200m,工作電壓為1.8~3.6V;最大支持64字節的接收和發送FIFO。設計人員可以通過SPI接口完成內部寄存器配置,讀寫接收/發送FIFO等內部控制。
2.4 接口電路設計
接口電路的設計主要包括2部分:DMX512總線與單片機之間的通信,以及單片機控制CC1100射頻模塊收發數據。由于DMX512總線數據幀格式與通用異步串口(UART)格式基本兼容,因此系統與DMX512總線的通信利用串口通信接口。但DMX512信號的電氣接口標準是EIA-485,與單片機的TTL電平接口不兼容,要實現相互通信,需要采用電平轉換芯片作為橋接電路。在分解和還原DMX512總線數據上,分別采用MC3486和MC3487。在系統發送端,通過MC3486將DMX512總線的差分數據轉換為TTL電平數據,由單片機的串口接收數據;另外,串口的該引腳還同時連接到單片機的P3.2/INTO口,用于識別DMX512總線的起始標志(Break),提前通知單片機準備接收總線數據。在系統接收端,通過MC3487將單片機串口TTL電平數據轉換為DMX512差分數據。
對CC1100的內部寄存器配置和FIFO單元讀寫都通過單片機4線SPI總線接口來完成。MISO和MOSI分別是數據發送、接收端口,SCLK是同步時鐘,SS用作器件的片選信號。CC1100的GD02信號用作內部FIFO的狀態信號,用于提示單片機FIFO空間已滿。發射和接收模塊接口示意圖如圖3所示,發射模塊與接收模塊的結構基本一致,只是通信數據流方向相反。
3 系統軟件實現
3.1 主要程序流程
系統上電后首先進行初始化配置,包括I/O端口輸入/輸出狀態配置、串口配置、SPI接口設置、CC1100寄存器配置,以及無線傳輸數據格式的配置,使系統處于正常工作狀態。此時主發射模塊等待DMX512總線數據的到來。一旦DMX512數據包起始標志出現,即打開單片機串口,等待串口接收中斷產生。中斷產生之后單片機緩存總線數據,激活CC1100,并向其發送FIFO中寫入發送數據,然后無線發送出去。
接收模塊的工作流程和發送模塊相反。在初始化完成之后,單片機設置好CC1100的FIFO寄存器,等待FIFO產生外部中斷。這里外部中斷被用作無線數據接收成功的標志。FIFO中斷產生后,單片機通過SPI總線緩存FIFO中的數據,并立刻通過串口模擬DMX512時序,恢復總線信號,完成信號的無線傳輸。發送和接收數據流程如圖4所示。
3.2 自定義通信數據格式
雖然CC1100的傳輸數率比DMX512的時序速率要高,但畢竟CC1100的FIFO有限,不可能把一個DMX512數據包一次性全部發送出去,因此在主從端之問必須協商一種合適的數據通信格式。CC1100支持4種格式的數據包,分別是:定長(小于255字節)、變長(小于255字節)、無限長和有限長。完整的數據包包括前導碼、同步字、數據長度、地址、有效數據和CRC校驗。本系統采用有效數據為32字節的有限長格式,具體的數據格式如下:
DMX512的數據包中包含有512路調光數據,而CC1100發送一次數據包只包含32個有效數據,因此在發送時要在CC11OO的地址碼段填入該次發送有效數據在總數據包中的序號,以保證接收端在接收的時候按順序重組成功。
3.3 拆解和重組DMX512總線數據
系統在對DMX512總線數據的拆解和重組過程中,都利用了單片機內部的串口單元。但DMX512總線數據時序與單片機UART串口不完全相同,因此在使用的時候需要做如下修正。
主發射端對DMX512總線數據的拆解,需要先將串口端口(P3.1)配置為I/O口。當接收到DMX512的起始標志(即P3.1=0)時,開啟定時器0開始計數,88μs溢出中斷后準備接收數據。單片機確認M.a.B(MarkafterBreak)信號出現后,配置串口端口為普通串口,開始緩存數據幀。
從接收端在無數據傳輸時,要把串口端口配置為I/O口,并置為高電平。在接收完畢無線數據后,先將串口端口拉低,利用定時器延時超過88μs,完成起始標志(Break)信號的發送。然后配置串口端口為普通串口,按緩存的順序將數據發送到DMX512總線上。數據發送完成之后,還需要將串口端口還原為普通I/O,發送結束信號(小于1s的高電平),完成DMX512時序要求。
4 總結
基于CC1100設計的DMX512燈光控制信號無線傳輸系統,具有成本低、外圍器件少、電路結構簡潔的特點。雖然CC11OO標稱空曠地發射距離可以達到200m,但在實際使用時,由于樓宇等建筑物的影響,有效的通信距離為30m左右。因此利用該系統能實現小范圍(如室內環境)將DMX512有線傳輸轉變為無線傳輸。為了延長系統傳輸距離,可以考慮在射頻收發單元增加功放模塊,在保證燈光數據實時傳輸的條件下,降低通信速率,提高系統傳輸的穩定性。
發布評論請先 登錄
相關推薦
評論