3.片上系统设计
3.1 设计说明
系统主要由两大部分组成,分别是以处理器PowerPC 405内核为核心的嵌入式系统,包括PPC 405硬核、PLB总线、OPB总线、PLB2OPB bridge、RS232_Uart、PLB内存控制器以及GPIO等IP核以及自己开发的IP核。另一部分是进行流量统计和控制、过滤丢包等功能的fpga硬件逻辑模块,由verilog HDL语言开发,用到了Xilinx公司开发的MAC Core、 CAM Core 等模块。然后在Xilinx ISE 开发环境中建立了一个顶层模块,将两者连接起来,然后在PowerPC 405处理器平台上进行软件开发。
系统通过RJ45网口连入网络,通过板上的PS2接口连接键盘,作为片上系统的输入设备,然后通过串口连接到服务器上,向服务器输出系统的工作状态等信息。PowerPC通过PLB总线和内存控制器连接,并通过PLB2OPB桥接器、OPB总线与PS2、RS232_Uart以及自己开发的IP核等低速设备连接。系统的软件可以在片内的ram中运行。
3.2 设计截图3.3 设计综合结果
4. 系统软件设计
根据系统设计的需要,我们需要使用fpga内置的处理器PowerPC在系统启动时对硬件逻辑进行初始化配置,并在系统运行的过程中通过串口和控制端主机通信,接收主机发送的命令,对硬件逻辑进行即时的配置,并且能够向主机发送系统的工作状态、网络流量的统计数据和捕获到的特定的数据包数据等数据信息。
系统的软件的任务主要可分为: 1. 对系统初始化配置;2. 与用户或者服务器控制台交互;3可以进行软件匹配、流量统计和流量控制。
4.1 系统初始化系统在上电工作时或者复位后由软件对系统进行初始化配置。包括对MAC Core的配置、数据包长度阈值的配置、CAM的配置、处理方式的配置和对流量统计和管理的配置等。
上电或者复位后运行在处理器上的软件对硬件逻辑里的寄存器进行初始化配置。在硬件上将自己开发的挂接在OPB总线上的IP核myfirewall的与硬件逻辑的CONF_IF模块的相应端口相连,PPC通过总线对myfirewall中的寄存器直接进行读写,并通过这些总线直接访问的寄存器给给fpga逻辑设计发送地址信号,数据信号,使能信号,清零信号和读写控制信号。
信号时序图如下:
具体的寄存器地址、位数以及意义等信息在5.8小节。
4.2 与用户进行交互系统在运行的过程中可以和用户进行交互,用户可以在服务器上上读取寄存器的配置信息,也可以修改寄存器的值,即时地改变系统的工作方式。
软件通过串口连接到服务器来对用户显示系统的工作状态,并通过读取键盘等输入设备的输入或者通过串口接收服务器发送的命令来对与用户进行交互。在与用户交互过程中,通过在XPS提供的PS2的驱动上进一步开发,可以使得用户可以通过连在开发板上的键盘直接输入命令、地址和数据等信息。 同时可以通过串口实时的向服务器发送工作状态等信息,并可以从串口接收数据。
用户可以在服务器服务器上输入要匹配的信息,这些信息会被发送给系统的处理器PowerPC,并由处理器对fpga进行配置,使系统在工作时从每个流经的数据包里提取相应的信息组成匹配关键字,并送到CAM中去匹配。然后根据匹配结果进行处理,处理方式在对系统配置时配置。
4.3 软件匹配、流量管理系统工作时是通过提取接收到的数据包总的关键字来进行匹配,根据匹配的结果和软件配置的处理方式来决定对数据包的处理方式。软件可以灵活地配置匹配关键字、处理方式等内容。
在流量管理中,软件通过对硬件逻辑进行配置使硬件逻辑可以按照软件的配置根据SIP、DIP、SPORT、DPORT或者某种协议对各用户的流量进行统计,并将统计结果记录在相应的寄存器中。软件通过读取硬件逻辑寄存器中的统计信息和时间信息计算流量,如果某个用户流量超过一定阈值,就可以决定对其进行丢包处理或者部分丢包处理,从而可以管理整个局域网中的网络流量,并可以有效地阻止外来的恶意攻击或者网络内部的攻击。