《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于U盤和單片機(jī)的FPGA配置
基于U盤和單片機(jī)的FPGA配置
摘要: 以前的設(shè)計(jì)大多是將配置數(shù)據(jù)存放在FPGA組成的系統(tǒng)上,本文提出將配置數(shù)據(jù)存放在使用者自己攜帶的外部存儲器(如可加密的U盤)中。使用前將U盤接入FPGA組成的系統(tǒng),,系統(tǒng)上電時(shí)由單片機(jī)控制讀出配置數(shù)據(jù),,再傳送給FPGA進(jìn)行配置。這樣做優(yōu)點(diǎn)很多:修改,、升級簡便,,現(xiàn)場保密性強(qiáng),,安全性高,;可多人分時(shí)使用同一硬件系統(tǒng),,同一硬件系統(tǒng)插入不同的配置U盤就可以實(shí)現(xiàn)不同的功能,可以方便地存儲大容量配置數(shù)據(jù)或多個(gè)配置數(shù)據(jù)文件等,;同時(shí),,符合計(jì)算機(jī)和嵌入式系統(tǒng)的熱點(diǎn)USB OTG(On The Go,移動USB)技術(shù)趨勢,,是具有創(chuàng)新的設(shè)計(jì),。
關(guān)鍵詞: FPGA U盤 單片機(jī)
Abstract:
Key words :


引 言

         FPGA" target="_blank">FPGA廣泛應(yīng)用在電子通信領(lǐng)域,其安全性引起了注意,,本文針對安全配置提出了解決方案,。

  現(xiàn)場可編程門陣列FPGA(Field Programmablc Gate Array)是基于門陣列方式為用戶提供可編程資源的,其內(nèi)部邏輯結(jié)構(gòu)的形成是由配置數(shù)據(jù)決定的,。采用在線可重配置方式ICR(In-Circuit Reconfigurability)將這些配置數(shù)據(jù)配置到FPGA內(nèi)部SRAM中,,但由于SRAM的易失性,每次上電時(shí),,都必須對FPGA重新進(jìn)行配置,,從而實(shí)現(xiàn)用戶編程所要實(shí)現(xiàn)的功能。

  以前的設(shè)計(jì)大多是將配置數(shù)據(jù)存放在FPGA組成的系統(tǒng)上,,本文提出將配置數(shù)據(jù)存放在使用者自己攜帶的外部存儲器(如可加密的U盤)中,。使用前將U盤接入FPGA組成的系統(tǒng),系統(tǒng)上電時(shí)由單片機(jī)控制讀出配置數(shù)據(jù),,再傳送給FPGA進(jìn)行配置,。這樣做優(yōu)點(diǎn)很多:修改、升級簡便,,現(xiàn)場保密性強(qiáng),,安全性高;可多人分時(shí)使用同一硬件系統(tǒng),,同一硬件系統(tǒng)插入不同的配置U盤就可以實(shí)現(xiàn)不同的功能,,可以方便地存儲大容量配置數(shù)據(jù)或多個(gè)配置數(shù)據(jù)文件等;同時(shí),,符合計(jì)算機(jī)和嵌入式系統(tǒng)的熱點(diǎn)USB OTG(On The Go,,移動USB)技術(shù)趨勢,是具有創(chuàng)新的設(shè)計(jì),。

1  FPGA的配置方式和配置數(shù)據(jù)文件

1.1 FPGA的配置方式


  以Altera公司的FPGA器件為例,,有2類配置下載方式:主動配置和被動配置。主動配置方式是由FPGA器件主動引導(dǎo)配置操作,,從外圍專用配置芯片(如EPC4)中獲得配置數(shù)據(jù)的過程,;被動配置方式則是由外部計(jì)算機(jī)或控制器控制配置過程。

  以Mercury,、APEX 20K(2.5V),、ACEX 1K和FLEX10K系列FPGA為例,配置方式有:被動串行PS(PasiveSerial),、被動并行同步PPS(Passive Parallel Synchronous),、被動并行異步PPA(Passive Parallel Asyn-chronous)和JTAG(Jont Test Action Group)等。具體配置方式由方式選擇引腳MSEL1和MSELO的邏輯電平組合決定,。

  基于SRAM LUT(查找表)結(jié)構(gòu)的FPGA采用在線可重配置方式ICR,。以配置方式PS為例,可通過下載電纜南計(jì)算機(jī)直接對FPGA器件進(jìn)行配置,。這種方法在設(shè)計(jì)調(diào)試時(shí)非常方便,,但在現(xiàn)場應(yīng)用巾是很不現(xiàn)實(shí)的。上電后自動加載對FPGA器件進(jìn)行配置是實(shí)際必須的,,有許多方法,,例如專用配置芯片(如EPC4)配置、單片機(jī)控制配置,、MAX3000A控制F1ash存儲器配置,、PCI總線配置、Internet配置,、PSD(Programmable System Devices可編程器件)配置等,。

