<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > IrDA紅外通信在導(dǎo)航儀中的應(yīng)用

          IrDA紅外通信在導(dǎo)航儀中的應(yīng)用

          作者: 時(shí)間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

          摘要:IrDA紅外通信是一種低價(jià)的、適應(yīng)性廣的短距離無線通信技術(shù)。介紹IrDA的有關(guān)協(xié)議及實(shí)現(xiàn)方式,并給出了IrDA紅外通信在導(dǎo)航儀中的應(yīng)用設(shè)計(jì)實(shí)例。

          本文引用地址:http://www.ex-cimer.com/article/244642.htm

          關(guān)鍵詞:紅外數(shù)據(jù)協(xié)會(huì)(IrDA) 紅外通信 高速紅外 4PPM調(diào)制 高速串行/并行接口

          導(dǎo)航儀是車載或手持的路徑引導(dǎo)裝置。要準(zhǔn)確、快速、成功地實(shí)現(xiàn)路徑引導(dǎo),必須有大量的、并能不斷更新的地理信息數(shù)據(jù)支持,這就要求它具有與其他設(shè)備通信并交換數(shù)據(jù)的功能。作為嵌入式設(shè)備的一員,可以選用的通信方案有:PCI總線,IrDA,USB,Ethernet,PC卡及一些傳統(tǒng)的I/O。其中可以實(shí)現(xiàn)無線通信的只有IrDA。IrDA1.0支持最高115.2Kbps的通信速率,而IrDA1.1可以支持到4Mbps。

          無線通信的好處是可以去除設(shè)備對線纜和連接器的依賴,只要通信雙方都支持IrDA協(xié)議,就能很快地建立通信鏈路,實(shí)現(xiàn)數(shù)據(jù)交換。

          現(xiàn)在市場上60%的筆記本電腦都支持紅外傳輸,紅外接口也成為幾乎所有的掌上電腦的必配標(biāo)準(zhǔn)件。而現(xiàn)在生產(chǎn)的PC機(jī)主板上也大都預(yù)留了紅外接口,只要選配合適的紅外收發(fā)模塊就能實(shí)現(xiàn)紅外無線數(shù)據(jù)通信。可見,紅外技術(shù)的迅速普及,使我們能夠最終突破數(shù)字終端之間連線的限制。

          1 IrDA及其通信協(xié)議簡介

          紅外數(shù)據(jù)協(xié)會(huì)(IrDA)是1993年6月成立的一個(gè)獨(dú)立組織,它為短距離紅外無線數(shù)據(jù)通信制定了一系列開放的標(biāo)準(zhǔn)。IrDA的目標(biāo)是制定能以合理且較小的代價(jià)實(shí)現(xiàn)的標(biāo)準(zhǔn)和協(xié)議,以推進(jìn)紅外通信的發(fā)展。

          IrDA數(shù)據(jù)通信按發(fā)送速率分為三大類:SIR,MIR和FIR。串行紅外(SIR)速率覆蓋了RS-232端口通常所支持的速率(9600 b/s19.2 Kb/s38.4 Kb/s57.6 Kb/s115.2 Kb/s)。MIR指0.576 Mb/s和1.152 Mb/s的速率。高速紅外(FIR)通常用于指4 Mb/s的速率,有時(shí)也用于指高于SIR的所有速率。

          在IrDA中,物理層、鏈路接入?yún)f(xié)議(IrLAP)和鏈路管理協(xié)議(IrLMP)是必需的三個(gè)協(xié)議層。除此之外,還有一些適用于特殊的應(yīng)用模式的可選層。

          在基本的IrDA應(yīng)用模式中,設(shè)備分為主設(shè)備和從設(shè)備。主設(shè)備探測它的可視范圍,尋找從設(shè)備。然后從那些響應(yīng)它的設(shè)備中選擇一個(gè),試圖建立連接。在建立連接的過程中,兩個(gè)設(shè)備彼此協(xié)調(diào),按照它們共同的最高通信能力確定最后的通信速率。以上的“尋找”和“協(xié)調(diào)”過程都是在9.6Kb/s的波特率下進(jìn)行的。

          IrDA數(shù)據(jù)通信工作在半雙工模式,因?yàn)榘l(fā)射時(shí),接收器會(huì)被它自己的發(fā)射器的光芒所屏蔽。通信的兩個(gè)設(shè)備通過快速轉(zhuǎn)向鏈路來模擬全雙工通信,由主設(shè)備負(fù)責(zé)控制鏈路的時(shí)序。

          IrDA協(xié)議按層安排,應(yīng)用程序的數(shù)據(jù)逐層下傳,最終以光脈沖的形式發(fā)出。如圖1所示,IrLAP和IrLMP是協(xié)議中物理層之外所需的兩個(gè)軟件層。在物理層上的第一層是鏈路接入?yún)f(xié)議IrLAP,它是HDLC(高級(jí)數(shù)據(jù)鏈路控制)協(xié)議的改編,以適應(yīng)紅外傳輸?shù)囊蟆#桑颍蹋粒袑拥墓δ苁沁M(jìn)行鏈路初始化、設(shè)備地址尋找和解決沖突、啟動(dòng)連接、數(shù)據(jù)交換、斷開連接和鏈路關(guān)閉。IrLAP指定紅外數(shù)據(jù)包的幀和字節(jié)結(jié)構(gòu),以及紅外通信的錯(cuò)誤檢測方法。IrLAP之上的一層是鏈路管理協(xié)議,即IrLMP,它管理IrLAP所提供的鏈路連接中的鏈路功能和應(yīng)用程序。它評(píng)估設(shè)備上的服務(wù),并管理如數(shù)據(jù)速率、BOF的數(shù)量(幀的開始)、及連接換向時(shí)間等參數(shù)的協(xié)調(diào),以及數(shù)據(jù)的糾錯(cuò)傳輸。

          IrDA物理層協(xié)議提出了對工作距離、工作角度(視角)光功率、數(shù)據(jù)速率和不同品牌設(shè)備互聯(lián)時(shí)抗干擾能力的建議。

          2 導(dǎo)航儀中IrDA紅外通信的設(shè)計(jì)與實(shí)現(xiàn)

          2.1 物理層協(xié)議的實(shí)現(xiàn)

          這一協(xié)議的設(shè)計(jì)保證了0~1m,0°~15°的軸線偏離角的無錯(cuò)通信。其中包括了調(diào)制、視角、光功率、數(shù)據(jù)速率和噪聲去除的規(guī)范,以保證不同品牌和類型的設(shè)備之間的物理互連性。協(xié)議也考慮了周圍的光照或其他IR噪聲源的存在,以及參與IR通信的設(shè)備間的干擾。

          協(xié)議要求合理選擇發(fā)射器的光強(qiáng)度和接收器的靈敏度,以保證鏈路能在0~1m的距離內(nèi)工作。數(shù)據(jù)速率小于4 Mb/s時(shí)使用RZI(歸零反轉(zhuǎn))調(diào)制,最大脈沖寬度是位周期的3/16;而4 Mb/s的數(shù)據(jù)速率使用4PPM(脈沖位置)調(diào)制。圖1給出了IrDA物理層的方框圖。

          IrDA要求的RZI(反相歸零)調(diào)制的編碼效果如圖2的IR?guī)瑪?shù)據(jù)所示。這一方案需要的編碼/解碼器可以集成在I/O芯片中,也可作為一個(gè)獨(dú)立元件。

          4PPM調(diào)制如圖3所示,兩個(gè)數(shù)據(jù)位組合在一起,組成一個(gè)500ns的“數(shù)據(jù)碼元組”。將這一碼元組分為四個(gè)125ns的時(shí)隙,根據(jù)碼元組的狀態(tài),在不同的時(shí)隙放置單脈沖。解調(diào)器在對輸入位流的相位鎖定后,就能根據(jù)脈沖在500ns周期中的位置來解出數(shù)據(jù)。

          2.2 硬件電路的設(shè)計(jì)

          導(dǎo)航儀的核心MCU選用Intel公司的SA1110,它的串口2是特別為IrDA紅外通信設(shè)計(jì)的,內(nèi)部集成了支持SIR和FIR的兩個(gè)獨(dú)立編碼/解碼模塊,能夠與市場上IrDA兼容的LED收發(fā)器直接相連。

          紅外收發(fā)器選用HP公司的HSDL-3600,它支持9.6kb/s~4Mb/s的數(shù)據(jù)傳輸速率,其典型鏈路傳輸距離可大于1.5m。通過管腳FIR_SEL能選擇可以接收的數(shù)據(jù)速率。FIR_SEL設(shè)為低時(shí),最高速率可達(dá)115.2kb/s;設(shè)為高時(shí),最高速率可達(dá)4Mb/s。同時(shí),它還有兩個(gè)管腳MD0和MD1,用來選擇發(fā)光功率。用戶可以根據(jù)自己的需要設(shè)定,達(dá)到在短距離通信情況下省電的目的。從表1所示的收發(fā)器控制真值表中,可以清楚地看到功能選擇的組合。

          表1 收發(fā)器控制真值表

          MD0 MD1 FIR_SEL 接收功能 發(fā)射功能
          1 0 X 關(guān)閉 關(guān)閉
          0 0 0 SIR 全距離
          0 1 0 SIR 2/3距離
          1 1 0 SIR 1/3距離
          0 0 1 FIR 全距離
          0 1 1 FIR 2/3距離
          1 1 1 FIR 1/3距離

          圖4是HSDL-3600的功能方框圖,它給出了HSDL-3600的管腳說明及典型外圍電路。其中CX1?。埃矗乏蹋?,CX2?。叮甫蹋疲遥比。玻郸?。在應(yīng)用時(shí),管腳TXD和RXD與SA1110的TXD2、RXD2分別直接相連。而SA1110的32位數(shù)據(jù)線中的三根通過鎖存器接到MD0,MD1和FIR_SEL上,這樣就能通過軟件控制HSDL-3600的工作模式。

          2.3 IrDA紅外通信的數(shù)據(jù)流

          SA1110的紅外通信端口(ICP)既支持SIR,也支持FIR。

          在SIR模式下,所有在TXD2/RXD2管腳和ICP的UART之間傳送的串行數(shù)據(jù)都根據(jù)SIR IrDA標(biāo)準(zhǔn)調(diào)制/解調(diào)。邏輯0由一個(gè)3/16位寬或1.6μs寬的光脈沖代表(1.6μs是最高位速率115.2 Kbps的位寬的3/16)。0位的開始對應(yīng)脈沖的上升沿。邏輯1由無光脈沖代表。字節(jié)首先從LSB開始發(fā)送。每幀由起始位、8位數(shù)據(jù)、停止位組成,無奇偶校驗(yàn)。

          而在FIR模式下,通信過程就復(fù)雜得多。所有在TXD2/RXD2管腳和ICP的HSSP(高速串行/并行)接口之間傳送的串行數(shù)據(jù),都是根據(jù)4PPM IrDA標(biāo)準(zhǔn)來調(diào)制/解制。編碼時(shí),把一個(gè)字節(jié)分為四個(gè)單獨(dú)的碼元組(2位一對),最低的碼元組首先傳送,但每個(gè)碼元組不重新排序。這樣,一個(gè)字節(jié)由四個(gè)“片”(每片500ns)組成,每個(gè)“片”分為四個(gè)時(shí)隙(每個(gè)時(shí)隙125ns)。

          ICP中用高速串行/并行(HSSP)接口來實(shí)現(xiàn)特殊的4Mb/s協(xié)議。4Mb/s的串行幀格式如表2所示。

          表2 用于IrDA傳送(4Mbps)的高速串行幀格式

          引導(dǎo)標(biāo)志 起始標(biāo)志 地址 控制(可選) 數(shù)據(jù) CRC-32 停止標(biāo)志
           
          引導(dǎo)標(biāo)志 ㄧ1000ㄧ0000ㄧ1010ㄧ0000ㄧ---重復(fù)16次
          起始標(biāo)志 ㄧ0000ㄧ1100ㄧ0000ㄧ1100ㄧ0110ㄧ0000ㄧ0110ㄧ0000ㄧ
          停止標(biāo)志 ㄧ0000ㄧ1100ㄧ0000ㄧ1100ㄧ0000ㄧ0110ㄧ0000ㄧ0110ㄧ

          引導(dǎo)標(biāo)志用于接收同步,接收開始時(shí),使用一個(gè)串行移位寄存器從RXD2管腳接收四個(gè)4PPM片,一次鎖存并解碼這些片。如果這些片不能解碼為正確的引導(dǎo)標(biāo)志,時(shí)隙計(jì)數(shù)延遲1,并重復(fù)以上過程,直到辨認(rèn)出引導(dǎo)標(biāo)志,則標(biāo)志時(shí)隙計(jì)數(shù)器同步。引導(dǎo)標(biāo)志最少重復(fù)16次,在空閑時(shí)(無發(fā)送數(shù)據(jù))不斷重復(fù)。所以在16個(gè)引導(dǎo)標(biāo)志傳送完后的任何時(shí)候,都可能接收到起始標(biāo)志。

          接收到8片長的起始標(biāo)志后,將它與標(biāo)準(zhǔn)編碼比較。如果起始標(biāo)志的任一部分和標(biāo)準(zhǔn)編碼不一樣,則告知一個(gè)幀錯(cuò)誤,并且再一次開始尋找?guī)龑?dǎo)標(biāo)志。一旦正確的起始標(biāo)志被驗(yàn)證,接下來的每組4片就被解碼為一個(gè)數(shù)據(jù)字節(jié),并放入5字節(jié)的臨時(shí)FIFO寄存器中。當(dāng)臨時(shí)FIFO被填滿后,數(shù)據(jù)值便被一個(gè)接一個(gè)地推入接收FIFO。

          一幀的第一個(gè)數(shù)據(jù)字節(jié)是8位的地址區(qū),它是在一對多通信時(shí)用來指定接收器的。最多允許255個(gè)獨(dú)立地址(00000000~11111110)。11111111為通用地址,用于對所有站廣播信息。接收地址匹配可以激活或禁止。如果接收地址匹配激活,收到的地址將和地址匹配值比較,如果兩個(gè)值相等或輸入地址是通用地址,所有的數(shù)據(jù)字節(jié),包括地址字節(jié),都將存儲(chǔ)在接收FIFO中。如果值不相符,則不把任何數(shù)據(jù)存儲(chǔ)到接收FIFO,并忽略幀的余下部分,開始尋找下一個(gè)引導(dǎo)標(biāo)志。

          一幀的第二個(gè)數(shù)據(jù)字節(jié)可能包括一個(gè)可選的由用戶定義的8位控制區(qū),它必須由軟件解碼,因?yàn)樵冢龋樱樱兄兴灰暈槠胀ǖ臄?shù)據(jù)。

          一幀可以包含不大于2047字節(jié)的任何數(shù)量的多個(gè)8位數(shù)據(jù)(包括地址和控制字節(jié))。HSSP不限制一幀的大小,但選擇數(shù)據(jù)長度時(shí),應(yīng)考慮到CRC校驗(yàn)的能力。一般數(shù)據(jù)長度不超過CRC校驗(yàn)?zāi)軝z測到傳輸中所有錯(cuò)誤時(shí)的最大數(shù)據(jù)量。

          HSSP使用已確定的32位循環(huán)冗余校驗(yàn)(CRC)來檢測傳送中發(fā)生的位錯(cuò)誤。CRC數(shù)值的計(jì)算使用地址、控制和數(shù)據(jù)區(qū),其生成多項(xiàng)式為:

          CRC(x)=x32+x26+x23+x22+x16+x12+x11+x10+x+x+x+x+x+x+1

          CRC數(shù)值不放在接收FIFO中,而是放入5字節(jié)的臨時(shí)FIFO中,并與接收時(shí)計(jì)算出的CRC數(shù)值進(jìn)行比較。

          如果數(shù)據(jù)區(qū)中接收到兩個(gè)不含脈沖(是0000)的片,則開始尋找停止標(biāo)志。一旦停止標(biāo)志被確認(rèn),放入接收FIFO的最后一個(gè)字節(jié)被標(biāo)志為幀的最后字節(jié)。

          3 前景與展望

          隨著紅外通信技術(shù)的發(fā)展,其通信速率也將不斷提高,在2001年IrDA將推出16Mbps的甚高速紅外(VFIR)標(biāo)準(zhǔn)。IrDA紅外通信的作用距離也從1m擴(kuò)展到幾十m,但距離的擴(kuò)展是以功耗的增加為代價(jià)的。

          對于象導(dǎo)航儀這樣的小型設(shè)備,IrDA紅外通信不失為一種方便、快捷的與主機(jī)交換數(shù)據(jù)的實(shí)現(xiàn)方案。隨著IrDA協(xié)議在PC機(jī)、打印機(jī)、掃描儀、數(shù)字相機(jī)、局域網(wǎng)(LAN)接入設(shè)備、尋呼機(jī)、蜂窩電話、醫(yī)療設(shè)施等設(shè)備上的實(shí)現(xiàn),無處不在的數(shù)字化連接即將成為現(xiàn)實(shí)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();