IR與RS-232的匹配技術(shù)
現(xiàn)代電子設(shè)備通常包含最新的數(shù)據(jù)通信接口,以實現(xiàn)更高的數(shù)據(jù)率或增進用戶的便利性。紅外技術(shù)(IR)是數(shù)據(jù)通信接口的一個很好例子,但有時單獨使用這種最新接口還是不夠的,設(shè)備還需要與采用傳統(tǒng)接口如RS-232的老設(shè)備兼容才會被用戶所接受。因此,常見的紅外技術(shù)和RS-232共存于同一設(shè)備中。
數(shù)據(jù)通信接口可以分成三個基本層:物理層、協(xié)議層和應(yīng)用層。物理層主要定義硬件的電氣特性和通信速度。協(xié)議層定義數(shù)據(jù)格式。應(yīng)用層利用數(shù)據(jù)格式在特定設(shè)備中執(zhí)行特定的工作。例如,在由紅外數(shù)據(jù)協(xié)會(IrDA)所定義的協(xié)議中,應(yīng)用層IrTran-P用于在成像設(shè)備如數(shù)碼相機中傳遞圖片。
RS-232只是一個物理層,而IR包括全部三個層?;贗rDA的IR也有多個物理層:115Kb/s的SIR、1Mb/s的MIR、4Mb/s的FIR以及16Mb/s的VFIR。由于RS-232和SIR使用相同的數(shù)據(jù)成幀器,通常稱為一個UART。
RS-232是異步串行通信最常用的物理層,并將繼續(xù)在多類終端設(shè)備中得到廣泛應(yīng)用,諸如網(wǎng)絡(luò)、工業(yè)控制設(shè)備和POS系統(tǒng)等。而IR得到了各類電子設(shè)備的支持,如筆記本電腦、手機、數(shù)碼相機和PDA等。
傳統(tǒng)解決方案
在僅有一個UART的系統(tǒng)中實現(xiàn)IR和RS-232匹配通常需要4個IC——雙SPDT模擬開關(guān)、編解碼器(ENDEC)、RS-232收發(fā)器和IR收發(fā)器(見圖1)。模擬開關(guān)引導(dǎo)發(fā)射(Tx)和接收(Rx)信號往返于相應(yīng)的收發(fā)器。來自微處理器(或微控制器)的通用輸出控制模擬開關(guān)。
對于IR操作,Tx信號必須通過ENDEC的編碼器部分。這將傳統(tǒng)的UART NRZ信號壓縮成IR收發(fā)器滿足IrDA SIR標(biāo)準(zhǔn)所要求的RZ脈沖。Rx正好相反,需要由IR收發(fā)器發(fā)送通過ENDEC的解碼器部分(見圖2a)。解碼器將單一脈沖展寬為傳統(tǒng)的NRZ信號,從而被UART識別。IR收發(fā)器的工作隨后只在IR頻譜內(nèi)接發(fā)信息(見圖2b)。
RS-232的操作更直接。模擬開關(guān)引導(dǎo)Tx和Rx信號往返于RS-232收發(fā)器。RS-232收發(fā)器不需要ENDEC,使之能夠接受TTL/CMOS信號,直接往返于UART。RS-232只不過是一個電平轉(zhuǎn)換器,通過使用內(nèi)部電荷泵將TTL/CMOS電平轉(zhuǎn)換為小于+5V而大于-5V的電平。
另一種普遍的折衷做法是去除模擬開關(guān)。用這種方法在僅有一個UART的系統(tǒng)中實現(xiàn)IR和RS-232匹配只需要3個IC——ENDEC、RS-232收發(fā)器和IR收發(fā)器。將IR和RS-232兩收發(fā)器的Tx線連到一起,去除模擬開關(guān)。兩收發(fā)器的Rx線采取同樣的連接。
由于兩收發(fā)器的Tx線連結(jié)在一起,因而數(shù)據(jù)同時發(fā)送到兩個發(fā)送器。在同一時間通過IR和RS-232發(fā)送器發(fā)送相同數(shù)據(jù),會浪費功耗,不適合大多數(shù)應(yīng)用。因此,許多系統(tǒng)設(shè)計師在這種情況下都將電源從不用的收發(fā)器中去除,以節(jié)省電力。但是,由于不用的收發(fā)器將通過一個內(nèi)部保護二極管由發(fā)送器輸入線上的電壓來供電,因些,這種方法實際上達不到節(jié)電的目的。
這種折衷方案不比傳統(tǒng)的解決方案簡單,因為它要求兩發(fā)送器都要經(jīng)過仔細(xì)選擇。因此,采用這種做法時,需要確保兩個收發(fā)器在無需去除電源的情況下,具有滿意的關(guān)斷特性(見圖3)。
改進的解決方案
在僅有一個UART的系統(tǒng)中實現(xiàn)IR和RS-232不再需要3或4個IC。相反地,前面所討論的傳統(tǒng)解決方案用一個IC(見圖4)就可實現(xiàn)。本例中的MAX3130就是這樣一種IC,它將全部四項功能包含在一個28引腳的SSOP封裝內(nèi)。其內(nèi)部的雙SPDT模擬開關(guān)通過改變IC的/IR-MODE腳上的邏輯狀態(tài)來實現(xiàn)控制。內(nèi)部的雙SPDT模擬開關(guān)在/IR-MODE為高電平時引導(dǎo)信號往返于RS-232收發(fā)器。/IR- MODE為低電平時,信號被引導(dǎo)往返于IR收發(fā)器。內(nèi)部的ENDEC在由UART波特輸出信號所提供的Baud16時鐘的幫助下對信號進行壓縮和展寬。
當(dāng)前,許多處理器均帶有多個內(nèi)部UART。當(dāng)設(shè)計所選用的處理器擁有兩個可用UART時,雙SPDT模擬開關(guān)便不再需要。
有些微控制器所擁有的內(nèi)部UART不包含或不能提供像工業(yè)標(biāo)準(zhǔn)16550 UART那樣與波特輸出等效的信號。波特輸出信號只不過是一個比選定波特率快16倍的時鐘。所有ENDEC在某些時候都需要這種Baud16時鐘來生成。
創(chuàng)建支持9600波特以外波特率的Baud16時鐘不是一項簡單的工作。首先,Baud16時鐘需要在開展任何通信之前就存在,且首次通信需在9600波特下進行。首次通信時,兩IR連接系統(tǒng)就每一系統(tǒng)所支持的最快速率達成一致。這些完成以后,需要適當(dāng)增大Baud16時鐘,以使所有的新通信都被限定在更快的現(xiàn)行波特率上。換言之,不能僅有一個晶體振蕩器、并用觸發(fā)器和跳線進行分割。必須通過軟件來控制Baud16時鐘。
雖然帶多個內(nèi)部UART的微處理器很平常,但系統(tǒng)設(shè)計師必須采用一種可能沒有兩個內(nèi)部UART的特殊處理器。在這種情況下,對于要求每個接口都時時與其自身的UART相連接的設(shè)計來說,工作會變得復(fù)雜。更為嚴(yán)峻的是,如果8個I/O引腳沒辦法與一個并行UART連接,那么設(shè)計師將很難有更多的選擇余地?!?(鋤禾譯)
評論