




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 S s w n e t . c o m . c n 基于 C P L D /F P G A 的 U S B 读写控制器肖小康 , 张东 , 贾慧强(武汉大学 物理科学与技术学院 , 武汉 430072引 言随着计算机科技的发展 , 无纸办公日益成为各单位日 常办公的主要形式 。 而随着 U S B 存储设备日益广泛的使 用 ,数据泄 漏 的 危 害 也 越 来 越 严 重 。 因 此 在 单 位 内 部 对 U S B 存储设备的操作权限进行控制是很有必要的 。本设计可将不 同 的 U S B 存 储 设 备 (包 括 安 全 存 储 设 备和普通存储设备 通 过 不 同 的 接 口 接 入
2、 到 主 机 上 , 同 时 对主机和设备间传输的数据进行提取 , 分析和拦截 。 其应 用范围比较广泛 , 为了方便介绍 , 本文将其作为 U S B 存储 设备管理系统的一部分 , 根据具体的应用来介绍控制器的 设计原理 。 读 写 控 制 器 可 应 用 在 对 P C 机 与 安 全 存 储 设 备和普通存储设备 的 数 据 共 享 管 理 上 。 其 中 , P C 机 的 数 据要求被保护 ,安全设 备 的 使 用 权 限 被 严 格 控 制 , 不 会 泄 漏数据 ; 而普通设备则 没 有 采 取 任 何 安 全 措 施 , 很 有 可 能 向外泄漏数据 , 比如通用的 U 盘
3、。控制器的主要功能是通过不同的接口把两种 U S B 存 储设 备 区 分 开 来 , 实 时 监 测 P C 机 和 普 通 设 备 间 的 数 据 , 当检测到 P C 机 向 普 通 设 备 写 入 数 据 包 时 , 对 其 强 行 破 坏 , 防止数据泄漏 。1 硬件原理系统的结构框图 如 图 1所 示 。 集 线 器 芯 片 将 上 游 一 路 U S B 总线分为两路 :一路直接通过专用的 U S B 接口与 安全存储设备连接 ,另一路通过读写控制器和普通存储设 备连接 。 读写控制器采用 C P L D 、 U S B 转发器以及外围电路实现集线器和普 通 存 储 设 备 的
4、连 接 。 在 C P L D 中 设 计 逻辑 电 路 实 现 对 U S B 转 发 器 传 输 方 向 的 控 制 , 并 对 数 据 进行分析和拦截 , 以破坏从 P C 机向普通 U S B 存储设备传 输的数据 , 防止泄漏 。图 1 系统结构框图集线器采用 的 是 带 有 4个 下 游 端 口 的 G L 850G 。 其端口 传 输 的 是 U S B 总 线 的 差 分 信 号 ,故 将 其 上 游 端 口 直 接接 P C 机 , 下 游 端 口 接 安 全 U S B 存 储 设 备 或 读 写 控制器 。读写控制器是由 1片 C P L D 和 2片 U S B 转发器
5、及其 外 围 电 路 组 成 。 C P L D 采 用 的 是 A l t e r a 公 司 的 E P M 3512。 它具有 10000个可用的门 、 512个宏单元 、 208个可用的 I /O 引脚 , 调 试 和 升 级 简 便 , 开 发 十 分 灵 活 。 市 场上 关 于 U S B 转 接 的 芯 片 很 多 ,本 文 设 计 的 读 写 控 制 器 要求功 能 简 单 、 性 能 稳 定 , 因 此 U S B 转 发 器 采 用 T I 公 司 的 T U S B 1106, 既 满 足 设 计 的 要 求 , 也 不 存 在 资 源 浪 费 。 该芯片的详细 介 绍
6、 见 参 考 文 献 1。 其 中 V P O 、 VMO 引脚由 C P L D 驱 动 。 V P 、 VM 和 R C V 输 入 到 C P L D 中 。 T U S B 1106和 C P L D 的接口电路如图 2所示 。图 2 T U S B 1106和 C P L D 的接口电路2 CP L D 中的读写控制电路 C P L D 中的读写 控 制 电 路 包 括 时 钟 提 取 、包 识 别 、 不 归零解码 、 状态 控 制 、 C B W 包 识 别 和 数 据 流 控 制 等 模 块 , 如图 3所示 。 时钟提取 部 分 见 参 考 文 献 2, 包 识 别 和 不
7、归零解码部分见参 考 文 献 3。 下 面 详 细 介 绍 状 态 控 制 、 C B W 包识别和数据流控制 3个模块 。2. 1 状态控制模块因为 U S B 总线是 半 双 工 的 , 所 以 C P L D 要 控 制 总 线 数据的方向 , 即通过 O E 信号来控制 T U S B 1106是接收总线数据还是驱动总 线 。 总 线 上 所 有 的 传 输 事 务 都 始 于 令 p m c 图 3 C P L D 中读写控制电路结构图牌包 。 令牌包 由 主 机 发 送 , 指 明 本 次 事 务 处 理 过 程 的 含 义 , 包括数据的传输方向 、 设备的地址及端点号等信息 。
8、在本模块中 , 通过对 P I D 的检测可得到每个包的种类 , 控制状态机在初始状态 、 主机发送数据 、 设备发送数据 、 主 机发送握手包和设备发送握手包等几个状态间跳转 , 从而 控制其他模块的状态 。 下面为状态机的部分代码 :a l w a y s (p o s e d g e c l k 96o r n e g e d g e r s t i f (! r s t b e gi n n e x t =s t a t e _I D E ; o e =1; h o s t _f l g =0; e n d e l s e b e g i n n e x t =4' d x ;
9、 c a s e (s t a t es t a t e _I D E :b e g i n o e =1; h o s t _f l g=0; i f (p i d =8' h 2D |p i d =8' h E 1 n e x t =h o s t ; e l s e i f (p i d =8' h 69 n e x t =d e v i c e ; e l s e n e x t =s t a t e _I D E ; e n d h o s t :b e gi n o e =1; i f (p i d =8' h A 5 n e x t =s t a
10、t e _I D E ; e l s e n e x t =d e v i c e _a c k ; h o s t _f l g =1; e n d d e v i c e :b e gi n o e =0; n e x t =h o s t _a c k ; h o s t _f l g =0; e n d d e v i c e _a c k :b e g i n o e =0; h o s t _f l g =0; n e x t =s t a t e _I D E ; e n dh o s t _a c k :b e g i n o e =1; h o s t _f l g =0;
11、n e x t =s t a t e _I D E ; e n dd e f a u l t :b e g i n n e x t =s t a t e _I D E ; h o s t _f l g =0; e n d e n d c a s e e n d 可以 看 出 , 当 令 牌 包 是 O U T 包 (P I D 为 8' h E 1或 S E T U P 包 (P I D 为 8' h 2D 时 , 数 据 包 由 主 机 发 往 设 备 , 握 手包由 设 备 返 回 给 主 机 ; 如 果 令 牌 包 是 I N 包 (P I D 为 8' h 69
12、时 , 则数 据 包 由 设 备 发 给 主 机 , 握 手 包 由 主 机 返 回 给设 备 。 在 全 速 模 式 下 , 只 可 能 有 4种 令 牌 包 , 除 了 这 3种包外就只可 能 是 S O F 包 , 而 该 包 没 有 后 续 的 数 据 包 和 握手包 , 因此状态机仍为初始状态 。 如果一次传输事务出错 , 没有数据包或握手 包 , 则 主 机 和 设 备 会 通 过 超 时 来 判 断是否出错 , 而不 会 持 续 等 待 。 在 C P L D 中 , 超 时 信 号 和 系统复位信号相与之后作为本模块的复位信号 。2. 2 CB W 包识别和数据流控制模块 U
13、S B M a s s S t o r a ge D e v i c e 在完 成 枚 举 之 后 就 进 入 到 仅批量传输模式 。 在仅 批 量 传 输 协 议 中 数 据 传 输 分 为 命 令 、数据 和 状 态 3个 阶 段 。 主 机 发 送 的 命 令 被 封 装 成 C B W (C o m m a n d B l o c k W r a p pe r 包在命令阶 段 发 送 , 以 定 义要操作的命令以及要传输的数据方向和长度 。 C B W 的 前 4个字节是标志位 , 第 15个字节是操作代码 。在本设计 中 , 借 助 序 列 识 别 的 思 想 识 别 出 写 命 令
14、 的 C B W , 并在接下来的数据阶段将标志位 C B W _f l a g 置位为 0,使数据流控制模 块 截 断 从 主 机 发 往 设 备 的 数 据 包 。 下 面为状态机的部分代码 :a l w a y s (n e g e d g e r s t o r p o s e d g e c l k _o u t i f (! r s t b e g i n c b w _f l g<=1; s t a t u s _c b w <=4' d 0; c o u n t _c b w <=6' d 0; e n d e l s e c a s e (s
15、 t a t u s _c b w 4' d 0:b e g i n c b w _f l g<=1; i f (h o s t _f l g s t a t u s _c b w <=4' d 1; e l s e s t a t u s _c b w <=4' d 0; c o u n t _c b w <=6' d 0; e n d4' d 1:i f (d a t a =8' h 55 s t a t u s _c b w <=4' d 2;e l s e s t a t u s _c b w <
16、;=4' d 15; /检测 C B W 的标识字符串4' d 4:i f (d a t a =8' h 43 s t a t u s _c b w <=4' d 5;e l s e s t a t u s _c b w <=4' d 15; 4' d 5:i f (c o u n t _c b w=6' d 10 s t a t u s _c b w <=4' d 6;e l s e b e gi n s t a t u s _c b w <=4' d 5; c o u n t _c b w &l
17、t;=c o u n t _c b w +6' d 1; e n d4' d 6:i f (d a t a =8' h 2A b e gi n c b w _f l g <=1' d 0; s t a t u s _c b w <=4' d 7; e n d e l s e i f (d a t a =8' h A A b e g i n c b w _f l g <=1' d 0; s t a t u s _c b w <=4' d 7; e n d e l s e s t a t u s _c b w
18、<=4' d 15; 4' d 7:i f (h o s t _f l gs t a t u s _c b w <=4' d 7; e l s e s t a t u s _c b w <=4' d 8; 4' d 8:i f (! h o s t _f l gs t a t u s _c b w <=4' d 8; e l s e b e g i n s t a t u s _c b w <=4' d 9; c b w _f l g<=0; e n d 4' d 9:i f (h o s t
19、_f l g b e gi n s t a t u s _c b w <=4' d 9; c b w _f l g <=0; e n d e l s e s t a t u s _c b w <=4' d 15; 4' d 15:b e g i n c b w _f l g<=1; i f (h o s t _f l g s t a t u s _c b w <=4' d 15; e l s e s t a t u s _c b w <=4' d 0; S s w n e t . c o m . c n c o u n
20、 t _c b w <=6' d 0; e n dd e f a u l t:s t a t u s _c b w <=4' d 15; e n d c a s e 可以看出 , 只有在检测到 C B W 包中的写命令 (操作代码 是 8' h 2A 和 8' h A A 时才将 C B W _f l g 置 0, 其余状态都为 1。 数据流控制模块完成的工作比较简单 , 主要有 3个 : 在系统复位有效或失效时控制转发器模拟拔下或插入的过程 ; 根据当前的传输方向提取总线数据以供分析 ; c b w _f l g 无效时 , 将上游端口的 V P
21、和 V M 直接赋值 图 4 向普通 U 盘中写入数据时报错给下 游 端 口 的 V P 0和 V M 0, 同 样 将 下 游端口的 V P 和 V M 赋 给 上 游 端 口 的 V P 0和 V M 0, 否 则 将上 游 端 口 的 V M 强制置 0, 使传输过 程失 败 以 阻 止 数 据 从主 机 向 普 通 存 储 设备传送数据 。3 实验结果控制 器 完 全 不 干 涉 主 机 和 安 全 U S B 存储设备间的数据 传 输 。 而 将 普 通 U S B 存 储 设 备 通 过 控 制 器 接 到 P C 机上 时 , 能 正 常 完成除写 之 外 的 所 有操作 。 当
22、向 U S B 存储设备 中 写 入 数 据 (包 括 新 建 、 粘 贴 、 删 除 、 写 入 和 修 改文件 时 , 系 统 弹 出图 4所 示 的 对 话 框 ,操作无法完成 。 结 语本文针对 信 息 安 全 系 统 设 计 了 一 种 对 U S B 存 储 设 备的读写控制器 。 该控制器包括一个与主机连 接 的 上 游 端口 , 以及安全存储 设 备 专 用 和 普 通 存 储 设 备 通 用 两 种 下游端口 。对安全存储设 备 使 用 的 硬 件 接 口 进 行 异 化 , 以 防 止 普通存储设备通过 该 口 接 入 ; 普 通 存 储 设 备 采 用 普 通 的 U S
23、 B A 型口连接 。 控制器不干预 主 机 和 安 全 存 储 设 备 的 数 据 交 换 , 能 够破坏 P C 机 写 入 普 通 存 储 设 备 上 的 数 据 包 , 从 而 防 止 了 P C 机上的数据通过普通存储设备外泄 。参考文献1T e x a s I n s t r u m e n t s .T U S B 1106A d v a n c e d U n i v e r s a l S e r i a l B u s T r a n s c e i v e r s , 200605. 2王志 梁 , 刘 笃 仁 . 基 于 C P L D 的 位 同 步 时 钟 提 取
24、电 路 设 计J . 电子元器件应用 , 2006(9 :5460. 3黄卫华 . 全 速 U S B 设 备 控 制 器 接 口 I P 核 发 的 设 计 与 实 现D . 武汉 :华中科技大学 , 2005.4U S B I m p l e m e n t e r s F o r u m.U n i v e r s a l S e r i a l B u s S pe c i f i c a -t i o n . r e v i s i o n 2. 0e d i t i o n , 20000427. 5U S B I m p l e m e n t e r s F o r u m.U n i v e r s a l S e r i a l B u s S pe c i f i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 理赔业务风险管理跨部门协作风险基础知识点归纳
- 高效农田管理与作物精准栽培技术
- 翻转课堂的实践与探索
- 中风患者家属健康教育
- 中职护理学生职业生涯规划
- 门窗施工合同协议书
- 2025临时劳动合同短期工作合同
- 产科常见病护理及用药
- 中医便秘防治方案
- B族链球菌感染护理
- 镍基高温合金氢脆行为研究进展与对策
- 当兵言语测试试题及答案
- 四川省眉山县2025届中考生物仿真试卷含解析
- 跨学科实践:制作望远镜-【跨学科实践】初中物理项目化课程案例
- 1-学校“1530”安全教育管理工作实施方案及记录
- 案场主管转正述职报告
- 促进自然分娩的健康教育
- 短缺药品上报流程
- 《企业文化理论与实务》 课程标准
- 2025年银行反洗钱知识竞赛题库及答案 (共150题)
- 豇豆种植及初加工项目建议书
评论
0/150
提交评论