国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于eBoxII和AT89S52的智能家居紅外遙控系統(tǒng)設(shè)計(jì)

2010-06-22 08:18:16蔡燕玲
關(guān)鍵詞:遙控器遙控解碼

蔡燕玲

(廈門(mén)海洋職業(yè)技術(shù)學(xué)院,廈門(mén)361012)

蔡燕玲(講師),主要從事單片機(jī)原理與應(yīng)用的教學(xué)。

引 言

遙控家居設(shè)備是智能家居領(lǐng)域的重要研究部分。智能家居設(shè)備的遙控有多種方法,在可視范圍內(nèi)遙控某一設(shè)備的最經(jīng)濟(jì)、最可靠的方法就是采用紅外遙控。當(dāng)今,幾乎所有可遙控的家電設(shè)備都采用紅外遙控。本設(shè)計(jì)就是在不改變?cè)须娖鞯慕Y(jié)構(gòu)及放置位置的情況下,利用紅外遙控技術(shù)控制所有帶紅外遙控器的家電。相對(duì)于無(wú)線(xiàn)射頻遙控來(lái)說(shuō),應(yīng)用紅外遙控的缺點(diǎn)是遙控距離近,且必須在可視范圍內(nèi),但這個(gè)問(wèn)題目前已可以通過(guò)紅外轉(zhuǎn)發(fā)器[1]來(lái)解決。

本系統(tǒng)構(gòu)建了應(yīng)用嵌入式計(jì)算機(jī)eBoxⅠⅠ遙控家電設(shè)備的紅外遙控系統(tǒng)原型。在此基礎(chǔ)上,通過(guò)互聯(lián)網(wǎng)可進(jìn)一步實(shí)現(xiàn)遠(yuǎn)程紅外遙控功能。

1 系統(tǒng)總體設(shè)計(jì)

1.1 系統(tǒng)硬件結(jié)構(gòu)

智能家居紅外遙控系統(tǒng)示意圖如圖1所示。

系統(tǒng)包括兩大部分:一部分是基于AT89S52單片機(jī)的紅外接收/解碼、紅外調(diào)制發(fā)射電路板,用于實(shí)現(xiàn)各種紅外遙控器按鍵發(fā)射信號(hào)的解碼,以及解碼的紅外調(diào)制發(fā)射。另一部分是在嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)eBoxⅠⅠ上存儲(chǔ)相關(guān)家電的紅外遙控器各按鍵的發(fā)射編碼,通過(guò)控制系統(tǒng)界面上的遙控器按鈕將按鍵發(fā)射編碼傳送到專(zhuān)用電路板上,并發(fā)射紅外遙控信號(hào),即用eBoxⅠⅠ控制家中所有可接收紅外遙控的設(shè)備(如電視機(jī)、熱水器、燈具等)。系統(tǒng)還可進(jìn)一步擴(kuò)展,接收由遠(yuǎn)程終端設(shè)備(如手機(jī)、PDA、PC等)通過(guò)網(wǎng)絡(luò)發(fā)來(lái)的控制eBoxⅠⅠ的指令,從而遠(yuǎn)程控制家電設(shè)備。

1.2 系統(tǒng)軟件流程

紅外遙控系統(tǒng)軟件流程如圖2所示。

2 系統(tǒng)具體實(shí)現(xiàn)

2.1 選擇嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)

圖1 智能家居紅外遙控系統(tǒng)示意圖

eBoxⅠⅠ[2]是微軟提供的基于 Windows CE的嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)。eBoxⅠⅠ具有體積小、重量輕、功耗低、噪音低、便于移動(dòng)、系統(tǒng)相對(duì)封閉、安全性高等特點(diǎn),且具有強(qiáng)大的運(yùn)算能力和網(wǎng)路功能。本系統(tǒng)僅用到eBoxⅠⅠ的串口。

2.2 定制 Windows CE操作系統(tǒng)

