導航:首頁 > 操作系統 > 單片機紅外通信原理

單片機紅外通信原理

發布時間:2022-12-14 12:39:16

1. 用51單片機製作學習型紅外遙控器的原理

以下是程序,調試成功,LCD1602顯示

//本解碼程序適用於NEC的upd6121及其兼容晶元的解碼,支持大多數遙控器實驗板採用11.0592MHZ晶振

#include<reg52.h>//包含單片機寄存器的頭文件

#include<intrins.h>//包含_nop_()函數定義的頭文件

sbitIR=P3^2;//將IR位定義為P3.2引腳

sbitRS=P2^0;//寄存器選擇位,將RS位定義為P2.0引腳

sbitRW=P2^1;//讀寫選擇位,將RW位定義為P2.1引腳

sbitE=P2^2;//使能信號位,將E位定義為P2.2引腳

sbitBF=P0^7;//忙碌標志位,,將BF位定義為P0.7引腳

sbitBEEP=P3^6;//蜂鳴器控制埠P36

unsignedcharflag;

unsignedcharcodestring[]={"1602IR-CODETEST"};

unsignedchara[4];//儲存用戶碼、用戶反碼與鍵數據碼、鍵數據反碼

unsignedintLowTime,HighTime;//儲存高、低電平的寬度

/*****************************************************

函數功能:延時1ms

***************************************************/

voiddelay1ms()

{

unsignedchari,j;

for(i=0;i<10;i++)

for(j=0;j<33;j++)

;

}

/*****************************************************

函數功能:延時若干毫秒

入口參數:n

***************************************************/

voiddelay(unsignedcharn)

{

unsignedchari;

for(i=0;i<n;i++)

delay1ms();

}

/*********************************************************/

voidbeep()//蜂鳴器響一聲函數

{

unsignedchari;

for(i=0;i<100;i++)

{

delay1ms();

BEEP=!BEEP;//BEEP取反

}

BEEP=1;//關閉蜂鳴器

delay(250);//延時

}

/*****************************************************

函數功能:判斷液晶模塊的忙碌狀態

返回值:result。result=1,忙碌;result=0,不忙

***************************************************/

unsignedcharBusyTest(void)

{

bitresult;

RS=0;//根據規定,RS為低電平,RW為高電平時,可以讀狀態

RW=1;

E=1;//E=1,才允許讀寫

_nop_();//空操作

_nop_();

_nop_();

_nop_();//空操作四個機器周期,給硬體反應時間

result=BF;//將忙碌標志電平賦給result

E=0;

returnresult;

}

/*****************************************************

函數功能:將模式設置指令或顯示地址寫入液晶模塊

入口參數:dictate

***************************************************/

voidWriteInstruction(unsignedchardictate)

{

while(BusyTest()==1);//如果忙就等待

RS=0;//根據規定,RS和R/W同時為低電平時,可以寫入指令

RW=0;

E=0;//E置低電平(根據表8-6,寫指令時,E為高脈沖,

//就是讓E從0到1發生正跳變,所以應先置"0"

_nop_();

_nop_();//空操作兩個機器周期,給硬體反應時間

P0=dictate;//將數據送入P0口,即寫入指令或地址

_nop_();

_nop_();

_nop_();

_nop_();//空操作四個機器周期,給硬體反應時間

E=1;//E置高電平

_nop_();

_nop_();

_nop_();

_nop_();//空操作四個機器周期,給硬體反應時間

E=0;//當E由高電平跳變成低電平時,液晶模塊開始執行命令

}

/*****************************************************

函數功能:指定字元顯示的實際地址

入口參數:x

***************************************************/

voidWriteAddress(unsignedcharx)

{

WriteInstruction(x|0x80);//顯示位置的確定方法規定為"80H+地址碼x"

}

/*****************************************************

函數功能:將數據(字元的標准ASCII碼)寫入液晶模塊

入口參數:y(為字元常量)

***************************************************/

voidWriteData(unsignedchary)

{

while(BusyTest()==1);

RS=1;//RS為高電平,RW為低電平時,可以寫入數據

RW=0;

E=0;//E置低電平(根據表8-6,寫指令時,E為高脈沖,

//就是讓E從0到1發生正跳變,所以應先置"0"

P0=y;//將數據送入P0口,即將數據寫入液晶模塊

_nop_();

_nop_();

_nop_();

_nop_();//空操作四個機器周期,給硬體反應時間

E=1;//E置高電平

_nop_();

_nop_();

_nop_();

_nop_();//空操作四個機器周期,給硬體反應時間

E=0;//當E由高電平跳變成低電平時,液晶模塊開始執行命令

}

/*****************************************************

函數功能:對LCD的顯示模式進行初始化設置

***************************************************/

voidLcdInitiate(void)

{

delay(15);//延時15ms,首次寫指令時應給LCD一段較長的反應時間

WriteInstruction(0x38);//顯示模式設置:16×2顯示,5×7點陣,8位數據介面

delay(5);//延時5ms

WriteInstruction(0x38);

delay(5);

WriteInstruction(0x38);

delay(5);

WriteInstruction(0x0C);//顯示模式設置:顯示開,有游標,游標閃爍

delay(5);

WriteInstruction(0x06);//顯示模式設置:游標右移,字元不移

delay(5);

WriteInstruction(0x01);//清屏幕指令,將以前的顯示內容清除

delay(5);

}

/************************************************************

函數功能:對4個位元組的用戶碼和鍵數據碼進行解碼

說明:解碼正確,返回1,否則返回0

出口參數:dat

*************************************************************/

bitDeCode(void)

{

unsignedchari,j;

unsignedchartemp;//儲存解碼出的數據

for(i=0;i<4;i++)//連續讀取4個用戶碼和鍵數據碼

{

for(j=0;j<8;j++)//每個碼有8位數字

{

temp=temp>>1;//temp中的各數據位右移一位,因為先讀出的是高位數據

TH0=0;//定時器清0

TL0=0;//定時器清0

TR0=1;//開啟定時器T0

while(IR==0)//如果是低電平就等待

;//低電平計時

TR0=0;//關閉定時器T0

LowTime=TH0*256+TL0;//保存低電平寬度

TH0=0;//定時器清0

TL0=0;//定時器清0

TR0=1;//開啟定時器T0

while(IR==1)//如果是高電平就等待

;

TR0=0;//關閉定時器T0

HighTime=TH0*256+TL0;//保存高電平寬度

if((LowTime<370)||(LowTime>640))

return0;//如果低電平長度不在合理范圍,則認為出錯,停止解碼

if((HighTime>420)&&(HighTime<620))//如果高電平時間在560微秒左右,即計數560/1.085=516次

temp=temp&0x7f;//(520-100=420,520+100=620),則該位是0

if((HighTime>1300)&&(HighTime<1800))//如果高電平時間在1680微秒左右,即計數1680/1.085=1548次

temp=temp|0x80;//(1550-250=1300,1550+250=1800),則該位是1

}

a[i]=temp;//將解碼出的位元組值儲存在a[i]

}

if(a[2]=~a[3])//驗證鍵數據碼和其反碼是否相等,一般情況下不必驗證用戶碼

return1;//解碼正確,返回1

}

