Profile - CN379


CN379

基于Nios平台的便携式物理防火墙

北京交通大学
计算机与信息技术学院






Advisor

Name: 丁晓明

Members

No. Name English Name
1 王晓慧 WangXiaohui
2 陈陆佳 ChenLujia
3 韩洪宝 HanHongbao

Project Paper

1. 设计概述 (Preliminary Paper)

l 设计意图

随着计算机的发展,人们对信息安全的要求越来越高。其中由于网络技术自身的不足,网络信息安全问题日益严峻,黑客利用网络侵入计算机用户,窃取内部数据和进行病毒传播的事件也屡见不鲜。对于网络终端的安全防护,目前有基于软件的隔离设备,如软件防火墙、杀毒软件和基于硬件的设备隔离防护系统。不过都有其不足之处,现分析如下。

现在网络通信的结构,即终端设备通过网关路由设备与Internet连接结构。IP地址是网络中终端和路由的身份标识。通信双方通过IP地址进行寻路和数据包交换。这样,网络设备只要知道其IP地址就可与其建立连接并进行数据包发送,因此,不安全信息如病毒等很容易进入终端系统。基于软件的隔离设备原理是在终端安装智能分析软件(如杀毒软件)对与终端通信的对端进行判决。若判决通信对端为不安全,则按照IP地址等信息对其发送的数据包进行过滤,防止不安全数据进入终端系统。这样仍存在着不足。首先,在智能分析软件进行分析时,不安全的数据包已经到达了终端,因而风险性仍然很大;其次,防护软件运行在终端的操作系统上,在操作系统本身已受攻击的情况下,防护软件常常不能工作在正常状态,因而会失去保护作用;更重要的是这种方法会消耗大量CPU和内存资源。基于硬件的设备隔离防护系统有针对一个特定局域网安全的物理防火墙或者物理隔离网闸,虽然功能很强大,但是价格较高,大多针对高端用户,如大型企业,而且灵活性和专用性不够强。

U盘、移动硬盘等移动存储设备由于使用灵活、方便,迅速得到了普及,但是在使用便利同时,用户机密资料的外泄也带来了严重的隐患和不可估量的危害。U盘是目前计算机病毒传播的主要介质之一,含有病毒文件的U盘,一旦与PC机连接,就很容易让PC机感染病毒,而同时一些含有恶意程序的U盘,能够在计算机用户未知的情况下对用户的文件进行窃取。

针对上述的情况,我们设计基于NiosII平台的便携式物理防火墙,它将受保护的计算机和网络接口,U盘设备隔离开来。网络和U盘要想和计算机进行数据传输,必须经过物理防火墙AES加解密模块的处理,能够有效地防护来自网络和U盘的威胁。

针对网络的威胁:

第一、     如果遭遇黑客窃取数据,那被窃取的数据将是加密过的,因此不会造成资料的泄漏;

第二、     如果黑客传入病毒文件,经过处理后,病毒已经被破坏,即使传到主机上也将不再产生危害;

第三、     便携式物理防护墙还提供IP列表过滤功能,只对信任的IP传递的数据进行转发。

 

针对U盘的威胁:

第一、     同样,病毒文件将被解密模块破坏,不再对主机产生危害,而正常文件能够正确解密;

第二、     U盘不能通过防火墙主动拷贝PC主机文件到U盘,也不能主动复制文件到PC主机,任何对U盘文件的读取必须由用户操作。

与传统的U盘和网络防护措施相比,便携式物理防火墙的性能有了很大的提高。

 

l  适用范围及针对用户群

本物理防火墙适用于企业、政府、军队等对数据有较高安全要求的机构或组织有安全传输数据需要的普通人

对于一个安全组织而言,如果为每位工作人员配备一台该物理防火墙,将该防火墙插在自己的笔记本上,或者随身携带,就可以随时随地利用公共的互联网和普通USB设备保证信息的安全传输。同时该物理防火墙带有LCD显示器,配有图形界面,操作简单,不需要使用者具备相关方面的专业知识,进一步扩大了该防火墙的适用人群。

 

我们选择DE2平台,原因是:

