你真的瞭解串口 (Serial)嗎?

一、串口的定義

串口,全稱串行通信接口或串行通訊接口,是一種常用於電子設備間通訊的全雙工擴展接口;

串行通信,串口通訊的技術基礎,指一位一位地按順序傳送數據。其特點是線路簡單,只需一對傳輸線,即可實現雙向通信,大大降低成本。適用於遠距離通信,但速度較慢;

串行收發模塊,串口的現實載體,負責實現串行通訊,被集成到各種計算機設備中。其中,應用最廣的是 USART(Universal Synchronous/Asynchronous Receiver/Transmitter) —— 通用同/異步串行接收/發送器。

二、串口的硬件特性

串口的硬件特性,規定了數據通訊時的機械、電子特性,以確保數據在物理媒介上的傳輸。

由於串口的硬件特性有很多標準及變種,限於篇幅,本文只記錄最常見的 RS-232 標準

RS-232串口設備,通訊結構如下:

在這裏插入圖片描述
① 通訊設備的“DB9 接口”,由串口線連接,按 RS-232 約定的格式,進行數據傳輸;
② 由於 RS-232 電平標準的信號不能直接被控制器識別,所以會先經過“電平轉換芯片”,轉換成“TTL 標準”,才能實現通訊。單片機開發、調試中常用到的“串口轉USB模塊”,實現的就是這類電平標準轉換的作用。

在這裏插入圖片描述

2.1 電平標準

由上,RS-232串口設備中,存在兩種電平標準 —— RS-232標準、TTL標準。具體細節如下:

電平標準 邏輯 0 電平 邏輯 1 電平 生效階段
RS-232 +3V ~ +15V -15V ~ -3V 通訊過程中
TTL 0 ~ +0.5V +2.4V - +5V 控制器收、發過程中

可見,RS-232標準的各邏輯對應電平,相對TTL標準都要大得多,這是爲了增強串口通訊的遠距離傳輸及抗干擾能力。

2.2 信號線

一般來說,進行信號傳輸的設備,分爲數據終端設備 DTE(計算機、路由)和數據通訊設備 DCE(調製調解器)。

舊式的RS-232串口線,以針式引出信號線的稱爲公頭,以孔式引出信號線的稱爲母頭。兩者均由九根信號線組成,如下圖:

在這裏插入圖片描述
各編號線名稱以及相應的說明,如下表所示:

序號 名稱 符號 數據方向 說明
1 載波檢測 DCD DTE → DCE Data Carrier Detect,DTE 接收載波信號後的應答
2 接收數據 RXD DCE → DTE Receive Data,接收信號,即輸入數據。通訊設備的 RXD、TXD 應交叉相連
3 發送數據 TXD DTE → DCE Transmit Data,發送信號,即輸出數據。通訊設備的 RXD、TXD 應交叉相連
4 數據終端就緒 DTR DTE → DCE Data Terminal Ready,DTE 告知 DCE:本機已準備好
5 信號地 GND - 地線,通訊設備之間必須共地
6 數據設備就緒 DSR DCE → DTE Data Set Ready,DCE 告知 DTE:已準備好發送數據
7 請求發送 RTS DTE → DCE Request To Send,DTE 請求 DCE 發送數據,用於流控
8 允許發送 CTS DCE → DTE Clear To Send,DCE 迴應 DTE 的 RTS,用於流控
9 響鈴指示 RI DCE → DTE Ring Indicator,響鈴指示,表示 DCE 端與線路已接通

其中,RTS、CTS、DSR、DTR 及 DCD 信號,使用邏輯 1 表示有效,邏輯 0 爲信號無效。(例如,當計算機端控制 DTR 信號線表示爲邏輯 1 時,它是爲了告知遠端的調製調解器,本機已準備好接收數據, 0 則表示還沒準備就緒。)

在目前的其它工業控制使用的串口通訊中,一般只使用 RXD、TXD 以及 GND 三根信號線,直接傳輸數據信號,而 RTS、CTS、DSR、DTR 及 DCD,都被裁剪掉了。

三、串口的軟件協議

在RS-232的通訊中,定義了信號的軟件協議標準。雙方必須按照約定,以一致的通訊速率、包格式進行交互,否則將會出現數據異常。

在這裏插入圖片描述

3.1 波特率

每秒鐘傳送的碼元個數(注意: 不是bit位個數),嚴格來說,波特率描述的是單位時間內調製(數模轉換)信號的能力,而不是傳輸速率。

拓展:

  1. 碼元,是指信息傳輸通道中,攜帶數據信息的模擬信號單元。通過不同的調製(數模轉換)方式,一個碼元符號可能負載多個bit位信息,所以不能說“一個碼元等於一個bit”。當採用“兩相調製”處理時,比特率等於波特率;
  2. 串口的傳輸速率,一般由比特率(單位時間內傳輸的二進制代碼的有效位(bit)數) 來進行衡量。

3.2 起始位與停止位

每個通訊的串口數據包,都是從起始位開始,結束於停止位。起始位是一個邏輯0的數據位;而停止位可由0.5、1、1.5 或 2 個邏輯1的數據位表示,只要雙方約定一致即可。

3.3 有效數據

緊跟着起始位之後,便是串口數據包的主體內容,也稱爲有效數據,有效數據的長度可以是5、6、7、8個數據位,通訊開始前需要雙方約定。

3.4 校驗位

校驗位是一個可選的數據位,緊跟在有效數據之後,用來校驗,以防止因外部干擾而導致的傳輸偏差。校驗方法有奇校驗(odd)、偶校驗(even)、0校驗(space)、1校驗(mark)以及無校驗(noparity)

  1. 奇校驗:令傳輸的數據(有效數據和校驗位)中1的個數爲奇數(例如:某個串口數據包中,有效數據共有偶數個位爲1,則校驗位取“1”,使整體1的個數爲奇數);
  2. 偶校驗:與奇校驗相反;
  3. 0校驗:無論主體數據是什麼,校驗位保持爲0;
  4. 1校驗:無論主體數據是什麼,校驗位保持爲1。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章