SPI 傳輸機(jī)制

從圖可以看出,主機(jī)和從機(jī)都有一個(gè)串行移位寄存器,主機(jī)通過(guò)向它的 SPI 串行寄存器寫(xiě)入一個(gè)字節(jié)來(lái)發(fā)起一次傳輸。寄存器通過(guò) MOSI
信號(hào)線將字節(jié)傳送給從機(jī),從機(jī)也將自己的移位寄存器中的內(nèi)容通過(guò) MISO 信號(hào)線返回給主機(jī)。這樣,兩個(gè)移位寄存器中的內(nèi)容就被交換。
外設(shè)的寫(xiě)操作和讀操作是同步完成的。如果只進(jìn)行寫(xiě)操作,主機(jī)只需忽略接收到的字節(jié);反之,若主機(jī)要讀取從機(jī)的一個(gè)字節(jié),就必須發(fā)送一個(gè)空字節(jié)來(lái)引發(fā)從機(jī)的傳輸。
雖然 SPI 四線制支持讀寫(xiě)同時(shí)進(jìn)行,但實(shí)際上我們很多時(shí)候并不需要又讀又寫(xiě),見(jiàn)以下兩種情況(參考 BMA223 數(shù)據(jù)手冊(cè)):
注意:如下三幅圖示均為 CPOL=1,CPHA=1
1、主機(jī)向從機(jī)寫(xiě)數(shù)據(jù)

主機(jī)發(fā)送先發(fā)送 8 bits,第一個(gè) bit 為 0 代表這次主機(jī)是想寫(xiě)數(shù)據(jù)到從機(jī),AD6~AD0
表示要寫(xiě)的寄存器地址。然后,主機(jī)就會(huì)一直寫(xiě)下去。在這期間 SDO 一直沒(méi)用,一直是高阻態(tài),算是一直讀到1。
2、主機(jī)從從機(jī)讀數(shù)據(jù)

這種情況下,主機(jī)先發(fā)送 8 bits,第一位為 1 代表這次是讀,然后 AD6 ~ AD0 是想要讀的寄存器地址,然后 SDO 開(kāi)始返回?cái)?shù)據(jù)。
-
主機(jī)
+關(guān)注
關(guān)注
0文章
1046瀏覽量
36380 -
傳輸
+關(guān)注
關(guān)注
0文章
156瀏覽量
28267 -
SPI
+關(guān)注
關(guān)注
17文章
1845瀏覽量
99243
發(fā)布評(píng)論請(qǐng)先 登錄
SPI總線電路圖設(shè)計(jì)及傳輸原理
Java的SPI機(jī)制詳解
SPI采用DMA傳輸問(wèn)題
藍(lán)牙的SPI傳輸的開(kāi)發(fā)版推薦
SPI的最大傳輸速率是多少 ?
連續(xù)SPI傳輸時(shí)發(fā)生傳輸超時(shí)的原因是什么?
SPI的特點(diǎn)及傳輸模式
SPI總線的傳輸速度
SPI總線數(shù)據(jù)遠(yuǎn)距離傳輸實(shí)現(xiàn)
基于SPI總線的無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)
SPI通信簡(jiǎn)介
SPI是什么 SPI數(shù)據(jù)傳輸
什么是SPI機(jī)制

SPI傳輸原理 SPI傳輸機(jī)制
評(píng)論