亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        I2C,SPI,SMI,SMBus串行接口實(shí)現(xiàn)方法

        2014-06-18 02:21:57康賓周玉娟
        中國(guó)科技縱橫 2014年4期
        關(guān)鍵詞:信號(hào)系統(tǒng)

        康賓 周玉娟

        【摘 要】 I2C、SPI、SMI(MDC、MDIO)、SMBus等接口受時(shí)鐘頻率的限制,相對(duì)于高速運(yùn)行的CPU芯片來(lái)說(shuō)接口運(yùn)行速度較慢。但并不是所有CPU芯片都支持這些串行接口,在很多系統(tǒng)中需要解決CPU芯片與串行接口芯片的互聯(lián)問(wèn)題。本文提出三種CPU芯片與串行接口互聯(lián)方案,其中方案一使用CPU芯片的GPIO接口與串行接口芯片互聯(lián),方案二CPU芯片通過(guò)FPGA芯片與串行接口芯片間接互聯(lián),方案三FPGA的SOPC技術(shù)代替CPU芯片與串行接口芯片互聯(lián)。

        【關(guān)鍵詞】 I2C SPI SMI(MDC、MDIO) SMBus FPGA SOPC

        【Abstract】 I2C, SPI, SMI(MDC、MDIO)and SMBus limited by the interface clock frequency, relative to the CPU chip for high-speed operation of the interface to run slower; But not all CPU chips support these serial interfaces, in many systems interconnected issues need to be resolved with the CPU chip and serial interface chip; This paper proposes three CPU chip interconnect solutions with serial interface,Which program to use a CPU chip GPIO interface with serial interface chip interconnect, Option II CPU chip FPGA chip by indirect interconnection with serial interface chip, Option III FPGA SOPC technology instead of the CPU chip interconnect with a serial interface chip.

        【Key words】 I2C SPI SMI SMBus FPGA SOPC

        為了減小芯片的體積,減小布線的復(fù)雜度,提高系統(tǒng)的可靠性以及集成度,越來(lái)越多的芯片采用串行I2C接口、SPI接口、SMI(MDC、MDIO)接口、SMBus接口等;例如EEPROM、FLASH、以太網(wǎng)PHY芯片,鎖相環(huán)芯片,溫度測(cè)量芯片、光電轉(zhuǎn)換模塊等。

        串行接口使用簡(jiǎn)單,用2到4根信號(hào)就可以完成芯片初始化、配置、運(yùn)行狀態(tài)查詢等操作。但在各種系統(tǒng)中,串行接口運(yùn)行速率較慢,串行接口芯片與高速的CPU芯片如何互聯(lián)是一個(gè)亟待解決的問(wèn)題。

        1 I2C、SPI、SMI、SMBus串行接口簡(jiǎn)介

        I2C接口也就是通常所說(shuō)的I2C串行總線,一般有兩根信號(hào)線,一根是雙向的數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。所有I2C設(shè)備串行數(shù)據(jù)SDA都接到總線SDA上,各設(shè)備時(shí)鐘線SCL接到總線SCL上。

        SPI接口的全稱是“Serial Peripheral Interface”,是一種高速、全雙工、同步的通信總線。SPI接口信號(hào)主要包括SDO(主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入)、SDI(主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出),SCLK(時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生)、CS(從設(shè)備使能信號(hào),由主設(shè)備控制)等信號(hào)。

        SMI(MDC、MDIO)接口在以太網(wǎng)PHY芯片上比較常見(jiàn),主要由MDC、MDIO兩個(gè)信號(hào)組成。CUP或以太網(wǎng)MAC芯片通過(guò)該接口可以完成以太網(wǎng)PHY芯片初始化、以太網(wǎng)接口配置、以太網(wǎng)接口狀態(tài)查詢等操作。SMI(MDC、MDIO)接口還可以提供中斷信號(hào)MDINT(由以太網(wǎng)PHY芯片產(chǎn)生的中斷)。

        SMBus是System Management Bus的縮寫(xiě),由Intel于1995年提出,是一種二線制串行總線,信號(hào)主要包括SMBus_DATA(數(shù)據(jù)輸入輸出)、SMBus_CLK(時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生)。

        接口原理框圖以及信號(hào)方向,如圖1所示:

        2 串行接口互聯(lián)方案

        CPU芯片可以直接支持I2C接口、SPI接口、SMI(MDC、MDIO)接口、SMBus接口其中一種接口或者兩種接口,硬件電路實(shí)現(xiàn)比較簡(jiǎn)單。CPU芯片相應(yīng)使能管腳和串行接口芯片相應(yīng)管腳直接向連,然后根據(jù)相應(yīng)電氣特性匹配上下拉電阻;但也有一些CPU不支持這些接口,在這樣情況下,有三種方案可以解決CPU芯片與串行接口芯片互聯(lián)問(wèn)題。

        2.1 使用CPU的GPIO管腳互聯(lián)

        CPU一般都有一些GPIO管腳,可以使用CPU的GPIO管腳模擬串行接口信號(hào)以及接口時(shí)序,從而解決CPU芯片與串行接口芯片互聯(lián)問(wèn)題,以SPI接口為例說(shuō)明其互聯(lián)原理,其框圖如圖2所示:

        CPU作為主端,發(fā)起SPI讀寫(xiě)操作,外圍芯片作為從端,接收CPU讀寫(xiě)指令。SPI接口CS(從設(shè)備使能信號(hào),由主設(shè)備控制)信號(hào),可以由CPU空閑CS管腳或GPIO管腳來(lái)模擬實(shí)現(xiàn),當(dāng)CPU發(fā)起SPI讀寫(xiě)操作時(shí):

        (1)首先CS信號(hào)有效,才開(kāi)始后續(xù)讀寫(xiě)操作,作為CS信號(hào)CPU的GPIO管腳在整個(gè)SPI讀寫(xiě)操作過(guò)程中保持‘0電平。

        (2)SCLK(時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生),由CPU的GPIO管腳經(jīng)過(guò)一定時(shí)間后反轉(zhuǎn)其管腳電平模擬實(shí)現(xiàn)SPI接口時(shí)鐘,輸出到SPI從設(shè)備。

        (3)SDO(主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入)信號(hào)由CPU的GPIO管腳作為輸出管腳,在同步于SCLK的情況下,輸出相應(yīng)‘0、‘1電平實(shí)現(xiàn)相應(yīng)讀寫(xiě)命令以及數(shù)據(jù)輸出。endprint

        (4)當(dāng)進(jìn)行讀操作時(shí)SDI有效,SDI(主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出)由CPU的GPIO管腳作為輸入管腳,同步于SCLK的情況下把其管腳輸入按位存儲(chǔ)到CPU內(nèi)存空間實(shí)現(xiàn)相應(yīng)數(shù)據(jù)的輸入。

        I2C接口,SMI(MDC、MDIO)接口,SMBus接口等串行接口也可以采用類似的方法來(lái)實(shí)現(xiàn)。

        從上述可以看出,此方案CPU需要全程參與串行接口的讀寫(xiě)操作,讀寫(xiě)操作過(guò)程不能被打斷,而且需要復(fù)雜的程序模擬串行接口時(shí)序,特別是對(duì)I2C,SMBus等接口在讀寫(xiě)過(guò)程中需要ACK或NCK回應(yīng)的時(shí)序,程序設(shè)計(jì)顯得捉襟見(jiàn)肘。此方案缺點(diǎn):CPU訪問(wèn)串行接口芯片時(shí),CPU會(huì)被完全占用,CPU無(wú)法處理其他工作,程序設(shè)計(jì)較復(fù)雜;優(yōu)點(diǎn):CPU與串行接口芯片之間互聯(lián),不占用系統(tǒng)其它資源。

        2.2 FPGA間接訪問(wèn)串行接口

        一般情況下,CPU芯片都有并行CPU接口,CPU芯片通過(guò)CPU接口與FPGA相連,由FPGA芯片來(lái)模擬串行接口時(shí)序;FPGA與相應(yīng)的串行接口芯片相連,代替CPU芯片完成串行接口芯片的讀寫(xiě)訪問(wèn)。原理框圖如圖3所示:

        CPU芯片通過(guò)并行的CPU接口對(duì)FPGA的內(nèi)存空間進(jìn)行讀寫(xiě)操作;FPGA根據(jù)其內(nèi)存中內(nèi)容模擬串行接口讀寫(xiě)時(shí)序,完成由CPU芯片并行接口到串行接口的轉(zhuǎn)換。

        以SMI(MDC、MDIO)接口為例來(lái)說(shuō)明此方案具體實(shí)現(xiàn)方法。CPU芯片或以太網(wǎng)MAC芯片通過(guò)此SMI(MDC、MDIO)接口完成以太網(wǎng)PHY芯片初始化、以太網(wǎng)接口配置以及以太網(wǎng)接口狀態(tài)查詢等工作。其原理框圖如圖4所示:

        SMI(MDC、MDIO)接口寫(xiě)操作:

        (1)CPU芯片通過(guò)并行CPU接口把以太網(wǎng)PHY芯片地址,以太網(wǎng)PHY芯片寄存器地址,以及要寫(xiě)入到以太網(wǎng)PHY芯片的數(shù)據(jù),寫(xiě)命令等寫(xiě)入到FPGA內(nèi)存空間;

        (2)然后再由FPGA把內(nèi)存中的數(shù)據(jù)按照SMI(MDC、MDIO)接口的寫(xiě)時(shí)序?qū)懭氲揭蕴W(wǎng)PHY芯片,在此過(guò)程中由FPGA程序狀態(tài)機(jī)來(lái)負(fù)責(zé)寫(xiě)開(kāi)始、寫(xiě)結(jié)束、是否空閑等狀態(tài)控制,接口時(shí)序完成由FPGA負(fù)責(zé)完成。

        以太網(wǎng)PHY芯片的單次寫(xiě)過(guò)操作完全可以交由FPGA完成;以太網(wǎng)PHY芯片多次寫(xiě)操作,采用在FPGA里加入FIFO緩存CPU多次寫(xiě)操作數(shù)據(jù),然后再由FPGA依次發(fā)起寫(xiě)過(guò)程;在多次寫(xiě)過(guò)程,F(xiàn)PGA也完全可以代替CPU芯片或以太網(wǎng)MAC芯片完成SMI(MDC/MDIO)接口寫(xiě)操作。

        SMI(MDC、MDIO)接口讀操作:(1)CPU芯片通過(guò)并行CPU接口把以太網(wǎng)PHY芯片地址,以太網(wǎng)PHY芯片寄存器地址,讀命令等寫(xiě)入到FPGA的內(nèi)存空間;(2)然后再由FPGA模擬出SMI(MDC/MDIO)接口讀命令,通過(guò)MDIO信號(hào)把讀命令傳遞給以太網(wǎng)PHY芯;(3)以太網(wǎng)PHY芯片使用MDIO信號(hào)輸出相應(yīng)數(shù)據(jù),F(xiàn)PGA利用MDC的時(shí)鐘延把MDIO信號(hào)數(shù)據(jù)按bit存儲(chǔ)到FPGA內(nèi)存。

        SMI(MDC/MDIO)接口讀操作,完全可以把讀出的數(shù)據(jù)暫存到FPGA、CPLD內(nèi)存中,CPU空閑時(shí)再讀入到CPU芯片;或者結(jié)合MDINT中斷信號(hào),以太網(wǎng)PHY芯片狀態(tài)發(fā)生變化MDINT產(chǎn)生中斷時(shí),CPU響應(yīng)中斷后再開(kāi)始SMI(MDC/MDIO)接口讀操作。

        此方案中串行接口芯片讀寫(xiě)操作時(shí)序交由FPGA的狀態(tài)機(jī)完成,F(xiàn)PGA分擔(dān)CPU的時(shí)序模擬工作,CPU從大量模擬時(shí)序工作中解脫出來(lái),節(jié)省CPU資源,CPU程序得到簡(jiǎn)化,提高CPU運(yùn)行效率;缺點(diǎn)是需要FPGA的支持,以及足夠的FPGA資源。

        2.3 SOPC技術(shù)訪問(wèn)串行接口

        采用FPGA的SOPC技術(shù)單獨(dú)完成對(duì)串行接口芯片的初始化、模式配置、狀態(tài)查詢等工作;SOPC作為次CPU獨(dú)立的完成串行接口芯片的讀寫(xiě)操作,主CPU需要進(jìn)行串行接口讀寫(xiě)操作時(shí),直接與SOPC進(jìn)行交互。采用此方案的系統(tǒng)中,SOPC完全可以代替主CPU完成系統(tǒng)中所有串行接口的讀寫(xiě)訪問(wèn)工作,原理框圖如圖5所示:

        以Altera的FPGA為例說(shuō)明具體實(shí)現(xiàn)方法:(1)使用Altera公司的SOPC BUILDER工具搭建NIOS系統(tǒng),配置NIOS嵌入式CPU,選擇相應(yīng)的Memory控制器,選擇相應(yīng)的串行接口IPcore,以及定時(shí)器等;(2)完成相應(yīng)的初始化程序,狀態(tài)查詢程序編寫(xiě);(3)完成程序調(diào)試后,啟動(dòng)NIOS系統(tǒng)完成程序初始化,以及完成定時(shí)輪詢串行接口芯片狀態(tài)等工作。(4)把各串行接口芯片狀態(tài)存儲(chǔ)在NIOS系統(tǒng)的內(nèi)存空間;(5)主CPU需要串行接口芯片狀態(tài)時(shí),NIOS系統(tǒng)通過(guò)其與主CPU之間的高速接口把串行接口芯片的狀態(tài)傳遞給主CPU。

        SOPC模塊作為系統(tǒng)的次CPU,可以獨(dú)立完成系統(tǒng)中所有的串行接口芯片初始化、狀態(tài)采集、配置等工作;主CPU與SOPC次CPU之間通過(guò)高速接口交互消息。主CPU完全從繁瑣的串行接口芯片讀寫(xiě)時(shí)序操作中解脫出來(lái),優(yōu)點(diǎn)不言而喻。但此方案的整體系統(tǒng)相對(duì)來(lái)說(shuō)比較復(fù)雜。

        3 結(jié)語(yǔ)

        三種方案都可以用來(lái)解決串行接口的互聯(lián)問(wèn)題,有著各自的特點(diǎn),應(yīng)用于不同的系統(tǒng)。CPU的GPIO管腳互聯(lián)方案,串行接口訪問(wèn)過(guò)程中需要CPU芯片全程參與,所有的工作都由CPU負(fù)責(zé),此方案可以應(yīng)用在較為簡(jiǎn)單,CPU比較空閑的系統(tǒng)中;FPGA間接訪問(wèn)串行接口方案,CPU從串行接口讀寫(xiě)訪問(wèn)部分解脫出來(lái),由FPGA模擬串行接口時(shí)序,以及完成串行接口讀寫(xiě)狀態(tài)控制,此方案可以應(yīng)用在FPGA資源充足的系統(tǒng)中;SOPC技術(shù)訪問(wèn)串行接口方案,CPU從串行接口訪問(wèn)過(guò)程完全解脫出來(lái),由SOPC預(yù)先對(duì)串行接口進(jìn)行讀寫(xiě)訪問(wèn),此方案可以同時(shí)檢查較多的串行接口芯片,其可以應(yīng)用在可靠性要求較高,實(shí)時(shí)性要求較高的系統(tǒng)中。

        參考文獻(xiàn)

        [1]The I2C-Bus Specification.VERSION 2.1,2000-01.

        [2]System Management Bus (SMBus) Specification Version 2.0,2000-03.

        [3]The Freescale SPI Bus Specification.VERSION 4.01,2004-09.

        [4]IEEE802.3u標(biāo)準(zhǔn).endprint

        (4)當(dāng)進(jìn)行讀操作時(shí)SDI有效,SDI(主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出)由CPU的GPIO管腳作為輸入管腳,同步于SCLK的情況下把其管腳輸入按位存儲(chǔ)到CPU內(nèi)存空間實(shí)現(xiàn)相應(yīng)數(shù)據(jù)的輸入。

        I2C接口,SMI(MDC、MDIO)接口,SMBus接口等串行接口也可以采用類似的方法來(lái)實(shí)現(xiàn)。

        從上述可以看出,此方案CPU需要全程參與串行接口的讀寫(xiě)操作,讀寫(xiě)操作過(guò)程不能被打斷,而且需要復(fù)雜的程序模擬串行接口時(shí)序,特別是對(duì)I2C,SMBus等接口在讀寫(xiě)過(guò)程中需要ACK或NCK回應(yīng)的時(shí)序,程序設(shè)計(jì)顯得捉襟見(jiàn)肘。此方案缺點(diǎn):CPU訪問(wèn)串行接口芯片時(shí),CPU會(huì)被完全占用,CPU無(wú)法處理其他工作,程序設(shè)計(jì)較復(fù)雜;優(yōu)點(diǎn):CPU與串行接口芯片之間互聯(lián),不占用系統(tǒng)其它資源。

        2.2 FPGA間接訪問(wèn)串行接口

        一般情況下,CPU芯片都有并行CPU接口,CPU芯片通過(guò)CPU接口與FPGA相連,由FPGA芯片來(lái)模擬串行接口時(shí)序;FPGA與相應(yīng)的串行接口芯片相連,代替CPU芯片完成串行接口芯片的讀寫(xiě)訪問(wèn)。原理框圖如圖3所示:

        CPU芯片通過(guò)并行的CPU接口對(duì)FPGA的內(nèi)存空間進(jìn)行讀寫(xiě)操作;FPGA根據(jù)其內(nèi)存中內(nèi)容模擬串行接口讀寫(xiě)時(shí)序,完成由CPU芯片并行接口到串行接口的轉(zhuǎn)換。

        以SMI(MDC、MDIO)接口為例來(lái)說(shuō)明此方案具體實(shí)現(xiàn)方法。CPU芯片或以太網(wǎng)MAC芯片通過(guò)此SMI(MDC、MDIO)接口完成以太網(wǎng)PHY芯片初始化、以太網(wǎng)接口配置以及以太網(wǎng)接口狀態(tài)查詢等工作。其原理框圖如圖4所示:

        SMI(MDC、MDIO)接口寫(xiě)操作:

        (1)CPU芯片通過(guò)并行CPU接口把以太網(wǎng)PHY芯片地址,以太網(wǎng)PHY芯片寄存器地址,以及要寫(xiě)入到以太網(wǎng)PHY芯片的數(shù)據(jù),寫(xiě)命令等寫(xiě)入到FPGA內(nèi)存空間;

        (2)然后再由FPGA把內(nèi)存中的數(shù)據(jù)按照SMI(MDC、MDIO)接口的寫(xiě)時(shí)序?qū)懭氲揭蕴W(wǎng)PHY芯片,在此過(guò)程中由FPGA程序狀態(tài)機(jī)來(lái)負(fù)責(zé)寫(xiě)開(kāi)始、寫(xiě)結(jié)束、是否空閑等狀態(tài)控制,接口時(shí)序完成由FPGA負(fù)責(zé)完成。

        以太網(wǎng)PHY芯片的單次寫(xiě)過(guò)操作完全可以交由FPGA完成;以太網(wǎng)PHY芯片多次寫(xiě)操作,采用在FPGA里加入FIFO緩存CPU多次寫(xiě)操作數(shù)據(jù),然后再由FPGA依次發(fā)起寫(xiě)過(guò)程;在多次寫(xiě)過(guò)程,F(xiàn)PGA也完全可以代替CPU芯片或以太網(wǎng)MAC芯片完成SMI(MDC/MDIO)接口寫(xiě)操作。

        SMI(MDC、MDIO)接口讀操作:(1)CPU芯片通過(guò)并行CPU接口把以太網(wǎng)PHY芯片地址,以太網(wǎng)PHY芯片寄存器地址,讀命令等寫(xiě)入到FPGA的內(nèi)存空間;(2)然后再由FPGA模擬出SMI(MDC/MDIO)接口讀命令,通過(guò)MDIO信號(hào)把讀命令傳遞給以太網(wǎng)PHY芯;(3)以太網(wǎng)PHY芯片使用MDIO信號(hào)輸出相應(yīng)數(shù)據(jù),F(xiàn)PGA利用MDC的時(shí)鐘延把MDIO信號(hào)數(shù)據(jù)按bit存儲(chǔ)到FPGA內(nèi)存。

        SMI(MDC/MDIO)接口讀操作,完全可以把讀出的數(shù)據(jù)暫存到FPGA、CPLD內(nèi)存中,CPU空閑時(shí)再讀入到CPU芯片;或者結(jié)合MDINT中斷信號(hào),以太網(wǎng)PHY芯片狀態(tài)發(fā)生變化MDINT產(chǎn)生中斷時(shí),CPU響應(yīng)中斷后再開(kāi)始SMI(MDC/MDIO)接口讀操作。

        此方案中串行接口芯片讀寫(xiě)操作時(shí)序交由FPGA的狀態(tài)機(jī)完成,F(xiàn)PGA分擔(dān)CPU的時(shí)序模擬工作,CPU從大量模擬時(shí)序工作中解脫出來(lái),節(jié)省CPU資源,CPU程序得到簡(jiǎn)化,提高CPU運(yùn)行效率;缺點(diǎn)是需要FPGA的支持,以及足夠的FPGA資源。

        2.3 SOPC技術(shù)訪問(wèn)串行接口

        采用FPGA的SOPC技術(shù)單獨(dú)完成對(duì)串行接口芯片的初始化、模式配置、狀態(tài)查詢等工作;SOPC作為次CPU獨(dú)立的完成串行接口芯片的讀寫(xiě)操作,主CPU需要進(jìn)行串行接口讀寫(xiě)操作時(shí),直接與SOPC進(jìn)行交互。采用此方案的系統(tǒng)中,SOPC完全可以代替主CPU完成系統(tǒng)中所有串行接口的讀寫(xiě)訪問(wèn)工作,原理框圖如圖5所示:

        以Altera的FPGA為例說(shuō)明具體實(shí)現(xiàn)方法:(1)使用Altera公司的SOPC BUILDER工具搭建NIOS系統(tǒng),配置NIOS嵌入式CPU,選擇相應(yīng)的Memory控制器,選擇相應(yīng)的串行接口IPcore,以及定時(shí)器等;(2)完成相應(yīng)的初始化程序,狀態(tài)查詢程序編寫(xiě);(3)完成程序調(diào)試后,啟動(dòng)NIOS系統(tǒng)完成程序初始化,以及完成定時(shí)輪詢串行接口芯片狀態(tài)等工作。(4)把各串行接口芯片狀態(tài)存儲(chǔ)在NIOS系統(tǒng)的內(nèi)存空間;(5)主CPU需要串行接口芯片狀態(tài)時(shí),NIOS系統(tǒng)通過(guò)其與主CPU之間的高速接口把串行接口芯片的狀態(tài)傳遞給主CPU。

        SOPC模塊作為系統(tǒng)的次CPU,可以獨(dú)立完成系統(tǒng)中所有的串行接口芯片初始化、狀態(tài)采集、配置等工作;主CPU與SOPC次CPU之間通過(guò)高速接口交互消息。主CPU完全從繁瑣的串行接口芯片讀寫(xiě)時(shí)序操作中解脫出來(lái),優(yōu)點(diǎn)不言而喻。但此方案的整體系統(tǒng)相對(duì)來(lái)說(shuō)比較復(fù)雜。

        3 結(jié)語(yǔ)

        三種方案都可以用來(lái)解決串行接口的互聯(lián)問(wèn)題,有著各自的特點(diǎn),應(yīng)用于不同的系統(tǒng)。CPU的GPIO管腳互聯(lián)方案,串行接口訪問(wèn)過(guò)程中需要CPU芯片全程參與,所有的工作都由CPU負(fù)責(zé),此方案可以應(yīng)用在較為簡(jiǎn)單,CPU比較空閑的系統(tǒng)中;FPGA間接訪問(wèn)串行接口方案,CPU從串行接口讀寫(xiě)訪問(wèn)部分解脫出來(lái),由FPGA模擬串行接口時(shí)序,以及完成串行接口讀寫(xiě)狀態(tài)控制,此方案可以應(yīng)用在FPGA資源充足的系統(tǒng)中;SOPC技術(shù)訪問(wèn)串行接口方案,CPU從串行接口訪問(wèn)過(guò)程完全解脫出來(lái),由SOPC預(yù)先對(duì)串行接口進(jìn)行讀寫(xiě)訪問(wèn),此方案可以同時(shí)檢查較多的串行接口芯片,其可以應(yīng)用在可靠性要求較高,實(shí)時(shí)性要求較高的系統(tǒng)中。

        參考文獻(xiàn)

        [1]The I2C-Bus Specification.VERSION 2.1,2000-01.

        [2]System Management Bus (SMBus) Specification Version 2.0,2000-03.

        [3]The Freescale SPI Bus Specification.VERSION 4.01,2004-09.

        [4]IEEE802.3u標(biāo)準(zhǔn).endprint

        (4)當(dāng)進(jìn)行讀操作時(shí)SDI有效,SDI(主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出)由CPU的GPIO管腳作為輸入管腳,同步于SCLK的情況下把其管腳輸入按位存儲(chǔ)到CPU內(nèi)存空間實(shí)現(xiàn)相應(yīng)數(shù)據(jù)的輸入。

        I2C接口,SMI(MDC、MDIO)接口,SMBus接口等串行接口也可以采用類似的方法來(lái)實(shí)現(xiàn)。

        從上述可以看出,此方案CPU需要全程參與串行接口的讀寫(xiě)操作,讀寫(xiě)操作過(guò)程不能被打斷,而且需要復(fù)雜的程序模擬串行接口時(shí)序,特別是對(duì)I2C,SMBus等接口在讀寫(xiě)過(guò)程中需要ACK或NCK回應(yīng)的時(shí)序,程序設(shè)計(jì)顯得捉襟見(jiàn)肘。此方案缺點(diǎn):CPU訪問(wèn)串行接口芯片時(shí),CPU會(huì)被完全占用,CPU無(wú)法處理其他工作,程序設(shè)計(jì)較復(fù)雜;優(yōu)點(diǎn):CPU與串行接口芯片之間互聯(lián),不占用系統(tǒng)其它資源。

        2.2 FPGA間接訪問(wèn)串行接口

        一般情況下,CPU芯片都有并行CPU接口,CPU芯片通過(guò)CPU接口與FPGA相連,由FPGA芯片來(lái)模擬串行接口時(shí)序;FPGA與相應(yīng)的串行接口芯片相連,代替CPU芯片完成串行接口芯片的讀寫(xiě)訪問(wèn)。原理框圖如圖3所示:

        CPU芯片通過(guò)并行的CPU接口對(duì)FPGA的內(nèi)存空間進(jìn)行讀寫(xiě)操作;FPGA根據(jù)其內(nèi)存中內(nèi)容模擬串行接口讀寫(xiě)時(shí)序,完成由CPU芯片并行接口到串行接口的轉(zhuǎn)換。

        以SMI(MDC、MDIO)接口為例來(lái)說(shuō)明此方案具體實(shí)現(xiàn)方法。CPU芯片或以太網(wǎng)MAC芯片通過(guò)此SMI(MDC、MDIO)接口完成以太網(wǎng)PHY芯片初始化、以太網(wǎng)接口配置以及以太網(wǎng)接口狀態(tài)查詢等工作。其原理框圖如圖4所示:

        SMI(MDC、MDIO)接口寫(xiě)操作:

        (1)CPU芯片通過(guò)并行CPU接口把以太網(wǎng)PHY芯片地址,以太網(wǎng)PHY芯片寄存器地址,以及要寫(xiě)入到以太網(wǎng)PHY芯片的數(shù)據(jù),寫(xiě)命令等寫(xiě)入到FPGA內(nèi)存空間;

        (2)然后再由FPGA把內(nèi)存中的數(shù)據(jù)按照SMI(MDC、MDIO)接口的寫(xiě)時(shí)序?qū)懭氲揭蕴W(wǎng)PHY芯片,在此過(guò)程中由FPGA程序狀態(tài)機(jī)來(lái)負(fù)責(zé)寫(xiě)開(kāi)始、寫(xiě)結(jié)束、是否空閑等狀態(tài)控制,接口時(shí)序完成由FPGA負(fù)責(zé)完成。

        以太網(wǎng)PHY芯片的單次寫(xiě)過(guò)操作完全可以交由FPGA完成;以太網(wǎng)PHY芯片多次寫(xiě)操作,采用在FPGA里加入FIFO緩存CPU多次寫(xiě)操作數(shù)據(jù),然后再由FPGA依次發(fā)起寫(xiě)過(guò)程;在多次寫(xiě)過(guò)程,F(xiàn)PGA也完全可以代替CPU芯片或以太網(wǎng)MAC芯片完成SMI(MDC/MDIO)接口寫(xiě)操作。

        SMI(MDC、MDIO)接口讀操作:(1)CPU芯片通過(guò)并行CPU接口把以太網(wǎng)PHY芯片地址,以太網(wǎng)PHY芯片寄存器地址,讀命令等寫(xiě)入到FPGA的內(nèi)存空間;(2)然后再由FPGA模擬出SMI(MDC/MDIO)接口讀命令,通過(guò)MDIO信號(hào)把讀命令傳遞給以太網(wǎng)PHY芯;(3)以太網(wǎng)PHY芯片使用MDIO信號(hào)輸出相應(yīng)數(shù)據(jù),F(xiàn)PGA利用MDC的時(shí)鐘延把MDIO信號(hào)數(shù)據(jù)按bit存儲(chǔ)到FPGA內(nèi)存。

        SMI(MDC/MDIO)接口讀操作,完全可以把讀出的數(shù)據(jù)暫存到FPGA、CPLD內(nèi)存中,CPU空閑時(shí)再讀入到CPU芯片;或者結(jié)合MDINT中斷信號(hào),以太網(wǎng)PHY芯片狀態(tài)發(fā)生變化MDINT產(chǎn)生中斷時(shí),CPU響應(yīng)中斷后再開(kāi)始SMI(MDC/MDIO)接口讀操作。

        此方案中串行接口芯片讀寫(xiě)操作時(shí)序交由FPGA的狀態(tài)機(jī)完成,F(xiàn)PGA分擔(dān)CPU的時(shí)序模擬工作,CPU從大量模擬時(shí)序工作中解脫出來(lái),節(jié)省CPU資源,CPU程序得到簡(jiǎn)化,提高CPU運(yùn)行效率;缺點(diǎn)是需要FPGA的支持,以及足夠的FPGA資源。

        2.3 SOPC技術(shù)訪問(wèn)串行接口

        采用FPGA的SOPC技術(shù)單獨(dú)完成對(duì)串行接口芯片的初始化、模式配置、狀態(tài)查詢等工作;SOPC作為次CPU獨(dú)立的完成串行接口芯片的讀寫(xiě)操作,主CPU需要進(jìn)行串行接口讀寫(xiě)操作時(shí),直接與SOPC進(jìn)行交互。采用此方案的系統(tǒng)中,SOPC完全可以代替主CPU完成系統(tǒng)中所有串行接口的讀寫(xiě)訪問(wèn)工作,原理框圖如圖5所示:

        以Altera的FPGA為例說(shuō)明具體實(shí)現(xiàn)方法:(1)使用Altera公司的SOPC BUILDER工具搭建NIOS系統(tǒng),配置NIOS嵌入式CPU,選擇相應(yīng)的Memory控制器,選擇相應(yīng)的串行接口IPcore,以及定時(shí)器等;(2)完成相應(yīng)的初始化程序,狀態(tài)查詢程序編寫(xiě);(3)完成程序調(diào)試后,啟動(dòng)NIOS系統(tǒng)完成程序初始化,以及完成定時(shí)輪詢串行接口芯片狀態(tài)等工作。(4)把各串行接口芯片狀態(tài)存儲(chǔ)在NIOS系統(tǒng)的內(nèi)存空間;(5)主CPU需要串行接口芯片狀態(tài)時(shí),NIOS系統(tǒng)通過(guò)其與主CPU之間的高速接口把串行接口芯片的狀態(tài)傳遞給主CPU。

        SOPC模塊作為系統(tǒng)的次CPU,可以獨(dú)立完成系統(tǒng)中所有的串行接口芯片初始化、狀態(tài)采集、配置等工作;主CPU與SOPC次CPU之間通過(guò)高速接口交互消息。主CPU完全從繁瑣的串行接口芯片讀寫(xiě)時(shí)序操作中解脫出來(lái),優(yōu)點(diǎn)不言而喻。但此方案的整體系統(tǒng)相對(duì)來(lái)說(shuō)比較復(fù)雜。

        3 結(jié)語(yǔ)

        三種方案都可以用來(lái)解決串行接口的互聯(lián)問(wèn)題,有著各自的特點(diǎn),應(yīng)用于不同的系統(tǒng)。CPU的GPIO管腳互聯(lián)方案,串行接口訪問(wèn)過(guò)程中需要CPU芯片全程參與,所有的工作都由CPU負(fù)責(zé),此方案可以應(yīng)用在較為簡(jiǎn)單,CPU比較空閑的系統(tǒng)中;FPGA間接訪問(wèn)串行接口方案,CPU從串行接口讀寫(xiě)訪問(wèn)部分解脫出來(lái),由FPGA模擬串行接口時(shí)序,以及完成串行接口讀寫(xiě)狀態(tài)控制,此方案可以應(yīng)用在FPGA資源充足的系統(tǒng)中;SOPC技術(shù)訪問(wèn)串行接口方案,CPU從串行接口訪問(wèn)過(guò)程完全解脫出來(lái),由SOPC預(yù)先對(duì)串行接口進(jìn)行讀寫(xiě)訪問(wèn),此方案可以同時(shí)檢查較多的串行接口芯片,其可以應(yīng)用在可靠性要求較高,實(shí)時(shí)性要求較高的系統(tǒng)中。

        參考文獻(xiàn)

        [1]The I2C-Bus Specification.VERSION 2.1,2000-01.

        [2]System Management Bus (SMBus) Specification Version 2.0,2000-03.

        [3]The Freescale SPI Bus Specification.VERSION 4.01,2004-09.

        [4]IEEE802.3u標(biāo)準(zhǔn).endprint

        猜你喜歡
        信號(hào)系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        信號(hào)
        鴨綠江(2021年35期)2021-04-19 12:24:18
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        完形填空二則
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        孩子停止長(zhǎng)個(gè)的信號(hào)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        基于LabVIEW的力加載信號(hào)采集與PID控制
        男同gay毛片免费可播放| 在线成人影院国产av| 免费午夜爽爽爽www视频十八禁 | 中文字幕一区日韩精品| 亚洲欧洲日产国码无码久久99| 亚洲中文一本无码AV在线无码 | 国产av一区二区三区在线播放| 国产精品免费_区二区三区观看| 精品国精品国产自在久国产应用| 爆乳无码AV国内| 久久亚洲免费精品视频| 天堂а在线中文在线新版| 亚洲av无码av吞精久久| 国色天香精品亚洲精品| 中文日本强暴人妻另类视频| 日日躁夜夜躁狠狠躁| 日日干夜夜操高清视频| 人妻少妇精品一区二区三区| 久久蜜桃资源一区二区| 亚洲日韩成人无码| 国产女主播喷水视频在线观看| 日本免费一区二区三区在线看| 偷拍一区二区三区黄片| 午夜精品久久久久久久99老熟妇| 久久久久亚洲av无码专区导航| 动漫av纯肉无码av在线播放| 97精品熟女少妇一区二区三区| 少妇人妻综合久久中文字幕| 久久青青热| 黄色三级一区二区三区| 亚洲av福利天堂一区二区三| 欧美疯狂做受xxxx高潮小说| 久久精品国产乱子伦多人| 久久国产亚洲精品一区二区三区| 亚洲精品国偷拍自产在线观看| 欧美国产小视频| 91成人自拍视频网站| 久久久精品中文字幕麻豆发布| 久无码久无码av无码| 国产极品美女到高潮视频 | 亚洲精品一区二区三区麻豆|