《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于USB和FPGA的隨機(jī)數(shù)發(fā)生器驗(yàn)證平臺(tái)
基于USB和FPGA的隨機(jī)數(shù)發(fā)生器驗(yàn)證平臺(tái)
摘要: 本文結(jié)合實(shí)際需求,,在充分理解FPGA結(jié)構(gòu)原理和元件特性的基礎(chǔ)上,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)小型的FPGA開發(fā)板,。它不僅可以作為隨機(jī)數(shù)發(fā)生器的驗(yàn)證平臺(tái),同時(shí)也可為其他基于數(shù)字電路實(shí)現(xiàn)的系統(tǒng)提供服務(wù),。本文所設(shè)計(jì)的開發(fā)板結(jié)構(gòu)比較簡(jiǎn)單,,故難以滿足大型數(shù)字電路開發(fā)系統(tǒng)的要求,為此,,下一步的工作是擴(kuò)展功能模塊,,設(shè)計(jì)更多的外圍擴(kuò)展電路,滿足更高的實(shí)驗(yàn)需求,。
Abstract:
Key words :

 引言

隨機(jī)數(shù)發(fā)生器是信息安全領(lǐng)域不可或缺的重要組成部分,,廣泛應(yīng)用于金融、軍事等信息安全保密通信的電子設(shè)備中,。目前,,隨著對(duì)RNG體積、功耗,、接口方式等要求的提高,,設(shè)計(jì)集成化芯片或IP核形式的隨機(jī)數(shù)發(fā)生器成為一種必然。為此,,基于純數(shù)字電路實(shí)現(xiàn)的隨機(jī)數(shù)發(fā)生器已成為研究的熱點(diǎn),,而FPGA可編程邏輯芯片為此類隨機(jī)數(shù)發(fā)生器的研究提供了良好的開發(fā)環(huán)境。

為方便隨機(jī)數(shù)發(fā)生器IP核的下載,、運(yùn)行及測(cè)試,,同時(shí)保證產(chǎn)生的隨機(jī)數(shù)能夠快速地傳送給主機(jī)進(jìn)行隨機(jī)性檢測(cè),本文以FPGA芯片為核心,,以USB接口為通信接口,,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)隨機(jī)數(shù)發(fā)生器的驗(yàn)證平臺(tái)。該平臺(tái)結(jié)構(gòu)簡(jiǎn)單,功能完善,,對(duì)于其他特殊應(yīng)用的驗(yàn)證平臺(tái)搭建也具有指導(dǎo)意義,。

1 系統(tǒng)硬件結(jié)構(gòu)及工作原理

隨機(jī)數(shù)發(fā)生器驗(yàn)證平臺(tái)主要由CycloneII FPGA芯片EP2C20Q240C8N、與主機(jī)進(jìn)行通信的USB收發(fā)器電路,、下載配置芯片EPCS4,、頻率為48 MHz的時(shí)鐘源芯片、外部存儲(chǔ)器(Flash),、兩個(gè)電壓轉(zhuǎn)換電路,、復(fù)位電路和其他電路組成,如圖1所示,。

在每次實(shí)驗(yàn)演示時(shí),,將該芯片通過USB口與PC機(jī)相連,由主機(jī)為平臺(tái)提供5 V電源,,當(dāng)與主機(jī)連通后系統(tǒng)上電,,復(fù)位電路進(jìn)行工作,對(duì)整個(gè)系統(tǒng)進(jìn)行復(fù)位,。以QuartusII 7.2為開發(fā)環(huán)境,,采用ByterBlsterII下載電纜,通過JTAG下載口或以AS下載方式,,通過配置芯片EPCS4將隨機(jī)數(shù)發(fā)生器系統(tǒng)下載到實(shí)驗(yàn)平臺(tái)中,,最終通過USB口連接主機(jī)與平臺(tái)進(jìn)行信息交互。由主機(jī)向系統(tǒng)發(fā)送命令,,在系統(tǒng)控制下,,產(chǎn)生的隨機(jī)數(shù)通過USB收發(fā)器傳送給主機(jī),主機(jī)接收數(shù)據(jù)后進(jìn)行隨機(jī)性的各項(xiàng)檢測(cè),。

