舞臺燈光控制器
舞臺燈光控制器,舞臺燈光,控制器
舞臺燈光控制器 摘要 嵌入式系統(tǒng)是當今最熱門的概念之一,它誕生于微型計算機,是嵌入到對 象系統(tǒng)中,實現(xiàn)嵌入對象智能化的計算機應用系統(tǒng)。本舞臺燈光控制器就是嵌 入式系統(tǒng)在生活中的一個小小應用,它采用的嵌入式微控制器為 LPC2300 系列 ARM,并使用了實時操作系統(tǒng) μC/OS-II。整個系統(tǒng)分為兩部分,主控制器和燈 光節(jié)點??刂破骱凸?jié)點之間的通信使用了主流的舞臺燈光控制協(xié)議 DMX512。 控制器設有良好的人機界面,可完成對各節(jié)點燈光色彩的編輯,多種現(xiàn)場效果 的存儲與還原,并設有多個命令,可依據(jù)現(xiàn)場氣氛的不同制作繽紛的特技效果。 節(jié)點使用 NXP 推出的 LED 驅(qū)動芯片 PCA9635 來驅(qū)動 4 個 RGB LED 模擬舞臺 燈光。 關(guān)鍵詞:舞臺燈光控制;DMX512 協(xié)議;嵌入式系統(tǒng);μC/OS-II 目 錄 1 緒論 ......................................................................................................................................1 1.1 舞臺燈光控制技術(shù)的發(fā)展以及 DMX512 的產(chǎn)生 .....................................................1 1.2 嵌入式系統(tǒng)概述 ...........................................................................................................2 2 硬件電路設計 ......................................................................................................................4 2.1 電源部分電路 ...............................................................................................................4 2.2 TINYARM T23 工控板介紹 .........................................................................................5 2.3 ISP 跳線及核心板復位電路 ........................................................................................7 2.4 RS232 通信電路 ...........................................................................................................8 2.5 JTAG 接口電路 ............................................................................................................8 2.6 LCD 驅(qū)動電路設計 ......................................................................................................9 2.7 LED 驅(qū)動電路設計 ......................................................................................................9 2.8 RS485 通信電路 .........................................................................................................11 2.9 從機地址選擇電路 .....................................................................................................14 2.10 狀態(tài)指示燈及按鍵電路 .............................................................................................15 3 控制器軟件設計 ................................................................................................................16 3.1 整體軟件分析與設計 .................................................................................................16 3.2 鍵盤掃描程序分析設計 .............................................................................................18 3.3 人機界面任務 .............................................................................................................19 3.4 DMX512 數(shù)據(jù)發(fā)送任務設計 ....................................................................................25 3.5 數(shù)據(jù)更新任務 .............................................................................................................28 4 節(jié)點軟件設計 ....................................................................................................................29 4.1 DMX512 數(shù)據(jù)包解析程序 ........................................................................................29 4.2 PCA9635 控制 ............................................................................................................30 5 設計總結(jié) ............................................................................................................................35 參考文獻 ...................................................................................................................................36 致謝 ...........................................................................................................................................37 附錄 A 電路原理圖 .................................................................................................................38 A.1 原理圖 A.....................................................................................................................38 A.2 原理圖 B.....................................................................................................................39 1 緒論 本設計主要研究的是現(xiàn)代嵌入式技術(shù)在舞臺燈光控制系統(tǒng)中的應用。當今 舞臺燈光控制系統(tǒng)大都是基于 DMX512 通信協(xié)議的數(shù)字控制系統(tǒng),那么究竟什 么是 DMX512 通信協(xié)議?什么是嵌入式系統(tǒng)? 1.1 舞臺燈光控制技術(shù)的發(fā)展以及 DMX512 的產(chǎn)生 隨著電視事業(yè)的不斷發(fā)展壯大和舞臺演出市場的日益活躍,以及人們欣賞 水平的不斷提高,舞臺設計越來越受到專業(yè)人士的重視。而舞臺燈光作為舞臺 設計的一部分在很大程度上影響著整個現(xiàn)場的效果,這使得現(xiàn)代舞臺燈光系統(tǒng) 設計變得越來越復雜,舞臺燈光控制技術(shù)也應運而生。 回顧舞臺燈光控制技術(shù)的發(fā)展歷程,大體可以分為三個階段:原始控制技 術(shù)階段;模擬控制技術(shù)階段;數(shù)字化控制技術(shù)階段。 最初的原始控制技術(shù)時期,舞臺燈光的控制相當麻煩。演出過程中,在舞 臺四周布滿大大小小的各式各樣的用手動控制開關(guān),每一盞燈需要一個開關(guān), 并且還要鋪設大量的燈線,其工作量是可想而知的。受控的燈具也只有亮滅兩 種狀態(tài),根本不可能調(diào)光,提供的純粹是單純的照明。這樣的光燈控制系統(tǒng)是 很難顧及到舞臺的藝術(shù)效果的。 隨著自動化技術(shù),電子技術(shù)和半導體技術(shù)的應用,把可控硅技術(shù)應用到漏 光器中,產(chǎn)生了硅箱,這標志著模擬調(diào)光時期的到來。這種技術(shù)是通過模擬調(diào) 光臺(實際上是一個個電位器)輸出的 0~10V 的模擬信號,控制可控硅的導通 角來完成燈具調(diào)光功能的,它能夠做到每一個燈具有不同亮度輸出,但這種技 術(shù)需要一個推桿對應一個調(diào)光回路,同時也需要連接一條信號線。可以想象一 下,如果一臺演出需要控制 100 個調(diào)光回路,就要有一臺具有 100 個電位器推 子的調(diào)光臺,同時還需要連接 100 條信號控制線,這樣的調(diào)光系統(tǒng)的組建和控 制都是相當麻煩的事。這種模擬調(diào)光方式只能適應于一些小型的演出活動。 隨著時間的推移,電視事業(yè)不斷壯大,舞臺演出市場日益活躍,這對舞臺 燈光控制系統(tǒng)提出也更高的要求。到了 20 世紀 80 年代數(shù)字化技術(shù)的應用和普 及產(chǎn)生了新一代的燈光控制技術(shù),即 DMX512 數(shù)字信號控制技術(shù)。DMX512 數(shù) 字信號協(xié)議于 1986 年,首先由美國劇院研究機構(gòu)(USITT)提出,后來經(jīng)過進 一步的改進,于 1990 年正式公布。它利用電腦系統(tǒng)來完成整個燈光的控制,通 過一條信號線就可同時輸出多路串行數(shù)字信號,可以任意設置推桿與燈具之間 的對應關(guān)系。這種技術(shù)大大簡化了燈光的控制方式,為大規(guī)模舞臺燈光控制提 供了可能。從此,這種數(shù)字控制技術(shù)得到了廣泛應用。 2 硬件電路設計 為簡化設計、節(jié)約成本,對控制器電路和節(jié)點電路進行了綜合,使得控制 器和節(jié)點采用的是同樣的電路,以下對電路中的各模塊進行分析介紹。 2.1 電源部分電路 本設計共需要三組電源輸入:5V 的系統(tǒng)電源、3.3V 的模擬電源、3.3V 的 數(shù)字電源。 系統(tǒng)板輸入電壓為 9∨直流,所需系統(tǒng)電壓為 5∨,且?guī)в幸壕н@樣的大功率器 件,若選用普通的線性穩(wěn)壓器件,則電源效率最高僅為 55.6%,其發(fā)熱量可想 而知。故 5∨系統(tǒng)電壓不能采用線性穩(wěn)壓器件。LM2575 是一種高效率的開關(guān)穩(wěn) 壓器件,資料顯示當其輸入電壓為 12∨,輸出電流為 1A 時,其效率可高達 77%, 但開關(guān)電源也有開關(guān)電源的缺點,其輸出紋波較線性穩(wěn)壓器件大。彌補這一缺 點最好的方法是再在后面加一級線性穩(wěn)壓。 核心板 TinyARM T23 的供電由低壓差模擬穩(wěn)壓器件 SPX1117M3-3.3 供給, 雖然效率不高但 TinyARM T23 的功率小,實際運行過程中 SPX1117 基本保持 室溫。 2.2 ISP 跳線及核心板復位電路 為使調(diào)試過程更加順利,在底板上添加了 ISP 跳線選擇與核心板復位電路, 如 圖 2.1 所示。 圖 2.1 ISP 選擇電路與核心板復位電路 當 LPC2300 芯片加密鎖死時,通過 ISP 對芯片內(nèi)部 Flash 進行整片擦除, 可解除芯片的鎖死狀態(tài)。 圖中的 U2 為 ESD 保護芯片,可屏蔽人體靜電對核心芯片帶來的危害。 由于 LPC2300 系列芯片自來掉電復位功能,故可省略常用復位電路中與 R4 并聯(lián)的放電二極管。 2.3 RS232 通信電路 本設計中的 RS232 電路主要有兩個用途,一是用于 ISP 下載,二是用于與 上位計算機通信,將調(diào)光信息反饋給上位機。 RS232 通信電路如 圖 2.2 所示。 圖 2.2 RS232 通信電路 2.4 JTAG 接口電路 JTAG 為一種硬件仿真調(diào)試,需要配合 ADS1.2 集成開發(fā)環(huán)境、EasyJTAG- H 仿真器、H-JTAG、H-FLASHER 一起使用。其接口電路如 圖 2.3 所示。 圖 2.3 JTAG 接口電路 2.5 LCD 驅(qū)動電路設計 本設計選用液晶的型號為 TG12864E-02B,它采用的內(nèi)部驅(qū)器為 ST7920。ST7920 的特點在于它包括 64×16 位元字元顯示 RAM(DDRAM 最多 可顯示 16 字元×4 行)及 64×256 位元繪圖顯示 RAM(GDRAM) ,可實現(xiàn)圖 形、文字的混合顯示。 液晶驅(qū)動電路如 Error! Reference source not found.所示。圖中三極管 8050 用于控制液晶的背光。 2.6 LED 驅(qū)動電路設計 2.6.1 LED 驅(qū)動器 PCA9635 PCA9635 是 NXP 公司生產(chǎn)的一款 I2C 總線 LED 驅(qū)動器,共有 16 路輸出, 輸出電流可達到 5mA,吸入電流可達到 25mA,可直接驅(qū)動 LED。適應于作為 RGB LED 或 RGBA LED 的調(diào)色驅(qū)動。其特性如下: (1) 16 路 LED 輸出,每一路輸出均可配置為:開,關(guān),獨立亮度控制, 獨立亮度+整體閃爍 /明暗控制; (2) 輸出可編程為推挽或開漏結(jié)構(gòu); (3) 1MHz 快速 I2C 總線,且 SDA 輸出電流可高達 30mA; (4) 256 級獨立亮度控制(97 K Hz PWM) ; (5) 256 級集體亮度控制(190 Hz PWM) ; (6) 256 級集體閃爍控制,閃爍頻率可在 24Hz 到 10.73S 之間調(diào)節(jié); (7) 7 個地址引腳使得在同一個 I2C 總線上可連接 126 個 PCA9635; (8) 內(nèi)部自帶 25 M Hz 晶振,無需外部元件; (9) 可通過 I2C 總線對 PCA9635 軟復位; (10) 上電復位; (11) SDA/SCL 輸入噪聲過濾; (12) 工作電壓范圍:2.3∨到 5.5∨; (13) 工作溫度:-40 oC 到+85 oC; 2.6.2 PCA9635 驅(qū)動電路 PCA9635 驅(qū)動電路如 圖 2.4 所示。 圖 2.4 PCA9635 驅(qū)動電路 由于 I2C 總路線是開漏輸出的,所以在使用 I2C 接口的時候,需要在外部 連接上拉電阻,如上圖中 R60、R61。由于本設計中各節(jié)點只連接一個 PCA9635,故可將 PCA9635 地址固定。為適應大電流燈具的要求,在 PCA9635 的外部仍添加了驅(qū)動電路,如 圖 2.5 所示。 圖 2.5 LED 驅(qū)動電路 圖中電阻阻值的確定由具體的 LED 參數(shù)決定。如 圖 2.6LED 壓降測試電路 可粗略測得紅燈的壓降為 1.82∨,綠燈的壓降為 2.5∨,藍燈的壓降為 2.9∨。 圖 2.6LED 壓降測試電路 下面以藍色 LED 為例計算圖 2.7 中發(fā)射極電阻 R88 與基極電阻 R56 的值。 為使藍色 LED 點亮,三極管 8550 的射極電壓 Ue 應在 2.9∨以上,假設 Ue 為 2.9∨,則流過 R88 的電流: (2-1)8923R.Ie?? 若取 Ie 為 4 mA ,則 R88 需小于 100Ω。從 8550 的資料中可以查得其工作 在放大區(qū)時放大倍數(shù) β 約為 100,則可得出三極管基極電流 (2-2)mAIeb04.?? 則 R56 的取值 (2-3)???105.04.7925643R 經(jīng)實踐驗證,R88 取 100Ω,R56 取 47KΩ 時,藍燈可得到較好的效果。 同樣的過程,可得到紅、綠燈的基極與發(fā)射極電阻的取值。 2.7 RS485 通信電路 DMX512 協(xié)議中規(guī)定其通信接口采 EIA-485 標準。 2.7.1 RS-232、RS-422 、 RS485 協(xié)議簡介 RS-232、RS-422 與 RS-485 都是串行數(shù)據(jù)接口標準,最初都是由電子工業(yè) 協(xié)會(EIA)制訂并發(fā)布的,RS-232 在 1962 年發(fā)布,命名為 EIA-232-E,作為 工業(yè)標準,以保證不同廠家產(chǎn)品之間的兼容。RS-422 由 RS-232 發(fā)展而來,它 是為彌補 RS-232 之不足而提出的。為改進 RS-232 通信距離短、速率低的缺點, RS-422 定義了一種平衡通信接口,將傳輸速率提高到 10Mb/s,傳輸距離延長 到 4000 英尺(速率低于 100kb/s 時) ,并允許在一條平衡總線上連接最多 10 個 接收器。RS-422 是一種單機發(fā)送、多機接收的單向、平衡傳輸規(guī)范,被命名為 TIA/EIA-422-A 標準。為擴展應用范圍, EIA 又于 1983 年在 RS-422 基礎上制 定了 RS-485 標準,增加了多點、雙向通信能力,即允許多個發(fā)送器連接到同一 條總線上,同時增加了發(fā)送器的驅(qū)動能力和沖突保護特性,擴展了總線共模范 圍,后命名為 TIA/EIA-485-A 標準。由于 EIA 提出的建議標準都是以“RS”作 為前綴,所以在通訊工業(yè)領(lǐng)域,仍然習慣將上述標準以 RS 作前綴稱謂。 RS-232、RS-422 與 RS-485 標準只對接口的電氣特性做出規(guī)定,而不涉及 接插件、電纜或協(xié)議,在此基礎上用戶可以建立自己的高層通信協(xié)議。EIA-485 通信標準的性能如所示: 2.7.2 RS-485 電路分析 RS-485 接口電路如 圖 2.8 所示。 圖 2.8 RS485 接口電路 圖 2.8 中 U9 為 ESD 保護二極管,能有效保護 SP485R 芯片。R101 為通信 阻抗匹配電阻,減少由于阻抗不匹配而引起的反射、噪聲,能有效提高 RS-485 通信的可靠性。 圖 2.8 中 SIN 為 SP485R 通信接口方向控制線,當 SIN 為高電平時, SP485R 配置為輸出,為低電平時,SP485R 配置為輸入。為解決上電時 RS-485 總線沖突問題,需添加上電抑制電路,如 圖 2.9 所示。上電時 SIN 輸出低電平, SP485R 配置為輸入。由 EWB 仿真可得到抑制時間 t 約為 2S。 圖 2.9 SP485 上電抑制電路 圖 2.8 中 RRXD、TTXD 為 SP485R 的數(shù)據(jù)讀寫信號線,為隔離外部噪聲, 保護控制芯片,在 SP485R 與核心板之間加入了隔離電路,如 Error! Reference source not found.所示。 圖中使用到的 ADUM1201 為 ADI 公司推出的一款磁隔離芯片,它采用的 icoupler 技術(shù)是基于芯片尺寸的變壓器。 ADUM1201 所隔離的兩端有各自的電 源和參考地,電源電壓為 2.7-5.5V。相對于普通的光隔離, ADUM1201 具有 如下特點: (1) 速度更高:最高速率可以達到 25mbps; (2) 功耗更低:功耗低于同數(shù)據(jù)傳輸率時傳統(tǒng)光電隔離器的 1/10,最小 工作電流為 0.8mA; (3) 性能更高:時序精度,瞬態(tài)共模抑制力,通道間匹配程度均優(yōu)于傳 統(tǒng)光電隔離器; (4) 體積更小:集成度更高,印制電路板(pcb)面積為傳統(tǒng)光電隔離器 的 40%; (5) 價格更低:每通道成本為傳統(tǒng)光電隔離器的 40%; (6) 應用更靈活:與傳統(tǒng)光電耦合器不同的是,多通道 icoupler 數(shù)字隔離 器能在同一芯片內(nèi)提供正向和反向通信通道。 RS-485 通信電源電路如 圖 2.10 所示。采用的是致遠電子推出一款高精度 DC-DC 電源模塊。 圖 2.10 RS-485 電源電路 2.8 從機地址選擇電路 因從機無需接液晶,所以將從機地址選擇線與液晶部分信號線復用。各地 址線均已連接上拉電阻。從機地址設置范圍 0 x00~0 x1FF,電路如 圖 2.11 所示, S1 為拔碼開關(guān)。 圖 2.11 從機地址選擇電路 注:用作主機時需斷開 J23。 2.9 狀態(tài)指示燈及按鍵電路 本設計共設置了 4 個狀態(tài)指示燈和 6 個按鍵。電路如所示。 圖 2.12 狀態(tài)指示燈及按鍵電路 3 控制器軟件設計 3.1 整體軟件分析與設計 整個系統(tǒng)分為主控制器和節(jié)點兩部分。由設計要求分析可知,主控制器需 要完成人機交流與 DMX512 數(shù)據(jù)的發(fā)送,節(jié)點需要完成 DMX512 數(shù)據(jù)的接收 與舞臺燈光的控制??刂破骱凸?jié)點所要完成的每一個任務都對實時性提出了很 高的要求。DMX512 的協(xié)議規(guī)定,完整的 DMX512 數(shù)據(jù)包包含一個中斷標識位, 一個中斷后標識位,一個起始數(shù)據(jù)和 512 個調(diào)光數(shù)據(jù),其數(shù)據(jù)發(fā)送的波特率為 250Kbps,計算可得整個數(shù)據(jù)包的發(fā)送時間長達 0.025 鈔。對于主控制器來說, 若在系統(tǒng)設計時使用前后臺系統(tǒng),那么控制器的人機交流將難以得到及時的響 應,為此主控制操作系統(tǒng)宜采用實時操作系統(tǒng)。對于節(jié)點來說,DMX512 數(shù)據(jù) 的接收任務可放在 UART 中斷中處理,不會影響到控制的實時性,這樣節(jié)點即 可采用前后臺系統(tǒng)也可采用實時操作系統(tǒng)。 μC/OS-II 一個源碼公開、可移植、可固化、可裁剪、占先式的實時多任務操作系統(tǒng), 且在高校教學使用是不需要申請許可證的。因此,主控制器的實時操作系統(tǒng)選用 μC/OS- II。 3.1.1 控制器軟件設計系統(tǒng)框圖 分析設計要求,控制器共需要完成兩件事情:人機交流;數(shù)據(jù)發(fā)送。人機 交流又可以劃分為三個任務:鍵盤掃描;人機界面;數(shù)據(jù)更新。綜上所述,控 制器共設計四個任務,其系統(tǒng)框圖如 圖 3.1 所示。 圖 3.1 控制器系統(tǒng)框圖 3.2 鍵盤掃描程序分析設計 常用的鍵值采集方案有兩種:中斷服務;軟件查詢。 3.2.1 中斷服務 LPC2300 系列 ARM 的 P0 和 P2 端口的每一個引腳都可以配置為上升沿中 斷或者下降沿中斷。P0 和 P2 端口的中斷通道與外部中斷 3(EINT3 )相同。 在硬件設計中,按鍵 0~6 分別與 P0.9~P0.17 相連,因此,只需將 P0.9~P0.17 引腳配置為下降沿中斷,在中斷的服務程序中即可完成按鍵的采集 任務。但由于在硬件設計時,按鍵沒有添加去抖電容,按鍵去抖的任務就需要 由軟件來完成,中斷服務程序中應添加一個大約 10 毫秒的沿時程序。但 μC/OS-II 規(guī)定在中斷服務程序中,不能使用系統(tǒng)延時函數(shù) OSTimeDly( ),這樣 就帶來了大量系統(tǒng)資源的浪費。一旦有按鍵按下,系統(tǒng)中的其它任務都會停下 來,包括數(shù)據(jù)發(fā)送任務。這樣的情況對于保證 DMX512 數(shù)據(jù)的完整性是非常不 利的。所以按鍵的采集不能采用中斷的方式。 3.2.2 軟件查詢 按鍵的軟件查詢程序流程圖如 圖 3.2 示。 圖 3.2 鍵盤掃描流程圖 在 μC/OS-II 操作系統(tǒng)中只能使用間隔查詢方式,否則比查詢?nèi)蝿諆?yōu)先級低 的任務將得不到運行的機會。從程序中可以看到,每次查詢都會間隔一個 OSTimeDly(3),即每隔 15mS 查詢一次,雖然查詢鍵值浪費了一定的系統(tǒng)資源, 但對于運行在 48MHz 系統(tǒng)時鐘下具有三級流水線的 32 位處理器來說,這樣的 查詢過程是微不足道的。從 AXD 中可以看到到整個查詢過程只用了 5 條匯編 指令。 在得到鍵值后,調(diào)用 OSMboxPost( )函數(shù),將鍵值以消息郵箱的形式發(fā)送給 人機界面任務,待人機界面任務做進一步的處理。然后再次調(diào)用系統(tǒng)延時函數(shù) OSTimeDly(40)延時 0.2 秒,作為兩次按鍵的最小間隔時間。 3.2.3 調(diào)光功能的實現(xiàn) 受液晶尺寸限制,調(diào)光功能菜單被分為兩級,第一級完成節(jié)點 node 和燈號 nightnum 的選擇,第二級完成對應燈號 Red、Green、Blue 三路數(shù)據(jù)的修改。 在這里設置了三個重要變量:changedsig、changedadr、changeddata。 (7) changedsig:數(shù)據(jù)改變標致; (8) changedadr:改變數(shù)據(jù)的地址,即全局變量 DMX_512 數(shù)據(jù)的下標; (9) changeddata:改變后的新數(shù)據(jù)。 為了簡化設計,將對這三個數(shù)據(jù)的修改程序直接融入到了液晶界面中。對 調(diào)光數(shù)據(jù)的修改總是會伴隨著界面的變化的,所以這樣的融入相對來說比較省 事。 當有調(diào)光數(shù)據(jù)的修改時,changedsig 標致置 1,并將對應的修改值付給 changeddata, changedadr 的值由三個因素決定:節(jié)點號 node;燈號 nightnum; 頁內(nèi)標致 page5sig。具體計算方法如 程序清單 3.1 所示。 程序清單 3.1 Xrate ++; /*修改紅色數(shù)據(jù) */ changedsig = 1; /*置數(shù)據(jù)改變標致 */ changeddata = (Xrate-1)<>1]; /* 計算修改地址 */ 其中 Xrate 為調(diào)光數(shù)據(jù),取值范圍 1~16。X 可代表 R、G、B。函數(shù) GetNodeAdr 根據(jù)節(jié)點號 node 從 TinyARM T23 自帶的 EEPROM 中讀地址設置 信息,返回值為對應的從機地址。數(shù)組 ADRMAP 是根據(jù)從機的硬件連接方式 而預設的地址偏移量。 液晶界面更新完成后,依據(jù) changed 系列變量的值,即可完成對 DMX_512 數(shù)據(jù)的修改。對調(diào)光數(shù)據(jù)的修改是實時顯示的,調(diào)光效果及時的反饋給用戶, 方便用戶做進一步的修正。 3.2.4 效果選擇功能的實現(xiàn) 本設計中涉及到兩類燈光效果。一類效果控制器并不對調(diào)光數(shù)據(jù)做修改, 只發(fā)出命令字,而由節(jié)點接收到命令字后做出相應的變換。效果編號 1~5 都是 這種類型。而另一種效果是由控制器直接對光路數(shù)據(jù)進行修改,節(jié)點不接收命 令,不做變換,只刷新光路數(shù)據(jù)。效果編號 6 就屬于這種類型。 在做出具體的效果變換之前,需要先完成效果編號 vision、效果速度 visionspeed 的設置。效果的變化不是實時的,當按下確認鍵后,效果才會更新。 效果編號 vision 的取值范圍為 0~6。0 代表無效果, 1 和 2 為兩種樣式不同的閃 爍效果,3 為漸明效果,4 為漸暗效果,5 為魔術(shù)色效果,6 為隨機數(shù)效果。 程序清單 3.2 為在效果做出變換時,對 changedsig、 changeddata、 chagedadr 做出的相應設置。 程序清單 3.2 changedadr = 0 x8000; /*將 changedadr 最高位置 1 作為效 果標致*/ if(vision == 6){ OSSemPost(SemRand); /*隨機數(shù)效果開關(guān)*/ } changedsig = 4; /*四個節(jié)點均需修改命令字*/ changeddata = vision|(((visionspeed<<1)-1)<<3); 效果 6,隨機數(shù)效果是完全由控制器來完成的,控制器產(chǎn)生隨機數(shù),并修 改相應的 DMX_512 數(shù)據(jù)。程序中用信號量 SemRand 作為開關(guān)量。第一次選擇 效果 6 為開,第二次選擇效果 6 為關(guān)。 3.2.5 現(xiàn)場功能的實現(xiàn)及其方案分析 現(xiàn)場功能的實現(xiàn)依賴于現(xiàn)場數(shù)據(jù)的存儲,本設計所使用的 TinyARM T23 核 心芯片為 LPC2366,核心板上配有 FM24C02(EEPROM) ,數(shù)據(jù)的存儲有兩種 方案: (10) 使用 LPC2300 系列的 IAP(在應用編程)功能,將現(xiàn)場數(shù)據(jù)存至 LPC2366 的 Flash 中; (11) 使用 FM24C02。 首先分析第一種方案,LPC2366 共有 256KB 的 Flash 存儲空間,被劃分為 14 個扇區(qū),其分區(qū)情況如 表 3.1 所示。 表 3.1LPC2366 扇區(qū)分布情況 扇區(qū)號 扇區(qū)規(guī)格 (KB) 地址范圍 0 4 0 x0000 0000 – 0 x0000 0FFF 1 4 0 x0000 1000 – 0 x0000 1FFF 2 4 0 x0000 2000 – 0 x0000 2FFF 3 4 0 x0000 3000 – 0 x0000 3FFF 4 4 0 x0000 4000 – 0 x0000 4FFF 5 4 0 x0000 5000 – 0 x0000 5FFF 6 4 0 x0000 6000 – 0 x0000 6FFF 7 4 0 x0000 7000 – 0 x0000 7FFF 8 32 0 x0000 8000 – 0 x0000 FFFF 9 32 0 x0001 0000 – 0 x0001 7FFF 10 32 0 x0001 8000 – 0 x0001 FFFF 11 32 0 x0002 0000 – 0 x0002 7FFF 12 32 0 x0002 8000 – 0 x0002 FFFF 13 32 0 x0003 0000 – 0 x0003 7FFF 14 32 0 x0003 8000 – 0 x0003 FFFF 因為在利用 IAP 向片內(nèi) Flash 存儲器寫入數(shù)據(jù)時,需要先對數(shù)據(jù)進行擦寫, 因此數(shù)據(jù)區(qū)和代碼區(qū)不能重合,否則有可能造成系統(tǒng)崩潰。倘若用戶程序代碼 加上操作系統(tǒng)代碼在 64KB 以內(nèi)(本系統(tǒng)代碼不會超過 64K) ,那么可以使用的 Flash 空間高達 192KB,如果現(xiàn)場數(shù)據(jù)完全存儲(512 字節(jié)) ,那么可存儲的現(xiàn) 場數(shù)多達 384 個。但是,F(xiàn)lash 的使用次數(shù)是有限的,對于在舞臺應用來說,現(xiàn) 場數(shù)據(jù)的存儲比較頻繁,所以使用片內(nèi) Flash 并不明智。且如果某一現(xiàn)場數(shù)據(jù) 需要修改,則同一扇區(qū)中所有現(xiàn)場數(shù)據(jù)將會被擦除(Flash 的擦除是基于扇區(qū)的) 。 分析第二種方案,使用 FM24C02 存儲現(xiàn)場,F(xiàn)M24C02 為 256B 的串行 EEPROM,雖然 EEPROM 的使用壽命夠長,但 256B 的空間很少,如果完全存 儲,連一個場景也存儲不了。要使用它,就必需對現(xiàn)場數(shù)據(jù)進行一些取舍,只 存儲 DMX512 中使用到的通道數(shù)據(jù)。如果設計的是 4 個節(jié)點,每個節(jié)點需要 13 字節(jié)的數(shù)據(jù),那么一個現(xiàn)場需要 52 個字節(jié)。256 個字節(jié)的 FM24C02 能存儲 4 個現(xiàn)場。雖然可存儲的現(xiàn)場很少,但用于演示還是夠了。所以最終我采用了方 案二。 3.2.6 地址設置 地址設置的目的是為了讓控制器知道自己應該修改的是 DMX512 中的哪個 位置的數(shù)據(jù),建立一個節(jié)點號與節(jié)點地址之間的映射關(guān)系,并且還要能實現(xiàn)設 置信息的存儲。地址的取值范圍為 0~511,一個地址需要占用兩個字節(jié),如果 設計的是四個節(jié)點,那么所有地址設置信息的存儲將占用 8 個字節(jié)。FM24C02 在進行現(xiàn)場存儲之后,還剩余一些沒有使用的字節(jié),剛好可以用來作為地址設 置的存儲空間。 3.2.7 DMX512 協(xié)議信號格式 DMX512 信號時序圖如 Error! Reference source not found.所示。 DMX512 信號的數(shù)據(jù)格式分為以下幾個部分: (12) IDLE( 空閑的) or NO DMX situation :當沒有 DMX 數(shù)據(jù)包輸出時, 將是一個高電平信號。 (13) BREAK:DMX 數(shù)據(jù)包的開始是一個至少 88 微秒的低電平輸出的預 報頭。根據(jù)經(jīng)驗,人們發(fā)現(xiàn)一個大于 88 微秒的 BREAK 將更有利于發(fā)送和 接收,一般在設計時將它設計為 120 微秒。 (14) MARK AFTER BREAK (MAB)書館:MAB 是 BREAK 后是一個 8 微 秒的高電平或 2 個脈沖。舊版本的 DMX 標準為 4 微秒或 1 個脈沖,在連 接老的控制臺時會產(chǎn)生數(shù)據(jù)的混亂。MAB 也可設置為 12 微秒。 (15) START CODE (SC) 起始碼:SC 是數(shù)據(jù)流開始的通道數(shù)據(jù),它具有 與通道數(shù)據(jù)相同的格式,一般為 11 個脈沖或 44 微秒。 (16) MARK TIME BETWEEN FRAMES (MTBF) :在每個通道起始位前 可以有 MTBF,為高電平,時間小于 1 秒。 (17) MARK TIME BETWEEN PACKETS (MTBP ) :在有效數(shù)據(jù)發(fā)送完畢 后發(fā)送高電平,時間小于 1 秒。 DMX512 數(shù)字信號由起始碼和 512 個數(shù)據(jù)幀組成。按串行方式發(fā)送和接收 數(shù)據(jù),數(shù)據(jù)幀內(nèi)包含一個開始位(低電平),8 位數(shù)據(jù)和兩個停止位(高電平),沒 有奇偶校驗,也就是說一個數(shù)據(jù)幀有 11 個位元。每一位的寬度是 4us,發(fā)送一 個幀需要 44us 的時間。由于每一位的時間是 4us,所以 DMX512 信號的波特 率為 250kb/s 。關(guān)于 DMX512 各部分的時間規(guī)定如 表 3.2 所示。 表 3.2 DMX512(1990)時間規(guī)定表 名稱 最小值 標準值 最大值 單位 中斷(Break) 88 88 1000000 μS 中斷后標識(MAB ) 8 μS 光路信息結(jié)構(gòu)寬度(Frame Widch) 44 μS 開始位(Start Bit) 4 μS 停止位(Stop Bit) 8 μS 光路信息碼間隔標識(MTBF) 0 沒有規(guī)定 1000000 μS 數(shù)據(jù)包間隔標識(MTBP) 0 沒有規(guī)定 1000000 μS 3.2.8 DMX512 格式的實現(xiàn)與方案比較 DMX512 協(xié)議的實現(xiàn)比較簡單,關(guān)鍵在于如何產(chǎn)生數(shù)據(jù)包前面 88 μS 的 Break(低電平)和 8μS 的 MAB(高電平) 。關(guān)于數(shù)據(jù)幀,只需將 UART 的波 特率設置為 250Kbps,發(fā)送數(shù)據(jù)的格式配置為 8 位數(shù)據(jù)位,2 位停止位,無奇 偶效檢位即可。 Break 與 MAB 的實現(xiàn)有兩種方案。方案一:讓對應的 I/O 口在輸出模式與 TXD 模式之間不停的轉(zhuǎn)換,配合定時器產(chǎn)生所需高低電平。方案二:對于 LPC2300 系列 ARM 還有另一種不需要模式轉(zhuǎn)換的方案,LPC2300 系列 ARM 的 UART 口在空閑時 TXD 引腳默認為高電平,當配置線控制寄存器 UnLCR[6] 為 1 時將使能發(fā)送間隔,TXD 引腳會被強制為低電平。 故采用方案二。有了發(fā)送間隔功能后,DMX512 格式的實現(xiàn)只需要一個合 適的定時器就可以完成了。88μS 和 8μS 的定時均可由 Timer1 產(chǎn)生。 DMX512 發(fā)送任務的流程圖如 圖 3.3 所示。 圖 3.3 DMX512 數(shù)據(jù)發(fā)送程序流程圖 在 UART2 的初始化時使能發(fā)送 FIFO,發(fā)送數(shù)據(jù)時連續(xù)發(fā)送 8 字節(jié)數(shù)據(jù), 然后等待發(fā)送中斷標致,這樣有利于提高系統(tǒng)資源利用率。 使用邏輯分析儀 LA1016 采集到的 UART2 TXD 輸出波形如 Error! Reference source not found.所示,從圖中可以看出,時序完全符合 DMX512 協(xié) 議的要求。 3.3 數(shù)據(jù)更新任務 從前面章節(jié)的介紹可以看出,單字節(jié)的數(shù)據(jù)更新已經(jīng)由人機界面任務完成 了,這里數(shù)據(jù)更新任務所要完成的是使用隨機數(shù)效果“6”時所需要的大量數(shù)據(jù) 的更新。當數(shù)據(jù)更新任務在接收到效果“6”開啟信號后,調(diào)用 rand 函數(shù)得到 隨機數(shù),然后對 DMX_512 中的對應數(shù)據(jù)進行更新。 4 節(jié)點軟件設計 節(jié)點所要完成的任務是解析控制器傳來的 DMX512 數(shù)據(jù)包,提取出屬于自 己的部分,依據(jù)數(shù)據(jù)內(nèi)容對 PCA9635 進行相應的控制。節(jié)點軟件采用前后臺系 統(tǒng)。 4.1 DMX512 數(shù)據(jù)包解析程序 4.1.1 如何解析 DMX512 從圖 4.1 DMX512 協(xié)議的時序圖可以看出,解析 DMX512 的關(guān)鍵在于如何 識別 DMX512 的起始標致 Break 。 Break 是一個至少 88μS 的低電平,也許我們可以采用下降沿中斷與定時器的 配合來識別 Break,但這樣過于麻煩,對于 LPC2300 系列 ARM 來說,有一個 更簡便的方法可以實現(xiàn)這一點。線狀態(tài)寄存器 UnLSR 的第 3 位為幀錯誤標致位。 在接收到 RXD 上的下降沿后,UART 會按照設定的波特率采集 RXD 引腳上的 電平,當發(fā)現(xiàn)停止位(下降沿以后的第 36μS 至 44μS 之間)為低平時,幀錯 誤標致將置位,若已經(jīng)設置接收線狀態(tài)中斷,此時將產(chǎn)生線狀態(tài)中斷,具體的 中斷原因可以從線狀態(tài)寄存器 UnLSR 中讀取。 在識別出起始標致 Break 之后,DMX512 數(shù)據(jù)可按照普通的串口數(shù)據(jù)進行 接收了,中斷后標致 MAB 不會對串口數(shù)據(jù)的接收產(chǎn)生任何影響。從 DMX512 中解析出來的有用數(shù)據(jù)直接存放在全局變量 UARTData[13]中。UART2 的中斷 服務程序流程圖如 圖 4.2 所示。 圖 4.2 UART2 中斷服務流程圖 4.2 PCA9635 控制 4.2.1 PCA9635 寄存器簡介 PCA9635 內(nèi)部共含有 29 個寄存器,其中控制寄存器(Control register)不 參與編址。各個寄存器的說明如下: (18) 控制寄存器(Control register ) 通過 I2C 總線寫入到 PCA9635 的第二個字節(jié)(第一個字節(jié)為 I2C 從機地址) 將被存入此寄存器,它決定 I2C 總線上隨后的數(shù)據(jù)存放在哪些寄存器中。 Control register[7~5]為地址遞增控制位。 Control register[4~0]的值為 PCA9635 內(nèi) 部寄存器的地址。 (19) 模式寄存器(MODE1,MODE2) 模式寄存器 MODE1 片內(nèi)地址 0 x00,其各位的詳細說明見 表 4.1。 表 4.1 MODE1 寄存器位描述 位 符號 功能 7 AI2 只讀,同 Control register[7] 6 AI1 只讀,同 Control register[6] 5 AI0 只讀,同 Control register[5] 4 SLEEP 0 :普通模式 1*:節(jié)能模式,內(nèi)部振蕩器關(guān)閉 3 SUB2 0*:子地址 2 無效 1 :子地址 2 有效 2 SUB1 0*:子地址 1 無效 1 :子地址 1 有效 1 SUB0 0*:子地址 0 無效 1 :子地址 0 有效 0 ALLCALL 0*: ALLCALL 地址無效 1 : ALLCALL 地址有效 模式寄存器 MODE2 片內(nèi)地址 0 x01,其各位的詳細說明見 表 4.2。 表 4.2 MODE2 寄存器位描述 位 符號 功能 7 - 保留 6 - 保留 5 DMBLNK 0*:亮度整體控制 1 :閃爍整體控制 4 INVRT 0*:輸出邏輯不反向 1 :輸出邏輯反向 3 OCH 0*:當 I2C 總線出現(xiàn)停止位時輸出更新 1 :當 I2C 總線出現(xiàn)應答位時輸出更新 2 OUTDRV 0 :輸出配置為開漏結(jié)構(gòu) 1*:輸出配置為推挽結(jié)構(gòu) 1 to 0 OUTNE[1 :0] 00 :當 =1 時輸出 LEDn = 0OE 01*:當 =1 時輸出 LEDn = 1(OUTDRV=1)或高阻態(tài) (OUTDRV=0 ) 10 :當 =1 時輸出 LEDn 為高阻態(tài) 11 :保留 4.2.2 各種效果的設計 節(jié)點接收控制器傳來的 13 個字節(jié),第一個字節(jié)中含有 0~5 六種效果命令, 以及效果的速度,后面的 12 個字節(jié),節(jié)點不做處理,直接送入 PCA9635 的 PWMn 寄存器控制前 12 路 PWM 輸出的占空比。如 圖 4.3 所示。 圖 4.3 主從數(shù)據(jù)協(xié)議 節(jié)點設計的五種效果分別為:閃爍效果(兩種) 、漸明效果、漸暗效果、魔 術(shù)色效果。 閃爍效果是通過修改 PCA9635 的寄存器 LEDOUTn 來實現(xiàn)的,要點亮哪一 位 LED,就將 LEDOUTn 中對應的兩位置 1,否則置 0。按照想要的樣式,建 立一個二維數(shù)組,在定時器發(fā)生匹配中斷后,按照不同的偏移量將數(shù)組中的樣 式送入 LEDOUTn 即可,閃爍頻率由中斷頻率決定。 漸明漸暗效果是通過修改 PCA9635 的整體亮度控制寄存器 GRPPWM 來實 現(xiàn)的。漸明時,向 GRPPWM 中寫入依次增大的值。漸暗時向 GRPPWM 中寫 入依次減小的值。值的修改也是發(fā)生在定時器匹配中斷之后,閃爍頻率由中斷 頻率決定。 為了實現(xiàn)魔術(shù)色效果,首先需建立一個包含 256 個元素的數(shù)組,數(shù)組內(nèi)元 素值由 0 遞增到 254,步進為 2,然后由 254 遞減到 0,步減為 2。按照不同的 偏移基址+ 偏移量來讀取數(shù)組中的數(shù)據(jù)送入到 PCA9635 中控制紅、綠、藍三色 亮度,完成魔術(shù)色的合成。偏移量在定時器匹配中斷時遞增,色彩變化速度由 中斷頻率決定。 PCA9635 控制任務的流程圖如 圖 4.4 所示。 圖 4.4 PCA9635 控制任務流程圖 流程圖中數(shù)組 PCA9635_DATA 為將要通過 I2C 總線寫入到 PCA9635 的值, PCA9635_DATA[0]寫入到 PCA9635 控制寄存器 Control register ,恒為 0 x82。 根據(jù)前面的介紹可知,PCA9635_DATA 后面的值將依次寫入 PWMn、GRPPWM、GRPFREQ、LEDOUTn 中。 參考文獻 [1] 周立功.μC/OS-II 微小內(nèi)核分析與程序設計——基于 LPC2300[M].廣州 致遠電子有限公司,2007:27-168. [2] 周立功.深入淺出 ARM7——LPC2300[M].廣州致遠電子有限公司, 2007:41-254 . [3] 周立功.ARM 嵌入式系統(tǒng)應用技術(shù)筆記——基于 LPC2300[M].廣州致遠 電子有限公司,2007:13-197. [4] 錢明光.DMX512 信號格式及其應用 [J].廣播電視技術(shù),2006,(05):52- 54. [5] 王京池.舞臺燈光控制技術(shù)與 DMX512[J].廣播與電視技術(shù),2004,(03): 80-84. [6] 管保安.微機燈光控制系統(tǒng)的設計[J] .電子產(chǎn)品世界,2002,(22):56-57. [7] 陳國義,胡清亮,梁國芹,廖偉民.燈光控制網(wǎng)絡標準協(xié)議的探討[J].光 源與照明,2005,(01):33-35. [8] 陳國義,胡清亮,梁國芹,廖偉民.燈光控制網(wǎng)絡標準協(xié)議的探討(續(xù)) [J].光源與照明,2005 ,(02):30-32. [9] 夏繼強,沈德金,邢春香.單片機實驗與實踐教程(二)[M].北京航空 航天大學出版社,2006:13-211. [10] 張燦.單片機在舞臺燈光控制系統(tǒng)中應用[J].電子測量技術(shù),2003,(06): 50-52. [11] 方福波,劉有源,陳定方.DMX512 控制協(xié)議及其實現(xiàn)[J] .照明工程學報, 2002,(03) : 58-61. [12] 陳國義.網(wǎng)絡時代燈光控制的現(xiàn)狀和展望——“DMX512”、 “ACN”和’Art- Net”三種協(xié)議淺析[J].照明工程學報,2004,(04):30-34 [13] 馮立杰,傅民倉,李文波.DMX512 與 CAN 總線混合通信網(wǎng)的實現(xiàn)方法 [J].現(xiàn)代電子技術(shù), 2006,(08):98-99. [14] NXP.Semiconductors User manual UM10237_1 Rev.01 10 December 2007[EB/OL]. PC2364_65_66_67_68_4],2008-03-05. [15] Dan Mills.DMX512FAQ[EB/OL] . 附錄 A 電路原理圖
收藏
編號:2681595
類型:共享資源
大小:3.67MB
格式:RAR
上傳時間:2019-11-28
15
積分
- 關(guān) 鍵 詞:
-
舞臺燈光
控制器
- 資源描述:
-
舞臺燈光控制器,舞臺燈光,控制器
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。