摘要: 一種基于嵌入式系統和Inlternet的FPGA動態配置方案。詳細介紹了該方案的設計思想,并給出了設計實例。與傳統的FPGA配置方案相比,該方案具有靈活、高效等突出優勢。該方案的可行性和實用性已在實際系統中得到驗證。
關鍵詞: 嵌入式系統 Internet FPGA TCP/IP TFTP
在現今的數字系統設計中,以“嵌入式微控制器+FPGA”為核心的體系結構因其強大的處理能力和靈活的工作方式而被廣泛采用。嵌入式微控制器的優勢在于將微處理器內核與豐富多樣的外圍接口設備緊密結合,在提供強大的運算、控制功能的同時,降低了系統成本和功耗,因而適合作為數字系統的控制核心;FPGA的優勢在于超高速、豐富的邏輯資源以及用戶可靈活配置的邏輯功能,適用于邏輯接口功能多種多樣、靈活可變的場合。將二者結合形成優勢互補,如有需要,再配以適當的專用芯片(例如音視頻編解碼器、數字調制解調器等)。這種體系結構適用于大多數復雜數字系統的設計。
如系統中包含可編程器件,就必須考慮其功能配置的問題。然而,傳統的FPGA配置方案(例如調試階段的專用下載電費方式、成品階段的專用存儲器方式)在成本、效率、靈活性等方面都存在著明顯的不足。針對這樣的實際問題,基于嵌入式微控制器與FPGA廣泛共存于復雜數字系統的背景,考慮到大量數字系統要求接入Internet的現狀,借鑒軟件無線電“一機多能”的思想,提出了一種基于嵌入式系統和Internet的FPGA動態配置方案。該方案的提出,旨在基于系統現有的、通用的軟硬件資源,盡可能地提高FPGA配置的效率和靈活性。實踐證明,該方案可行、實用,達到了設計目的。
1 FPGA配置的期基本問題及現有的解決方案
為輪述方便,將基于SRAM工藝的FPGA的配置流程用圖1所示的模型表示。從圖1中可以看到,FPGA的配置過程實質上是兩次數據的傳輸過程(分別由配置數據源到時序控制器和時序控制器到目標FPGA)。因此,將這兩次關鍵的數據傳輸作為FPGA配置的兩個基本問題,并在下文中針對不同的傳輸方式討論各自的優缺點,從而尋求合理的解決方案。
傳統的配置方式包括應用于調試階段的專用下載電費方式和應用于成員階段的專用 非易失性存儲器方式。在這兩種方式中,上文所提到的兩次數據傳輸完全由FPGA廠商所提供的軟硬件完成。這樣的解決方案確實方便了一般的FPGA用戶,因為他們不必花費精力關心配置的細節,但同時也不得不面對不少的缺陷:首先,專用下載電費和專用非易失性存儲器的成本非常高,雖然用戶可以根據FPGA廠商提供的原理圖自制下載電纜,但專用非易失性存儲器是肯定無法自制的,而且有些不支持ISP(在系統可編程)的器件不定期必須配以合適的編程器,進一步增加了開發的成本;第二,常見的專用下載電費都是使用計算機并口產生串行的配置信號,而以并口線作為傳輸媒介,注定其有效傳輸距離非常有限;第三,專用非易失性存儲器的配置方式決定了目標FPGA只能接收單一配置文件,即在系統運行過程中,FPGA不可能根據不同情況動態調整邏輯功能,這樣的設計無法滿足某些應用中對于系統靈活性的要求。
首先,專用下載電纜和專用非易失性存儲器的成本非常高,雖然用戶可以根據FPGA廠商提供的原理圖自制下載電費,但專用非易失性存儲器是肯定無法自制的,而且有些不支持ISP(在系統可編程)的器件還必須配以合適的編程器,進一步增加了開發的成本;第二,常見的專用下載電纜都是使用計算機并口產生串行的配置信號,而以并口線作為傳輸媒介,注定其有效傳輸距離信號,而以并口線作為傳輸媒介,注定其有效傳輸距離非常有限;第三,專用非易失性存儲器的配置方式決定了目標FPGA只能接收單一配置文件,即在系統運行過程中,FPGA不可能根據不同情況動態調整邏輯功能,這樣的設計無法滿足某些應用中對于系統靈活性的要求。
針對上述各種缺陷,有人提出了改進方案,例如在系統中存在微控制器的前提下,用通用異步串口RS232替代專用的配置電纜、用通用的非易失性存儲器替代專用的非易失性存儲器。這些改進方案在一定程度上彌補了傳統配置方案的不足,但也存在一些新的缺陷:通用異步串口的傳輸速率很有限,無法滿足目前一些新的缺陷:通用異步串口的傳輸速率很有限,無法滿足目前一些大規模FPGA的配置要求;傳輸距離雖有明顯提高,但仍然無法滿足某些用戶對于遠程、跨區域的測試、維護和更新的需要。
2 基于嵌入式微控制器和Internet的解決方案
2.1 方案綜述
本設計的目標是基于系統中已有的軟硬件資源,盡可能提高FPGA配置的效率和靈活性??紤]到相當多的復雜數字系統:(1)包含微控制器(具有多個通用I/O)及其程序存儲器; (2)具有接入Internet的能力(例如系統硬件中包含以太網接口,軟件中移植了TCP/IP協議),提出一種新的FPGA配置方案,如圖2所示。從圖2中可以看出,這種方案的實質是將Internet作為傳輸配置數據的媒體,并用嵌入式微控制器的程序存儲器存儲這些數據,從而完成第一節中提到的第一次數據傳輸;在嵌入式微控制器的通用I/O上實現FPGA配置時序,從而完成第二次數據傳輸。
為驗證這種方案的可行性和有效性,在船載自動識別系統(AIS)的設計中實現了該方案。相關的主要器件包括:CPU采用SAMSUNG公司的S3C44B0X;程序存儲器采用MACRONIX公司的MX29LV160ABTC;FPGA采用XILINX公司的XC2S200PQ208;以太網控制器采用REALTEK公司的RTL8019AS。上述器件均具有同類產品的一般特性,因而這一設計實例并不驗證的一般性。
2.2 配置文件的傳輸協議TFTP
在方案的驗證實例中,使用基于UDP的TFTP協議在以太網內傳輸配置文件,協議棧如圖3所示。由于UDP屬于不可靠的面向無連接的傳輸協議,因此在網絡結構復雜的廣域網上傳輸FPGA配置數據并不適合采用TFTP協議,而必須采用可靠的、基于TCP的應用層協議(例如FTP協議)。此處采用TFTP,完全是由于適應AIS的運行環境、簡化性能測試的考慮,而且在應用層實現了部分TCP的功能(例如偽連接、簡單的應答和重發、數據包排序等功能),可以保證數據傳輸的質量。
標準的TFTP(Trivial File Transfer Protocol)是一種基于UDP的、簡單的文件傳輸協議。TFTP的設計目標是簡單小巧且易于實現,因此遠不如采用多重并發TCP連接的FTP功能強大(例如TFTP不支持目錄列表和用戶權限驗證,而且傳輸效率比較低)。
TFTP的基本通信過程為:客戶端向服務器發出讀或寫請求;如果服務器接收讀寫請求,正式的數據傳輸開始,每段數據長度固定為512字節;長度小于512字節的數據段標志傳輸結束。此外,協議中還規定了超時、重發等異常處理機制。
在具體實現中,將TFTP服務器(待配置FPGA所在的目標系統)設計成具有三個狀態的狀態機,其邏輯狀態轉移圖如圖4所示。PC機一端直接使用DOS下的TFTP命令。
2.3 FPGA配置文件及配置流程
用微控制器的通用I/O實現FPGA配置必須準確掌握:(1)配置文件的格式;(2)配置信號的時序。
一般來說,FPGA開發軟件可以生成多種不同類型的配置文件,用戶可以根據不同的應用環境選用這些配置文件。本設計采用.bin文件。值得注意的是,對于某一特定的芯片,無論設計簡單或是復雜,其配置的數據的長度是固定的,但配置文件大小卻因類型的不同而有所差異。
常見的FPGA配置模式包括主動串行模式、被動串行模式、被動并行模式和邊界掃描模式等。為與常見的下載電費兼容并節約微控制器的I/O口線,本實現采用被動串行模式。圖5為配置子程序的流程圖。
基于微控制器和互聯網的配置方案在傳輸速率、傳輸距離上較其他方案均有明顯優勢,同時又符合軟件無線“一機多能”的設計思想,并能滿足某些用戶對于在線調試、更新和維護的需求。此外,必須看到,新方案在具備種種優勢的同時,對用戶設計的軟件提出了一定的要求。事實上,完全具備這些軟硬件條件(例如移植TCP/IP協議、使用嵌入式微控制器)符合現今數字系統設計的趨勢,設計該配置方案的初衷正是基于這種設計理念,具有相當的實用性。
評論
查看更多