RS-485/RS-422在發(fā)送數(shù)據(jù)完成后,如何保持接收使能有效
由于RS-485/RS-422在發(fā)送數(shù)據(jù)完成后,要求所有的發(fā)送使能控制信號(hào)關(guān)閉且保持接收使能有效,此時(shí),總線驅(qū)動(dòng)器進(jìn)入高阻狀態(tài)且接收器能夠監(jiān)測(cè)總線上是否有新的通信數(shù)據(jù)。但是由于此時(shí)總線處于無(wú)源驅(qū)動(dòng)狀態(tài)(若總線有終端匹配電阻時(shí),A和B線的差分電平為0,接收器的輸出不確定,且對(duì)AB線上的差分信號(hào)的變化很敏感;若無(wú)終端匹配,則總線處于高阻態(tài),接收器的輸出不確定),容易受到外界的噪聲干擾。當(dāng)噪聲電壓超過(guò)輸入信號(hào)門(mén)限時(shí)(典型值±200mV),接收器將輸出數(shù)據(jù),導(dǎo)致對(duì)應(yīng)的UART接收無(wú)效的數(shù)據(jù),使緊接著的正常通訊出錯(cuò);另外一種情況可能發(fā)生在打開(kāi)/關(guān)閉發(fā)送使能控制的瞬間,使接收器輸出信號(hào),也會(huì)導(dǎo)致UART錯(cuò)誤地接收。
解決方法:
1)在通訊總線上采用同相輸入端上拉(A線)、反相輸入端下拉(B線)的方法對(duì)總線進(jìn)行鉗位,保證接收器輸出為固定的“1”電平;
2)采用內(nèi)置防故障模式的MAX308x系列的接口產(chǎn)品替換該接口電路;
3)通過(guò)軟件方式消除,即在通信數(shù)據(jù)包內(nèi)增加2-5個(gè)起始同步字節(jié),只有在滿足同步頭后才開(kāi)始真正的數(shù)據(jù)通訊。
串行通信接口標(biāo)準(zhǔn)經(jīng)過(guò)使用和發(fā)展,目前已經(jīng)有幾種。RS-232、RS-422與RS-485都是串行數(shù)據(jù)接口標(biāo)準(zhǔn)。RS-422由RS-232發(fā)展而來(lái),它是為彌補(bǔ)RS-232之不足而提出的。為改進(jìn)RS-232通信距離短、速率低的缺點(diǎn),RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,傳輸距離延長(zhǎng)到4000英尺(速率低于100kb/s時(shí)),并允許在一條平衡總線上連接最多10個(gè)接收器。
由于EIA提出的建議標(biāo)準(zhǔn)都是以“RS”作為前綴,所以在通訊工業(yè)領(lǐng)域,仍然習(xí)慣將上述標(biāo)準(zhǔn)以RS作前綴稱謂。
RS-232、RS-422與RS-485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。因此在視頻界的應(yīng)用,許多廠家都建立了一套高層通信協(xié)議,或公開(kāi)或廠家獨(dú)家使用。
RS-232C標(biāo)準(zhǔn)(協(xié)議)的全稱是EIA-RS-232C標(biāo)準(zhǔn),其中EIA(Electronic Industry Association)代表美國(guó)電子工業(yè)協(xié)會(huì),RS(ecommeded standard)代表推薦標(biāo)準(zhǔn),232是標(biāo)識(shí)號(hào),C代表RS232的最新一次修改(1969),在這之前,有RS232B、RS232A。它規(guī)定連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送過(guò)程。常用物理標(biāo)準(zhǔn)還有有RS-232-C、RS-422-A、RS-423A、RS-485。 這里只介紹RS-232-C(簡(jiǎn)稱232,RS232)。 例如,目前在IBM PC機(jī)上的COM1、COM2接口,就是RS-232C接口。
連接器:由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種類型的連接器,其引腳的定義也各不相同。
RS-232接口,也被稱為串口,是電腦機(jī)箱后方常見(jiàn)的9芯插座,其旁邊通常會(huì)標(biāo)有“|O|O|”樣式的標(biāo)識(shí)。大多數(shù)機(jī)箱配備兩個(gè)這樣的接口,但新機(jī)箱可能只有一個(gè),而筆記本電腦則可能不配備。該接口在工業(yè)儀器中廣泛應(yīng)用,作為標(biāo)準(zhǔn)通信端口,其通信內(nèi)容和格式通常詳述在儀器的用戶手冊(cè)中。
在數(shù)據(jù)傳輸方面,計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的通訊可以選擇串行或并行兩種方式。串行通訊因其線路需求少、成本低廉,特別是在遠(yuǎn)程傳輸時(shí)能有效避免多條線路特性不一致的問(wèn)題,因此被廣泛采用。
為了確保不同設(shè)備能夠順暢地連接和通訊,串行通訊要求雙方遵循一個(gè)共同的標(biāo)準(zhǔn)接口。而RS-232-C接口,又稱EIA RS-232-C,便是在這樣的背景下誕生的。它由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)于1970年聯(lián)合多家行業(yè)領(lǐng)先企業(yè)共同制定,成為當(dāng)時(shí)最受歡迎的串行通訊接口標(biāo)準(zhǔn)。
該標(biāo)準(zhǔn)全稱為“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”。它詳細(xì)規(guī)定了采用一個(gè)25個(gè)腳的DB25連接器,并對(duì)每個(gè)引腳的信號(hào)內(nèi)容以及各種信號(hào)的電平進(jìn)行了明確規(guī)定。
RS-232接口專為點(diǎn)對(duì)點(diǎn)通信設(shè)計(jì),其驅(qū)動(dòng)器能夠驅(qū)動(dòng)3至7kΩ的負(fù)載。正因如此,RS-232在本地設(shè)備間的通信中表現(xiàn)出色。
盡管RS-232接口在許多場(chǎng)合下都發(fā)揮著重要作用,但它也存在一些固有的不足。這主要體現(xiàn)在以下四個(gè)方面:
信號(hào)電平值較高,可能損壞接口電路的芯片。由于RS-232接口采用負(fù)邏輯關(guān)系,即邏輯“1”對(duì)應(yīng)-3至-15V的電壓,而邏輯“0”則對(duì)應(yīng)+3至+15V的電壓,這要求接收器能識(shí)別高于+3V的信號(hào)作為邏輯“0”,低于-3V的信號(hào)作為邏輯“1”。這種高電壓標(biāo)準(zhǔn)可能會(huì)對(duì)接口電路造成損害。
傳輸速率相對(duì)較低。在異步傳輸模式下,其比特率僅為20Kbps。因此,在51CPLD開(kāi)發(fā)板中,綜合程序的波特率只能選擇19200,這也限制了其應(yīng)用范圍。
采用共地傳輸方式,容易受到共模干擾。由于接口僅使用一根信號(hào)線和一根信號(hào)返回線構(gòu)成共地傳輸,這種傳輸方式容易受到外界電磁干擾的影響,導(dǎo)致抗噪聲能力較弱。
傳輸距離有限。根據(jù)標(biāo)準(zhǔn)規(guī)定,最大傳輸距離為50英尺(約15米),這在一定程度上限制了其在實(shí)際應(yīng)用中的范圍。