基于CPLD/FPGA的USB读写控制器

2011-07-01 09:44:30来源: 单片机与嵌入式系统 关键字:USB读写控制器  FPGA  CPLD
   

引言
    随着计算机科技的发展,无纸办公日益成为各单位日常办公的主要形式。而随着USB存储设备日益广泛的使用,数据泄漏的危害也越来越严重。因此在单位内部对USB存储设备的操作权限进行控制是很有必要的。
    本设计可将不同的USB存储设备(包括安全存储设备和普通存储设备)通过不同的接口接入到主机上,同时对主机和设备问传输的数据进行提取,分析和拦截。其应用范围比较广泛,为了方便介绍,本文将其作为USB存储设备管理系统的一部分,根据具体的应用来介绍控制器的设计原理。读写控制器可应用在对PC机与安全存储设备和普通存储设备的数据共享管理上。其中,PC机的数据要求被保护,安全设备的使用权限被严格控制,不会泄漏数据;而普通设备则没有采取任何安全措施,很有可能向外泄漏数据,比如通用的U盘。
    控制器的主要功能是通过不同的接口把两种USB存储设备区分开来,实时监测PC机和普通设备间的数据,当检测到PC机向普通设备写入数据包时,对其强行破坏,防止数据泄漏。

1 硬件原理
    系统的结构框图如图1所示。集线器芯片将上游一路USB总线分为两路:一路直接通过专用的USB接口与安全存储设备连接,另一路通过读写控制器和普通存储设备连接。读写控制器采用CPLD、USB转发器以及外围电路实现集线器和普通存储设备的连接。在CPLD中设计逻辑电路实现对USB转发器传输方向的控制,并对数据进行分析和拦截,以破坏从PC机向普通USB存储设备传输的数据,防止泄漏。

b.JPG


    集线器采用的是带有4个下游端口的GL850G。其端口传输的是USB总线的差分信号,故将其上游端口直接接PC机,下游端口接安全USB存储设备或读写控制器。
    读写控制器是由1片CPLD和2片USB转发器及其外围电路组成。CPLD采用的是Altera公司的EPM3512。它具有10000个可用的门、512个宏单元、208个可用的I/O引脚,调试和升级简便,开发十分灵活。市场上关于USB转接的芯片很多,本文设计的读写控制器要求功能简单、性能稳定,因此USB转发器采用TI公司的TUSB1106,既满足设计的要求,也不存在资源浪费。该芯片的详细介绍见参考文献。其中VP0、VM0引脚由CPLD驱动。VP、VM和RCV输人到CPLD中。TUSB1106和CPLD的接口电路如图2所示。

c.JPG



2 CPLD中的读写控制电路
    CPLD中的读写控制电路包括时钟提取、包识别、不归零解码、状态控制、CBW包识别和数据流控制等模块,如图3所示。时钟提取部分见参考文献,包识别和不归零解码部分见参考文献。下面详细介绍状态控制、CBW包识别和数据流控制3个模块。

e.jpg


2.1 状态控制模块
    因为IJSB总线是半双工的,所以CPLD要控制总线数据的方向,即通过OE信号来控制TUSB1106是接收总线数据还是驱动总线。总线上所有的传输事务都始于令牌包。令牌包由主机发送,指明本次事务处理过程的含义,包括数据的传输方向、设备的地址及端点号等信息。
     在本模块中,通过对PID的检测可得到每个包的种类,控制状态机在初始状态、主机发送数据、设备发送数据、主机发送握手包和设备发送握手包等几个状态间跳转,从而控制其他模块的状态。下面为状态机的部分代码:
    f.jpg
    可以看出,当令牌包是OUT包(PID为8\'hE1)或SETUP包(PID为8\'h2D)时,数据包由主机发往设备,握手包由设备返回给主机;如果令牌包是IN包(PID为8\'h69)时,则数据包由设备发给主机,握手包由主机返回给设备。在全速模式下,只可能有4种令牌包,除了这3种包外就只可能是SOF包,而该包没有后续的数据包和握手包,因此状态机仍为初始状态。如果一次传输事务出错,没有数据包或握手包,则主机和设备会通过超时来判断是否出错,而不会持续等待。在CPLD中,超时信号和系统复位信号相与之后作为本模块的复位信号。

[1] [2]

关键字:USB读写控制器  FPGA  CPLD

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2011/0701/article_2249.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:如何保护FPGA输入端的齐纳二极管
下一篇:基于FPGA的智能仪器远程控制系统

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
USB读写控制器
FPGA
CPLD

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved