新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用微處理器I/O口控制紅外接收設備

用微處理器I/O口控制紅外接收設備

——
作者:羅國發(fā) 時間:2013-02-21 來源:電子產品世界 收藏

  紅外遙控是一種無線、非接觸控制技術,具有抗干擾,電路簡單,容易編碼和解碼,功耗小,成本低等優(yōu)點,幾乎適用于所有家電的控制,并越來越多地應用到計算機系統(tǒng)中。出于項目需要,要對一個內部程序未知的設備實現控制,我們把設備自帶的紅外接收頭作為切入點。

本文引用地址:http://2s4d.com/article/142182.htm

  項目使用的是GOSSAT(高斯賽特)的GSR—S80 S型數字衛(wèi)星接收機,設備配套有一個,單憑外觀無法知道它所使用紅外協(xié)議的種類,如果有示波器的話,就可以捕捉信號波形并進行分析。

  紅外接收頭的種類很多,引腳定義也不相同,一般都有三個引腳,包括供電腳,接地和信號輸出腳。常見的接收頭型號有0038和1838。從外形上看,項目用的接收機使用的是0038接收頭。

  項目使用的是ATTEN(安泰信)的ADS-1102C數字示波器。把接收頭的信號輸出腳和地腳引出來,接入示波器,捕捉波形時建議用25ms/div的時間間隔比較方便,之后再放大到2.5ms/div進行查看和分析。鑒定有沒輸出信號的小技巧,打開手機的拍照功能,對著的紅外發(fā)射管,此時按下遙控器上任意一個鍵,如果手機屏幕上能看到發(fā)射管發(fā)出了紅紫光,說明遙控器是正常的。

  經過分析捕捉到的波形得知,項目所用接收機采用的是紅外協(xié)議。查閱協(xié)議的資料,其特征如下:

  (1)8位地址和8位指令長度;

  (2)地址和命令2次傳輸(確??煽啃?;

  (3)PWM脈沖位置調制,以發(fā)射紅外載波的占空比代表“0”和“1””;

  (4)載波頻率為38kHz;

  (5)位時間為1.125ms或2.25ms;

  碼的位定義:一個脈沖對應560μs的連續(xù)載波,一個邏輯1傳輸需要560μs脈沖+1680μs低電平,一個邏輯0的傳輸需要560μs脈沖+560μs低電平。而遙控接收頭在收到脈沖的時候為低電平,在沒有脈沖的時候為高電平,這樣,我們在接收頭端收到的信號是反相的:邏輯1是560μs低+1680ms高,邏輯0是560μs低+560μs高。

  NEC遙控指令的數據格式為:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。同步碼由一個9ms的低電平和一個4.5ms的高電平組成,地址碼、地址反碼、控制碼、控制反碼均是8位數據格式。按照低位在前,高位在后的順序發(fā)送。采用反碼是為了增加傳輸的可靠性(可用于校驗)。

  NEC碼規(guī)定的連發(fā)碼(由9ms低電平+2.5m高電平+0.56ms低電平+97.94ms高電平組成),發(fā)送完后40ms,遙控再發(fā)送一個9ms低,2ms高的脈沖,表示按鍵的次數,出現一次則表示只按下了一次,如果出現多次,則可以認為是持續(xù)按下該鍵。

  知道協(xié)議之后,我們就可以進一步分析出遙控器的地址碼和各個按鍵的控制碼。項目所用接收機有點特殊,通過示波器去看,得出地址正碼是0xA1,地址反碼是0xDE,其余位都取反了,唯獨最高位都是1,這個不同于常規(guī)。

  之后的控制碼,由于按鍵數量多,可以編寫一個紅外解碼程序來解出這些鍵值,之后再用示波器來抽檢幾個,用于保證解出來的控制碼的正確性,這是很關鍵的一步,不可小視。

  之后就可以開始進行的虛擬NEC工作了,項目采用STM32作為主控芯片,這里的功能只需要用到一個普通,我們使用的是PA14。硬件上只需把PA14連接到紅外接收頭的信號輸出腳,地腳和STM32共地就可以了。

  關于STM32的設置說明,每個I/O口可以自由編程,單I/O口寄存器必須要按32位字被訪問。STM32的每個I/O端口都由7個寄存器來控制。其中CRL和CRH控制著每個I/O口的模式及輸出速率,對ODR賦值可以改變對應位I/O口的高低電平。

萬能遙控器相關文章:萬能遙控器代碼




關鍵詞: NEC I/O 遙控器

評論


相關推薦

技術專區(qū)

關閉
×

有奖问卷
英飞凌400V CoolSiC™重新定义高性能电源设计的功率密度和效率,含有奖小问卷,限前200名工程师!