由于防火墙与PC机之间通过网络传输,同时防火墙还要连到Internet上,所以本系统需要两个网口,而受DE1平台资源的限制,我们只能选择DE2作为开发平台,DE2本身自带一个网口,我们在经过自制电路板,在GPIO上扩展出一个网口,因此在DE2平台上很方便地实现了双网口通信,这也是我们设计的一大特色.

(Revision: 16 / 2008-09-14 06:01:46)

2. 功能描述 (Final Project Paper)

本设计采用DE2开发平台,设计实现了一个功能强大的计算机安全防护产品——便携式物理防火墙,可以对网络和U盘的各种安全威胁进行防护。防火墙的功能罗列如下:

首先是对U盘的防护

1、对U盘的认证功能:计算机用户都会有一个自己的U盘,只有这个U盘对用户PC机而言是安全的,当其他U盘插到PC机时,会提醒用户该U盘不属于用户,可能不安全,询问是否继续读写,让用户作决定。U盘中存有一个经过加密的含有特殊标志的文件,防火墙读取该文件进行解密,然后进行判断。

2、对U盘的隔离功能:U盘是插在防火墙上的,即使有病毒等恶意程序也不能直接攻击PC机。

3、对U盘文件加密:在PC机传给U盘时会经过防火墙,防火墙中的加密模块会对文件进行加密,即使其他人拿到了U盘也不会得知文件的内容,保证了信息的安全。

4、对U盘文件的读取:首先在PC机控制软件中会列出U盘中所有的文件名,用户可以操作选择读取哪个文件,在文件经过防火墙时,解密模块会对文件进行解密,如果是病毒文件,被解密后将被打乱,不会再产生危害。

然后是对网络的防护:

1IP过滤功能:DE2 上提供了SD卡接口,我们在SD卡中存有一个可信任IP列表的文件,所有到达防火墙的数据,防火墙首先会提取数据包的源IP地址,然后进入IP列表中查询,如果列表中存在该IP地址,才会进行处理,否则,直接将数据丢弃。

2、网络隔离功能:来自网络的所有数据都要经过防火墙检测处理后才被发送到PC机上,防火墙将网络与PC机隔离,防止了PC机直接受到黑客攻击。

3、网络数据解密功能:来自网络的数据在经过过滤后还要经过解密模块的处理,这样即使是黑客仿冒了IP地址来攻击PC机,在经过解密处理后,病毒等恶意代码会遭到破坏,这样即使传到PC机也不会产生危害。

4、数据加密传输:发送出的数据经过防火墙,防火墙进行加密处理,然后再发到网络上,这样在传输过程中,被黑客截获后,由于没有密钥,不能正确解密而得不到信息,保证了信息的安全。在没有密钥的情况下,如果是一个有128CPU的超强机对AES解密需要225年,所以进过AES加密的数据很安全。

5、网络透明传输:有些时候(如浏览网页)输入输出的数据不需要加解密,这是可以进行设置,此时防火墙只进行IP过滤,而没有加解密过程,防火墙相当于一个中转站,这样给用户提供了方便。

 以上是针对U盘和网络的,下面:

1、人机交互功能:DE2平台上提供了PS2接口,我们将鼠标外设挂到Avalon总线上。

2PC机与防火墙之间认证:每个PC机配有一个防火墙,他们应该是绑定的整体,防火墙请求连接,PC机发送随机序列数,PC机和防火墙按相同算法对序列进行计算,防火墙将结果发回PC机,PC机与自己结果比较,如果相同,认证成功可以连接,否则断开。

    在作品的功能模块的实现过程中,充分利用了Nios软核的特性,结合嵌入式操作系统uc/OS来完成调度各功能模块的任务,其中还加入了ucFSucGUILWIP。由硬件实现的加解密模块在每个功能中都得到了应用,可以说是系统的一个核心部件。

(Revision: 3 / 2008-09-14 01:13:23)

3. 性能参数 (Final Project Paper)

1 系统资源使用情况

 

 

 

2 AES算法模块分析           对加解密模块进行仿真验证。  

 

加密仿真 

 

密仿真

经过测试,在同等条件下,AES加解密在AlteraDE2平台上Nios核的处理效率是Xilinx公司的Microblaze核处理效率的两倍;根据半导体工业协会的数据:在1GHz的奔腾3上进行AES软件加密,吞吐率是1.6Gb/s,而我们防火墙的硬件加解密的吞吐率为6.4Gb/s,效率是同频率奔腾3的四倍。   

 3 网络速度测试      

