一種基于VPN網(wǎng)關(guān)的電原理設(shè)計與實現(xiàn)
1.引言
PowerPC MPC8xx(Power QUICC[1],Quad Integrated Communications Controller)是一款集成了微處理器和外圍器件控制器的通信處理器,可以用于多種通信設(shè)備中。PowerPC有優(yōu)異的通信和網(wǎng)絡(luò)性能,同基于x86 CPU的工控機平臺相比,PowerPC更適合用于專門的網(wǎng)絡(luò)設(shè)備,可以提高產(chǎn)品的性價比和可靠性,使產(chǎn)品具有更強的競爭力。
在PowerPC MPC8xx系列中,根據(jù)設(shè)計要求,選擇性價比較高的MPC855T作為VPN安全網(wǎng)關(guān)的控制器。MPC855T由三個模塊組成,每一個模塊使用32-bit的內(nèi)部總線:PowerPC核、系統(tǒng)接口單元(SIU)和通信處理模塊(CPM)。
2.VPN網(wǎng)關(guān)電原理設(shè)計
2.1 總體結(jié)構(gòu)
500)this.style.width=500;" border="0" />
硬件由主板、加密算法板、LCD顯示板、燈板、電源、風(fēng)扇、機殼組成。其中主板和加密算法板的設(shè)計,占整個硬件設(shè)計任務(wù)量的90%以上,本論文只針對這兩個板的設(shè)計。
主板由CPU部分、存儲器部分、通信接口部分、加密算法及隨機序列產(chǎn)生模塊部分、調(diào)試及配置接口部分、電源等部分組成。主板的電原理框圖由圖1所示。
2.2 復(fù)位電路
復(fù)位控制器對出現(xiàn)的復(fù)位源作出響應(yīng)。所采取的動作決定于復(fù)位源,但通常它執(zhí)行異常處理向量表中0x100位置的程序并初始化基于MODCK[1-2]和總線管腳0到14的特殊參數(shù)。
MPC855T有幾個復(fù)位源連接到復(fù)位邏輯,其中3個復(fù)位源為管腳。即上電復(fù)位(Power-On Reset),硬復(fù)位(Hard Reset),軟復(fù)位(Soft Reset)。上電時產(chǎn)生硬和軟復(fù)位管腳設(shè)置,這時硬和軟復(fù)位管腳為輸出。但是,當(dāng)系統(tǒng)已上電并運行時,可以配置按鈕或相似設(shè)備以產(chǎn)生外部軟或硬復(fù)位,在這種模式,管腳為輸入。圖2為上電復(fù)位和硬復(fù)位順序圖。
500)this.style.width=500;" border="0" />
由圖2可知,當(dāng)上電(Power-On)設(shè)置時,MPC855T進入上電復(fù)位狀態(tài)。在該狀態(tài)下設(shè)置硬復(fù)位和軟復(fù)位。隨后,855T采樣MODCK管腳,并初始化系統(tǒng)時鐘。設(shè)備保持在上電復(fù)位狀態(tài)直到上電復(fù)位翻轉(zhuǎn),鎖相環(huán)(PLL)鎖定。最后,芯片進入內(nèi)部初始化的硬復(fù)位狀態(tài)。
2.3 時鐘電路
MPC855T時鐘模塊包含主晶體振蕩器(OCSM)、系統(tǒng)鎖相環(huán)(SPLL)、低功耗除法器和時鐘產(chǎn)生/驅(qū)動模塊,在復(fù)位時,MPC855T讀MODCK[1-2]管腳。
500)this.style.width=500;" border="0" />
在XTAL和EXTAL端,外接32.768kHz的晶體時鐘電路作為CPU的實時時鐘源。在斷電的瞬間,要求PORESET保持高電平,否則會引起CPU進入不定狀態(tài),其內(nèi)部的實時時鐘不能正常工作。通過實驗,在復(fù)位芯片MAX811_EUS-T的電源端接一47µF的電解電容,以使在斷電瞬間,保持PORESET為高電平。經(jīng)反復(fù)測試,工作可靠。在XFC管腳上,應(yīng)連接一片外電容器,用于片內(nèi)系統(tǒng)鎖相環(huán)(SPLL)濾波器。電容器的一端連到XFC。電容器的值與PLPRCR[MF]有關(guān),其取值由表1決定。在本設(shè)計中,MF+1=8。由表1可知,XFC的電容值為6640-11760pF,故使用0.01µF的電容器。
2.4 串行管理控制器(SMC)接口電路
SMC有2個全雙工通道,可以編程配置它們獨立支持UART,透明方式和GCI。SMC使用緩存描述字符,緩存在存儲器中,SMC向CPM RISC提供請求,使SDMA傳送數(shù)據(jù)。每個SMC有3個管腳,一個發(fā)送管腳,一個接收管腳步和一個同步管腳,同步管腳在發(fā)送和接收開始后,只用于透明方式。圖3說明了端口B中這些管腳的位置。有的管腳可以共用,必須根據(jù)需要配置這個端口,它可以通過端口配置寄存器實現(xiàn)。
根據(jù)設(shè)計要求,將SMC1和SMC2配置成UART,外接232電平轉(zhuǎn)換芯片MAX3232,其中SMC1用于控制臺(Console)接口,由DB9座(針或孔可選)引出;SMC2分時用于前面板LCD顯示控制和與IC卡讀寫器(可選)的通信,通過模擬開關(guān)74HCT4053進行切換,其控制由口線PB[30]完成。
500)this.style.width=500;" border="0" />
2.5 串行通信控制器(SCC)接口電路
串行通信控制是MPC855T中最強大的通信設(shè)備,它可以以多種不同的協(xié)議傳送數(shù)據(jù),比如UART HDLC,以太網(wǎng)等等。圖4說明在不考慮使用什么協(xié)議下的數(shù)據(jù)通信工作流程。
在接收數(shù)據(jù)的FIFO中,當(dāng)接收FIFO開始充滿時,CPM向SCC發(fā)請求。然后請求CPM RISC寫SDMA,以將接收的FIFO數(shù)據(jù)移到當(dāng)前接收緩存,接收緩存通常在外部存儲器。有一個為發(fā)送數(shù)據(jù)的發(fā)送FIFO,當(dāng)發(fā)送FIFO空時,SCC向請求優(yōu)先器發(fā)一個請求,CPM RISC響應(yīng)這個請求后,寫SDMA,將從當(dāng)前激活的發(fā)送緩存來的操作碼移入發(fā)送FIFO。發(fā)送緩存描述符與接收緩存描述符功能相同,在雙端口RAM中有一組發(fā)送緩存描述符,開始的描述符逐個激活,指針從一個描述符移向另一個描述符。緩存描述符總是在雙端口RAM中,由用戶初始化。圖5為SCC管腳,SCC連接5個管腳:發(fā)送、接收、載波檢測、清發(fā)送和請求發(fā)送。
500)this.style.width=500;" border="0" />
根據(jù)設(shè)計要求,將SCC配置成以太網(wǎng)模式。MPC855T以太網(wǎng)控制器必須通過收發(fā)器連接到以太網(wǎng)絡(luò),在設(shè)計中選用了AC101TF[2] 10/100以太網(wǎng)收發(fā)器。圖6為其基本元件和需要連接到MPC855T的管腳,其中HST-005S為隔離變壓器。當(dāng)855T發(fā)送數(shù)據(jù)時,設(shè)置接到RTS的發(fā)送允許管腳,同樣地,當(dāng)收發(fā)器接收數(shù)據(jù)時,設(shè)置接收允許(RENA)線然后置位855T的CD。最后,收發(fā)器上有一個沖突管腳,驅(qū)動控制器上的CTS就可以響應(yīng)沖突。如果RENA和/或CLSN出現(xiàn),激活載波檢測。
500)this.style.width=500;" border="0" />
2.6 快速以太網(wǎng)控制器(FEC)接口電路
10/100Mbps快速以太網(wǎng)控制器集成了FIFO可以獨立地實現(xiàn)突發(fā)模式的DMA傳輸,因此,在不影響CPM性能條件下,可獲得高性能的快速以太網(wǎng)接口。圖7為FEC方框圖??焖僖蕴W(wǎng)控制器FEC,嵌入式PowerPC核,系統(tǒng)接口單元SIU,通信處理模塊CPM都使用32-bit的內(nèi)部總線。
根據(jù)設(shè)計要求,VPN網(wǎng)關(guān)工作在10Mbps以太網(wǎng)環(huán)境中,為了保證其兩個以太網(wǎng)口的工作平衡,把FEC配置成10Mbps工作模式,使用7線串行模式與外部的以太網(wǎng)收發(fā)器連接,仍然選用AC101TF為外部收發(fā)器,其線路連接與圖7類似。
2.7 存儲器電路
MPC855T的存儲器控制器可用來控制8個塊。它可以連接SRAM、EPROM、Flash EPROM、同步DRAM及其他外置設(shè)備而無須附加邏輯電路,它還支持地址總線復(fù)用,定時清除計時器,以及產(chǎn)生行及列的地址選擇波形。
500)this.style.width=500;" border="0" />
如圖8所示,通用目的片選機構(gòu)設(shè)計成SRAM、EPROM、Flash EPROM和其他外設(shè)的接口。用戶可編程機構(gòu)UPM允許接到多種存儲器設(shè)備,同GPCM一樣,用戶可編程機構(gòu)產(chǎn)生一個片選,但一個已經(jīng)編程為波形,或用于一個DRAM塊的RAS,每一個UPM的4個字節(jié)選擇都同樣編程為波形,變成DRAM塊的CAS,UPMA有4個字節(jié)選擇,UPMB有4個字節(jié)選擇。另外,有6個通用目的線,它可以編程為所需的在一個時鐘周期內(nèi)波形,這些通用目的線,特別適合于支持一些新的存儲器技術(shù),如同步DRAM,用戶可編程機構(gòu)產(chǎn)生TA,事實上,在這種機構(gòu)中有可以外部提供TA。
2.8 加密模塊的接口和設(shè)計
為了使用不同的硬件加密算法,將加密模塊設(shè)計成子板的結(jié)構(gòu),在主板上設(shè)計了兩個雙排孔座,各有50個引腳。主要信號有32根數(shù)據(jù)線D[31:0]、16 根地址線A[29:14]、讀寫R/W、輸出使能OE、中斷請求IRQ4、片選CS3、同步時鐘S_CLK以及突發(fā)模式傳輸控制線TS、BURST、TA、BDIP、TEA、+5V電源和地線。按這樣設(shè)計的接口,可以很方便地與多種硬件加密算法芯片做成的加密模塊相連接,如國密辦批準(zhǔn)的SSF10B及國外的網(wǎng)絡(luò)安全協(xié)處理器。
為了測試和滿足不同用戶的需求,設(shè)計了兩款加密模塊。(1)SSF10:其32-bit數(shù)據(jù)寬度版本為SSF10B。SSF10算法為分組密碼算法,支持ECB、CBC、CFB和OFB工作模式。要求工作平臺的CPU能對PWC、PWD、PRC、PRD信號產(chǎn)生等待周期。/PRD的有效時間應(yīng)大于PCLK的時鐘周期T。(2)三重DES:為了與采用IPSec協(xié)議和Triple DES算法的VPN客戶端互通,設(shè)計了一款硬件Triple DES加密模塊,其算法用VHDL語言寫成,并由FPGA完成運算。FPGA選用Altera公司的EP1K30[3]芯片,該芯片有30000個邏輯門電路,可以滿足Triple DES的需要。
3 VPN網(wǎng)關(guān)的實現(xiàn)
這部分的主要工作是將原有x86平臺上的應(yīng)用軟件移植到MPC855T平臺上,作為一個VPN網(wǎng)關(guān),應(yīng)具備兩大功能:(1)路由功能:安全加密路由平臺介于局域網(wǎng)與邊界路由器之間,應(yīng)具備一定的路由轉(zhuǎn)發(fā)功能。(2)IPSec協(xié)議族功能:具備IPSec協(xié)議標(biāo)準(zhǔn)描述的所有功能。
3.1 系統(tǒng)總體框架和工作模式
系統(tǒng)總體框架由5個部分組成:(1)硬件層:基于mpc855t平臺,提供軟件運行環(huán)境。(2)Linux內(nèi)核:嵌入式Linux/ppc-2.4.4。將IPSec實現(xiàn)和防火墻支持編譯到內(nèi)核中。(3)系統(tǒng)服務(wù)和工具。(4)管理控制臺界面。(5)升級服務(wù)。
由于本設(shè)計使用DOC或Flash Memory作為存儲介質(zhì),文件系統(tǒng)工作方式宜用Ram Disk方式。在此方式下,系統(tǒng)工作時根文件系統(tǒng)在ram disk上,系統(tǒng)異常掉電不會對真正的文件系統(tǒng)造成破壞。但因為所有的配置信息都在SDRAM中,掉電將會丟失所有配置信息,因此需要以后臺進程定期檢查配置文件的變動情況,將有變動的文件及時寫回DOC/Flash中。
3.2 IPSec實現(xiàn)中的硬件加密算法
在本文設(shè)計的VPN安全網(wǎng)關(guān)中,加密算法的安全、高效,是VPN網(wǎng)關(guān)安全性和有效性的重要保證。為此在設(shè)計中,采用了一種硬件加密模塊[4]的方式,使得VPN網(wǎng)關(guān)可以在硬件上使用不同的加密算法。在默認(rèn)配置中,使用國密辦批準(zhǔn)的分組加密算法芯片SSF10。為了使用硬件加密模塊,需要在Linux內(nèi)核的IPSec實現(xiàn)中添加和修改相應(yīng)的代碼,下面對其簡單說明。
因IPSec實現(xiàn)在內(nèi)核中的特殊位置,并且MPC855T的主頻較低(80MHz),采用訪問設(shè)備驅(qū)動文件的方式訪問硬件SSF10加密模塊會造成速率大幅降低,因此,我們采用I/O直接訪問硬件SSF10芯片,這樣需將模塊驅(qū)動中的操作分散到IPSec實現(xiàn)的相關(guān)部分,替換原來的軟件加密算法。同理,可以使用硬件DES/3DES、硬件AES[5]算法和其他的國密辦批準(zhǔn)的算法,用硬件實現(xiàn)數(shù)據(jù)加密。對IPSec的一個實現(xiàn)freeswan算法部分進行修改,使其可以實現(xiàn)硬件算法。完成修改后,使用內(nèi)核make menuconfig命令,選中Networking options->[*]IPSEC:Use SSF10......,重新編譯即可使用SSF10硬件算法模塊。
4 結(jié)束語
創(chuàng)新點:開發(fā)由VPN安全網(wǎng)關(guān)、VPN客戶端和VPN安全管理中心三部份組成的VPN安全系統(tǒng)。為保證公網(wǎng)上傳輸數(shù)據(jù)的安全,設(shè)計開發(fā)一款VPN安全網(wǎng)關(guān),用于構(gòu)建上述的VPN安全系統(tǒng)。同PowerPC MPC8xx一樣,MPC82xx也是一款集成了微處理器和外圍器件控制器的通信處理器,可以用于多種通信設(shè)備中。但是MPC82xx具有更高的操作速度:系統(tǒng)內(nèi)核微處理器支持100-333MHz的處理速度,并具有更強大的網(wǎng)絡(luò)處理能力,支持3個快速通信控制器(FCCs),4個串行通信控制器(SCCs),2個多通道控制器(MCCs),適合用于100Mbps以太網(wǎng)環(huán)境中的網(wǎng)絡(luò)設(shè)備。