單片機是一個可編程的微控制器,和spi通信其實是兩個獨立的東西。只不過我們用單片機可以去實現(xiàn)spi通信而已,但是實現(xiàn)spi通信不一定非要單片機。
我們?nèi)撕腿酥g溝通,要靠說話,并且兩個人語言要一樣,比如說都用普通話。那芯片和芯片溝通,它們又不會說話,怎么傳遞信息呢?就是通過通信總線,通信總線有很多種,比如IIC、SPI、USART、CAN,它們的區(qū)別就像普通話、英語、韓語、俄語,都是用來傳遞信息用的,只是傳遞方式不同。但傳遞信息,有一個前提,就是語言要相同,也就是通信方式要相同。所以說,spi是一種通信方式,是用來傳遞信息的。不同的通信方式,傳遞信息的方式不同。
Spi是一種全雙工、高速的、同步的通信總線。簡單來說,就是你們兩個可以同時快速地說話,你能把你要說的告訴對方,同時也能聽到對方說什么,這就是全雙工。還有一種叫半雙工,就是你們同時只能有一個人說,另一個聽,說完了,另外一個才能說。很明顯,全雙工傳遞信息的效率更高吧。同步的意思我給你們兩個對話設(shè)定個條件,比如說我說開始你們才可以對話,我說停止就都不能說話。我們?nèi)撕腿藗鬟f信息一般是靠耳朵和嘴巴對吧?
Spi通信傳遞信息是通過接口,來看下圖:
SPI通信協(xié)議:單片機spi通信接口什么意思,spi接口干什么用的?spi接口有4根線,分別是CS、SCLK、MOSI、MISO。SCLK是同步信號,一般由主控來控制。既然是通信,自然是需要有個”對象”,如上圖A和B。A是SPI Master,也就是主控,比如說單片機,一般就是主控的角色,主控來負(fù)責(zé)發(fā)送SCLK同步信號通知SPI Slave是否需要進(jìn)行數(shù)據(jù)通信B是SPI Slave,也就是從機,比如說Flash芯片。CS代表片選信號,為什么要用片選呢?因為一個SPI Master可以跟不同的SPI Slave進(jìn)行通信。
SPI Master就是通過CS來控制,具體跟哪個SPI Slave通訊,控制CS為低電平就代表選中該SPI Slave。如果說只跟一個從設(shè)備通訊,也可以直接把CS串聯(lián)電阻接地,省的每次都去控制它。MOSI英文全稱是Master Output Slave Input,這個一般接主控器件數(shù)據(jù)輸出引腳,從機器件數(shù)據(jù)輸入引腳。MISO英文全稱是Slave Input Master Output,這個一般接主控器件數(shù)據(jù)輸入引腳,從機器件數(shù)據(jù)輸出引腳。
除此以外,還有一種特殊的用法,就是只用SCLK和MOSI這兩個引腳的SPI通信。比如說我們無際單片機編程實戰(zhàn)項目課程里有個OLED屏的應(yīng)用。
片選引腳CS我直接硬件接地了,因為只有一個從設(shè)備。我們主要是控制OLED屏去顯示內(nèi)容,并不需要從OLED讀取數(shù)據(jù),所以MISO也不需要,這種情況是可以只用2根線的。
來源:電工學(xué)習(xí)網(wǎng)
審核編輯:湯梓紅
-
微控制器
+關(guān)注
關(guān)注
48文章
7542瀏覽量
151316 -
單片機
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634652 -
通信
+關(guān)注
關(guān)注
18文章
6024瀏覽量
135950 -
SPI
+關(guān)注
關(guān)注
17文章
1706瀏覽量
91507
發(fā)布評論請先 登錄
相關(guān)推薦
評論