/*------------------二進制碼轉換為壓縮型BCD碼,並顯示---------------*/

voidtwo_2_bcd(unsignedchardate)

{

unsignedchartemp;

temp=date;

date&=0xf0;

date>>=4;//右移四位得到高四位碼

date&=0x0f;//與0x0f想與確保高四位為0

if(date<=0x09)

{

WriteData(0x30+date);//lcd顯示鍵值高四位

}

else

{

date=date-0x09;

WriteData(0x40+date);

}

date=temp;

date&=0x0f;

if(date<=0x09)

{

WriteData(0x30+date);//lcd顯示低四位值

}

else

{

date=date-0x09;

WriteData(0x40+date);

}

WriteData(0x48);//顯示字元'H'

}

/************************************************************

函數功能:1602LCD顯示

*************************************************************/

voidDisp(void)

{

WriteAddress(0x40);//設置顯示位置為第一行的第1個字

two_2_bcd(a[0]);

WriteData(0x20);

two_2_bcd(a[1]);

WriteData(0x20);

two_2_bcd(a[2]);

WriteData(0x20);

two_2_bcd(a[3]);

}

/************************************************************

函數功能:主函數

*************************************************************/

voidmain()

{

unsignedchari;

LcdInitiate();//調用LCD初始化函數

delay(10);

WriteInstruction(0x01);//清顯示:清屏幕指令

WriteAddress(0x00);//設置顯示位置為第一行的第1個字

i=0;

while(string[i]!='')//''是數組結束標志

{//顯示字元WWW.RICHMCU.COM

WriteData(string[i]);

i++;

}

EA=1;//開啟總中斷

EX0=1;//開外中斷0

ET0=1;//定時器T0中斷允許

IT0=1;//外中斷的下降沿觸發

TMOD=0x01;//使用定時器T0的模式1

TR0=0;//定時器T0關閉

while(1);//等待紅外信號產生的中斷

}

/************************************************************

函數功能:紅外線觸發的外中斷處理函數

*************************************************************/

voidInt0(void)interrupt0

{

EX0=0;//關閉外中斷0,不再接收二次紅外信號的中斷,只解碼當前紅外信號

TH0=0;//定時器T0的高8位清0

TL0=0;//定時器T0的低8位清0

TR0=1;//開啟定時器T0

while(IR==0);//如果是低電平就等待,給引導碼低電平計時

TR0=0;//關閉定時器T0

LowTime=TH0*256+TL0;//保存低電平時間

TH0=0;//定時器T0的高8位清0

TL0=0;//定時器T0的低8位清0

TR0=1;//開啟定時器T0

while(IR==1);//如果是高電平就等待,給引導碼高電平計時

TR0=0;//關閉定時器T0

HighTime=TH0*256+TL0;//保存引導碼的高電平長度

if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700))

{

//如果是引導碼,就開始解碼,否則放棄,引導碼的低電平計時

//次數=9000us/1.085=8294,判斷區間:8300-500=7800,8300+500=8800.

if(DeCode()==1)//執行遙控解碼功能

{

Disp();//調用1602LCD顯示函數

beep();//蜂鳴器響一聲提示解碼成功

}

}

EX0=1;//開啟外中斷EX0

}

2. 紅外發射與接收的工作原理是什麼

按一定的振盪頻率供電紅外光發射管,接收紅外光管的振盪頻率與發射的頻率相同,在有效發射、接收角度及無障礙距離就能接收到紅外光工作。

3. 紅外接收頭的基本原理

紅外接收頭一般是接收、放大、解調一體頭,一般紅外信號經接收頭解調後,數據
「0」和「1」的區別通常體現在高低電平的時間長短或信號周期上,單片機解碼時,通常將接收頭輸出腳連接到單片機的外部中斷,結合定時器判斷外部中斷間隔的時間從而獲取數據。重點是找到數據「0」和「1」間的波形差別。
3條腿的紅外接收頭一般是接收、放大、解調一體頭,接收頭輸出的是解調後的數據信號(具體的信號格式,搜「紅外
信號
格式」,一大把),單片機裡面需要相應的讀取程序。
紅外通信是利用紅外技術實現兩點間的近距離保密通信和信息轉發。它一般由紅外發射和接收系統兩部分組成。發射系統對一個紅外輻射源進行調制後發射紅外信號,而接收系統用光學裝置和紅外探測器進行接收,就構成紅外通信系統。
先講一講什麼是紅外線。我們知道,人的眼睛能看到的可見光按波長從長到短排列,依次為紅、橙、黃、綠、青、藍、紫。其中紅光的波長范圍為0.62~0.76μm;紫光的波長范圍為0.38~0.46μm。比紫光波長還短的光叫紫外線,比紅光波長

4. 紅外通信協議的基本原理

紅外通信是利用950nm近紅外波段的紅外線作為傳遞信息的媒體,即通信信道。發送端採用脈時調制(PPM)方式,將二進制數字信號調製成某一頻率的脈沖序列,並驅動紅外發射管以光脈沖的形式發送出去;接收端將接收到的光脈轉換成電信號,再經過放大、濾波等處理後送給解調電路進行解調,還原為二進制數字信號後輸出。
簡而言之,紅外通信的實質就是對二進制數字信號進行調制與解調,以便利用紅外信道進行傳輸;紅外通信介面就是針對紅外信道的數據機。

5. 紅外線通信的原理

