基于SOC的FPSLIC硬件實(shí)現(xiàn)分組加密算法_第1頁
基于SOC的FPSLIC硬件實(shí)現(xiàn)分組加密算法_第2頁
基于SOC的FPSLIC硬件實(shí)現(xiàn)分組加密算法_第3頁
基于SOC的FPSLIC硬件實(shí)現(xiàn)分組加密算法_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于SOC的FPSLIC硬件實(shí)現(xiàn)分組加密算法    作者Email: zzqxyh摘要: 本文中采用美國Atmel公司設(shè)計生產(chǎn)的FPSLIC即現(xiàn)場可編程系統(tǒng)級集成電路中的AT94K-Starter Kit器件,通過它內(nèi)部的AVR內(nèi)核、異步通信端口、FPGA以及其它外設(shè),以及串口調(diào)試軟件Acessport129實(shí)現(xiàn)了計算機(jī)和試驗(yàn)板的通信,從而通過硬件實(shí)現(xiàn)了分組加密的算法。 關(guān)鍵詞:FPSLIC  AVR單片機(jī)  分組加密 1  引言: 美國Atmel公司生產(chǎn)的AT94K系列芯片

2、是以Atmel 0.35 的5層金屬CMOS工藝制造。它基于SRAM的FPGA、高性能準(zhǔn)外設(shè)的Atmel 8位RISC AVR單片機(jī)。另外器件中還包括擴(kuò)展數(shù)據(jù)和程序SRAM及器件控制和管理邏輯。圖1-1是Atmel公司的FPSLIC內(nèi)部結(jié)構(gòu)圖。 圖1-1 FPSLIC內(nèi)部結(jié)構(gòu)圖AT94K內(nèi)嵌AVR內(nèi)核,Atmel公司的FPSLIC可編程SOC內(nèi)嵌高性能和低功耗的8位AVR單片機(jī),最多還帶有36KB的SRAM,2個UART、1個雙線串行接口,3個定時/計數(shù)器、1個8 8乘法器以及一個實(shí)時時鐘。通過采用單周期指令,運(yùn)算速度高達(dá)1MPS/M

3、Hz,這樣用戶可以充分優(yōu)化系統(tǒng)功耗和處理速度。AVR內(nèi)核基于增強(qiáng)型RISC結(jié)構(gòu),擁有豐富的指令系統(tǒng)以及32個通用工作寄存器。而且所有通用寄存器都與算術(shù)邏輯單元ALU相連;另外,在一個時鐘周期內(nèi),執(zhí)行單條指令時允許存取2個獨(dú)立的寄存器,這種結(jié)構(gòu)使得代碼效率更高,并且在相同的時鐘頻率下,可以獲得比傳統(tǒng)的CISC微處理器高10倍的數(shù)據(jù)吞吐量。AVR從片內(nèi)SRAM執(zhí)行程序,由于AVR運(yùn)行代碼存儲在SRAM中,因此它可以提供比較大的吞吐量,這樣可以使其工作在突發(fā)模式上。在這種模式上,AVR大多時間都是處于低功耗待機(jī)狀態(tài),并能在很短的時間里進(jìn)行高性能的處理。微處理器在突發(fā)模式運(yùn)行模式下的平均功耗要比長時間

4、低頻率運(yùn)行時的功耗低得多。FPSLIC的待機(jī)電流小于100 ,典型的工作電流為2-3mA/MHz。在系統(tǒng)上電時,F(xiàn)PGA配置SRAM和AVR程序SRAM都能自動地通過Atmel在系統(tǒng)可編程串行存貯器AT17來裝載。 2    FPSLIC硬件的設(shè)計實(shí)現(xiàn): 2.1 硬件實(shí)現(xiàn)框圖 圖2-1系統(tǒng)硬件實(shí)現(xiàn)框圖圖2-1是為了實(shí)現(xiàn)加密算法的硬件框圖。計算機(jī)通過它的串口和FPSLIC的通信端口UART0相連,用來進(jìn)行數(shù)據(jù)的傳送和接收。FPSLIC通過AVR的通信端口等待接收主機(jī)傳來的信息,通過內(nèi)部的下載程序?qū)?shù)據(jù)進(jìn)行處理,最后再傳回到主機(jī)上。圖2-

