,
(陜西科技大學(xué) 電氣與信息工程學(xué)院,西安 710021)
智能照明控制系統(tǒng)可滿(mǎn)足人們對(duì)優(yōu)質(zhì)、高效、舒適的照明環(huán)境的要求,由于其可觀的節(jié)能效果及光源壽命的延長(zhǎng),可以降低運(yùn)行成本,極大改善了運(yùn)營(yíng)維護(hù)人員工作條件,有效降低了維護(hù)的工作強(qiáng)度[1]。
DMX512協(xié)議(Digital MultipleX 512),全稱(chēng)為數(shù)字多路復(fù)用協(xié)議,廣泛應(yīng)用在舞臺(tái)燈光、景觀照明等場(chǎng)合。標(biāo)準(zhǔn)DMX512協(xié)議設(shè)計(jì)用來(lái)從一個(gè)單獨(dú)控制器到一個(gè)或多個(gè)接收器之間傳遞重復(fù)的控制數(shù)據(jù),控制調(diào)光器、其他燈光控制設(shè)備和相關(guān)的設(shè)備[2]。根據(jù)DMX512數(shù)據(jù)傳輸率的要求以及控制網(wǎng)絡(luò)的分散特點(diǎn),其物理層的設(shè)計(jì)采用差分接發(fā)的方式,采用主從式結(jié)構(gòu),總線用一對(duì)雙絞線實(shí)現(xiàn)調(diào)光臺(tái)與調(diào)光器相接。
標(biāo)準(zhǔn)DMX512協(xié)議規(guī)定主從控制器采用雙絞線進(jìn)行通信,在實(shí)際應(yīng)用中存在著布線不便、施工難度大等問(wèn)題。在一些特殊場(chǎng)合(比如大樓玻璃幕墻、水上燈光表演),布線困難,且布線會(huì)影響美觀。建立無(wú)線的通信方式是解決以上問(wèn)題的思路之一[3]。本文提出一種DMX512協(xié)議的擴(kuò)展方法,采用將無(wú)線通信和傳統(tǒng)雙絞線結(jié)合的通信方式,無(wú)線主控器與DMX512總線連接,主控制器和從控制器采用基于CC1101無(wú)線通信方式,主控制器將來(lái)自DMX512總線的數(shù)據(jù)轉(zhuǎn)換成無(wú)線形式發(fā)送給從控制器,從控制器作為單個(gè)的燈具節(jié)點(diǎn)進(jìn)行調(diào)光操作。在布線困難的地方采用無(wú)線通信方式,從而解決了布線困難的問(wèn)題。
DMX512協(xié)議最早是由美國(guó)劇院技術(shù)協(xié)會(huì)(USITT)制定,主要是解決舞臺(tái)、劇場(chǎng)等照明場(chǎng)合常用的調(diào)光設(shè)備互相兼容性的問(wèn)題。
DMX512協(xié)議規(guī)定數(shù)據(jù)以數(shù)據(jù)包的形式通過(guò)異步通信的方式進(jìn)行傳輸。每個(gè)數(shù)據(jù)包由若干數(shù)據(jù)幀組成,每幀數(shù)據(jù)包括1位低電平起始位、8位數(shù)據(jù)位和2位高電平停止位。數(shù)據(jù)傳輸率為250 Kb/s,位速率的傳輸時(shí)間為4 μs,數(shù)據(jù)包按順序傳送,每個(gè)包最多容納513個(gè)數(shù)據(jù)幀(起始碼和最多512個(gè)通道數(shù)據(jù))[4]。DMX512協(xié)議幀格式如圖1所示。
圖1 DMX512的數(shù)據(jù)幀格式
CC1101是一款針對(duì)極低功耗、射頻頻段在433/868/915 MHz應(yīng)用的無(wú)線傳輸芯片,能夠提供對(duì)數(shù)據(jù)包處理、接收信號(hào)強(qiáng)度指示、突發(fā)傳輸、數(shù)據(jù)緩沖、空閑信道評(píng)估、鏈路質(zhì)量指示以及無(wú)線喚醒等功能的硬件支持[5]。
CC1101具有可編程的數(shù)據(jù)傳輸速率,數(shù)據(jù)傳輸速率設(shè)置范圍為1.2~500 kbps,滿(mǎn)足DMX512協(xié)議250 kbps的通信速率。CC1101工作頻段在387~464 MHz之間,CC1101的工作頻率可以進(jìn)行設(shè)置。多個(gè)無(wú)線發(fā)射機(jī)工作在同一頻段,如果同時(shí)工作時(shí),無(wú)線接收機(jī)接收的信號(hào)會(huì)有串?dāng)_。CC1101的工作頻段較寬,可以將不同網(wǎng)絡(luò)的無(wú)線發(fā)射機(jī)和接收機(jī)設(shè)置在不同的工作頻率,CC1101接收機(jī)只接收與自己頻率相同的信號(hào),這樣多個(gè)無(wú)線網(wǎng)絡(luò)同時(shí)工作時(shí)就不會(huì)產(chǎn)生串?dāng)_了[6]。
標(biāo)準(zhǔn)DMX512協(xié)議規(guī)定主控制器和從控制器采用雙絞線進(jìn)行連接。本課題研究的無(wú)線設(shè)備是單個(gè)控制器節(jié)點(diǎn),無(wú)線主控制器為發(fā)射機(jī),無(wú)線從控制器為接收機(jī),主控器和從控制器采用無(wú)線的通信方式進(jìn)行通信。從控制器作為單個(gè)燈具控制節(jié)點(diǎn),使燈具布局更加靈活。
系統(tǒng)整體框圖如圖2所示,一個(gè)DMX512系統(tǒng)內(nèi)采用有線通信和無(wú)線通信相結(jié)合的方式,DMX512主控制器是DMX512系統(tǒng)的主控制器,無(wú)線主控制器與DMX512總線連接,主控制器將DMX512信號(hào)轉(zhuǎn)換成無(wú)線通信格式發(fā)送給從控制器。從控制器收到控制指令后進(jìn)行相應(yīng)的操作,主控制器將有線信號(hào)轉(zhuǎn)換成無(wú)線信號(hào)。
圖2 系統(tǒng)整體框圖
一個(gè)DMX512系統(tǒng)內(nèi)可以接入多個(gè)無(wú)線系統(tǒng),將多個(gè)無(wú)線主控制器與DMX512總線進(jìn)行連接。如果多個(gè)無(wú)線網(wǎng)絡(luò)工作在同一個(gè)頻段,網(wǎng)絡(luò)內(nèi)的無(wú)線主控制器同時(shí)發(fā)送信號(hào),從控制器接收的信號(hào)就會(huì)產(chǎn)生串?dāng)_。CC1101的工作頻段較寬,將同一個(gè)網(wǎng)絡(luò)內(nèi)的無(wú)線主控制器和從控制器設(shè)置在同一個(gè)頻段,從控制器只接收同一頻段的主控制器的信號(hào),不同頻段主控制器組成的網(wǎng)絡(luò)不會(huì)產(chǎn)生干擾。
無(wú)線主控制器和無(wú)線從控制器的MCU單元采用ST公司的芯片STMF103C8T6,它是采用Cortex-M3架構(gòu)的32位處理器,工作頻率可達(dá)72 MHz,具有64 KB的閃存程序存儲(chǔ)器和20 KB的SRAM,具有UART、SPI通信接口等,具有7個(gè)定時(shí)器,并且具有PWM輸出通道,滿(mǎn)足本課題的需求。
無(wú)線主控制器與DMX512總線相連接,主控制器的主要功能是將DMX512總線上的數(shù)據(jù)轉(zhuǎn)換成無(wú)線通信格式發(fā)送給從控制器。硬件電路主要包括:MCU電路、電源電路、指示燈電路、地址分配電路、CC1101電路、調(diào)試電路、DMX512通信電路等。無(wú)線主控制器硬件框圖如圖3所示。
圖3 無(wú)線主控制器硬件框圖
① CC1101電路采用SPI方式與主控制器進(jìn)行通信。CC1101電路將接收到DMX512總線的數(shù)據(jù)轉(zhuǎn)換成無(wú)線數(shù)據(jù)格式發(fā)送給從控制器。
② 地址分配電路主要對(duì)DMX512無(wú)線從控制器進(jìn)行地址分配。
③ DMX512通信電路負(fù)責(zé)與DMX512主控制器建立通信,接收來(lái)自DMX512總線上的數(shù)據(jù)。
無(wú)線從控制器主要功能是接收主控制器的指令,并進(jìn)行相應(yīng)的操作。無(wú)線從控制器的硬件電路主要包括:MCU電路、電源電路、指示燈電路、CC1101電路、LED驅(qū)動(dòng)電路等。無(wú)線從控制器硬件框圖如圖4所示。
圖4 無(wú)線從控制器硬件框圖
LED驅(qū)動(dòng)電路控制芯片選用NCL30160,這是安森美半導(dǎo)體推出的一款NFET遲滯降壓、恒流驅(qū)動(dòng)器[7],電流提升到了1.5 A,損耗非常低,支持PWM數(shù)字脈沖調(diào)光方式。當(dāng)無(wú)線從控制器接收到調(diào)光數(shù)據(jù)時(shí),改變相應(yīng)通道PWM輸出占空比從而改變LED 亮度。CC1101電路主要是與無(wú)線主控制器建立通信,接收主控制器的指令。指示燈電路指示程序運(yùn)行的狀態(tài)。
無(wú)線主控制器采用層次化的軟件設(shè)計(jì)方法,將程序分為三層:驅(qū)動(dòng)層、接口層和應(yīng)用層。驅(qū)動(dòng)層完成和硬件相關(guān)的交互,接口層完成通信協(xié)議棧的設(shè)計(jì),應(yīng)用層則根據(jù)系統(tǒng)的要求進(jìn)行功能定制。
3.1.1 功能需求
無(wú)線主控制器將來(lái)自DMX512主控制器的數(shù)據(jù)轉(zhuǎn)換成無(wú)線通信格式發(fā)送給從控制器。主控制器可以對(duì)從控制器進(jìn)行無(wú)線參數(shù)設(shè)置。根據(jù)主控制器的設(shè)計(jì)要求,其軟件功能主要包括:①接收DMX512總線上的數(shù)據(jù)并進(jìn)行解析;②將DMX512的控制數(shù)據(jù)轉(zhuǎn)換成無(wú)線數(shù)據(jù)格式發(fā)送給從控制器;③對(duì)無(wú)線設(shè)備進(jìn)行參數(shù)設(shè)置,并且進(jìn)行配對(duì);④對(duì)無(wú)線從控制器進(jìn)行地址分配。
3.1.2 任務(wù)劃分
根據(jù)功能需求,對(duì)主控制器的軟件進(jìn)行任務(wù)劃分如下:
① DMX512數(shù)據(jù)接收任務(wù):對(duì)來(lái)自DMX512總線上的數(shù)據(jù)進(jìn)行接收。
② DMX512數(shù)據(jù)解析任務(wù):對(duì)接收到的DMX512數(shù)據(jù)進(jìn)行解析,判斷是否為調(diào)光指令類(lèi)型。如果是調(diào)光指令,則截取相應(yīng)的數(shù)據(jù)幀進(jìn)行轉(zhuǎn)發(fā);如果是無(wú)線設(shè)備地址分配指令或者無(wú)線參數(shù)設(shè)置指令,則將相應(yīng)的標(biāo)志位置位。
③ 地址分配任務(wù):對(duì)無(wú)線系統(tǒng)內(nèi)的無(wú)線從控制器進(jìn)行地址分配操作。
④ 無(wú)線參數(shù)配置任務(wù):對(duì)無(wú)線系統(tǒng)內(nèi)的主控制器和從控制器進(jìn)行參數(shù)設(shè)置,設(shè)置無(wú)線設(shè)備的通信頻率、跳頻信道等。
⑤ 無(wú)線設(shè)備配對(duì)任務(wù):對(duì)無(wú)線從控制器進(jìn)行配對(duì),保存無(wú)線從控制器的設(shè)備信息。
根據(jù)程序的任務(wù)劃分,無(wú)線從控制器的程序流程圖如圖5所示。DMX512數(shù)據(jù)包中用起始碼定義數(shù)據(jù)包的功能,標(biāo)準(zhǔn)DMX512數(shù)據(jù)包的起始碼為0x00,如果定義無(wú)線參數(shù)設(shè)置和無(wú)線設(shè)備配對(duì)功能,只需要定義相應(yīng)功能的起始碼。
圖5 無(wú)線主控制器流程圖
無(wú)線從控制器軟件設(shè)計(jì)采用模塊化的思想,將每個(gè)功能模塊劃分為不同的層次,分別實(shí)現(xiàn)各自的功能。
根據(jù)無(wú)線從控制器的功能,將程序任務(wù)劃分為PWM調(diào)光任務(wù)和通信任務(wù)。PWM調(diào)光任務(wù)根據(jù)接收的DMX512調(diào)光數(shù)據(jù)更新PWM輸出信號(hào)的占空比。通信任務(wù)主要接收、解析來(lái)自無(wú)線主控制器的數(shù)據(jù),并對(duì)相應(yīng)指令進(jìn)行相應(yīng)操作。無(wú)線從控制器的流程圖如圖6所示。
圖6 無(wú)線從控制器程序流程圖