大氣對紅外線輻射的吸收,主要是由大氣中的水蒸汽、二氧化碳和高層大氣中的臭氧分子造成的。這些大氣分子的強烈吸收使大氣對紅外線輻射的大部分區域是不透明的,只有在某些特定的波長區,紅外線輻射才能透過。這些特定的波長區稱為紅外線輻射的「大氣窗口」,它們幾乎都集中在25μm以下的近紅外和中紅外區域,即1.15~1.35,1.45~1.8,1.9~2.5,3.05~4.1,4.5~5.5,7.9~13.2、17~28μm。另外,在波長為300、600μm附近區域,大氣也呈現出某些透過特性。
散射是大氣對紅外線輻射的另一種重要作用。散射有兩種不同的類型,即瑞利散射和彌散射。瑞利散射是由大氣分子引起的,它對紅外線輻射的影響並不特別重要,對於波長大於lμm的輻射的影響常可被忽略。彌散射是由大氣中的懸浮粒子如雨、雪、霧、雲、灰塵和煙的微粒造成的,這對紅外線傳輸過程中的衰減有重要作用。
紅外通信是利用950nm近紅外波段的紅外線作為傳遞信息的媒體,即通信信道。發送端將基帶二進制信號調制為一系列的脈沖串信號,通過紅外發射管發射紅外信號。接收端將接收到的光脈轉換成電信號,再經過放大、濾波等處理後送給解調電路進行解調,還原為二進制數字信號後輸出。常用的有通過脈沖寬度來實現信號調制的脈寬調制(PWM)和通過脈沖串之間的時間間隔來實現信號調制的脈時調制(PPM)兩種方法。
簡而言之,紅外通信的實質就是對二進制數字信號進行調制與解調,以便利用紅外信道進行傳輸;紅外通信介面就是針對紅外信道的數據機。
紅外線通信可用於沿海島嶼間的輔助通信,室內通信,近距離遙控,飛機內廣播和太空梭內宇航員間的通信等。
特點
紅外線具有容量大,保密性強,抗電磁干擾性能好,設備結構簡單、體積小、重量輕、價格低;但在大氣信道中傳輸時易受氣候影響的特點。紅外線波長范圍為0.70μm~lmm,其中300μm~lmm區域的波也稱為亞毫米波。大氣對紅外線輻射傳輸的影響主要是吸收和散射。
紅外線通信系統
紅外線通信系統一般由紅外線發射系統和接收系統組成。對於客機內的紅外線通信系統,採用低功率的近紅外線(波長為0.72~1.5μm)傳送信號,對人體健康尤其對人的眼睛無任何傷害作用,也不會干擾飛機與陸地之間的無線電通信。其工作過程是:音頻信號先被轉換成數字信號,再調制在紅外線上,通過特製的紅外線發射器,使載有音頻信號的紅外線充滿機艙內的每一個角落。每個座位上備有的一副「耳機」,實際上是一隻紅外線接收機,它能將紅外線信號變為電信號,再進而還原成聲音;用電池工作,不需要任何外部連線。旅客只要載上這副「耳機」,開啟電源,撥動相應的選擇開關,就可收聽到各種不同的節目。
技術標准
紅外線通訊技術包含下列規格:IrPHY、IrLAP、IrLMP、IrCOMM、TinyTP、IrOBEX、IrLAN以及IrSimple。
IrDA1.0標准簡稱SIR(SerialInfrared,串列紅外協議),它是基於HP-SIR開發出來的一種非同步的、半雙工的紅外通信方式,它以系統的非同步通信收發器(UniversalAsynchronousReceiver/Transmitter,UART))依託,通過對串列數據脈沖的波形壓縮和對所接收的光信號電脈沖的波形擴展這一編解碼過程(3/16EnDec)實現紅外數據傳輸。SIR的最高數據速率只有115.2kbps。在1996年,發布了IrDA1.1協議,簡稱FIR(FastInfrared,快速紅外協議),採用4PPM(PulsePositionMolation,脈沖相位調制)編譯碼機制,最高數據傳輸速率可達到4Mbps,同時在低速時保留1.0標準的規定。之後,IrDA又推出了最高通信速率在16Mbps的VFIR(VeryFastInfrared)技術,並將其作為補充納入IrDA1.1標准之中。
IrDA標准都包括三個基本的規范和協議:紅外物理層連接規范IrPHY()、紅外連接訪問協議IrLAP(InfraredLinkAccessProtoco1)和紅外連接管理協議IrLMP()。IrPHY規范制訂了紅外通信硬體設計上的目標和要求;IrLAP和IrLMP為兩個軟體層,負責對連接進行設置、管理和維護。在IrLAP和IrLMP基礎上,針對一些特定的紅外通信應用領域,IrDA還陸續發布了一些更高級別的紅外協議,如TinyTP、IrOBEX、IrCOMM、IrLAN、IrTran-P和IrBus等等。
IrPHY:是指紅外線通信的最低層,物理層。其中重要的規格如下:
距離(標准:1米,低功率傳輸至低功率:0.2米,標准至低功率:0.3米)
角度(最小圓錐狀+-15°)
速度(2.4千位元/秒至16百萬位元/秒)
調變(基頻帶,無載波)
紅外線過濾視窗
紅外線通信收發器藉由一束圓錐狀光束范圍內的紅外線脈波傳輸,其圓錐狀光束自中心算起最小有15度的范圍。
紅外線通信物理層規范需要至少在一米外還能辨識的光信號的最小光量。
同時,規范中也定義兩通訊裝置接近時不會過量的最大光量。
在實用階段,市場上有些裝置沒有做到一米的傳輸距離。
同時也有些裝置沒有預留非常接近時的容忍值。
紅外線通信的典型甜區為距離收發器5厘米至60厘米范圍之中,在圓錐狀光束的中心點處。
紅外線通信的資料通訊作動在半雙工模式,這是因為裝置在發射時會被自己的接收器接收到,因此全雙工變得不可行。
兩裝置間藉由快速切換連接便可模擬全雙工。
主要裝置端控制著連接的時序,但雙邊可依照實際情況將傳輸速度切換至最高。
傳輸速率落在三大分類:SIR、MIR以及FIR。
SIR的速度范圍包含了RS-232的速度定義(9600位元/秒,19.2千位元/秒,38.4千位元/秒,57.6千位元/秒,115.2千位元/秒)
裝置最常見的傳輸速率為9600位元/秒,因此此一傳輸速率為所有在discovery狀態與negotiation狀態的速率。
MIR(中速率紅外線)不是官方名詞,有時用來表示0.576百萬位元/秒至1.152百萬位元/秒的速率范圍。
FIR為IrDA物理層標准陳廢的名詞,雖然如此這個名詞卻也常用在表示4百萬位元/秒速率。
FIR有時也用來表示所有大於SIR標定速率以上的速率。
然而,MIR與FIR使用不同的編碼方式,與不同的封包架構。
因此,這兩個非官方用詞分別了兩種不同的物理層實作方式。
未來有更快的傳輸速率(目前有VFIR),可支援到16百萬位元/秒。
有VFIR的商品可用例如TFDU8108可操作在9.6千位元/秒至16百萬位元/秒。
UFIR協定正在發展中。此一協定將可支援100百萬位元/秒。

