【串口】串口基本概念


1.異步通信和同步通信

同步:發送方發出數據后,等接收方發回響應以后才發下一個數據包的通訊方式。

異步:發送方發出數據后,不等接收方發回響應,接着發送下個數據包的通訊方式。

2.異步通信的數據傳輸圖

 

3.串口通信為什么要使接收和發送的波特率相同?

       波特率為每秒鍾傳輸的位數,比如波特率為9600,意思就是每秒鍾傳輸9600位(bit),即1200字節(byte)

       波特率就是通訊的速率,只有波特率一致的情況下才能保證接收方和發送方獲取同樣的數據。比如兩個人一相同速度跑步,互相看着就是靜止的一樣。如果速度不匹配就會有誤差。

       假設波特率為9600bps,則一個單位時間長為1/9600s=104us。

       傳輸的過程中,高電平代表1,低電平代表0,接收方要正確接收數據,就必須采用與發送端相同的波特率。因為要確定每一位數據的時間寬度,波特率的作用就是這做這個的,不同的波特率所確定的位寬是不一樣的。

4.數據位不一致會導致亂碼

       數據位主要是要傳送的信息

       假設數據位設置為5,那么就相當於規定了每個傳輸字節只能由5個二進制位來表示,例如:11111,10110,01110等。也就是說,這個RS232口只能發送00000~11111這個范圍內的數,如果發送一個比11111還大的數,例如11111+1,也就是100000,那么經過這個RS232口的處理以后,只會發送出去一個00000,而接收端只能接收到00000。這樣看起來貌似發送的數據和接收的不一樣,其實這是串口數據位長度決定了他會發送多少位數據,超出的位是不會被發送的。

       接收和發送的數據位不一致,就會發生亂碼現象。

       一個ASCII碼必須要用8位二進制數來表示,其中低7位表示字符,同時還要注意,在標准ASCII中,最高位(b7)用作奇偶校驗位。這也就意味着如果串口傳輸的數據位設置是5或者6位,那么這種情況下,串口是無法發送出ASCII碼表中數值大於11111B(十進制31)或者111111B(十進制63)的數所表示ASCII字符的

5.校驗位

      串口有5種校驗方式,分別是無檢驗(None),奇校驗(Odd),偶校驗(Even),1校驗(Mark),0校驗(Space).

      在數據發送時,如果校驗方式設置為無校驗,則不發送校驗位(數據位發完之后直接是停止位);否則會發送一位校驗位。

      假設數據位位數為8,停止位位數位為1,。具體為:如果校驗方式設置為1校驗(Mark),校驗位固定為1;如果校驗方式設置為0校驗(Space),校驗位固定為0;如果校驗位為奇校驗(Odd),或者偶校驗(Even),那么校驗位可能為0也可能為1,依據所發送的數據計算得出。

計算方法:如果是奇校驗,那么8位數據和1位校驗位中的1的個數為奇數;對應的,如果是偶校驗,8位數據和1位校驗位中的1的個數為偶數。比如,數據37,其二進制編碼為00100101,編碼中含有5個0和3個1,如果采用奇校驗(1的位數為奇數),那么校驗位為0;如果使用偶校驗(1的位數為偶數),校驗位則為1。

      如果發送端可接受端的校驗方式不一致的話,很明顯會發生亂碼現象

6.停止位不一致會導致亂碼

       異步通信傳輸一個字節時,最后一位是1或1.5或2bit的停止位,停止位后面是不定長的空閑位。停止位和空閑位都規定為高電平(邏輯1),這樣就可以保證起始位開始處一定有一個下跳沿。   

      假設發送端發送完一字節數據后立即發下一字節數據,即沒有空閑位。 發送端的停止位為1,接收端的停止位為2。

      就會發生,當發送端已經發送完上一字節數據的停止位1,開始發送下一字節數據的起始位0時;接收端還是停止位,就錯過了發送端發送的起始位,就會導致亂碼。

7.停止位為什么有1.5位

       1.5停止位,是指停止位的“邏輯1”電平寬度保持為1.5個單位時間長。一個單位時間就是波特率的倒數,例如波特率為9600bps,則一個單位時間長為1/9600s,1.5個停止位,即停止位電平保持1.5/9600s。

       即:位數是信號出現的時間,所以可以有分數,eg:1.5,這樣剩下的半位的時間就不能傳輸數據,需等待下一個時間周期才能傳輸數據。

8.停止位和空閑位的不同

       停止位和空閑位雖然都是高電平,但停止位是字符格式中規定好的,是傳遞字符的一部分。發送端和接收端之間,在傳輸線上沒有字符傳送時是高電平,這個高電平稱為空閑。

9.幀計數大小

每幀字符的大小為=(起始位+數據位+校驗位+停止位)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM