基于CPLD/FPGA的USB讀寫控制器
引言
隨著計算機科技的發(fā)展,無紙辦公日益成為各單位日常辦公的主要形式。而隨著USB存儲設(shè)備日益廣泛的使用,數(shù)據(jù)泄漏的危害也越來越嚴重。因此在單位內(nèi)部對USB存儲設(shè)備的操作權(quán)限進行控制是很有必要的。
本設(shè)計可將不同的USB存儲設(shè)備(包括安全存儲設(shè)備和普通存儲設(shè)備)通過不同的接口接入到主機上,同時對主機和設(shè)備問傳輸?shù)臄?shù)據(jù)進行提取,分析和攔截。其應(yīng)用范圍比較廣泛,為了方便介紹,本文將其作為USB存儲設(shè)備管理系統(tǒng)的一部分,根據(jù)具體的應(yīng)用來介紹控制器的設(shè)計原理。讀寫控制器可應(yīng)用在對PC機與安全存儲設(shè)備和普通存儲設(shè)備的數(shù)據(jù)共享管理上。其中,PC機的數(shù)據(jù)要求被保護,安全設(shè)備的使用權(quán)限被嚴格控制,不會泄漏數(shù)據(jù);而普通設(shè)備則沒有采取任何安全措施,很有可能向外泄漏數(shù)據(jù),比如通用的U盤。
控制器的主要功能是通過不同的接口把兩種USB存儲設(shè)備區(qū)分開來,實時監(jiān)測PC機和普通設(shè)備間的數(shù)據(jù),當檢測到PC機向普通設(shè)備寫入數(shù)據(jù)包時,對其強行破壞,防止數(shù)據(jù)泄漏。
1 硬件原理
系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。集線器芯片將上游一路USB總線分為兩路:一路直接通過專用的USB接口與安全存儲設(shè)備連接,另一路通過讀寫控制器和普通存儲設(shè)備連接。讀寫控制器采用CPLD、USB轉(zhuǎn)發(fā)器以及外圍電路實現(xiàn)集線器和普通存儲設(shè)備的連接。在CPLD中設(shè)計邏輯電路實現(xiàn)對USB轉(zhuǎn)發(fā)器傳輸方向的控制,并對數(shù)據(jù)進行分析和攔截,以破壞從PC機向普通USB存儲設(shè)備傳輸?shù)臄?shù)據(jù),防止泄漏。
集線器采用的是帶有4個下游端口的GL850G。其端口傳輸?shù)氖荱SB總線的差分信號,故將其上游端口直接接PC機,下游端口接安全USB存儲設(shè)備或讀寫控制器。
讀寫控制器是由1片CPLD和2片USB轉(zhuǎn)發(fā)器及其外圍電路組成。CPLD采用的是Altera公司的EPM3512。它具有10000個可用的門、512個宏單元、208個可用的I/O引腳,調(diào)試和升級簡便,開發(fā)十分靈活。市場上關(guān)于USB轉(zhuǎn)接的芯片很多,本文設(shè)計的讀寫控制器要求功能簡單、性能穩(wěn)定,因此USB轉(zhuǎn)發(fā)器采用TI公司的TUSB1106,既滿足設(shè)計的要求,也不存在資源浪費。該芯片的詳細介紹見參考文獻。其中VP0、VM0引腳由CPLD驅(qū)動。VP、VM和RCV輸人到CPLD中。TUSB1106和CPLD的接口電路如圖2所示。
評論