學習型紅外遙控器設計(0)
摘要 (1)
緒論 (2)
方案設計 (3)
遙控解碼 (4)
編碼還原 (5)
硬件實現 (6)
總結展望
如方案設計所述,製作紅外接收解碼裝置,該裝置至少具有面向用戶和設計者的兩種檢測方法,能夠完成採用RC-5編碼協議遙控器(SAA3010)的紅外接收和解碼,要求基於用戶的檢測方法簡單直觀,基於設計者的檢測能準確顯示解碼數據格式。
3.1 基本原理
3.1.1 紅外接收
接收部分的紅外接收管是一種光敏二極管。最近幾年不論是業餘製作還是正式產品,大多都採用成品紅外接收頭。成品紅外接收頭的封裝大致有兩種,如圖3.1所示:
成品紅外接收頭均有三隻引腳,即VDD(5V)、GND和OUT。當紅外接收頭接收到38KHZ紅外載波引腳OUT爲低電平,否則爲高電平(5V),供單片機查詢。紅外遙控常用的載波頻率爲38kHz,它是由專用編碼芯片的晶振(一般455kHz)12分頻得到的。
3.1.2 ISP技術
ISP(In-System Programming)即在系統編程技術,指電路板上的空白器件可以編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經編程的器件也可以用ISP方式擦除或再編程。
ISP技術是未來發展方向,實現簡單,一般做法是內部的存儲器可以由上位機的軟件通過串口來改寫。對於單片機來講可以通過SPI或其它的串行接口接收上位機傳來的數據並寫入存儲器中。所以將芯片焊接在電路板上,只要留出串口,就可以實現芯片內部存儲器的改寫,無須再取下芯片,ISP革命性編程方式使得修改程序的容易程度接近仿真器。
參考STC89C52RC的datasheet,得到其ISP編程電路如圖3.2所示:
ISP技術的優勢是不需要編程器就可以進行單片機的實驗和開發,芯片可以直接焊接到電路板上,免去了調試時頻繁地插入取出芯片帶來的不便。
3.2 紅外接收解碼裝置設計
3.2.1 RS232串口紅外接收板
仿效網絡流行的PC遙控DIY製作[5],本文選取了電腦作爲紅外接收設備(基於用戶檢測方法)。
首先對接收板的原理作簡要介紹,RS232串口紅外接收板通過SM0038接收紅外信號,送至單片機AT89C2051的串口RXD,由軟件通過查詢採集紅外信號進行解碼,簡單處理後通過串口送至PC,PC軟件Grider3.2收到解碼信息按照預定義命令執行相應操作(比如顯示音量、運行軟件、關機等)。
RS232串口紅外接收板的電路設計如圖3.3所示:
上述電路圖有兩點需要注意:
1、串口竊電,電腦串口被打開後,RS232的4和7腳電平會發生變化,產生高於10V的電壓,通過整流二極管D1和D2,採用電阻R2分壓後得到5.1V的穩壓(通過穩壓二極管D3實現),再加上串口供電電流最大20mA,基本滿足供電要求。
2、串口通信,單片機的串口一般使用TTL正邏輯電平標準,其邏輯1電平是5V,邏輯0電平是0V,而電腦串行口所使用的是RS232C的負邏輯電平標準,它的邏輯1電平是-3V--12V,邏輯0電平是+3V-+12V。兩者的電平範圍相差很遠,所以連接時需要用到電平轉換電路,一般來說商業化的成品會用到MAX232,DS275等專用的RS232、TTL電平轉換集成電路,由於系統採用波特率爲9600,要求不高,故依據經驗使用小功率三極管搭建的電平轉換電路,節約設計成本。
RS232串口紅外接收板的軟件流程如圖3.4所示:
3.2.2 帶液晶顯示的紅外接收板
帶液晶顯示的紅外接收板的解碼部分跟RS232串口紅外接收板大致相同,不同在於增加顯示功能、更換單片機型號爲AT89S52,顯示部分採用型號爲12864帶漢字字庫的液晶屏(全屏最多可顯示4*8個字符)。單片機AT89S52運行速度高(可支持24M晶振),片上資源豐富(8K字節程序存儲器,256字節數據存儲器),藉助P3_2引腳接收紅外信號,經過軟件處理,分離出起始碼、控制碼、系統碼、用戶碼,然後送顯示。
帶液晶顯示的紅外接收板的硬件電路如圖3.5所示:
帶液晶顯示的紅外接收板的軟件流程如圖3.6所示:
3.2.3 製作遙控矩陣表
利用帶液晶顯示的紅外接收板製作,本文解析SAA3010遙控器所有按鍵編碼,製作了SAA3010遙控矩陣表,如表3.1所示:
表3.1 SAA3010遙控矩陣表
以上編碼信息均符合按照RC-5協議,其中的控制碼每按鍵一次,其值反轉一次。
3.3 裝置性能檢測
裝置性能檢測之前,先給出兩個裝置的實物圖,分別如圖3.7、圖3.8所示:
3.3.1 紅外干擾測試
由於遙控器多數時間用於室內,爲此本文選擇了帶有日光燈的寢室作爲測試環境,如圖3.9所示:
以上測試環境中充滿了紅外輻射源,如日光燈、人體等,所以必然造成紅外接收受到干擾,藉助串口調試工具,在遙控器沒有工作的情況下,打開日光燈,並將手掌置於遙控接收頭周圍,串口接收情況如圖3.10所示:
按照Grider32的要求,單片機一次發送的數據爲6個字節,其中前三個字節相同,後三個字節相同,故串口得到的干擾信號解碼後得到數據如表3.2所示:
表3.2 干擾數據
D7 D7 D7 FC FC FC | C7 C7 C7 F8 F8 F8 |
E3 E3 E3 FE FE FE | E3 E3 E3 FC FC FC |
F1 F1 F1 FE FE FE | F1 F1 F1 FE FE FE |
CF CF CF F8 F8 F8 | CF CF CF F8 F8 F8 |
E7 E7 E7 FC FC FC | C7 C7 C7 FC FC FC |
E3 E3 E3 FE FE FE | E3 E3 E3 FE FE FE |
8F8F8F F1 F1 F1 | E3 E3 E3 FC FC FC |
C7 C7 C7 F8 F8 F8 | E3 E3 E3 FE FE FE |
E3 E3 E3 FC FC FC | 8F8F8F F1 F1 F1 |
F1 F1 F1 FE FE FE | C7 C7 C7 F8 F8 F8 |
8F8F8F F1 F1 F1 | E3 E3 E3 FC FC FC |
C7 C7 C7 F8 F8 F8 | F1 F1 F1 FE FE FE |
E3 E3 E3 FC FC FC | 8F8F8F F1 F1 F1 |
F1 F1 F1 FE FE FE | C7 C7 C7 FE FE FE |
8F8F8F F9 F9 F9 |
數據的波動正是外界紅外輻射源隨機信號的體現,通過反覆測試發現,人體對於接收的影響最大,處於三米外的日關燈只有在開啓和關閉時刻產生干擾,處於0.5m範圍外的人體干擾基本可以忽略,爲此遙控接收板使用時儘量遠離人體(2-3m),據此,將遙控作爲發射裝置,電腦串口接收情況如圖3.11所示:
接收的數據如表3.3所示:
表3.3 正確數據
55 55 55 D2 D2 D2 | 55 55 55 B2 B2 B2 |
55 55 55 D2 D2 D2 | 55 55 55 B2 B2 B2 |
55 55 55 D3 D3 D3 | 55 55 55 B3 B3 B3 |
55 55 55 D3 D3 D3 | 55 55 55 B3 B3 B3 |
55 55 55 AB AB AB | 55 55 55 B4 B4 B4 |
55 55 55 AB AB AB | 55 55 55 B4 B4 B4 |
55 55 55 AC AC AC | 55 55 55 B5 B5 B5 |
55 55 55 AC AC AC | 55 55 55 B5 B5 B5 |
55 55 55 AC AC AC | 55 55 55 CA CA CA |
55 55 55 AD AD AD |
不難發現,接收的數據穩定性較好,沒有干擾出現,這說明上述使用策略是有效的。
3.3.2 紅外解碼測試
從用戶的角度考慮,本文選取grider32作爲上位機軟件,測試遙控接收有效性。Girder是個能接收幾乎任何計算機輸入(鍵盤、遙控器、網絡等等),並利用這些信號來控制你的計算機,如千千靜聽、暴風影音或是關閉計算機。Girder能控制紅外線接收裝置、各種serial(RS-232)裝置等等。Girder操作界面如圖3.12所示:
按照測試要求對SAA3010遙控器部分按鍵進行預定義,如表3.4所示:
表3.4 遙控器的部分按鍵功能定義
1 | 2 | 3 | 4 |
界面窗口居中 | 界面窗口位於左上角 | 顯示一張照片 | 顯示音量 |
5 | 6 | 7 | 8 |
增加音量 | 靜音顯示 | 屏幕保護 | 關閉顯示 |
測試的結果如圖3.13、圖3.14所示:
這說明裝置成功的實現了遙控PC操作,遙控接收板接收解碼有效。