引 言
??在當(dāng)今變化的市場環(huán)境中,產(chǎn)品是否便于現(xiàn)場升級,是否便于靈活使用成為產(chǎn)品能否進(jìn)入市場的關(guān)鍵因素。在這種背景下,Altera公司的基于SRAM LUT結(jié)構(gòu)的FPGA器件得到了廣泛的應(yīng)用。雖然這些器件應(yīng)用廣泛,但由于其內(nèi)部采用SRAM工藝,它的配置數(shù)據(jù)存儲(chǔ)在SRAM中。由于SRAM的易失性,每次系統(tǒng)上電時(shí),必須重新配置數(shù)據(jù),即ICR(In-Circuit Reconfigurability),只有在數(shù)據(jù)配置正確的情況下系統(tǒng)才能正常工作。在線配置方式一般有兩類:一是通過下載電纜由計(jì)算機(jī)直接對其進(jìn)行配置,二是通過配置芯片對其進(jìn)行配置。通過PC機(jī)對FPGA進(jìn)行在系統(tǒng)重配置,雖然在調(diào)試時(shí)非常方便,但在應(yīng)用現(xiàn)場是很不現(xiàn)實(shí)的。上電后,自動(dòng)加載配置對FPGA應(yīng)用來說是必需的。Altera公司提供的配置芯片有一次可編程型和可擦除編程型兩種:一次可編程型芯片只能寫入一次,不適合開發(fā)階段反復(fù)調(diào)試、修改及產(chǎn)品的方便升級;可擦除編程型價(jià)格昂貴,且容量有限,對容量較大的可編程邏輯器件,需要多片配置芯片組成菊花鏈形進(jìn)行配置,增加系統(tǒng)設(shè)計(jì)的難度。
為了降低成本,目前在開發(fā)階段多用可擦除型配置芯片;最終產(chǎn)品用不可擦寫的配置芯片,但一次簡單的代碼更換就需要更換一次器件,這在產(chǎn)品升級時(shí)很不實(shí)用。至今還沒有低成本的配置芯片出現(xiàn),而我們采用的這套配置方案充分考慮了在FPGA實(shí)際使用中,對設(shè)計(jì)的保密性和設(shè)計(jì)的可升級的要求,不但可以實(shí)現(xiàn)代替價(jià)格昂貴的不可擦寫和可擦寫配置芯片,而且可以實(shí)現(xiàn)多任務(wù)電路結(jié)構(gòu)重配置。該方案有PC機(jī)控制程序、單片機(jī)和外部串行存儲(chǔ)器組成,只要通過替換外部串行存儲(chǔ)器,就可實(shí)現(xiàn)對不同容量的多種配置芯片的代替。PC機(jī)是用來將配置數(shù)據(jù)寫入存儲(chǔ)器的,在寫好數(shù)據(jù)后該配置系統(tǒng)不再需要PC機(jī)的控制,在單片機(jī)的控制下實(shí)現(xiàn)ICR或多任務(wù)電路結(jié)構(gòu)重配置。多任務(wù)電路結(jié)構(gòu)重配置即將多個(gè)配置文件分區(qū)存儲(chǔ)到外部存儲(chǔ)器中,然后由單片機(jī)接收不同的命令,以選擇讀取不同存儲(chǔ)器區(qū)的數(shù)據(jù)下載到FPGA器件,實(shí)現(xiàn)在線配置成多種不同的工作模式。
1 FPGA器件的配置方式和配置文件
Altera公司生產(chǎn)的具有ICR功能的FPGA器件有FLEX6000、FLEX10K、APEX和ACEX等系列。它們的配置方式可分為PS(被動(dòng)串行)、PPS(被動(dòng)并行同步)、PPA(被動(dòng)并行異步)、PSA(被動(dòng)串行異步)和JTAG(Joint Test Action Group)等五種方式。這五種方式都能適用于單片機(jī)配置。PS方式因電路簡單,對配置時(shí)鐘的要求相對較低,而被廣泛應(yīng)用。我們的配置方案也采用PS配置方式來實(shí)現(xiàn)ICR功能,圖1是PS配置方式的時(shí)序圖。

