單片機與單片機或與其他計算機之間通常有兩種信息交換方式:并行通信和串行通信。
1.串行通信與并行通信的比較
在并行通信中,數(shù)據(jù)的所有二進制位在多條并行的傳輸線上同時傳送,如圖4-14a所示。在串行通信中,數(shù)據(jù)的所有二進制位在一條傳輸線上一位一位地按順序逐個傳送,如圖4-14b所示。
圖4-14兩種通信方式
a)并行通信b)串行通信
并行通信的優(yōu)點是速度快、效率高,缺點是傳輸線較多、長距離傳輸?shù)某杀据^高并且可靠性差,只適用于近距離傳輸。與并行通信相比,串行通信的缺點是速度慢、效率低,優(yōu)點是傳輸線較少、長距離傳輸?shù)某杀据^低,適用于遠距離傳輸。
2.串行通信的數(shù)據(jù)傳輸模式
根據(jù)數(shù)據(jù)流的方向,串行通信可分為單工、半雙工和全雙工三種傳輸模式,如圖4-15所示。
圖4-15串行通信的傳輸模式
a)單工b)半雙工c)全雙工
在單工模式下,數(shù)據(jù)僅能從發(fā)送器傳送至接收器,傳輸方向單一,不能反方向傳輸。在半雙工模式下,僅有一根數(shù)據(jù)傳輸線,數(shù)據(jù)可以沿兩個方向傳輸,但在任意時刻數(shù)據(jù)僅能沿一個方向傳輸。在全雙工模式下,通信設(shè)備之間有兩根傳輸線,可以同時完成兩個不同方向的數(shù)據(jù)傳輸。
3.串行通信的速度
串行通信的數(shù)據(jù)傳輸速度被稱為波特率(Baudrate),即每秒鐘傳送的二進制位的個數(shù),單位為位/秒(bit/s)。例如,若單片機每秒鐘傳送960個字符,而每個字符包含10位(bit),則傳輸波特率為960×10bit/s=9600bit/s=9600波特。常用波特率有2400波特、4800波特、9600波特、19200波特、38400波特和115200波特等。
串行通信的類型
串行通信又分為異步通信和同步通信兩種類型。
(1)異步串行通信
在異步通信中,數(shù)據(jù)以字符為單位在一根傳輸線上傳送。同一字符中各位之間的傳輸時間間隔是固定的。相鄰字符之間的傳輸時間間隔由發(fā)送方控制,是不固定的,既可以連續(xù)傳送,也可以間斷傳送。
由于字符之間的傳輸時間間隔不固定,所以必須在字符傳輸時附加必要的格式信息,以便接收方判斷字符傳輸?shù)拈_始和結(jié)束。附加了格式信息的字符數(shù)據(jù)被稱作字符幀。一個字符幀通常包含起始位、數(shù)據(jù)位、奇偶校驗位和停止位,相鄰字符幀之間的是空閑位,如圖4-16所示。字符幀中各位的作用如下:
圖4-16異步串行通信的字符幀格式
1)起始位:字符幀的起始位,為低電平“0”,代表一個完整字符幀的開始。
2)數(shù)據(jù)位:包含5~8位,在起始位之后,按低位在前、高位在后的順序傳輸。
3)奇偶校驗位:只占用一位,在數(shù)據(jù)位之后,可以沒有該位。奇偶校驗的功能也可以被其他功能取代,例如,在串口的多機通信中,可以用該位指示字符幀傳送的是從機地址(即從機編號)還是實際數(shù)據(jù)。
4)停止位:以高電平“1”表示一個字符幀的結(jié)束,停止位可以占1位或2位。
5)空閑位:不傳送數(shù)據(jù)時,傳輸線上傳送空閑位,為高電平“1”。傳輸線上由空閑位“1”變?yōu)槠鹗嘉弧?”時,開始傳送一個新的字符幀。
在異步通信中,為保證通信成功,數(shù)據(jù)的發(fā)送方和接收方必須采用的相同的波特率。
(2)同步串行通信
同步通信將若干個數(shù)據(jù)字符連接成數(shù)據(jù)塊,以數(shù)據(jù)塊為單位傳送信息。如圖4-17所示,同步通信的字符幀由同步字符、數(shù)據(jù)塊和校驗字符三部分構(gòu)成。其中,數(shù)據(jù)塊中的數(shù)據(jù)字符個數(shù)由傳輸任務(wù)決定,不受限制;同步字符的個數(shù)為1個(單同步字符)或2個(雙同步字符);校驗字符有1或2個,用于接收端驗證接收數(shù)據(jù)的正確性。在同步通信中,接收方和發(fā)送方必須采用精確、同步的時鐘和相同的波特率。同步通信速度遠高于異步通信。
圖4-17同步串行通信格式