eBoxⅠⅠ是嵌入式計(jì)算機(jī),需要先安裝操作系統(tǒng)。從應(yīng)用角度看,嵌入式操作系統(tǒng)分為通用型和專(zhuān)用型。通用型操作系統(tǒng)適應(yīng)面廣,但應(yīng)用到實(shí)際中一般要經(jīng)過(guò)重新定制以適應(yīng)具體環(huán)境;專(zhuān)用型操作系統(tǒng)則專(zhuān)門(mén)針對(duì)某種應(yīng)用環(huán)境而設(shè)計(jì),可不經(jīng)裁減直接應(yīng)用。Windows CE操作系統(tǒng)屬于常見(jiàn)的通用型嵌入式操作系統(tǒng),需要根據(jù)設(shè)計(jì)需要重新裁減、定制。定制工具采用微軟提供的工具軟件Platform Builder(PB)[3]。

定制Windows CE操作系統(tǒng)過(guò)程如下:

①使用Platform Wizard生成一個(gè)初始鏡像。運(yùn)行Platform Builder 5.0,選擇File|New Platform建立一個(gè)項(xiàng)目,在項(xiàng)目導(dǎo)向?qū)υ?huà)框中按提示輸入項(xiàng)目名及路徑;接著選擇BSP包,因eBoxⅠⅠ的CPU是Vortex86,所以在選項(xiàng)中選擇“EMULATOR:X86”和“ⅠCOP_VORTEX86_50:X86”兩項(xiàng);然后選擇設(shè)計(jì)模板,在應(yīng)用程序和多媒體選項(xiàng)中選擇Custom Device;最后在網(wǎng)絡(luò)和通信組件中選擇MFC及Standard SDK for Windows CE,并在Core Services中選擇串口支持和網(wǎng)絡(luò)支持功能,這樣就完成了新項(xiàng)目平臺(tái)的選取配置工作。

② 項(xiàng)目定制。在上面生成的項(xiàng)目平臺(tái)基礎(chǔ)上,還可以根據(jù)需要進(jìn)一步添加/刪減組件和驅(qū)動(dòng)程序。從組件目錄中找出需要的設(shè)備驅(qū)動(dòng),右擊并選擇Add to OS Design,把應(yīng)用程序添加到項(xiàng)目中。至此,一個(gè)Windows CE自定義平臺(tái)已完成,下一步準(zhǔn)備生成一個(gè)Windows CE操作系統(tǒng)鏡像。

③編譯項(xiàng)目。在菜單欄的工具中選取編譯類(lèi)型Debug或Release。Debug編譯可提供附加的調(diào)試信息,但它是Release類(lèi)型的兩倍大,這里選Debug類(lèi)型。然后,在菜單欄上選擇Build OS/Build and Sysgen,開(kāi)始編譯項(xiàng)目并生成CE鏡像文件。

圖2 紅外遙控系統(tǒng)軟件流程

2.3 編制eBoxII平臺(tái)上的程序

運(yùn)行于Windows CE下的應(yīng)用程序,其采用的編程工具有微軟推出的Windows CE程序可視化開(kāi)發(fā)工具EVB(Embedded Visual Basic)、EVC(Embedded Visual C++)和VS.NET。在嵌入式系統(tǒng)資源有限的情況下,較慢的處理器和較少容量的存儲(chǔ)器要求操作系統(tǒng)和應(yīng)用軟件盡可能地減少對(duì)系統(tǒng)資源的消耗,同時(shí)還要保證較高的執(zhí)行效率。因此,EVC是最適合開(kāi)發(fā) Windows CE下軟件的開(kāi)發(fā)工具。

2.3.1定制紅外遙控系統(tǒng)界面

主界面如圖3所示,系統(tǒng)有三個(gè)功能選項(xiàng),分別為控制、學(xué)習(xí)和服務(wù)器設(shè)置。

圖3 主界面