我们进行网络上两台机器之间数据传输测试,得到的传输速度大概为80KB/s

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Revision: 29 / 2008-09-14 07:44:19)

4. 设计结构 (Preliminary Paper)

硬件图:

 

软件结构:

本系统由以下几大模块构成系统的软件体系结构:μc/OS-Ⅱ操作系统,管理和分配系统软硬件资源; LWIP协议栈,支持系统网络连接;设备驱动程序,驱动外部设备;加解密模块,实现了对输入输出数据的加解密处理;μcFS文件系统,进行文件读写管理;终端程序,结合文件系统实现用户认证、IP过滤功能;用户界面,通过移植μcGUI实现与用户交互。

软件流程如下:

 

(Revision: 5 / 2008-09-14 00:39:25)

5. 设计方法 (Final Project Paper)

一、系统硬件设计

SOPC Builder设置如下图所示:

 

 二、实现步骤及实现方法

1 AES加解密模块

为了防止数据信息在网络传输过程中的泄露,系统在数据向网络传输时对数据进行加密处理,在系统接收网络数据时完成数据解密处理。本系统实现加解密功能是采用现在比较流行的AES算法。AES可以用软件也可以用硬件实现。软件实现是靠 CPU的运算来实现算法,易受使用条件限制,加密速度慢,易受到破坏,影响数据传输质量;硬件实现是用芯片实现密码算法。通过芯片对数据进行加密。具有保密性高,加密速率高,易于实现复杂功能,易于嵌入,总体成本低等优点。而基于FPGA实现的嵌入式密码模块与以往的主流硬件实现方式( D S P芯片、 单片机)相比,更具有低成本、高速度、微功耗、微小封装以及保密性强等优点。因此本系统中,使用硬件FPGA来实现AES加密。   

利用AES算法,将初始数据进行加密运算,得到不可直接读取的密文数据,然后在网络上传输,通过发送端与接收端共享密钥的方式,在接收端完成解密操作,将密文数据还原为可读取的原始数据。经过这样的处理,使数据在网络传输过程中是不可读取的,可以有效地防止数据在网络传输过程中的泄漏。

本系统采用AES算法,经过如下图所示的运算流程对信息进行隐藏处理。

 

 

 加密流程

 

解密流程

    本系统对信息的加密处理,就是在防护系统上实现将原始数据进行隐藏处理,使数据在网络上传输的过程中,即使被外界获取,在没有共享密钥的情况下也是不能完成数据读取任务的。系统对信息的解密处理,对从网络传来的数据进行还原,使数据重新变为可以读取的信息。这样的加解密过程保证了数据在传输过程中的安全性,使数据在传输时能够得到有效的保证。

     系统实现数据的保密处理是基于对数据实现加解密功能,使数据在传输过程中能有效地防泄露、防窃取。如前文所述,加解密功能采用的是AES算法,分为加密和解密两个部分,加解密的流程如下图所示。

 

 

图 加解密流程
AES加密标准将分组长度固定为128比特,密钥长度可被指定为128,192,256比特,本系统采用的是128位,128位密钥使系统具有更强的安全性和更高的效率,比密钥长度为56位的DES强1021倍。算法每次加密解密时首先要进行密钥扩展,将128位的密钥扩展为一个初始密钥和各轮轮密钥。加密时,初始密钥与明文异或运算后进行轮变换,每一轮(除最后一轮外)包括四步:
字节代换:利用S盒对明文的每一个字节进行非线性变换;
行移位:对行元素进行不同的移位,即对 4*4正方形矩阵的每一行按不同的位移量进行移位;
列混淆:即对 4*4正方形矩阵的每一列并行应用列混和,如果是最后一轮,则省略该步;
轮密钥加:与轮密钥进行异或运算。
相应的,解密的轮变换为逆字节变换、逆行移位、逆列混淆,在使用轮密钥的次序上 与加密刚好相反,是先使用最后一个轮密钥,依次使用轮密钥直到最后一次使用初始密钥。  
本系统利用FPGA实现加解密的过程,我们自行开发了AES加解密IP核,并在SOPC Builder中将加解密IP核模块挂载到Avalon总线上。加解密模块从总线接口处获得需要加密或解密的数据和密钥。由于Nios软核支持32位读写,而加解密的分组长度和密钥长度均为128位,因此系统中需要分别各用四个周期对密钥和数据进行了读取,前4个周期取密钥,后4个周期取数据,并利用4个周期输出加解密的结果。到考虑到效率问题,我们将密钥直接固化到硬件中,因此,将写入的8个周期改为四个周期,提高了系统效率。利用寄存器作为输入输出缓冲,数据从总线接口处进入寄存器中,再从寄存器中进入状态机中,从状态机输出的数据流就是完成了加密或解密功能的数据。

    系统的加解密功能使网络通信建立在共享密钥的双方,即使在双方通信的过程中数据被他人截获、窃取,没有数据加解密的密钥,截获者也是无法解读数据,为实现数据保密提供了可行性。