6. 紅外遙控器原理 遙控器原理圖

遙控器是一種用來遠控機械的裝置。現代的遙控器,主要是由集成電路電板和用來產生不同訊息的按鈕所組成。下面一起來看看紅外遙控器原理以及遙控器原理圖吧。


紅外遙控器原理


紅外線遙控系統一般由發射器和接收器兩部分組成。發射器由指令鍵、指令信號產生電路、調制電路、驅動電路及紅外線發射器組成。當指令鍵被按下時,指令信號產生電路便產生所需要的控制信號,控制指令信號經調制電路調制後,最終由驅動電路驅動紅外線發射器,發出紅外線遙控指令信號。


接收器由紅外線接收器件、前置放大電路、解調電路、指令信號檢出電路、記憶及驅動電路、執行電路組成。當紅外接收器件收到發射器的紅外指令信號時,它將紅外光信號變成電信號並送到前置放大電路進行放大,再經過解調器後,由信號檢出電路將指令信號檢出,最後由記憶電路和驅動電路驅動執行電路,實現各種操作。


控制信號一般以某些不同的特徵來區分,常用的區分指令信號的特徵是頻率和碼組特徵,即用不同的頻率或者編碼的電信號代表不同的指令信號來實現遙控。所以紅外遙控系統通常按照產生和區分控制指令信號的方式和特徵分類,常分為頻分制紅外線遙控和碼分制紅外線遙控。



1紅外遙控系統發射部分


紅外遙控發射器由鍵盤矩陣、遙控專用集成電路、驅動電路和紅外發光二極體三部分組成,結構如圖1所示。

當有鍵按下時,系統延時一段時間防止干擾,然後啟動振盪器,鍵編碼器取得鍵碼後從ROM中取得相應的指令代碼(由0和1組成的代碼),遙控器一般採用電池供電,為了節省電量和提高抗干擾能力,指令代碼都是經32~56kHz范圍內的載波調制後輸出到放大電路,驅動紅外發射管發射出940nm的紅外光。當發送結束時振盪器也關閉,系統處於低功耗休眠狀態。載波的頻率、調制頻率在不同的場合會有不同,不過家用電器多採用的是38kHz的,也就是用455kHz的振盪器經過12分頻得到的。


遙控發射器的信號是由一串0和1的二進制代碼組成的,不同的晶元對0和1的編碼有所不同,現有的紅外遙控包括兩種方式:脈沖寬度調制(PWW)和脈沖位置調制(PPM或曼徹斯特編碼)。兩種形式編碼的代表分別是NEC和PHILIPS的RC-5。


2紅外遙控系統接收部分


接收部分是由放大器、限幅器、帶通濾波器、解調器、積分器、比較器等組成的,比如採用較早的紅外接收二極體加專用的紅外處理電路的方法,如CXA20106,此種方法電路復雜,現在一般不採用。但是在實際應用中,以上所有的電路都集成在一個電路中,也就是我們常說的一體化紅外接收頭。一體化紅外接收頭按載波頻率的不同,型號也不一樣。由於與CPU的介面的問題,大部分接收電路都是反碼輸出,也就是說當沒有紅外信號時輸出為1,有信號輸出時為0,它只有三個引腳,分別是+5V電源、地、信號輸出。



系統的設計


1單片機編碼發射部分


①鍵盤部分

紅外遙控器的發射器電路比較簡單,由一個4×4矩形鍵盤、一個PNP驅動三極體、一個紅外線發光二極體和兩個限流電阻組成。要遙控哪台接收器由鍵盤輸入,即由鍵盤輸入要紅外遙控的地址,地址經過編碼、調制後通過紅外發光二極體發射出去。

矩陣鍵盤部分由16個輕觸按鍵按照4行4列排列,將行線所接的單片機的I/O口作為輸出端,而列線所接的作為輸入。當沒有鍵被按下時,所有輸出端都是高電平,代表沒有鍵按下。有鍵按下時,則輸入線就會被拉抵,這樣,通過讀入輸入線的狀態就可以知道是否有鍵被按下。

鍵盤的列線接到P1口的低4位,行線接到P1口的高4位,列線P1.0~P1.3設置為輸入線,行線P1.4~P1.7設置為輸出線。

檢測當前是否有鍵被按下。檢測的方法是使P1.4~P1.7輸出為0,讀取P1.0~P1.3的狀態,若P1.0~P1.3為全1,則無鍵閉合,否則有鍵閉合。

去除鍵抖動。當檢測到有鍵按下後,延時一段時間再做下一步檢測判斷。

若有鍵按下,應該識別出是哪一個鍵閉合。方法是對鍵盤的行線進行掃描。P1.4~P1.7按下面4種組合依次輸出1110,1101,1011,0111,在每組行輸出時讀取P1.0~P1.3,若全為1,則表示0這行沒有鍵輸入,否則有鍵閉合。由此得到閉合鍵的行值和列值,然後採用計算的方法或者查表的方法將閉合鍵的行值和列值轉換成所定義的值。

為了保證每閉合一次CPU僅作一次處理,必須去除鍵釋放時的抖動。產生的鍵值放在發送資料庫區,30H存放的是產生的鍵值,即要遙控的8位地址共1位元組,31H放的是和30H中的相同的8位地址,地址碼重發了一次,主要是加強遙控器的可靠性,如果兩次地址碼不相同,則說明本幀數據有錯,應該丟棄。32H放的是00H(為了編程簡單),33H放的是0FFH,一共32位數據。要發送數據時,只要到那裡讀取數據即可,然後調用發射子程序發送。



②載波部分


根據前面介紹的紅外遙控的基本原理,紅外遙控器編碼調制的方法其實很簡單,只要生成一定時間長的電平就可以。再通過一個38kHz載波調制便可以發射編碼。載波的產生方法有多種,可以由CMOS門電路RC振盪器構成,或者由555時基電路構成等。

