SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫,SPI是高速的全雙工同步通訊總線,英創(chuàng)公司的所有工控主板都提供了一路4線SPI總線接口,4線包括片選信號(hào)(SPI_CSn)、時(shí)鐘信號(hào)(SPI_SCLK)、數(shù)據(jù)輸入(SPI_MISO)和數(shù)據(jù)輸出(SPI_MOSI)信號(hào)。
SPI以主從方式工作,英創(chuàng)主板SPI接口工作在主模式,SPI_CSn是SPI從設(shè)備的使能控制信號(hào),當(dāng)從設(shè)備被SPI_CSn使能時(shí),通過(guò)SPI總線對(duì)此設(shè)備的操作才有效,因此可以在同一條SPI總線上增加片選信號(hào)來(lái)連接多個(gè)SPI設(shè)備。
一個(gè)簡(jiǎn)單的增加片選的方法是使用GPIO來(lái)模擬SPI_CSn信號(hào),在每傳輸一個(gè)數(shù)據(jù)之前,將相應(yīng)的GPIO置低(假設(shè)從設(shè)備片選信號(hào)為低有效),選中對(duì)應(yīng)的SPI從設(shè)備,傳輸結(jié)束后再將GPIO置高。SPI總線的連接如下圖:
由于每傳輸一個(gè)字(8 - 32bits)都需要操作一次GPIO,所以使用GPIO模擬SPI片選的效率不高。同時(shí)這種方法不適用于SPI的DMA傳輸,僅適合數(shù)據(jù)量少、對(duì)傳輸速度要求不同的場(chǎng)合。
當(dāng)SPI采用DMA模式進(jìn)行高速數(shù)據(jù)傳輸時(shí),數(shù)據(jù)傳輸過(guò)程由硬件控制,片選信號(hào)也由SPI硬件直接產(chǎn)生輸出,所以無(wú)法實(shí)現(xiàn)利用GPIO模擬SPI片選,此時(shí)可通過(guò)硬件電路來(lái)擴(kuò)展SPI片選信號(hào)。下面是采用3 - 8譯碼器擴(kuò)展8路SPI的原理示意圖。在與一個(gè)SPI Slave通訊之前,先設(shè)置好參與譯碼的GPIO,然后直接調(diào)用SPI讀寫API函數(shù),當(dāng)SPI_CSn由驅(qū)動(dòng)程序置低時(shí),相應(yīng)的YX輸出低電平,當(dāng)SPI_CSn為高時(shí),所有的YX都輸出高電平。在與同一SPI設(shè)備進(jìn)行批量數(shù)據(jù)傳輸時(shí),只需要設(shè)置一次GPIO,與使用GPIO直接模擬片選信號(hào)相比,效率大大提高了。
英創(chuàng)工控主板的SPI接口可以支持60Mbps甚至更高的波特率,所以需要選擇低延時(shí)的邏輯器件,同時(shí)英創(chuàng)工控的GPIO電平范圍是0 - 3.3V,因此選擇的器件也應(yīng)該使用3.3V供電。上圖所用的74LVC138A使用3.3V供電,而且輸入與輸出的延時(shí)小于3nS(Typ),滿足SPI高速通訊的應(yīng)用。最后附上74LVC138A的真值表如下:
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6084瀏覽量
35154
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論