天天看點

序列槽通信的基本原理

一、前言

串行接口,簡稱序列槽,也稱串行通信接口(采用串行通信方式的擴充接口),通常指COM接口;

二、序列槽通信的兩種基本方式

1、同步通信(SYNC-synchronous data communication)

同步通信有時鐘信号來做同步,在約定的通信速率下,發送端和接收端的時鐘信号頻率和相位始終保持一緻(同步),這樣就保證了通信雙方在發送和接收時具有完全一緻的定時關系;

同步串行通信SPI(Serial Peripheral Interface串行外圍裝置接口簡稱),SPI總線系統是一種同步串行的外設接口,它可以是MCU與各種外圍裝置以串行方式進行通信以交換資訊;

2、異步通信(ASYNC-asynchronous data communication)

以字元為機關進行傳輸,字元之間沒有固定的時間間隔要求,而每個字元中的各位則固定的時間傳送。異步通信中,收發雙方去的同步是通過在字元格式中設定起始位和停止位的方式來實作的。具體來說就是,在一個有效字元正式發送之前,發送器先發送一個起始位,然後發送有效字元位,在字元結束時再發送一個停止位,起始位和停止位構成一幀。停止位和下一個起始位之間是不定長的空閑位,并且規定起始位為低電平(邏輯值為0),停止位和空閑位都是高電平(邏輯值為1),這樣就保證了起始位開始處一定會有一個下跳沿,由此就可以标志一個字元傳輸的起始;根據起始位和停止位就很容易的實作了字元的界定和同步。

異步串行通信UART(無時鐘信号)(UniverSal Asynchronous Receiver/Transmitter),即通用異步接收/發送;

UART包含TTL電平和RS232電平,TTL電平是3.3V的,RS232是負邏輯電平,它定義+3 ~ +15為低電平,而-15 ~ -3為高電平,通常PC機序列槽與單片機序列槽通信需要電平轉換晶片,例如:MAX232;

顯然,采用異步通信時,發送端和接收端可以由各自的時鐘來控制資料的發送和接收,這兩個時鐘源彼此獨立,可以互不同步。

異步通信的資料發送過程

  • 初始化後或者沒有資料需要發送時,發送端輸出邏輯1,可以有任意數量的空閑位;
  • 當需要發送資料時,發送端首先輸出邏輯0,作為起始位;
  • 接着開始輸出資料位,發送端首先輸出資料的最低位D0,然後是D1,最後是資料的最高位;
  • 如果設有奇偶校驗位,發送端輸出校驗位;
  • 最後,發送端輸出邏輯1,作為停止位;
  • 如果沒有資訊需要發送,發送端輸出邏輯1,作為空閑位,如果有資訊需要發送,則轉入步驟2;

異步通信的資料接收過程

在異步通信中,接收端一接收時鐘和波特率因子決定每一位的時間長度;

下面一波特率因子16(接收時鐘每16個時鐘周期使接收移位寄存器移位一次)為例來說明:

  • 開始通信,信号線為空閑(邏輯1),當檢測到由1到0的跳變時,開始對接收時鐘計數;
  • 接收端檢測到起始位後,隔16個接收時鐘對輸入信号檢測一次,把對應的值作為D0位資料;
  • 再隔16個接收時鐘,對輸入信号檢測一次,把對應的值作為D1位資料;
  • 依此類推,直到接收到D7位資料;
  • 檢驗奇偶校驗位;
  • 接收到規定的資料位個數個校驗位後,通信接口電路希望收到停止位(邏輯1);
  • 若此時未收到邏輯1,說明出現了錯誤,在狀态寄存器中置“幀錯誤”标志;
  • 若沒有錯誤,對全部資料位進行奇偶校驗,無校驗錯誤時,把資料位從移位寄存器中取出送至資料輸入寄存器;
  • 若校驗錯誤,在狀态寄存器中置“奇偶錯”标志;
  • 本幀資訊全部接收完,把線路上出現的高電平作為空閑位;
  • 當信号再次變為低電平(起始位)時,開始進入下一幀的檢測;

接收時鐘和發送時鐘與波特率的關系:

f = n x B(f:發送時鐘或接收時鐘的頻率;B:資料傳輸的波特率;n:波特率因子);

設發送或接收時鐘的周期為Tc,發送一個波形所需要的傳輸時間為Td,則:Tc = 1 / f,Td = 1 / B,得到Tc = Td / n,進而n代表發送一個波形需要幾個時鐘周期;

在實際串行通信中,波特率因子可以設定;

在異步傳送時,n = 1, 16, 64,常采用n = 16,即發送或接收時鐘的頻率要比資料傳送的波特率高n倍;

在同步通信時,波特率因子n必須等于1;

波特率與比特率的關系:

波特率代表1秒鐘發送波形的個數,而比特率代表1秒鐘發送比特的個數;

在采用二進制傳輸的情況下,發送的波形一共有2種波形,即高電平和低電平。那麼一個波形代表一個比特,是以波特率和比特率相等;

在采用四進制傳輸的情況下,發送的波形一共有4種波形,此處假設發送的最高電平為3C,發送00的波形為0V,發送01的波形為1V,發送10的波形為2V,發送11的波形為3V,那麼一個波形代表兩個比特,是以比特率是波特率的兩倍;同理,在采用8進制傳輸的情況下,比特率是波特率的三倍,以此類推;

三、通訊方式

1、單工模式(Simplex Comminication)

資料傳輸是單向的,通信雙方中,一方固定為發送端,一方固定為接收端,資訊隻能炎一個方向傳輸,使用一根傳輸線;

四、TTL、RS232、RS485

  • TTL電平:輸出低電平要小于0.8V,高電平要大于2.4V;輸入低于1.2V就認為是0,高于2.0就認為是1;
  • RS232電平:邏輯1的電平為-3 ~ -15,邏輯0的電平為+3 ~ +15,介意-3 ~ +3之間的電壓無意義;
  • RS485電平:差分信号 -2500mv ~ -200mv為邏輯0,差分信号 +2500mv ~ +200mv為邏輯1,-200mv ~ +200mv為高阻态;
  • MAX232晶片:是TTL電平和RS232電平的專用雙向轉換晶片,可以TTL轉RS232,也可以RS232轉TTL;
  • TTL電平一般用于晶片與晶片之間的通信;
  • RS232采用正負邏輯電平,提高線路的抗幹擾性,最遠可以達到15米左右;RS232全雙工隻支援點對點通訊(1 : 1);
  • RS485使用兩線制的差分信号傳輸,最遠可至1200米;RS484半雙工或單雙工支援從小形式通訊(1 :N);