亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于單片機的可編程邏輯器件配置及加密

        2007-01-01 00:00:00何惠芳唐小煜
        中國校外教育(下旬) 2007年5期

        [摘要]本文介紹了基于SRAM的可編程邏輯器件的原理,以Altera公司的FLEX 10K系列芯片為例,從系統(tǒng)的復(fù)雜度、經(jīng)濟性、可擴展性和保密性等方面,對多種系統(tǒng)配置方式進行比較,提出了由單片機和E2PROM存儲器組成的被動串行配置方式,并采用單片機產(chǎn)生長偽隨機碼序列的方法,實現(xiàn)對系統(tǒng)的加密。

        [關(guān)鍵詞]現(xiàn)場可編程門陣列(FPGA) 靜態(tài)隨機存儲器(SRAM) 被動串行配置(PS)

        引言

        基于SRAM的可重配置FPGA用來實現(xiàn)各種存儲器及復(fù)雜的邏輯功能,系統(tǒng)內(nèi)硬件功能完全由軟件程序?qū)崿F(xiàn),允許系統(tǒng)設(shè)計者全面控制FPGA內(nèi)部的邏輯功能,非常方便快捷地反復(fù)修改設(shè)計。另外,F(xiàn)PGA重配置控制電路線路結(jié)構(gòu)簡潔、開發(fā)容易、體積小、成本低,因而深受設(shè)計者青睞。

        1.基于SRAM的可重配置FPGA的結(jié)構(gòu)

        基于SRAM LUT結(jié)構(gòu)的FPGA器件,由于是易失性器件 ,配置數(shù)據(jù)必須保存在FPGA器件以外的EPROM、E2PROM或Flash ROM等非易失性存儲器內(nèi),以便使系統(tǒng)在適當?shù)臅r候?qū)⑵湎螺d到FPGA中。因此,它沒有ISP(在系統(tǒng)可編程)的概念,代之以ICR(在線可重配置)。

        2.可編程邏輯器件的配置原理概述

        (1)FPGA的工作狀態(tài)

        FPGA的工作狀態(tài)分為三種:一種稱之為用戶狀態(tài)(User),指電路中FPGA器件正常工作時的狀態(tài);另一種是配置狀態(tài)(Configuration),指將編程數(shù)據(jù)裝入FPGA器件的過程,也可以稱為構(gòu)造;第三種是初始化狀態(tài)(Initialization),F(xiàn)PGA復(fù)位各類寄存器,讓I/O引腳為邏輯器件正常工作做準備。

        (2) 配置方式分類

        Altera的FPGA可以使用6種配置模式,由模式選擇引腳MSEL1和 MSEL2的電平來決定。

        (1)配置器件,如用EPC器件進行配置;

        (2)PS(被動串行)模式:MSEL1=0,MSEL2=0;

        (3)PPS(被動并行同步)模式:MSEL1=1,MSEL2=0;

        (4)PPA(被動并行異步)模式:MSEL1=1,MSEL2=1;

        (5)PSA(被動串行異步)模式:MSEL1=1,MSEL2=0;

        (6)JTAG模式:MSEL1=0,MSEL2=0。

        首先對各種配置方式進行簡單的比較。若采用專用配置芯片,則外圍電路比較簡單,體積較小,但價格比較昂貴,只適用于不需要頻繁升級的產(chǎn)品。若采用單片機配置FPGA,則可以較好地解決設(shè)計的保密和設(shè)計的可升級兩個問題。對于單片機配置FPGA器件,可以采用并行配置模式和串行配置模式。并行配置模式中,單片機與FLEX器件通過8位數(shù)據(jù)線傳輸數(shù)據(jù),占用大量器件引腳,電路比較復(fù)雜,在這里不加以詳細介紹。串行配置方式包括被動串行配置(PS)和被動串行異步配置兩種方式(PSA),PS方式可利用PC機通過ByteBlaster下載電纜對Altera器件應(yīng)用ICR,這在FPGA的設(shè)計調(diào)試時是經(jīng)常使用的,因此選用基于單片機的PS方式。下面以FLEX10K系列芯片為例,著重介紹被動串行配置方式。

        3.用單片機對FLEX 10K系列的FPGA器件進行PS配置

        (1)工作原理

        這種配置方式需要微處理器提供一位寬的數(shù)據(jù)接口,由于沒有交接握手信號,所以要求配置速度小于10MHz,一般來說配置過程可在1s之內(nèi)完成,完全能夠滿足一般要求。下面描述一下這種配置方式的工作過程:

        微處理器發(fā)出nCONFIG信號(大于2μs的負脈沖),啟動配置過程;

        FLEX器件接到啟動信號后將nSTATUS線拉為低電平并在100ms內(nèi)釋放,如果在配置中發(fā)生錯誤,則再將nSTATUS拉為低電平;

        微處理器將配置數(shù)據(jù)送到DATA0引腳,每個字節(jié)先將最低位LSB送到FLEX 10K,DCLK是高電平選通脈沖,用以鎖存數(shù)據(jù),當器件接收到足夠并且正確的配置數(shù)據(jù)后,串行數(shù)據(jù)裝入的過程結(jié)束;

        所有配置數(shù)據(jù)傳送完畢并且沒有發(fā)生錯誤,F(xiàn)LEX器件置CONF_DONE信號為高電平,配置完成,但還要送40個DCLK脈沖,F(xiàn)PGA才能進入用戶工作狀態(tài)。

        圖1為被動串行方式的配置時序圖。在配置過程中,主機可以檢測nSTATUS信號,如果在開始配置之后又被拉為低電平,則表示配置出錯,應(yīng)重新啟動配置;如果在所有數(shù)據(jù)傳輸完畢之后沒有檢測到CONF_DONE為高電平,也沒有檢測到nSTATUS變低,則表示傳輸數(shù)據(jù)不夠,應(yīng)重新配置。

        部分ASM語言源程序如下:

        (3)FPGA配置程序固化方法

        用戶使用MAX+plusⅡ軟件設(shè)計FPGA程序,經(jīng)編譯后將產(chǎn)生1個后綴為.sof(Sram Object File)的SRAM的目標文件。該文件含有除配置數(shù)據(jù)以外的控制字符,但不能直接寫入到E2PROM中去,需要利用軟件的編程文件轉(zhuǎn)換功能,將.sof文件生成一個后綴為.rbf(Raw Binary File)的十六進制文件。然后再用編程器將.rbf文件寫到E2PROM中去。

        (4)配置多片的情況

        當設(shè)計的數(shù)字系統(tǒng)比較大,則需要不止一個FPGA器件,若為每個FPGA器件都設(shè)置一個下載口,則顯然是不經(jīng)濟的。Altera器件的PS模式支持多個器件進行配置。在多器件PS配置方式中,第一片F(xiàn)PGA的nCEO引腳級聯(lián)到下一片F(xiàn)PGA的nCE引腳。在配置完第一個器件后,nCEO輸出為低,使第二個FPGA器件的nCE有效,開始對第二塊器件進行配置。

        4.用單片機實現(xiàn)SRAM工藝FPGA的加密

        (1)基于SRAM工藝的保密性問題

        無論采用何種方式配置系統(tǒng),在系統(tǒng)加電時,都需要將配置的比特流數(shù)據(jù)按照確定的時序?qū)懭隨RAM工藝的FPGA。因此,只要采用一定的電路對配置FPGA的數(shù)據(jù)引腳進行采樣,即可得配置數(shù)據(jù)流信息。利用記錄下來的配置數(shù)據(jù)可對另一塊FPGA芯片進行配置,實現(xiàn)對FPGA內(nèi)部設(shè)計電路的克隆。

        (2)對SRAM工藝FPGA進行有效加密的方法

        單獨的一塊FPGA芯片是無法實現(xiàn)加密的,但是FPGA芯片供應(yīng)商對位數(shù)據(jù)流的定義是不公開的,因此無法通過外部的配置數(shù)據(jù)流信息推測圖3 加密電路結(jié)構(gòu)內(nèi)部電路。也就是說,通過對FPGA配置引腳的數(shù)據(jù)進行采樣可得到配置信息,但也不能知道內(nèi)部電路結(jié)構(gòu)。如果在配置完成后使FPGA處于非工作狀態(tài),利用另外一塊保密性較強的CPU產(chǎn)生密碼驗證信息與FPGA進行通信,僅在驗證成功的情況下使能FPGA正常工作,則能有效地對設(shè)計進行加密。圖3為加密電路結(jié)構(gòu)。

        加密電路主要利用配置完成后處于空閑狀態(tài)的單片機和FPGA內(nèi)的部分邏輯單元。FPGA內(nèi)的偽隨機序列發(fā)生電路產(chǎn)生一個偽碼的同時,單片機也產(chǎn)生一個偽碼驗證信息,在FPGA中將兩路偽碼進行比較,兩者完全匹配時,F(xiàn)PGA內(nèi)部電路正常工作,否則不能正常工作。

        (3)偽隨機碼(PN碼)序列發(fā)生器原理

        如圖4為一個5級的線性反饋移位寄存器,其序列周期為25-1=31T(1個T為一個碼元周期)。

        系統(tǒng)的加密能力主要由CPU的加密能力決定。只要使CPU的加密算法足夠復(fù)雜,也就是說,使序列足夠長和線性復(fù)雜度足夠高,那么對驗證信息的捕獲與識別也就會足夠困難,推測偽隨機序列的結(jié)構(gòu)也不容易實現(xiàn)。實際中,可以采用級數(shù)較高的線性反饋移位寄存器來產(chǎn)生偽隨機碼。如采用40級線性移位寄存器產(chǎn)生的最大序列的周期為240-1T。若將所有偽隨機碼截獲并存儲,就需要1000Gb的存儲空間;若碼速率為50Kbps,捕獲時間將長達5555小時;當增加移位寄存器的級數(shù)時,所需的存儲空間和捕獲時間都會呈指數(shù)增長,以至于難以實現(xiàn)。

        (4)單片機內(nèi)驗證偽碼

        配置完成后,單片機進入偽碼發(fā)生子程序,其流程圖如圖5:

        (5)FPGA內(nèi)的校驗工作及實現(xiàn)FPGA與單片機PN碼同步的方法

        把FPGA產(chǎn)生的PN碼序列與單片機產(chǎn)生的PN碼序列,逐一碼元地用一個同或門進行比較。若兩碼元相同則輸出“1”,即FPGA內(nèi)電路使能端為“1”,正常工作;否則,為“0”,內(nèi)部電路不工作。

        由于FPGA運算速度非???,而單片機則相對較慢,所以實現(xiàn)加密最關(guān)鍵的問題是使FPGA內(nèi)產(chǎn)生的PN碼序列和單片機產(chǎn)生的PN碼序列同步。實現(xiàn)同步最簡單的方法是用一個由單片機控制時鐘的D觸發(fā)器鎖存上一個校驗結(jié)果,當FPGA的下一位碼和單片機的下一位碼都已經(jīng)穩(wěn)定輸入到同或門后,單片機再產(chǎn)生一個作為同步時鐘的上升沿,把校驗結(jié)果打入鎖存器。

        結(jié)束語

        利用可重復(fù)寫入存儲器可以縮短FPGA應(yīng)用開發(fā)時間。使用OTP(One Time Programming)器件配置FPGA具有一定的冒險性,一次簡單的代碼更改就可能意味著更換OTP器件,并重新開始所有的程序;若是使用可多次可編程的專用配置器件,則價格非常昂貴。被動串行微處理器配置方式是以E2PROM為基礎(chǔ)的,允許對這些存儲器進行許多次的編程,所有其它芯片都無需從已裝配的電路板上拆卸下來。高速讀寫周期的Flash ROM能確保1萬次編程,而且能對任何以SRAM為基礎(chǔ)的PLD下載。這些器件除了在加電期間能承載配置數(shù)據(jù)外,還有許多方便之處。例如,用戶可以將多個配置文件.rbf分區(qū)編程到該存儲器的未用區(qū)段,通過單片機讀取不同存儲區(qū)可以將可編程邏輯器件配置成多種工作模式。

        參考文獻:

        [1]劉曉明,王軍,謝明欽.基于單片機的復(fù)雜可編程邏輯器件快速配置方法[J].電子技術(shù)應(yīng)用,2002(10):9-11.

        [2]宋宏宇,丁鐵夫,畢淑艷,劉建.現(xiàn)場可編程器件的異步串行配置[J].數(shù)據(jù)采集與處理,1998,13(4):374-377.

        (作者單位:廣東工程職業(yè)技術(shù)學(xué)院;華南師范大學(xué))

        欧美熟妇另类久久久久久多毛| 亚洲欧洲日产国码无码| 美女福利一区二区三区在线观看 | 精品无码久久久久成人漫画| 麻豆第一区MV免费观看网站| 久久久婷婷综合五月天| 开心五月骚婷婷综合网| 亚洲av无码国产综合专区| 久久久久亚洲av无码专区导航| 亚洲av成人一区二区三区网址| 日韩精品人妻一区二区三区蜜桃臀 | 日本乱偷人妻中文字幕| 成人片黄网站色大片免费观看app| 无码av专区丝袜专区| 少妇高潮精品在线观看| 色欲综合一区二区三区| 欧美喷潮久久久xxxxx| 一本色道久久综合狠狠躁中文| 一区二区三区日韩精品视频| 亚洲av久久久噜噜噜噜| 一本久道久久综合婷婷五月| 蜜桃视频中文字幕一区二区三区 | 色欲一区二区三区精品a片| 无码人妻精品一区二区三区下载| 99JK无码免费| 亚洲国产一区二区av | 日本道精品一区二区三区| 国产丝袜一区二区三区在线不卡| 看中文字幕一区二区三区| 精品无码人妻夜人多侵犯18| 亚洲欧美日韩中文在线制服| 国产高潮流白浆免费观看不卡| 亚洲男同免费视频网站| 国产xxx69麻豆国语对白| 99久久精品免费看国产情侣| 国产免费人成网站在线播放| 包皮上有一点一点白色的| 久久久久久久岛国免费观看| 极品诱惑一区二区三区| 日本老熟妇五十路一区二区三区| 麻豆av一区二区三区|