串口通信是非常重要的,首先了解下基礎(chǔ)
計算機串口通信基礎(chǔ)
- 隨著多微機系統(tǒng)的廣泛應(yīng)用和計算機網(wǎng)絡(luò)技術(shù)的普及,計算機的通信功能越越顯得重要。計算機通信是指計算機與外部設(shè)備或計算機與計算機之間的信息交換。
- 通信有并行通信和串行通信兩種方式。在多微機系統(tǒng)以及現(xiàn)代化測控系統(tǒng)中信息的交換多采用串行通信方式。
- 計算機通信是將計算機技術(shù)和通信技術(shù)的相結(jié)合,完成計算機與外部設(shè)備或計算機與計算機之間的信息交換?梢苑譃閮纱箢悾翰⑿型ㄐ排c串行通信。
- 并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進(jìn)行傳送。(如下圖)
由上圖可知一下可以傳8位,跟并行的A/D
- 并行通信控制簡單,傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接受存在困難。
- 串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。(如下圖)
注意:先發(fā)的是低位
- 串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,丹數(shù)據(jù)的傳送控制比并行通信復(fù)雜。
- 串行通信的基本概念
一、異步通信與同步通信
1、異步通信
異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有位間隔的整數(shù)倍的關(guān)系,但同一個字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。
{先發(fā)起始位:低電平 表示起始位
異步通訊的特點:不要求收發(fā)雙方時鐘的嚴(yán)格一致,實現(xiàn)容易,設(shè)備開銷較小,但每個字符要附加2~3位用于起始位,各幀之間有間隔,因此傳輸效率不高。
2、同步通信
同步通信時要建立發(fā)送方時鐘對接受方時鐘的直接控制,使雙方達(dá)到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對接受方的同步可以通過兩種方法實現(xiàn)。
此時,傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個或2個同步字符SYN(ASCII碼為16H),SOH為序始字符(ASCII碼為01H),表示標(biāo)題的開始,標(biāo)題中包含源地址,目標(biāo)地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是傳送正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗碼。典型的面向字符的同步規(guī)程如IBM的二進(jìn)制同步規(guī)程BSC。
面向位的同步格式:
二、串行通信的傳輸方向
1、單工
單工是指數(shù)據(jù)傳輸僅能沿著一個方向,不能實現(xiàn)反向傳輸。
2、半雙工
半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,不能實現(xiàn)反向傳輸。
3、全雙工
全雙工是指數(shù)據(jù)可以同時進(jìn)行雙向傳輸。
三、信號的調(diào)制與解調(diào)
利用調(diào)制器(MODULATOR)把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODEM。
從上圖可以看出早期的計算機網(wǎng)絡(luò)通信就是利用串口RS-232C(是計算機串口電平)經(jīng)過MODEM
四、串行通信的錯誤校驗
1、奇偶校驗
在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為奇數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為偶數(shù)。接受字符時,對“1”的個數(shù)進(jìn)行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。(注意:為了簡單等會我寫的程序不加校驗了)。
2、代碼和校驗
代碼和校驗是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接受方接受數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或個字節(jié)異或),將所得結(jié)果與發(fā)送方的“校驗和”進(jìn)行比較,相符則無差錯,否則即認(rèn)為傳送過程中出現(xiàn)了差錯。
這種校驗是通過某種數(shù)學(xué)運算實現(xiàn)有效信息與校驗位之間的循環(huán)校驗,常用于對磁盤信息的傳輸,存儲區(qū)的完整性校驗等。這種校驗方法糾錯能力強,廣泛應(yīng)用與同步通信中。(異步很少用,應(yīng)用于同步通信,作為了解,在讀研究生時候?qū)W信息論能學(xué)到,這里我也就是一知半解,嘿嘿畢竟哥沒讀過研究生)。
五、傳輸速率與傳輸距離
1、傳輸速率
比特率是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:位/秒(bps).如每秒鐘傳送240個字符,而每個字符格式包含10位(1起始位,1停止位,8個數(shù)據(jù)位),這時的比特率為:
2、傳輸距離與傳輸速率的關(guān)系
串行通信接口標(biāo)準(zhǔn)
一、RS-232C接口
1、機械特性
RS-232C接口規(guī)定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)
以前是25針的這個可不是電腦的并行口內(nèi)部是不一樣的,因為電腦的并行口里面是有一組數(shù)據(jù)線,有詢問應(yīng)答等
上圖是25針的串口對應(yīng)現(xiàn)在9針的管腳定義。RTS
4、過程特性
5、RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路
現(xiàn)在我們已經(jīng)集合了,就用MAX232直接能夠?qū)崿F(xiàn)TTL
6、采用RS-232C接口存在的問題
1、傳輸距離短,傳輸速率低
3、抗干擾能力差
二、RS-422A接口(為了改進(jìn) RS-232C
三、RS-485接口
------------------------------------------------------------------------
以上為串口通訊的基礎(chǔ)部分。由于本人學(xué)識有限難免有錯誤之處。。。