1746-ow16 Allen Bradley
為驗證這種方案的可行性和有效性,在船載自動識別系統(AIS)的設計中實現了該方案。相關的主要器件包括:CPU采用SAMSUNG公司的S3C44B0X;程序存儲器采用MACRONIX公司的MX29LV160ABTC;FPGA采用XILINX公司的XC2S200PQ208;以太網控制器采用REALTEK公司的RTL8019AS。上述器件均具有同類產品的一般特性,因而這一設計實例并不驗證的一般性。
2.2 配置文件的傳輸協議TFTP
[table][/table]
在方案的驗證實例中,使用基于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文件。值得注意的是,對于某一特定的芯片,無論設計簡單或是復雜,其配置的數據的長度是固定的,但配置文件大小卻因類型的不同而有所差異。