蔣小祥
【摘要】智能家居已成為了當(dāng)今的熱門研究課題。智能家居控制系統(tǒng)給越來越多的人帶來了生活便利。本文將對通過單片機(jī)與紅外遙控系統(tǒng)的結(jié)合來實(shí)現(xiàn)家用電器的遠(yuǎn)程控制家用電器的遠(yuǎn)程控制系統(tǒng)的軟件設(shè)計(jì)系統(tǒng)進(jìn)行設(shè)計(jì)。
【關(guān)鍵詞】家用電器;遠(yuǎn)程控制;系統(tǒng)軟件;設(shè)計(jì)
1主程序設(shè)計(jì)
軟件的基本工作原理是:單片機(jī)串行口拓展為并行口時(shí)對移位寄存器數(shù)據(jù)的不斷查詢和單片機(jī)對查詢所得的數(shù)據(jù)的不斷處理。在固定定時(shí)的情況下,單片機(jī)每隔一定時(shí)間就讀取鎖存來的串行數(shù)據(jù),再根據(jù)不同的數(shù)據(jù)查表對比,然后跳轉(zhuǎn)到相對應(yīng)的指令操作地址入口,最后才執(zhí)行對應(yīng)的操作(即對事先約好的I/O口輸出邏輯電平)【20】。與此同時(shí)單片機(jī)會用一定的計(jì)時(shí)功能來輔助主體程序的運(yùn)行。
當(dāng)通電時(shí)程序開始對硬件初始化,單片機(jī)對定時(shí)器0置初值及開中斷等。然后單片機(jī)根據(jù)紅外接收器接收內(nèi)容進(jìn)行判斷,當(dāng)輸入密碼正確時(shí)硬件上綠色指示燈亮起,系統(tǒng)進(jìn)入控制功能,根據(jù)已設(shè)置好的1,2,3來分別控制三個繼電器的開關(guān),從而達(dá)到控制電器開關(guān)的目的。
2 紅外接收程序設(shè)計(jì)
(1)NEC和RC5編碼介紹
目前市場上的編解碼芯片有很多,其中有東芝公司、SONY公司、三菱公司、JVC公司的編解碼芯片,很多廠家都制訂了不同的編解碼通信協(xié)議,下面介紹兩種兼容性好的編碼形式:日本的NEC編碼和荷蘭的菲利普(RC5)編碼。
RC5編碼:
RC5編碼由非利浦公司推出,其編碼芯片有SAA3010,SA3006等,是應(yīng)用很廣泛的一種編碼方式。
RC5編碼采用雙相位編碼方式,用不同相位代表“0”和“1”。傳送每一位的時(shí)間為1.778ms。
圖3.1RC5編碼邏輯電平
NEC編碼:
NEC編碼由NEC公司推出,其典型芯片為uPD6121,uPD6122,除了NEC公司的產(chǎn)品,市場上還有大量與之相兼容的產(chǎn)品,如PT2221,PT2222,SC6121,SC6122,SC9012等等。是應(yīng)用最廣泛的一種編碼方式。
該編碼方式采用脈沖位置編碼方式,利用脈沖間的時(shí)間間隔來區(qū)分“0”和“1”。
圖3.2 NEC編碼邏輯電平
(2)本設(shè)計(jì)通信協(xié)議
紅外線是波長在750nm至1mm之間的電磁波,它的頻率高于微波而低于可見光,是一種人的眼睛看不到的光線。通訊一般采用紅外波段內(nèi)的近紅外線,波長在0.75um至25um之間。紅外數(shù)據(jù)協(xié)會(IRDA)成立后,為了保證不同廠商的紅外產(chǎn)品能夠獲得最佳的通訊效果,紅外通訊協(xié)議將紅外數(shù)據(jù)通訊所采用的光波波長的范圍限定在850nm至900nm之內(nèi)。
本設(shè)計(jì)中遙控器在編碼時(shí)出來的信號經(jīng)過振蕩器的作用調(diào)制載波在38KHz左右,將其從紅外發(fā)光二極管發(fā)出,LT0038內(nèi)的光敏元件在收到紅外信號后送到后續(xù)的放大、濾波和整形等電路。然后輸出TTL電平來送給MC145027解碼,解碼后經(jīng)移位寄存器串行送入單片機(jī)處理。而紅外通信的核心就是編解碼芯片的協(xié)議問題。
由于MC145026/27中的五個地址引腳有高電平、低電平和懸空三個狀態(tài),其地址應(yīng)該有243種狀態(tài)。
3 程序?qū)崿F(xiàn)
紅外信號經(jīng)過接收處理后它會并行輸出給移位寄存器,單片機(jī)會以時(shí)鐘信號控制移位寄存器串行讀入信號。而軟件處理首先就是如何接收串行信號。那么串行輸入的程序就是軟硬件的契合點(diǎn)。紅外接收程序就是基于串行數(shù)據(jù)的讀取來實(shí)現(xiàn)的。
(1)串行口介紹
本設(shè)計(jì)采用的是半雙工異步通信串行口,移位寄存器將以數(shù)據(jù)幀的形式一幀一幀的發(fā)送給單片機(jī)。串行口有四種如下工作模式:
方式0:
為同步移位寄存器輸入輸出方式,常用于外接寄存器,以拓展并行I/O口,不適應(yīng)于兩個單片機(jī)間的串行通信。方式0以8位數(shù)據(jù)為一幀,不設(shè)立起始位和停止位,現(xiàn)發(fā)送或接收最低位,波特率為固定的fosc/12,本設(shè)計(jì)中就采用方式0的工作方式。
方式1:
SCON中SM0和SM1兩位為01時(shí),串行口以方式1工作。方式1真正用于數(shù)據(jù)的串行發(fā)送和接收。其接收的1幀數(shù)據(jù)為10位,一個起始位,8個數(shù)據(jù)位,1個停止位,先發(fā)送或先接收最低位【28】。此時(shí)串行口為8位異步通信接口,其波特率如下:
式中SMOD為PCON的最高位的值(0或1)。
方式2和3:
串行口被定義為2和3時(shí),被定義為9為異步通信接口。每幀數(shù)據(jù)均為11位,1位起始位0,8位數(shù)據(jù)位(先低位),1位可程控為1或0的第9位數(shù)據(jù)和1位停止位【29】。兩種方式基本波特率如下:
由此我們可以知道方式0和方式2的波特率是固定的,方式1和方式3的波特率是可變的。在用定時(shí)器T1作為波特率發(fā)生器時(shí),其波特率計(jì)算如下:
由上幾個公式知道,定時(shí)器T1可以隨著晶振的不同而產(chǎn)生不同的波特率,這樣它就可以適應(yīng)不同的設(shè)計(jì)需求。這也是選擇這款單片機(jī)的重要原因之一。
4、小結(jié)
在家電遙控越來越趨于智能化的情況下,紅外遙控的技術(shù)也在日新月異的蓬勃發(fā)展中,本設(shè)計(jì)的遙控器就是新技術(shù)下應(yīng)運(yùn)而生的產(chǎn)物。其在通信中有比較強(qiáng)的信號穿透能力,一般10米范圍內(nèi)有效,可以控制3個家用電器(電飯煲、空調(diào)、熱水器等)工作和復(fù)位,、并且還有很大的拓展空間。本人相信其未來發(fā)展會更有前景,同時(shí)也相信在目前電磁波應(yīng)用存在不足的領(lǐng)域中紅外通信會越來越起到舉足輕重的作用。