學(xué)習(xí)子界面如圖4所示。要對(duì)某一家電進(jìn)行遠(yuǎn)程控制,必須先將該家電紅外遙控器上各鍵的編碼保存在eBoxⅠⅠ的Flash存儲(chǔ)器中,紅外遙控器發(fā)射的編碼是經(jīng)過(guò)調(diào)制后的編碼,需解調(diào)還原成與按鍵對(duì)應(yīng)的發(fā)射編碼。由于各種紅外遙控器的編碼格式不同,經(jīng)解碼后還原成發(fā)射編碼的格式是未知的,因此把從紅外遙控器發(fā)射紅外信號(hào)到解碼后得到紅外發(fā)射編碼的存儲(chǔ)過(guò)程稱(chēng)為“學(xué)習(xí)”,即學(xué)習(xí)原紅外遙控器各按鍵的編碼格式及相關(guān)編碼。

圖4 學(xué)習(xí)子界面

在學(xué)習(xí)子界面中,可根據(jù)實(shí)際需要選擇要控制的家電。本系統(tǒng)只列舉了5種家電:LⅠGHTⅠNG SYSTEM(照明系統(tǒng))、BACKGROUD MUSⅠC(背 景 音 樂(lè))、WATER HEATER(熱水器)、AⅠR-CONDⅠTⅠON(空調(diào))和TV(電視)。例如選擇TV,則出現(xiàn)圖5所示的TV遙控器學(xué)習(xí)界面。

控制子界面如圖6所示??刂谱咏缑嫱ㄟ^(guò)eBoxⅠⅠ或遠(yuǎn)程計(jì)算機(jī)設(shè)備控制家居設(shè)備,每種家居設(shè)備都還有進(jìn)一步的控制界面。如果選擇TV,則彈出類(lèi)似TV遙控器的控制界面,如圖7所示。

圖5 TV遙控器學(xué)習(xí)界面

圖6 控制子界面

SERVER設(shè)置界面如圖8所示。進(jìn)行遠(yuǎn)程控制前,需設(shè)置服務(wù)器和用戶(hù)等參數(shù)。進(jìn)行遠(yuǎn)程控制時(shí),通過(guò)客戶(hù)端軟件登錄。各參數(shù)設(shè)置正確后,將出現(xiàn)圖3所示的主界面,選擇SERVER SETTⅠNG就會(huì)出現(xiàn)圖8所示的界面。在該界面中設(shè)置相應(yīng)的地址、端口、用戶(hù)名和密碼,完畢后點(diǎn)擊OK按鈕。

圖7 TV遙控器控制界面

2.3.2eBoxII串口編程

圖8 SERVER設(shè)置界面

系統(tǒng)中電路板與eBoxⅠⅠ的通信采用串口通信方式。

在eBoxⅠⅠ方面,通過(guò)Windows CE提供的串行通信函數(shù)[4]可進(jìn)行串口數(shù)據(jù)的收發(fā)。串口操作如下:

①打開(kāi)串口;

②關(guān)閉串口;

③配置串口;

④設(shè)置串口讀寫(xiě)時(shí)間;

⑤寫(xiě)串口函數(shù);

⑥讀串口函數(shù)。

編者注:源程序詳見(jiàn)本刊網(wǎng)站www.mesnet.com.cn。

2.4 電路板的設(shè)計(jì)

由于市場(chǎng)上各類(lèi)電器的紅外遙控器編碼格式不同,不同廠家生產(chǎn)的同類(lèi)電器其紅外遙控器的編碼格式也不同,造成各類(lèi)紅外遙控器編碼無(wú)法以統(tǒng)一的編碼格式進(jìn)行識(shí)別。本系統(tǒng)通過(guò)分析接收到的邏輯位高低電平的持續(xù)時(shí)間,獲得對(duì)應(yīng)的按鍵發(fā)射編碼,并將這些編碼通過(guò)串口通信保存在eBoxⅠⅠ上,需要時(shí)再將對(duì)應(yīng)的發(fā)射編碼調(diào)制發(fā)射。

為了實(shí)現(xiàn)紅外接收/解碼及紅外調(diào)制發(fā)射功能,制作了一塊以AT89S52單片機(jī)為核心的專(zhuān)用電路板,如圖9所示。該電路板包括紅外接收/解碼模塊、串口通信模塊、紅外調(diào)制發(fā)射模塊及電源部分。

圖9 紅外接收/解碼、紅外調(diào)制發(fā)射專(zhuān)用電路板

2.4.1紅外接收/解碼模塊