在此次設計中採用的是CPU延時,即用定時器中斷完成,用單片機的T0定時產生38kHz載波。設定定時器為方式2,即自動恢復初值的8位計數器。TL0作為8位計數器,TH0作為計數初值寄存器,當TL0計數溢出時,一方面置1溢出標志位TF0,向CPU請求中斷,同時將TH0內容送入TL0,使TL0從初值開始重新加1計數。因此,T0工作於方式2,定時精度比較高。根據計算,設定38KHz的定時初值,採用12kHz晶振的定時初值為0F3H,用11.0592kHz晶振時的初值為0F4H,設定好定時器中斷,在中斷程序中只寫入取反P2.0(CPLP2.0),當要發送數據1時,前面560μs高電平發送時,先打開定時器中斷,再啟動定時器,允許定時器工作,延時560μs再關定時器,後面1690μs的低電平因為不發送信號,所以可以直接置P2.0高電平後,延時1690μs即可;數據0前面的560μs高電平和數據1的一樣,後面560μs的低電平因為不發送信號,所以可以直接置P2.0高電平後,延時560μs即可。




2紅外接收解碼電路


紅外遙控接收採用一體化紅外接收頭,它將紅外接收二極體、放大器、解調、整形等電路安裝在一起,只有三個引腳。紅外接收頭的信號輸出端接單片機的INT0端,單片機中斷INT0在紅外脈沖下降沿時產生中斷。電路如圖3.3所示,圖中增加一隻PNP三極體對輸出信號放大,R和C組成去耦電路抑制電源干擾。


3遙控信號的解碼演算法


平時,遙控器無鍵按下時,紅外發射二極體不發出信號,遙控接收頭輸出信號1,有鍵按下時,0和1的編碼的高電平經遙控接收頭反相後會輸出信號0,由於與單片機的中斷腳相連,將會引起單片機中斷(單片機預先設定為下降沿產生中斷)。


遙控碼發射時由9ms的高電平和4.5ms的低電平表示引導碼,用560μs的高電平和560μs的低電平表示數據「0」,用560μs的高電平和1690μs的低電平表示數據「1」,引導碼後面是4位元組的數據。接收碼是發射碼的反向,所以判斷數據中的高電平的長度是讀出數據的要點,在這里用882μs(560~1690μs之間)作為標尺,如果882μs之後還是高電平則表示是數據1,將1寫入寄存器即可(數據為1時還需要再延時一段時間使電平變低,用來檢測下一個低電平的開始)。882μs後電平為低電平則表示是數據0,則將0寫入寄存器中,之後再等待下一個低電平的到來。


繼續接收下面的數據,當接收到32位數據時,說明一幀數據接收完畢,然後判斷本次接收是否有效,如果兩次地址碼相同並且等於本系統的地址碼,數據碼和數據反碼之和等於0FFH,則接收的本幀數據有效,點亮一隻發光二極體,否則丟棄本次接收到的數據。


接收完畢後,初始化本次接收到的數據,准備下次遙控接收。


以上就是小編為大家介紹的遙控器原理,希望能夠幫助到您。更多關於遙控器原理的相關資訊,請繼續關注土巴兔學裝修。

7. 紅外接收頭原理求高手

紅外接收頭原理是紅外監測二極體監測到紅外信號,然後把信號送到放大器和限幅器,限幅器把脈沖幅度控制在一定的水平,而不論紅外發射器和接收器的距離遠近。交流信號進入帶通濾波器,帶通濾波器可以通過30khz到60khz的負載波,通過解調電路和積分電路進入比較器,比較器輸出 高低電平,還原出發射端的信號波形。

紅外接收頭的種類很多,引腳定義也不相同,一般都有三個引腳,包括供電腳,接地和信號輸出腳。根據發射端調制 載波的不同應選用相應解調頻率的接收頭。

紅外接收頭內部放大器的增益很大,很容易引起干擾,因此在接收頭的VCC (電壓)PIN腳與GND(地線)pin腳須加上濾波電容,經專家測試試驗一般在47uf 陶瓷電容(注意:電容加到100uf或20UF電容會導致接收頭接收距離拉短)。

另針對VCC(電壓)PIN腳與Vout(輸出)之間串入一個10K歐姆的上拉電阻,電壓不穩定的時候進行上拉作用。

紅外發射器可從遙控器廠家定製,也可以自己用單片機的PWM產生,家庭遙控推薦使用紅外發射管(L5IR4-45)的可產生37.91KHz的PWM, PWM占空比設置為1/3, 通過簡單的定時中斷開關PWM, 即可產生發射波形。

(7)單片機紅外通信原理擴展閱讀

目前有很多種晶元可以實現紅外發射,可以根據選擇發出不同種類的編碼。由於發射系統一般用電池供電,這就要求晶元 的功耗要很低,晶元大多都設計成可以處於休眠狀態,當有按鍵按下時才工作,這樣可以降低功耗。

晶元所用的晶振應該有足夠的耐物理撞擊能力,不能選用普通的石英晶體,一般是選用陶瓷共鳴器,陶瓷共鳴器准確性沒有石英晶體高,但通常 一點誤差可以忽略不計。

紅外接收頭廣泛應用於:空調、風扇、暖風機、加濕器、電視、DVD、機頂盒、車載移動DVD、硬碟播放器、多媒體組合音響、數碼相框、手機等家電產品 。

電腦及周邊設備,感應潔具,儀表,工業自動化,遙控玩具,通訊器材,照相器材,事務機器,金融電子 ,汽車電子,燈飾照明等領域。

8. 求單片機C51紅外線收發方案(最好有詳細解釋)

紅外線遙控器解碼程序
2007-02-07 18:52 紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由於紅外線遙控裝置具有體積小、功耗低、功能強、成本低等特點,因而,繼彩電、錄像機之後,在錄音機、音響設備、空凋機以及玩具等其它小型電器裝置上也紛紛採用紅外線遙控。現在工業設備中,也已經廣泛在使用。。。。。

