專利名稱::一種對設備內fpga芯片統一配置和管理的系統的制作方法
技術領域:
:本實用新型涉及嵌入式系統
技術領域:
,具體涉及一種對設備內FPGA芯片統一配置和管理的系統。
背景技術:
:現代的超聲多普勒診斷儀越來越多的使用FPGA(FieldProgrammableGateArray,現場可編程邏輯門陣列),通常要使用超過一片的FPGA芯片。但是基于SRAM(StaticRAM,靜態隨機存儲器)工藝的FPGA芯片在每次上電后需要進行配置,通常情況下FPGA芯片的配置文件由一片外部專用的EPROM來加載。這種傳統配置方式是在FPGA芯片的功能相對穩定的情況下采用的。在系統設計要求配置速度高、容量大、維修以及遠程升級時,這種方法就顯得很不實際也不方便。在FPGA芯片正常工作時,配置數據存儲在SRAM單元中,這個SRAM單元也被稱為配置存儲(ConfigurationRAM)。由于SRAM是易失性的存儲器,因此,FPGA芯片在上電之后,外部電路需要將配置數據重新載入到片內的配置RAM中。在芯片配置完成后,內部的寄存器以及I/0管腳必須進行初始化。等初始化完成以后,芯片才會按照用戶設計的功能正常工作。目前有兩種方案可以實現,一種是使用專用的PROM,這些專用的PROM內部集成控制電路,能夠提供FPGA芯片的配置時序,只要將PROM和FPGA芯片的專用引腳相連,上電時就能夠自動加載PROM中的配置數據到FPGA芯片的SRAM中;另一種是在含有微處理器的系統中采用其他非易失性存儲器如E2PROM、Flash存儲配置數據,微處理器模擬FPGA芯片的配置時序將ROM中的數據置入FPGA芯片。與第一種方案相比,該方案節省成本、縮小系統體積。適用于對成本和體積苛刻要求的系統。但是對于多普勒超聲診斷設備,一臺設備上有多個的FPGA芯片,并分布于不同的單板上。按照上述的方案,必須每個FPGA芯片都配套一片PROM,會增加成本,并且維修升級都不方便,必須將PROM從單板上取下,在專用的設備上將FPGA芯片的配置數據寫入PROM,再焊接到單板上。第二種方案要求單板上必須由含有微處理器,如果沒有微處理器,就必需在單板上增加一個微處理器,增加成本。^Ka,微處理器的運行速度一般比較慢,配置一片FPGA芯片需要比較長的時間,FPGA芯片的配置數據越大,需要的時間越長。由于微處理器無法進行并行操作,如果單板上的微處理器需要配置多個FPGA芯片,就必須逐一配置FPGA芯片,這樣需要等待的時間就更長。并且對于多普勒超聲診斷設備,也必須對所有的FPGA芯片的配置數據進行管理,目前的方案都是針對單片FPGA芯片的配置數據或者單板上所有FPGA芯片的配置數據的管理,無法對一臺設備內所有的FPGA芯片的配置數據進行統一的、集成的管理。因此對于多普勒超聲診斷設備,如何使用一種低成本、簡單有效的方案對整機的FPGA芯片的配置數據進行有效的配置和管理配置FPGA芯片、存取數據、升級數據,就擺在業內人士的面前。
實用新型內容本實用新型要解決的技術問題是提供一種對設備內FPGA芯片統一配置和管理的系統及方法,克服現有技術只能對單一的FPGA芯片進行配置,配置效率低下的缺陷。本實用新型為解決上述技術問題所采用的技術方案為-一種對設備內FPGA芯片統一配置和管理的系統,包括配置和管理邏輯組件和至少一個現場可編程邏輯門陣列FPGA,所述配置和管理邏輯組件與所述現場可編程邏輯門陣列FPGA相連,所述配置和管理邏輯組件包括微處理器、非易失性存儲器、復雜可編程邏輯器件CPLD,所述微處理器、所述非易失性存儲器和所述復雜可編程邏輯器件CPLD相互連接,所述復雜可編程邏輯器件CPLD與所述現場可編程邏輯門陣列FPGA連接,所述配置和管理邏輯組件用于按照串行方式或并行方式配置指定的一片或多片所述現場可編程邏輯門陣列FPGA。所述的對設備內FPGA芯片統一配置和管理的系統,其中所述配置和管理邏輯組件對所述現場可編程邏輯門陣列FPGA的配置數據進行讀取、更新或升級。.所述的對設備內FPGA芯片統一配置和管理的系統,其中所述微處理器設置通訊接口,通過所述通訊接口與上位機進行通訊。所述的對設備內FPGA芯片統一配置和管理的系統,其中所述微處理器對所述非易失性存儲器的內容進行讀寫或修改。所述的對設備內FPGA芯片統一配置和管理的系統,其中所述微處理器向所述復雜可編程邏輯器件CPLD發送命令并讀取所述復雜可編程邏輯器件CPLD的狀態值。所述的對設備內FPGA芯片統一配置和管理的系統,其中所述非易失性存儲器存儲所述現場可編程邏輯門陣列FGPA的配置數據和相關信息。所述的對設備內FPGA芯片統一配置和管理的系統,其中所述復雜可編程邏輯器件CPLD根據所述非易失性存儲器存儲的有關所述現場可編程邏輯門陣列FPGA的配置信息,讀取所述非易失性存儲器的數據并配置所述現場可編程邏輯門陣列FPGA。所述的對設備內FPGA芯片統一配置和管理的系統,其中所述復雜可編程邏輯器件CPLD向所述微處理器返回所述現場可編程邏輯門陣列FPGA的配置結果。所述的對設備內FPGA芯片統一配置和管理的系統,其中所述非易失性存儲器設為Flash存儲器或EEPROM存儲器。所述的對設備內FPGA芯片統一配置和管理的系統,其中所述通訊接口設為USB接口。本實用新型的有益效果本實用新型對設備內FPGA芯片統一配置和管理的系統實現了對一臺設備內FPGA芯片的統一配置和管理,大大提高了對設備內FPGA芯片的配置效率,從而提高了設備使用和維護時的效率。本實用新型包括如下附圖圖1為本實用新型為對設備內FPGA芯片統一配置和管理的系統示意圖2為本實用新型實施例Flash區域劃分示意圖3為本實用新型實施例CPLD內部組成示意圖4為本實用新型實施例SPI接口示意圖5為本實用新型實施例CPLD命令分析模塊狀態機;圖6為本實用新型實施例CPLD三態緩沖器示意圖7為本實用新型實施例CPLDFlash讀取模塊示意圖;圖8為本實用新型實施例CPLD內部總線仲裁模塊狀態機;圖9為本實用新型實施例CPLDFPGA配置模塊示意圖;圖10為本實用新型實施例CPLDFPGA并行配置模塊狀態機;圖11為本實用新型實施例CPLDFPGA串行配置模塊狀態機;圖12為本實用新型實施例CPLDFPGA校驗模塊狀態機;圖13為本實用新型實施例配置和管理邏輯組件示意圖;圖14為本實用新型實施例微處理器操作流程圖。具體實施方式下面根據附圖和實施例對本實用新型作進一步詳細說明如圖1所示,本實用新型對設備內FPGA芯片統一配置和管理的系統,包括配置和管理邏輯組件和至少一個現場可編程邏輯門陣列FPGA,配置和管理邏輯組件與現場可編程邏輯門陣列FPGA相連,配置和管理邏輯組件包括微處理器、非易失性存儲器、復雜可編程邏輯器件CPLD,微處理器、非易失性存儲器和復雜可編程邏輯器件CPLD相互連接,復雜可編程邏輯器件CPLD與現場可編程邏輯門陣列FPGA連接,配置和管理邏輯組件用于按照串行方式或并行方式配置指定的一片或多片現場可編程邏輯門陣列FPGA。配置和管理邏輯組件對現場可編程邏輯門陣列FPGA的配置數據進行讀取、更新或升級。微處理器設置通訊接口,通過通訊接口與上位機進行通訊。微處理器對非易失性存儲器的內容進行讀寫或修改。微處理器向復雜可編程邏輯器件CPLD發送命令并讀取復雜可編程邏輯器件CPLD的狀態值。非易失性存儲器存儲現場可編程邏輯門陣列FGPA的配置數據和相關信息。復雜可編程邏輯器件CPLD根據非易失性存儲器存儲的有關現場可編程邏輯門陣列FPGA的配置信息,讀取非易失性存儲器的數據配置現場可編程邏輯門陣列FPGA。復雜可編程邏輯器件CPLD向微處理器返回現場可編程邏輯門陣列FPGA的配置結果。非易失性存儲器設為Flash存儲器或EEPROM存儲器。通訊接口設為USB接口。具體實施方式Flash如圖2所示,Flash是用于存儲FPGA芯片的配置信息以及FPGA芯片的配置數據。因此我們將Flash的存儲空間分成兩個區域,其中一個區域用于存放FPGA芯片的配置信息,稱為信息區;另一個區域用于存放FPGA芯片的配置數據,稱為數據區。信息區的開始部分存放的是配置標志位,用于指示CPLD是否需要等待微處理器的命令才開始進行FPGA芯片的配置。如果配置標志位=0xAA,則CPLD無需等待微處理器的配置命令,只要獲得Flash的總線控制權,就可以開始FPGA芯片的配置;如果配置標志位^0x55,CPLD必須等待微處理器的配置命令,才可以開始FPGA芯片的配置;如果配置標志位為上述兩個值之外的其他值,則CPLD不進行任何的FPGA芯片配置活動,并向微處理器返回一個錯誤狀態。如表1所示。這樣,如果我們需要FPGA芯片盡快地被配置完成,我們就可以通過微處理器將配置標志位設置為OxAA。而如果我們有其他的需要而不希望CPLD自動配置FPGA芯片,希望使用命令一個一個的配置FPGA芯片,則可以通過微處理器將配置標志位設置為0x55。表l配置標志位說明備注0x55FPGA芯片的配置受微處理器命令的控制微處理器發送配置命令,CPLD取得Flash的控制權后才開始配置FPGA芯片CPLD自動配置CPLD取得Flash的控制權即9<table>tableseeoriginaldocumentpage10</column></row><table>接下來的信息區存放的是FPGA數目,表示系統中連接到配置模塊的FPGA的數量。0表示系統中沒有任何的FPGA連接到配置模塊,1表示系統中有1片FPGA連接到配置模塊,以此類推。本配置模塊能連接的FPGA數量受Flash的容量、CPLD的引腳數量的限制。例如,在本配置模塊的一個應用實例上,連接的FPGA是8片。接下來的是存放FPGA配置數據的相關信息的FPGA配置數據信息,通過這個信息,CPLD可以得到連接在CPLD某一個配置通道上的FI>GA代號、FPGA的配置順序、以及FPGA的配置數據的存放區域、校驗值。其中,FPGA配置次序是用于指示FPGA的配置順序。如表2所示,根據不同的配置等級,即可CPLD即可得到FPGA的配置順序。如果有多個FPGA具有相同的配置等級,則表示這些FPGA需要并行配置。<table>tableseeoriginaldocumentpage10</column></row><table>FPGA代碼表示的是系統中使用的FPGA的代號。主要是基于這樣的考慮,在多普勒超聲診斷設備中,有可能需要多片FPGA使用同一個的配置數據,使用FPGA的代號可以進行簡單的校驗不同型號的FPGA不能使用同一個配置數據,相同型號的FPGA才可以使用同一個配置數據。如表3所示,表示的是在本配置模塊的一個應用實例上,連接的8片FPGA的代號。其中XC3S1400A有2片、XC3S1600E有4片。這些相同的FPGA就可以使用同一個配置數據。表3<table>tableseeoriginaldocumentpage11</column></row><table>FPGA配置數據起始地址和FPGA配置數據長度存放的是FPGA配置數據的起始地址和大小。通過這兩個信息段,CPLD可以從指定區域讀出指定長度的配置數據,從而對FPGA進行配置。FPGA配置數據校驗值是保存FPGA配置數據的校驗值,這個主要是為了防止存取過程中出現錯誤,導致配置完成后的FPGA的工作狀態不是我們所預期的。CPLD在從Flash的數據區讀取FPGA配置數據時,同時按照一定的校驗算法進行計算,直到FPGA配置數據起始地址和FPGA配置數據長度指定的區域的FPGA配置數據被讀取完成,此時校驗算法也完成,將得到的校驗結果與FPGA配置數據校驗值比較,表示FPGA配置數據存取過程中沒有失誤。如果兩個值不相等,表示有失誤,CPLD必須向微處理器返回一個錯誤狀態。根據開發難度和CPLD的容量,校驗算法可以使用任何成熟的校驗算法,本配置模塊的一個應用實例上使用的是CRC-16(CyclicRedundancyCheck,循環冗余校驗)校驗算法。Flash的數據區就用于存放FPGA配置數據,一般的根據CPLD的配置通道順序存放。只要將FPGA配置數據的起始地址和大小正確的反應到FPGA配置數據起始地址和FPGA配置數據長度即可。CPLD如圖3所示,CPLD包括串行接口、命令分析模塊、三態緩沖器、Flash讀取模塊、內部中線仲裁模塊、FPGA配置模塊等。Flash采用8M字節,16位寬度的芯片;串行接口采用SPI(SerialPeripheralsInterface,串行外設接口);對上述8片FPGA進行配置,其中7片采用SlaveSerial配置方式,另一片采用SdectMAP配置方式。'串行接口模塊用于CPLD與微處理器之間的通訊,兩者之間沒有很多的數據需要傳送,因此采用引線較少的串行接口是比較合適的。本實施例中采用SPI接口,其中CPLD屬于從器件,微處理器屬于主器件,所有的操作均由主器件引起。SPI接口只需4根信號線:LE弁為片選信號,當其有效電平為低電平,表示從器件被選中;CLK是由主器件發送給從器件的時鐘信號,用于同步主從器件的工作時序;MOSI是數據傳輸線,由主器件輸出,從器件輸入;MISO也是數據傳輸線,由從器件輸出,主器件輸入。SPI接口如圖4所示。當LE弁有效時,三個三態門打開,CLK、MOSI、MISO也可以輸入。在CLK的推動下,MOSI的數據進入接收移位寄存器,發送移位寄存器的數據出現在MISO。當一個字節的數據發送接收完成之后,通過接收狀態和發送狀態產生RxIFG和TxIFG到命令分析模塊,由這個模塊讀取接收緩沖寄存器的數據和寫數據到發送緩沖寄存器。如圖5所示,命令分析模塊分析微處理器發送過來的命令和數據,并執行相應的動作,以及從Flash中讀取信息區的數據并執行相應動作。這個模塊比較復雜,采用狀態機實現,其中虛線框部分,適用于CPLD自動從Flash中讀取數據,并根據Flash信息區的信息自動配置FPGA。.當本配置裝置上電幵始工作時,需要檢測EN^信號是否有效,EN#信號是微處理器發送給CPLD的,是用于指示CPLD是否可以使用Flash的總線。在命令分析模塊里只需要檢測一次EN^是否有效即可。如果EN弁無效,則等待。如果ENS有效,則通過Flash讀取模塊從Flash讀取配置標志位,并判斷。如果配置標志位-0x55,表示需要等待微處理器的命令才進行FPGA的配置,此時狀態機進入空閑狀態,等待微處理器的命令。如果配置標志位-Oxaa,表示CPLD根據Flash的信息自動進行FPGA的配置,則再次從Flash中讀取FPGA數目。如果FPGA數目=0表示沒有FPGA需要進行配置,此時狀態機進入空閑狀態,等待微處理器的命令。如果FPGA數目>0,表示有FPGA需要配置,則狀態機將讀取的次數設置為FPGA數目。接著從Flash讀取FPGA配置數據信息并寫入對應FPGA配置模塊;如果沒有達到預設的次數,則繼續讀取下一個FPGA配置數據信息;如果達到預設的次數,則啟動配置,之后進入空閑狀態,等待微處理器的命令。具體的配置事務將交給FPGA配置模塊完成。當狀態機處于空閑狀態,等待微處理器的命令時,如果串行接口的R^IFG有效,則從串行接口的接收緩沖寄存器讀取微處理器的命令,并進入命令分析[表4是一個實例的命令列表]。如果分析結果是該命令無效,則又返回空閑狀態;如果命令是配置,則進入配置FPGA狀態,從13命令中獲得配置的通道,并設置讀取次數為l;接著從Flash讀取FPGA配置數據信息并寫入對應FPGA配置模塊,然后啟動配置,最后進入空閑狀態。如果命令是獲取,則進入讀取狀態,從命令中讀取讀取的目標,然后等待串行接口的TxIFG有效,如果有效,則將數據寫入串行接口的發送緩沖寄存器,每發送一個字節都必須等待TxIFG有效,直到數據發送完成,最后進入空閑狀態。表4<table>tableseeoriginaldocumentpage14</column></row><table>說明命令都為一個字節,其中高兩位用于區別配置命令和獲取命令,低六位用于指示命令的對象。除上面列出的命令代碼之外的,都屬于無效命令。'如圖6所示,三態緩沖器用于CPLD與外部的Flash總線的相互隔離。因為微處理器、CPLD都連接到Flash,當微處理器、CPLD中的一個需要訪問Flash,另一個就必須把自己與Flash總線隔離,否則引起訪問錯誤。通過多個的三態門將CPLD內部總線和Flash總線隔離開,三態門的禁止和使能由微處理器的EN弁控制,如果EN弁有效,則三態門使能,CPLD內部總線和FlashBus直接相連,可以正常從Flash中讀取數據。如果EN弁無效,則三態門將CPLD內部總線和Flash總線隔開,禁止CPLD訪問Flash。如圖7所示,Flash讀取模塊從Flash中讀取數據。因為不同的Flash有不同的讀取時序特性,需要通過本模塊來實現對不同的Flash的兼容性。EN#(在CPLD內部成為CEN"從無效變成有效,將使RST信號發生器產生一個RST射言號,使Flash恢復到讀狀態。從內部總線仲裁模塊發過來兩組信號讀信號FRD存和地址FA0:22(FRD^和FA0:22是由命令分析模塊和FPGA配置模塊等在需要讀取flash數據時產生的,并通過內部總線仲裁模塊發送到Flash讀取模塊)。FRDW吏CE信號發生器、OE信號發生器產生CE^OE弁信號,同時CE弁使地址鎖存器輸出CA0:22信號到Flash,使Flash輸出指定地址的數據;而CE#、OE弁信號將使數據鎖存器鎖定這些數據,并寫入Fash讀取數據緩沖區,并發送OK弁信號到內部總線仲裁模塊,表明完成一次Flash讀操作,可以讀取結果。.如圖8所示,內部總線仲裁模塊用于總線仲裁,因為有多個模塊需要通過Flash讀取模塊來訪為Flash,為了防止多個模塊同時訪問Flash而互相干擾,需要一個根據模塊的優先級作一個排列,使訪問依次完成。有兩個并行的處理進程(并行處理是CPLD/FPGA等的特點),一個是用于將進程按照先后順序以及優先級將其他模塊發送的讀請求排列,另一個進程是用于將隊列里的讀請求取出,發送到Flash讀取模塊,并將數據讀回,發送給請求者。從CPLD上電后,本模塊進入空閑狀態,如果FRE^信號有效,則判斷是否有多個讀請求同時產生,如果不是,直接將本讀請求放入隊列的末尾,接著返回空閑狀態。如果是多個讀請求同時產生,則根據讀請求的優先級(表5),從優先級高到低排列,依次放入隊列中,接著返回空閑狀態。在空閑狀態時,如果隊列中有讀請求,則取出最前面的一個讀請求,并發送到Flash讀取模塊,讀取flash中的數據,等到OK弁有效時,就可以從Flash讀取數據緩沖區讀取數據發送給讀請求者。接著進入空閑狀態。如表5所示是實施例的優先級說明。將命令分析模塊設置為最高優先級,因為這是讀取命令的。將Virtex-5設置為次級優先級,因為這個FPGA很重要,需要盡快被配置完成。而其余的FPGA也都根據其重要性,設置了相應的優先級。表5<table>tableseeoriginaldocumentpage16</column></row><table>如圖9所示,FPGA配置模塊將Flash中的數據轉為FPGA可識別的格式并產生合適的配置信號,以及計算配置數據的校驗值。FPGA配置模塊由配置模塊和校驗模塊兩個模塊,以及起始地址寄存器、數據長度寄存器、校驗值寄存器、狀態寄存器四個寄存器組成。.其中,起始地址寄存器存放的是本配置通道上的FPGA的配置數據在Flash中的起始地址;數據長度寄存器存放的是本配置通道上的FPGA的配置數據有多少個字節;校驗值寄存器存放的是本配置通道上的FPGA的配置數據的校驗值;狀態寄存器用于存放本通道配置的結果。起始地址寄存器、數據長度寄存器、校驗值寄存器的內容是由命令分析模塊寫入的,狀態寄存器是在配置過程中,由配置模塊和校驗模塊寫入的,其各位代表的意義如表6所示。如果讀取的狀態數據的Bit7-l,表示正在配置FPGA,bit0-bit3的狀態不可信,因為還沒配置完成;Bit6-Bit3沒有使用,讀回總是0;Bit2-Bit0是表示配置過程的狀態,只有四位同時為1才表示配置是成功的,如果有不是1的狀態存在,都表示不成功。表6Bit0BitlBit2Bit3Bit4Bit5Bit6Bit70Init一B校驗DONE保留,保留,保留,保留,空閑狀態結果信號未使未使未使未使無效不匹無效用,總用,總用,總用,總酉己是o是o是0是o1Init—B校驗DONE正在狀態結果信號配置有效正常有效FPGA配置模塊是實際執行FPGA配置功能的模塊。在本實例上,由于使用了兩種配置方式-串行配置和并行配置,就需要兩種不同的配置模塊。如圖IO所示的是本實例的并行配置模塊,如圖ll所示的是本實例的串行配置模塊。采用并行配置,一次可以將16位的配置數據寫入17FPGA,配置速度快,對于大容量的FPGA來說,可以顯著的縮短時間。而串行配置方式每次只能寫一位數據,不適合大容量的FPGA,但是這種方法的引線顯然是很少的。并行配置模塊的一個實例如圖IO所示,CPLD上電后,進入空閑狀態,當命令分析模塊發過來一個啟動配置的命令后,則馬上將PROG—B、RDWR—B拉低,使FPGA進入待配置狀態,此時需要檢測Init一B引腳的狀態,以確定FPGA是否進入了待配置狀態,并根據Init—B的狀態設置狀態寄存器。如果FPGA已經進入待配置狀態,則根據起始地址寄存器、數據長度寄存器的值啟動一個Flash讀請求到內部總線仲裁模塊,并等待配置數據返回。數據返回之后,將數據寫入配置端口CfgD[0:15],并使CSI—B=0,同時令CRC—S=0,并將數據復制給校驗模塊,使數據校驗模塊繼續進行。之后,根據Busy的狀態,等待FPGA讀取配置端口CfgD[0:15]的數據。之后就可以令CSI—B=l,表明完成一次的FPGA配置數據的寫入。之后,根據數據長度寄存器的值判斷是否己經將所有的配置數據寫如FPGA,如果沒有,再發起一個Flash讀請求,進行一次的FPGA配置數據的寫入。這樣循環,直到所有配置數據都寫入FPGA,就檢測DONE的狀態,根據DONE的狀態,設置狀態寄存器。最后返回空閑狀態。串行配置模塊的一個實例如圖ll所示,與并行配置模塊差不多,差別是串行配置模塊必須將并行數據串行化,一位一位傳給FPGA,這個工作由移位寄存器完成。工作過程如下CPLD上電后,進入空閑狀態,當命令分析模塊發過來一個啟動配置的命令后,則馬上將PROGn拉低(n取值為1到7),使FPGA進入待配置狀態,此時需要檢測Initn引腳的狀態,以確定FPGA是否進入了待配置狀態,并根據Initn的狀態設置狀態寄存器。如果FPGA已經進入待配置狀態,則根據起始地址寄存器、數據長度寄存器的值啟動一個Flash讀請求到內部總線仲裁模塊,并等待配置數據返回。數據返回之后,將數據寫入移位寄存器,同時令CRC—S=0,并將數據復制給校驗模塊,使數據校驗模塊繼續進行。之后,從移位寄存器移一位數據到CfgDatan,并產生一個CfgCLKn信號給FPGA,由于一次只向FPGA寫一位數據,因此FPGA能夠及時響應,之后,判斷移位寄存器是否為空,如果不空,重復移位和CfgCLKn,直到移位寄存器為空。之后,根據數據長度寄存器的值判斷是否已經將所有的配置數據寫如FPGA,如果沒有,再發起一個Flash讀請求。這樣循環,直到所有配置數據都寫入FPGA,就檢測DONE的狀態,根據DONE的狀態,設置狀態寄存器。最后返回空閑狀態。如圖12所示,校驗模塊是用于校驗Flash中的FPGA配置數據的,以防止FPGA配置數據在存儲、讀取過程中發生意外的修改,導致FPGA不能正常工作。CPLD上電后,進入空閑狀態,當Init一B(或Initn)等于K則開始計算校驗值的進程,進入等待CRC—S=0的狀態,當CRC—S=0時,接受配置模塊發過來的數據,使用該數據計算校驗值,并在計算完成之后令CRC—S=l。之后判斷是否所有數據都計算完成,如果沒有,則進入等待CRC—S=0的狀態。如果已經計算完成,將計算結果與校驗值寄存器的值比較,根據結果設置狀態寄存器。這樣,完成一次配置數據的校驗。微處理器微處理器的連接如圖13所示,微處理器通過USB(UniversalSerialBus,通用串行總線)接口與上位機器實現通訊,實現與上位機實現數據、命令、狀態的通訊,這里的上位機一般使用帶USB接口的PC。另外,微處理器與CPLD之間的連接線主要有兩組,一組用于實現微處理器與ARM的通訊,如前所述的SPI接口的4根信號線和Busy、EN弁信號線,以實現向CPLD發送命令并從CPLD得到一些狀態值;另一組是配置連接線,用于微處理器配置CPLD的,包括CfgCLKc、CfgDatac、Progc、Initc、Donec等五根信號線,用以實現更新CPLD的配置數據,實現CPLD的升級。最后,微處理器通過三態緩沖器與Flash連接,以實現對Flash的內容進行寫、讀、修改,又可以與Flash的總線斷開,使得CPLD可以無障礙的訪問Flash。因此,微處理器的固件需要完成以下事務1、與上位機進行的USB通訊;2、對Flash的操作讀、寫、校驗;3、與CPLD的SPI命令處理模塊;4、配置CPLD的模塊其主程序流程圖如圖14所示。本領域技術人員不脫離本實用新型的實質和精神,可以有多種變形方案實現本實用新型,以上所述僅為本實用新型較佳可行的實施例而已,并非因此局限本實用新型的權利范圍,凡運用本實用新型說明書及附圖內容所作的等效結構變化,均包含于本實用新型的權利范圍之內。20權利要求1、一種對設備內FPGA芯片統一配置和管理的系統,其特征在于包括配置和管理邏輯組件和至少一個現場可編程邏輯門陣列FPGA,所述配置和管理邏輯組件與所述現場可編程邏輯門陣列FPGA相連,所述配置和管理邏輯組件包括微處理器、非易失性存儲器、復雜可編程邏輯器件CPLD,所述微處理器、所述非易失性存儲器和所述復雜可編程邏輯器件CPLD相互連接,所述復雜可編程邏輯器件CPLD與所述現場可編程邏輯門陣列FPGA連接,所述配置和管理邏輯組件用于按照串行方式或并行方式配置指定的一片或多片所述現場可編程邏輯門陣列FPGA。2、根據權利要求1所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述配置和管理邏輯組件對所述現場可編程邏輯門陣列FPGA的配置數據進行讀取、更新或升級。3、根據權利要求2所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述微處理器設置通訊接口,通過所述通訊接口與上位機進行通訊。4、根據權利要求3所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述微處理器對所述非易失性存儲器的內容進行讀寫或修改。5、根據權利要求4所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述微處理器向所述復雜可編程邏輯器件CPLD發送命令并讀取所述復雜可編程邏輯器件CPLD的狀態值。6、根據權利要求5所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述非易失性存儲器存儲所述現場可編程邏輯門陣列FGPA的配置數據和相關信息。7、根據權利要求6所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述復雜可編程邏輯器件CPLD根據所述非易失性存儲器存儲的有關所述現場可編程邏輯門陣列FPGA的配置信息,讀取所述非易失性存儲器的數據并配置所述現場可編程邏輯門陣列FPGA。8、根據權利要求7所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述復雜可編程邏輯器件CPLD向所述微處理器返回所述現場可編程邏輯門陣列FPGA的配置結果。9、根據權利要求8所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述非易失性存儲器設為Flash存儲器或EEPROM存儲器。10、根據權利要求9所述的對設備內FPGA芯片統一配置和管理的系統,其特征在于所述通訊接口設為USB接口。專利摘要本實用新型公開了一種對設備內FPGA芯片統一配置和管理的系統,包括配置和管理邏輯組件和至少一個現場可編程邏輯門陣列FPGA芯片,配置和管理邏輯組件與現場可編程邏輯門陣列FPGA相連,配置和管理邏輯組件包括微處理器、非易失性存儲器、復雜可編程邏輯器件CPLD,微處理器、非易失性存儲器和復雜可編程邏輯器件CPLD相互連接,復雜可編程邏輯器件CPLD與現場可編程邏輯門陣列FPGA連接,配置和管理邏輯組件用于按照串行方式或并行方式配置指定的一片或多片所述現場可編程邏輯門陣列FPGA。本實用新型對設備內FPGA芯片統一配置和管理的系統實現了對一臺設備內FPGA芯片的統一配置和管理,大大提高了對設備內FPGA芯片的配置效率,從而提高了設備使用和維護時的效率。文檔編號A61B8/00GK201353157SQ20082023576公開日2009年12月2日申請日期2008年12月30日優先權日2008年12月30日發明者海蘭,李春彬,蔣頌平,黃嘉熙申請人:深圳市藍韻實業有限公司