RS-232、RS-422及RS-485串行數(shù)據(jù)標(biāo)準(zhǔn)的選擇及使用
“標(biāo)準(zhǔn)的奇妙之處在于有如此之多的選擇。”這句話出現(xiàn)在最近一次關(guān)于光纜的會(huì)議中,但同樣也適用于電氣接口標(biāo)準(zhǔn)。隨著不同行業(yè)內(nèi)串行數(shù)據(jù)標(biāo)準(zhǔn)的獨(dú)立發(fā)展,我們擁有的標(biāo)準(zhǔn)從未如此之多。
本文引用地址:http://butianyuan.cn/article/201612/329286.htmPC和電信應(yīng)用領(lǐng)域最成功的串行數(shù)據(jù)標(biāo)準(zhǔn)可能就是RS-232。相類似,RS-485和RS-422也在工業(yè)應(yīng)用領(lǐng)域最成功的標(biāo)準(zhǔn)之列。這些標(biāo)準(zhǔn)并不直接兼容。然而,對(duì)于控制和儀器儀表應(yīng)用,往往必須在不同標(biāo)準(zhǔn)之間進(jìn)行通信。本文討論不同的標(biāo)準(zhǔn)(物理層指標(biāo)),介紹如何將一種標(biāo)準(zhǔn)轉(zhuǎn)換為另一種標(biāo)準(zhǔn),并演示如何在相同應(yīng)用中組合不同的標(biāo)準(zhǔn)。
RS-232電氣指標(biāo)和典型連接
RS-232鏈路最初用于支持IBM PC上的調(diào)制解調(diào)器和打印機(jī)應(yīng)用。然而,該標(biāo)準(zhǔn)現(xiàn)在支持各種外設(shè)與PC通信。RS-232標(biāo)準(zhǔn)定義為單端標(biāo)準(zhǔn),用于以較低波特率(<20kbps)提高串行通信距離。多年以來,該標(biāo)準(zhǔn)幾經(jīng)變化,以支持較快的驅(qū)動(dòng)器,例如MAX3225E,該器件能提供1Mbps數(shù)據(jù)傳輸速率。為了兼容RS-232,MAX3225E等收發(fā)器必須滿足表1所列的電氣指標(biāo)。從典型連接(圖1)可看出,利用硬件握手來控制數(shù)據(jù)流。
表 1. RS-232標(biāo)準(zhǔn)的主要電氣指標(biāo)匯總
參數(shù) | 條件 | 最小 | 最大 | 單位 |
---|---|---|---|---|
驅(qū)動(dòng)器輸出電壓,開路 | 25 | V | ||
驅(qū)動(dòng)器輸出電壓,帶載 | 3kΩ < RL < 7kΩ | ±5 | ±15 | V |
驅(qū)動(dòng)器輸出電阻,關(guān)斷 | -2V < V < 2V | 300 | ||
電壓變化率 | 4 | 30 | V/µs | |
最大負(fù)載電容 | 2500 | pF | ||
接收器輸入電阻 | 3 | 7 | kΩ | |
接收器輸入門限: | ||||
輸出 = 串號(hào)(邏輯1) | -3 | V | ||
輸出 = 空號(hào)(邏輯0) | 3 | V |
圖1. 典型的RS-232連接。
典型RS-232信號(hào)(圖2,CH1)的擺動(dòng)范圍為正和負(fù)。注意左側(cè)坐標(biāo)軸上0V蹤跡標(biāo)記的相對(duì)位置。盡管RS-232數(shù)據(jù)為反相,從TTL/CMOS到RS-232然后再返回至TTL/CMOS的轉(zhuǎn)換恢復(fù)了數(shù)據(jù)的原始極性。RS-232的典型傳輸距離很少超過100英尺。原因有兩個(gè):首先,發(fā)送電平(±5V)和接收電平(±3V)之差只允許有2V的共模抑制;第二,較長電纜的分布電容可能超過規(guī)定的最大負(fù)載(2500pF),從而降低擺率。由于RS-232被設(shè)計(jì)為點(diǎn)對(duì)點(diǎn)接口,并非多節(jié)點(diǎn)接口,所以其驅(qū)動(dòng)器的指標(biāo)為3kΩ至7kΩ單負(fù)載。因此,多節(jié)點(diǎn)接口應(yīng)用通常采用菊鏈的連接方法(圖3)。
圖2. RS-232接收器支持雙極性輸入信號(hào)(上部蹤跡,CH1),輸出反相的TTL/CMOS信號(hào)(底部蹤跡,CH2)。
圖3. 菊鏈方法允許在單個(gè)RS-232鏈路上掛接多個(gè)從機(jī)接收器。
菊鏈設(shè)備及其限制
在菊鏈配置中,RS-232信號(hào)經(jīng)過第一個(gè)接收器,并環(huán)回至發(fā)送器。對(duì)數(shù)據(jù)發(fā)送線中之后的器件重復(fù)該配置。該項(xiàng)技術(shù)的主要問題是電纜斷裂。如果從機(jī)1和從機(jī)2之間發(fā)生斷裂,妨礙所有下行器件發(fā)送或接收數(shù)據(jù)。另一種多節(jié)點(diǎn)RS-232技術(shù)涉及到預(yù)緩沖或RS-232輸出升壓驅(qū)動(dòng)(使其驅(qū)動(dòng)多個(gè)并聯(lián)的5kΩ輸入)。
為避免菊鏈網(wǎng)絡(luò)相關(guān)的問題,Maxim開發(fā)了MAX3322E/MAX3323E,專門設(shè)計(jì)用于多節(jié)點(diǎn)應(yīng)用。這些獨(dú)特的器件采用了5kΩ邏輯開關(guān)輸入電阻。器件未被選中時(shí),其輸入電阻保持為高阻態(tài),允許與共用總線上的其它器件繼續(xù)通信。
另一種解決菊鏈網(wǎng)絡(luò)問題的方案是將RS-232 Rx和Tx信號(hào)轉(zhuǎn)換為RS-422信號(hào)(見表2)。RS-422為差分標(biāo)準(zhǔn),允許傳輸距離長得多。RS-422較高的輸入阻抗,與其較高驅(qū)動(dòng)能力相結(jié)合,允許連接多達(dá)10個(gè)節(jié)點(diǎn)(圖4)。RS-422的另一種優(yōu)勢是獨(dú)立的發(fā)送和接收通路,無需方向控制??梢岳密浖?XON/OFF握手)或硬件(一組獨(dú)立的雙絞線)實(shí)現(xiàn)器件之間必要的握手。MAX3162提供了RS-232和RS-422之間進(jìn)行信號(hào)轉(zhuǎn)換的經(jīng)濟(jì)途徑。更多信息請(qǐng)參見下文的RS-232/RS-485協(xié)議轉(zhuǎn)換器部分。
表 2. RS-422關(guān)鍵指標(biāo)匯總
參數(shù) | 條件 | 最小 | 最大 | 單位 |
---|---|---|---|---|
驅(qū)動(dòng)器輸出電壓,開路 | ±10 | V | ||
驅(qū)動(dòng)器輸出電壓,帶載 | RL= 100Ω | 2 -2 | V | |
驅(qū)動(dòng)器輸出電阻 | A至B | 100 | Ω | |
驅(qū)動(dòng)器輸出短路電流 | 每輸出至公共連接 | 150 | mA | |
驅(qū)動(dòng)器輸出上升時(shí)間 | RL= 100Ω | 10 | %位寬 | |
驅(qū)動(dòng)器共模電壓 | RL= 100Ω | ±3 | V | |
接收器靈敏度 | VCM<±7V | ±200 | mV | |
接收器共模電壓范圍 | -7 | 7 | V | |
接收器輸入電阻 | 4 | kΩ | ||
差分接收器電壓 | 可工作 | ±10 | V | |
可承受 | ±12 | V |
圖4. 典型RS-422系統(tǒng)允許差分傳輸線路上掛接多達(dá)10個(gè)接收器。
RS-485與RS-422的差異及其在應(yīng)用中的使用
RS-422和RS-485收發(fā)器往往容易混淆,往往將其中一個(gè)當(dāng)做另一個(gè)的全雙工版本。然而,其共模范圍及接收器輸入電阻方面的電氣差異使得這些標(biāo)準(zhǔn)適合于不同的應(yīng)用。由于RS-485滿足所有的RS-422規(guī)范(表3),RS-485驅(qū)動(dòng)器可用于RS-422應(yīng)用。然而,相反則不成立。RS-485驅(qū)動(dòng)器的共模輸出為-7V至+12V,而RS-422的共模范圍僅為±3V。RS-422驅(qū)動(dòng)器的最小接收器輸入電阻為4kΩ,而RS-485驅(qū)動(dòng)器則為12kΩ。
表3. RS-485關(guān)鍵指標(biāo)匯總
參數(shù) | 條件 | 最小 | 最大 | 單位 |
---|---|---|---|---|
驅(qū)動(dòng)器輸出電壓,開路 | 1.5 -1.5 | 6 -6 | V V | |
驅(qū)動(dòng)器輸出電壓,帶載 | RL= 100Ω | 1.5 -1.5 | 5 -5 | V V |
驅(qū)動(dòng)器輸出短路電流 | 每輸出至公共連接 | ±250 | mA | |
驅(qū)動(dòng)器輸出上升時(shí)間 | RL= 54Ω CL= 50pF | 30 | %位寬 | |
驅(qū)動(dòng)器共模電壓 | RL= 54Ω | ±3 | V | |
接收器靈敏度 | -7V < VCM< 12V | ±200 | mV | |
接收器共模電壓范圍 | -7 | 12 | V | |
接收器輸入電阻 | 12 | kΩ |
為降低接線費(fèi)用以及達(dá)到較長的線長,RS-485收發(fā)器已經(jīng)成為銷售終端、工業(yè)及電信應(yīng)用領(lǐng)域廣泛采用的標(biāo)準(zhǔn)。RS-485較寬的共模范圍也支持較長的線長和較高的每節(jié)點(diǎn)輸入電阻,允許總線上連接較多的節(jié)點(diǎn)(圖5)。
圖5. 與RS-422相比,RS-485連接較高的輸入阻抗和較寬的共模范圍,支持較長的線長。
差分RS-485傳輸(圖6)在雙絞線電纜的每一根線上產(chǎn)生相反的電流和磁場,交叉抵消每根線周圍的反向磁場,從而將輻射電磁干擾(EMI)降至最小。為了在較長電纜或較高數(shù)據(jù)率下進(jìn)行傳輸,電纜作為傳輸線,并應(yīng)利用電纜的特征阻抗進(jìn)行端接。RS-485連接的這個(gè)方面容易引起混淆。傳輸線需要端接嗎?如果需要,應(yīng)如何端接?如果設(shè)計(jì)者不是最終用戶,這些問題應(yīng)該留給安裝方來解決嗎?對(duì)于大多數(shù)RS-485收發(fā)器,數(shù)據(jù)資料標(biāo)出了電纜作為傳輸線時(shí)不端接和簡單點(diǎn)對(duì)點(diǎn)端接之間的簡單選擇(圖7)。A-B端子之間的端接電阻是無害的。默認(rèn)情況下,應(yīng)該在總線上最后一個(gè)收發(fā)器處對(duì)傳輸進(jìn)行端接。
圖6. RS-485線上的反極性信號(hào)交叉抵消了彼此的磁場,從而將EMI降至最小。以上示波器截屏上的GND基準(zhǔn)經(jīng)過搬移(偏移),清晰顯示RS-485輸出信號(hào)的相反極性。
圖7. 傳輸線端接電阻的選擇取決于具體應(yīng)用。
失效保護(hù)
確定是否需要端接電阻僅僅是實(shí)現(xiàn)RS-485系統(tǒng)時(shí)面臨的問題之一。正常情況下,如果A比B大+200mV或更多,RS-485接收器輸出為“1”;如果B比A大200mV或更多,收發(fā)器輸出為“0”。在半雙工RS-485網(wǎng)絡(luò)中,主機(jī)收發(fā)器在向從機(jī)發(fā)送消息后,將總線置于三態(tài)。所以,如果沒有信號(hào)驅(qū)動(dòng)總線,接收器輸出狀態(tài)則無定義,因?yàn)锳和B之差趨向于0V。如果接收器輸出RO為“0”,從機(jī)將其解釋為新的開始位,并嘗試讀取隨后的字節(jié)。由于不會(huì)發(fā)生停止位,所以結(jié)果就是成幀錯(cuò)誤。總線變?yōu)闊o主,網(wǎng)絡(luò)停頓。
不幸的是,對(duì)于0V差分輸入,不同芯片測試中會(huì)產(chǎn)生不同的輸出信號(hào)。原型可能正常工作,但特定的節(jié)點(diǎn)在生產(chǎn)測試中卻失敗。為解決這一問題,如圖7中多節(jié)點(diǎn)/失效保護(hù)端接所示,對(duì)總線進(jìn)行偏置。偏置總線,確??偩€為三態(tài)時(shí)的接收器輸出保持為“1”?;蛘?,您可使用“真失效保護(hù)”接收器,例如MAX3080 (5V)和MAX3070 (3V)系列產(chǎn)品。這些器件將接收器的門限改為-50mV,確保差分輸入為0V時(shí)RO輸出為“1”。
RS-232/RS-485協(xié)議轉(zhuǎn)換器
MAX3162為一款很獨(dú)特的器件,包括RS-232和RS-485接收器和發(fā)送器。寬范圍通信器件包含在單片IC中,支持在RS-232和RS-485信號(hào)之間雙向獨(dú)立轉(zhuǎn)換。圖8所示的電路中,MAX3162配置為在點(diǎn)對(duì)點(diǎn)應(yīng)用中雙向轉(zhuǎn)換RS-232和RS-485信號(hào)。
圖8. MAX3162在點(diǎn)對(duì)點(diǎn)應(yīng)用中雙向轉(zhuǎn)換RS-232和RS-485信號(hào)。
圖9所示為MAX3162配置為RS-232/RS-485多節(jié)點(diǎn)協(xié)議轉(zhuǎn)換器。轉(zhuǎn)換方向由RTS信號(hào)R1IN控制。單端RS-232接收器輸入信號(hào)轉(zhuǎn)換為差分RS-485發(fā)送器輸出;類似地,差分RS-485接收器輸入信號(hào)轉(zhuǎn)換為單端RS-232發(fā)送器輸出。R2IN上接收的RS-232數(shù)據(jù)在Z和Y上作為RS-485信號(hào)發(fā)送;A和B上接收的RS-485信號(hào)在T1OUT上作為RS-232信號(hào)發(fā)送。
RTS線為共用線,用于控制轉(zhuǎn)換RS-232和RS-485的電路總線方向。該線在RS-232端口上控制RS-485收發(fā)器作為發(fā)送器還是接收器(圖9)。注意,系統(tǒng)不確定UART發(fā)送緩沖器中的數(shù)據(jù)字節(jié)是否已發(fā)送,除非系統(tǒng)監(jiān)測RS-485驅(qū)動(dòng)器的輸入DI。也就是說,系統(tǒng)必須允許固定延時(shí)或主動(dòng)監(jiān)測DI輸入,然后再使用DE輸入來改變總線方向。
其它方向控制技術(shù)包括使用微控制器以及利用數(shù)據(jù)驅(qū)動(dòng)DE輸入,同時(shí)輪詢A-B線電壓差(利用上拉電阻將A連接至5V,利用下拉電阻將B連接至地)。這些電阻的值隨電纜電容變化,但典型值為1kΩ。
圖9. MAX3162在多節(jié)點(diǎn)應(yīng)用中雙向轉(zhuǎn)換RS-232和RS-485信號(hào)。
端口供電器件
許多RS-232至RS-485轉(zhuǎn)換器為“端口供電轉(zhuǎn)換器”,此時(shí)通過RS-232 RTS線(或者有時(shí)為RTS和CTS (DTR)線的組合)為RS-485供電。由于RS-232端口可用的功率是有限的,當(dāng)一個(gè)端口供電轉(zhuǎn)換器與(比如) 100個(gè)RS-485端點(diǎn)配合使用時(shí),就達(dá)不到RS-485的啟動(dòng)電壓。然而,較低的接收器門限(200mV)允許較好的誤差裕量。該技術(shù)被廣泛用于線路較短以及A-B端點(diǎn)間沒有端接電阻的系統(tǒng)。
熱插拔
電路板插入到正在工作或帶電背板時(shí),對(duì)數(shù)據(jù)總線的差分干擾會(huì)造成數(shù)據(jù)錯(cuò)誤。插入電路板時(shí),數(shù)據(jù)通信處理器首先進(jìn)入其上電序列。在此期間,處理器邏輯輸出驅(qū)動(dòng)器為高阻態(tài),不能將MAX3060E/MAX3080E的DE和/RE輸入驅(qū)動(dòng)到規(guī)定的邏輯電平。處理器邏輯驅(qū)動(dòng)器為高阻態(tài)時(shí)的漏電流高達(dá)±10mA,可能會(huì)造成收發(fā)器的標(biāo)準(zhǔn)CMOS使能輸入發(fā)生漂移,處于不正確的邏輯電平。此外,電路板的寄生電容可能造成VCC或GND耦合到使能輸入。如果不支持熱插拔,這些因素會(huì)錯(cuò)誤地使能收發(fā)器的驅(qū)動(dòng)器或接收器。
評(píng)論