<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > SPI總線協(xié)議使用與原理

          SPI總線協(xié)議使用與原理

          作者: 時間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
          SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設(shè)備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時時鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議。

          本文引用地址:http://www.ex-cimer.com/article/201612/330374.htm

          SCSPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少4根線,事實(shí)上3根也可以(用于單向傳輸時,也就是半雙工方式)。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入MOSI)、SDO(數(shù)據(jù)輸出MISO)、SCLK(時鐘)、CS(片選)。

          (1)MOSI– SPI總線主機(jī)輸出/從機(jī)輸入(SPI Bus Master Output/Slave Input);

          (2)MISO– SPI總線主機(jī)輸入/從機(jī)輸出(SPI Bus Master Input/Slave Output);

          (3)SCLK –時鐘信號,由主設(shè)備產(chǎn)生;

          (4)CS –從設(shè)備使能信號,由主設(shè)備控制(Chip select),有的IC此pin腳叫SS。

          其中CS是控制芯片是否被選中的,也就是說只有片選信號為預(yù)先規(guī)定的使能信號時(高電位或低電位),對此芯片的操作才有效。這就允許在同一總線上連接多個SPI設(shè)備成為可能。

          接下來就負(fù)責(zé)通訊的3根線了。通訊是通過數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCLK時鐘線存在的原因,由SCK提供時鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過SDO線,數(shù)據(jù)在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。

          在點(diǎn)對點(diǎn)的通信中,SPI接口不需要進(jìn)行尋址操作,且為全雙工通信,顯得簡單高效。在多個從設(shè)備的系統(tǒng)中,每個從設(shè)備需要獨(dú)立的使能信號,硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。

          應(yīng)用舉例:設(shè)主機(jī)和從機(jī)初始化就緒,并且主機(jī)的sbuff=0xaa,從機(jī)的sbuff=0x55,下面將分步對spi的8個時鐘周期的數(shù)據(jù)情況演示一遍:假設(shè)上升沿發(fā)送數(shù)據(jù)

          脈沖主機(jī)sbuff從機(jī)sbuff sdi sdo

          0 10101010 01010101 0 0

          1上0101010x 1010101x 0 1

          1下01010100 10101011 0 1

          2上1010100x 0101011x 1 0

          2下10101001 01010110 1 0

          3上0101001x 1010110x 0 1

          3下01010010 10101101 0 1

          4上1010010x 0101101x 1 0

          4下10100101 01011010 1 0

          5上0100101x 1011010x 0 1

          5下01001010 10110101 0 1

          6上1001010x 0110101x 1 0

          6下10010101 01101010 1 0

          7上0010101x 1101010x 0 1

          7下00101010 11010101 0 1

          8上0101010x 1010101x 1 0

          8下01010101 10101010 1 0

          這樣就完成了兩個寄存器8位的交換,上面的上表示上升沿、下表示下降沿,sdi、sdo相對于主機(jī)而言的。其中ss引腳作為主機(jī)的時候,從機(jī)可以把它拉底被動選為從機(jī),作為從機(jī)的是時候,可以作為片選腳用。根據(jù)以上分析,一個完整的傳送周期是16位,即兩個字節(jié),因?yàn)?,首先主機(jī)要發(fā)送命令過去,然后從機(jī)根據(jù)主機(jī)的命令準(zhǔn)備數(shù)據(jù),主機(jī)在下一個8位時鐘周期才把數(shù)據(jù)讀回來。SPI總線是Motorola公司推出的三線同步接口,同步串行3線方式進(jìn)行通信:一條時鐘線SCK,一條數(shù)據(jù)輸入線MISO,一條數(shù)據(jù)輸出線MOSI;用于CPU與各種外圍器件進(jìn)行全雙工、同步串行通訊。SPI主要特點(diǎn)有:可以同時發(fā)出和接收串行數(shù)據(jù);可以當(dāng)作主機(jī)或從機(jī)工作;提供頻率可編程時鐘;發(fā)送結(jié)束中斷標(biāo)志;寫沖突保護(hù);總線競爭保護(hù)等。下圖示出SPI總線工作的四種方式,其中使用的最為廣泛的是SPI0和SPI3方式

          SPI總線四種工作方式SPI模塊為了和外設(shè)進(jìn)行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進(jìn)行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進(jìn)行數(shù)據(jù)傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();