SPI、I2C和UART

1、SPI
SPI(Serial Peripheral Interface,串行外設接口)是Motorola公司提出的一種同步串行數據傳輸標準,在不少器件中被普遍應用。異步

  1. 接口
    SPI接口常常被稱爲4線串行總線,以主/從方式工做,數據傳輸過程由主機初始化。如圖1所示,其使用的4條信號線分別爲:
    1) SCLK:串行時鐘,用來同步數據傳輸,由主機輸出;
    2) MOSI:主機輸出從機輸入數據線,一般先傳輸MSB;
    3) MISO:主機輸入從機輸出數據線,一般先傳輸LSB;
    4) SS:片選線,低電平有效,由主機輸出。
    在SPI總線上,某一時刻能夠出現多個從機,但只能存在一個主機,主機經過片選線來肯定要通訊的從機。這就要求從機的MISO口具備三態特性,使得該口線在器件未被選通時表現爲高阻抗。
    SPI、I2C和UART
  2. 數據傳輸
    在一個SPI時鐘週期內,會完成以下操做:
    1) 主機經過MOSI線發送1位數據,從機經過該線讀取這1位數據;
    2) 從機經過MISO線發送1位數據,主機經過該線讀取這1位數據。
    這是經過移位寄存器來實現的。如圖2所示,主機和從機各有一個移位寄存器,且兩者鏈接成環。隨着時鐘脈衝,數據按照從高位到低位的方式依次移出主機寄存器和從機寄存器,而且依次移入從機寄存器和主機寄存器。當寄存器中的內容所有移出時,至關於完成了兩個寄存器內容的交換。
    SPI、I2C和UART
  3. 時鐘極性和時鐘相位
    在SPI操做中,最重要的兩項設置就是時鐘極性(CPOL或UCCKPL)和時鐘相位(CPHA或UCCKPH)。時鐘極性設置時鐘空閒時的電平,時鐘相位設置讀取數據和發送數據的時鐘沿。
    主機和從機的發送數據是同時完成的,二者的接收數據也是同時完成的。因此爲了保證主從機正確通訊,應使得它們的SPI具備相同的時鐘極性和時鐘相位。
    舉例來講,分別選取MSP430控制器和OLED驅動SH1101A爲主從機,圖3和圖4爲它們的SPI時序。由圖4可知,SH1101A的SPI時鐘空閒時爲高電平,而且在後時鐘沿接收數據,則MSP430控制器SPI的設置應與此保持一致。從圖3中能夠看出,要使得時鐘在空閒時爲高電平,應將UCCKPL置1;要使得在後時鐘沿接收數據,應將UCCKPH清零。
    SPI、I2C和UART
    SPI、I2C和UART
  4. 優缺點
    SPI接口具備以下優勢:
    1) 支持全雙工操做;
    2) 操做簡單;
    3) 數據傳輸速率較高。
    同時,它也具備以下缺點:
    1) 須要佔用主機較多的口線(每一個從機都須要一根片選線);
    2) 只支持單個主機。

2、I2Cide

  1. 接口
    SPI、I2C和UART
    I2C接口包括時鐘線(SCL)和數據線(SDA)。這兩條線都是漏極開路或者集電極開路結構,使用時須要外加上拉電阻,能夠掛載多個設備。每一個設備都有本身的地址,主機經過不一樣地址來選中不一樣的設備。
  2. 通常操做
    1)主機給從機發數據
    • 發送開始條件START和從機地址;
    • 發送數據;
    • 發送中止條件STOP結束。
      2)主機從從機讀取數據
    • 發送開始條件START和從機地址;
    • 發送要讀取的地址;
    • 讀取數據;
    • 發送中止條件STOP結束。
      2.1開始和結束條件
      當SCL保持高電平期間,SDA從高電平跳變到低電平,即爲開始條件START。當SCL保持高電平期間,SDA從低電平跳變到高電平,即爲結束條件STOP。
      SPI、I2C和UART
      2.2 重複的起始條件
      與起始條件的區別是,它出如今結束條件STOP以前。例如讀取數據時,發送START、從機地址、要讀取的地址後,不須要發送STOP,而能夠發送重複起始條件和從機地址,開始數據讀取。
      2.3 ACK和NACK
      數據傳輸時先傳MSB。接收者在每一個字節後的第9個時鐘週期將SDA保持低電平進行確認數據接收成功;而在第9個時鐘週期將SDA保持高電平表示數據傳輸出錯,或者主機再也不想接收數據。
      SPI、I2C和UART
      SPI、I2C和UART
      1. 數據讀寫
        1)寫數據
        SPI、I2C和UART
        2)讀數據
        SPI、I2C和UART
      2. 優缺點
        1)優勢
        只使用兩條信號線;
        支持多主機多從機;
        有應答機制。
        2)缺點
        速率比SPI慢。

3、UART
UART是一種異步傳輸接口,不須要時鐘線,經過起始位和中止位及波特率進行數據識別。blog

  1. 接口
    UART僅使用兩條線TXD和RXD用於數據的發和收。
    SPI、I2C和UART
  2. 數據格式
    1)起始位
    數據線空閒狀態爲高電平,要發送數據時將其拉低一個時鐘週期表示起始位。
    2)數據位
    使用校驗位時,數據位能夠有5~8位;若是不使用校驗位,數據位能夠達9位。
    3)校驗位
    奇偶校驗,保證包括校驗位和數據位在內的全部位中1的個數爲偶數。
    4)中止位
    爲了表示數據包的結束,發送端須要將信號線從低電平變爲高電平,並至少保持2個時鐘週期。
  3. 優缺點1)優勢只使用兩條信號線;不須要時鐘信號;有校驗位進行錯誤檢測;2)缺點傳輸速率比較低。
相關文章
相關標籤/搜索