(海思生產部提供)
在計算機網絡系統建設中需要配備大量可以遠程通信的智能設備,其中部分智能設備的遠程通信是通過串口通信方式實現的。對于系統集成新手來說,了解什么是串口通信以及它是通過什么通信方式實現遠程相互連接、數據傳輸的十分必要。
串行通信(Serial Communications)是一種可以將接受來自中央處理器(CPU)的并行數據字符轉換為連續的串行數據流并發送出去,同時可將接受的串行數據流轉換為并行的數據字符供給中央處理器的硬件電路。通常我們稱完成這種功能的電路為串行接口電路。
串行通信是按如下方式工作的:串口按位(bit)發送和接收字節。雖然這種工作方式比按字節(byte)的并行通信慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據,且能夠實現遠距離通信。典型地,串口用于ASCII字符的傳輸。通信使用3根線完成,分別是地線、發送、接收。由于串口通信是異步的,端口能夠在一根線上發送數據同時在另一根線上接收數據。其他線用于握手,但不是必須的。串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對于兩個進行通信的端口,這些參數必須匹配才能實現相互通信。
a,通信波特率。波特率是一個衡量符號傳輸速率的參數。指的是信號被調制以后在單位時間內的變化情況,即單位時間內載波參數變化的次數,如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位,1個停止位,8個數據位),這時的波特率為240Bd,比特率為10位*240個/秒=2400bps。一般調制速率大于波特率,比如曼徹斯特編碼。通常電話線的波特率為14400,28800和36600。波特率可以遠遠大于這些值,由于傳輸線纜有電阻及分布電容特性造成的信號衰減作用,波特率和傳輸距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設備的通信。
b,數據位。數據位是衡量通信中實際數據位的參數。當計算機發送一個信息包,實際的數據不會是8位的,標準的值是6、7和8位。如何設置取決于你想傳送的信息。比如,標準的ASCII碼是0~127(7位)。擴展的ASCII碼是0~255(8位)。如果數據使用簡單的文本(標準 ASCII碼),那么每個數據包使用7位數據。每個包是指一個字節,包括開始/停止位,數據位和奇偶校驗位。由于實際數據位取決于通信協議的選取,術語“包”指任何通信的情況。
c,停止位。停止位用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數據是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數越多,不同時鐘同步的容忍程度越大,但是數據傳輸率同時也越慢。
d,奇偶校驗位。奇偶校驗位在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設置校驗位(數據位后面的一位),用一個值確保傳輸的數據有偶個或者奇個邏輯高位。例如,如果數據是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數是偶數個。如果是奇校驗,校驗位為1,這樣就有3個邏輯高位。高位和低位不真正的檢查數據,簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個位的狀態,有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數據是否不同步。