一种基于VPN网关的电原理设计与实现
扫描二维码
随时随地手机看文章
1.引言
PowerPC MPC8xx(Power QUICC[1],Quad Integrated Communications Controller)是一款集成了微处理器和外围器件控制器的通信处理器,可以用于多种通信设备中。PowerPC有优异的通信和网络性能,同基于x86 CPU的工控机平台相比,PowerPC更适合用于专门的网络设备,可以提高产品的性价比和可靠性,使产品具有更强的竞争力。
在PowerPC MPC8xx系列中,根据设计要求,选择性价比较高的MPC855T作为VPN安全网关的控制器。MPC855T由三个模块组成,每一个模块使用32-bit的内部总线:PowerPC核、系统接口单元(SIU)和通信处理模块(CPM)。
2.VPN网关电原理设计
2.1 总体结构
500)this.style.width=500;" border="0" />
硬件由主板、加密算法板、LCD显示板、灯板、电源、风扇、机壳组成。其中主板和加密算法板的设计,占整个硬件设计任务量的90%以上,本论文只针对这两个板的设计。
主板由CPU部分、存储器部分、通信接口部分、加密算法及随机序列产生模块部分、调试及配置接口部分、电源等部分组成。主板的电原理框图由图1所示。
2.2 复位电路
复位控制器对出现的复位源作出响应。所采取的动作决定于复位源,但通常它执行异常处理向量表中0x100位置的程序并初始化基于MODCK[1-2]和总线管脚0到14的特殊参数。
MPC855T有几个复位源连接到复位逻辑,其中3个复位源为管脚。即上电复位(Power-On Reset),硬复位(Hard Reset),软复位(Soft Reset)。上电时产生硬和软复位管脚设置,这时硬和软复位管脚为输出。但是,当系统已上电并运行时,可以配置按钮或相似设备以产生外部软或硬复位,在这种模式,管脚为输入。图2为上电复位和硬复位顺序图。
500)this.style.width=500;" border="0" />
由图2可知,当上电(Power-On)设置时,MPC855T进入上电复位状态。在该状态下设置硬复位和软复位。随后,855T采样MODCK管脚,并初始化系统时钟。设备保持在上电复位状态直到上电复位翻转,锁相环(PLL)锁定。最后,芯片进入内部初始化的硬复位状态。
2.3 时钟电路
MPC855T时钟模块包含主晶体振荡器(OCSM)、系统锁相环(SPLL)、低功耗除法器和时钟产生/驱动模块,在复位时,MPC855T读MODCK[1-2]管脚。
500)this.style.width=500;" border="0" />
在XTAL和EXTAL端,外接32.768kHz的晶体时钟电路作为CPU的实时时钟源。在断电的瞬间,要求PORESET保持高电平,否则会引起CPU进入不定状态,其内部的实时时钟不能正常工作。通过实验,在复位芯片MAX811_EUS-T的电源端接一47µF的电解电容,以使在断电瞬间,保持PORESET为高电平。经反复测试,工作可靠。在XFC管脚上,应连接一片外电容器,用于片内系统锁相环(SPLL)滤波器。电容器的一端连到XFC。电容器的值与PLPRCR[MF]有关,其取值由表1决定。在本设计中,MF+1=8。由表1可知,XFC的电容值为6640-11760pF,故使用0.01µF的电容器。
2.4 串行管理控制器(SMC)接口电路
SMC有2个全双工通道,可以编程配置它们独立支持UART,透明方式和GCI。SMC使用缓存描述字符,缓存在存储器中,SMC向CPM RISC提供请求,使SDMA传送数据。每个SMC有3个管脚,一个发送管脚,一个接收管脚步和一个同步管脚,同步管脚在发送和接收开始后,只用于透明方式。图3说明了端口B中这些管脚的位置。有的管脚可以共用,必须根据需要配置这个端口,它可以通过端口配置寄存器实现。
根据设计要求,将SMC1和SMC2配置成UART,外接232电平转换芯片MAX3232,其中SMC1用于控制台(Console)接口,由DB9座(针或孔可选)引出;SMC2分时用于前面板LCD显示控制和与IC卡读写器(可选)的通信,通过模拟开关74HCT4053进行切换,其控制由口线PB[30]完成。
500)this.style.width=500;" border="0" />
2.5 串行通信控制器(SCC)接口电路
串行通信控制是MPC855T中最强大的通信设备,它可以以多种不同的协议传送数据,比如UART HDLC,以太网等等。图4说明在不考虑使用什么协议下的数据通信工作流程。
在接收数据的FIFO中,当接收FIFO开始充满时,CPM向SCC发请求。然后请求CPM RISC写SDMA,以将接收的FIFO数据移到当前接收缓存,接收缓存通常在外部存储器。有一个为发送数据的发送FIFO,当发送FIFO空时,SCC向请求优先器发一个请求,CPM RISC响应这个请求后,写SDMA,将从当前激活的发送缓存来的操作码移入发送FIFO。发送缓存描述符与接收缓存描述符功能相同,在双端口RAM中有一组发送缓存描述符,开始的描述符逐个激活,指针从一个描述符移向另一个描述符。缓存描述符总是在双端口RAM中,由用户初始化。图5为SCC管脚,SCC连接5个管脚:发送、接收、载波检测、清发送和请求发送。[!--empirenews.page--]
500)this.style.width=500;" border="0" />
根据设计要求,将SCC配置成以太网模式。MPC855T以太网控制器必须通过收发器连接到以太网络,在设计中选用了AC101TF[2] 10/100以太网收发器。图6为其基本元件和需要连接到MPC855T的管脚,其中HST-005S为隔离变压器。当855T发送数据时,设置接到RTS的发送允许管脚,同样地,当收发器接收数据时,设置接收允许(RENA)线然后置位855T的CD。最后,收发器上有一个冲突管脚,驱动控制器上的CTS就可以响应冲突。如果RENA和/或CLSN出现,激活载波检测。
500)this.style.width=500;" border="0" />
2.6 快速以太网控制器(FEC)接口电路
10/100Mbps快速以太网控制器集成了FIFO可以独立地实现突发模式的DMA传输,因此,在不影响CPM性能条件下,可获得高性能的快速以太网接口。图7为FEC方框图。快速以太网控制器FEC,嵌入式PowerPC核,系统接口单元SIU,通信处理模块CPM都使用32-bit的内部总线。
根据设计要求,VPN网关工作在10Mbps以太网环境中,为了保证其两个以太网口的工作平衡,把FEC配置成10Mbps工作模式,使用7线串行模式与外部的以太网收发器连接,仍然选用AC101TF为外部收发器,其线路连接与图7类似。
2.7 存储器电路
MPC855T的存储器控制器可用来控制8个块。它可以连接SRAM、EPROM、Flash EPROM、同步DRAM及其他外置设备而无须附加逻辑电路,它还支持地址总线复用,定时清除计时器,以及产生行及列的地址选择波形。
500)this.style.width=500;" border="0" />
如图8所示,通用目的片选机构设计成SRAM、EPROM、Flash EPROM和其他外设的接口。用户可编程机构UPM允许接到多种存储器设备,同GPCM一样,用户可编程机构产生一个片选,但一个已经编程为波形,或用于一个DRAM块的RAS,每一个UPM的4个字节选择都同样编程为波形,变成DRAM块的CAS,UPMA有4个字节选择,UPMB有4个字节选择。另外,有6个通用目的线,它可以编程为所需的在一个时钟周期内波形,这些通用目的线,特别适合于支持一些新的存储器技术,如同步DRAM,用户可编程机构产生TA,事实上,在这种机构中有可以外部提供TA。
2.8 加密模块的接口和设计
为了使用不同的硬件加密算法,将加密模块设计成子板的结构,在主板上设计了两个双排孔座,各有50个引脚。主要信号有32根数据线D[31:0]、16 根地址线A[29:14]、读写R/W、输出使能OE、中断请求IRQ4、片选CS3、同步时钟S_CLK以及突发模式传输控制线TS、BURST、TA、BDIP、TEA、+5V电源和地线。按这样设计的接口,可以很方便地与多种硬件加密算法芯片做成的加密模块相连接,如国密办批准的SSF10B及国外的网络安全协处理器。
为了测试和满足不同用户的需求,设计了两款加密模块。(1)SSF10:其32-bit数据宽度版本为SSF10B。SSF10算法为分组密码算法,支持ECB、CBC、CFB和OFB工作模式。要求工作平台的CPU能对PWC、PWD、PRC、PRD信号产生等待周期。/PRD的有效时间应大于PCLK的时钟周期T。(2)三重DES:为了与采用IPSec协议和Triple DES算法的VPN客户端互通,设计了一款硬件Triple DES加密模块,其算法用VHDL语言写成,并由FPGA完成运算。FPGA选用Altera公司的EP1K30[3]芯片,该芯片有30000个逻辑门电路,可以满足Triple DES的需要。
3 VPN网关的实现
这部分的主要工作是将原有x86平台上的应用软件移植到MPC855T平台上,作为一个VPN网关,应具备两大功能:(1)路由功能:安全加密路由平台介于局域网与边界路由器之间,应具备一定的路由转发功能。(2)IPSec协议族功能:具备IPSec协议标准描述的所有功能。
3.1 系统总体框架和工作模式
系统总体框架由5个部分组成:(1)硬件层:基于mpc855t平台,提供软件运行环境。(2)Linux内核:嵌入式Linux/ppc-2.4.4。将IPSec实现和防火墙支持编译到内核中。(3)系统服务和工具。(4)管理控制台界面。(5)升级服务。
由于本设计使用DOC或Flash Memory作为存储介质,文件系统工作方式宜用Ram Disk方式。在此方式下,系统工作时根文件系统在ram disk上,系统异常掉电不会对真正的文件系统造成破坏。但因为所有的配置信息都在SDRAM中,掉电将会丢失所有配置信息,因此需要以后台进程定期检查配置文件的变动情况,将有变动的文件及时写回DOC/Flash中。
3.2 IPSec实现中的硬件加密算法
在本文设计的VPN安全网关中,加密算法的安全、高效,是VPN网关安全性和有效性的重要保证。为此在设计中,采用了一种硬件加密模块[4]的方式,使得VPN网关可以在硬件上使用不同的加密算法。在默认配置中,使用国密办批准的分组加密算法芯片SSF10。为了使用硬件加密模块,需要在Linux内核的IPSec实现中添加和修改相应的代码,下面对其简单说明。
因IPSec实现在内核中的特殊位置,并且MPC855T的主频较低(80MHz),采用访问设备驱动文件的方式访问硬件SSF10加密模块会造成速率大幅降低,因此,我们采用I/O直接访问硬件SSF10芯片,这样需将模块驱动中的操作分散到IPSec实现的相关部分,替换原来的软件加密算法。同理,可以使用硬件DES/3DES、硬件AES[5]算法和其他的国密办批准的算法,用硬件实现数据加密。对IPSec的一个实现freeswan算法部分进行修改,使其可以实现硬件算法。完成修改后,使用内核make menuconfig命令,选中Networking options->[*]IPSEC:Use SSF10......,重新编译即可使用SSF10硬件算法模块。
4 结束语
创新点:开发由VPN安全网关、VPN客户端和VPN安全管理中心三部份组成的VPN安全系统。为保证公网上传输数据的安全,设计开发一款VPN安全网关,用于构建上述的VPN安全系统。同PowerPC MPC8xx一样,MPC82xx也是一款集成了微处理器和外围器件控制器的通信处理器,可以用于多种通信设备中。但是MPC82xx具有更高的操作速度:系统内核微处理器支持100-333MHz的处理速度,并具有更强大的网络处理能力,支持3个快速通信控制器(FCCs),4个串行通信控制器(SCCs),2个多通道控制器(MCCs),适合用于100Mbps以太网环境中的网络设备。