紅外接收/解碼電路以AT89S52為核心,包括紅外接收電路和單片機(jī)解碼部分。這部分的功能是接收紅外遙控器發(fā)出的信號(hào),并將解調(diào)信號(hào)送AT89S52;由單片機(jī)的定時(shí)器計(jì)算邏輯位高低電平的持續(xù)時(shí)間,通過(guò)綜合分析判斷出編碼串中兩種不同邏輯的組合方式,從而獲得家電的紅外遙控器相應(yīng)鍵按下后,發(fā)射出的紅外編碼信號(hào)的解碼數(shù)據(jù)。

2.4.2串口通信模塊

單片機(jī)內(nèi)部的存儲(chǔ)器容量有限,由單片機(jī)解碼后將數(shù)據(jù)傳送到eBoxⅠⅠ保存。單片機(jī)自帶串口,eBoxⅠⅠ也有與PC機(jī)一樣的RS232C接口,因此二者間的數(shù)據(jù)傳送采用最簡(jiǎn)單的串行通信。eBoxⅠⅠ與單片機(jī)的連接電路如圖10所示。

圖10 eBoxII與單片機(jī)的串口連接

2.4.3紅外調(diào)制發(fā)射模塊

在eBoxⅠⅠ端,打開(kāi)遙控器界面后,點(diǎn)擊某個(gè)按鈕,則調(diào)用對(duì)應(yīng)該按鈕的紅外遙控器發(fā)射編碼,由串口將數(shù)據(jù)傳送到電路板,再經(jīng)AT89S52單片機(jī)調(diào)制后由發(fā)射電路發(fā)射紅外遙控信號(hào)。

發(fā)射遙控信號(hào)的方式與紅外遙控器發(fā)射信號(hào)的方式必須保持一致,才能控制相應(yīng)的設(shè)備。因此,由eBoxⅠⅠ傳來(lái)的紅外遙控器發(fā)射解碼必須經(jīng)過(guò)調(diào)制后才能發(fā)射。實(shí)現(xiàn)發(fā)射編碼的脈寬調(diào)制有兩種方法:一種是將二進(jìn)制脈沖信號(hào)與調(diào)制信號(hào)相與;另一種是利用單片機(jī)中的定時(shí)器產(chǎn)生調(diào)制信號(hào),并用軟件的方法將發(fā)射編碼調(diào)制在調(diào)制信號(hào)上,然后通過(guò)Ⅰ/O口輸出已調(diào)制信號(hào)。

為了提高電路的穩(wěn)定性,應(yīng)盡量減少元器件等硬件。本系統(tǒng)采用軟件調(diào)制信號(hào)的方法,用AT89S52的定時(shí)器T1產(chǎn)生38kHz的調(diào)制信號(hào),對(duì)從eBoxⅠⅠ傳來(lái)的發(fā)射編碼進(jìn)行調(diào)制。也就是說(shuō),邏輯“1”為低電平時(shí)輸出調(diào)制信號(hào),為高電平時(shí)關(guān)閉輸出;同理,邏輯“0”為低電平時(shí)輸出調(diào)制信號(hào),為高電平時(shí)關(guān)閉輸出。已調(diào)信號(hào)由AT89S52的引腳輸出,經(jīng)三極管放大后控制紅外發(fā)射管,由紅外發(fā)射管發(fā)射紅外信號(hào),其原理等同于由紅外遙控器發(fā)射紅外編碼信號(hào)。

3 系統(tǒng)原型測(cè)試

整個(gè)系統(tǒng)原型包括紅外接收/解碼、紅外調(diào)制發(fā)射專(zhuān)用電路板和基于eBoxⅠⅠ的Windows CE下的應(yīng)用程序。