5、1中FPGA是一個計數(shù)器,此計數(shù)器一上電就從0計數(shù),并用進(jìn)位輸出信號產(chǎn)生一個AVR中斷,即進(jìn)位輸出信號RCO連接到AVR的中斷信號INTA0。當(dāng)AVR接收到由計數(shù)器的進(jìn)位信號產(chǎn)生的中斷時,則執(zhí)行INTA0的中斷服務(wù)程序(ISR)。在此期間,AVR就給INTA0產(chǎn)生的次數(shù)計數(shù),并把它放到8位的AVR-FPGA數(shù)據(jù)總線上,這時就會觸發(fā)AVR的寫使能信號(FPGA的aWE信號端)和FPGA的I/O SELECT0信號(FPGA的LOAD信號端),同時從AVRFPGA數(shù)據(jù)總線上將數(shù)據(jù)載入計數(shù)器。數(shù)碼管的各極連接在實(shí)驗(yàn)板上的可編程端口,通過引腳配置用來顯示數(shù)據(jù)。LED指示燈在AVR 

6、I/O輸出的D口,直接將數(shù)據(jù)通過命令PORTD來顯示。FPGA的時鐘通過GCLK5選自AVR單片機(jī)的時鐘。我們以DES數(shù)據(jù)加密為例,由仿真試驗(yàn)可以得出DES加密的速率為57.024 kbit/s,它大于串口的最大速率19.2kbit/s,因此可以實(shí)時進(jìn)行數(shù)據(jù)的加密操作。    一個典型的FPSLIC設(shè)計通常應(yīng)該包括以下幾個步驟: 1.    利用聯(lián)合仿真軟件建立一個FPSLIC工程。 2.    預(yù)先建立一個AVR軟件仿真程序文件。 3.   &

7、#160;預(yù)先建立一個FPGA的硬件仿真程序文件。 4.    設(shè)置和運(yùn)行AVR-FPGA接口設(shè)計。 5.    運(yùn)行布局前的聯(lián)合仿真Pre-layout Converification(這一步是可選擇的)。 6.    運(yùn)行Figaro-IDS進(jìn)行FPGA的布局布線。 7.    運(yùn)行布局后的聯(lián)合仿真Pos-layout Converification(這一步是可選擇的)。 8.   

8、 器件編程數(shù)據(jù)下載與實(shí)驗(yàn)驗(yàn)證。    我們以DES數(shù)據(jù)加密為例,(新建的工程名為lab1.apj,AVR仿真程序文件為desjiami.asm,F(xiàn)PGA的硬件仿真程序?yàn)镃ount.vhdl)。如下給出其中兩個關(guān)鍵步驟: 2.2 編譯AVR的仿真程序軟件   Reset:          (初始化部分) sbi   UCSR11,TXEN0     

9、;      ;設(shè)置UART0的收 sbi   UCSR11,RXEN0           ;設(shè)置UART0的發(fā) ldi   rTemp, 0x19             ;配置傳輸波特速率 - 9600&

10、#160;bps  4 MHz out  UBRR0, rTemp           ;初始化 UART0 速率 RX:            (接收部分) sbis UCSR10, RXC0      &#

11、160;      ;是否接受完畢? rjmp RX                       ;如果沒有結(jié)束則繼續(xù)等待接受 in  r23,UDR0          

12、0;       ;將串口的數(shù)據(jù)讀到寄存器中 st  z+, r23                  ;將數(shù)據(jù)存放到SRAM中 cpi zl, $08            &#

13、160;            ;DES要加密的數(shù)據(jù)是64比特,即8個字節(jié) brne RX                           ;不夠一個分組則繼續(xù)接收 rcall DESj