2双网口网络传输模块
1)硬件实现
我们首先利用了DE2本身自带的DM9000A网口,同时为了增强系统的可扩展性,我们自行设计了网络接口板,通过DE2的扩展口连接起来,这样就使得开发板就有双重网络功能。考虑到扩展口IO口有限,我们还需要使用IO连接LCD显示屏,一次选用IO口数量相对较少的网络芯片DM9000A

 

2)软件实现及LWIP修改
为了向用户提供更好的网络访问的服务,本防火墙移植了Lwip协议栈。同时,因为防火墙需要对数据包进行转发(从一个网口收,再从另一个网口发),我们修改了Lwip协议栈IP层传输的代码。主要修改了ip_route , ip_input, ip_output三个函数。根据ip选择适当的网卡发送出去。

       3)网络信息过滤功能的实现

    功能示意图

 

使用时防火墙一端连接到受保护的PC机,另一端连接到外部的internet网。该功能的主要特点是阻断入侵者与受保护PC的直接连接,过滤掉来自危险ip的数据包,同时保证对用户的半透明性,即如果ip存在在ip列表里则用户可以正常使用,不会感觉到防火墙的存在;用户也可以通过防火墙软件手动配置ip列表,动态改变防火墙的过滤地址。

    具体工作流程如下:当防火墙接收网络上传来的数据,防火墙系统首先获得数据包的源IP地址,将其与系统保存的IP列表进行比对,如果存在于该列表中,则开始接收数据,解密后传给终端,否则直接丢弃数据包。当防火墙向网络发送来自PC机的数据,防火墙系统首先获得数据包的目的IP地址,将其与系统保存的IP列表进行比对,如果存在于该列表中,则开始接收数据,加密后发送给网络,否则直接丢弃数据包。IP列表的设置可以通过LCD屏与用户很好的交互。

 

4)网络文件加解密传输功能实现

       功能示意图

 

 

使用这个功能需要发送方和接收方都需要配备防火墙软件,发送方防火墙用来实现数据加密,接收方防火墙用来实现数据解密。
具体工作流程如下:发送端,PC把明文数据发送给防火墙,防火墙使用AES对数据进行加密,时候把密文发送到网络。接收端,防火墙接收到发送给它的密文,通过使用AES解密算法对数据进行解密,并把解密后的明文发给接收端PC。

       同时,用户在收发文件需要使用我们开发的客户端软件,需要分别点击Send file/Recv file

 

3U盘读写模块
1)U盘模块硬件部分实现
在硬件系统上,系统通过串口转USB口芯片扩展出一个USB接口,实现对U盘的文件读写。通过给串口发送特定的命令串的方法操纵U盘。
2)软件实现
根据串口转USB口芯片的手册,我们提取出了串口操作U盘的基本命令的命令代码,之后我们把这些命令封装到一些函数提供给上层使用
3)客户端软件

    为了方便用户的读写操作,我们在PC端开发出来U盘读写软件,并提供了四种基本功能:读入,删除,写入,显示文件列表。下图是PC端软件U盘控制部分:

 

4)四种基本操作的实现
a.读U盘文件列表

   PC发送读文件列表命令给防火墙,防火墙把命令转换成串口操作代码发送给串口转USB芯片,U盘会返回一个文件或文件夹的名称字符串;如果所有的文件或文件夹名称都返回过了,则U盘返回结束标志给PC。

 

