學習型紅外遙控器設計(3) 紅外遙控解碼學習

學習型紅外遙控器設計(0) 摘要   (1) 緒論  (2) 方案設計   (3) 遙控解碼   (4) 編碼還原  (5) 硬件實現   (6) 總結展望

如方案設計所述,製作紅外接收解碼裝置,該裝置至少具有面向用戶和設計者的兩種檢測方法,能夠完成採用RC-5編碼協議遙控器(SAA3010)的紅外接收和解碼,要求基於用戶的檢測方法簡單直觀,基於設計者的檢測能準確顯示解碼數據格式。

3.1  基本原理

3.1.1  紅外接收

接收部分的紅外接收管是一種光敏二極管。最近幾年不論是業餘製作還是正式產品,大多都採用成品紅外接收頭。成品紅外接收頭的封裝大致有兩種,如圖3.1所示:

圖3.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所示:

圖3.2  STC89C52RC單片機ISP編程電路

圖3.2 STC89C52RC單片機ISP編程電路

ISP技術的優勢是不需要編程器就可以進行單片機的實驗和開發,芯片可以直接焊接到電路板上,免去了調試時頻繁地插入取出芯片帶來的不便。

3.2  紅外接收解碼裝置設計

3.2.1  RS232串口紅外接收板

仿效網絡流行的PC遙控DIY製作[5],本文選取了電腦作爲紅外接收設備(基於用戶檢測方法)。

首先對接收板的原理作簡要介紹,RS232串口紅外接收板通過SM0038接收紅外信號,送至單片機AT89C2051的串口RXD,由軟件通過查詢採集紅外信號進行解碼,簡單處理後通過串口送至PC,PC軟件Grider3.2收到解碼信息按照預定義命令執行相應操作(比如顯示音量、運行軟件、關機等)。

RS232串口紅外接收板的電路設計如圖3.3所示:

圖3.3  RS232串口紅外接收板電路圖

圖3.3 RS232串口紅外接收板電路圖

上述電路圖有兩點需要注意:

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.4  RS232串口紅外接收板軟件流程圖

圖3.4 RS232串口紅外接收板軟件流程圖

3.2.2  帶液晶顯示的紅外接收板

帶液晶顯示的紅外接收板的解碼部分跟RS232串口紅外接收板大致相同,不同在於增加顯示功能、更換單片機型號爲AT89S52,顯示部分採用型號爲12864帶漢字字庫的液晶屏(全屏最多可顯示4*8個字符)。單片機AT89S52運行速度高(可支持24M晶振),片上資源豐富(8K字節程序存儲器,256字節數據存儲器),藉助P3_2引腳接收紅外信號,經過軟件處理,分離出起始碼、控制碼、系統碼、用戶碼,然後送顯示。

帶液晶顯示的紅外接收板的硬件電路如圖3.5所示:

圖3.5  帶液晶顯示紅外接收板電路圖

圖3.5 帶液晶顯示紅外接收板電路圖

帶液晶顯示的紅外接收板的軟件流程如圖3.6所示:

圖3.6  帶液晶顯示紅外接收板軟件流程圖

圖3.6 帶液晶顯示紅外接收板軟件流程圖

3.2.3  製作遙控矩陣表

利用帶液晶顯示的紅外接收板製作,本文解析SAA3010遙控器所有按鍵編碼,製作了SAA3010遙控矩陣表,如表3.1所示:

 表3.1  SAA3010遙控矩陣表

image045 按鍵 起始(2b) 控制(1b) 系統碼(5b) 指令碼(6b) 全碼(14b)
開關 11 1 00000 001100 11100000001100
靜音 11 1 00000 001101 11100000001101
1 11 1 00000 000001 11100000000001
2 11 1 00000 000010 11100000000010
3 11 1 00000 000011 11100000000011
4 11 1 00000 000100 11100000000100
5 11 1 00000 000101 11100000000101
6 11 1 00000 000110 11100000000110
7 11 1 00000 000111 11100000000111
8 11 1 00000 001000 11100000001000
9 11 1 00000 001001 11100000001001
0 11 1 00000 000000 11100000000000
單雙 11 1 00000 001010 11100000001010
調諧 11 1 00000 011110 11100000011110
節目+ 11 1 00000 100000 11100000100000
節目- 11 1 00000 100001 11100000100001
微調+ 11 1 00000 101011 11100000101011
微調- 11 1 00000 101100 11100000101100
音量+ 11 1 00000 010000 11100000010000
存儲 11 1 00000 101001 11100000101001
召回 11 1 00000 001111 11100000001111
音量- 11 1 00000 010001 11100000010001
愛好 11 1 00000 001110 11100000001110
定時 11 1 00000 100110 11100000100110
對比+ 11 1 00000 011100 11100000011100
色彩+ 11 1 00000 010100 11100000010100
亮度+ 11 1 00000 010010 11100000010010
錄像 11 1 00000 111000 11100000111000
對比- 11 1 00000 011101 11100000011101
色彩- 11 1 00000 010101 11100000010101
亮度- 11 1 00000 010011 11100000010011
電視 11 1 00000 111111 11100000111111

以上編碼信息均符合按照RC-5協議,其中的控制碼每按鍵一次,其值反轉一次。

3.3  裝置性能檢測

裝置性能檢測之前,先給出兩個裝置的實物圖,分別如圖3.7、圖3.8所示:

圖3.7  RS232串口紅外接收板

圖3.7 RS232串口紅外接收板

 

圖3.8  帶液晶顯示的紅外接收板

圖3.8 帶液晶顯示的紅外接收板

3.3.1  紅外干擾測試

由於遙控器多數時間用於室內,爲此本文選擇了帶有日光燈的寢室作爲測試環境,如圖3.9所示:

圖3.9  測試環境

圖3.9 測試環境

以上測試環境中充滿了紅外輻射源,如日光燈、人體等,所以必然造成紅外接收受到干擾,藉助串口調試工具,在遙控器沒有工作的情況下,打開日光燈,並將手掌置於遙控接收頭周圍,串口接收情況如圖3.10所示:

圖3.10  串口調試工具接收干擾信號

圖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.11  串口調試助手接收遙控器信號

圖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所示:

圖3.12  gider3.2界面

圖3.12 gider3.2界面

按照測試要求對SAA3010遙控器部分按鍵進行預定義,如表3.4所示:

表3.4  遙控器的部分按鍵功能定義

1 2 3 4
界面窗口居中 界面窗口位於左上角 顯示一張照片 顯示音量
5 6 7 8
增加音量 靜音顯示 屏幕保護 關閉顯示

 

測試的結果如圖3.13、圖3.14所示:

圖3.13  靜音顯示

圖3.13 靜音顯示

圖3.14  音量顯示

圖3.14 音量顯示

這說明裝置成功的實現了遙控PC操作,遙控接收板接收解碼有效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章