串列埠通訊協議簡介

2021-09-25 09:33:34 字數 2621 閱讀 2640

串列埠通訊(serial communication)是一種裝置間非常常用的序列通訊方式,因為它簡單便捷,大部分電子裝置都支援該通訊方式,電子工程師在除錯裝置時也經常使用該通訊方式輸出除錯資訊。

電平標準根據通訊使用的電平標準不同,串列埠通訊可分為ttl標準及rs-232標準,見如下**:

通訊標準

電平標準(傳送端)

5v ttl

邏輯1::2.4v ~ 5v —— 邏輯0: 0 ~ 0.5v

rs-232

邏輯1::-15v ~ -3v —— 邏輯0: +3v ~ +15v

我們常見的電子電路中常使用ttl的電平標準,如我們的計算機內部識別的就是ttl電平,理想狀態下,使用5v表示二進位制邏輯1,使用0v表示邏輯0,所以說計算機cpu也只能識別二進位制的0和1;但ttl電平有個缺點就是它不適合遠距離傳輸,所以為了增加串列埠通訊的遠距離傳輸及抗干擾能力,我們通常會使用rs-232電平,rs-232電平使用-15v表示邏輯1,+15v表示邏輯0。

rs-232訊號線

因為控制器一般使用ttl電平標準,所以在傳輸過程中就需要用到max3232晶元或者ch340晶元對ttl及rs-232電平的訊號進行相互轉換;可以這樣理解,假設有兩台計算機需要進行串列埠通訊,在傳送端,計算機內部的ttl電平需經過電平轉換晶元(max3232或ch340)將其轉換為rs-232電平後再進行傳輸,到了另一台計算機,則需要電平轉換晶元(max3232或ch340)將接收到的rs-232電平轉換為ttl電平,這樣計算機cpu才能識別到。

rs-485電平

rs485標準是為了彌補rs232通訊距離短、速率低等缺點而產生的而產生的,該介面標準只規定了電氣特性,並沒有規定接外掛程式,傳輸電纜和 應用層通訊協議。

rs485標準與rs232不一樣,資料訊號採用差分傳輸方式。
通常情況下,傳送傳送器a、b之間的徵地安排在+2+6v,是乙個邏輯狀態,負電平在-2-6v,是另乙個邏輯狀態。另外有乙個訊號地c,在rs485器件中,一般還有乙個「使能」控制訊號,「使能」訊號用於控制「傳送傳送器」與傳輸線的切斷和連線,當使能端起作用時,傳送傳送器處於高阻狀態,稱作「第三態」,它是有別於邏輯「1」和「0」的第三種狀態。

對於接收傳送器,也作出 與傳送傳送器相對的規定,收、發端通過平衡雙絞線,將a-a與b-b對應相連,當在接收端a-b之間有大於+200mv的電平時,輸出正邏輯電平,小魚-200mv時,輸出負邏輯電平,在接收傳送器的接收平衡線上,電平範圍通常在200mv至6v之間

協議層

串列埠通訊的資料報由傳送裝置通過自身的txd介面傳輸到接收裝置的rxd介面。在串列埠通訊的協議層中,規定了資料報的內容,它由起始位、主體資料、校驗位以及停止位組成,通訊雙方的資料報格式要約定一致才能正常收發資料。

通俗理解就是,你通過一根訊號線不斷的給我傳送高低電平,我這邊需要確定哪些是我要的資料;首先你得給我的起始訊號吧,告訴我你接下來要準備傳送資料了,資料傳送完了,檢驗一下傳送得對不對,檢驗ok了,給個停止訊號,告訴我你已經傳送完畢了,那麼這就是咱們雙方約定好的協議了……

資料訊號傳輸中的幾個概念:

具體可檢視《stm32f4xx中文參考手冊》第22章通用同步非同步收發器(usart)

1. 波特率

usart的全稱是通(u)用同步(s)異(a)步收®發(t)器,每個字母都有它對應的含義;不過本次學習的是串列埠非同步通訊,因為同步通訊是需要時鐘訊號來進行同步的,但我使用的串列埠線沒有時鐘訊號;因此兩個通訊裝置之間需要約定好波特率,即每個碼元的長度,以便對訊號進行解碼。常見的波特率為4800、9600、115200等。

2. 通訊的起始和停止訊號

串列埠通訊的乙個資料報從起始訊號開始,直到停止訊號結束,資料報的起始訊號有乙個邏輯0的資料位表示,而資料報的停止位可由0.5、1、1.5或2個邏輯1的資料位表示,只要雙方約定一致即可。

3. 有效資料

在資料報的起始位之後緊接著的就是要傳輸的主體資料內容,也稱為有效資料,有效資料的長度通常是8位。

4. 資料校驗

在有效資料之後,有乙個可選的資料校驗位;由於資料通訊相對更容易受到外部干擾導致傳輸資料出現偏差,可以在傳輸過程中加上校驗位來解決這個問題。校驗方法有奇校驗(odd)、偶校驗(even)、0校驗(space)、1校驗(mark)以及無校驗(noparity)。

奇校驗要求有效資料和校驗位中"1"的個數為奇數 ,比如乙個8位長的有效資料為:01101001,此時總共有4個"1",為達到奇校驗效果,校驗位為"1" ,最後傳輸的資料是將8位的有效資料加上1位的校驗位總共9位

偶校驗偶校驗與奇校驗要求剛好相反,要求幀資料和校驗位中「1」的個數為偶數

0校驗不管有效資料中的內容是什麼,校驗位總為「0」

1校驗校驗位總為「1」

無校驗在無校驗的情況下,資料報中不含校驗位

串列埠通訊協議

簡介 通訊協議分層理解 物理層和協議層 物理層規定通訊系統中具有機械 電子功能部分的特性,確保原始資料在物理 的傳輸。協議層規定通訊邏輯,統一收發雙方的資料打包 解包標準。物理層串列埠通訊結構圖 電平標準 ttl電平標準 理想狀態下使用5v表示二進位制邏輯1,使用0v表示二進位制邏輯0 rs232電...

串列埠通訊 通訊協議

我們的串列埠程式,除了通用的,進行串列埠監聽收發的簡單工具,大多都和下位機有關,這就需要關心我們的通訊協議如何快取,分析,以及通知介面。所謂通訊協議是指通訊雙方的一種約定。約定包括對資料格式 同步方式 傳送速度 傳送步驟 檢糾錯方式以及控制字元定義等問題做出統一規定,通訊雙方必須共同遵守。因此,也叫...

FPGA 串列埠通訊協議

fpga 串列埠通訊協議 波特率 波特率就是串列埠的通訊速率,常見的波特率有12000bps 4800bps 9600bps 115200bps 256000bps 500000bps,這裡波特率的意思是每秒可以傳輸bit的個數,這裡的5207 500000000 9600 傳遞乙個位元組需要的時間...