SPI通常有SCK時鐘,STB片選,DATA數據信號三個信號。SPI總線真正實現了全雙工數據傳輸,SPI 有3線跟4線兩種,4線的話,就是多了一條叫SDC的線,用來告知從設備現在傳輸的是數據還是指令。這個接口較快,可以傳輸較連續的數據。SPI要想連接多個從設備,就需要給每個從設備配備一根片選信號。如果要可以實現全雙工,也是需要多加一根數據線(MOSI MISO)。SPI通信芯片的引腳名稱不一定都是這幾個名稱,可能還有會別的名稱,但是意思是一樣的,例如MOSI引腳的意思是“主機輸出從機輸入”,某個SPI接口的芯片就有可能會寫成SDI,因為這個SPI器件是作為從機的,所以它的SDI的意思就是“從機數據輸入引腳”。
SPI通信過程為:把CS引腳拉低,然后SCK輸出時鐘,然后就可以在MOSI引腳上輸出數據,同時可以在MISO上獲得數據了。
(這是一個SPI FLASH芯片,DO是MISO,DI是MOSI,CLK是SCK,功能一樣,叫法不一樣而已)
(單片機接法)
下面主要總結一下2種總線的異同點:
1 iic總線不是全雙工,2根線SCL SDA。spi總線實現全雙工,4根線SCK CS MOSI MISO
2 iic總線是多主機總線,通過SDA上的地址信息來鎖定從設備。spi總線只有一個主設備,主設備通過CS片選來確定從設備
3 iic總線傳輸速度在100kbps-4Mbps。spi總線傳輸速度更快,可以達到30MHZ以上。
4 iic總線空閑狀態下SDA SCL都是高電平。spi總線空閑狀態MOSI MISO也都是 SCK是有CPOL決定的
5 iic總線scl高電平時sda下降沿標志傳輸開始,上升沿標志傳輸結束。spi總線cs拉低標志傳輸開始,cs拉高標志傳輸結束
6 iic總線是SCL高電平采樣。spi總線因為是全雙工,因此是沿采樣,具體要根據CPHA決定。一般情況下master device是SCK的上升沿發送,下降沿采集
7 iic總線和spi總線數據傳輸都是MSB在前,LSB在后(串口是LSB在前)
8 iic總線和spi總線時鐘都是由主設備產生,并且只在數據傳輸時發出時鐘
9 iic總線讀寫時序比較固定統一,設備驅動編寫方便。spi總線不同從設備讀寫時序差別比較大,因此必須根據具體的設備datasheet來實現讀寫,相對復雜一些。
| 歡迎光臨 (http://www.denmoz.com/bbs/) | Powered by Discuz! X3.1 |