歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> SPI基礎知識

SPI基礎知識

日期:2017/3/1 9:09:00   编辑:Linux編程
  • Serial Peripheral Interface 是摩托羅拉公司提出的一種總線協議,主要應用在EEPROM,FLASH,實時時鐘,A/D轉換,以及數字信號處理和數字信號解碼器中
  • 是一種高速,全雙工,同步總線(UART是全雙工異步,I2C是半雙工同步)

  • 占4個引腳:
    • CS(片選),如果有多個從機,SPI需要專門的片選線,這點和I2C通過SDA和SCL配合來片選的情況不同,當設備很多的時候,SPI可以通過譯碼器來節約管腳,如此可以通過輪詢或中斷的方式獲得設備的狀態
    • SDO(串行數據輸出線),主機數據的輸出線,從機有數據輸入
    • SDI(串行數據輸入線), 主機數據的輸入線,從機有數據輸出
    • SPICLK(同步串行時鐘線),用於同步主機和從機的時鐘線,是同步通訊的基礎
  • SPI通常有一個主設備和一個或多個從設備(VS I2C可以有多個主設備)
  • SPI的時鐘線只能由主機控制,從機不能控制時鐘線(VS I2C的從機也可以控制時鐘線)
  • 數據通過SDO輸出,在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取,完成一位數據的傳輸,由於SPI的時鐘線只由主機控制,所以SPI可以一位一位的傳輸數據(VS I2C一次必須傳輸8bit數據)甚至終止傳輸。
  • SPI沒有應答機制(VS I2C每8bit就需要一個ACK),這是SPI的一個缺點

Copyright © Linux教程網 All Rights Reserved