串口通信是異步的,port可以在一根線上發送數據同一時候在還有一根線上接收數據。其它線用于握手,但不是必須的。串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對于兩個進行通行的port,這些參數必須匹配:
波特率
這是一個衡量符號傳輸速率的參數。它表示每秒鐘傳送的符號的個數。比如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個邏輯高位。高位和低位不是真正的檢查數據,簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備可以知道一個位的狀態。有機會推斷是否有噪聲干擾了通信或者是否傳輸和接收數據是否不同步。