學(xué)習(xí)型紅外遙控裝置的研究與設(shè)計(jì)
1 引言
紅外遙控是目前常用的一種通信和遙控方法,有體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),可廣泛應(yīng)用于各種家電產(chǎn)品、金融和商用設(shè)施以及工業(yè)設(shè)備中。但目前各種產(chǎn)品的紅外遙控不能互相兼容,給實(shí)際應(yīng)用帶來(lái)不便。因此,這里給出了一種基于凌陽(yáng)SPCE061A單片機(jī)的通用學(xué)習(xí)型紅外遙控設(shè)計(jì)系統(tǒng),能夠?qū)W習(xí)各種紅外遙控指令,較好地解決了產(chǎn)品兼容問(wèn)題。
2 紅外遙控原理
通用紅外遙控系統(tǒng)由發(fā)射和接收兩大模塊組成,使用編/解碼專用集成電路控制操作。發(fā)射部分包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器;而接收部分包括光電轉(zhuǎn)換放大器、解調(diào)、解碼電路。
當(dāng)按下遙控器按鍵時(shí),其內(nèi)部信號(hào)發(fā)射器周期性地發(fā)出同一種脈寬調(diào)制的二進(jìn)制串行碼,由紅外發(fā)射管輸出。紅外遙控器發(fā)射的遙控編碼脈沖由前導(dǎo)碼、系統(tǒng)碼、功能碼、功能碼的反碼組成。這些編碼經(jīng)載波脈寬調(diào)制后發(fā)射,經(jīng)常使用的是38 kHz載波。遙控接收完成對(duì)遙控信號(hào)的接收、放大、檢波、整形、解調(diào)出遙控編碼脈沖,然后通過(guò)微控制器實(shí)現(xiàn)相應(yīng)的控制功能。
3 系統(tǒng)硬件電路設(shè)計(jì)
該學(xué)習(xí)型紅外遙控器能記憶16個(gè)不同的紅外指令,這些指令存在片外存儲(chǔ)器中。當(dāng)其學(xué)習(xí)時(shí),微處理器解碼后,將數(shù)據(jù)存入片外存儲(chǔ)器中,學(xué)習(xí)指示燈亮。當(dāng)遙控時(shí),通過(guò)按鍵選擇對(duì)應(yīng)的控制功能,微處理器調(diào)用相應(yīng)功能的紅外編碼,遙控指示燈亮。該系統(tǒng)設(shè)計(jì)是利用凌陽(yáng)SPCE061A單片機(jī)強(qiáng)大的語(yǔ)音功能,可在不同模式下進(jìn)行語(yǔ)音提醒。其系統(tǒng)硬件設(shè)計(jì)電路原理框圖如圖1所示。
3.1 凌陽(yáng)SPCE061A單片機(jī)
該系統(tǒng)設(shè)計(jì)采用凌陽(yáng)SPCE061A單片機(jī)作為處理器。SPCE061A是以μ'nSPTM 16位微控制器及信號(hào)處理器為內(nèi)核的16位單片機(jī),采用模塊式集成結(jié)構(gòu),片內(nèi)集成了2 KBRAM、32 KB Flash、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、并行I/O接口等。其主要性能為:?jiǎn)纹瑱C(jī)SPCE061 A(晶振頻率32.768 KHz,F(xiàn)lash 32 KB,3.3 V供電);32位可編程并行I/O接口;2個(gè)16位可編程定時(shí)/計(jì)數(shù)器,自動(dòng)預(yù)置計(jì)數(shù)初值;具有運(yùn)行/睡眠模式下看門狗維護(hù)功能。
3.2 紅外發(fā)射電路
紅外發(fā)射是由編碼后的串行數(shù)據(jù)通過(guò)載波脈沖幅度調(diào)制而產(chǎn)生,發(fā)射電路中采用最常用的載頻38 kHz遙控器。調(diào)制方波可由16位可編程定時(shí)器對(duì)TimerA脈寬調(diào)制輸出引腳IOB8周期取反得到,而脈沖信號(hào)則由雙向I/O接口IOB6輸出。紅外發(fā)射電路如圖2所示。
3.3 紅外接收電路
紅外接收電路用于接收紅外信號(hào)并解調(diào)遙控器二進(jìn)制控制脈沖信號(hào)。該紅外接收電路采用HS0038。HS0038集光電轉(zhuǎn)換、解調(diào)和放大于一體,只需少數(shù)外接元件就能實(shí)現(xiàn)從紅外接收到輸出與TTL電平兼容的所有工作。HS0038輸出高電平,當(dāng)輸人為遙控信號(hào)時(shí),HS0038則輸出高低電平脈沖。接收的遙控碼是由一個(gè)低電平與一個(gè)高電平構(gòu)成,不同脈寬高低電平的組合組成不同控制碼。此設(shè)計(jì)將解調(diào)的信號(hào)直接輸入外部中斷源EXTI引腳IOB2,通過(guò)內(nèi)部中斷服務(wù)程序?qū)崿F(xiàn)脈沖的計(jì)數(shù)和存儲(chǔ)。紅外接收電路如圖3所示。
3.4 數(shù)據(jù)存儲(chǔ)電路
此設(shè)計(jì)選用24LC16實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)功能。24LC16是具有I2C接口的EEPROM,其容量為2 048×8位,分為8頁(yè),每頁(yè)256字節(jié),其較大的存儲(chǔ)空間和控制方式能夠滿足存儲(chǔ)及性能要求。將凌陽(yáng)SPCE061A的串行數(shù)據(jù)發(fā)射引腳(IOB10)與接收引腳(IOB7)相連,然后再與24LC16的串行I/O引腳SDA相連。由系統(tǒng)程序軟件提供這兩引腳的串行時(shí)鐘,即可完成數(shù)據(jù)的接收和發(fā)送。[!--empirenews.page--]
4 系統(tǒng)軟件設(shè)計(jì)
4.1 初始化程序
初始化程序的任務(wù)是清除存儲(chǔ)脈寬數(shù)據(jù)單元、關(guān)閉學(xué)習(xí)及發(fā)射指示燈,關(guān)閉遙控輸出口,設(shè)置相應(yīng)定時(shí)器模式,設(shè)置中斷等。
4.2 遙控碼讀入程序
遙控碼的學(xué)習(xí)處理程序主要是:將原控制器發(fā)送的脈沖依次存人存儲(chǔ)單元。其偶數(shù)地址單元存儲(chǔ)高電平脈寬數(shù)據(jù),奇數(shù)地址單元存儲(chǔ)低電平脈寬數(shù)據(jù)。數(shù)據(jù)均存入外存儲(chǔ)器24LC16中。
讀遙控碼讀人程序,通過(guò)大量、不同類型的遙控碼波形實(shí)驗(yàn)測(cè)試分析,遙控碼的幀間歇位寬均大于10 ms,起始位碼寬為100μs~20 ms,編碼位為100μs~3.5 ms。為確保大部分遙控器學(xué)習(xí)成功,采用方法:
(1)讀起始位法 由于起始位的碼寬范圍較大,因此技術(shù)單元采用單獨(dú)的2字節(jié),計(jì)數(shù)周期約15μs,按65 535×15μs計(jì)算,最大存儲(chǔ)起始位脈寬為983 ms。當(dāng)輸入為高電平時(shí),停止起始位計(jì)數(shù),進(jìn)入高電平計(jì)數(shù)。
(2)讀遙控碼法 采用1字節(jié)計(jì)數(shù)單元計(jì)數(shù)碼寬(高電平或低電平),當(dāng)電平跳變時(shí)計(jì)數(shù)結(jié)束,將數(shù)據(jù)存儲(chǔ)到規(guī)定地址。在高電平碼汁數(shù)時(shí),當(dāng)計(jì)數(shù)器值大于255(碼寬大于3.825ms),則為結(jié)束幀間隔位,在相應(yīng)存儲(chǔ)單元寫入數(shù)據(jù)0x00作為結(jié)束標(biāo)志。其程序流程如圖4所示。
4.3 遙控碼發(fā)射程序
遙控碼發(fā)射程序是將原存于存儲(chǔ)單元的脈沖數(shù)據(jù)通過(guò)38 kHz方波調(diào)制,將存儲(chǔ)的原始控制碼和載波相與,即可發(fā)送遙控脈沖碼。其程序流程如圖5所示。
4.4 主程序
系統(tǒng)主程序在完成上電初始化后,端口按鍵查詢。當(dāng)確認(rèn)有按鍵按下時(shí),從外部存儲(chǔ)器中調(diào)用相應(yīng)的遙控編碼將其發(fā)出。主程序流程如圖6所示。
5 結(jié)語(yǔ)
實(shí)驗(yàn)證明,該學(xué)習(xí)型紅外系統(tǒng)完全滿足實(shí)驗(yàn)需要。在學(xué)習(xí)遙控信號(hào)時(shí),綜合分析了大量紅外遙控碼,具有一定的通用性。遙控碼發(fā)射時(shí)不是采用硬件設(shè)計(jì)而是以軟件方式產(chǎn)生載波,這樣節(jié)約了硬件設(shè)備,簡(jiǎn)化了電路,有效實(shí)現(xiàn)紅外遙控信號(hào)的接收和發(fā)射。此學(xué)習(xí)型紅外遙控器已成功應(yīng)用于多媒體教室、智能家居、家庭集中控制器等遙控設(shè)備,獲得了滿意效果。當(dāng)然,由于目前遙控器信號(hào)尚未完全統(tǒng)一標(biāo)準(zhǔn),利用紅外學(xué)習(xí)技術(shù)并不能保證學(xué)習(xí)到所有電器設(shè)備的遙控器信號(hào),這也是學(xué)習(xí)型紅外今后的需要改進(jìn)的方向。