續(xù)接上文串行外設(shè)接口SPI通信協(xié)議詳解,本文小編詳細(xì)的 介紹了SPI總線接口定義和數(shù)據(jù)傳輸、通信流程等等,詳細(xì)技術(shù)請(qǐng)看下文內(nèi)容:
SPI總線是一種高速的、全雙工的、同步的通信總線,并且至多僅需使用4根線,節(jié)約了芯片的管腳,SPI通信協(xié)議主要應(yīng)用于EEPROM、FLASH、ADC、DAC等射頻芯片,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。
SPI接口無(wú)線模塊設(shè)備之間采用全雙工模式通信,是一個(gè)主機(jī)和一個(gè)或者多個(gè)從機(jī)的主從模式。主機(jī)負(fù)責(zé)初始化幀,這個(gè)數(shù)據(jù)傳輸幀可以用于讀與寫(xiě)兩種操作,片選線可以從多個(gè)從機(jī)選擇一個(gè)來(lái)響應(yīng)主機(jī)的請(qǐng)求。
SPI接口定義如下表:
由上表也可以看出當(dāng)SPI設(shè)備間數(shù)據(jù)傳輸通信時(shí),數(shù)據(jù)線應(yīng)該是MOSI連接MOSI,MISO連接MISO,SCLK與SCLK相連,而不是像串口那樣TX、RX進(jìn)行反接。當(dāng)只有單一SPI無(wú)線模塊從機(jī)設(shè)備時(shí),如果從機(jī)設(shè)備允許的話,可直接將CS/SS線固定在低電平。然而類(lèi)似于MAX1242這款需要CS/SS線的下降沿來(lái)觸發(fā)的射頻芯片,則必須將CC/SS線與主機(jī)相連。如下圖,為一主一從連接方式。
對(duì)于多個(gè)從機(jī)設(shè)備時(shí),則每個(gè)從機(jī)都需要一根CS/SS線來(lái)于主機(jī)相連,從而達(dá)到主機(jī)能與任一從機(jī)通信的目的。如下圖,為一主多從的連接方式。
大多數(shù)從機(jī)設(shè)備都有著三態(tài)邏輯的特性,因此當(dāng)設(shè)備未被選中時(shí),它們的MISO信號(hào)線會(huì)變成高阻抗?fàn)顟B(tài)(電氣斷開(kāi))。沒(méi)有三態(tài)輸出的設(shè)備則需外接三態(tài)緩沖器才能與其他的從機(jī)設(shè)備共享SPI總線。
在SPI通信中,SPI主機(jī)設(shè)備以從機(jī)設(shè)備支持的頻率通過(guò)SCLK線給到SPI從機(jī)設(shè)備,這點(diǎn)也意味著從機(jī)是無(wú)法主動(dòng)向主機(jī)發(fā)送數(shù)據(jù)的,只能主機(jī)輪詢(xún)向從機(jī)發(fā)或者從機(jī)設(shè)備主動(dòng)通過(guò)一個(gè)IO口來(lái)告知主機(jī)數(shù)據(jù)到達(dá)。
在SPI每個(gè)時(shí)鐘周期內(nèi),都會(huì)進(jìn)行一次全雙工數(shù)據(jù)的傳輸。主機(jī)通過(guò)MOSI線上發(fā)送1bit時(shí),從機(jī)也會(huì)在讀取到之后通過(guò)MISO線發(fā)送1bit數(shù)據(jù)出去。這說(shuō)明,即使只進(jìn)行單工通信,也會(huì)保持此通信順序。
SPI傳輸通常涉及到兩個(gè)給定了字長(zhǎng)的移位寄存器。例如在主機(jī)、從機(jī)中的8bit的移位寄存器。它們以虛擬環(huán)形拓?fù)溥B接,數(shù)據(jù)通常先從最高有效位被移出。在時(shí)鐘沿,主機(jī)和從機(jī)都移出1bit數(shù)據(jù)從傳輸線上給到對(duì)方。在下一個(gè)時(shí)鐘邊沿來(lái)到時(shí),雙方的接收器再對(duì)傳輸線上的該bit進(jìn)行采樣,并將其設(shè)置為移位寄存器的新的最低有效位。在寄存器位被移出和移入后,主機(jī)和從機(jī)交換了寄存器值。如果需要交換更多數(shù)據(jù),則重新加載移位寄存器并重復(fù)該過(guò)程。傳輸可以持續(xù)任意數(shù)量的時(shí)鐘周期。完成后,主機(jī)停止切換時(shí)鐘信號(hào)。如下圖,為主從機(jī)之間的交互時(shí)的移位寄存器示意圖。
其中上圖的通信流程如下:
1.SPI主機(jī)首先先將SS或CS線拉低,以此來(lái)告知SPI從機(jī)通信開(kāi)始。
2.主機(jī)通過(guò)發(fā)送SCLK時(shí)鐘信號(hào),來(lái)告知從機(jī)即將進(jìn)行的讀寫(xiě)操作。這里的SCLK時(shí)鐘信號(hào)是由SPI的模式來(lái)決定是高電平還是低電平有效的,這點(diǎn)在稍后會(huì)進(jìn)行介紹。
3.主機(jī)(Master)將要發(fā)送的數(shù)據(jù)寫(xiě)到發(fā)送數(shù)據(jù)緩存區(qū)(Memory),緩存區(qū)經(jīng)過(guò)移位寄存器(0~7),串行移位寄存器通過(guò)MOSI信號(hào)線將字節(jié)一位一位地移出去傳送給從機(jī),同時(shí)MISO接口接收到的數(shù)據(jù)經(jīng)過(guò)移位寄存器一位一位地移到接收緩存區(qū)。
4.從機(jī)(Slave)也將自己的串行移位寄存器(0~7)中的內(nèi)容通過(guò)MISO信號(hào)線返回給主機(jī)。同時(shí)通過(guò)MOSI信號(hào)線接收主機(jī)發(fā)送的數(shù)據(jù),這樣,兩個(gè)移位寄存器中的內(nèi)容就被交換。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多串口服務(wù)器、數(shù)傳電臺(tái)、lora模塊等無(wú)線數(shù)傳模塊產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進(jìn)行了解,也可以直接撥打400電話咨詢(xún)技術(shù)專(zhuān)員!
相關(guān)閱讀:
7 X 24 銷(xiāo)售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 南京辦事處葛經(jīng)理:17626012283
無(wú)錫辦事處劉經(jīng)理:13558641933
成都總部銷(xiāo)售經(jīng)理:
秦 科(無(wú)線模塊):18884314654 馮子恒(無(wú)線模塊):18828049434
蔡友銀(無(wú)線模塊):13882211021 葛宇龍(通信設(shè)備):19138800613
胡兵(外貿(mào)銷(xiāo)售經(jīng)理):18584911141、 sales06@ebyte.com
業(yè)務(wù)郵箱:support@cdebyte.com 全國(guó)銷(xiāo)售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)