基于FPGA的總線橋接在特種計算機中的應用
摘 要:
摘 要:本文針對特種計算機的多接口、微型化特點,以FPGA為核心將總線橋接技術應用于特種計算機設計中,不僅完成計算機電源控制功能,而且以一顆主芯片實現(xiàn)多接口的傳輸應用,節(jié)約PCB布局面積,節(jié)省整機空間。該應用包含以太網(wǎng)、UART、USB以及CAN總線等多種接口,設計靈活、穩(wěn)定性高。
關鍵詞:
關鍵詞:特種計算機 FPGA 總線橋接 電源控制
近年來,特種計算機的特點逐漸朝著抗惡劣環(huán)境、高性能、高可靠、多接口、微型化趨勢發(fā)展。其中,計算機多接口特點的實現(xiàn)通常采用多個專用芯片來完成板載設計以及使用多個專用擴展卡來完成擴展設計,該種設計不僅與微型化相矛盾而且會產(chǎn)生整機內(nèi)部空間擁擠、制作工序復雜、穩(wěn)定性低等缺點。
本文針對特種計算機的多接口、微型化特點提出基于FPGA的總線橋接在特種計算機中的應用,即使用FPGA設計總線橋接技術來替代傳統(tǒng)的接口轉(zhuǎn)接芯片或多擴展卡來完成多接口設計,同時將計算機上電管理模塊集成在FPGA內(nèi)部實現(xiàn),該應用對于板載接口可以節(jié)約PCB布局面積,對于擴展設計則能節(jié)省設備空間布局,能夠在保證穩(wěn)定性的基礎上實現(xiàn)計算機的多接口、微型化特點。
1 FPGA概述
FPGA,即現(xiàn)場可編程門陣列(Field Programmable GateArrays),是一種可編程使用的數(shù)字邏輯器件,用戶以根據(jù)自身需求改變其配置信息來實現(xiàn)相應的設計功能,來滿足系統(tǒng)設計需求。FPGA器件在可編程、集成度、性能和可靠性上都比傳統(tǒng)數(shù)字電路要優(yōu)越。通過編程設計來完成器件內(nèi)部邏輯功能配置,既能減少電路設計工作量又可以將電路設計中的信號質(zhì)量、空間布局等都集成在芯片內(nèi)部,在保證效果的同時提高工作效率,增加靈活性[1]。目前,F(xiàn)PGA在市場中已經(jīng)越來越多的被使用在數(shù)字系統(tǒng)設計中,且該技術可以將半導體發(fā)展過程中低功耗、高頻率、低成本等特點完全體現(xiàn)。未來,F(xiàn)PGA的特點將集中表現(xiàn)為高規(guī)模、高集成度、高性能、低價格。
當前主流FPGA芯片提供商為Xilinx、Altera、Lattice、Actel、Atmel等,前兩者市場占有率在60%以上,而ACTEL主要涉及軍品和宇航級市場。本文采用Xilinx品牌系列產(chǎn)品,將FPGA芯片的高集成度、高性能等特點使用在計算機接口擴展應用上,既能保證接口數(shù)量和性能,又能節(jié)省設備結(jié)構空間布局,同時具有設計靈活等顯著特點。
2 FPGA總線橋接在特種計算機中的應用
在特種計算機設計中因客戶的特殊應用環(huán)境不同,決定了特種計算機的多接口特點,在面向主流應用中,采用專用芯片來實現(xiàn)多接口的方式價格昂貴、占用PCB面積大,設計不靈活,本文涉及應用以FPGA邏輯橋接為核心,使用模塊化設計方案,以FPGA+接口芯片的方式實現(xiàn)不同接口的通信。在FPGA部分,包括外部接口單元、PCIE接口單元、邏輯橋接單元以及計算機電源管理單元,四個邏輯單元均集成在FPGA內(nèi)部,對于計算機系統(tǒng),F(xiàn)PGA芯片以DMA模式掛接在PCIE總線下,其為PCIE橋設備。電源管理單元將計算機電源時序控制以及系統(tǒng)部分信號控制集成在FPGA內(nèi)部,該單元與接口通信為相互獨立功能單元。如圖1為整個系統(tǒng)結(jié)構框圖。
圖1 FPGA總線橋接應用示意圖
2.1 邏輯橋接單元(見圖2)
在該部分主要以邏輯控制為核心,在數(shù)據(jù)通信中,F(xiàn)PGA內(nèi)部設計局部總線實現(xiàn)PCI-E到各接口的邏輯橋接,每一個接口模塊都掛接在該局部總線上,邏輯橋接模塊通過地址線、數(shù)據(jù)線、控制信號線(包括讀寫信號線和片選信號線)與各接口模塊通信,各個接口模塊的內(nèi)部分為頂層邏輯控制模塊和接口處理模塊。頂層控制模塊負責完成相應接口協(xié)議與局部總線協(xié)議的轉(zhuǎn)化,接口處理模塊負責完成FPGA與外部接口的數(shù)據(jù)傳輸。通過協(xié)議轉(zhuǎn)換以及局部總線橋接完成PCIE與各接口模塊的信號通信。
圖2 邏輯橋接單元
2.2 PCIE接口單元
PCIE接口單元為FPGA與計算機系統(tǒng)通信的通道,也是接口數(shù)據(jù)傳輸?shù)耐ǖ,該單元為由FPGA內(nèi)部PCIE硬核層和PCIE軟核(IP核)構成,通過例化硬核和編寫應用層邏輯,即可直接使用FPGA廠家提供的IP核實現(xiàn)PCIE端點(Endpoint)設備功能,利用系統(tǒng)PCIE 總線將設備和計算機系統(tǒng)進行鏈式 DMA 高速數(shù)據(jù)傳輸[2]。該過程主要完成PCIE協(xié)議的解析,在將解析后的信號數(shù)據(jù)通過邏輯控制模塊轉(zhuǎn)換協(xié)議后存放于局部總線緩沖器,待進一步與對應模塊通信完成PCIE—外部接口的邏輯橋接。外部接口至PCIE的數(shù)據(jù)通信與之相反,邏輯控制模塊從局部總線讀取數(shù)據(jù)并轉(zhuǎn)換協(xié)議后通過PCIE送至系統(tǒng)。該部分邏輯圖如圖3所示。
圖3 PCIE接口單元
2.3 外部接口單元
外部接口單元為實現(xiàn)特種計算機多接口功能的具體實現(xiàn)單元,該部分可以根據(jù)客戶定制需求來選擇不同的設計內(nèi)容,對相應設計進行邏輯編程即可實現(xiàn)特殊接口定制功能。本文提出的應用包括以太網(wǎng)接口、UART接口、USB接口以及CAN總線接口。
2.3.1 以太網(wǎng)接口
傳統(tǒng)的以太網(wǎng)接口通過以太網(wǎng)控制器外接一個PHY芯片來完成主機與外部通信(如圖4)。對于使用FPGA的通信方式通常有兩種,一個使用只含有物理層(PHY)的控制器,則需要在FPGA內(nèi)部來實現(xiàn)MAC功能,另一個是自帶物理層(PHY)處理接口和媒體控制層(MAC)處理接口,此種使用FPGA只關心數(shù)據(jù)協(xié)議的處理。本文太網(wǎng)鏈接通過外接帶PHY和MAC層的以太網(wǎng)接口芯片DM9000實現(xiàn),故只需在FPGA內(nèi)部實現(xiàn)協(xié)議應用層,通過邏輯控制以及協(xié)議轉(zhuǎn)換經(jīng)局部總線即可完成與PCIE的鏈路橋接
(如圖5)。
圖4 傳統(tǒng)以太網(wǎng)接口圖5 DM9000應用接口
2.3.2 UART通信接口
該通信接口模塊包括數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、波特率發(fā)生器、頂層邏輯控制部分[3],頂層邏輯控制部分負責與局部總線通信以完成數(shù)據(jù)發(fā)送和接受,進而實現(xiàn)上層通信;在下層通信中,通過FPGA內(nèi)部邏輯控制功能的改寫以及外部鏈接不同的TTL電平轉(zhuǎn)換芯片即可完成如RS232和RS485的對外通信。圖6為UART接口框圖。
圖6 UART接口通信
2.3.3 USB接口
USB接口部分采用FPGA外掛CY7C68013接口芯片的方式實現(xiàn),該芯片集成了USB2.0協(xié)議,可以直接完成USB2.0協(xié)議的解析[4]。如圖7,F(xiàn)PGA作為核心對該接口芯片進行控制,接口芯片以異步方式運行于從模式,其與FPGA的數(shù)據(jù)連線采用16位。數(shù)據(jù)收:USB總線控制器接收自USB設備的數(shù)據(jù),將其解析后并行輸入至FPGA,F(xiàn)PGA內(nèi)部邏輯控制模塊將數(shù)據(jù)經(jīng)過內(nèi)部格式的轉(zhuǎn)換后,將數(shù)據(jù)傳至在FPGA局部總線的緩存器中,最后傳輸至計算機系統(tǒng)。數(shù)據(jù)發(fā)與收路徑相反。在通信中FPGA將PCIE通道信號與UBS信號通道,進行邏輯控制,進行數(shù)據(jù)及時序轉(zhuǎn)換,通過局部總線來完成通信信道的鏈接。
圖7 USB接口通信
2.3.4 CAN總線接口
CAN 總線是現(xiàn)場總線的一種,因為其成本低、容錯能力強、支持分布式控制、通信速率高等優(yōu)點在汽車、工業(yè)控制、航天等領域得到廣泛應用[5]。實現(xiàn)CAN總線與計算機雙向通信接口的核心是FPGA及CAN控制器。FPGA對CAN控制器控制程序包括初始化、讀數(shù)據(jù)、寫數(shù)據(jù)等部分。如圖8所示為CAN總線接口框圖。其中,數(shù)據(jù)接收模式:CAN總線控制器接收自CAN總線的數(shù)據(jù),將其并行輸入至FPGA,F(xiàn)PGA內(nèi)部邏輯控制模塊將數(shù)據(jù)經(jīng)過內(nèi)部格式的轉(zhuǎn)換后,將數(shù)據(jù)傳至FPGA局部總線的緩存器中,最后傳輸至計算機系統(tǒng)。數(shù)據(jù)發(fā)送模式與收路徑相反。CAN控制器采用SJA1000,收發(fā)器采用PCA82C250。
圖8 CAN總線接口通信
2.4 電源管理單元
電源管理單元為FPGA內(nèi)部與邏輯接口單元相獨立的部分,其為了實現(xiàn)整機的微型化特點,,將電源管理部分集成至FPGA內(nèi)部,通過邏輯控制不同電源芯片的使能來實現(xiàn)對計算機時序的控制,同時增加對關鍵器件的復位、初始化控制,實現(xiàn)整個機器的時序邏輯控制。其實現(xiàn)如圖9所示。
圖9 計算機電源管理單元
3 FPGA的實現(xiàn)
本文編號:14549
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/14549.html