紅外通訊,顧名思義,就是通過紅外線傳輸數(shù)據(jù)。在電腦技術(shù)發(fā)展早期,數(shù)據(jù)都是通過線纜傳輸?shù)?,線纜傳輸連線麻煩,需要特制接口,頗為不便。于是后來就有了紅外、藍(lán)牙、802.11等無線數(shù)據(jù)傳輸技術(shù)。在紅外通訊技術(shù)發(fā)展早期,存在好幾個(gè)紅外通訊標(biāo)準(zhǔn),不同標(biāo)準(zhǔn)之間的紅外設(shè)備不能進(jìn)行紅外通訊。為了使各種紅外設(shè)備能夠互聯(lián)互通,1993年,由二十多個(gè)大廠商發(fā)起成立了紅外數(shù)據(jù)協(xié)會(huì)(IrDA),統(tǒng)一了紅外通訊的標(biāo)準(zhǔn),這就是目前被廣泛使用的IrDA紅外數(shù)據(jù)通訊協(xié)議及規(guī)范。
紅外通信與無線通信相比有何優(yōu)勢(shì)
紅外通信是以紅外線作為載體來傳送數(shù)據(jù)信息。它作為無線通信的一種,與無線電通信相比,由于其性能價(jià)格比高,實(shí)現(xiàn)簡(jiǎn)單,具有抗電磁干擾、便于高速應(yīng)用、空間接入靈活、經(jīng)濟(jì)的特點(diǎn),可用于室內(nèi)外實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、無線紅外LAN通信及軍用紅外引信,在移動(dòng)計(jì)算和移動(dòng)通訊的設(shè)備中獲得了廣泛的應(yīng)用。
在某些場(chǎng)合,需要數(shù)據(jù)交換但又不是很大,且實(shí)時(shí)性要求又不是很高的情況下,可以使用紅外通訊方式,這樣既可以得到無繩化通信帶來的便利,又可以避開采用無線電高頻電路可能引發(fā)的一些問題。譬如用于家用電器的遙控器,計(jì)算機(jī)的遙控鍵盤和遙控鼠標(biāo)以及便攜式數(shù)據(jù)收集裝置(煤水電表的登錄器、報(bào)稅機(jī))與主機(jī)的數(shù)據(jù)交換等。
目前,利用紅外線進(jìn)行無線數(shù)據(jù)通信,無論從小型化、輕量化,還是從安全性等方面考慮,其可行性都比較高,并且已經(jīng)在無線多信道室內(nèi)話音系統(tǒng),無繩電話以及鍵盤和終端間的短距離無線連接中得到了應(yīng)用。所有這些應(yīng)用中的工作帶寬遠(yuǎn)低于WLAN需要的帶寬。
遙控紅外通信原理
在實(shí)際的通信領(lǐng)域,發(fā)出來的信號(hào)一般有較寬的頻譜,而且都是在比較低的頻率段分布大量的能量,所以稱之為基帶信號(hào),這種信號(hào)是不適合直接在信道中傳輸?shù)?。為便于傳輸、提高抗干擾能力和有效的利用帶寬,通常需要將信號(hào)調(diào)制到適合信道和噪聲特性的頻率范圍內(nèi)進(jìn)行傳輸,這就叫做信號(hào)調(diào)制。在通信系統(tǒng)的接收端要對(duì)接收到的信號(hào)進(jìn)行解調(diào),恢復(fù)出原來的基帶信號(hào)。這部分通信原理的內(nèi)容,大家了解一下即可。
我們平時(shí)用到的紅外遙控器里的紅外通信,通常是使用38K左右的載波進(jìn)行調(diào)制的,下面我把原理大概給大家介紹一下,了解一下,先看發(fā)送部分原理。
調(diào)制:就是用待傳送信號(hào)去控制某個(gè)高頻信號(hào)的幅度、相位、頻率等參量變化的過程,即用一個(gè)信號(hào)去裝載另一個(gè)信號(hào)。比如我們的紅外遙控信號(hào)要發(fā)送的時(shí)候,先經(jīng)過38K調(diào)制,如圖1所示。
圖1 紅外信號(hào)調(diào)制
原始信號(hào)就是我們要發(fā)送的一個(gè)數(shù)據(jù)“0”位或者一位數(shù)據(jù)“1”位,而所謂38K載波就是頻率為38K的方波信號(hào),調(diào)制后信號(hào)就是最終我們發(fā)射出去的波形。我們使用原始信號(hào)來控制38K載波,當(dāng)信號(hào)是數(shù)據(jù)“0”的時(shí)候,38K載波毫無保留的全部發(fā)送出去,當(dāng)信號(hào)是數(shù)據(jù)“1”的時(shí)候,不發(fā)送任何載波信號(hào)。
那在原理上,我們?nèi)绾螐碾娐返慕嵌热?shí)現(xiàn)這個(gè)功能呢?如圖2所示。
圖2 紅外發(fā)射原理圖
38K載波,我們可以用455K晶振,經(jīng)過12分頻得到37.91K,也可以由時(shí)基電路NE555來產(chǎn)生,或者使用單片機(jī)的PWM來產(chǎn)生。當(dāng)信號(hào)輸出引腳輸出高電平時(shí),Q2截止,不管38K載波信號(hào)如何控制Q1,右側(cè)的豎向支路都不會(huì)導(dǎo)通,紅外管L1不會(huì)發(fā)送任何信息。當(dāng)信號(hào)輸出是低電平的時(shí)候,那么38K載波就會(huì)通過Q1釋放出來,在L1上產(chǎn)生38K的載波信號(hào)。這里要說明的是,大多數(shù)家電遙控器的38K的占空比是1/3,也有1/2的,但是相對(duì)少一些。
正常的通信來講,接收端要首先對(duì)信號(hào)通過監(jiān)測(cè)、放大、濾波、解調(diào)等等一系列電路處理,然后輸出基帶信號(hào)。但是紅外通信的一體化接收頭HS0038B,已經(jīng)把這些電路全部集成到一起了,我們只需要把這個(gè)電路接上去,就可以直接輸出我們所要的基帶信號(hào)了,如圖3所示。
圖3 紅外接收原理圖
由于紅外接收頭內(nèi)部放大器的增益很大,很容易引起干擾,因此在接收頭供電引腳上必須加上濾波電容,官方手冊(cè)給的值是4.7uF,我們這里直接用的10uF,手冊(cè)里還要求在供電引腳和電源之間串聯(lián)100歐的電阻,進(jìn)一步降低干擾。
圖3所示的電路,用來接收?qǐng)D16-5電路發(fā)送出來的波形,當(dāng)HS0038監(jiān)測(cè)到有38K的紅外信號(hào)時(shí),就會(huì)在OUT引腳輸出低電平,當(dāng)沒有38K的時(shí)候,OUT引腳就會(huì)輸出高電平。那我們把OUT引腳接到單片機(jī)的IO口上,通過編程,就可以獲取紅外通信發(fā)過來的數(shù)據(jù)了。
大家想想,OUT引腳輸出的數(shù)據(jù)是不是又恢復(fù)成為基帶信號(hào)數(shù)據(jù)了呢?那我們單片機(jī)在接收這個(gè)基帶信號(hào)數(shù)據(jù)的時(shí)候,如何判斷接收到的是什么數(shù)據(jù),應(yīng)該遵循什么協(xié)議呢?像我們前邊學(xué)到的UART、I2C、SPI等通信協(xié)議都是基帶通信的通信協(xié)議,而紅外的38K僅僅是對(duì)基帶信號(hào)進(jìn)行調(diào)制解調(diào),讓信號(hào)更適合在信號(hào)中傳輸。
由于我們的紅外調(diào)制信號(hào)是半雙工的,而且同時(shí)空間只能允許一個(gè)信號(hào)源,所以我們紅外的基帶信號(hào)不適合在I2C或者SPI通信協(xié)議中進(jìn)行的,我們前邊提到過UART雖然是2條線,但是通信的時(shí)候,實(shí)際上一條線即可,所以紅外可以在UART中進(jìn)行通信。當(dāng)然,這個(gè)通信也不是沒有限制的,比如在HS0038B的數(shù)據(jù)手冊(cè)中標(biāo)明,要想讓HS0038B識(shí)別到38K的紅外信號(hào),那么這個(gè)38K的載波必須要大于10個(gè)周期,這就限定了我們紅外通信的基帶信號(hào)的比特率必須不能高于3800,那如果把串口輸出的信號(hào)直接用38K調(diào)制的話,波特率也就不能高于3800。
常用紅外遙控器協(xié)議
一、 NEC 協(xié)議
特征:
8 位地址和 8 位命令長(zhǎng)度為提高可靠性每次傳輸兩遍地址(用戶碼)和命令(按鍵值)通過脈沖串之間的時(shí)間間隔來實(shí)現(xiàn)信號(hào)的調(diào)制 38Khz 載波每位的周期為 1.12ms 或者 2.25ms
調(diào)制方式:
Note:對(duì)于測(cè)試紅外接收頭的信號(hào)來說,有脈沖信號(hào)的地方就是高電平。即邏輯“1” 為 0.56ms 高電平+1.69ms 低電平,邏輯“0”為 0.56ms 高電平+0.56ms 低電平。
協(xié)議:
上圖為典型的 NEC 協(xié)議傳輸格式,起始位(引導(dǎo)碼)為 9ms 高+4.5ms 低組成,有效數(shù)據(jù)為地址+地址反碼+命令+命令反碼。反碼的作用是用來校準(zhǔn)前面的地址和命令,如果對(duì)可靠性不感興趣,也可以去掉取反的數(shù)據(jù),或者將地址和命令擴(kuò)展到 16 位
上圖傳輸?shù)牡刂窋?shù)據(jù)為 10011010,需要注意的是先發(fā)低位地址再發(fā)高位地址,因此該波形的地址為 01011001=0X59,同理,命令為 00010110=0X16。
長(zhǎng)按鍵時(shí),如下圖所示,每隔 110ms 重復(fù)發(fā)送一次,但是命令只發(fā)送一次,重復(fù)發(fā)送的是 9ms 高電平+2.25ms 低電平+0.56ms 高電平+低電平
擴(kuò)展協(xié)議:
擴(kuò)展協(xié)議只是將地址改為 16 位,其他不變。
實(shí)測(cè)波形:
下面的波形是從紅外接收頭上得到的波形:(調(diào)制脈沖信號(hào)轉(zhuǎn)變成高低電平了)
由于紅外接收頭在接收信號(hào)時(shí)(或者是發(fā)送的時(shí)候)將波形反向了,因此在讀數(shù)據(jù)時(shí)可以將示波器的反向功能打開,就能讀到有效數(shù)據(jù)了。
下面實(shí)例是已知 NEC 類型遙控器所截獲的波形:
遙控器的識(shí)別碼是 Address=0xDD20;其中一個(gè)鍵值是 Command=0x0E
最后一位是一個(gè)邏輯“1”。
二、 Philips RC5 協(xié)議
特征:
5 位地址和 6 位命令長(zhǎng)度(擴(kuò)展協(xié)議用 7 位)
雙向編碼或者叫曼徹斯特編碼(即電平的變化來表示邏輯 0 和 1)
36Khz 載波
每位的周期為 1.778ms(64 cycles of 36 kHz)
調(diào)制方式:
協(xié)議:
一段數(shù)據(jù)包含 14 位,周期長(zhǎng)度為 25ms。
前兩位是起始位 S 通常都是邏輯 1。
在 RC5 擴(kuò)展模式下第二位 S2 將 6 位命令代碼擴(kuò)充到 7 位代碼(作為高位 MSB),這樣可以從 64 個(gè)鍵值擴(kuò)充到 128 個(gè)鍵值。
第三位是控制位 C 它在每按下了一個(gè)鍵后翻轉(zhuǎn),這樣就可以區(qū)分一個(gè)鍵到底是一直按著沒松手還是松手后重復(fù)按。
長(zhǎng)按鍵時(shí),數(shù)據(jù)每隔 114ms 重復(fù)發(fā)送一次,第三位不發(fā)生翻轉(zhuǎn),即重復(fù)發(fā)送的信號(hào)是完全一致的。
實(shí)測(cè)波形:
連續(xù)按同一個(gè)鍵兩次時(shí),只有第三位發(fā)生翻轉(zhuǎn),其他位不變
從上面波形可以讀出該段數(shù)據(jù)的值為 101 01010 010111,由于該協(xié)議為 RC5 擴(kuò)展協(xié)議,即第二位作為命令的第七位,因此地址為 01010=0X0A,命令為 0010111=0X17。(實(shí)際遙控器廠商給出的命令為 57,可能是將第二位反相后作為命令的第七位)。
三、 Sony SIRC 協(xié)議
特征:
有 12,15,20 位三種模式(下面介紹的 12 位模式)
5 位地址和 7 位命令長(zhǎng)度
脈沖寬度編碼
40Khz 載波
每位的周期為 1.2ms 或 1.8ms
調(diào)制方式:
協(xié)議:
起始位為 2.4ms 高電平+0.6ms 低電平;
長(zhǎng)按鍵時(shí),數(shù)據(jù)每隔 45ms 重復(fù)發(fā)送一次。
實(shí)測(cè)波形:
從上面波形可以讀出該段數(shù)據(jù)的值為 1001000 10000 cmd:0001001 addr: 00001.
四、其他
1、ITT
2、JVC
3、Nokia NRC17
4、RCA
5、Sharp
6、X-Sat
評(píng)論
查看更多