基于單片機的智能學(xué)習型紅外空調遙控器

發(fā)布時(shí)間:2015-1-19 09:31    發(fā)布者:designapp

        為了解決空調遙控器不兼容問(wèn)題,設計了一款基于A(yíng)tmega16單片機的智能空調遙控器。該遙控器采用測量脈沖寬度的方法學(xué)習紅外信號,同時(shí)使用游程編碼算法對數據進(jìn)行壓縮后存儲,并利用單片機內部定時(shí)器PWM模式產(chǎn)生紅外載波,成功實(shí)現了對紅外遙控的學(xué)習與再現,并可通過(guò)上位機進(jìn)行控制。經(jīng)運行測試表明,該智能遙控器操作靈活,性能穩定,為智能遙控器設計提供了一種新方案。
1 引言
本文設計了一款針對空調設備的智能學(xué)習型紅外遙控器,采用記錄脈沖寬度的方法,成功實(shí)現了對多種紅外空調遙控信號的學(xué)習與再現,真正實(shí)現了"萬(wàn)能"。本文在闡述了系統的總體結構及硬件設計的基礎上,詳細研究了系統學(xué)習,發(fā)送及通信功能的軟件設計與實(shí)現。
2 系統總體結構與硬件設計
系統采用模塊化設計,各模塊通過(guò)接口電路與主控芯片相連。主要模塊有:矩陣鍵盤(pán),液晶顯示,存儲模塊,紅外發(fā)送模塊,紅外接收模塊,RS232、RS485 通信模塊,以及溫度檢測模塊。系統結構圖如圖1 所示。
系統以Atmega16 單片機作為主控芯片,Atmega16具有16K 字節的系統內可編程Flash ,512 字節EEPROM,1K 字節SRAM,32 個(gè)通用I/O 口線(xiàn),32 個(gè)通用工作寄存器,用于邊界掃描的JTAG 接口,支持片內調試與編程,三個(gè)具有比較模式的靈活的定時(shí)器/計數器(T/C),片內/外中斷,可編程串行USART,有起始條件檢測器的通用串行接口,8 路10 位具有可選差分輸入級可編程增益的ADC,具有片內振蕩器的可編程看門(mén)狗定時(shí)器,一個(gè)SPI 串行端口,以及六個(gè)可以通過(guò)軟件進(jìn)行選擇的省電模式。該芯片功能強大,滿(mǎn)足系統設計需要并提供了充分的擴展空間。主控芯片使用8MHz 的晶振,晶振電路靠近主控芯片,盡量減少輸入噪聲。復位電路采用低電平復位。


圖1 系統結構圖


矩陣鍵盤(pán)采用3*3 的設計,設置了8 個(gè)功能鍵,方便用戶(hù)進(jìn)行手動(dòng)操作。其中單獨設計了一顆模式切換鍵,可在學(xué)習、發(fā)射、通信模式中切換。為了實(shí)現學(xué)習功能, 紅外接收模塊使用了一體化接收頭NB1838,其光電檢測和前置放大器集成于同一封裝,中心頻率為37.9KHz. NB1838 的環(huán)氧樹(shù)脂封裝結構為其提供了一個(gè)特殊的紅外濾光器,對自然光和電場(chǎng)干擾有很強的防護性。NB1838 對接收到的紅外信號進(jìn)行放大、檢波、整形,并調制出紅外編碼,得到TTL 波形,反相后輸入單片機,再由單片機進(jìn)行進(jìn)一步的處理,存儲到EEPROM 中,接收電路如圖2 所示。


圖2 接收硬件電路圖。


考慮到系統需要的存儲空間比較大,設計了單獨的存儲模塊,選用的EEPROM 是AT24C64,它提供了8KB 的容量,通過(guò)IIC 協(xié)議與Atmega16 TWI 接口通信,將學(xué)習到的紅外指令存儲在此,掉電不丟失。
在發(fā)射模式下,系統從EEPROM 讀取相應數據信息,利用三極管9013 組成的放大電路,通過(guò)大功率紅外發(fā)射管將調制好的紅外信號發(fā)射出去。發(fā)射電路如圖3所示,非發(fā)送狀態(tài)時(shí),三極管工作在截止狀態(tài),紅外發(fā)射管不工作,有利于降低功耗以及延長(cháng)紅外發(fā)射管的使用壽命。經(jīng)實(shí)際測試,發(fā)射距離可達到10m 左右。


