登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
单片机应用于方案
›
基于CPLD/FPGA的USB读写控制器
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
基于CPLD/FPGA的USB读写控制器
[复制链接]
1476
0
ad***
管理员
发表在
嵌入式/ARM
2013-3-20 09:19:33
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
引言
随着计算机科技的发展,无纸办公日益成为各单位日常办公的主要形式。而随着USB存储设备日益广泛的使用,数据泄漏的危害也越来越严重。因此在单位内部对USB存储设备的操作权限进行控制是很有必要的。
本设计可将不同的USB存储设备(包括安全存储设备和普通存储设备)通过不同的接口接入到主机上,同时对主机和设备问传输的数据进行提取,分析和拦截。其应用范围比较广泛,为了方便介绍,本文将其作为USB存储设备管理系统的一部分,根据具体的应用来介绍控制器的设计原理。读写控制器可应用在对PC机与安全存储设备和普通存储设备的数据共享管理上。其中,PC机的数据要求被保护,安全设备的使用权限被严格控制,不会泄漏数据;而普通设备则没有采取任何安全措施,很有可能向外泄漏数据,比如通用的U盘。
控制器的主要功能是通过不同的接口把两种USB存储设备区分开来,实时监测PC机和普通设备间的数据,当检测到PC机向普通设备写入数据包时,对其强行破坏,防止数据泄漏。
1 硬件原理
系统的结构框图如图1所示。集线器芯片将上游一路USB总线分为两路:一路直接通过专用的USB接口与安全存储设备连接,另一路通过读写控制器和普通存储设备连接。读写控制器采用
CPLD
、USB转发器以及外围电路实现集线器和普通存储设备的连接。在CPLD中设计逻辑电路实现对USB转发器传输方向的控制,并对数据进行分析和拦截,以破坏从PC机向普通USB存储设备传输的数据,防止泄漏。
集线器采用的是带有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所示。
2 CPLD中的读写控制电路
CPLD中的读写控制电路包括时钟提取、包识别、不归零解码、状态控制、CBW包识别和数据流控制等模块,如图3所示。时钟提取部分见参考文献,包识别和不归零解码部分见参考文献。下面详细介绍状态控制、CBW包识别和数据流控制3个模块。
2.1 状态控制模块
因为IJSB总线是半双工的,所以CPLD要控制总线数据的方向,即通过OE信号来控制TUSB1106是接收总线数据还是驱动总线。总线上所有的传输事务都始于令牌包。令牌包由主机发送,指明本次事务处理过程的含义,包括数据的传输方向、设备的地址及端点号等信息。
在本模块中,通过对PID的检测可得到每个包的种类,控制状态机在初始状态、主机发送数据、设备发送数据、主机发送握手包和设备发送握手包等几个状态间跳转,从而控制其他模块的状态。下面为状态机的部分代码:
可以看出,当令牌包是OUT包(PID为8'hE1)或SETUP包(PID为8'h2D)时,数据包由主机发往设备,握手包由设备返回给主机;如果令牌包是IN包(PID为8'h69)时,则数据包由设备发给主机,握手包由主机返回给设备。在全速模式下,只可能有4种令牌包,除了这3种包外就只可能是SOF包,而该包没有后续的数据包和握手包,因此状态机仍为初始状态。如果一次传输事务出错,没有数据包或握手包,则主机和设备会通过超时来判断是否出错,而不会持续等待。在CPLD中,超时信号和系统复位信号相与之后作为本模块的复位信号。
2.2 CBW包识别和数据流控制模块
USB Mass Storage Device在完成枚举之后就进入到仅批量传输模式。在仅批量传输协议中数据传输分为命令、数据和状态3个阶段。主机发送的命令被封装成CBW(Command Block Wrapper)包在命令阶段发送,以定义要操作的命令以及要传输的数据方向和长度。CBW的前4个字节是标志位,第15个字节是操作代码。
在本设计中,借助序列识别的思想识别出写命令的CBW,并在接下来的数据阶段将标志位CBW_flag置位为0,使数据流控制模块截断从主机发往设备的数据包。下面为状态机的部分代码:
可以看出,只有在检测到CBW包中的写命令(操作代码是8h2A和8hAA)时才将CBW_flg置0,其余状态都为1。
数据流控制模块完成的工作比较简单,主要有3个:
①在系统复位有效或失效时控制转发器模拟拔下或插入的过程;
②根据当前的传输方向提取总线数据以供分析;
③cbw_flg无效时,将上游端口的VP和VM直接赋值给下游端口的VP0
和VM0,同样将下游端口的VP和VM赋给上游端口的VP0和VM0,否则将上游端口的VM强制置0,使传输过程失败以阻止数据从主机向普通存储设备传送数据。
3 实验结果
控制器完全不干涉主机和安全USB存储设备间的数据传输。而将普通USB存储设备通过控制器接到PC机上时,能正常完成除写之外的所有操作。当向USB存储设备中写入数据(包括新建、粘贴、删除、写入和修改文件)时,系统弹出图4所示的对话框,操作无法完成。
结语
本文针对信息安全系统设计了一种对USB存储设备的读写控制器。该控制器包括一个与主机连接的上游端口,以及安全存储设备专用和普通存储设备通用两种下游端口。
对安全存储设备使用的硬件接口进行异化,以防止普通存储设备通过该口接入;普通存储设备采用普通的USB A型口连接。
控制器不干预主机和安全存储设备的数据交换,能够破坏PC机写入普通存储设备上的数据包,从而防止了PC机上的数据通过普通存储设备外泄。
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
产品品牌:永嘉微电/VINKA 产品型号:VK2C21D 封装形式:SOP16 概述 VK2C21D是
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
产品品牌:永嘉微电/VINKA 产品型号:VK2C21C 封装形式:SOP20 概述 VK2C21C是
更多
精华推荐
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
高抗干扰液晶驱动/点阵式液晶显示IC/VK2C21
I2C通信接口段码液晶驱动芯片VK2C21C SOP20
VK2C21B SOP24高抗干扰LCD液晶段码驱动芯片
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶段码
更多
社区学堂
VKL144A TSSOP48 点阵式液晶驱动芯片/
高抗干扰液晶显示驱动/省电液晶驱动IC/
VKL144A TSSOP48 点阵式液晶驱动芯片/低功
产品品牌:永嘉微电/VINKA 产品型号:VKL44A 封装形式:TSSOP48 概述 VKL144是
高抗干扰液晶显示驱动/省电液晶驱动IC/LCD
产品品牌:永嘉微电/VINKA 产品型号:VKL128 封装形式:SSOP44 概述 VKL128是一
VK2C23A/B LQFP64/48LCD驱动控制器/高抗干
产品品牌:永嘉微电/VINKA 产品型号:VK2C23A/B 封装形式:LQFP64/48 概述 VK2C
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表