SPI通信協(xié)議—STM32f1學(xué)習(xí)筆記
SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,分別為:
1.MISO,主機(jī)數(shù)據(jù)輸入從機(jī)數(shù)據(jù)輸出線(“M”表示主機(jī)master,“I”表示輸入in,“S”表示從機(jī)slaver,“O”表示輸出out。)
2.MOSI,主機(jī)數(shù)據(jù)輸出從機(jī)數(shù)據(jù)輸入(同上,順序不同而已)
3.CS,片選信號,該引腳為高的為主機(jī),引腳低的為從機(jī)。單片機(jī)以此判斷主從機(jī)。
4.SCLK。時(shí)鐘線,由主機(jī)提供時(shí)鐘。
主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。
SPI工作原理:
主機(jī)和從機(jī)都有一個(gè)串行移位寄存器,主機(jī)通過想它的SPI串行寄存器寫入一個(gè)字節(jié)來發(fā)起一次傳輸。
主機(jī)的串行移位寄存器通過MOSI線將字節(jié)傳輸給從機(jī),同時(shí)從機(jī)也將自己的串行移位寄存器中的內(nèi)容通過MISO線傳輸給主機(jī)。這樣兩個(gè)移位寄存器的內(nèi)容就被交換了。
外設(shè)的寫操作和讀操作是同步完成的。如果只想進(jìn)行寫操作,主機(jī)只需忽略接收的字節(jié)。如果只想進(jìn)行讀操作,也必須發(fā)送一個(gè)字節(jié)(可以是空字節(jié))來引發(fā)從機(jī)傳輸。