串列埠通訊引數

2021-07-09 07:58:21 字數 2277 閱讀 4985

串列埠是一種非常通用的裝置通訊的協議(不要與

通用序列匯流排universal serial bus(usb)混淆)。大多數計算機包含兩個基於rs232的串列埠。串列埠同時也是儀器儀表裝置通用的

通訊協議;很多gpib相容的裝置也帶有rs-232口。同時,

串列埠通訊協議也可以用於獲取遠端採集裝置的資料。

串列埠通訊的概念非常簡單,串列埠按位(bit)傳送和接收位元組。儘管比按

位元組(byte)的

並行通訊慢,但是串列埠可以在使用一根線傳送資料的同時用另一根線接收資料。它很簡單並且能夠實現遠距離通訊。比如ieee488定義並行通行狀態時,規定裝置線總長不得超過20公尺,並且任意兩個裝置間的長度不得超過2公尺;而對於串列埠而言,長度可達1200公尺。

典型地,串列埠用於ascii碼字元的傳輸。通訊使用3根線完成:(1)地線,(2)傳送,(3)接收。由於串列埠通訊是非同步的,埠能夠在一根線上傳送資料同時在另一根線上接收資料。其他線用於握手,但不是必須的。串列埠通訊最重要的引數是

波特率、

資料位、停止位和

奇偶校驗。對於兩個進行通行的埠,這些引數必須匹配:

這是乙個衡量符號傳輸速率的引數。它表示每秒鐘傳送的符號的個數。例如300波特表示每秒鐘傳送300個符號。當我們提到

時鐘週期時,我們就是指波特率,例如如果協議需要4800波特率,那麼時鐘是4800hz。這意味著

串列埠通訊在資料線上的取樣率為4800hz。通常**線的波特率為14400,28800和36600。波特率可以遠遠大於這些值,但是波特率和距離成反比。高波特率常常用於放置的很近的儀器間的通訊,典型的例子就是gpib裝置的通訊。

這是衡量通訊中實際資料位的引數。當計算機傳送乙個資訊包,實際的資料不會是8位的,標準的值是5、6、7和8位。如何設定取決於你想傳送的資訊。比如,標準的ascii碼是0~127(7位)。擴充套件的ascii碼是0~255(8位)。如果資料使用簡單的文字(標準 ascii碼),那麼每個

資料報使用7位資料。每個包是指乙個位元組,包括開始/停止位,資料位和

奇偶校驗位。由於實際資料位取決於

通訊協議的選取,術語「包」指任何通訊的情況。

用於表示單個包的最後一位。典型的值為1,1.5和2位。由於資料是在傳輸線上定時的,並且每乙個裝置有其自己的時鐘,很可能在通訊中兩台

裝置間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,並且提供計算機校正

時鐘同步的機會。適用於停止位的位數越多,不同時鐘同步的容忍程度越大,但是資料傳輸率同時也越慢。

在串列埠通訊中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對於偶和奇校驗的情況,串列埠會設定校驗位(資料位後面的一位),用乙個值確保傳輸的資料有偶個或者奇個邏輯高位。例如,如果資料是011,那麼對於偶校驗,校驗位為0,保證邏輯高的位數是偶數個。如果是奇校驗,校驗位為1,這樣就有3個邏輯高位。高位和低位不是真正的檢查資料,簡單置位邏輯高或者邏輯低校驗。這樣使得接收裝置能夠知道乙個位的狀態,有機會判斷是否有雜訊干擾了通訊或者是否傳輸和接收資料是否不同步。

位元率

在數字通道中,位元率是數碼訊號的傳輸速率,它用單位時間內傳輸的

二進位制**的有效位(bit)數來表示,其單位為

每秒位元數bit/s(bps)、每秒千位元數(kbps)或每秒

兆位元數(mbps)來表示(此處k和m分別為1000和1000000,而不是涉及計算機

儲存器容量時的1024和1048576)。

波特率

波特率指資料訊號對載波的調製速率,它用單位時間內載波調製狀態改變次數來表示,其單位為波特(baud)。 波特率與位元率的關係為:位元率=波特率x單個調製狀態對應的二進位制位數。

顯然,兩相調製(單個調製狀態對應1個二進位制位)的

位元率等於波特率;四相調製(單個調製狀態對應2個二進位制位)的位元率為波特率的兩倍;八相調製(單個調製狀態對應3個二進位制位)的位元率為波特率的三倍;依次類推。

rs232是要用在近距離傳輸上最大距離為30m

rs485用在長距離傳輸最大距離1200m

com口的資料流控制

1.流控制在序列通訊中的作用

這裡講到的「流」,當然指的是資料流。資料在兩個串列埠之間傳輸時,常常會出現丟失資料的現象,或者兩台計算機的處理速度不同,如台式電腦與微控制器之間的通訊,接收端資料緩衝區已滿,則此時繼續傳送來的資料就會丟失。現在我們在網路上通過modem進行資料傳輸,這個問題就尤為突出。流控制能解決這個問題,當接收端資料處理不過來時,就發出「不再接收」的訊號,傳送端就停止傳送,直到收到「可以繼續傳送」的訊號再傳送資料。因此流控制可以控制資料傳輸的程序,防止資料的丟失。pc機中常用的兩種流控制是硬體流控制(包括rts/cts、dtr/cts等)和軟體流控制xon/xoff(繼續/停止),下面分別說明。

串列埠通訊 串列埠通訊原理

1 rs232介面 rs232 c介面聯結器一般使用型號為db 9的9芯插頭座,只需3條介面線,即 傳送資料 接收資料 和 訊號地 即可傳輸資料,其9個引腳的定義如圖11 3所示。圖11 3 rs232 c介面聯結器定義 在rs232的規範中,電壓值在 3v 15v 一般使用 6v 稱為 0 或 o...

串列埠通訊的基本引數

6.6.2 串列埠通訊的基本引數 串列埠一般用於ascii碼字元的傳輸。最基本的串列埠通訊只需3個引腳即可實現,分別是地線 接收和傳送。其他引腳用於握手協議。由於串列埠通訊屬於非同步通訊,可以在進行通訊時不使用握手協議。為了正確實現串列埠間的通訊,必須對串列埠的引數進行設定。圖6.13所示為使用wi...

linux下串列埠通訊引數設定

6.7.2 設定串列埠通訊引數 串列埠通訊引數指的是波特率 資料位 奇偶校驗位和停止位。對串列埠實現控制的時候同樣要用到termio結構體。下面將結合具體的 說明如何設定這些引數。1 波特率設定 獲得埠波特率資訊是通過cfgetispeed函式和cfgetospeed函式來實現的。cfgetispe...