b.写入文件操作
PC发送要写入的数据和文件的名称给防火墙,防火墙首先会对文件进行加密操作,之后发送相应的串口操作命令码,把数据写入到U盘,如果写入成功U盘返回成功信息。

 

 

c.读出文件操作

    PC发送要读出的文件名称给防火墙,防火墙首先发送相应的串口操作命令码读出数据,之后对数据进行解密操作,最后把得到的解密数据返回给PC。

 

d.删除文件操作
PC发送删除要文件的名称给防火墙,防火墙把命令转换成串口操作代码发送给串口转USB芯片,U盘会返回是否删除成功信息。

 

4认证模块
      1)PC机和防火墙的认证
      防火墙上电后,首先进入登陆界面,用户点击Login按钮进入登陆模式。同时,在PC端需要预先安装一个控制台程序,点击控制台上Identify按钮开始接收防火墙的认证。

     认证时采用C/S模式,PC机工作在服务器模式,防火墙工作在客户端模式。首先防火墙请求与PC建立一个连接,并要求PC返回一个16字节的随机序列。PC得到请求后,产生随机序列并发给防火墙。在PC控制台和防火墙认证程序里,都已经事先存入了相同算法A。PC和防火墙分别使用这个算法处理16字节的随机序列并得到结果值,防火墙把自己计算得到的结果值发给PC,PC把自己计算的结果值和收到的防火墙结果值进行比对,如果相同,则认证成功;如果不相同,则认证失败。

 

 

2)U盘的认证
为了增加对U盘的安全保护,我们加入了一个对U盘的认证机制。如果是一个我们认为安全的U盘,我们会往U盘里预先存入一个经过加的标志文件。
认证采用C/S模式,其中防火墙工作在服务器模式,而PC机工作在客户端模式。PC机首先发送检测命令给防火墙,防火墙接收到命令后读入一个名为“IDEN.TXT”的文件。由于U盘内存储的是经过加密的文件,防火墙会对收到的文件进行AES解密,并把得到的明文和预先约定的内容进行比对,如果相同认证成功,U盘可以安全读写;如果内容不同,则认证失败,U盘可能并不安全,此时我们会在PC端提示用户去选择是继续操作还是放弃此次会话。
 
5人机交互模块
      1LCD及鼠标硬件部分
LCD控制器芯片采用TCB8000C,控制5.7寸TFT65000色LCD显示屏。控制器接口与MCU接口图如下,通过编写了硬件程序以Avalon总线从设备的方式连接到Avalon 总线上,实现nios直接访问LCD控制器的功能,利于驱动程序编写,简化后续的GUI移植中有关LCD驱动部分。

系统采用PS/2接口鼠标,PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。与nios的连接仍然采用verilog语言编写Avolon从设备,实现PS/2鼠标的传输协议。程序包括mouse_avalon_interface.v,mouse_register_file.v,ps2_mouse_interface.v。其中mouse_avalon_interface.v是avalon总线从设备接口,mouse_register_file.v,ps2_mouse_interface.v完成PS/2鼠标协议的数据转换和传输。编写对应的GUI下的驱动程序,实现GUI的鼠标操作功能。
2µc/gui移植
μC/GUI是一款针对嵌入式系统的优秀图形软件,它具有源码公开、可移植、可裁减、定性和可靠性高的特点。μC/GUI提供了丰富的界面元素,例如按钮、编辑框、滑动条等控件,同时支持高效的窗口回调机制,为界面与应用函数之间提供了良好的接口机制。IP列表设置系统的人机交互界面正是利用这个工具进行开发的。μC/GUI软件体系结构:

 

μC/GUI函数库为用户程序提供GUI接口,包含的函数有文本、数值、二维图形、输入设备以及各种窗口对象。其中,输入设备可以是键盘、鼠标或触摸屏;二维图形包括图片、直线、多边形、园、椭圆、圆弧等;窗口对象包括按钮、编辑框、进度条、复选框等。
μC/GUI函数库可以通过GUIConf.h文件进行配置,配置的内容包括是否采用内存设备,是否采用窗口管理器,是否支持操作系统、触摸屏,以及配置动态内存的大小等。
LCDConf.h文件中定义了与硬件有关的各种属性,如液晶的大小、颜色以及与液晶的接口函数。而LCD驱动文件则负责把μC/GUI的各种函数解释成LCDConf.h文件中定义的液晶接口函数,这个文件与具体的硬件连接无关。
μC/GUI与LCD的硬件接口通过驱动文件把硬件接口函数转化为LCDConf.h中定义的LCD读写函数。
 
