- 相關(guān)推薦
紅外通訊協(xié)議在嵌入式系統(tǒng)中的實(shí)現(xiàn)
摘要:從紅外通訊協(xié)議的特點(diǎn)、基本原理對(duì)紅外無線通信技術(shù)進(jìn)行了分析,結(jié)合實(shí)際例程探討了紅外數(shù)據(jù)通信在嵌入式系統(tǒng)中的基本設(shè)計(jì)要點(diǎn)。紅外和藍(lán)牙協(xié)議是兩種較流行的短距離無線通信協(xié)議。但目前藍(lán)牙協(xié)議各大廠商尚未有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)規(guī)范,加之硬件價(jià)格較為昂貴的缺點(diǎn),因此市場(chǎng)上紅外通信在手機(jī)、筆記本電腦等小型移動(dòng)設(shè)備中仍然應(yīng)用廣泛,在嵌入式系統(tǒng)中的實(shí)際應(yīng)用有著較高實(shí)際意義。
1 紅外協(xié)議背景
紅外線是波長(zhǎng)在750nm至1mm之間的電磁波,其頻率高于微波而低于可見光,是一種人的眼眼看不到的光線。目前無線電波和微波已被廣泛應(yīng)用在長(zhǎng)距離的無線通信中,但由于紅外線的波長(zhǎng)較短,對(duì)障礙物的衍射能力差,所以更適合應(yīng)用在需要短距離無線通信場(chǎng)合點(diǎn)對(duì)點(diǎn)的直接線數(shù)據(jù)傳輸。為了使各種設(shè)備能夠通過一個(gè)紅外接口進(jìn)行通信,紅外數(shù)據(jù)協(xié)議(Infrared Data Association,簡(jiǎn)稱IRDA)發(fā)布了一個(gè)關(guān)于紅外的統(tǒng)一的軟硬件規(guī)范,也就是紅外數(shù)據(jù)通訊標(biāo)準(zhǔn)。
2 紅外協(xié)議基本結(jié)構(gòu)
紅外數(shù)據(jù)通訊標(biāo)準(zhǔn)包括基本協(xié)議和特定應(yīng)用領(lǐng)域的協(xié)議兩類。類似于TCP-IP協(xié)議,它是一個(gè)層式結(jié)構(gòu),其結(jié)構(gòu)形成一個(gè)棧,如圖1所示。
其中基本的協(xié)議有三個(gè):①物理層協(xié)議(IrPHY),制定了紅外通信硬件設(shè)計(jì)上的目標(biāo)和要求,包括紅外的光特性、數(shù)據(jù)編碼、各種波特率下幀的包括格式等。為達(dá)到兼容,硬件平臺(tái)以及硬件接口設(shè)計(jì)必須符合紅外協(xié)議制定的規(guī)范。②連接建立協(xié)議(IrLAP)層制定了底層連接建立的過程規(guī)范,描述了建立一個(gè)基本可靠連接的過程和要求。③連接管理協(xié)議(IrLMP)層制定了在單位個(gè)IrLAP連接的基礎(chǔ)上復(fù)用多個(gè)服務(wù)和應(yīng)用的規(guī)范。在IrLMP協(xié)議上層的協(xié)議都屬于特定應(yīng)用領(lǐng)域的規(guī)范和協(xié)議。④流傳輸協(xié)議(TingTP)在傳輸數(shù)據(jù)時(shí)進(jìn)行流控制。制定把數(shù)據(jù)進(jìn)行拆分、重組、重傳等的機(jī)制。⑤對(duì)象交換協(xié)議(IrOBEX)制定了文件和其他數(shù)據(jù)對(duì)象傳輸時(shí)的數(shù)據(jù)格式。⑥模擬串口層協(xié)議(IrCOMM)允許已存在的使用串口通信的應(yīng)用象使用串口那樣使用紅外進(jìn)行通信。⑦局域網(wǎng)訪問協(xié)議(IrLAN)允許通過紅外局域網(wǎng)絡(luò)喚醒筆記本電腦等移動(dòng)設(shè)備,實(shí)際遠(yuǎn)程搖控等功能。
整個(gè)紅外協(xié)議棧比較龐大復(fù)雜,在嵌入式系統(tǒng)中,由于微處理器速度和存儲(chǔ)器容量等限制,不可能也沒必要實(shí)現(xiàn)整個(gè)的紅外協(xié)議棧。一個(gè)典型的例子就是TinyTP協(xié)議中數(shù)據(jù)的拆分和重組。它采用了信用片(creditcard)機(jī)制,這極大地增加了代碼設(shè)計(jì)的復(fù)雜性,而實(shí)際在紅外通信中一般不會(huì)有太大數(shù)據(jù)量的傳輸,尤其在嵌入式系統(tǒng)中完全可以考慮將數(shù)據(jù)放入單個(gè)數(shù)據(jù)包進(jìn)行傳輸,用超時(shí)和重發(fā)機(jī)制保證傳輸?shù)目煽啃。因此可以將協(xié)議棧簡(jiǎn)化,根據(jù)實(shí)際需求,有選擇地實(shí)現(xiàn)自己需要的協(xié)議和功能即可。
3 紅外協(xié)議數(shù)據(jù)基本傳輸原理
由于硬件接口限制,嵌入式系統(tǒng)中紅外通信的速率基本在9600bps~115.2kbps之間。這里是通過硬件電路板上的異步通信收發(fā)器(UART)進(jìn)行紅外數(shù)據(jù)編碼和無線傳輸。在115.2kbps速率下紅外采用RZI的編碼調(diào)制方案,脈沖周期為3/16位周期。數(shù)據(jù)校驗(yàn)采用CRC16。其基本思想是將要發(fā)送的數(shù)據(jù)按照CRC16算法(CRC算法可以參考相關(guān)資料)進(jìn)行打包校驗(yàn),在接收時(shí)進(jìn)行CRC解包并與常數(shù)OXF0B8比較,若匹配即數(shù)據(jù)校驗(yàn)無誤。紅外數(shù)據(jù)傳輸以幀為基本單位。幀是一些特定域的組合,其中紅外協(xié)議底層字節(jié)包格式如圖2所示。
各個(gè)域含義如下:STA為開始標(biāo)志,即0x7E、ADDR為8位的地址域;DATA為數(shù)據(jù)域;FSC為16們的CRC校驗(yàn)碼;STO標(biāo)志幀結(jié)束,在接收兩個(gè)連續(xù)的幀時(shí)必須至少有3個(gè)以上的1后則標(biāo)志該幀有錯(cuò)誤,設(shè)備會(huì)放棄該幀。在紅外數(shù)據(jù)實(shí)際傳輸過程中,為了延時(shí)控制考慮,一般在數(shù)據(jù)幀頭添加多個(gè)STA域,通常采用連續(xù)11個(gè)0x7E達(dá)到延時(shí)目的。在接收時(shí),當(dāng)收到多個(gè)STA域時(shí)當(dāng)作一個(gè)來處理,多余的STA域被忽略。紅外數(shù)據(jù)傳輸?shù)臓顟B(tài)機(jī)流程如圖3所示。
下面對(duì)圖2作幾點(diǎn)說明:(1)數(shù)據(jù)傳輸時(shí)首先進(jìn)行Address Discovery過程,在此過程中發(fā)廣播幀,等待對(duì)方設(shè)備響應(yīng),收到響應(yīng)幀后可以取得對(duì)方設(shè)備地址。(2)取得對(duì)方地址后,進(jìn)行Connct過程,在此過程中將與對(duì)方設(shè)備協(xié)商傳輸參數(shù),如波特率、數(shù)據(jù)包大小、輪轉(zhuǎn)時(shí)間片等,之后建立連接。(3)建立完連接即進(jìn)入Information Transfer過程,進(jìn)行數(shù)據(jù)校驗(yàn),傳輸。其中按照一定算法進(jìn)行時(shí)間片數(shù)據(jù)幀收發(fā)控制。(4)數(shù)據(jù)傳輸完畢后進(jìn)入Disconnect過程,斷開連接。(5)在Address Discovery過程中,有可能發(fā)現(xiàn)對(duì)方設(shè)備地址與本機(jī)設(shè)備地址有沖突,此時(shí)進(jìn)入Address Conflict Resolution過程,解決完設(shè)備沖突后再返回。
圖3是一個(gè)標(biāo)準(zhǔn)的紅外數(shù)據(jù)傳輸狀態(tài)機(jī)流程,但在一些嵌入式設(shè)計(jì)方案中,出于省電等目的,可以不進(jìn)入Address Discovery過程,也就是簡(jiǎn)化掉Address Discovery過程而轉(zhuǎn)入Sniff過程。在探查一定時(shí)間后,若未收到對(duì)方設(shè)備響應(yīng)幀,自動(dòng)進(jìn)入休眠狀態(tài),若收到對(duì)方設(shè)備響應(yīng)幀,則進(jìn)入正常的連接過程。同時(shí),在連接過程與對(duì)方協(xié)商傳輸參數(shù)的過程中有一項(xiàng)窗口大。╳indows size)參數(shù),它是指定接收方可緩沖多少個(gè)幀后再進(jìn)行接收確認(rèn),其數(shù)值為1~7。在嵌入式系統(tǒng)存儲(chǔ)空間有限的情況下,可以采用默認(rèn)值1進(jìn)行數(shù)據(jù)的簡(jiǎn)單確認(rèn),也就是接收到一個(gè)數(shù)據(jù)幀后立即進(jìn)行確認(rèn)。這樣既節(jié)省了資源又使代碼量更小,運(yùn)行速度更快。
4 嵌入式系統(tǒng)中紅外協(xié)議實(shí)現(xiàn)設(shè)計(jì)
筆者采用Sitronix公司的ST2204電路板為硬件平臺(tái),處理芯片內(nèi)核為65C02。ST2204電路板使用了集成的8位處理器,尋址能力達(dá)到
【紅外通訊協(xié)議在嵌入式系統(tǒng)中的實(shí)現(xiàn)】相關(guān)文章:
嵌入式MPEG—4解碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)03-19
基于Web的嵌入式數(shù)控系統(tǒng)實(shí)現(xiàn)03-07
面向網(wǎng)絡(luò)測(cè)試的嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)03-07
嵌入式現(xiàn)場(chǎng)智能顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)03-07
利用SPD實(shí)現(xiàn)嵌入式系統(tǒng)中內(nèi)存的自動(dòng)識(shí)別和配置03-18
嵌入式系統(tǒng)中的CACHE問題03-19
嵌入式Linux系統(tǒng)中的GUI系統(tǒng)的研究與移植03-18