一種單線程遠(yuǎn)程網(wǎng)絡(luò)控制SPI的實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
許多的1 - Wire 兼容的外圍設(shè)備可用,但對于那些缺乏的1 - Wire能力,圖1所示電路一種方法可以實(shí)現(xiàn)它。顯示的例子允許遠(yuǎn)程LED顯示屏是由1線通過SPI兼容的顯示控制器的網(wǎng)絡(luò)控制。
SPI(Serial Peripheral Interface--串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。SPI有三個寄存器分別為:控制寄存器SPCR,狀態(tài)寄存器SPSR,數(shù)據(jù)寄存器SPDR.外圍設(shè)置FLASHRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動器、A/D轉(zhuǎn)換器和MCU等。SPI總線系統(tǒng)可直接與各個廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線:串行時(shí)鐘線(SCLK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SS(有的SPI接口芯片帶有中斷信號線INT、有的SPI接口芯片沒有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI)。
SPI接口的全稱是“Serial Peripheral Interface”,意為串行外圍接口,是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。 SPI接口是在CPU和外圍低速器件之間進(jìn)行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達(dá)到幾Mbps.
圖1.三個1線開關(guān)(IC1的- IC3的),三異或門(IC4的),以及相關(guān)的組件使1 - Wire網(wǎng)絡(luò)來控制這種通過SPI外設(shè)IC5顯示。
生產(chǎn)出的3線SPI接口由MAX7221顯示控制器(低電平有效CS,DIN和CLK)的要求,1 - Wire網(wǎng)絡(luò)地址連續(xù)三個1線開關(guān)(DS2413的)。第一個開關(guān)直接創(chuàng)建片選(低電平有效CS),第二個創(chuàng)建串行數(shù)據(jù)線直接(標(biāo)準(zhǔn)),而第三個開關(guān)與三異或門的幫助,創(chuàng)造了串行時(shí)鐘(CLK)。
邊緣檢測器和一桿(IC4A - C)的結(jié)合IC2的(DATA1和資料0)的輸出創(chuàng)造一個SPI接口的時(shí)鐘信號。這種一次性時(shí)鐘產(chǎn)生電路提高了,只需要一個1線每SPI位交易數(shù)據(jù)速率,而不是三項(xiàng)交易(數(shù)據(jù),時(shí)鐘低,時(shí)鐘的高),將被要求如果IC2輸出被用來直接作為時(shí)鐘信號。
要傳送數(shù)據(jù)到SPI輸入,首先設(shè)置IC1的低產(chǎn)出。然后,傳送的數(shù)據(jù)位使用以下規(guī)則:
如果目前的數(shù)據(jù)位從以前位不同,設(shè)置IC2的DATA1數(shù)據(jù)輸出相應(yīng)。
如果目前的數(shù)據(jù)位是一樣的前一位,撥動IC3的的資料0輸出相同。
該電路產(chǎn)生時(shí)鐘脈沖,每次自動執(zhí)行,并且只需要一個1 - Wire總線命令發(fā)送每個數(shù)據(jù)位。當(dāng)數(shù)據(jù)傳輸完成后,發(fā)送一個最終的1 - Wire命令來設(shè)置IC1的輸出為高。
該電路允許1 - Wire網(wǎng)絡(luò)遠(yuǎn)程控制溫度顯示,但類似技術(shù)可以提供一個接口,通過I 2 C兼容的設(shè)備,以及其他的SPI ADC和DAC等外圍設(shè)備。您還可以通過使用額外的DS2413的生產(chǎn)輸出(S)的雙向數(shù)據(jù)傳輸能力。請注意,SPI數(shù)據(jù)速率不是很快,和對周邊的更新比較慢,但速度并不是很多遠(yuǎn)程監(jiān)控應(yīng)用的問題。