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