μC/GUI移植过程:
1.配置文件的移植
    移植工作首先需要完成的是对配置文件的GUIConf.h, LCDConf.h移植,根据IP列表设置系统的显示模块的要求,对配置文件的相关的参数进行配置。
2.LCD驱动的移植
μC/GUI针对不同的液晶控制器提供了多种驱动程序,如KS0713、SEDl335、T6963等控制器都有对应的液晶驱动程序。但是由于在本系统中,采用的显示模块为TOPWAY TCB8000A LCD控制器和TFT、 65000色、LCD屏。而μC/GUI没有提供相关控制器的驱动,并且与μC/GUI提供驱动支持的LCD控制器相比较,TCB8000A控制器拥有自己独立的屏幕控制指令体系,这给μC/GUI在TCB8000A控制器的移植工作带来了很大的难度。
在移植的过程中,我们首先运用TCB8000A的指令体系,实现了μC/GUI为上层应用函数提供的大部分API函数,接着对于TCB8000A控制器不能在硬件支持的API函数,我们采用软件实现的方法对驱动进行了修补,最后通过对大量控件显示测试实验,调整了在LCD驱动中运用的TCB8000A显示指令中的参数,使得LCD驱动的性能达到最优。最终实现了μC/GUI在TCB8000A控制器上的无缝移植。 
6SD卡存取模块
    DE2上的SD读卡装置为1线方式,其速度受到了很大限制。我们把装置改动为4线方式,使其更加符合我们系统的要求。

在nios II软件开发集成环境下,包含了uc/OS,可以使用户方便的应用到自己的软件工程里,我们为了更合理使各任务共同执行、共享cpu,我们使用了uc/os操作系统,并为其加挂文件系统。我们使用Micrium 公司的Uc/fs,他和μc/OS有着很好的兼容性,经过努力我们成功移植了μc/FS 1.34版本到DE2平台上,为四线模式的SD卡架起了文件系统。经过比较测试,读写速度有了很大提高,1M数据读写分别只用时3.6s和11s。这样基本满足了我们存取数据文件的速度要求。

 

 

SD模式时序
CLK: Host to card clock signal
CMD: Bidirectional Command/Response signal
DAT0 - DAT3: 4 Bidirectional data signals.
VDD, VSS1, VSS2: Power and ground signals.
1线与4线区别

     
单数据块读:
 单数据块读:
μc/FS文件系统:
在μc/FS软件包里面有文件夹如下表
API
对外的一些接口
CLIB
一些基本的标准C库函数的实现,主要是字符串,内存的处理。
CONFIG
针对各个target的一些配置项,包括各个类型的配置
DEVICE
设备层的封装,当前有硬盘,ram,smc,windows(IO接口)等;主要实现FS__device_type的接口
FSL
文件系统层(对各种文件系统的支持)当前有FAT文件系统
LBL
逻辑块层(对OS,device层的封装)OS系统级的一些操作(信号量)
 

uc/FS结构框图

文件系统下的部分函数
File system control functions
FS_Exit()             Stop file system
FS_Init()              Start file system
File access functions
FS_FClose()             Close a file
FS_FOpen()                 Open a File
Direct input/output functions
FS_FRead()                 Read data from file
FS_FWrite()             Write data to file
Directory functions
       FS_CloseDir()              Close a directory
       FS_MkDir()                 Create a directory