14、iami ;調(diào)用DES加密的AVR仿真程序 . ld r23,z+;利用z指針取出加密后的數(shù)據(jù) out UDR0,r23 ;將加密后的一個字節(jié)數(shù)據(jù)發(fā)送到端口 TX:             (發(fā)送部分) sbis UCSR10, TXC0 ;一個字節(jié)的數(shù)據(jù)是否發(fā)送完畢 rjmp TX;如果數(shù)據(jù)沒有傳輸完畢繼續(xù) ld r23,z+    &

15、#160;                   ;利用z指針取出加密后的數(shù)據(jù) out UDR0,r23                     ;將加密后的一個字節(jié)數(shù)據(jù)發(fā)送到端口 TX1:

16、sbis UCSR10,UDRE0        ;UART0數(shù)據(jù)寄存器件是否為空,即發(fā)送器是否接收新的數(shù)據(jù) rjmp TX1                        ;沒有則繼續(xù)等待 cpi zl,$18   &

17、#160;                    ;加密后的64 bit數(shù)據(jù)是否全部發(fā)送完畢 brne TX                      

18、0;   沒發(fā)送完畢則繼續(xù)發(fā)送 (以上程序代碼是整個仿真的程序框架,最主要的是對接口進(jìn)行初始化和對發(fā)送和接收部分進(jìn)行設(shè)置,以便進(jìn)行串口的通信) 2.1.2器件編程與試驗(yàn)驗(yàn)證 1.    將下載電纜ATDH2225的25針的一端從計算機(jī)的并行口接出,令一端10針扁平線插入ATSTK94實(shí)驗(yàn)板的J1插頭上。下載電纜的標(biāo)有紅色的線和J1插頭的第一腳連接(標(biāo)示)。 2.    因?yàn)橐陀嬎銠C(jī)串口進(jìn)行通信,因此要制作一個串口連接電纜,其九針連接電纜的連接關(guān)系如下圖2-2。電纜一端連接在計算機(jī)的任

19、意串口上,另一端連接在實(shí)驗(yàn)板上的UART0上。連接電纜只需要連接三根線,UART0的2端連接在FPSLIC的發(fā)送端,因此它和計算機(jī)的串口2端(接收數(shù)據(jù)端)相連。UART0的3端連接在FPSLIC的接收端,因此它和計算機(jī)的串口2端(發(fā)送數(shù)據(jù)端)相連。 3.    選擇4MHz時鐘,即在實(shí)驗(yàn)板上將JP17設(shè)置在靠近板子內(nèi)側(cè)位置,而將JP18不連接,也就是將其連接跳線拔掉。 4.    將直流9V電源接頭插入ATSTK94實(shí)驗(yàn)板的電源插座P3上。 5.    將實(shí)驗(yàn)板上的開關(guān)SW1

20、0調(diào)至PROG位置。開關(guān)SW10有編程(PROG)和運(yùn)行(RUN)兩種連接。在編程位置,用戶可以通過下載電纜和下載程序軟件CPS,將System Designer生成的FPSLIC數(shù)據(jù)流文件給配置存儲器編程。在運(yùn)行位置,F(xiàn)PSLIC器件將載入數(shù)據(jù)流文件并運(yùn)行該設(shè)計。  圖2-2  串口通信連接指示圖6.    打開電源開關(guān)SW14,即將它調(diào)整到ON位置。這時候?qū)嶒?yàn)板上電源發(fā)光二極管(紅色)發(fā)光,表示實(shí)驗(yàn)板上已經(jīng)上電。這樣,硬件就連接完畢,等待下一步的數(shù)據(jù)下載。 7.    單擊OK按鈕,即生成數(shù)據(jù)流文件,它將下載到ATSTK94實(shí)驗(yàn)板的配置存儲器中,這時,Atmel的AT17配置可編程系統(tǒng)(CPS)窗口被打開,如下圖2-3,并自動給器件編程。 圖2-3  FPSLIC控制寄存器設(shè)置對話框在Procesure下拉列表框中選擇/P Partition,Progr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論