EDN China > 设计实例 > 可编程器件 > FPGA > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于GAP技术的网络隔离设备的设计

来源:国外电子元器件/作者:黄豪佑 卢建刚?? 2008年02月15日 ?? 收藏0

  1 引言

  随着电子商务的发展,网络安全越来越重要。病毒和黑客攻击造成的损失无法估算,防火墙、杀毒软件等防范措施都是基于软件的保护,并不能完全可靠地阻止外界的攻击,因此迫切需要比传统产品更为可靠的技术防护措施。GAP技术是一种基于硬件的保护技术。

  2 系统工作原理

  国内外快速发展的GAP技术以物理隔离为基础,在确保安全性的同时,解决了网络之间信息交换的困难,从而突破了因安全性造成的应用瓶颈。GAP技术是通过专用硬件使2个或者2个以上的网络在不连通的情况下实现安全数据传输和资源共享的技术。它采用独特的硬件设计,保证在任意时刻网络间的链路层断开,阻断TCP/IP协议及其他网络协议,能够显著地提高内部用户网络的安全强度,与防火墙、入侵检测有很大的区别:防火墙、IDS技术从正面抗击黑客入侵,而GAP产品以攻击技术的物质基础即网络介质实现隔离,使黑客技术无用武之地。2个网络(内部网络和外部网络)物理断开,但逻辑相连。GAP的结构如图1所示。

GAP的结构

  专用隔离硬件与内外网处理单元构成一个GAP系统,隔离硬件由纯电路构成,隔离硬件中增加暂存区的设计,满足了数据传输的实时性和传

输效率要求。笔者在GAP原理的基础上提出基于FPGA的专用隔离硬件设计的新方案,并对关键技术进行了深入研究。

  3 系统方案设计

  3.1 系统结构

  该系统主要由1个超大规模逻辑器件、2个68针P电缆SCSI接口和2个SDRAM构成,系统整体硬件结构如图2所示。

系统整体硬件结构

  在该系统中,FPGA要集成核心控制器、SCSI协议控制器、SDRAM控制器模块,核心控制器从SCSI协议控制器获得二端处理单元的命令,执行相应的动作,如检查设备、读写数据等,而且将SCSI协议控制器与存储器隔离,在任何时候,1个SCSI协议控制器只能与1个存储器构成通路。系统中的缓冲区由两片SDRAM构成,核心控制器通过调用SDRAM控制器IP核对其进行同步操作,从一片读数据的同时向另一片写数据,可以完成读写乒乓机制功能,有助于提高传输速度。专用隔离硬件进行内外网之间大量数据的传输,为了保证高速和实时,选用68针的P电缆线,支持16位宽SCSI。为了满足功能的需要,FPGA选用ALTERA公司的EPlK5OQC208-3,其逻辑门和引脚资源丰富,速度大于50 MHz。其主要特性如下:2.5 V核心电压,低功耗设计;208引脚,171个可用I/O口;内有l 728个逻辑单元和6个嵌入式RAM块。

  3.2 SCSI协议控制器的设计

  在SCSI总线上进行任何处理都需要8个总线阶段:空闲阶段、仲裁阶段、选择阶段、重选阶段、消息输入/输出阶段、数据输入/输出阶段、命令阶段、状态阶段。在任何时候,SCSI总线只能处于一个确定的总线阶段。阶段之闻的前后关联受到严格限制,也就是说并不是每个阶段后面都可以跟着任何阶段。图3示出了SCSI总线阶段状态的转化,如命令和数据阶段只能在消息阶段之后出现,同样,消息阶段的后面必须紧跟这两个阶段,而不是其他阶段。

SCSI总线阶段状态的转化

  该协议控制器的设计严格按照SCSI总线阶段转化过程,由以上分析提出SCSI协议控制器的FP-GA实现方案:由于空闲、仲裁这两个总线阶段的机理简单,故将其直接放在SCSI模块中实现,其余每个阶段都有相对应的模块,整个系统软件由1个顶层模块和7个平行的底层模块构成。模块层次如图4所示。

模块层次

  • SCSI模块有1个有限状态机,每个状态对应底层的1个模块,并用寄存器S_MODE的不同取指来表示不同模块,通过这个状态机实现阶段转换、消息处理、命令解释、数据处理和状态处理等功能。

  • Sel模块处理选择阶段的时序。启动器将信号BSY、SEL、ATN和启动器的ID号以及目标器的ID号置为有效,启动器随后释放BSY信号,经过200ms之后目标器将BSY信号置为有效,再过2个延迟周期后启动器释放SEL信号并进入消息阶段。

  • Resel模块处理重新选阶段的时序。启动器将信号BSY、SEI I/O和启动器的ID号以及目标器的ID号置为有效,启动器随后释放BSY信号。最多200ms之后目标器必须将BSY信号置为有效作为响应。

  • Msg_out模块处理消息出阶段的时序。启动器将ATN置为有效,目标器将信号MSG和C/D信号置为有效,I/O信号为无效。这意味着接下来要进入的是消息出相序,启动器将发出16位宽传输消息。发送完信息字节后,启动器将释放ATN信号,根据发出的信息确定下一个阶段。

  • Cmd模块处理命令阶段的命令接收时序。目标器在接收到启动器80H的消息后进入命令阶段。目标器需将MSG和I/O置为无效,将C/D置为有效,接收完命令后,将根据命令判断接下来要进入的是数据输入阶段还是数据输出阶段。

  • Dat模块处理数据阶段的数据接收和发送时序。数据接收时,在命令READ、TESI UNIT READY、INQUIRY、REQUEST、SENSE、READ CAPACITY后都将进入数据进相序。此时目标器将MSG和C/D信号置为无效,将I/O信号置为有效。目标器将发送相应的数据。在命令为WRITE后将进入数据出阶段,此时目标器将MSG、C/D和I/O都置为O,启动器向目标器发送数据,之后进入消息阶段。

  • Status模块处理状态阶段的时序。在命令完成后将进入状态阶段,目标器将MSG信号置为无效,将C/D和I/O信号置为有效,并发送命令执行的情况是GOOD还是CHECK CONDITON。状态阶段结束后将进入消息进阶段,向启动器说明一个COM-MAND COMPLETED。至此一个SCSI访问结束。目标器将进入空闲阶段,启动器将可以通过1个80 H的消息触发另外一个访问。

  • Msg_in模块处理消息进阶段的消息发送时序。目标器接收到16位宽传输的消息后将进入消息进时序。目标器将MSG、C/D以及I/O都置为有效,并发送重复的信息。发送完后目标器将释放MSG信号,并根据消息确定下一个阶段。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

FPGA? SCSI协议控制器? GAP?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