SPI是由美國摩托羅拉公司最先推出的一種同步串行傳輸規(guī)范,也是一種單片機外設(shè)芯片串行擴展接口。
SPI模式可以允許同時同步發(fā)送和接收8位數(shù)據(jù),并支持4種工作方式:
1. 串行數(shù)據(jù)輸出,對應(yīng)RC5/SDO引腳;
2. 串行數(shù)據(jù)輸入,對應(yīng)RC4/SDI/SDA引腳;
3. 串行時鐘,對應(yīng)RC3/SCK/SCL引腳;
4. 從動方式選擇,對應(yīng)RA5/SS/AN4引腳。
SPI模式下與之相關(guān)的寄存器有10個,其中4個是與I2C模式共用的。
圖1所示是由一個主機對接一個從機進行全雙工通信的系統(tǒng)構(gòu)成的方式。在該系統(tǒng)中,由于主機和從機的角色是固定不變的,并且只有一個從機,因此,可以將主機的麗端接高電平,將從機的SS端固定接地。
圖1 全雙工主機/從機連接方法
若干個具備SPI接口的單片機和若干片兼容SPI接口的外圍芯片,可以在軟件的控制下,構(gòu)成多種簡單或者復(fù)雜的應(yīng)用系統(tǒng),例如以下3種。
(1)一個主機和多個從器件的通信系統(tǒng)。
如圖2所示,各個從器件是單片機的外圍擴展芯片,它們的片選端SS分別獨占單片機的一條通用I/O引腳,由單片機分時選通它們建立通信。這樣省去了單片機在通信線路上發(fā)送地址碼的麻煩,但是占用了單片機的引腳資源。當(dāng)外設(shè)器件只有一個時,可以不必選通而直接將SS端接地即可。
圖2 一個主機擴展多個外圍器件
。2)幾個單片機互相連接構(gòu)成多主機通信系統(tǒng)。
圖3所示為3個既可以當(dāng)做主機也可以當(dāng)做從機的單片機組成的系統(tǒng)。
圖3 多主機通信系統(tǒng)連接方法