摘要:首先簡要介紹了CompactPCI異步串口板的通常設計方法,并且提出了這些方法的不足之處,重點闡述了基于FPGA狀態機和片上總線的新設計方案,以及該方案的技術優勢,隨后公布了基于該方案的異步串口板達到的性能指標。通過比較有關應答延遲的試驗數據,提出了基于FPGA狀態機和基于DSP處理器的異步串口板卡存在明顯的處理速度差異問題,并基于兩種設計方案,解釋了形成差異的原因。最后提出了FPGA狀態機對外部總線存儲器或端口的訪問管理性能大幅超越了任何一款DSP處理器的觀點,并對同行提出了類似研發項目的設計建議。
引言
CompactPCI異步串口板安裝在工業計算機CompactPCI擴展槽內,可實現工業計算機與外圍多路設備串口之間的異步串行通訊。異步串口板有多種設計方案,不同的設計方案決定了板卡具有不同的通訊性能和可靠性。根據任務要求,某重要設備的測試平臺必須達到36路通道、11種通訊協議、波特率4/19.2/38.4/57.6/115.2(kbps)、小于1ms的處理時間、通訊模式可配置和高可靠性的試驗要求,因此測試平臺內異步串口板的設計方案要面向上述試驗要求而制定。
1 背景技術
1.1 現有技術
目前CompactPCI異步串口板一般采用以下兩類方法實現。
1.1.1 使用嵌入式處理器作數據處理單元
采用獨立的嵌入式處理器作為數據處理單元,異步串口單元要么使用嵌入式處理器自身的2到3個異步串口,要么使用連接到FPGA片內總線的通用異步收發器或異步收發邏輯,從而建立起一主多從式總線結構。
1.1.2 使用FPGA芯片集成收發邏輯和處理邏輯
采用FPGA芯片集成了若干獨立的異步串口通路,每個通路均有一對處理邏輯和收發邏輯,其中收發邏輯實現了一路串行數據的接受、發送和并串轉換,處理邏輯實現了一路串行數據的讀取、處理和存儲。
2 設計方案
2.1 設計思路
為便于性能比較,在采用第一類設計方案的總線式系統結構基礎上,分別用TMS320C6416 DSP處理器和FPGA狀態機作處理單元,實現了兩塊異步串口板(兩者系統結構、程序流程、通訊功能和軟硬件接口均相同)。每塊均在FPGA片上總線集成了36個UART軟核、1個雙口SDRAM接口邏輯、地址譯碼器、配置狀態寄存器區,以及串口接收濾波邏輯等,兩者不同之處在于FPGA狀態機作處理單元的串口板在FPGA上實現了一個完整的片上系統。下文重點介紹了后者的實現方法、性能指標,并對兩者的處理速度進行了比較和分析。
2.2 實現方法
2.2.1 板卡設計
基于FPGA狀態機和WISHBONE片上總線(圖中簡稱為WB總線)的36通路CompactPCI異步串口板系統架構如圖1所示。
(1)雙口SDRAM
采用IDT7132芯片作為數據緩沖區,容量2k×8bit,讀寫周期均為20ns。為了避免上位機正在更新某數據區,而與該數據區對應的異步串口要求發送該數據區的情況,在設計中將雙口SDRAM的存儲空間分為兩部分,即上位機可寫訪問的一級緩沖區和WB總線處理邏輯可寫訪問的二級緩沖區。對應36通路,一級和二級緩沖區均分成了72個子區,每路異步串口對應著一級緩沖區內的一對發送子區和接收子區,以及二級緩沖區內的一對發送子區和接收子區。上位機可讀寫一級發送子區,但只能讀一級接收子區;WB總線處理邏輯只能讀一級發送子區,可讀寫一級接收子區和二級所有子區。
(2)FPGA芯片
FPGA芯片為串口板核心器件,選用XC3S2000-4 FG456芯片,I/O口速度達到5ns。
①WB片內總線
即WISHBONE片內總線,是一種應用普遍的、具有靈活性的IP核互聯接口。
②異步收發器
異步收發器為IP軟核,來源于opencores開源組織,支持WISHBONE接口,與通用異步收發器兼容,每個可實現一路全雙工異步串口通訊。
③雙口SDRAM總線接口邏輯
片內有兩個獨立的雙口SDRAM總線接口邏輯,分別實現了雙口SDRAM與WISHBONE總線和LOCAL總線的邏輯連接。
④LOCAL總線寄存器區
為了方便上位機對各異步串口獨立靈活配置、全面監控工作狀態,必須設置可供上位機訪問的若干配置寄存器和狀態寄存器, 而且LOCAL總線寄存器區邏輯是上位機與片內WB總線處理邏輯之間的通訊橋梁。
⑤地址譯碼邏輯
片內有兩個獨立的地址譯碼邏輯,分別根據LOCAL總線地址和WISHBONE總線地址,片選總線從邏輯。
⑥串口接收濾波邏輯
片內36個獨立的串口接收濾波邏輯,每個對應一路異步收發器的接收端,可濾除正負跳變寬度小于1ms的毛刺,但會造成1ms的信號延遲。
⑦WB總線處理邏輯
即WISHBONE總線狀態機,實現了訪問WISHBONE總線、數據處理、數據存儲和各串口通訊協議的功能。主要任務是根據上位機設置的LOCAL總線配置寄存器區,設置各異步收發器的工作模式,接收串口數據,遵循通訊協議,發送串口數據,完成一級、二級緩沖區數據更新或復制,并將各串口通道的工作狀態標識到LOCAL總線狀態寄存器區,供上位機查詢。
2.2.2 處理流程
如果上位機請求更新一級緩沖區的某子區,上位機查詢“FPGA訪問雙口SDRAM一級緩沖區標志”,若為真,則等待;否則置位“上位機訪問雙口SDRAM一級緩沖區標志”,更新一級緩沖區的發送子區,完畢后復位“上位機訪問雙口SDRAM一級緩沖區標志”,產生“更新二級緩沖區的中斷請求”。WB總線處理邏輯響應該中斷,查詢“上位機訪問雙口SDRAM一級緩沖區標志”,若為真,則等待;否則置位“FPGA訪問雙口SDRAM一級緩沖區標志”,讀訪問一級緩沖區的相應發送子區,并存入二級緩沖區的相應發送子區,完畢后復位“FPGA訪問雙口SDRAM一級緩沖區標志”。在WB總線處理邏輯更新二級緩沖區期間,暫不響應異步串口交易中斷。
如果某異步收發器存在接收發送任務,即串口交易中斷請求存在,WB總線處理邏輯讀訪問該異步收發器的中斷狀態寄存器,如果是發送中斷,繼續發送下一字節,并退出,循環直至發送幀結束;如果是接收中斷,讀訪問接收數據寄存器,并將數據存入二級緩沖區對應接收子區。每接收一個字節后,延遲半位,未出現新的接收數據中斷,則認為已收到完整數據幀。隨后設置“二級緩沖區接收子區覆蓋一級緩沖區接收子區”中斷請求。如果上位機未訪問一級緩沖區,則WB總線處理邏輯響應上述中斷,執行二級至一級的某接收子區“數據復制”,任務結束后,清相應中斷;如果上位機正在訪問一級緩沖區,則等待時機再復制數據。
3 試驗數據分析
在聯機試驗中,測試平臺先后使用了由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
上一篇:60V、500mA、超小尺寸、高效率、同步降壓DC-DC轉換器
下一篇:一種為鋼筋混凝土檢測儀設計的遠程監控系統
推薦閱讀最新更新時間:2025-06-25 00:54
- L6565 過載或短路鎖定關斷的典型應用
- 使用 ON Semiconductor 的 KA7805E 的參考設計
- 具有開路檢測功能的 LT4256-3 正高壓熱插拔控制器的典型應用
- ADR420 超精密、低噪聲、5.00 Vout XFET 電壓基準作為可編程 DAC 基準的典型應用
- AM3GW-4815SZ 15V 3 瓦 DC/DC 轉換器的典型應用
- LTM8073EY 5Vout 從 7Vin 到 60Vin 降壓轉換器的典型應用電路
- NCP716MTTBGEVB,LDO 穩壓器,WDFN-6 封裝,超低靜態電流評估板
- LT1764AET-1.5 SCR 預穩壓器的典型應用可提供跨線路變化的效率
- 用于儀表的 12 位、32 通道 DAC
- 使用 IXYS 的 LTC3454EDD 的參考設計