在我們的日常生活中,經(jīng)常會聽到串口線一詞。而對于網(wǎng)絡(luò)工程師來說,串口線更是工作時不可或缺的工具。

那什么是串口?和串口有關(guān)的串口通信又是什么?
在了解串口通信之前,先了解一下幾個基本概念,主要是同步通信、異步通信、串行通信和并行通信。
在通信的線路上,有兩種狀態(tài),分別是邏輯1(高電平)和邏輯0(低電平),傳輸?shù)臄?shù)據(jù)格式為起始位(start bit)、數(shù)據(jù)位(data bit)、奇偶校驗位(parity bit)、停止位(stop bit)。

同步通信,比特同步通信技術(shù),要求發(fā)送方和接收方具有同頻同相的同步時鐘信號。同步通信需要在傳送報文的最前端附加特定的同步字符,使收發(fā)雙方建立同步,后續(xù)便在同步時鐘的控制下逐位發(fā)送、逐位接收。
同步通信最大的特點便是高速度、大容量的數(shù)據(jù)傳送,但同步通信要求時鐘嚴(yán)格同步,硬件復(fù)雜,成本高。
同步通信應(yīng)用最廣泛的是在變電站,變電站的時鐘同步通信技術(shù),就是基于IEEE1588標(biāo)準(zhǔn)的PTP精確時鐘同步協(xié)議來進(jìn)行的。(PTP,Precision Time Protocol,精確時鐘同步協(xié)議)。
異步通信,指通信中兩個字符(8位字符)之間的時間間隔可以是不固定的,而在一個字符內(nèi)各位的時間間隔是固定的。
簡單來說,同步就是指發(fā)送方發(fā)出數(shù)據(jù)后,等接收方發(fā)回響應(yīng)之后再發(fā)出下一個數(shù)據(jù)包;異步是指發(fā)送方發(fā)出數(shù)據(jù)后,不等接收方發(fā)回響應(yīng),緊接著發(fā)送下一個數(shù)據(jù)包。

串行通信,使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個固定的時間長度。

并行通信,多比特數(shù)據(jù)同時通過并行線進(jìn)行傳送。

了解完相關(guān)的基本通信概念,就是本篇文章的重點—串口和串口通信。
串口,即串行接口,是一種可以將接受來自CPU的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,同時可以將接受的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符提供給CPU的器件。
串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù),用來實現(xiàn)遠(yuǎn)距離通信。
串口通信(Serial Communication),指串口按位(bit)發(fā)送和接收字節(jié),發(fā)送和接收到的每一個字符,都是按一次一位傳遞的,每一位為1或者0。
串口通信有四個最重要的參數(shù),波特率、數(shù)據(jù)位、停止位和奇偶校驗。
常用的超級終端工具SecureCRT中就會經(jīng)常出現(xiàn)相關(guān)選項。

①波特率,在信息傳輸通道中,攜帶數(shù)據(jù)信息的信號單元叫碼元,每秒鐘通過信道傳輸?shù)拇a元數(shù)被稱為碼元傳輸速率,也就是波特率。
波特率,也是衡量符號傳輸速率的參數(shù)和傳輸通道頻寬的指標(biāo),用單位時間內(nèi)載波調(diào)制狀態(tài)改變的次數(shù)來表示。
舉個例子,如果數(shù)據(jù)傳送速率為240b/s,也就是每秒傳送240個字符,其中每個字符的格式為10位,包含1個起始位、1個停止位、8個有效數(shù)據(jù)位,則波特率為240baud(波特),有效數(shù)據(jù)位的傳送速率比特率為240*10=2400bps(比特每秒)。
1比特每秒是指每秒傳輸1比特(bit),baud(波特)代表每秒的調(diào)制數(shù)。
②數(shù)據(jù)位,通信中真正有效的信息。數(shù)據(jù)位的位數(shù)由通信雙方共同約定,一般是6位、7位或8位。
比如,標(biāo)準(zhǔn)的ASCII碼是7位(0~127),擴展的ASCII碼是8位(0~255)。
③停止位,在一個數(shù)據(jù)包的最后,用以標(biāo)志一個字符傳輸?shù)?b>結(jié)束。停止位有1位、1.5位、2位。
同時,數(shù)據(jù)是在傳輸線路上定時的,并且每一個設(shè)備有自己的時鐘,停止位可以提供計算機校正時鐘同步的機會。
④奇偶校驗位,串口通信中一種簡單的檢錯方式。串口會設(shè)置校驗位,用一個值確保傳輸?shù)臄?shù)據(jù)有偶數(shù)個或奇數(shù)個邏輯高位。
奇校驗,需要確保傳輸?shù)臄?shù)據(jù)總共有奇數(shù)個邏輯高位;偶校驗,需要確保傳輸?shù)臄?shù)據(jù)總共有偶數(shù)個邏輯高位。
舉個例子,若傳輸?shù)臄?shù)據(jù)是011,有兩個邏輯高位1,則奇校驗位就是1,確保數(shù)據(jù)一共有3個(奇數(shù))邏輯高位1;偶數(shù)校驗位是0,數(shù)據(jù)一共有2個(偶數(shù))邏輯高位1。