被動(dòng)串行工作過程:當(dāng)nconfig產(chǎn)生下降沿脈沖時(shí)啟動(dòng)配置過程,在dclk上升沿,將數(shù)據(jù)移入目標(biāo)芯片。在配置過程中,系統(tǒng)需要實(shí)時(shí)監(jiān)測,一旦出現(xiàn)錯(cuò)誤,nSTATUS將被拉低,系統(tǒng)識(shí)別到這個(gè)信號后,立即重新啟動(dòng)配置過程。配置數(shù)據(jù)全部正確地移入目標(biāo)芯片內(nèi)部后,CONF_DONE信號跳變?yōu)楦?,此后,DCLK必須提供幾個(gè)周期的時(shí)鐘(具體周期數(shù)與DCLK的頻率有關(guān)),確保目標(biāo)芯片被正確初始化,進(jìn)入用戶工作模式。
Altera的MAX+PLUS II或Quartus II開發(fā)工具可以生成多種配置或編譯文件,用于不同配置方法的配置系統(tǒng),而對于不同系列的目標(biāo)器件配置數(shù)據(jù)的大小也不同,配置文件的大小一般有.rbf文件決定。.rbf文件即二進(jìn)制文件。該文件包括所有的配置數(shù)據(jù),一個(gè)字節(jié)的 .rbf文件有8位配置數(shù)據(jù),每一字節(jié)在配置時(shí)最低位最先被裝載。微處理器可以讀取這個(gè)二進(jìn)制文件,并把它裝載到目標(biāo)器件中。Altera提供的軟件工具不自動(dòng)生成 .rbf文件,須按照下面的步驟生成:① 在MAX+PLUS II編譯狀態(tài),選擇文件菜單的變換SRAM目標(biāo)文件命令; ② 在變換SRAM目標(biāo)文件對話框,指定要轉(zhuǎn)換的文件并且選擇輸出文件格式為 .rbf(Sequential),然后確定。
2 配置電路結(jié)構(gòu)和原理
2.1 串行通信的電路結(jié)構(gòu)和原理
PC機(jī)與單片機(jī)的接口如圖2所示。AT89C2051單片機(jī)通過串行口直接接收PC機(jī)傳送來的串行數(shù)據(jù),然后把接收到的數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ)器。由于PC機(jī)的串行口都是RS-232C標(biāo)準(zhǔn)的接口,所以,其輸入輸出在電平上和采用TTL電平的AT89C2051在接口時(shí)會(huì)產(chǎn)生電平不同的問題。為了解決這個(gè)問題,在PC機(jī)和單片機(jī)的串行通信電路中加入了MAX232芯片,以實(shí)現(xiàn)TTL電平和RS-232C接口電平之間的轉(zhuǎn)換。這樣PC機(jī)和AT89C2051單片機(jī)進(jìn)行串行通信時(shí)就可以順利進(jìn)行了。除了電路結(jié)構(gòu)之外,要實(shí)現(xiàn)PC機(jī)和AT89C2051之間的通信,還需要有合適的通信軟件。