2 核心器件和關(guān)鍵技術(shù)

2.1 FPGA芯片EP2C20Q240C8N

EP2C20Q240C8N芯片是A1tera CyeloneII系列產(chǎn)品中的一員,,它采用TSMC1.2 V、90 nm和低電介絕緣工藝技術(shù),,由12英寸(300 mm)晶圓制成,,具有潛在速度方面的極大優(yōu)勢(shì)。

該芯片提供了許多功能特性,,如圖2所示,。該芯片資源豐富,可為隨機(jī)數(shù)生成系統(tǒng)提供良好的實(shí)驗(yàn)環(huán)境,。隨機(jī)數(shù)生成系統(tǒng)主要由OC8051IP核,、隨機(jī)數(shù)發(fā)生器IP核及USB控制器組成,實(shí)現(xiàn)了USB接口與隨機(jī)數(shù)生成系統(tǒng)的連接,,保證了主機(jī)與平臺(tái)的信息交互,。

2.2 PDIUSBP11A收發(fā)器芯片

PDIUSBP11A USB收發(fā)器是Philips公司推出的,,設(shè)計(jì)用來與USB物理層進(jìn)行交互,來自串行接口引擎(SIE)的VPO和VMO作為主驅(qū)動(dòng)器的輸出,。串行接口引擎和USB收發(fā)器的共同作用允許USB專用集成電路設(shè)計(jì)者設(shè)計(jì)靈活的USB設(shè)備,,與更多可用邏輯元件相兼容。其主要特性包括:

①符合USB1.1協(xié)議規(guī)范,;
②利用數(shù)字信號(hào)的輸入與輸出來傳送和接收USB串行數(shù)據(jù),;
③支持全速(12 Mb/s)和低速(1.5 Mb/s)的串行數(shù)據(jù)傳輸;
④支持單端口數(shù)據(jù)界面,;
⑤單一的3.3 V電源,;
⑥允許USB專用集成電路與USB的物理層進(jìn)行交互;
⑦有SO-114,、SSOP-14和TSSOP-14封裝,。

3 設(shè)計(jì)方案實(shí)現(xiàn)

3.1 系統(tǒng)供電電路

本系統(tǒng)沒有設(shè)置專門的電源電路,而是通過USB接口由主機(jī)提供5 V電源,。由于系統(tǒng)內(nèi)部工作電壓為3.3 V和1.2 V,,為此,專門設(shè)計(jì)了兩個(gè)電壓轉(zhuǎn)換電路,,將USB接口的5 V電壓轉(zhuǎn)換成3.3 V和1.2 V后再提供給系統(tǒng),,保證系統(tǒng)正常工作。電壓轉(zhuǎn)換電路采用封裝為SOT-223的AS1117和AS1117S芯片,,主要電路原理圖如圖3所示,。

為保證輸出電壓的穩(wěn)定性,,在電壓輸入端和輸出端都接有10μF的輸出電容,。

3.2 USB收發(fā)器電路

PDIUSBP11A芯片擁有14個(gè)可用引腳,其電路原理圖如圖4所示,。

在本設(shè)計(jì)電路中,,將PDIUSBP11A芯片的引腳1和引腳8懸空;引腳7和引腳14分別接地和3.3 V電壓,;差分?jǐn)?shù)據(jù)信號(hào)D+和D-引腳分別經(jīng)一個(gè)阻值為24 Ω的電阻與USB接口的D+和D-相連,,同時(shí)D+經(jīng)上拉電阻與3.3 V電壓相連;引腳9經(jīng)上拉電阻與3.3 V電壓相連,,使USB保持在全速工作模式下,;其他引腳與FPGA芯片相應(yīng)的引腳相連接,具體連接方式如表1所列,。



3.3 配置芯片及下載電路

Altera編程硬件主要包括MasterBlaster,、ByteBlasterMV、ByterBlsterII,、USB-Blaster和Ethernet Blaster下載電纜或Altera編程單元(APU),。

