基于FPGA狀態機和片上總線的CompactPCI異步串口板設計方案
3 試驗數據分析
本文引用地址:http://www.j9360.com/article/248894.htm在聯機試驗中,測試平臺先后使用了由TMS320C6416 DSP處理器和XC3S2000 FPGA狀態機作處理單元的異步串口板,分組測試了相同波特率的通道,及全部通道,通訊周期200ms,每通道間隔5ms。試驗重點考察應答延遲時間,其由兩部分組成,分別是固有延遲和處理延遲。其中固有延遲由為濾波設置的1ms濾波延遲和為判斷接收幀結束而設置的半位延遲組成,半位延遲與波特率成反比。處理延遲由處理單元訪問總線端口、數據處理和實現通訊協議所耗時間組成,實測應答延遲時間統計如表1所示。
從統計表得出如下結論。
(1)無論采用何種處理單元,處理延遲與波特率和通訊數據量無關。因為上位機已將數據寫入各通道的數據發送子區,依據接收幀命令參數,DSP處理器和FPGA狀態機只需進行簡單邏輯和算法運算即可獲得發送數據幀,對于4-115.2kbps之間的波特率和12字節的數據量,有充分時間裕量,不會出現處理瓶頸。
(2)TMS320C6416 DSP處理器作處理單元時,處理延遲及其變化范圍較大,而且通道數越多,處理延遲及其變化范圍越大,反之則越小。因為DSP處理器I/O端口數量有限,當串口通道數量較多時,DSP處理器要通過片上總線訪問異步收發器、SDRAM,和相當數量的輸入/輸出端口,以便和上位機、FPGA交換數據和信號。為了及時傳輸這些信號,DSP處理器還需要以一定的頻率巡檢這些信號。另外DSP處理器所有處理過程都是順序執行的,處理時間與程序語句數量成正比關系。
(3)XC3S2000 FPGA狀態機作處理單元時,處理延遲及其變化范圍很小,而且與通道數量無關。因為FPGA集成片上系統后,其狀態機與其它片上邏輯之間的信號傳輸通過片內布線完成,而布線資源幾乎不受限,不僅簡化了處理單元的處理任務,而且保證了信號的實時傳輸,不必巡檢端口。另外FPGA狀態機不僅能夠通過狀態轉移完成時序功能,而且能夠通過并行處理完成算法功能,所以全部處理時間基本由訪問總線端口的程序語句數量決定,與算法和通道數量幾乎無關。
(4) FPGA狀態機對外部總線或端口的訪問管理性能大幅超越了TMS320C6416 DSP處理器,片上邏輯之間的信號實時傳輸能力也大幅超越了后者。而高性能DSP處理器僅在內存中運行程序時速度快,但在管理外部總線存儲器或端口時,其優勢無法發揮。
4 建議
建議同行在研制“具有高時序性能的、多外設接口的、功能單一的設備”時,參考上述基于FPGA狀態機和片上總線的設計方案。
參考文獻:
[1]詹必勝,吳斌方,楊光友.多路同步串口的FPGA傳輸實現[J].電子產品世界,2009(5):38-40
[2]Xilinx, Inc. Spartan-3 FPGA Family: Complete Datasheet[M].2004
[3]Opencores.WISHBONE System-on-Chip (SoC) Interconnection Architecture for Portable IP Cores[M].Revision:B.3.2002
[4]Gorban J.UART IP Core[M].Revision: 0.6.2002
[5]孫進平,王俊,李偉,等.DSP/FPGA嵌入式實時處理技術及應用[M].北京:航空航天大學出版社,2011
fpga相關文章:fpga是什么
評論