1并行通信與串行通信
終端與其他設(shè)備(如其他終端、計(jì)算機(jī)和外部設(shè)備)通過(guò)數(shù)據(jù)傳輸進(jìn)行通信。數(shù)據(jù)傳輸可以通過(guò)兩種方式進(jìn)行,即并行通信和串行通信。
1.1并行通信
在計(jì)算機(jī)和終端之間的數(shù)據(jù)傳輸通常是靠電纜或信道上的電流或電壓變化實(shí)現(xiàn)的。如果一組數(shù)據(jù)的各數(shù)據(jù)位在多條線(xiàn)上同時(shí)被傳送,這種傳輸被稱(chēng)為并行通信,如圖4-1所示。
并行數(shù)據(jù)傳送的特點(diǎn)是:各數(shù)據(jù)位同時(shí)傳送,傳送速度快、速率高,多用在實(shí)時(shí)、快速的場(chǎng)合。
并行傳送的數(shù)據(jù)寬度可以是1位~128位,甚至更寬,但是有多少數(shù)據(jù)位就需要多少根數(shù)據(jù)線(xiàn),因此傳送的成本高。在集成電路芯片的內(nèi)部,同一插件板上各部件之間,同一機(jī)箱內(nèi)各插件板之間的數(shù)據(jù)傳送都是并行的。
并行數(shù)據(jù)傳送只適用于近距離的通信,通常小于30CM。
1.2串行通信
串行通信是指通信的發(fā)送方和接收方之間數(shù)據(jù)信息的傳輸是在單根數(shù)據(jù)線(xiàn)上,以每次一個(gè)二進(jìn)制的0、1為最小單位逐位進(jìn)行傳輸,如圖4-2所示。
串行數(shù)據(jù)傳送的特點(diǎn)是:數(shù)據(jù)傳送按位順序進(jìn)行,最少只需要一根傳輸線(xiàn)即可完成,節(jié)省傳輸線(xiàn)。與并行通信相比,串行通信還有較為顯著的優(yōu)點(diǎn),傳輸距離長(zhǎng),可以從幾米到幾千米。在長(zhǎng)距離內(nèi)串行數(shù)據(jù)傳送速率會(huì)比并行數(shù)據(jù)傳送速率快,串行通信的通信時(shí)鐘頻率容易提高,串行通信的抗干擾能力十分強(qiáng),其信號(hào)間的互相干擾完全可以忽略。但是串行通信傳送速率比并行通信慢得多,并行通信時(shí)間為T(mén),則串行時(shí)間為NT。
正是由于串行通信的接線(xiàn)少、成本低,因此它在數(shù)據(jù)采集和控制系統(tǒng)中得到了廣泛的應(yīng)用,產(chǎn)品也多種多樣。RS-232的通信距離一般為15米,波仕電子的RS-232可以達(dá)到500米(產(chǎn)品型號(hào)EX232)以上。RS-485的通信距離一般為1200米,波仕電子可以做到1800米(產(chǎn)品型號(hào):485C、485A)甚至4800米(產(chǎn)品型號(hào):G485EX)。
2.串行通信工作模式
通過(guò)單線(xiàn)傳輸信息是串行數(shù)據(jù)通信的基礎(chǔ)。數(shù)據(jù)通常是在兩個(gè)站(點(diǎn)對(duì)點(diǎn))之間進(jìn)行傳送,按照數(shù)據(jù)流的方向可分成3種傳送模式:?jiǎn)喂?、半雙工、全雙工。
2.1單工形式:
早期的電流五單工形式的數(shù)據(jù)傳送是單向的。通信雙方中,一方固定為發(fā)送端,另一方則固定為接收端。信息只能沿一個(gè)方向傳送,使用一根傳輸線(xiàn),如圖4-3所示。
單工形式一般用在只向一個(gè)方向傳送數(shù)據(jù)的場(chǎng)合。如計(jì)算機(jī)與打印機(jī)之間的通信是單工形式,因?yàn)橹挥杏?jì)算機(jī)向打印機(jī)傳送數(shù)據(jù),而沒(méi)有相反的數(shù)據(jù)傳送。還有在某些通信信道中,如單工無(wú)線(xiàn)發(fā)送等。
2.2半雙工形式:RS-485
半雙工通信使用同一根傳輸線(xiàn),即可發(fā)送數(shù)據(jù)又可接收數(shù)據(jù),但不能同時(shí)發(fā)送和接收。在任何時(shí)刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。因此半雙工形式即可以使用一條數(shù)據(jù)線(xiàn),也可以使用兩條數(shù)據(jù)線(xiàn),如圖4-4所示。
半雙工通信中每端需有一個(gè)收/發(fā)切換電子開(kāi)關(guān),通過(guò)切換來(lái)決定數(shù)據(jù)向哪個(gè)方向傳輸。因?yàn)橛星袚Q,所以會(huì)產(chǎn)生時(shí)間延遲,信息傳輸效率低些。但是對(duì)于像打印機(jī)這樣單方向傳輸?shù)耐鈬O(shè)備,用半雙工方式就能滿(mǎn)足要求了,不必采用全雙工方式,可省一根傳輸線(xiàn)。
2.3全雙工形式:RS-232、RS-422
全雙工數(shù)據(jù)通信分別由兩根可以在兩個(gè)不同的站點(diǎn)同時(shí)發(fā)送和接收的傳輸線(xiàn)進(jìn)行傳送,通信雙方都能在同一時(shí)刻進(jìn)行發(fā)送和接收操作,如圖4-5所示。
在全雙工方式中,每一端都有發(fā)送器和接收器,有兩條傳送線(xiàn),可在交互式應(yīng)用和遠(yuǎn)程監(jiān)控系統(tǒng)中使用,信息傳輸效率較高。
3.異步傳輸與同步傳輸
串行傳輸中,數(shù)據(jù)是一位一位按照到達(dá)的順序依次傳輸?shù)?,每位?shù)據(jù)的發(fā)送和接收都需要時(shí)鐘來(lái)控制。發(fā)送端通過(guò)發(fā)送時(shí)鐘確定數(shù)據(jù)位的開(kāi)始和結(jié)束,接收端需要在適當(dāng)?shù)臅r(shí)間間隔對(duì)數(shù)據(jù)流進(jìn)行采樣來(lái)正確的識(shí)別數(shù)據(jù)。接收端和發(fā)送端必須保持步調(diào)一致,否則數(shù)據(jù)傳輸就會(huì)出現(xiàn)差錯(cuò)。為了解決以上問(wèn)題,串行傳輸可采用以下兩種方法:異步傳輸和同步傳輸。
3.1異步傳輸
異步傳輸方式中,字符是數(shù)據(jù)傳輸單位。在通信的數(shù)據(jù)流中,字符間異步,字符內(nèi)部各位間同步。異步通信方式的“異步”主要體現(xiàn)在字符與字符之間通信沒(méi)有嚴(yán)格的定時(shí)要求。異步傳送中,字符可以是連續(xù)地、一個(gè)個(gè)地發(fā)送,也可以是不連續(xù)地,隨機(jī)地進(jìn)行單獨(dú)發(fā)送。在一個(gè)字符格式的停止位之后,立即發(fā)送下一個(gè)字符的起始位,開(kāi)始一個(gè)新的字符的傳輸,這叫做連續(xù)的串行數(shù)據(jù)發(fā)送,即幀與幀之間是連續(xù)的。斷續(xù)的串行數(shù)據(jù)傳送是指在一幀結(jié)束之后維持?jǐn)?shù)據(jù)線(xiàn)的“空閑”狀態(tài),新的起始位可在任何時(shí)刻開(kāi)始。一旦傳送開(kāi)始,組成這個(gè)字符的各個(gè)數(shù)據(jù)位將被連續(xù)發(fā)送,并且每個(gè)數(shù)據(jù)位持續(xù)的時(shí)間是相等的。接收端根據(jù)這個(gè)特點(diǎn)與數(shù)據(jù)發(fā)送端保持同步,從而正確地恢復(fù)數(shù)據(jù)。收/發(fā)雙方則以預(yù)告約定的傳輸速率,在時(shí)鐘的作用下,傳送這個(gè)字符中的每一位。
3.2同步傳輸
在同步傳輸方式中,比特塊以穩(wěn)定的比特流的形式傳輸,數(shù)據(jù)被封裝成更大的傳輸單位,稱(chēng)為幀。每個(gè)幀中含有多個(gè)字符代碼,而且字符代碼與字符代碼之間沒(méi)有間隙以及起始位和停止位。和異步傳輸相比,數(shù)據(jù)傳輸單位的加長(zhǎng)容易引起時(shí)鐘漂移。為了保證接收端能夠正確地區(qū)分?jǐn)?shù)據(jù)流中的每個(gè)數(shù)據(jù)位,收發(fā)雙主必須通過(guò)某種方法建立起同步的時(shí)鐘??梢栽诎l(fā)送器和接收器之間提供一條獨(dú)立的時(shí)鐘線(xiàn)路,由線(xiàn)路的一端(發(fā)送器或者接收器)定期地在每個(gè)比特時(shí)間中向線(xiàn)路發(fā)送一個(gè)短脈沖信號(hào),另一端則將這些有規(guī)律的脈沖作為時(shí)鐘。這種技術(shù)在短距離傳輸時(shí)表現(xiàn)良好,但在長(zhǎng)距離傳輸中,定時(shí)脈沖可能會(huì)和信息信號(hào)一樣受到破壞,從而出現(xiàn)定時(shí)誤差。另一種方法是通過(guò)采用嵌有時(shí)鐘信息的數(shù)據(jù)編碼位向接收端提供同步信息。
3.3握手信號(hào)
握手信號(hào)實(shí)際上是控制信號(hào),用來(lái)控制數(shù)據(jù)的傳送。通過(guò)握手信號(hào),發(fā)送方可以通知接收方是否有數(shù)據(jù)要發(fā)送。接收方通過(guò)握手信號(hào)通知發(fā)送方它是否已經(jīng)準(zhǔn)備好了接收信號(hào)。握手信號(hào)遵循某種協(xié)議。
當(dāng)發(fā)送方和接收方處理數(shù)據(jù)的不一樣時(shí),可能會(huì)造成數(shù)據(jù)丟失。在傳輸中,如果發(fā)送方的發(fā)送速度大于接收方的接收速度,同時(shí)接收方處理數(shù)據(jù)的速度不夠快的話(huà),那么接收端的緩沖區(qū)必定在一定時(shí)間后溢出,從而造成以后發(fā)送過(guò)來(lái)的數(shù)據(jù)不能進(jìn)入緩沖區(qū)而丟失。發(fā)送方何時(shí)可以繼續(xù)發(fā)送數(shù)據(jù),何時(shí)必須暫停發(fā)送,從而讓接收方有時(shí)間處理數(shù)據(jù),稱(chēng)為流量控制,必須靠握手信號(hào)來(lái)解決這個(gè)問(wèn)題。例如,打印機(jī)和計(jì)算機(jī)進(jìn)行通信時(shí),一些打印機(jī)打印速度可能跟不上計(jì)算機(jī)發(fā)送數(shù)據(jù)的速度,就必須要通過(guò)握手信號(hào)通知計(jì)算機(jī)暫停發(fā)送數(shù)據(jù)。
3.4硬件握手
在硬件握手中,發(fā)送方通過(guò)將某一個(gè)導(dǎo)線(xiàn)拉到高電平或者低電平。來(lái)表示發(fā)送方可以發(fā)送數(shù)據(jù)。接收方已經(jīng)準(zhǔn)備好接收數(shù)據(jù)之后,也把某一個(gè)導(dǎo)線(xiàn)拉到高電平或者是低電平,來(lái)通知發(fā)送方,發(fā)送方一直在檢測(cè)這個(gè)信號(hào)。接收方可以在任何時(shí)候把這個(gè)信號(hào)變?yōu)闊o(wú)效,甚至是在接受一個(gè)數(shù)據(jù)塊過(guò)程中。當(dāng)發(fā)送方檢測(cè)到這個(gè)信號(hào)變?yōu)闊o(wú)效之后,就必須停止本次發(fā)送,直到這個(gè)信號(hào)變?yōu)橛行А?/font>
軟件在軟件握手中,以數(shù)據(jù)線(xiàn)上的數(shù)據(jù)信號(hào)來(lái)代替實(shí)際的硬件電路。這種方法用在直接連接或者通過(guò)調(diào)制解調(diào)器連接的兩臺(tái)計(jì)算機(jī)之間進(jìn)行雙向通信的場(chǎng)合。
對(duì)于軟件握手現(xiàn)在已經(jīng)建立了一些標(biāo)準(zhǔn)協(xié)議,其中最常用的是通信協(xié)議。通信協(xié)議是指通信雙方的一種約定,包括對(duì)數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯(cuò)方式以及控制字符定義等問(wèn)題作出統(tǒng)一規(guī)定,通信雙方必須共同遵守,也叫做通信控制規(guī)程或稱(chēng)傳輸控制規(guī)程,它屬于OSI七層參考模型中的數(shù)據(jù)鏈路層。
4.波仕電子的零延時(shí)自動(dòng)收發(fā)轉(zhuǎn)換技術(shù)
波仕電子的RS-232/RS-485轉(zhuǎn)換器使用了獨(dú)特的零延時(shí)自動(dòng)收發(fā)轉(zhuǎn)換技術(shù)。RS-485為半雙工通信,收與發(fā)不能同時(shí)進(jìn)行,需要進(jìn)行收與發(fā)的切換。一般這需要使用RS-232的一根握手信號(hào)線(xiàn)并在軟件上進(jìn)行控制。波仕電子的RS-232/RS-485轉(zhuǎn)換器則省去了這根握手信號(hào)線(xiàn),直接從RS-485信號(hào)中用硬件方法提取這個(gè)控制信號(hào),并且具備零延時(shí)的性能。零延時(shí)指收發(fā)切換過(guò)程轉(zhuǎn)變時(shí)間為0,在使用時(shí)與RS-232通信一樣。
4.1通信參數(shù)
串行端口的通信方式是將字節(jié)拆分成一個(gè)接著一個(gè)的位再傳送出去。接到此電位信號(hào)的一方再將此一個(gè)一個(gè)的位組合成原來(lái)的字節(jié),如此形成一個(gè)字節(jié)的完整傳送。
在傳輸進(jìn)行的過(guò)程中,雙方明確傳送信息的具體方式,否則雙方就沒(méi)有一套共同的譯碼方式,從而無(wú)法了解對(duì)方所傳過(guò)來(lái)的信息的意義。因此雙方為了進(jìn)行通信,必須遵守一定的通信規(guī)則,這個(gè)共同的規(guī)則就是通信端口的初始化。
通信端口的初始化必須對(duì)以下幾項(xiàng)參數(shù)進(jìn)行設(shè)置。
4.1.1數(shù)據(jù)的傳輸速度
串行通信的傳輸受到通信雙方配備性能及通信線(xiàn)路的特性所左右,收、發(fā)雙方必須按照同樣的速率進(jìn)行串行通信,即收、發(fā)雙方采用同樣的數(shù)據(jù)傳輸率。數(shù)據(jù)傳輸率批量的是串行通信中每一秒所傳送的數(shù)據(jù)位數(shù),單位是bit/s。經(jīng)常可以看到食品或MODEM的規(guī)格書(shū)上都寫(xiě)著19200bit/s、38400bit/s······,所指的就是數(shù)據(jù)傳輸率。
就食品或工業(yè)場(chǎng)合來(lái)說(shuō),19200bit/s、38400bit/s是最覺(jué)的數(shù)據(jù)傳輸率,現(xiàn)在的個(gè)人計(jì)算機(jī) 所提供的串行端口的數(shù)據(jù)傳輸率都可達(dá)到115200bit/s(甚至有921600bit/s),若傳輸距離較近而設(shè)備也提供時(shí),使用最高的數(shù)據(jù)傳輸率也可以。
例如,在某異步串行通信中,每傳送一個(gè)字符需要8位,如果采用數(shù)據(jù)傳輸率4800bit/s進(jìn)行傳送,則每秒可以傳送600個(gè)字符。
4.1.2數(shù)據(jù)的傳送單位
一般串行通信端口所傳送的數(shù)據(jù)是字符型,若用來(lái)傳輸文件,則會(huì)使用二進(jìn)制的數(shù)據(jù)類(lèi)型。當(dāng)使用字符型時(shí),工業(yè)界使用到的有ASCII字符碼及JIS字符碼;ASCII使用了8位形成一個(gè)字符,而JIS碼則以7位形成一個(gè)字符。歐美的設(shè)備多使用8位的字節(jié),而日本的設(shè)備多使用7位為一個(gè)字節(jié)。以實(shí)際的RS-232傳輸上看來(lái),由于工業(yè)界常使用的PLC大多只是傳送文字碼,因此只要7位就可以將ASCII的0~127碼表達(dá)出來(lái)(2=128,共有128種組合方式),所有的可見(jiàn)字符也落在此范圍內(nèi),所以只要7個(gè)數(shù)據(jù)位就夠了。不同的情形下(依據(jù)使用的協(xié)議),會(huì)使用到不同的傳送單位。使用多少位合成一個(gè)字節(jié)必須先行確定。
4.1.3起始位與停止位
由于異步串行傳輸中并沒(méi)有使用同步脈沖作基準(zhǔn),故接收端完全不知道傳送端何時(shí)將進(jìn)行數(shù)據(jù)的傳送。發(fā)送端準(zhǔn)備要開(kāi)始傳送數(shù)據(jù)時(shí),發(fā)送端會(huì)在所送出的字符前后分別加上高電位的起始位(邏輯0)及低電位的停止位(邏輯1),它們分別是所謂的起始位和停止位。也就是說(shuō),當(dāng)傳送端要開(kāi)始傳送數(shù)據(jù)時(shí),便將傳輸線(xiàn)上的電位由低電位提升至高電位;而當(dāng)傳送結(jié)束后,再將電位降至低電位。接收端會(huì)因起始位的觸發(fā)(因電壓由低電位升至高電位)而開(kāi)始接收數(shù)據(jù),并因停止位的通知(因電壓維持在低電位)而明確數(shù)據(jù)的字符信號(hào)已經(jīng)結(jié)束,當(dāng)加入了起始位及停止位才比較容易達(dá)到多字符的接收能力。起始位固定為1位,而停止位則有1、1.5、2位等多種選擇,如何選擇呢?只要通信雙方協(xié)議通過(guò)即可,沒(méi)有強(qiáng)制規(guī)定。
4.1.4校驗(yàn)位
為了預(yù)防錯(cuò)誤的發(fā)生,使用校驗(yàn)位作為檢查的機(jī)制。校驗(yàn)位即是用來(lái)檢查所傳送數(shù)據(jù)的正確性的一種核對(duì)碼,這之中又分成奇校驗(yàn)與偶校驗(yàn)兩種,分別是檢查字符碼中1數(shù)目是奇數(shù)或偶數(shù)。以偶校驗(yàn)為例,“A”的ASCII碼是41H(16進(jìn)制),將它以二進(jìn)制表示時(shí),是01000001其中1的數(shù)目是2,因此校驗(yàn)位便是0,使1的數(shù)目保持偶數(shù);同樣,校驗(yàn)位是奇校驗(yàn)時(shí),“A”的校驗(yàn)位便是1,使1的數(shù)目保持在奇數(shù)。接收者重新計(jì)算奇偶校驗(yàn)位,如果新的計(jì)算值正確,那么表示正常。如果新的計(jì)算值錯(cuò)誤,那么接收端就會(huì)收到一些指示,表示此次接收的數(shù)據(jù)有誤。