引言
隨著電子技術的發(fā)展,當前數(shù)字系統(tǒng)的設計正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。推動該潮流迅猛發(fā)展的引擎就是日趨進步和完善的高密度現(xiàn)場可編程邏輯器件設計技術。高密度現(xiàn)場可編程邏輯器件(CPLD/FPGA)能夠將大量邏輯功能集成于一個單片IC之中,對基于E2PROM(或FlashMemory)工藝的器件,配置數(shù)據(jù)在掉電后不會丟失,可以直接采用ByteBlaster并口下載電纜對他們進行配置,但基于該架構的器件的集成度較低,一般在10萬門以下;然而對基于SRAM工藝的器件,配置數(shù)據(jù)在器件掉電后會丟失,但基于該架構的器件的集成度相對較高,一般在1萬門以上。
由于當前項目開發(fā)中所需使用的可編程邏輯器件的集成度要求越來越高,基于SRAM工藝的器件得到越來越廣泛的使用,那么此時如何將配置數(shù)據(jù)成功地寫入目標器件,并且保證其在掉電再上電后能夠自動恢復配置數(shù)據(jù),成為電子設計工程師能否正確使用基于SRAM工藝的器件必須掌握的一項技術。
2系統(tǒng)組成
該系統(tǒng)的硬件電路由AT89S2051單片機、AT24C256串行E2PROM,MAX232串行接口電路、復位及去耦合電路和被配置CPLD/FPGA器件組成,如圖1所示。
3系統(tǒng)硬件設計
3.1芯片選型
(1)單片機單片機采用ATMEL公司生產(chǎn)的AT89S2051單片機,該芯片與MCS51系列單片機兼容。內含:2kBFlashE2PROM,128BRAM,15根I/O引線,2個16位定時器/計數(shù)器,1個5向量兩級中斷結構,1個全雙工串行口和1個精密模擬電壓比較器等。
(2)串行E2PROM由于基于SRAM工藝的可編程邏輯器件(CPLD/FPGA)的配置數(shù)據(jù)在掉電后會丟失,需要外加存儲器以保存配置數(shù)據(jù)。為了盡量減小電路板的面積,選用8腳的串行E2PROMAT24C256。AT24C256是ATMEL公司生產(chǎn)的2線制串行電可擦寫只讀存儲器,具有自定時寫周期特性,容量32kB。該器件特別適合于對功耗有嚴格要求的應用場合。
(3)通信接口采用MAXIM公司生產(chǎn)的串行接口芯片MAX232將PC機與下載配置電路連接起來。下載配置電路通過該串口接收PC機下傳的命令,執(zhí)行相應的操作再將處理結果上傳到PC機。MAX232是通用+5V供電的多通道RS232總線收發(fā)器,尤其適合在電池供電的系統(tǒng)中應用。
3.2硬件原理圖
硬件原理如圖2所示。上電后,單片機首先調用子程序完成如下操作:將掉電前已經(jīng)存儲在AT24C256串行E2PROM中的器件配置文件讀出;采用被動串行模式(PS)將該文件配置到CPLD/FPGA器件中,從而實現(xiàn)器件掉電再上電后自動恢復配置數(shù)據(jù)的功能。然后,單片機就會工作在動態(tài)停機狀態(tài),在此過程中,單片機可以響應串口中斷。
如果單片機響應串口中斷并且接收到一個數(shù)據(jù),那么單片機首先判斷該數(shù)據(jù)所表示的命令類型,若是配置命令,單片機就進入配置狀態(tài)。在配置狀態(tài)下,單片機一邊接收配置數(shù)據(jù),一邊將這些數(shù)據(jù)寫到CPLD/FPGA器件中;若是寫E2PROM命令,單片機就進入寫E2PROM狀態(tài),此時單片機會一邊接收配置數(shù)據(jù),一邊將這些數(shù)據(jù)寫到配置用E2PROM中(注意此時這些數(shù)據(jù)并沒有被配置到CPLD/FPGA器件中);若是讀E2PROM命令,單片機就進入讀E2PROM并配置CPLD/FPGA器件狀態(tài),此時單片機會一邊讀E2PROM中的配置數(shù)據(jù),一邊將讀出的配置數(shù)據(jù)寫到CPLD/FPGA器件中。
4系統(tǒng)軟件設計
軟件包括:主程序、下載配置子程序、寫E2PROM子程序、讀E2PROM子程序及通用延時子程序構成。其軟件流程圖如圖3所示。
現(xiàn)將以上所提及的各個子程序的用途簡介如下:
下載配置子程序的作用是將從串口接收的配置數(shù)據(jù)直接寫到目標器件中,即直接寫到可編程邏輯器件(CPLD/FPGA)中。
在編寫該子程序時,必須注意目標器件的寫入時序。必須根據(jù)目標器件生產(chǎn)廠家提供的時序圖,用單片機語言編程將其配置時序準確地描述出來,只有這樣才能正確地將配置數(shù)據(jù)寫入到目標器件中。例如,我們若要正確配置ALTERA公司生產(chǎn)的FLEX10k系列器件,就必須嚴格遵守以下時序圖,如圖4所示。
寫E2PROM子程序的作用是將從串口接收的配置數(shù)據(jù)直接寫到AT24C256串行E2PROM中保存起來,以備需要時可以用這些保存的數(shù)據(jù)重新配置器件。讀E2PROM子程序的作用是從AT24C256中將配置數(shù)據(jù)讀出,同時將這些配置數(shù)據(jù)寫到目標器件中,以實現(xiàn)對目標器件的重新配置。
在編寫這兩個子程序時,必須注意AT24C256的數(shù)據(jù)寫入和數(shù)據(jù)讀出時序,只有嚴格遵守該時序圖,才能正確地對該存儲器進行讀寫操作。其讀寫時序如圖5所示。
通用延時子程序可以靈活地設定延時時間間隔。當程序中需要延時的時候只要先給該子程序提供一個延時時間常數(shù),再調用延時子程序即可。例如,通常在系統(tǒng)復位時為了讓處理器復位后系統(tǒng)中其他器件能可靠復位而調用的上電延時子程序就可以采用該通用延時子程序來實現(xiàn)。
5結語
本系統(tǒng)可用于配置所有ALTERA公司生產(chǎn)的基于SRAM架構的CPLD器件和XILINX公司生產(chǎn)的基于SRAM架構的FPGA器件以及其他主流器件制造公司生產(chǎn)的基于SRAM架構的器件,具有很強的通用性。由于該電路使用的元器件非常少,也可以將其制作成面積很小、便于攜帶的通用下載配置板使用。該下載配置電路經(jīng)本人實際制作、調試、使用,其工作穩(wěn)定可靠,具有很好的應用前景。
-
FPGA
+關注
關注
1630文章
21786瀏覽量
605088 -
單片機
+關注
關注
6041文章
44616瀏覽量
637442 -
cpld
+關注
關注
32文章
1248瀏覽量
169518
發(fā)布評論請先 登錄
相關推薦
評論