基于LPC2104的智能燈光控制器設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著人們生活質(zhì)量的提高,燈具已不單純是室內(nèi)的基本照明工具,而且是建筑裝飾的一種實(shí)用藝術(shù)品,當(dāng)家里有各式各樣的燈具之后,將它們精心地搭配在一起,達(dá)到最適合的氣氛效果是高品質(zhì)生活的需要,目前燈光的控制主要還是手動(dòng)形式,逐個(gè)控制所有的燈具,這樣不僅麻煩而且效率低下,也不符合現(xiàn)代舒適生活的標(biāo)準(zhǔn)。
因此,設(shè)計(jì)一個(gè)可以便捷地控制燈光、同時(shí)還提供場(chǎng)景組合等功能的智能化燈光系統(tǒng)不僅具有實(shí)用價(jià)值,而且還具有廣闊的市場(chǎng)前景。
2 設(shè)計(jì)目標(biāo)
設(shè)計(jì)一個(gè)智能化燈光控制器,安裝在家中的各個(gè)房間,提供無(wú)線遙控、輕觸式燈光控制、場(chǎng)景組合、預(yù)設(shè)存儲(chǔ)等豐富功能。通過手持遙控器來控制住宅內(nèi)所有的燈光;通過遙控器上的場(chǎng)景設(shè)置按鍵,方便地設(shè)定燈光場(chǎng)景和迅速切換,可以通過面板上的輕觸按鈕控制燈光的開關(guān)和亮度,或者是多盞燈進(jìn)入某種預(yù)設(shè)的場(chǎng)景,各燈光控制器通過RS485的總線與家庭以太網(wǎng)網(wǎng)絡(luò)終端通信實(shí)現(xiàn)對(duì)燈光亮度的遠(yuǎn)程控制和查詢。
該智能化燈光控制系統(tǒng)分為接收外來控制信號(hào)和執(zhí)行控制操作兩部分,為了接收控制信號(hào),系統(tǒng)需具備無(wú)線接收功能和按鍵輸入面板,為了對(duì)燈具執(zhí)行控制,需要設(shè)計(jì)220V調(diào)光控制電路。
LPC2104具有豐富的外圍接口資源,并有很高的可靠性和運(yùn)算速度,非常適于該系統(tǒng)的設(shè)計(jì),智能燈光控制器原理如圖1所示。
3 LPC2104功能簡(jiǎn)介
LPC2104是PHILIPS公司專為嵌入式應(yīng)用提供的高性價(jià)比微控制器解決方案。它采用ARM公司的16位/32位RISC結(jié)構(gòu),內(nèi)核是ARM7TDMI-S,CPU操作頻率可達(dá)60MHz,片上集成:具有ISP和IAP功能的128KB Flash程序存儲(chǔ)器、16KB靜態(tài)RAM、2個(gè)UART、1個(gè)I2C串行接口、1個(gè)SPI串行接口,多達(dá)6路輸出的PWM、2個(gè)定時(shí)器,分別具有4路捕獲/比較通道、實(shí)時(shí)時(shí)鐘及看門狗定時(shí)器等,能夠與常用的外圍設(shè)備實(shí)現(xiàn)無(wú)縫連接,功能強(qiáng)大,本文以LPC2104為核心,設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定的智能燈光控制器。
4 無(wú)線數(shù)傳模塊設(shè)計(jì)
4.1 nRF401簡(jiǎn)介
無(wú)線通信的實(shí)現(xiàn)有三種方案:藍(lán)牙通信、紅外無(wú)線遙控、使用短距離無(wú)線數(shù)傳器件。對(duì)于藍(lán)牙方案,傳輸距離和器件成本是值得考慮的問題,藍(lán)牙主要用于短距離傳輸(最多10m),且成本一直偏高。紅外傳輸雖不用考慮成本問題,但從手持設(shè)備所能提供的功耗來看,它能傳輸?shù)木嚯x實(shí)在太近,只有幾米,且對(duì)紅外發(fā)射角度有一定要求,存在"必須保證傳輸信息的兩個(gè)設(shè)備正對(duì),且中間不能有障礙物"等致命的缺陷,與前兩種方案相比,采用短距離低功耗的無(wú)線射頻器件nRF401是最佳選擇。
nRF401無(wú)線通信收發(fā)器集成了高頻發(fā)射/接收、PLL合成、FSK調(diào)制/解調(diào)和多頻道切換等功能,在低成本數(shù)字通信應(yīng)用中具有突出的技術(shù)優(yōu)勢(shì),其主要技術(shù)特點(diǎn)有:(1)工作在國(guó)際通用的兩個(gè)頻道:433.92MHz和434.32MHz,無(wú)需進(jìn)行頻道申請(qǐng)即可使用;(2)采用DSS+PLL頻率合成技術(shù),外接元件僅有1個(gè)晶體振蕩器和幾個(gè)電阻電容和電感,基本無(wú)需調(diào)試就可工作,且穩(wěn)定性好;(3)數(shù)字通信采用具有較高的抗干擾能力的FSK調(diào)制方式,支持直接數(shù)據(jù)輸入輸出操作,可直接與MPU的UART串行口連接;(4)有2個(gè)可選擇的工作頻道,采用半雙工工作模式,最高數(shù)據(jù)傳輸速率可達(dá)20bk/s;(5)工作電壓為2.7V-5V,待機(jī)狀態(tài)耗電僅為8μA,能滿足低功耗設(shè)備的要求。
采用nRF401器件無(wú)需進(jìn)行初始化和配置,不需要對(duì)數(shù)據(jù)進(jìn)行曼徹斯特編碼,并可以使用廉價(jià)的PCB天線,無(wú)需進(jìn)行復(fù)雜的射頻電路設(shè)計(jì)和調(diào)試,使產(chǎn)品的開發(fā)應(yīng)用更為便捷。
4.2 nRF401與LPC2104的連接
nRF401與LPC2104的連接方式有多種選擇,如GPIO、I2C、UART等,從硬件連接及通信協(xié)議最簡(jiǎn)化的角度來看,選擇串口與無(wú)線模塊相連是最佳方案,UART1的TXD1、RXD1分別與nRF401的DIN、DOUT連接。nRF401與LPC2104接口電路如圖2所示。
由圖2可見,嵌入式CPU對(duì)無(wú)線模塊的控制接口主要由5根信號(hào)線組成,分別是DIN、DOUT、TXEN、PWR_UP、CS。其中,TXEN是發(fā)送使能端,通過對(duì)TXEN置位和復(fù)位實(shí)現(xiàn)發(fā)送狀態(tài)和接收狀態(tài)的切換,并通過GPIO口進(jìn)行控制,PWR_UP是節(jié)能控制端,利用LPC2104的一個(gè)GPIO口對(duì)其進(jìn)行編程,實(shí)現(xiàn)無(wú)線模塊的工作模式和休眠狀態(tài)的切換;CS可進(jìn)行頻道選擇,通過GPIO設(shè)置,可以利用LPC2104的UART1串口控制DIN、DOUT信號(hào)。
為了節(jié)能,nRF401大多數(shù)情況下應(yīng)處于關(guān)閉狀態(tài),無(wú)線部分硬件上是不具備自動(dòng)喚醒功能的,必須通過軟件方式采用合理的通信協(xié)議以保證節(jié)能同時(shí)數(shù)據(jù)不丟失。
5 調(diào)光控制電路設(shè)計(jì)
采用單片機(jī)I/O口灌電流的方法控制晶閘管實(shí)現(xiàn)開關(guān)和調(diào)光控制。用內(nèi)部帶有過零檢測(cè)電路的光電耦合器MOC3041作為晶閘管的驅(qū)動(dòng)器,同時(shí)能實(shí)現(xiàn)強(qiáng)、弱電的隔離。
傳統(tǒng)的調(diào)光方法都采用移相觸發(fā)晶閘管,控制晶閘管的導(dǎo)通角來控制輸出功率,不僅同步檢測(cè)電路復(fù)雜,而且在晶閘管導(dǎo)通瞬間會(huì)產(chǎn)生高次諧波干擾,造成電網(wǎng)電壓波形畸變,影響其他用電設(shè)備和通訊系統(tǒng)的正常工作,本系統(tǒng)中采用過零觸發(fā)晶閘管導(dǎo)通與關(guān)斷的時(shí)間比值來調(diào)節(jié)燈具的功率,由于過零觸發(fā)不改變電壓的波形而只改變電壓全波通過的次數(shù),不會(huì)對(duì)電網(wǎng)造成污染,因此,本系統(tǒng)采用過零觸發(fā)方式。
MOC3041內(nèi)部含有過零檢測(cè)電路,當(dāng)輸入引腳1輸入15mA的電流,輸出端6引腳、4引腳之間的電壓稍過零時(shí),內(nèi)部雙向晶閘管導(dǎo)通,觸發(fā)外部晶閘管導(dǎo)通,當(dāng)MOC3041輸入引腳輸入電流為0時(shí),內(nèi)部雙向晶閘管關(guān)斷,從而外部晶閘管也關(guān)斷,其調(diào)光控制電路如圖3所示。
6 無(wú)線模塊軟件設(shè)計(jì)
無(wú)線模塊通過UART串口與系統(tǒng)相連,所以必須對(duì)UART進(jìn)行初始化,LPC2104的UART串口符合RS232標(biāo)準(zhǔn),也支持550工業(yè)標(biāo)準(zhǔn)。
LPC2104有兩個(gè)通用的異步串行接口(UART),啟動(dòng)時(shí)UART默認(rèn)狀態(tài)是無(wú)法使用的,必須通過編程GPIO寄存器來使能它們。
本系統(tǒng)使用UART1與nRF401進(jìn)行連接,UART1帶有調(diào)制解調(diào)器接口,16字節(jié)接收和發(fā)送FIFO。內(nèi)置波特率發(fā)生器以及包含標(biāo)準(zhǔn)的調(diào)制解調(diào)器接口信號(hào)。
在使用UART1時(shí),先要設(shè)置TXD1、RXD1引腳連接方式,然后設(shè)置串口的波特率及工作模式,即可進(jìn)行數(shù)據(jù)的發(fā)送和接收,本系統(tǒng)使用11.0592MHz晶體振蕩器,不適用PLL,VPB為4分頻,設(shè)置UART1波特率為9600bit/s,則除數(shù)值N=18,即12H,UART1的初始化程序如下:
在操作系統(tǒng)環(huán)境下,系統(tǒng)啟動(dòng)時(shí)會(huì)自動(dòng)初始化串行口,所以應(yīng)用程序調(diào)用串行口資源將變得更容易,值得注意的是,應(yīng)用程序往往是多任意系統(tǒng),為了實(shí)時(shí)監(jiān)測(cè)串行口消息,在操作環(huán)境中一般單開一個(gè)串行口掃描任務(wù),保證信息不丟失,在一個(gè)已有的工程文件的主函數(shù)中添加串行口的寄存器初始化代碼,并添加串口掃描任務(wù),由于對(duì)無(wú)線模塊的控制還有系統(tǒng)的GPIO,所以掃描程序中還要包括對(duì)I/O的操作,當(dāng)系統(tǒng)收到串口信息時(shí),將會(huì)主動(dòng)向主任務(wù)發(fā)送一個(gè)串行口信息,主任務(wù)接收到該信息將會(huì)調(diào)用響應(yīng)函數(shù),響應(yīng)該消息。
7 結(jié)束語(yǔ)
無(wú)線通信模塊nRF401集發(fā)射、接收于一體,大大簡(jiǎn)化了燈光控制器設(shè)計(jì)的復(fù)雜程度,智能燈光控制器通過RS485接口很容易組網(wǎng),為實(shí)現(xiàn)智能家居網(wǎng)絡(luò)化提供了方便。