在eBoxⅠⅠ上啟動(dòng)應(yīng)用程序,出現(xiàn)圖3所示的主界面,選擇LEARNⅠNG→TV,出現(xiàn)圖6所示的TV遙控器學(xué)習(xí)界面。對(duì)照原有的TV遙控器,進(jìn)行每個(gè)按鍵的學(xué)習(xí)。先點(diǎn)擊該界面的START按鈕,eBoxⅠⅠ處于準(zhǔn)備學(xué)習(xí)狀態(tài)。例如要學(xué)習(xí)“7”鍵,將TV遙控器的發(fā)射端對(duì)準(zhǔn)紅外接收/解碼電路中的紅外接收模塊,按下TV的“7”鍵,則“7”鍵的發(fā)射編碼由AT89S52單片機(jī)傳送到eBoxⅠⅠ上。點(diǎn)擊文本框中的按鈕“7”,則遙控器上“7”鍵的紅外發(fā)射編碼就保存在界面上按鈕“7”對(duì)應(yīng)的文件中。如此學(xué)習(xí)各鍵,eBoxⅠⅠ就保存了該遙控器所有按鍵的紅外發(fā)射編碼。學(xué)習(xí)完畢,點(diǎn)擊OVER按鈕退出學(xué)習(xí)過(guò)程。

返回到主界面。選擇CONTROLLⅠNG→TV,出現(xiàn)圖7所示的TV遙控器控制界面。此時(shí),如果要選擇電視的7頻道,則點(diǎn)擊按鈕“7”,eBoxⅠⅠ將按鈕“7”對(duì)應(yīng)的紅外發(fā)射編碼傳送到單片機(jī),并由單片機(jī)調(diào)制后經(jīng)紅外發(fā)射電路發(fā)射,從而使電視調(diào)到7頻道。

測(cè)試結(jié)果:用eBoxⅠⅠ遙控電視時(shí),效果等同于用原有的紅外遙控器控制。

結(jié) 語(yǔ)

本系統(tǒng)原型對(duì)一個(gè)家庭中所有紅外遙控器的鍵碼進(jìn)行“學(xué)習(xí)”,并將“學(xué)習(xí)”結(jié)果保存在一臺(tái)嵌入式計(jì)算機(jī)上。在嵌入式計(jì)算機(jī)上開(kāi)發(fā)紅外遙控系統(tǒng),最終目的不僅是為了實(shí)現(xiàn)在家中遙控設(shè)備,而是為遠(yuǎn)程遙控家居設(shè)備搭建一個(gè)很好的平臺(tái)。另外,在這臺(tái)嵌入式計(jì)算機(jī)上還能開(kāi)發(fā)出其他與智能家居有關(guān)的系統(tǒng)(如視頻監(jiān)控系統(tǒng)、溫控系統(tǒng)等),實(shí)現(xiàn)完善的智能家居體系。

[1]TDXE6436 紅 外 轉(zhuǎn) 發(fā) 器 [OL].[2010-06].http://www.taiyito.com/Simplified/ProductView.asp?ⅠD=139.

[2]ⅠCOP Technology Ⅰnc.eBoxⅠⅠ Windows CE 5.0Jump Start,2006.

[3]周毓林,等.Windows CE.net內(nèi)核定制及應(yīng)用開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2005.

[4]汪兵,等.EVC高級(jí)編程及其應(yīng)用開(kāi)發(fā)[M].北京:中國(guó)水利水電出版社,2005.

猜你喜歡
遙控器遙控解碼
如何遙控引爆的
《解碼萬(wàn)噸站》
爸媽有個(gè)“遙控器”
時(shí)間遙控器
解碼eUCP2.0
他是如何遙控引爆的
NAD C368解碼/放大器一體機(jī)
Quad(國(guó)都)Vena解碼/放大器一體機(jī)
行走的飛行遙控器
按錯(cuò)遙控器
耿马| 新田县| 株洲市| 格尔木市| 常州市| 乐业县| 瓮安县| 行唐县| 扎赉特旗| 海兴县| 安康市| 浦东新区| 且末县| 万荣县| 汝州市| 东兰县| 丽江市| 林芝县| 唐海县| 尉犁县| 营山县| 赤水市| 四川省| 邵阳市| 霸州市| 嘉黎县| 兴业县| 万载县| 溧水县| 彭山县| 辛集市| 揭西县| 鄂尔多斯市| 阿合奇县| 新安县| 扶绥县| 台安县| 岳阳市| 龙门县| 化州市| 阳西县|