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