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

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > SPI總線協(xié)議的通信原理及應(yīng)用舉例

          SPI總線協(xié)議的通信原理及應(yīng)用舉例

          作者: 時(shí)間:2012-08-28 來源:網(wǎng)絡(luò) 收藏

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

            (1)SDO – 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入

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

            (2)SDI – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出

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

           ?。?)CS – 從設(shè)備使能信號(hào),由主設(shè)備控制

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

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

            要注意的是,SCK信號(hào)線只由主設(shè)備控制,從設(shè)備不能控制信號(hào)線。同樣,在一個(gè)基于SPI的設(shè)備中,至少有一個(gè)主控設(shè)備。這樣傳輸?shù)奶攸c(diǎn):這樣的傳輸 方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)镾CK時(shí)鐘線由主 控設(shè)備控制,當(dāng)沒有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說,主設(shè)備通過對SCK時(shí)鐘線的控制可以完成對通訊的控制。SPI還是一個(gè)數(shù)據(jù)交換: 因?yàn)镾PI的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。不同的SPI設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信 號(hào)上沿或下沿采集有不同定義,具體請參考相關(guān)器件的文檔。

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

            最后,SPI接口的一個(gè)缺點(diǎn):沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。

            AT91RM9200的SPI接口主要由4個(gè)引腳構(gòu)成:SPICLK、MOSI、MISO及 /SS,其中SPICLK是整個(gè)SPI的公用時(shí)鐘,MOSI、MISO作為主機(jī),從機(jī)的輸入輸出的標(biāo)志,MOSI是主機(jī)的輸出,從機(jī)的輸入,MISO 是主機(jī)的輸入,從機(jī)的輸出。/SS是從機(jī)的標(biāo)志管腳,在互相通信的兩個(gè)SPI的器件,/SS管腳的電平低的是從機(jī),相反/SS管腳的電平高的是主機(jī)。 在一個(gè)SPI通信系統(tǒng)中,必須有主機(jī)。SPI總線可以配置成單主單從,單主多從,互為主從。

            SPI的片選可以擴(kuò)充選擇16個(gè)外設(shè),這時(shí)PCS輸出=NPCS,說NPCS0~3接4-16譯碼器,這個(gè)譯碼器是需要外接4-16譯碼器,譯碼器的輸入為NPCS0~3,輸出用于16個(gè)外設(shè)的選擇。

            SPI

            SPI是一個(gè)環(huán)形總線結(jié)構(gòu),由ss(cs)、sck、sdi、sdo構(gòu)成,其時(shí)序其實(shí)很簡單,主要是在sck的控制下,兩個(gè)雙向移位寄存器進(jìn)行數(shù)據(jù)交換。

            假設(shè)下面的8位寄存器裝的是待發(fā)送的數(shù)據(jù)10101010,上升沿發(fā)送、下降沿接收、高位先發(fā)送。

            那么第一個(gè)上升沿來的時(shí)候 數(shù)據(jù)將會(huì)是sdo=1;寄存器=0101010x。下降沿到來的時(shí)候,sdi上的電平將所存到寄存器中去,那么這時(shí)寄存器=0101010sdi,這樣在 8個(gè)時(shí)鐘脈沖以后,兩個(gè)寄存器的內(nèi)容互相交換一次。這樣就完成里一個(gè)spi時(shí)序。



          評論


          相關(guān)推薦

          技術(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); })();