-
1 # 使用者8126877898800
-
2 # 使用者4243767351955
串列埠按位(bit)傳送和接收位元組。儘管比按位元組(byte)的並行通訊慢,但是串列埠可以在使用一根線傳送資料的同時用另一根線接收資料。
什麼是串列埠
串列埠是計算機上一種非常通用的裝置通訊協議(不要與通用序列匯流排Universal SerialBus或者USB混淆)。大多數計算機包含兩個基於RS232的串列埠。串列埠同時也是儀器儀表裝置通用的通訊介面;很多GPIB相容的裝置也帶有RS-232口。同時,串列埠通訊協議也可以用於獲取遠端採集裝置的資料。
串列埠通訊的概念非常簡單,串列埠按位(bit)傳送和接收位元組。儘管比按位元組(byte)的並行通訊慢,但是串列埠可以在使用一根線傳送資料的同時用另一根線接收資料。它很簡單並且能夠實現遠距離通訊。比如IEEE488定義並行通行狀態時,規定裝置線總長不得超過20米,並且任意兩個裝置間的長度不得超過2米;而對於串列埠而言,長度可達1200米。
典型地,串列埠用於ASCII碼字元的傳輸。
通訊使用3根線完成:
(1)地線,
(2)傳送,
(3)接收。由於串列埠通訊是非同步的,埠能夠在一根線上傳送資料同時在另一根線上接收資料。其他線用於握手,但是不是必須的。串列埠通訊最重要的引數是位元率、資料位、停止位和奇偶校驗。對於兩個進行通訊的埠,這些引數必須匹配:
a,位元率:這是一個衡量通訊速度的引數。它表示每秒鐘傳送的bit的個數。例如300波特表示每秒鐘傳送300個bit。當我們提到時鐘週期時,就是指位元率,例如如果協議需要4800波特率,那麼時鐘是4800Hz。這意味著串列埠通訊在資料線上的取樣率為4800Hz。通常電話線的位元率為14400,28800和36600。位元率可以遠遠大於這些值,但是波特率和距離成反比。高位元率常常用於放置的很近的儀器間的通訊,典型的例子就是GPIB裝置的通訊。
b,資料位:這是衡量通訊中實際資料位的引數。當計算機發送一個資訊包,實際的資料不會是8位的,標準的值是5、7和8位。如何設定取決於你想傳送的資訊。比如,標準的ASCII碼是0~127(7位)。擴充套件的ASCII碼是0~255(8位)。如果資料使用簡單的文字(標準ASCII碼),那麼每個資料包使用7位資料。每個包是指一個位元組,包括開始/停止位,資料位和奇偶校驗位。由於實際資料位取決於通訊協議的選取,術語“包”指任何通訊的情況。
c,停止位:用於表示單個包的最後一位。典型的值為1,1.5和2位。由於資料是在傳輸線上定時的,並且每一個裝置有其自己的時鐘,很可能在通訊中兩臺裝置間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,並且提供計算機校正時鐘同步的機會。適用於停止位的位數越多,不同時鐘同步的容忍程度越大,但是資料傳輸率同時也越慢。
d,奇偶校驗位:在串列埠通訊中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對於偶和奇校驗的情況,串列埠會設定校驗位(資料位後面的一位),用一個值確保傳輸的資料有偶個或者奇個邏輯高位。例如,如果資料是011,那麼對於偶校驗,校驗位為0,保證邏輯高的位數是偶數個。如果是奇校驗,校驗位為1,這樣就有3個邏輯高位。高位和低位不真正的檢查資料,簡單置位邏輯高或者邏輯低校驗。這樣使得接收裝置能夠知道一個位的狀態,有機會判斷是否有噪聲干擾了通訊或者是否傳輸和接收資料是否不同步。串列埠通訊協議是指通訊雙方的一種約定。約定包括對資料格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字元定義等問題做出統一規定,通訊雙方必須共同遵守。因此,也叫做通訊控制規程,或稱傳輸控制規程,它屬於ISO"S OSI七層參考模型中的資料鏈路層。
回覆列表
既然使用vs2005,何必再用mfc,mfc是上一代應用框架,寫介面很痛苦。用.net ,自帶的SerialPort很好用。可以使用現有的串列埠軟體,虛擬一對串列埠,輔助收發測試,類似的軟體有格西烽火、串列埠除錯助手等。