本文采用ByterBlsterII下載電纜,,選用EPCS4配置芯片,設(shè)計(jì)實(shí)現(xiàn)了AS主動(dòng)串行配置模式與JTAG下載模式相混合的下載配置電路,。

本設(shè)計(jì)采用AS和JTAG兩種下載方式,,可以通過JTAG方式對(duì)程序進(jìn)行調(diào)試,同時(shí)通過QuartuslI軟件提供的一個(gè)可在線操作FPGA片上RAM內(nèi)容的工具InSystem Memory Content Editor,,用戶可以查看和修改RAM的內(nèi)容,。用戶可以預(yù)期對(duì)RAM中的內(nèi)容進(jìn)行修改,并通過該工具查看修改后的結(jié)果,,兩者進(jìn)行對(duì)比就可驗(yàn)證程序運(yùn)行是否正確,。此外,在JTAG模式下可以利用jic文件驗(yàn)證配置芯片是否已經(jīng)損壞,。

3.4 復(fù)位電路

為使驗(yàn)證系統(tǒng)初始化正確,,當(dāng)整個(gè)系統(tǒng)在電源上電時(shí),必須處于復(fù)位狀態(tài),。一般應(yīng)保持復(fù)位脈沖為高保持兩個(gè)機(jī)器周期以上,,而系統(tǒng)晶體振蕩器達(dá)到穩(wěn)定一般需要150 ms左右。為此,,本文設(shè)計(jì)了基于RC器件的復(fù)位電路,,如圖5所示。

其中,,R1=R2=100 kΩ,,C1=3.5μF,對(duì)于虛線中的電路,,運(yùn)用戴維南定理把系統(tǒng)上電后電路中除電容支路以外的部分進(jìn)行化簡(jiǎn),,得到的電路如圖5(b)所示。

由此可得,,該復(fù)位電路能夠正常復(fù)位,,保證系統(tǒng)正常工作。

3.5 時(shí)鐘電路

時(shí)鐘由晶振芯片提供,,晶振芯片有無源晶振和有源晶振兩種,。無源晶振為無極性元件,共有2個(gè)引腳,,只有在時(shí)鐘電路工作控制下才能產(chǎn)生振蕩信號(hào),;有源晶振由石英晶體組成,此外還有晶體管和阻容元件,,信號(hào)穩(wěn)定,,它共有4個(gè)引腳,常用的連接方式為:1腳懸空,,2腳接地,,3腳輸出,,4腳接電壓。本設(shè)計(jì)采用ELV型號(hào)為SMD5*7的48MHz晶振,。

3.6 存儲(chǔ)器模塊
為滿足特殊功能需求,,擴(kuò)展了1 Mb的Flash。Flash選用Spansion公司的CMOS多功能器件,,型號(hào)為AM29LV010B,,采用32引腳的標(biāo)準(zhǔn)TSOP封裝,工作電壓為3 V,,8位數(shù)據(jù)寬度,。數(shù)據(jù)總線使用D0~D7,地址總線使用A0~A16,,其他還有芯片使能信號(hào)CE,,輸出使能信號(hào)0E和寫使能信號(hào)WE。它與FPGA芯片引腳的具體連接方式如表2所列,。


3.7 其他電路

為保證系統(tǒng)中各個(gè)芯片能夠正常工作,,本設(shè)計(jì)在各電壓源都并聯(lián)有0.1μF的退耦電容,并將這些電容擺放在芯片的周圍,,濾除高頻雜波,。

4 測(cè)試與驗(yàn)證

各模塊電路設(shè)計(jì)完成后,經(jīng)Altium Designer09仿真驗(yàn)證,,完成了相應(yīng)的PCB版圖設(shè)計(jì),,并最終進(jìn)行電路版圖的印刷和元器件焊接,實(shí)現(xiàn)了整個(gè)驗(yàn)證平臺(tái),。