FS_OpenDir()            Open a directory
FS_ReadDir()              Read from a directory
FS_RewindDir()        Reset position in directory stream
FS_RmDir()                Remove a directory
 
 
我们运用SOPC的设计理念,成功的完成了本系统的设计任务,基本完成了预先设置功能。在系统设计过程中,Sopc概念在以下几个方面得到了体现:
1、 系统的可重构性
由于niosII是软核处理器,具有可裁剪的特性。因此对于我们设计的系统具有广阔的升级空间,比如,因为时间的原因,一些适合fpga硬件实现的算法我们采用的c程序实现,速度受到限制,在后续的工作中我们可以在不更改硬件平台的情况下升级我们;还有就是目前的显示屏像素值不够,编写不同的LCD控制器便能够兼容同类型的LCD显示,这些都是sopc给我们带来的系统可重构优点。
2、 系统设计模块化
系统设计过程是个团队密切协作分工合作的过程。普通的嵌入式处理器平台设计必须针对特定的处理器进行设计,硬件工作完成后才能够进行软件调试。但是nios就不同了,只要是能够支持nios的alter的FPGA芯片,在其他FPGA平台上进行调试是没有任何区别的。这样能够使得设计过程的软硬件工作同步进行,在实际产品的设计过程中,就可以将市场拓展和产品研发同时启动,缩短了整个产品的面世周期,这对企业无疑具有无可估量的意义。

 

 

 

 

 

 

 

 

(Revision: 23 / 2008-09-14 08:34:09)

6. 设计特点 (Preliminary Paper)

 

基于NiosII的物理防火墙具有运算速度快,体积小,操作简单,能够将所有不安全数据隔离在终端系统之外,同时加解密传输,保证信息在网络上不会泄露。
1.       我们使用的是AES加密算法,运算量大,为了提高效率,我们将AES加解密做成硬件模块,加解密完全由硬件实现,速度得到明显提高,根据半导体工业协会的数据:在1GHz的奔腾3上进行AES软件加密,吞吐率是1.6Gb/s,而我们防火墙的硬件加解密的吞吐率为640Mb/s,效率是同频率奔腾3处理器4倍。Sopc Builder开发平台在系统硬件设计时,能够根据系统需求添加自定义外设。
2.       在DE2平台上实现双网口通信,防火墙与PC机和Internet之间都是通过网线连接的,除DE2平台自带的一个网口外,我们自制了一个电路板,加到GPIO口上,扩展出另一个网口,成功实现了双网口通信。
3.       为了实现网络通信,我们成功地移植了LWIP协议栈到操作系统。
4.       便携式物理防火墙的包括加密模块,解密模块,图形界面模块,网络传输模块,U盘读写模块等。NiosⅡ支持实时操作系统,μC/OS-II实时操作系统控制所有任务的调度以及整个系统的运行。
5.       GUI的应用为便携式物理防火墙提供了友好的人机交互界面,使得应用操作更加的方便,使系统更加人性化和界面化。
6.       用于实现IP过滤的可信任IP列表存储在SD卡中,为了方便读写,系统中增加了μcFS文件系统.
(Revision: 4 / 2008-09-14 02:23:11)

7. 总结 (Final Project Paper)

 

我们本次大赛的作品按照初赛计划完成了设计的全部功能,不过这是一个没有止境的领域,有很多东西还要继续学习继续实践。大赛过程中我们比较了DE1和DE2资源的不同,根据我们功能的需要,选择了DE2作为开发平台。

发现该开发平台的接口很丰富,我们充分的使用这些接口充实我们的系统。双网口实现网络传输,串口转USB实现U盘读写,扩展LCD屏,PS/2鼠标等,除此之外还有AES加解密自定义外设,加解密完全由硬件实现,算法是用Verilog硬件描述语言写的,这个对我们的锻炼很大,经过不懈努力还是将其做成了一个IP核,成功挂到Avalon总线上,成为一个自定义外设,成为系统的核心部件

软件方面学会了在Nios上使用μc/OS-μcGUI、μcFS和LWIP,积累了这方面的编程及调试经验。由于硬件编译的时间相对会长一些,这就要求我们提高每次修改程序的准确性,同时锻炼了耐性。

大赛使我们深刻理解了SOPC的设计理念,使我们可以根据自己的需要定制系统,正是激发学生创新之处。本设计充分发挥了FPGA高度集成的优点。

最后感谢Altera公司为我们提供了非常好的理论与实现相结合的实践机会,通过大赛,使我们的理论学习得到了很好的实践。看到我们的想法被实现,很高兴,我们的努力终于有了结果。

(Revision: 2 / 2008-09-14 02:24:29)