概況:
SPI, 串行外圍設備接口。高速的,全雙工的,同步通信總線。有四個引腳:SDI(數據輸入),SDO(數據輸出),SCLK(時鐘),CS(片選)。
應用:
常作為單片機外設芯片串行擴展接口,主要應用于EEPROM,FLASH,實時時鐘,AD轉換器,數字信號處理器和數字信號解碼器之間。
通信原理:
以主從方式工作
MOSI(SDO):主器件數據輸出,從器件數據輸入。
MISO(SDI):主器件數據輸入,從器件數據輸出。
SCLK :時鐘信號,由主器件產生。
SPI串行傳輸,數據一位一位從MSB或LSB開始傳輸,產生相應的脈沖沿時,MOSI,MISO才進行數據傳輸。
CS:從器件使能信號,由主器件控制。
CS控制芯片是否被選中,只有片選信號為實現約定的使能信號時(高電位或地電位),對此芯片的操作才有效,這也就允許同一總線上連接多個SPI設備。
工作過程:
SPI可以用全雙工通信方式同時發送和接收8(16)位數據,過程如下:
主機啟動發送過程,送出時鐘脈沖信號——>主移位寄存器的數據通過SDO移入到從移位寄存器,同時從移位寄存器中的數據通過SDI移人到主移位寄存器中——>8(16)個時鐘脈沖過后,時鐘停頓,主移位寄存器中的8(16)位數據全部移人到從移位寄存器中,隨即又被自動裝入從接收緩沖器中,從機接收緩沖器滿標志位(BF)和中斷標志位(SSPIF)置“1”。同理,從移位寄存器中的8位數據全部移入到主寄存器中,隨即又被自動裝入到主接收緩沖器中.主接收緩沖器滿標志位(BF)和中斷標志位(SSPIF)置“1”——>主CPU檢測到主接收緩沖器的滿標志位或者中斷標志位置1后,就可以讀取接收緩沖器中的數據。同樣,從CPU檢測到從接收緩沖器滿標志位或中斷標志位置1后,就可以讀取接收緩沖器中的數據,這樣就完成了一次相互通信過程。
SPI總線接口及時序
SPI輸出串行同步時鐘極性和相位可以根據外設工作要求進行配置。
若CPOL = 0,串行同步時鐘的空閑狀態為低電平;
若CPOL = 1,串行同步時鐘的空閑狀態為高電平;
時序如下
若CPHA = 0,在串行同步時鐘的第一個跳變沿(上升或下降)數據將被采樣;
若CPHA = 1,在串行同步時鐘的第二個跳變沿(上升或下降)數據將被采樣;
時序如下:
SPI主模塊與與之通信的外設空閑狀態的極性和時鐘相位應該一致。
-
SPI
+關注
關注
17文章
1701瀏覽量
91345
原文標題:SPI通信總線的原理及工作過程簡單分析
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論