為檢驗(yàn)平臺(tái)工作的正確性,,本文對(duì)參考文獻(xiàn)中的隨機(jī)數(shù)發(fā)生器利用VHDL語(yǔ)言進(jìn)行了實(shí)現(xiàn),并在輸出模塊中增加了一個(gè)32位的移位寄存器,,每產(chǎn)生32位隨機(jī)數(shù)進(jìn)行一次輸出,。最后,,將該隨機(jī)數(shù)發(fā)生器及參考文獻(xiàn)中所設(shè)計(jì)的USB控制器與參考文獻(xiàn)中所提供的OC8051 IP核進(jìn)行掛載連接,,其掛接原理圖如圖6所示。

掛接完成后,,利用QuartusII軟件,,將整個(gè)系統(tǒng)以AS下載方式,通過配置芯片EPCS4下載到FPGA板中,。由OC8051 IP核控制隨機(jī)數(shù)發(fā)生器模塊進(jìn)行工作,,每產(chǎn)生32位隨機(jī)數(shù)時(shí),TRNG向OC8051發(fā)送一個(gè)done信號(hào),,OC8051接收32位數(shù)據(jù),,并將其分為4個(gè)8位存于4個(gè)特殊功能寄存器(Sp-ecial Function Register,,SFR)中,并通過指令MOVX借助累加器將32位數(shù)據(jù)轉(zhuǎn)移至雙端口RAM中,。之后進(jìn)行下一32位隨機(jī)數(shù)的產(chǎn)生及傳送,,直到運(yùn)行16次后,RAM中所存儲(chǔ)的隨機(jī)數(shù)為512位時(shí),,OC8051置sent信號(hào)有效,,USB控制器將512位隨機(jī)數(shù)封裝成數(shù)據(jù)包,通過USB收發(fā)器傳送給主機(jī),,傳送完成后向OC8051返回一個(gè)state信號(hào),,表明傳送結(jié)束。重復(fù)上述過程即可源源不斷地將產(chǎn)生的隨機(jī)數(shù)傳送給主機(jī),,由主機(jī)最終完成隨機(jī)數(shù)檢測(cè),,檢測(cè)結(jié)果表明所接收到的數(shù)據(jù)滿足隨機(jī)數(shù)特性。

在隨機(jī)數(shù)生成系統(tǒng)下載,、隨機(jī)數(shù)生成及隨機(jī)數(shù)傳送過程中,,整個(gè)平臺(tái)工作正常,表明各模塊電路原理及連接的正確性:
①電壓轉(zhuǎn)換電路連接正確,,能為系統(tǒng)提供穩(wěn)定電壓,,同時(shí)表明,退耦電容起到了很好的去噪作用,;
②下載電路連接正確,,能夠?qū)⒊绦蛘_下載到FPGA中;
③復(fù)位電路工作正常,,時(shí)鐘電路能給系統(tǒng)提供穩(wěn)定的時(shí)鐘,;
④USB收發(fā)器電路連接正確,能正常收發(fā)數(shù)據(jù),。
由此表明,,該驗(yàn)證平臺(tái)具有一定的可靠性和穩(wěn)定性,能為隨機(jī)數(shù)發(fā)生器提供一個(gè)良好的驗(yàn)證環(huán)境,。

結(jié)語(yǔ)

本文結(jié)合實(shí)際需求,,在充分理解FPGA結(jié)構(gòu)原理和元件特性的基礎(chǔ)上,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)小型的FPGA開發(fā)板,。它不僅可以作為隨機(jī)數(shù)發(fā)生器的驗(yàn)證平臺(tái),,同時(shí)也可為其他基于數(shù)字電路實(shí)現(xiàn)的系統(tǒng)提供服務(wù)。本文所設(shè)計(jì)的開發(fā)板結(jié)構(gòu)比較簡(jiǎn)單,,故難以滿足大型數(shù)字電路開發(fā)系統(tǒng)的要求,,為此,下一步的工作是擴(kuò)展功能模塊,,設(shè)計(jì)更多的外圍擴(kuò)展電路,,滿足更高的實(shí)驗(yàn)需求,。

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