2.2 ICR控制電路原理
ICR電路原理如圖3所示。AT24C256用來存儲(chǔ)FPGA的配置數(shù)據(jù)。
ICR控制電路的工作過程為:經(jīng)MAXPLUS II編譯生產(chǎn)的配置文件(.sof)通過格式轉(zhuǎn)換成為 (.rbf)。然后,利用PC機(jī)端的控制程序,通過PC機(jī)的串行通信口,經(jīng)U1存儲(chǔ)在U2中。U1再根據(jù)系統(tǒng)的要求,通過P1.2、P1.3、P1.4、P3.0和P3.1等5個(gè)I/O口,將其存儲(chǔ)在U2中的配置數(shù)據(jù)下載到電路中的FPGA器件中去。
因作者設(shè)計(jì)電路中的FPGA是Altera公司的FLEX系列的EPF10K10,其配置文件的容量為15KB,故電路中采用1片AT24C128就可存儲(chǔ)EPF10K10的配置數(shù)據(jù)。我們選用AT24C256器件可以存儲(chǔ)兩個(gè)配置文件,是為了實(shí)現(xiàn)多任務(wù)電路重構(gòu),此時(shí)整個(gè)ICR控制電路只有2片IC??梢哉f,它是目前結(jié)構(gòu)最簡單、成本最低的ICR控制電路。如果配置的FPGA是EPF10K30或更大門數(shù)的器件,則需要大容量的存儲(chǔ)器件或多片AT24C256。(在兩線串行總線上最多可接4片AT24C256。)
3 軟件設(shè)計(jì)
在該配置方案中,軟件包括在PC機(jī)端的控制軟件和在AT89C2051端的控制軟件兩部分。PC機(jī)端的軟件采用Visual Basic語言編程,而AT89C2051采用匯編語言進(jìn)行編程。
3.1 PC機(jī)端的軟件
PC機(jī)端的軟件采用Visual Basic語言編程。VB支持面向?qū)ο蟮某绦蛟O(shè)計(jì),具有結(jié)構(gòu)化的事件驅(qū)動(dòng)編程模式,而且可以十分簡便地作出良好的人機(jī)界面。PC機(jī)端的控制程序主要實(shí)現(xiàn)讀取.rbf文件并將其通過串口送出的功能。讀取文件時(shí),主要使用讀取二進(jìn)制文件命令。在串口通信方面,使用VB提供的具有強(qiáng)大功能的串口通信控件MSCOMM。該控件可設(shè)置串口狀態(tài)及串口通信的信息格式和協(xié)議。
在實(shí)際工作中,要實(shí)現(xiàn)AT89C2051和PC機(jī)之間的有效通信,必須使其具有相同的波特率和相同的通信協(xié)議。作者采用了9600bps的波特率和N.8.1幀結(jié)構(gòu)。N.8.1幀結(jié)構(gòu)表示1幀串行數(shù)據(jù)有10位:起始位占用1位(低電平),用來表示字符開始;后8位為數(shù)據(jù)編碼,無奇偶校驗(yàn)位;最后為停止位(高電平),用來表示字符傳送結(jié)束。單片機(jī)的串行口工作在方式1。方式1是標(biāo)準(zhǔn)的10位異步通信方式,10位數(shù)據(jù)和PC機(jī)的標(biāo)準(zhǔn)串口相對應(yīng),傳送的波特率由單片機(jī)工作時(shí)鐘和T1的溢出率共同決定。
3.2 ICR控制電路軟件
在圖3介紹的ICR控制電路中,其存儲(chǔ)FPGA配置數(shù)據(jù)的存儲(chǔ)器 AT24C256采用I2C串行總線進(jìn)行數(shù)據(jù)交換。其數(shù)據(jù)交換速度較慢,而FPGA配置數(shù)據(jù)又比較大,因此如何提高圖3介紹的ICR控制電路的配置速度將是軟件設(shè)計(jì)上的一個(gè)重點(diǎn)。限制速度的瓶頸主要是從AT24C256讀取數(shù)據(jù)和將數(shù)據(jù)寫入FPGA器件中。從AT24C256讀取數(shù)據(jù),有讀當(dāng)前地址、隨機(jī)讀和順序讀三種方式。這三種方式中,順序讀最簡單、速度最快。因?yàn)樵谕黄珹T24C256中,僅需要寫入一次讀命令就可以按順序從0地址開始直至讀完整片AT24C256中的全部數(shù)據(jù)。向FPGA器件寫數(shù)據(jù)時(shí),可以使用串行口的移位寄存器工作方式,即方式0。方式0數(shù)據(jù)的傳送以8位為1幀,無論是發(fā)送或是接收都是最低有效位居先。這和FPGA對數(shù)據(jù)的要求一致,傳送的波特率固定為振蕩頻率的1/12。本系統(tǒng)只需用到輸出方式,串行數(shù)據(jù)通過RXD端輸出,而用TXD端輸出移位脈沖。當(dāng)1字節(jié)數(shù)據(jù)寫入串行數(shù)據(jù)緩沖器SBUF時(shí),就開始發(fā)送。在此期間,發(fā)送控制器送出移位信號,使發(fā)送移位寄存器的內(nèi)容右移1位,直至最高位(D7位)移出后,停止發(fā)送數(shù)據(jù)和移位時(shí)鐘脈沖。發(fā)送完1字節(jié)數(shù)據(jù)后,硬件置發(fā)送標(biāo)志位TI為1,通過判斷TI的狀態(tài)決定是否向SBUF寫入數(shù)據(jù)。采用這種方式比采用普通(I/O)口要快很多。

