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