圖3 發(fā)射硬件電路圖。


通信模式中,系統通過(guò)RS232 電路與上位機通信,在與上位機通信時(shí)使用DS18B20 反饋溫度信息,DS18B20 一線(xiàn)總線(xiàn)設計大大提高了系統的抗干擾性,獨特而且經(jīng)濟。系統還增加了RS485 模塊,便于組網(wǎng),以實(shí)現對多個(gè)紅外設備進(jìn)行控制。RS485 在組網(wǎng)時(shí)只需要用一對雙絞線(xiàn)將子設備的"A"、"B"端連接起來(lái),這種接線(xiàn)方式為總線(xiàn)式拓撲結構,在同一總線(xiàn)上可掛接多個(gè)結點(diǎn),連接方便。
為了增加設備的實(shí)用性,系統設計了兩個(gè)電源方案,一個(gè)是直接接入5V 直流電源,一個(gè)是接入12V直流電源,然后通過(guò)L7805 構成的變壓電路降壓為5V使用。



       
3 系統軟件設計與實(shí)現
系統程序主要分為三個(gè)部分:學(xué)習模式,發(fā)送模式以及通信模式。當第一次進(jìn)入系統時(shí),初始化設置設備地址,然后設置通信的波特率,提供1200、9600 以及19200 三種選擇。系統主程序即在三個(gè)模式間切換,默認進(jìn)入通信模式,可以通過(guò)模式切換按鍵改變模式,也可以通過(guò)上位機直接更改。出于系統的穩定性需要,在程序中加入了軟件看門(mén)狗,防止程序"跑飛".
3.1 學(xué)習功能設計
3.1.1 學(xué)習模式
紅外遙控器的碼型多樣,編碼一般包括:幀頭、系統碼、操作碼、同步碼、幀間隔碼、幀尾,且同步碼與幀間隔碼出現的位置不固定,因此碼型格式靈活多變,很難區分各種碼型的編碼含義;各個(gè)紅外遙控的編碼長(cháng)度不盡相同,發(fā)送方式也多種多樣,最常用的有三種:完整幀只發(fā)送一次、完整幀重復發(fā)送兩次、先發(fā)送一個(gè)完整幀,后重復發(fā)送幀頭和一個(gè)脈沖。面對如此多樣化的編碼方式,如果區分每種編碼的含義進(jìn)行學(xué)習,學(xué)習的復雜度將會(huì )很高,并且通用性也會(huì )受到影響。所以,為了避開(kāi)各色碼型的干擾,系統在學(xué)習時(shí)并不關(guān)心碼型數據的實(shí)際意義,只記錄脈沖的時(shí)間寬度。系統主要針對載波頻率為38KHz(周期為26us)的紅外遙控器,利用變量IR_time 記錄接收到的脈沖寬度。學(xué)習程序流程如圖4 所示。


圖4 學(xué)習程序流程圖。


3.1.2 壓縮存儲
由于不考慮具體的碼型數據意義,只記錄脈沖的寬度,系統的學(xué)習功能通用性得到了提高,但這種方式學(xué)習到的數據量很大,對存儲的要求就變得很高。
盡管系統針對存儲的大容量需求設計了單獨的存儲模塊,但考慮到應在不增加硬件開(kāi)銷(xiāo)的情況下保證足夠的存儲容量,以及滿(mǎn)足未來(lái)擴展的需要,在進(jìn)行數據存儲時(shí),采取了數據壓縮技術(shù)。
從學(xué)習到的電平數據可以發(fā)現,無(wú)論數據是1 還是0,都有相同時(shí)長(cháng)的電平出現,這符合游程編碼的特點(diǎn)。游程編碼是一種簡(jiǎn)單的非破壞性資料壓縮法,其好處是加壓縮和解壓縮都非?,其方法是計算連續出現的資料長(cháng)度壓縮之。比如:一張二值圖像的數據為:
  WWWWWWWWBWWWWBBBWWWWWWWBWWWWW
使用游程編碼壓縮可得:8W1B4W3B7W1B 5W.
可見(jiàn),壓縮效率極高,且可避免復雜的編碼和解碼運算。所以,在存儲時(shí),系統對學(xué)習到的數據進(jìn)行游程編碼壓縮[7,8].例如,學(xué)習到的一組空調遙控器的數據為[157 153 23 53 … 23 53 23 180 156 152 23 53 …53 23],如圖5 所示,對重復的電平數據采用游程編碼壓縮后,原本需要199 字節的空調遙控碼,只需要106個(gè)字節即可存儲,壓縮率達53.27%.因此,在存儲時(shí)針對學(xué)習到的數據特點(diǎn)采取游程編碼壓縮,可以有效節約存儲空間。