4 結(jié) 論
我們設(shè)計(jì)的基于微控制器的FPGA器件的 ICR控制系統(tǒng),具有線路結(jié)構(gòu)簡單、開發(fā)容易、體積小、成本低的優(yōu)點(diǎn);可以支持3.3V和5V系統(tǒng)的配置;適用于需要ICR功能的電子裝置中。該ICR控制電路是為配置Altera公司FLEX系列的FPGA器件而設(shè)計(jì)的,稍加修改也適用于其它系列的FPGA器件。這個(gè)配置電路的主要弱點(diǎn)在于配置速率較慢,只能適用于配置速率要求不高的應(yīng)用。
王玉化:工程師,研究方向EDA技術(shù)和嵌入式可編程系統(tǒng)。
- 配置方法(7747)
- 組圖FP(5547)
相關(guān)推薦
FPGA芯片配置方式及常見配置方法
9490FPGA可重復(fù)配置和測試系統(tǒng)的實(shí)現(xiàn)
1414
遠(yuǎn)程在線更新FPGA程序的方法
27516
基于SPI FLASH的FPGA多重配置
13669FPGA 是如何分類的?FPGA的使用方法
FPGA在線配置
FPGA在線配置模塊和自動(dòng)測試模塊實(shí)現(xiàn)過程
FPGA配置電路
FPGA配置問題
FPGA中SPI復(fù)用配置的編程方法
FPGA實(shí)戰(zhàn)演練邏輯篇13:配置電路
FPGA實(shí)戰(zhàn)演練邏輯篇69:基于FPGA的在線系統(tǒng)調(diào)試概述
FPGA的接口配置如何進(jìn)行配置?
FPGA芯片_GW2AN-55器件原理圖指導(dǎo)手冊
fpga 多配置的問題
Altium designer高版本如何在線搜索元器件
STM32單片機(jī)是怎樣配置FPGA的
Xilinx FPGA在線更新配置數(shù)據(jù)交流
Xilinx FPGA入門連載17:PWM蜂鳴器驅(qū)動(dòng)之復(fù)位與FPGA重配置功能
一種基于DSP和JTAG接口的FPGA系統(tǒng)在線編程設(shè)計(jì)
使用高速SPI Nor Flash的FPGA配置
例說FPGA連載13:靈活定制——配置電路
例說FPGA連載18:配置電路設(shè)計(jì)
幾組實(shí)用FPGA原理設(shè)計(jì)圖
分享一款不錯(cuò)的大容量串行e-Flash的FPGA配置方案
勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載14:FPGA下載配置電路
勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載52:Altera FPGA配置方式之AS/PS/JTAG配置方式
勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載53:PWM蜂鳴器驅(qū)動(dòng)之FPGA在線下載配置
基于JTAG接口實(shí)現(xiàn)ARM的FPGA在線配置設(shè)計(jì)
如何使用高速NOR閃存配置FPGA
如何實(shí)現(xiàn)自動(dòng)重復(fù)配置和 FPGA 測試?
支持重構(gòu)的FPGA器件
有什么FPGA可重構(gòu)方法可以對EPCS在線編程?
有什么好的FPGA在線培訓(xùn)班嗎?
玩轉(zhuǎn)Zynq連載5——基于Vivado的在線板級調(diào)試概述
電源組用的元器件
談?wù)凙ltera FPGA的配置
可在線升級的FPGA并行配置方法的實(shí)現(xiàn)
23FPGA器件在嵌入式系統(tǒng)中的配置方式的探討
10DSP和FPGA共用FLASH進(jìn)行配置的方法
12基于單片機(jī)的Cyclone系列FPGA配置方法
64FPGA的全局動(dòng)態(tài)可重配置技術(shù)
54FPGA器件的在線配置方法
448ACEX 1K系列CPLD配置方法探討
478
FPGA器件的在線配置方法
1062
FPGA 重復(fù)配置和測試的實(shí)現(xiàn)
528
基于對EPCS在線編程的FPGA可重構(gòu)方法
1310FPGA中SPI復(fù)用配置的編程方法
3061
FPGA重復(fù)配置和測試的實(shí)現(xiàn)
544
基于JTAG接口實(shí)現(xiàn)ARM的FPGA在線配置設(shè)計(jì)
3141
ARM設(shè)計(jì)的FPGA可重構(gòu)配置方法的實(shí)現(xiàn)及應(yīng)用
1326
使用CPLD和Flash實(shí)現(xiàn)FPGA的配置
8194
一種基于SRAM的FPGA的加密方法
48Leon3的接口配置設(shè)計(jì)
1474
Leon3軟核的FPGA SelectMap接口配置設(shè)計(jì)
3151
基于SD卡的FPGA配置
6095
ZYNQ器件的啟動(dòng)配置方法
1045微處理器系統(tǒng)中連接簡單的被動(dòng)串行配置方法和被動(dòng)并行異步配置方法
1V5 FPGA配置回讀
8730反熔絲FPGA配置和編程方法
10165
FPGA配置與測試的詳細(xì)方法分析與特點(diǎn)
5921
關(guān)于fpga編程flash芯片和配置數(shù)據(jù)技巧
24007
chipscope使用教程以及FPGA在線調(diào)試的方法
9AS配置方式由FPGA器件引導(dǎo)配置操作過程
11628
FPGA的配置/加載方式
17251基于ICR技術(shù)的FPGA配置電路硬件設(shè)計(jì)及其工作原理
4908
FPGA配置相關(guān)筆記
481FPGA教程之CPLD和FPGA的配置與下載的詳細(xì)資料說明
17以Flash控制器為核心的FPGA在線更新功能實(shí)現(xiàn)設(shè)計(jì)流程介紹
2746
STM32內(nèi)部RAM在線調(diào)試配置方法及詳細(xì)說明 (基于Keil開發(fā)工具)
6753
Spartan-6 FPGA的配置教程說明
25FPGA的三種配置方式詳解
7500基于FPGA器件EP20K200E芯片的配置方式在嵌入式系統(tǒng)中的應(yīng)用研究
878
FPGA開發(fā)在線調(diào)試和配置過程
3947
FPGA有哪些主要配置方式?
11307
FPGA_ASIC-DSP和FPGA共用FLASH進(jìn)行配置的方法
21FPGA芯片配置分類及配置方式
6052FPGA CPLD可編程邏輯器件的在系統(tǒng)配置方法
13?在配置FPGA器件時(shí)的常見問題及其解決方法
1140FPGA配置模式和配置設(shè)計(jì)
862FPGA在線調(diào)試的方法簡單總結(jié)
1225
介紹FPGA在線調(diào)試的一大利器—VIO
3333
使用高速NOR閃存配置FPGA
331
電子發(fā)燒友App





評論