串口通信是非常重要的,首先了解下基礎(chǔ)
計(jì)算機(jī)串口通信基礎(chǔ)
隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計(jì)算機(jī)的通信功能越越顯得重要。計(jì)算機(jī)通信是指計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。
通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代化測(cè)控系統(tǒng)中信息的交換多采用串行通信方式。
計(jì)算機(jī)通信是將計(jì)算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。可以分為兩大類:并行通信與串行通信。
并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送。(如下圖)
由上圖可知一下可以傳8位,跟并行的A/DD/A 差不多,詢問和應(yīng)答是發(fā)送 和接受來詢問是否準(zhǔn)備好了沒有。
并行通信控制簡(jiǎn)單,傳輸速度快;由于傳輸線較多,長(zhǎng)距離傳送時(shí)成本高且接收方的各位同時(shí)接受存在困難。
串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地傳送。(如下圖)
注意:先發(fā)的是低位
串行通信的特點(diǎn):傳輸線少,長(zhǎng)距離傳送時(shí)成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,丹數(shù)據(jù)的傳送控制比并行通信復(fù)雜。
串行通信的基本概念
一、異步通信與同步通信
1、異步通信
異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一致。
異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時(shí)間間隔)是任意的,但每個(gè)字符中的各位是以固定的時(shí)間傳送的,即字符之間不一定有位間隔的整數(shù)倍的關(guān)系,但同一個(gè)字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。
異步通信的數(shù)據(jù)格式:
{先發(fā)起始位:低電平 表示起始位再發(fā)數(shù)據(jù)位 LSB 是低端(LSB: Least Significant Bit)最低有效位,先發(fā)低位數(shù)據(jù)共7位數(shù)據(jù)+ 1位校驗(yàn)位數(shù)據(jù)(判斷發(fā)送是否正確,如果不要校驗(yàn)位那么8位都是數(shù)據(jù)位)最后發(fā)一個(gè)停止位(高電平結(jié)束就是一個(gè)位寬的高電平表示停止位)共10位一幀 。}
異步通訊的特點(diǎn):不要求收發(fā)雙方時(shí)鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開銷較小,但每個(gè)字符要附加2~3位用于起始位,各幀之間有間隔,因此傳輸效率不高。
2、同步通信
同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接受方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時(shí)傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對(duì)接受方的同步可以通過兩種方法實(shí)現(xiàn)。
面向字符的同步格式:
此時(shí),傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個(gè)或2個(gè)同步字符SYN(ASCII碼為16H),SOH為序始字符(ASCII碼為01H),表示標(biāo)題的開始,標(biāo)題中包含源地址,目標(biāo)地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是傳送正文內(nèi)容,由多個(gè)字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗(yàn)碼。典型的面向字符的同步規(guī)程如IBM的二進(jìn)制同步規(guī)程BSC。
面向位的同步格式:
此時(shí),將數(shù)據(jù)塊看做數(shù)據(jù)流,并用序列01111110作為開始和結(jié)束標(biāo)志。為了避免在數(shù)據(jù)流中出現(xiàn)序列01111110時(shí)引起的混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中沒出現(xiàn)5個(gè)連續(xù)的1就插入一個(gè)附加的0;接收方則每檢測(cè)到5個(gè)連續(xù)的1并且其后有一個(gè)0時(shí),就刪除該0。
典型的面向位的同步協(xié)議如ISO的高級(jí)數(shù)據(jù)鏈路控制規(guī)程HDLC和IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。
同步通信的特點(diǎn)::是以特定的位組合“01111110”作為幀的開始和結(jié)束標(biāo)志,所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸效率高,但實(shí)現(xiàn)的硬件設(shè)備比異步通信發(fā)雜。(同步通信可以作為了解我這里只是想表達(dá)下我的理解,其實(shí)現(xiàn)實(shí)中我們用的大多數(shù)是異步通信)。
二、串行通信的傳輸方向1、單工單工是指數(shù)據(jù)傳輸僅能沿著一個(gè)方向,不能實(shí)現(xiàn)反向傳輸。2、半雙工半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,不能實(shí)現(xiàn)反向傳輸。3、全雙工全雙工是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。
三、信號(hào)的調(diào)制與解調(diào)利用調(diào)制器(MODULATOR)把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個(gè)裝置中,這就是調(diào)制解調(diào)器MODEM。
從上圖可以看出早期的計(jì)算機(jī)網(wǎng)絡(luò)通信就是利用串口RS-232C(是計(jì)算機(jī)串口電平)經(jīng)過MODEM實(shí)現(xiàn)雙向通信的,當(dāng)然傳輸速率相當(dāng)?shù)汀?/p>
四、串行通信的錯(cuò)誤校驗(yàn)
1、奇偶校驗(yàn)
在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位(1或0)。奇校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為偶數(shù)。接受字符時(shí),對(duì)“1”的個(gè)數(shù)進(jìn)行校驗(yàn),若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯(cuò)。(注意:為了簡(jiǎn)單等會(huì)我寫的程序不加校驗(yàn)了)。
2、代碼和校驗(yàn)
代碼和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個(gè)字節(jié)的校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接受方接受數(shù)據(jù)同時(shí)對(duì)數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)求和(或個(gè)字節(jié)異或),將所得結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比較,相符則無差錯(cuò),否則即認(rèn)為傳送過程中出現(xiàn)了差錯(cuò)。
3、循環(huán)冗余校驗(yàn)
這種校驗(yàn)是通過某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),常用于對(duì)磁盤信息的傳輸,存儲(chǔ)區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法糾錯(cuò)能力強(qiáng),廣泛應(yīng)用與同步通信中。(異步很少用,應(yīng)用于同步通信,作為了解,在讀研究生時(shí)候?qū)W信息論能學(xué)到,這里我也就是一知半解,嘿嘿畢竟哥沒讀過研究生)。
五、傳輸速率與傳輸距離
1、傳輸速率
比特率是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:位/秒(bps).如每秒鐘傳送240個(gè)字符,而每個(gè)字符格式包含10位(1起始位,1停止位,8個(gè)數(shù)據(jù)位),這時(shí)的比特率為:10*240個(gè)/秒=2400 bps
2、傳輸距離與傳輸速率的關(guān)系
串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時(shí),傳輸距離隨傳輸速率的增加而減小,當(dāng)比特率超過1000BPS,最大傳輸距離迅速下降,如9600bps時(shí)最大距離下降到只有76m(約250英尺)。
串行通信接口標(biāo)準(zhǔn)
一、RS-232C接口
RS232C是EIA(美國(guó)電子工業(yè)協(xié)會(huì))1969年修訂RS-232C標(biāo)準(zhǔn)。RS-232C定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn)。
1、機(jī)械特性
RS-232C接口規(guī)定使用25針連接器,連接器的尺寸及每個(gè)插針的排列位置都有明確的定義。(陽(yáng)頭)
以前是25針的這個(gè)可不是電腦的并行口內(nèi)部是不一樣的,因?yàn)殡娔X的并行口里面是有一組數(shù)據(jù)線,有詢問應(yīng)答等,現(xiàn)在都用9針的了(右邊)。記住里面有針的是公頭,另外一個(gè)帶孔的是母頭?,F(xiàn)在外面賣的的串口線內(nèi)部是已經(jīng)對(duì)調(diào)好的了就是發(fā)送接收是對(duì)調(diào)的,這樣我們直接使用就可以了。
上圖是25針的串口對(duì)應(yīng)現(xiàn)在9針的管腳定義。RTSDSR在連接MODEM 需接上一般我們只是接2/3/5 腳就行了。
4、過程特性
過程特性規(guī)定了信號(hào)之間的時(shí)序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù)
5、RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動(dòng)電路
現(xiàn)在我們已經(jīng)集合了,就用MAX232直接能夠?qū)崿F(xiàn)TTL->RS232及 RS-232->TTL 都有了。
6、采用RS-232C接口存在的問題
1、傳輸距離短,傳輸速率低
RS-232C總線標(biāo)準(zhǔn)受電容允許值的約束,使用時(shí)傳輸距離一般不要超過15米(線路條件好時(shí)也不能超過幾十米)。最高傳送速率為20Kbps.
2、有電平偏移
RS-232C總線標(biāo)準(zhǔn)要求收發(fā)雙方共地。通信距離較大時(shí),收發(fā)雙方的地電平差別較大,在信號(hào)地上將有較大的地電流并產(chǎn)生壓降。
3、抗干擾能力差
RS-232C在電平轉(zhuǎn)換時(shí)采用單端輸入輸出,在傳輸過程中當(dāng)干擾和噪聲混在正常信號(hào)中。為了提高信噪比,RS-232C總線標(biāo)準(zhǔn)不得不采用比較大的電壓擺幅。
二、RS-422A接口(為了改進(jìn) RS-232C就是在RS232C 輸出后再進(jìn)行改進(jìn))
RS-422A輸出驅(qū)動(dòng)器為雙端平衡驅(qū)動(dòng)器。如果其中一條線為邏輯“1”狀態(tài),另一條線就為邏輯“0”,比采用單端不平衡驅(qū)動(dòng)對(duì)電壓的放大倍數(shù)大一倍。差分電路能從地線干擾中拾取有效信號(hào),差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。RS-422A傳輸速率(90Kbps)時(shí),傳輸距離可達(dá)1200米。(作為了解下)
三、RS-485接口
RS-485是RS-422A的變型:RS-422A用于全雙工,而RS-485則用于半雙工。RS-485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用32 對(duì)差分驅(qū)動(dòng)器/接收器。如果在一個(gè)網(wǎng)絡(luò)中連接的設(shè)備超過32個(gè),還可以使用中繼器。
RS-485的信號(hào)傳輸采用兩線間的電壓來表示邏輯1和邏輯0。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動(dòng)信道,所以它的干擾抑制性極好,又因?yàn)樗淖杩沟停瑹o接地問題,所以傳輸距離可達(dá)1200米,傳輸速率可達(dá)1Mbps。
RS-485是一點(diǎn)對(duì)多點(diǎn)的通信接口,一般采用雙絞線的結(jié)構(gòu)。普通的PC機(jī)一般不帶RS485接口,因此要使用RS-232C/RS-485轉(zhuǎn)換器。對(duì)于單片機(jī)可以通過芯片MAX485來完成TTL/RS-485的電平轉(zhuǎn)換。在計(jì)算機(jī)和單片機(jī)組成的RS-485通信系統(tǒng)中,下位機(jī)由單片機(jī)系統(tǒng)組成,上位機(jī)為普通的PC機(jī),負(fù)責(zé)監(jiān)視下位機(jī)的運(yùn)行狀態(tài),并對(duì)其狀態(tài)信息進(jìn)行集中處理,以圖文方式顯示下位機(jī)的工作狀態(tài)以及工業(yè)現(xiàn)場(chǎng)被控設(shè)備的工作狀況。系統(tǒng)中各節(jié)點(diǎn)(包括上位機(jī))的識(shí)別是通過設(shè)置不同的站地址來實(shí)現(xiàn)的。
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7523瀏覽量
88309 -
串口通信
+關(guān)注
關(guān)注
34文章
1627瀏覽量
55602 -
數(shù)據(jù)鏈
+關(guān)注
關(guān)注
2文章
39瀏覽量
15807
原文標(biāo)題:?jiǎn)纹瑱C(jī)串口通信基礎(chǔ)
文章出處:【微信號(hào):eet-china,微信公眾號(hào):電子工程專輯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論