這幾天碰到了使用SPI接口的flash,才知道flash還可以是串行的,看來以前真是井底之蛙啊,找了一些SPI接口的資料都不全,后來找到一點(diǎn)英文資料,翻譯了一下,加上我的個(gè)人理解,湊成一篇了,希望對(duì)初學(xué)者有點(diǎn)幫助。
SPI接口的全稱是"Serial Peripheral Interface",意為串行外圍接口,是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。
SPI接口是在CPU和外圍低速器件之間進(jìn)行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,地位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達(dá)到幾Mbps。
SPI接口是以主從方式工作的,這種模式通常有一個(gè)主器件和一個(gè)或多個(gè)從器件,其接口包括以下四種信號(hào):
(1)MOSI – 主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入 (2)MISO – 主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出 (3)SCLK – 時(shí)鐘信號(hào),由主器件產(chǎn)生 (4)/SS – 從器件使能信號(hào),由主器件控制

在點(diǎn)對(duì)點(diǎn)的通信中,SPI接口不需要進(jìn)行尋址操作,且為全雙工通信,顯得簡單高效。 在多個(gè)從器件的系統(tǒng)中,每個(gè)從器件需要獨(dú)立的使能信號(hào),硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。

SPI接口在內(nèi)部硬件實(shí)際上是兩個(gè)簡單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號(hào)和移位脈沖下,按位傳輸,高位在前,低位在后。如下圖所示,在SCLK的下降沿上數(shù)據(jù)改變,同時(shí)一位數(shù)據(jù)被存入移位寄存器。  SPI接口內(nèi)部硬件圖示:  最后,SPI接口的一個(gè)缺點(diǎn):沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。 |