串列埠通訊協議簡介
串列埠通訊(serial communication)是一種裝置間非常常用的序列通訊方式,因為它簡單便捷,因此大部分電子裝置都支援該通訊方式,電子工程師在除錯裝置時也經常使用該通訊方式輸出除錯資訊。
在電腦科學裡,大部分複雜的問題都可以通過分層來簡化。如晶元被分為核心層和片上外設;stm32 標準庫則是在暫存器與使用者**之間的軟體層。對於通訊協議,我們也以分層的方式來理解,最基本的是把它分為物理層和協議層。物理層規定通訊系統中具有機械、電子功能部分的特性,確保原始資料在物理**的傳輸。協議層主要規定通訊邏輯,統一收發雙方的資料打包、解包標準。簡單來說物理層規定我們用嘴巴還是用肢體來交流,協議層則規定我們用中文還是英文來交流。
下面我們分別對串列埠通訊協議的物理層及協議層進行講解。
物理層
串列埠通訊的物理層有很多標準及變種,我們主要講解rs-232 標準 ,rs-232 標準主要規定了訊號的用途、通訊介面以及訊號的電平標準。
使用rs-232 標準的串列埠裝置間常見的通訊結構見圖 21-1。
圖 21-1 串列埠通訊結構圖
在上面的通訊方式中,兩個通訊裝置的「db9 介面」之間通過串列埠訊號線建立起連線,串列埠訊號線中使用「rs-232 標準」傳輸資料訊號。由於rs-232 電平標準的訊號不能直接被控制器直接識別,所以這些訊號會經過乙個「電平轉換晶元」轉換成控制器能識別的「ttl 標準」的電平訊號,才能實現通訊。
電平標準
根據通訊使用的電平標準不同,串列埠通訊可分為ttl 標準及rs-232 標準,見表 21-1。
表 21-1 ttl 電平標準與rs232 電平標準
我們知道常見的電子電路中常使用ttl 的電平標準,理想狀態下,使用5v 表示二進位制邏輯1,使用0v 表示邏輯0;而為了增加串列埠通訊的遠距離傳輸及抗干擾能力,它使用-15v 表示邏輯1,+15v 表示邏輯0。使用rs232 與ttl 電平校準表示同乙個訊號時的對比見圖 21-2。
圖 21-2 rs-232 與ttl 電平標準下表示同乙個訊號
因為控制器一般使用ttl 電平標準,所以常常會使用ma3232 晶元對ttl 及rs-232電平的訊號進行互相轉換。
rs-232 訊號線
在最初的應用中,rs-232 串列埠標準常用於計算機、路由與調製調解器(moden,俗稱「貓」)之間的通訊 ,在這種通訊系統中,裝置被分為資料終端裝置dte(計算機、路由)和資料通訊裝置dce(調製調解器)。我們以這種通訊模型講解它們的訊號線連線方式及各個訊號線的作用。
在舊式的台式計算機中一般會有rs-232 標準的com口(也稱db9 介面),見圖 21-3。
圖 21-3 電腦主機板上的com 口及串列埠線
其中接線口以針式引出訊號線的稱為公頭,以孔式引出訊號線的稱為母頭。在計算機中一般引出公頭介面,而在調製調解器裝置中引出的一般為母頭,使用上圖中的串列埠線即可把它與計算機連線起來。通訊時,串列埠線中傳輸的訊號就是使用前面講解的rs-232 標準調製的。
在這種應用場合下,db9 介面中的公頭及母頭的各個引腳的標準訊號線接法見圖 21-4及表 21-2。
圖 21-4 db9 標準的公頭及母頭接法
表 21-2 db9 訊號線說明(公頭,為方便理解,可把dte 理解為計算機,dce 理解為調製調解器)
上表中的是計算機端的db9 公頭標準接法,由於兩個通訊裝置之間的收發訊號(rxd與txd)應交叉相連,所以調製調解器端的db9 母頭的收發訊號接法一般與公頭的相反,兩個裝置之間連線時,只要使用「直通型」的串列埠線連線起來即可,見圖 21-5。
圖 21-5 計算機與調製調解器的訊號線連線
串列埠線中的rts、cts、dsr、dtr 及dcd 訊號,使用邏輯 1 表示訊號有效,邏輯0表示訊號無效。例如,當計算機端控制dtr 訊號線表示為邏輯1 時,它是為了告知遠端的調製調解器,本機已準備好接收資料,0 則表示還沒準備就緒。
在目前的其它工業控制使用的串列埠通訊中,一般只使用rxd、txd 以及gnd 三條訊號線,直接傳輸資料訊號,而rts、cts、dsr、dtr 及dcd 訊號都被裁剪掉了。
協議層
串列埠通訊的資料報由傳送裝置通過自身的txd 介面傳輸到接收裝置的rxd 介面。在串列埠通訊的協議層中,規定了資料報的內容,它由啟始位、主體資料、校驗位以及停止位組成,通訊雙方的資料報格式要約定一致才能正常收發資料,其組成見圖 21-6。
圖 21-6 串列埠資料報的基本組成
波特率
本章中主要講解的是串列埠非同步通訊,非同步通訊中由於沒有時鐘訊號(如前面講解的db9介面中是沒有時鐘訊號的),所以兩個通訊裝置之間需要約定好波特率,即每個碼元的長度,以便對訊號進行解碼,圖 21-6 中用虛線分開的每一格就是代表乙個碼元。常見的波特率為4800、9600、115200 等。
通訊的起始和停止訊號
串列埠通訊的乙個資料報從起始訊號開始,直到停止訊號結束。資料報的起始訊號由乙個邏輯0 的資料位表示,而資料報的停止訊號可由0.5、1、1.5 或2 個邏輯1 的資料位表示,只要雙方約定一致即可。
有效資料
在資料報的起始位之後緊接著的就是要傳輸的主體資料內容,也稱為有效資料,有效資料的長度常被約定為5、6、7 或8 位長。
資料校驗
在有效資料之後,有乙個可選的資料校驗位。由於資料通訊相對更容易受到外部干擾導致傳輸資料出現偏差,可以在傳輸過程加上校驗位來解決這個問題。校驗方法有奇校驗(odd)、偶校驗(even)、0 校驗(space)、1 校驗(mark)以及無校驗(noparity)。
奇校驗要求有效資料和校驗位中「1」的個數為奇數,比如乙個8 位長的有效資料為:01101001,此時總共有4 個「1」,為達到奇校驗效果,校驗位為「1」,最後傳輸的資料將是8 位的有效資料加上1 位的校驗位總共9 位。
偶校驗與奇校驗要求剛好相反,要求幀資料和校驗位中「1」的個數為偶數,比如資料幀:11001010,此時資料幀「1」的個數為4 個,所以偶校驗位為「0」。0 校驗是不管有效資料中的內容是什麼,校驗位總為「0」,1 校驗是校驗位總為「1」。
電堂科技c.51diantang.com
串列埠通訊基本接線方法
目前較為常用的串列埠有9針串列埠 db9 和25針串列埠 db25 通訊距離較近時 12m 可以用電纜線直接連線標準rs232埠 rs422,rs485較遠 若距離較遠,需附加數據機 modem 最為簡單且常用的是三線制接法,即地 接收資料和傳送資料三腳相連,本文只涉及到最為基本的接法,且直接用rs...
串列埠通訊基本接線方法
串列埠通訊基本接線方法 龔建偉2001.6.20 目前較為常用的串列埠有9針串列埠 db9 和25針串列埠 db25 通訊距離較近時 12m 可以用電纜線直接連線標準rs232埠 rs422,rs485較遠 若距離較遠,需附加數據機 modem 最為簡單且常用的是三線制接法,即地 接收資料和傳送資料...
串列埠通訊基本接線方法
目次 1.db9 和db25 的常用訊號腳說明 2.rs232c 串列埠通訊接線方法 3.串列埠除錯中要注意的幾點 目前較為常用的串列埠有9針串列埠 db9 和25針串列埠 db25 通訊距離較近時 12m 可以用電纜線直接連線標準rs232埠 rs422,rs485較遠 若距離較遠,需附加數據機 ...