前言
讓我們回顧一下,我們學習了串口通訊(優點是全雙工,缺點是只能點對點通訊)
另外還學習了IIC通訊(優點是一主多從通訊,缺點是半雙工)
技巧:看一個總線是半雙工還是全雙工就看有幾根數據線
那有沒有總線是以全雙工,并且還是一主多從的方式通訊呢?
答案是有的,那就是用SPI通訊
寫數據
先來看看設備之間如何使用SPI方式來通訊
可以看出設備之間有4根線連接(SCK、MOSI、MISO、SS),下面來細說每根線的作用
SS為片選信號線(用來選擇哪個設備)
MOSI (master output , slave input)主機輸出,從機輸入
MISO(master input , slave output )主機輸入,從機輸出
SCK為時鐘信號線(用來提供基準時鐘信號)
下面以控制EEPROM為例(圖中型號為93C46的是EEPROM)
假設EEPROM里面有128個內存地址(用一個字節就可以尋址完)
這SPI的數據格式
無論是寫操作還是讀操作,起始位都為1,但操作碼01是寫操作,操作碼10是讀操作
當地址碼寫入EEPROM中寄存器的地址,這時就選中了這個地址,相當于打通了直達該地址的通道
緊接著寫入數據,這樣數據被保存下來了
用電平表示是這樣的
那是不是直接發送給被控設備就行了?
當然是不行的
因為SPI是串行同步通訊的,所以需要數據線和時鐘線兩根線才能傳輸數據
而且SPI發送數據是當時鐘線處于跳變沿時才能被發送的(具體是處于什么跳變沿,取決于該設備)這里以上升沿為例
在SS(片選信號)被選中期間,當SCK(時鐘信號)發生上升沿,數據就被確定下來
以上面的數據為例
根據時鐘信號線空閑狀態是高電平還是低電平,又因為每種狀態可以分為上升沿和下降沿觸發
共計有4種狀態
讀數據
讀操作也是同樣的操作
現在要把EEPROM里的數據讀出來
根據SPI的數據格式
現在需要MOSI寫入1 10 0000001
MISO后半段就可以讀取數據了(上面EEPROM存儲的為0000 1111)
總結
SPI是全雙工,一主多從
SPI是當發生跳變沿時,傳輸數據
SPI本質是移位寄存器
-
SPI
+關注
關注
17文章
1706瀏覽量
91581 -
通訊
+關注
關注
9文章
903瀏覽量
34907
原文標題:秒懂SPI
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
一文詳解SPI串行外設接口
![<b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>SPI</b>串行外設接口](https://file1.elecfans.com/web2/M00/BD/FC/wKgaomWog5-AeaxIAAAE9-mJkb0770.png)
一文搞懂SPI通信協議
![<b class='flag-5'>一</b><b class='flag-5'>文</b>搞懂<b class='flag-5'>SPI</b>通信協議](https://file.elecfans.com/web2/M00/88/B9/pYYBAGOz9fmAMwviAAB5HlifjCk866.png)
一文詳解SPI總線協議
一文詳解SPI接口
STM芯片解讀
一文讀懂SPI串行外設接口
一文讀懂MSP430 SPI總線
![<b class='flag-5'>一</b><b class='flag-5'>文</b>讀懂MSP430 <b class='flag-5'>SPI</b>總線](https://file.elecfans.com/web1/M00/50/90/o4YBAFr3reaAQIM-AAImXM7ULXA369.png)
AN1245中文手冊之Microchip SPI串行SRAM器件的建議用法
![AN1245中<b class='flag-5'>文</b>手冊之Microchip <b class='flag-5'>SPI</b>串行SRAM器件的建議用法](https://file.elecfans.com/web1/M00/55/5E/o4YBAFsrWwuAX0sEAAAlenVcJQE280.jpg)
一文介紹SPI串行總線
![<b class='flag-5'>一</b><b class='flag-5'>文</b>介紹<b class='flag-5'>SPI</b>串行總線](https://file.elecfans.com/web1/M00/C1/5E/pIYBAF8QI4CASaMZAABFLSIKu7w280.jpg)
一文解讀FPGA設計者的5項基本功及設計流程資料下載
![<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>解讀</b>FPGA設計者的5項基本功及設計流程資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
一文講完SPI通訊,看后不懂來找我
![<b class='flag-5'>一</b><b class='flag-5'>文</b>講完<b class='flag-5'>SPI</b>通訊,看后不懂來找我](https://file.elecfans.com/web2/M00/1A/AF/poYBAGF_UDWARNogAAAkeFtTZl8071.png)
一文看懂SPI協議
![<b class='flag-5'>一</b><b class='flag-5'>文</b>看懂<b class='flag-5'>SPI</b>協議](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論