1.2 FPGA的配置數(shù)據(jù)文件

  Altera公司的Quartus II開發(fā)工具可以生成多種配置或編譯文件,用于不同配置方式,。對于不同的目標(biāo)器件,,編譯后開發(fā)工具會根據(jù)指定的FPGA器件自動生成“.sof(SRAM Object File)”和“.pof(Programmer ObjectFile)”配置文件。“.sof”配置文件是由下載電纜將其下載到FPGA中的,;“.pof”配置文件是存放在配置器件里的,。用單片機(jī)配置時(shí),要將“.sof”文件轉(zhuǎn)換成“.rbf(Raw BinaryFile)”文件,,可打開QuartusII的File菜單,,單擊ConvertProgramming Fiks進(jìn)行轉(zhuǎn)換。配置文件的大小隨FPGA器件的不同而不同,,例如EPFlOKlO的配置文件“.sof”和“.rbf”的大小為15KB,。

2 單片機(jī)配置FPGA設(shè)計(jì)

2.1 單片機(jī)配置FPGA的優(yōu)點(diǎn)


  在實(shí)際應(yīng)用中,單片機(jī)控制配置FPGA,,對于保密和升級,,以及實(shí)現(xiàn)多任務(wù)電路結(jié)構(gòu)重配置和降低配置成本,都是很好的選擇,。配置方式PS,、PPS和PPA均可以用單片機(jī)控制配置,。

  由單片機(jī)和外部存儲器組成配置FPGA電路,將配置數(shù)據(jù)寫入外部存儲器,,系統(tǒng)上電時(shí)再由單片機(jī)控制對FPGA進(jìn)行配置,。也可將多個(gè)配置文件分區(qū)存儲到外部存儲器中,然后由單片機(jī)接收不同的命令,,選擇讀取不同存儲區(qū)的數(shù)據(jù)配置到FPGA器件,,從而實(shí)現(xiàn)多任務(wù)電路結(jié)構(gòu)重配置,在線配置成多種不同的電路功能,;代替了價(jià)格昂貴的不可擦寫和可擦寫配置芯片,,降低了成本。

2.2 配置數(shù)據(jù)存儲在U盤

  在銀行等保密行業(yè),,如果要求安全和保密程度非常高,,那么一定要有權(quán)限的使用者才能使用,或由不同的用戶分時(shí)使用同一臺FPGA組成的系統(tǒng),。最好是不要將配置數(shù)據(jù)存放在FPGA組成的系統(tǒng)上,,而是將配置數(shù)據(jù)存放在使用者自己攜帶的外部存儲器(如U盤)中(對U盤的讀/寫還可以加密);使用前將存放配置數(shù)據(jù)的外部存儲器接入FPGA組成的系統(tǒng),,系統(tǒng)上電時(shí)冉由單片機(jī)控制對FPGA進(jìn)行配置就可以了,。

  1994年11月,以Intel為首的7家公司推出了通用串行總線USB(Universal serial Bus)協(xié)議規(guī)范的第一個(gè)草案,。USB協(xié)議從1.1過渡到2.0,,作為其最重要指標(biāo)的設(shè)備傳輸速度也從USBl.1標(biāo)準(zhǔn)的低速1.5 Mbps和全速12Mbps提高到USB2.0標(biāo)準(zhǔn)的高速480Mbps。目前,,USB設(shè)備已經(jīng)非常普遍,,USB接口以其速度快、功耗低,、支持即插即用,、使用安裝方便和價(jià)格低廉等優(yōu)點(diǎn)得到了廣泛應(yīng)用。USB OTG已經(jīng)成為嵌入式系統(tǒng)領(lǐng)域中的熱點(diǎn),,使得USB能應(yīng)用在沒有PC的領(lǐng)域中,,實(shí)現(xiàn)移動數(shù)據(jù)交換和存儲。本文提出將配置數(shù)據(jù)存儲在U盤中,,通過單片機(jī)控制讀/寫,,符合USB OTG發(fā)展趨勢,將在嵌入式和FPGA領(lǐng)域得到廣泛應(yīng)用,。

