從捷運站出來時,偶而會看到維修工程師拿著筆記型電腦對著出口閘門處的驗票機,進行程式檔案傳送(transfer)和更新(overwrite)的工作。其實,這驗票機裡面有一台電腦,而且,這台電腦是利用紅外線和筆記型電腦通訊,這種紅外線技術就是IrDA。透過它,筆記型電腦、數位相機、手持式電腦、PDA、印表機、行動電話、呼叫器、電子書、電子錢包、玩具、手錶、數據收集器、消費性電子裝置、和其它攜帶式電子裝置 ... ..等裝置之間可以構成一個一對一的臨時網路(ad hoc network),藉此互相通訊。目前幾乎所有資訊家電產品都內建有IrDA,其魅力真的是不可擋。(圖一)是符合IrDA標準的產品商標。
何謂IrDA
IrDA標準以傳輸速率快慢可分成IrDA DATA和IrDA CONTROL兩種。一般而言,IrDA DATA傳輸速率為4Mbps,而且限定為主機(host)對主機的通訊; IrDA CONTROL傳輸速率比較慢,且僅針對主機的週邊裝置,例如:滑鼠、鍵盤...等做規範。本文將先討論IrDA DATA,再談論IrDA CONTROL。
IrDA是IrDA(Infrared Data Association)聯盟(IrDA consortium)制定的標準。IrDA標準包含硬體的規格和通訊協定的標準,數據資訊可藉由IrDA標準以紅外線傳輸。由於筆記型電腦和各種移動式通訊裝置需要相互溝通,所以IrDA於焉誕生。
IrDA裝置是利用LED發射紅外線光波,其波長約875 nm±30 nm,許多CCD相機對這種波長的紅外線也很敏感。IrDA接收器是利用PIN光電二極體(photodiode)接收紅外線光波,接收到的光波會激化為電子產生訊號,帶通濾波器會過濾此訊號,得到IrDA解調器所需之訊號。這是紅外線光波的能量轉化為電能的原理。@大標:IrDA的通訊距離和傳輸率
IrDA 1.0和1.1裝置的通訊距離可達1公尺,錯誤率(Bit Error Ratio;BER)為10-9,光源週邊的最大亮度為10klux。上述測量值是將收發端的偏斜角設定為15度,不過,單一光元件輸出功率的最大測量偏斜角可達到30度。定向發射器(Directional transmitters;IR LEDs)的通訊距離超過1公尺,但是,它的最大測量偏斜角不遵照IrDA標準。
IrDA 1.0的傳輸速度是2400到115,200 kbps(Slow IrDA;SIR),使用脈衝調變(pulse modulation),脈衝長度是位元間距的3/16。數據格式(Data format)和串列埠(serial port)或UART相同,亦即非同步(asynchronous)傳送一個位元組,在最前面有一個起始位元(startbit),如(圖二)所示。IrDA發射器可使用3/16位元間距的調變率(mark-to-space ratio)或以1.63μs固定脈衝間隔來調變,能得到115kbps的傳輸率。如果採用固定脈衝間隔,且傳輸率為38,400 bps(=115kbps/3),則每一個位元會用掉三個脈衝。
IrDA 1.1還定義了0.576和1.152 Mbps傳輸率(Fast IrDA;FIR),使用1/4位元間距的調變率。在此速率下,封包是以同步(synchronous)方式傳送,在最前面有起始序列(starting sequence)。(圖三)是訊號源(NRZ signal)調變前後的關係。
《圖三 訊號源(NRZ signal)調變前後的關係》 |
|
一個IrDA封包裡有兩個位元組的起始序列、目的地位址、數據、偵錯碼(CRC-16)和終止位元組,如(圖四)所示。IrDA通訊協定(IrDA protocol)會分配每個IrDA裝置一個唯一的位址,以辨別不同的裝置。IrDA封包(包含CRC-16)全部都是由IrDA晶片組產生的。起始和終止位元組必須分別位於封包的頭尾,不可置於其它位置。起始和終止字元的停留時間是位元間隔的1.5倍。
具有4Mbps傳輸率的IrDA,是採用1/4調變率的4PPM調變方法。亦即,在一個脈衝時間內,將兩個位元編碼。所以,在一個脈衝時間內,會在4個(22)不同符號(symbol )訊號中,得出一個符號訊號。因此,資訊是藉由脈衝振幅大小或符號來傳遞,而不是藉由0或1(有或無)脈衝來傳送。例如:00將轉成1000傳送,01將轉成0100,11將轉成0001。如(圖五)所示。使用4PPM調變的主要優點是:紅外線LED發光(flash)的次數可以減半,因此,數據傳輸率可加快兩倍。例如:00011011被4PPM調變成0001001001001000,訊號源(前者)的發光率是1/2,經4PPM調變後之訊號(後者)的發光率是1/4,後者是前者的1/2,所以,後者的數據傳輸率會比前者快兩倍。
此外,對IrDA接收器而言,4PPM調變可使IrDA機收機在固定時間內,收到固定數量的脈衝,這使得接收到的訊號能保持穩定。當傳輸率等於4Mbps時,發射訊號中的發光速率是2MHz,但是,在此傳輸模式下,封包是使用CRC-32偵錯碼,與0.576和1.152 Mbps傳輸模式不同。大多數使用4PPM調變的IrDA晶片組,也能自行產生CRC-32偵錯碼(圖六),當它們發現接收到的訊框有誤時,會自行拋棄這個錯誤訊框。
使用脈衝調變的理由
IrDA接收器必須能辨別周遭的光源、訊號、雜音,如此,才能將資訊還原。為了達到這個目的,使用高輸出功率傳送訊號似乎是最有效的,因為:高輸出功率=>接收端的電流增加=>訊雜比(signal-to-noise)增加。不過,因IR-LED的物理特性,IR-LED無法一直提供高輸出功率,因此,才將脈衝時間長度定為1/4或3/16位元間距。此外,因為IrDA接收器能自動適應周遭的光源大小,而且,它只偵測光波的瞬間變化,所以,發射訊號不再需要直流電承載,但是需要脈衝調變,來代表0和1數據。IrDA收發機整合了IR-LED發射器和PIN光電二極體接收器,並且,它還具有帶通濾波器,可過濾掉IrDA頻段(2400-115200 bps和0.576-4Mbps(2M flashes/s))以外的雜訊。
IrDA DATA的通訊協定堆疊
IrDA DATA的通訊協定堆疊如(圖七)及(表一)所示,其應用和通訊網路則如(圖八)所示,以下將一一介紹各個協定的作用。
表一 IrDA DATA - Hardware/Protocol Stacks
IrTran-P
|
IrObex
|
IrLan
|
IrCom
|
IrMC
|
LM-IAS
|
Tiny Transport Protocol - Tiny TP
|
Ir Link Mgmt - MUX - IrLMP
|
Ir Link Access Protocol - IrLAP
|
Async Serial-IR
(9600-115.2kb/s) |
Sync Serial-IR
(1.152Mb/s) |
Sync 4PPM
(4Mb/s) |
紅外線鏈路擷取通訊協定:IrLAP
IrDA紅外線鏈路擷取通訊協定(Infrared Link Access Protocol;IrLAP)是針對IrDA所需,修改自HDLC的通訊協定。它將訊框封裝(encapsulate),並確保不同IrDA裝置之間的通訊不會衝突。在數個IrDA裝置通訊中,只有一個是IrDA主裝置(primary),其餘都是次裝置(secondary)。它們都是使用半雙工通訊(half-duplex)。此外,IrLAP負責建立連結(establish connection)和關閉連結、對次裝置編號。連結時的初次傳輸速率為9600bps,連結完成後,它會產生邏輯通道(logical channel),並以主從裝置都接受的新傳輸率通訊,此時,IrDA主裝置負責控制每個邏輯通道。
紅外線鏈路管理通訊協定:IrLMP
當IrDA裝置的組態改變時,它會藉由IrDA紅外線鏈路管理通訊協定(IrDA Infrared Link Management Protocol ;IrLMP)讓其它裝置知道。IrLMP位於IrLAP上方,負責偵測週邊的其它IrDA裝置、檢查數據流量、並充當多工器。它類似TCP/IP上層的sockets,每個socket都有一個唯一的通訊埠。上層應用程式透過IrLMP來確認遠端裝置是否存在或在通訊範圍之內,但是,IrLMP不如TCP,無法提供一個可靠的通道,這還需要IrDA傳輸通訊協定(Tiny TP)。
傳輸通訊協定:Tiny TP
IrDA傳輸通訊協定 (IrDA Transport Protocols;Tiny TP) 負責管理不同IrDA裝置之間的虛擬通道(virtual channels) ,執行除錯、將數據分割(segment)成為封包、從封包中重組(reassemble) 還原數據。Tiny TP執行的工作類似TCP。
物件交換通訊協定 :IrOBEX
IrDA物件交換通訊協定 (Object Exchange Protocol;IrOBEX) 是一個簡單的通訊協定,它定義了PUT和GET命令,可以在兩台IrDA裝置之間擷取二進位制(binary)數據。它位於Tiny TP上方,定義了物件交換時,封包所必需的內容,以利IrDA裝置於通訊時能彼此辨識。
針對行動通訊IrOBEX的延伸協定---IrMC
針對手持式(handheld)電腦、PDA、行動電話......等行動通訊裝置,IrOBEX的延伸協定IrMC ( Extensions to IrOBEX for Ir Mobile Communications)定義了等同於GSM網路所提供的服務,例如:通訊錄、簡訊、行事曆、撥號控制、數位語音傳輸......等。
傳輸圖片通訊協定:IrTran-P
IrDA傳輸圖片通訊協定(Infrared Transfer Picture Protocol;IrTran-P)位於Tiny TP上方,支援數位相機和圖像擷取裝置(Image capture devices) ,藉由紅外線傳輸圖像訊框(frames) 。
無線區域網路通訊協定:IrLan
IrDA無線區域網路通訊協定(IrLan)是定義藉由紅外線擷取區域網路資源的通訊協定。IrDA主裝置必須和有線的區域網路連接,其餘的IrDA次裝置可以透過它和區域網路上的其它電腦通訊。
通訊埠通訊協定:IrCOMM
IrDA 通訊埠通訊協定(IrCOMM)針對舊有的COM應用程式(legacy COM applications),提供COM串列和並列模擬埠 (serial/parallel port emulation),例如:列印程式、數據機撥號程式、網路撥號程式......等。
IrDA元件
Hewlett Packard有生產IrDA發射器(IR LED)、接收器、和收發器。Hewlett Packard的HSDL-1000收發器(圖九)的傳輸率為115kbps (IrDA 1.0),使用半雙工通訊,應用容易,僅需少許的電容來過濾雜音,電容必須靠近HSDL-1000收發器,較佳的距離為0.7 cm。因為HSDL-1000是SMD封裝,所以,最好將它置於兩層印刷電路板的上層,底層是銅覆蓋的接地區,作為電磁干擾的屏蔽。
HSDL-1100是傳輸率快速的收發器(4Mbit/s),不過,因為它的速度非常快,如果電路設計不佳,很容易使HSDL-1100的FIR輸出變成一個振盪器(oscillator)。此外,HSDL-1100對雜音非常敏感,而且除FIR輸出以外,其它不需要的訊號也會回饋(feedback),因此在應用上,HSDL-1100比HSDL-1000困難許多。
Hewlett Packard另有IR LED HSDL-4230和HSDL-4220,調變速度可達10Mbits,最大電流0.5A(mark-to-space ratio 0.2)或100mA(連續)。兩者的差異在於它們的輻射角度(radiation angle)不同,HSDL-4220是30度,HSDL-4230只有17度。
Hewlett-Packard也有生產IrDA PIN接收器,以及IrDA調變/解調器(modulation encoders/decoders)。115kbps HSDL-7000系列的IrDA調變/解調器是具有8個接腳的積體電路,它們除了需要外接電源、串列埠收發器之外,還需一個16倍速的頻率振盪器。就115kbps而言,振盪器頻率必須等於115,200*16=1.8432 MHz。HSDL-7001只提供少許的功能,例如: 整合除頻器(frequency divider)、輸入端可直接連接一個被動石英振盪器(passive XTAL);此除頻器只對IR輸入端作用,不對輸出端作用。
當然,Hewlett-Packard不是唯一生產IrDA元件的廠商,TI和National Semiconductors也是著名的IrDA元件製造商。TI的TIR1000和TIR2000是常見的IrDA元件。TIR2000傳輸率達4Mbps,使用DMA模式。
IrDA CONTROL
IrDA CONTROL是針對無線電週邊裝置(cordless peripherals) ,例如:鍵盤、滑鼠、電玩、搖桿...等,與主機通訊的標準。主機裝置包含: PC、家電、遊戲機、電視機上盒....等。IrDA CONTROL充分利用USB HID類別,可輕易地將所有USB週邊裝置轉換成無線電裝置。這是經由IrDA實體層的傳收,和媒體擷取控制(MAC)層的列舉(enumeration)與結合(binding),還有邏輯鏈路控制(LLC)層的交換處理(transactions) 。
IrDA CONTROL的通訊堆疊
IrDA CONTROL的通訊比IrDA DATA簡單,它的通訊堆疊只有實體層(Physical layer; PHY) 、媒體擷取控制層(Media Access Control; MAC) 、和邏輯鏈路控制層 (Logical Link Control; LLC) 。
實體層特性
IrDA CONTROL的實體層特性如下:
* 通訊距離和現有單向紅外線遙控器(infrared remote control units)相同,約5公尺。
* 雙向通訊是所有IrDA標準的基礎。
* 最大數據傳輸率為75 kb/s。
* 數據資訊是使用一個16-脈衝序列(16-Pulse Sequence)來編碼,並且和1.5 MHz副載波(subcarrier)相乘。在IEC 1603-1標準中,此副載波是供高速遙控使用。這個基頻的諧波會侵入其它IEC頻段,所以應用時需注意。
* 數據封包是用CRC除錯,短封包用CRC-8,長封包用CRC-16。實體層可用低功率、最優化的低成本硬體來實作。
媒體擷取控制層特性
IrDA CONTROL的媒體擷取控制層特性如下:
● 允許主機裝置和許多週邊裝置通訊(一對多) ,而且一台主機可同時與8個週邊裝置通訊。
● 反應快速,在基本輪詢速率(polling rate)下僅13.8 ms,且延遲時間短。
非對稱(Asymmetric)MAC:
● 對週邊裝置動態分配位址,位址可重複使用(re-use)。
● 媒體擷取的順序安排其實是由HID LLC完成的。
邏輯鏈路控制層特性
IrDA CONTROL的邏輯鏈路控制層特性如下:
● 支援數據序列(data sequencing)和重傳(retransmission)機制,確保通訊品質。
● 與HID-IrDA控制橋接器配合,可啟動USB-HID鏈路控制功能。
Windows 2000 IrDA架構
IrDA Data和IrDA Control所有的必需性(required)和選擇性(optional)標準都可從IrDA網站www.irda.org中下載。目前微軟的作業系統都支援IrDA,這包含:IDG、WinCE、WinNT、Win98、Win2000、Win XP。PC 99和PC 2000的產品都有支援IrDA通訊埠,這包含部份WinCE硬體平台,如PalmPC...等。Windows是全球市場佔有率最高的作業系統,所以Windows 2000也有支援一些獨特的IrDA功能。下面就簡介Windows 2000 IrDA的架構。
IrDA硬體驅動程式
如(圖十)所示,Windows 2000 中的IrSIR.SYS驅動程式支援SIR UART串列埠介面卡。IrSIR.SYS利用SERIAL.SYS中的函式與IrDA硬體通訊。內建的SIR硬體必須在BIOS中宣告為PNP0510或PNP0511隨插即用類別。
FIR IrDA硬體必須成為一個NDIS 4.0網路卡,藉由FIR驅動程式可以同時將數個FIR IrDA硬體虛擬成為數個NDIS網路卡。而每一個IrDA NDIS網路卡是一個獨特的IrDA收發機,可支援唯一的IrLAP連線。每個FIR IrDA硬體必須具有一個唯一的隨插即用識別編號,和硬體驅動程式。如果FIR IrDA硬體也支援SIR,則它必須也是PNP0510或PNP0511隨插即用類別,以容許IrSIR.SYS視之為SIR硬體。
Windows 2000支援IrDA多個介面卡(multiple-adapter)
Windows 2000 IrDA通訊協定堆疊允許數個NDIS 4.0 FIR/SIR迷你埠介面卡可同時傳輸。這使單一伺服器(server)可以同時接受數個用戶(client)的連接擷取要求,而且,在主從網路架構下,對伺服端和用互端的使用者而言,應用程式都是保持透明的,亦即使用者無須了解底層的運作情形。因為每一個介面卡可構成一個IrLAP連結(connection),所以,NDIS 4.0 FIR/SIR迷你埠介面卡是不可或缺的。
原始的IrDA是不具備路由功能的,所以,多個IrDA網路卡雖然可以連接到單一的伺服器上,但是彼此無法透過伺服器通訊。不過,這可以透過映射表達到路由的目的。
每個IrDA網路卡和IrLAP連線(instance)都有一個唯一的IrDA MAC位址或DeviceId。
為了發覺附近的IrDA裝置,IrDA有所謂的發現(discovery)作業。建立連線之前,IrDA裝置必須先透過發現作業了解週邊的裝置。每個閒置裝置都會執行發現作業,每個IrLAP連線都會保有一個週邊裝置發現表,每個連線中的IrDA網路卡都會被發現。
為了達到路由的目的,Windows 2000 IrDA通訊協定堆疊會保有一個裝置位址與最後存在的IrDA網路卡的映射表(map) 。當用戶要求與另一個用戶連接時,IrDA通訊協定堆疊會將連線路由至另一個用戶端。
結語
IrDA是低功率無線電通訊技術中,目前表現最成功的。它的單價已經低於5美元,而且,應用面正不斷地擴大。反觀藍芽仍因成本過高,技術複雜,至今仍然無法普及。不過,IrDA的視線以內直線傳輸特性也阻礙了它的更進一步發展。
IrDA技術如今已非常成熟,並不適合國內業者貿然投入生產。但是,IrDA通訊協定架構卻是其它後來技術的重要參考指標,例如:藍芽、IEEE 802.11a/b、HomeRF.....等。而美國Extended Systems公司的OBEX通訊協定堆疊正是先在IrDA建構完成後,再移植至藍芽的最佳技術轉型之例證,非常值得國內業者學習。