圖5 一組典型的空調數據幀。


3.2 發(fā)射功能設計
現有的紅外遙控器很多都是采用外部電路產(chǎn)生載波信號,例如使用NEC555 振蕩器產(chǎn)生載波信號。為了減少硬件開(kāi)銷(xiāo),本系統使用單片機內部的定時(shí)器產(chǎn)生載波。系統使用的是Atmega16 單片機,其定時(shí)器功能強大,具有普通模式、CTC 模式、快速PWM 模式、相位修正PWM 模式等工作模式,系統利用定時(shí)器1,使其工作在快速PWM 模式,產(chǎn)生占空比為1:3 的38KHz 的PWM 波。當發(fā)送某條指令時(shí),單片機從對應的EEPROM 中提取指令信息,然后調制到生成的載波上,再通過(guò)發(fā)射電路即可完成紅外信號的發(fā)射。



       
3.3 通信功能設計
3.3.1 上位機通信
本遙控器除了能通過(guò)功能按鍵實(shí)現手動(dòng)操作外,還可以通過(guò)上位機軟件對遙控器進(jìn)行控制。遙控器與上位機通過(guò)RS232 模塊進(jìn)行通信,首先配置上位機軟件,確定串口號,選擇與設備相同的波特率及主從設備地址,然后根據需要選擇相應的指令,點(diǎn)擊發(fā)送即可通過(guò)上位機對設備進(jìn)行控制。由于本遙控器是基于空調遙控器進(jìn)行研究的,在與上位機通信時(shí),系統中的溫度檢測模塊會(huì )上傳實(shí)時(shí)溫度,便于用戶(hù)進(jìn)行調整。圖6 為上位機軟件流程圖。


圖6 上位機軟件流程圖。


3.3.2 組網(wǎng)控制
為了實(shí)現對多個(gè)設備的聯(lián)網(wǎng)控制,還設計了RS485 模塊。各子遙控器通過(guò)RS485 模塊的"A"、"B"端連接在一起,組成控制網(wǎng)絡(luò ),如圖7 所示,其中一個(gè)作為主遙控器,與上位機通過(guò)RS232 模塊進(jìn)行串口通信。當上位機需要對某個(gè)子設備進(jìn)行控制時(shí),選擇相應的子設備地址號,發(fā)送指令即可,主遙控器收到指令信息后,會(huì )將指令發(fā)給對應的子設備。與主遙控器相連的上位機PC 連接Internet,作為本地服務(wù)器,可實(shí)現遠程控制。
用戶(hù)登錄遠程客戶(hù)端,經(jīng)身份驗證后與服務(wù)器建立連接,可發(fā)送指令給本地服務(wù)器,本地服務(wù)器再經(jīng)過(guò)串口通信對遙控器進(jìn)行相應操作。如果遙控器主機與上位機距離較遠,RS232 不能滿(mǎn)足通信需要,也可不使用遙控器主機,在上位機PC 上使用RS232-485 轉接頭,通過(guò)RS485 直接將遙控器網(wǎng)絡(luò )與PC 機485 接口相連,利用上位機對遙控器網(wǎng)絡(luò )直接進(jìn)行控制。


圖7 控制網(wǎng)絡(luò )示意圖。


4 結語(yǔ)
本文設計了一款智能空調遙控器。該系統采用只記錄紅外信號脈沖寬度,不考慮紅外編碼格式的方式,通過(guò)游程編碼算法將紅外信號壓縮后保存到EEPROM 中,并直接利用主控芯片定時(shí)器的PWM 模式產(chǎn)生38KHz 的載波,節約了硬件成本,除手動(dòng)操作外還可以通過(guò)上位機對遙控器進(jìn)行控制,使用方便。
系統成功實(shí)現了對多種空調遙控器的學(xué)習與功能再現,操作靈活,性能穩定。本系統還可用于智能家居中,對不同的紅外設備進(jìn)行控制,也可用于遠程網(wǎng)絡(luò )控制,為智能家居及遠程監控提供了一種實(shí)現方法。



本文地址:http://selenalain.com/thread-144817-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页