2.3 單片機(jī)讀取存儲在u盤中的配置數(shù)據(jù)

  通常USB設(shè)備終端必須與計(jì)算機(jī)連接,。如果沒有PC,則需要通過USB總線的通用接口芯片(當(dāng)然也可以利用帶USB接口的單片機(jī))控制U盤的讀/寫。本設(shè)計(jì)采用單片機(jī)AT89S52控制USB總線的通用接口芯片CH375來讀取存儲在U盤的配置數(shù)據(jù),。

  CH375是一個(gè)USB總線的通用接口芯片,,內(nèi)部集成了PLL倍頻器、主從USB接口SIE,、數(shù)據(jù)緩沖區(qū),、被動并行接口、異步串行接口,、命令解釋器,、控制傳輸?shù)膮f(xié)議處理器和通用的固件程序等,;支持USB-HOST主機(jī)方式和USB-DEVICE/SLAVE沒備方式,,可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上。外部單片機(jī)可以直接以扇區(qū)為基本單位讀/寫常用的USB存儲設(shè)備(包括USB硬盤,、USB閃存盤和U盤),。

  硬件設(shè)計(jì):CH375工作于并口方式,與普通的MCS-5l單片機(jī)的連接如圖1所示,。CH375的TXD引腳通過l kΩ左右的下拉電阻接地或者直接接地,,從而使CH375工作于并口方式。

  軟件設(shè)計(jì):①進(jìn)入U(xiǎn)SB主機(jī)模式,,要讀/寫U盤,,必須先設(shè)置CH375使其工作于USB主機(jī)方式。②將U盤當(dāng)作存儲器進(jìn)行讀/寫,,方法與讀/寫閃存差不多,,操作簡單且速度快。單片機(jī)讀/寫U盤文件程序分層如圖2所示,。

2.4 用單片機(jī)配置FPGA的過程

  FPGA器件上電以后,,開始配置過程的復(fù)位、配置和初始化3個(gè)階段,,然后進(jìn)入用戶狀態(tài),。以配置FLEX10K10為例,圖3為PS模式下使用單片機(jī)配置FPGA的時(shí)序圖,。

  配置過程如下:①M(fèi)CU的P1.7引腳產(chǎn)生一個(gè)tCFG≥μs的低電平給FPGA的nCONFIG引腳使FPGA復(fù)位,,200 ns后nSTATUS和CONF_DONE同時(shí)跟隨變?yōu)榈碗娖剑籉PGA的I/O端口為高阻狀態(tài),,RAM被清除,。②MCU的P1.7引腳產(chǎn)生上跳變時(shí)開始配置,F(xiàn)PGA退出復(fù)位狀態(tài),,4μs后nSTATUS被釋放并被上拉電阻拉高,,F(xiàn)PGA準(zhǔn)備接收數(shù)據(jù)進(jìn)入配置階段。設(shè)置MCU的串口工作方式為O,單片機(jī)檢測到nSTATUS由低跳到高后,,讀取配置數(shù)據(jù)(從U盤讀取或上電時(shí)先將配置數(shù)據(jù)從U盤讀到SRAM62255)由RXD送到FPGA的DATA0(注意低位LSB先送出),;MCU的TXD接收FPGA的DCLK以提供時(shí)鐘信號,配置數(shù)據(jù)足在DCLK上升沿被移位入FPGA的,,全部配置數(shù)據(jù)移入FPGA直到CONF_DONE變?yōu)楦唠娖?,配置階段結(jié)束。若CONF_DONE沒有變?yōu)楦唠娖?,則需要重新配置,。③初始化階段,持續(xù)O.6~2μs,。不同的FPGA器件,,持續(xù)時(shí)間不等。A1tera公司的Quartus II開發(fā)工具生成配置文件時(shí),,對于不同的目標(biāo)器件和配置方式已經(jīng)添加了相應(yīng)的空DCLK,。軟件設(shè)計(jì)使微處理器提供配置所需的時(shí)序和串行傳送配置數(shù)據(jù),以及對配置進(jìn)行監(jiān)測,,從而實(shí)現(xiàn)配置過程,。軟件設(shè)計(jì)流程如圖4所示。

3 結(jié)論

  FPGA器件的配置技術(shù)猶如集成電路制造中的流片,,是非常重要的一個(gè)環(huán)節(jié),。用單片機(jī)配置FPGA器件與用專用器件相比,具有成本低,、保密性好,、可升級、可實(shí)現(xiàn)多任務(wù)電路結(jié)構(gòu)重構(gòu)(符合軟件無線電思想)等特點(diǎn),,本設(shè)計(jì)具有創(chuàng)新性,,硬件設(shè)計(jì)簡單可靠,且成本低,,易于實(shí)現(xiàn),,是確保FPGA安全性和保密性的一種方法,在金融等關(guān)系到國家利益的場合具有重大實(shí)用價(jià)值,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。