1 紅外遙控系統
通用紅外遙控系統由發射和接收兩大部分組成,應用編/解碼專用集成電路晶元來進行控制操作,如圖1所示。發射部分包括鍵盤矩陣、編碼調制、LED紅外發送器;接收部分包括光、電轉換放大器、解調、解碼電路。
2 遙控發射器及其編碼
遙控發射器專用晶元很多,根據編碼格式可以分成脈沖寬度調制和脈沖相位調制兩大類,這里我們以運用比較廣泛,解碼比較容易的脈沖寬度調制來加以說明,現以3310組成發射電路為例說明編碼原理。當發射器按鍵按下後,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特徵:
採用脈寬調制的串列碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的「0」;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的「1」
上述「0」和「1」組成的42位二進制碼經38kHz的載頻進行二次調制以提高發射效率,達到降低電源功耗的目的。然後再通過紅外發射二極體產生紅外線向空間發射,
3310產生的遙控編碼是連續的42位二進制碼組,其中前26位為用戶識別碼,能區別不同的紅外遙控設備,防止不同機種遙控碼互相干擾。後16位為8位的操作碼和8位的操作反碼用於核對數據是否接收准確。
當遙控器上任意一個按鍵按下超過36ms時,LC7461晶元的振盪器使晶元激活,將發射一個特定的同步碼頭,對於接收端而言就是一個9ms的低電平,和一個4.5ms的高電平,這個同步碼頭可以使程序知道從這個同步碼頭以後可以開始接收數據。
解碼的關鍵是如何識別「0」和「1」,從位的定義我們可以發現「0」、「1」均以0.56ms的低電平開始,不同的是高電平的寬度不同,「0」為0.56ms,「1」為1.68ms,所以必須根據高電平的寬度區別「0」和「1」。如果從0.56ms低電平過後,開始延時,0.56ms以後,若讀到的電平為低,說明該位為「0」,反之則為「1」,為了可靠起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為「0」,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。
根據紅外編碼的格式,程序應該等待9ms的起始碼和4.5ms的結果碼完成後才能讀碼。

接收器及解碼
LT0038是塑封一體化紅外線接收器,它是一種集紅外線接收、放大、整形於一體的集成電路,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,沒有紅外遙控信號時為高電平,收到紅外信號時為低電平,而體積和普通的塑封三極體大小一樣,它適合於各種紅外線遙控和紅外線數據傳輸。

下面是一個對51ISP編程實驗開發板配套的紅外線遙控器的解碼程序,它可以把紅外遙控器每一個按鍵的鍵值讀出來,並且通過實驗板上P1口的8個LED顯示出來,在解碼成功的同時並且能發出「嘀嘀嘀」的提示音。
ORG 0000H
AJMP MAIN;轉入主程序
ORG 0003H ;外部中斷P3.2腳INT0入口地址
AJMP INT ;轉入外部中斷服務子程序(解碼程序)
;以下為主程序進行CPU中斷方式設置
MAIN:SETB EA ;打開CPU總中斷請求
SETB IT0 ;設定INT0的觸發方式為脈沖負邊沿觸發
SETB EX0 ;打開INT0中斷請求
;以下對單片機的所有引腳進行初始化,全部設置成高電平
MOV P2,#11111111B
AJMP $
;以下為進入P3.2腳外部中斷子程序,也就是解碼程序
INT: CLR EA ;暫時關閉CPU的所有中斷請求
MOV R6,#10
SB: ACALL YS1;調用882微秒延時子程序
JB P3.2,EXIT;延時882微秒後判斷P3.2腳是否出現高電平如果有就退出解碼程序
DJNZ R6, SB;重復10次,目的是檢測在8820微秒內如果出現高電平就退出解碼程序
;以上完成對遙控信號的9000微秒的初始低電平信號的識別。
JNB P3.2, $ ;等待高電平避開9毫秒低電平引導脈沖
ACALL YS2 ;延時4.74毫秒避開4.5毫秒的結果碼
MOV R7,#26;忽略前26位系統識別碼
JJJJA:JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL YS1;高電平開始後用882微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
JNC UUUA;如果為0就跳轉到UUUA
LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
UUUA: DJNZ R7,JJJJA
MOV R1,#1AH ;設定1AH為起始RAM區
MOV R2,#2;接收從1AH到1BH的2個內存,用於存放操作碼和操作反碼
PP: MOV R3,#8;每組數據為8位
JJJJ: JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL YS1;高電平開始後用882微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
JNC UUU;如果為0就跳轉到UUU
LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
UUU: MOV A,@R1;將R1中地址的給A
RRC A;將C中的值0或1移入A中的最低位
MOV @R1,A;將A中的數暫時存放在R1數值的內存中
DJNZ R3,JJJJ;接收滿8位換一個內存
INC R1;對R1中的值加1,換下一個RAM
DJNZ R2,PP ;接收完8位數據碼和8位數據反碼,存放在1AH/1BH中
MOV A,1AH
CPL A;對1AH取反後和1BH比較
CJNE A,1BH,EXIT;如果不等表示接收數據發生錯誤,放棄
MOV P1,1AH;將按鍵的鍵值通過P1口的8個LED顯示出來!
CLR P2.0;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功
LCALL YS2
LCALL YS2
LCALL YS2
SETB P2.0;蜂鳴器停止(使用時可以將J2的YINYUE腳用跳線接J4 的XS1腳才可以使用蜂鳴器)可以看原理圖
EXIT: SETB EA ;允許中斷
RETI ;退出解碼子程序
YS1: MOV R4,#20 ;延時子程序1,精確延時882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS2: MOV R4,#10 ;延時子程序2,精確延時4740微秒
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET
YS3: MOV R4,#2;延時程序3,精確延時1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
END
以上程序緊供參考。

0A 01
11 12 13 14
15 16 17 18
19 10 1A 1B
0E 02 03 1C
06 04 05 0C
0D 08 09 1D
00 1F 1E 0B
07 0F
這是按照紅外遙控器按鍵的實際位置給出的32個按鍵的鍵值(16進制)

9. 單片機串口通信原理

非同步通信
固定波特率下傳送0,1信號
就是在規定的時間間隔內傳送0.1數據

10. 紅外通信協議的典型案例

針對便攜產品應用的紅外數據通信模塊(圖)
作者:解放軍理工大學劉榮何敏日期:2005-6-1
摘要:紅外通信有著成本低廉、連接方便、簡單易用和結構緊湊的特點,因此在小型的移動設備中獲得了廣泛的應用。目前大多數作為采樣數據的終端希望通過串口或紅外介面與移動設備(如掌上電腦等)進行通信。和傳統的遙控器中採用的紅外相比較,紅外數據傳輸的實現方式是不同的。在筆記本電腦,手機,PDA和數碼相機上的紅外傳輸均採用紅外數據傳輸。本文介紹了紅外數據通信實現的原理,標准和方法。以實現和PDA(奧克碼—桑夏PPC2188型)的紅外數據通信為例介紹了該模塊的實現原理和方法。關鍵詞:IrDA;紅外通信;PDA
---傳統的紅外通信設備主要是指紅外遙控器和早期的PDA中採用的38kHz紅外調制和解調方式。這種方式實現簡單,但是誤碼率較高,不適合進行數據傳輸,特別是數據量大的時候。為此,IrDA組織(InfraredDataAssociation)規定了紅外數據傳輸的標准IrDA,它規定了通過紅外設備進行無線傳輸的方法。1994年,第一個IrDA的紅外數據通信標准發布,即IrDA1.0。IrDA規范包含兩個設備之間通信的標准以及與其他設備進行通信的協議。IrDA標准包含設備之間通信數據的格式以及與其他設備進行通信的協議。目前符合IrDA的設備有:筆記本電腦,手機,掌上電腦,數碼相機等。Linux操作系統支持IrDA。目前,很多公司根據該標准生產了各種用於紅外數據傳輸的晶元,如HP公司生產的HSDL-1000、HSDL-4230、HSDL-4220和HSDL-7000,Zilog生產的ZHX1010、ZHX1210、ZHX1810、ZHX1820。在桑夏公司的奧克碼—桑夏PPC2188型PDA上採用的就是ZHX1810晶元。下面分別介紹傳統的紅外通信和紅外數據通信的實現原理和方法。
1傳統的紅外通信---1.1原理---傳統的紅外設備傳輸數據時,可以採用38kHz的載波進行調制和解調。採用調幅的方式對數據進行調制,通過發光二極體將數據發送出去;採用專門的解調晶元接受紅外發送來的數據。---1.2實現方法---在終端上實現數據的紅外通信中,採用了圖1中的電路圖。
其中IFR_CLK輸出頻率為38kHz的方波,TXD為待發送的數據,兩個信號通過有MC9013組成的電路進行調制,通過TSAL6200調制過的信號發送出去;---SFH5110—38為載波為38kHz的解調晶元,接受外部來的信號,將解調後的數據送到RXD;---在終端中,採用了以上的電路和單片機進行連接,就可以實現傳統的載波(38kHz)調制解調的紅外通信。其中TXD和RXD分別接在單片機的串口的發送端和接受端,IFR_CLK接在一般的IO口上。---在單片機的軟體實現中,最主要的是在需要發送數據的時候用定時器在IFR_CLK口線上產生38kHz的方波。在這里,串口的速率一般較低。
---1.3缺點---(1)採用調幅進行傳輸,抗干擾能力差;---(2)在發送數據時,輸出的功率一定時,用於信號傳輸的功率小,接收到的數據的信噪比小,容易誤判數據;---(3)受到輸出功率的影響,數據傳輸的距離短,速度慢;---(4)受到傳輸速率的影響,傳輸的數據量不能太大;---(5)由於沒有相應的協議支持,將接收到的所有數據(包括正常的數據和干擾引起的非正常數據)送到RXD。
2紅外數據通信---2.1紅外數據通信的速率和物理層的數據幀格式---在紅外數據傳輸中,對串口發送的數據採用脈沖進行調制的方式。在IrDA標准1.0中,脈沖的寬度為3/16的BIT占空比或者為固定的1.63μs的脈沖寬度。IrDA1.0簡稱為SIR,以系統的非同步通信收發器(UART)為依託,由於受到UART通信速率的限制,SIR的最高通信速率只有115.2Kbps,也就是大家熟知的電腦串列埠的最高速率。在圖2中給出了脈沖調制前的非同步串口UART的數據幀格式和進行脈沖調制後的紅外IR幀格式,其中,紅外脈沖調制中的沒有脈沖代表UART中的「1」,紅外脈沖調制中有脈沖代表UART中的「0」;在沒有串口數據傳送時,紅外數據幀中沒有脈沖。
---1996年,頒布了IrDA標准1.1,即快速紅外通信,簡稱為FIR。與SIR相比,由於FIR不再依託UART,其最高通信速率有了質的飛躍,可達到4Mbps的水平。FIR採用了全新的4PPM調制解調(PulsePositionMolation),即通過分析脈沖的相位來辨別所傳輸的數據信息,其通信原理與SIR是截然不同的,但由於FIR在115.2Kbps以下的速率依舊採用SIR的那種編碼解碼過程,所以它仍可以與支持SIR的低速設備進行通信,只有在通信對方也支持FIR時,才將通信速率提升到更高水平。對4Mbps的速率,需要使用1/4的脈沖的相位進行調制(即所謂的4PPM調制),利用脈沖四個不同的相位(位置)的一個脈沖對兩個BIT進行編碼。因此,前面利用脈沖有無進行調制,這里利用脈沖及脈沖的位置確定調制和解調的信號。例如,兩個BIT00調制為1000(一個BIT,其中第一個1/4BIT時間有脈沖,其他3/4時間無脈沖),兩個BIT01調制為0100(一個BIT,其中第二個1/4BIT時間有脈沖,其他3/4時間無脈沖)。這樣,用4個脈沖就可以傳輸一個位元組的數據量。
在和終端進行通信的設備中,數據的傳輸通常以系統的非同步通信收發器(UART)為依託,我們只需要採用符合IrDA標准1.0的紅外器件。目前,紅外數據傳輸晶元包括兩種,一種以HP公司HSDL-1000晶元為代表,HSDL-1000的一端輸入為符合IrDA1.0標準的紅外數據,一端為非同步通信(UART)數據,可以直接用在終端中作為UART和紅外數據的轉換器。另外一種以Zilog生產的ZHX1810為代表,只是將紅外信號轉換為電信號,或將電信號轉換為紅外信號的紅外收發器件,這種晶元在終端設備中需要應用時,需要將脈沖轉換為非同步通信的數據,或將非同步通信的數據轉換為脈沖信號方可使用。---2.2採用脈沖進行調制的原因---紅外接收器需要一種方式來區分周圍的干擾,雜訊和信號。為了這個目的,通常利用盡可能高的輸出功率:高的功率表示在接收器中的大電流,有好的信噪比。然而,IR-LED(紅外燈)不可能在全部的時間連續的以高功率進行數據的發送。因此,使用每個BIT只有3/16或1/4脈沖寬度的信號進行傳輸。這樣,輸出的功率可以達到IR-LED(紅外燈)連續閃爍的最大功率的4~5倍。另外,傳輸的途徑不會攜帶直流成分(由於接收器連續的適應周圍的環境,只檢測環境變化),這樣必須利用脈沖調制。---2.3紅外數據通信的協議---在紅外數據通信中,很容易受到外界的干擾,只有符合一定格式的數據才是正確的數據。為此,IrDA標准指定三個基本的規范和協議,包括:物理層規范(),連接建立協議(LinkAccessProtocol:IrLAP)和連接管理協議(LinkManagementProtocol:IrLMP)。物理層規范制定了紅外通信硬體設計上的目標和要求,IrLAP和IrLMP為兩個軟體層,負責對連接進行設置、管理和維護。在IrLAP和IrLMP基礎上,針對一些特定的紅外通信應用領域,IrDA還陸續發布了一些更高級別的紅外協議,如TinyTP、IrOBEX、IrCOMM、IrLAN、IrTran-P等。它們之間的關系如圖3所示。
---奧克碼—桑夏PPC2188型PDA的操作系統為桑夏2000操作系統,該操作系統為嵌入式的中文操作系統,其中有支持紅外通信的IrDA紅外通信協議棧。終端需要和PDA進行紅外通信的時候,也需要有支持紅外通信的IrDA紅外通信協議棧。有了支持紅外通信的IrDA紅外通信協議棧,終端不僅可以和PDA進行通信,也可以同帶有紅外通信口的筆記本電腦、手機、掌上電腦、數碼相機等進行紅外通信。
3實現終端與PDA的紅外通信---在終端設備中,要實現和PDA的紅外通信,除了要實現將紅外數據轉換為UART數據,還需要編制IrLAP和IrLMP層的協議。為了降低成本,我們直接採用了紅外收發器件ZiLOG生產的紅外收發器作為物理層的部分器件,而將脈沖和UART之間的數據轉換用軟體來實現。目前,實現了以下的硬體和軟體的研製和測試,這種終端與PDA的紅外通信是可靠的。---3.1ZHX1810
---ZiLOG為OEM客戶和最終用戶提供了完整的紅外數據收發方案。ZiLOG的紅外收發器被廣泛的應用於各種PDA產品,行動電話以及相關領域中。---最新公布的幾款紅外收發器ZHX1403,ZHX3403,以及ZHX1203,他們都具有極小巧的外型尺寸,ZiLOG稱之為Ultraslim結構。此外ZHX1403和ZHX3403還具有AlwaysOn技術,使得長時間的紅外功能開啟成為了可能,這無疑為紅外設備的應用增加了更多的可能性。---在本系統的設計中,採用了ZiLOG的ZHX1810。由於紅外收發器也可以接收到自己發出的數據,實現的紅外數據通信是半雙工的。---在圖4中給出了ZHX1810的內部結構。---LEDA:通過一個外接的電阻接到電源上,給LED提供電流。---TXD:用來傳輸串列數據。通過一個電阻接到地上,當關閉模式時處於開路狀態。---RXD:用來接收串列數據(在關閉模式時處於三態),不需要外接電阻。---SD:用來將內部的電路控制在關閉模式。---在Vcc和GND之間接一個0.33μF的電容。---3.2硬體組成---為了使終端的功能和紅外通信之間相對獨立,我們利用了單獨的單片機AT89C2051實現紅外協議棧中的相關協議。AT89C2051接收到TXD發來的數據,進行處理之後將UART數據轉換為對應的脈沖數據,通過ZHX1810發送出去;AT89C2051接收到ZHX1810發送來的脈沖數據,根據IrDA的相關協議棧進行解釋後,將數據通過RXD以UART數據形式發送出去。從而實現紅外通信。---圖5中的硬體電路是實現紅外通信的最低硬體配置。如果需要適應不同的波特率,需要在硬體圖中加跳線來識別。如果需要實現完整的IrDA協議棧,需要在電路中加上IIC匯流排的存儲單元;或者採用帶有數據匯流排和地址匯流排的單片機,加上RAM(如HM6116)來實現。---在這里,由於桑夏公司的奧克碼—桑夏PPC2188型PDA可以跳過IrDA協議棧中的連接建立協議層和連接管理協議層,只需要實現物理層的部分功能,終端採用如下的電路圖就可以實現和奧克碼—桑夏系列的PDA之間的紅外通信。
---3.3軟體實現的功能和流程---軟體實現的功能如下。---軟體的編寫是終端和PDA進行紅外通信的重點,考慮到軟體的可移植性和程序執行的速度,採用了C語言進行編寫,主要需要實現的功能如下:---(1)根據跳線識別不同的波特率,支持的波特率的傳輸范圍為1200bps~57600bps;---(2)由於設置紅外默認的狀態為接收狀態;---(3)物理層判斷紅外口有無接收到脈沖數據,將接收到的脈沖進行解釋後送到紅外數據接收緩存區;---(4)實現連接建立協議層IrLAP,和PDA建立連接;注意,這種建立的連接是單工的,只有在該次通信完成時才建立下次的連接;---(5)實現連接管理協議層IrLMP的功能;---(6)將從紅外接收的數據通過RXD送到終端的非同步串口接收端;---(7)從終端的非同步串口發送端接收數據,根據IrDA協議棧,和PDA建立連接後,將從終端接收到的數據通過紅外發送到PDA;---在軟體的實現中,對終端的數據傳輸而言,數據是進行半雙工的透明的傳輸。---軟體的流程如圖6所示。
4總結---為了便於將這樣的模塊應用於各種帶有紅外的移動終端設備的紅外數據通信,我們採用了單獨的MCU來實現串口數據和紅外數據之間的轉換。由於波特率的傳輸范圍為1200~57600bps,我們只實現了目前廣泛使用的SIR標准通信。該模塊已經應用在和PDA紅外通信的電路中,性能穩定。
參考文獻1何立民.MCS-51系列單片機應用系統設計.北京航空航天大學出版社,HX1810SlimLine(tm)SIRTransceiver

閱讀全文

與單片機紅外通信原理相關的資料

熱點內容
斐波那契數列矩陣演算法 瀏覽:674
公式保護後加密不了 瀏覽:82
java跳轉到jsp 瀏覽:819
327平方根演算法 瀏覽:216
win7美化命令行終端 瀏覽:797
免加密狗圖片 瀏覽:485
一隻透明的鳥是什麼app 瀏覽:817
空氣壓縮機油批發商 瀏覽:69
linuxifexist 瀏覽:4
加密tf卡拷入文件 瀏覽:399
山西php工資 瀏覽:673
福州看病預約用什麼小程序app 瀏覽:238
php保留兩位小數不四捨五入 瀏覽:292
黑馬程序員路徑大全 瀏覽:1000
saas平台PHP 瀏覽:333
雲伺服器科學計算配置怎麼選 瀏覽:649
jar解壓命令 瀏覽:609
php正則問號 瀏覽:299
無線已加密不可上網是怎麼了 瀏覽:466
什麼app可以免費做手機 瀏覽:376