專利名稱:基于usb總線的數(shù)據(jù)隔離切換傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)隔離切換傳輸方法,具體是一種基于USB總線的數(shù)據(jù)隔離切換傳輸方法,用于網(wǎng)絡(luò)數(shù)據(jù)交換、信息安全技術(shù)領(lǐng)域。
背景技術(shù):
如何實(shí)現(xiàn)外部網(wǎng)絡(luò)和內(nèi)部網(wǎng)絡(luò)的安全可控信息交換一直是信息安全領(lǐng)域的重要問題。當(dāng)前采用的網(wǎng)絡(luò)隔離和防護(hù)手段主要是在網(wǎng)絡(luò)邊界安裝防火墻,通過防火墻對進(jìn)出網(wǎng)絡(luò)的流量監(jiān)視和控制來保證交換信息的安全。但是防火墻只能對網(wǎng)絡(luò)連接采用邏輯隔離的方式進(jìn)行控制,其系統(tǒng)易被攻破,攻破后的防火墻形同虛設(shè)。安全隔離類產(chǎn)品從應(yīng)用范圍方面可分兩類,一類是基于主機(jī)的隔離卡,典型的做法是通過對單機(jī)的網(wǎng)口和硬盤接口開關(guān)切換實(shí)現(xiàn)隔離,適合單機(jī)訪問外部網(wǎng)絡(luò),不適合連續(xù)實(shí)時(shí)的網(wǎng)絡(luò)應(yīng)用。另一類是網(wǎng)絡(luò)安全隔離交換設(shè)備,這一類設(shè)備通過在網(wǎng)絡(luò)邊界對網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)進(jìn)行切換,能在不同安全域的網(wǎng)絡(luò)間實(shí)現(xiàn)安全隔離和受控的信息交換。目前已有網(wǎng)絡(luò)安全隔離與信息交換實(shí)現(xiàn)方式大多采用隔離設(shè)備連接內(nèi)外網(wǎng)控制單元的方式工作,連接切換的總線方式主要有SCSI和IDE等。例如,成立于1998年的美國Whale公司是目前安全隔離與信息交換系統(tǒng)類產(chǎn)品的領(lǐng)導(dǎo)廠商,該公司的主要產(chǎn)品包括e-Gap系列的SSL VPN和應(yīng)用防火墻(Application Firewall)等,這些產(chǎn)品都基于稱為Air Gap技術(shù)的統(tǒng)一隔離交換硬件平臺,該硬件平臺主要由基于SCSI總線的開關(guān)和存儲(chǔ)器組成。一般來說,SCSI總線的切換和傳輸速度高于IDE總線,但是SCSI總線比較復(fù)雜,并且大多數(shù)控制處理系統(tǒng)中沒有SCSI控制器,增加新的SCSI擴(kuò)展卡必然帶來成本的增加。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)的上述不足和缺陷,提供一種基于USB總線的數(shù)據(jù)隔離切換傳輸方法,使其充分利用USB2.0總線,在更為方便和廉價(jià)的條件下達(dá)到或超過基于SCSI總線實(shí)現(xiàn)的隔離交換設(shè)備的性能。本發(fā)明通過在USB2.0總線上設(shè)置開關(guān)、使用USB存儲(chǔ)器及主機(jī)系統(tǒng)中對應(yīng)切換控制軟件的配合處理等技術(shù),能夠在雙機(jī)系統(tǒng)間提供一條透明的、無差錯(cuò)的、有序的并擁有較高數(shù)據(jù)交換速率的數(shù)據(jù)通路,解決了目前基于SCSI總線等方法成本和復(fù)雜度高的缺點(diǎn)。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的,本發(fā)明采用隔離切換硬件系統(tǒng)實(shí)現(xiàn)對連接雙機(jī)系統(tǒng)的USB2.0總線進(jìn)行輪流的時(shí)隙切換,隔離切換硬件系統(tǒng)包括切換控制開關(guān)和USB存儲(chǔ)器,只有當(dāng)切換控制開關(guān)連通存儲(chǔ)器和主機(jī)時(shí)才能由主機(jī)對USB存儲(chǔ)器進(jìn)行讀寫,任意時(shí)刻只能有一臺主機(jī)系統(tǒng)對USB存儲(chǔ)器進(jìn)行讀寫;通過主機(jī)系統(tǒng)中的切換控制軟件來檢測開關(guān)通斷情況,確保只有當(dāng)USB存儲(chǔ)器連在系統(tǒng)上時(shí)才對其進(jìn)行讀寫操作,并且通過對USB存儲(chǔ)器中數(shù)據(jù)存儲(chǔ)方式的組織和管理,在雙主機(jī)系統(tǒng)間建立一條有序和準(zhǔn)確的數(shù)據(jù)雙向傳輸通路,從而實(shí)現(xiàn)在配備USB2.0總線接口的雙機(jī)控制系統(tǒng)中進(jìn)行實(shí)時(shí)雙向數(shù)據(jù)切換傳輸。
以下對本發(fā)明作進(jìn)一步的說明,具體內(nèi)容如下1)切換控制開關(guān)切換控制開關(guān)通過兩個(gè)USB接口用USB2.0總線分別連接兩個(gè)主機(jī)系統(tǒng),兩個(gè)接口均連接在一個(gè)電子切換控制開關(guān)上,它另一端連接著一個(gè)USB接口的存儲(chǔ)器。在任意時(shí)刻,電子切換控制開關(guān)控制只有一個(gè)主機(jī)系統(tǒng)與存儲(chǔ)器相連接。根據(jù)USB協(xié)議,主機(jī)上的USB HUB通過監(jiān)視端口上數(shù)據(jù)線的電壓來判斷設(shè)備是否插入。因此切換控制開關(guān)被設(shè)置在USB總線的數(shù)據(jù)線上,通過硬件時(shí)鐘電路產(chǎn)生定時(shí)間間隔脈沖控制開關(guān)自動(dòng)切換數(shù)據(jù)線,USB協(xié)議檢測數(shù)據(jù)線的電平高低來判斷USB設(shè)備是否接到主機(jī)上。它的工作方式類似于一個(gè)單刀雙擲的開關(guān),當(dāng)數(shù)據(jù)線切斷后(相當(dāng)于開關(guān)“開”),主機(jī)上的USB ROOT HUB會(huì)通知主機(jī)設(shè)備斷開,引起系統(tǒng)進(jìn)行相關(guān)操作。因此當(dāng)開關(guān)為“開”時(shí)相當(dāng)于將USB存儲(chǔ)器插入主機(jī),而當(dāng)開關(guān)為“關(guān)”時(shí)相當(dāng)于將USB存儲(chǔ)器拔出。開關(guān)關(guān)閉時(shí)USB總線處于高阻狀態(tài)。由此可知,該切換控制開關(guān)可使兩主機(jī)按照固定周期輪流連通和讀寫USB存儲(chǔ)器,但是絕不能同時(shí)連通和讀寫。切換控制開關(guān)在加電后就按照這種固有方式工作,不可更改不受軟件控制。
2)切換控制軟件檢測開關(guān)通斷情況主機(jī)中的切換控制軟件在準(zhǔn)備對USB存儲(chǔ)器進(jìn)行讀寫操作時(shí),必須了解當(dāng)前切換控制開關(guān)的通斷情況,因此程序內(nèi)部要維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu)標(biāo)識USB存儲(chǔ)器的連接狀態(tài)。若USB存儲(chǔ)器當(dāng)前連接著,則存取操作正常執(zhí)行;若USB存儲(chǔ)器沒有連接,則存取操作被延后執(zhí)行,讀寫進(jìn)程被阻塞。光有上述的檢測保護(hù)還是不夠的,由于隔離切換開關(guān)的工作方式不受軟件控制,所以有可能出現(xiàn)存儲(chǔ)操作過程中USB存儲(chǔ)器拔離系統(tǒng)的情況,因此為保證對數(shù)據(jù)的無差錯(cuò)讀寫,必須根據(jù)切換控制開關(guān)頻率對開關(guān)的轉(zhuǎn)換時(shí)間點(diǎn)進(jìn)行預(yù)測,當(dāng)切換控制開關(guān)將要切換到“關(guān)”的時(shí)候,停等一段時(shí)間不做存取操作,以避免出現(xiàn)讀寫異常。此外,為保證對USB存儲(chǔ)器的可靠讀寫,切換控制軟件在讀寫USB存儲(chǔ)器時(shí)必須具有差錯(cuò)恢復(fù)機(jī)制,即每次檢測讀寫操作的返回值,若讀寫操作失敗,則在下次獲得讀寫USB存儲(chǔ)器權(quán)限的時(shí)候重新讀寫上次調(diào)用失敗的內(nèi)容。
3)數(shù)據(jù)在USB存儲(chǔ)器中的組織主機(jī)系統(tǒng)中的切換控制軟件將切換控制開關(guān)連接的USB存儲(chǔ)器看作是一個(gè)線性的存儲(chǔ)區(qū)域,采用物理地址進(jìn)行尋址和讀寫。在USB存儲(chǔ)器中取一個(gè)特定的存儲(chǔ)單元,如USB存儲(chǔ)器的第一個(gè)扇區(qū),作為引導(dǎo)區(qū)用于存放讀寫指針信息,其他的存儲(chǔ)單元被組織成環(huán)形鏈表。當(dāng)有數(shù)據(jù)需要存取時(shí),先讀取引導(dǎo)區(qū)確定當(dāng)前讀寫指針位置,再做真正的讀寫操作,最后移動(dòng)讀寫指針更新引導(dǎo)區(qū)信息。程序可以通過比較讀寫指針的相對位置判斷USB存儲(chǔ)器是否為空或是已經(jīng)填滿。由于設(shè)備剛開始工作時(shí)引導(dǎo)區(qū)中的內(nèi)容是隨機(jī)的,因此必須在正常工作開始之前對其中的內(nèi)容進(jìn)行初始化。根據(jù)傳輸?shù)姆较虿煌瑒澐值刂藩?dú)立的兩段存儲(chǔ)區(qū),使得兩個(gè)主機(jī)系統(tǒng)獨(dú)立完成初始化操作。一方初始化操作導(dǎo)致已寫入存儲(chǔ)器的數(shù)據(jù)丟失是正常的,這樣做可以適應(yīng)主機(jī)重啟動(dòng)后開始正常工作的需求。
4)主機(jī)系統(tǒng)對USB存儲(chǔ)器的讀寫讀寫調(diào)用函數(shù)和設(shè)備初始化函數(shù)是主機(jī)系統(tǒng)訪問USB存儲(chǔ)器的唯一途徑。讀函數(shù)和寫函數(shù)都必須采用阻塞方式。切換控制軟件為上層協(xié)議軟件開放了讀寫接口和設(shè)備初始化函數(shù)。由于切換控制軟件已經(jīng)對數(shù)據(jù)的存儲(chǔ)位置進(jìn)行的管理,所以主機(jī)中的上層協(xié)議軟件不必再關(guān)心數(shù)據(jù)的存放地方,只需使用讀寫調(diào)用函數(shù)向底層提供或獲取固定大小的數(shù)據(jù)報(bào)就可以了。同時(shí),上層協(xié)議軟件也不必關(guān)心底層設(shè)備是否接上,它可以在任何時(shí)候調(diào)用讀寫函數(shù),只是當(dāng)?shù)讓釉O(shè)備沒有接上時(shí)它會(huì)阻塞。
本發(fā)明的主要優(yōu)點(diǎn)有采用基于USB2.0總線的數(shù)據(jù)隔離切換傳輸方法比基于SCSI、IDE等總線的類似方法更為方便、廉價(jià)和高效。該方法通過隔離切換硬件系統(tǒng)和切換控制軟件的配合可構(gòu)成一個(gè)通用的雙主機(jī)數(shù)據(jù)隔離切換傳輸平臺,該平臺可以在雙主機(jī)直接鏈路斷開的情況下進(jìn)行實(shí)時(shí)、雙向、有序和無差錯(cuò)的數(shù)據(jù)傳輸,基于該平臺可以開發(fā)各種安全隔離與信息交換系統(tǒng),實(shí)現(xiàn)網(wǎng)絡(luò)不同信任域間數(shù)據(jù)隔離切換下的安全信息交換。
圖1本發(fā)明方法實(shí)施系統(tǒng)的功能框2本發(fā)明切換控制開關(guān)的工作原理3本發(fā)明切換控制軟件框圖具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明技術(shù)方案作進(jìn)一步的描述。
如圖1所示,本發(fā)明方法實(shí)施系統(tǒng)的功能框圖,包括兩個(gè)具有USB2.0接口的主機(jī)系統(tǒng),切換控制開關(guān),具有USB2.0接口的USB存儲(chǔ)器。兩主機(jī)系統(tǒng)通過USB2.0總線與切換控制開關(guān)相連接,切換控制開關(guān)與USB存儲(chǔ)器也通過USB2.0總線連接。切換控制開關(guān)通過電子開關(guān)的控制切換USB存儲(chǔ)器與兩主機(jī)系統(tǒng)連接,使得任意時(shí)刻只有一臺主機(jī)系統(tǒng)可以對存儲(chǔ)器讀寫。
如圖2所示,本發(fā)明切換控制開關(guān)的工作原理圖。兩個(gè)USB接口分別與開關(guān)電路相連,通過USB總線連接主機(jī)系統(tǒng),開關(guān)電路通過第三個(gè)USB接口與具有USB接口的存儲(chǔ)器(可選擇USB移動(dòng)硬盤)相連接。這樣,USB存儲(chǔ)器通過開關(guān)電路與兩個(gè)主機(jī)USB接口相連,在某一時(shí)刻導(dǎo)通與否由開關(guān)電路的控制信號決定??刂菩盘栍删д癞a(chǎn)生原始信號經(jīng)過計(jì)數(shù)器分頻后得到,將信號周期定在1.2s(由系統(tǒng)檢測USB設(shè)備的最大時(shí)間加上適量的讀寫時(shí)間決定)可以取得最短的切換周期支持USB2.0總線的傳輸。選用適當(dāng)?shù)姆诸l器可以為以后電路切換時(shí)間的修改提供便利。通過計(jì)數(shù)器產(chǎn)生的周期方波能恰好在正半周期打開第一個(gè)USB接口與第三個(gè)USB接口的開關(guān),負(fù)半周期打開第二個(gè)USB接口與第三個(gè)USB接口的開關(guān),這兩者的控制信號是互斥的。開關(guān)以0.6秒為1個(gè)時(shí)隙進(jìn)行切換,切換通斷USB總線中的數(shù)據(jù)線,這樣可以保證兩主機(jī)對USB存儲(chǔ)器的互斥訪問,在任意時(shí)刻只有一臺主機(jī)系統(tǒng)可以對存儲(chǔ)器進(jìn)行訪問,而另一臺主機(jī)與USB存儲(chǔ)器的鏈路是斷開的。此外,可以通過設(shè)置一個(gè)按鍵開關(guān)來實(shí)現(xiàn)對第一個(gè)USB接口的強(qiáng)制掛斷。源自按鍵開關(guān)的電平信號用邏輯門與前級信號共同構(gòu)成對開關(guān)芯片的控制按下開關(guān)時(shí),源于按鍵開關(guān)的高電平可以通過邏輯門屏蔽掉前級分頻器的控制信號,使第三個(gè)USB接口與第二個(gè)USB接口的開關(guān)導(dǎo)通并與第一個(gè)USB接口的開關(guān)斷開。
主機(jī)中的切換控制軟件是作為設(shè)備驅(qū)動(dòng)程序?yàn)槠渌M(jìn)程訪問隔離交換硬件提供接口。以在LINUX系統(tǒng)中的實(shí)現(xiàn)為例,切換控制軟件內(nèi)部可分為設(shè)備的注冊與注銷、為上層開放的調(diào)用接口、協(xié)議轉(zhuǎn)換和傳輸操作四個(gè)部分,各個(gè)部分的關(guān)系如圖3所示。切換控制軟件將隔離切換硬件系統(tǒng)(切換控制開關(guān)和USB存儲(chǔ)器)虛擬成一個(gè)字符設(shè)備,其設(shè)備文件名為/dev/sgap,上層協(xié)議軟件可以使用read、write系統(tǒng)調(diào)用訪問設(shè)備,每次調(diào)用讀寫函數(shù),它提供或接受固定大小的數(shù)據(jù)報(bào)。用戶對字符設(shè)備進(jìn)行讀寫操作時(shí),會(huì)分別調(diào)用字符設(shè)備file_operations結(jié)構(gòu)中定義的讀寫函數(shù)。注意將隔離切換硬件系統(tǒng)作為字符設(shè)備而非塊設(shè)備進(jìn)行處理可以方便地驅(qū)動(dòng)磁頭進(jìn)行數(shù)據(jù)讀寫,并加快響應(yīng)速度。
設(shè)備的注冊與注銷主要完成隔離切換硬件系統(tǒng)插入或拔出主機(jī)系統(tǒng)時(shí)必須資源的建立或釋放。需要指出的是,該部分對設(shè)備第一次插入和此后的插入處理的過程是不一樣的,在第一次檢測到設(shè)備插入系統(tǒng)時(shí)需要進(jìn)行資源的分配。程序可通過計(jì)算設(shè)備的guid值來判斷是第一次還是此后的插入動(dòng)作。為上層開放的調(diào)用接口使得用戶態(tài)程序通過系統(tǒng)調(diào)用訪問隔離切換硬件系統(tǒng)成為可能。上層協(xié)議軟件可以使用read、write系統(tǒng)調(diào)用訪問USB存儲(chǔ)器,讀寫操作都是已阻塞方式實(shí)現(xiàn)的。協(xié)議轉(zhuǎn)換將讀寫操作轉(zhuǎn)換為USB協(xié)議命令,并提交給傳輸操作處理。傳輸操作主要完成數(shù)據(jù)向USB存儲(chǔ)器的讀寫,操作主要依照Control和Bulk傳輸類型向USB系統(tǒng)軟件發(fā)送信息包。發(fā)送時(shí)使用的函數(shù)是USB系統(tǒng)軟件提供的系統(tǒng)編程接口。USB系統(tǒng)軟件是指在一個(gè)特定操作系統(tǒng)中用來支持USB協(xié)議的軟件,它向客戶軟件提供統(tǒng)一的系統(tǒng)編程接口SPI,幫助上層訪問USB設(shè)備。為保證在切換情況下每次能對USB存儲(chǔ)器進(jìn)行無差錯(cuò)讀寫,需要在程序中設(shè)定定時(shí)器,在每次切換獲得讀寫USB存儲(chǔ)器讀寫權(quán)限后根據(jù)切換時(shí)隙的長短預(yù)測剩余時(shí)間的大小,若剩余時(shí)間的大小不足以完成一次讀寫操作則停止發(fā)送命令。一般需要至少預(yù)留0.3秒的保護(hù)時(shí)間。光有時(shí)間上的保證對實(shí)現(xiàn)完全可靠有序的讀寫通道仍是不夠的,所以程序中還有錯(cuò)誤恢復(fù)的機(jī)制。每一次底層操作完成時(shí)都會(huì)得到返回值,程序會(huì)通過返回值判斷操作是否成功。若不成功,則下次獲得USB存儲(chǔ)器讀寫權(quán)限時(shí)程序會(huì)自動(dòng)重做相關(guān)的內(nèi)容。
數(shù)據(jù)在USB存儲(chǔ)器中的組織被看作是由存儲(chǔ)單元線性排列而成的環(huán)形鏈表。在切換控制軟件中定義以下全局變量變量ch_size記錄了一個(gè)傳輸通道的大小,變量pk_size記錄了一個(gè)數(shù)據(jù)包的大小,它們都是以512字節(jié)為單位的。對于某個(gè)方向的輸入通道來說,變量in_ch代表通道編號,變量in_nr代表從輸入通道得到的數(shù)據(jù)包總數(shù),變量in_rpos代表當(dāng)前輸入通道讀指針的位置,變量in_wpos代表當(dāng)前輸入通道寫指針的位置。輸出通道和輸入通道對應(yīng)變量代表的意義完全相同。通過隔離切換硬件系統(tǒng)在兩主機(jī)之間交換數(shù)據(jù),一端主機(jī)對通道內(nèi)容作的修改必須讓另一端的主機(jī)知曉,因此必須為每一個(gè)通道增加一個(gè)引導(dǎo)信息區(qū)(boot區(qū)),用于存放讀寫指針信息。可根據(jù)以下方法獲得正確的讀寫位置■傳輸通道第一塊存儲(chǔ)單元的位置in_ch*ch_size或out_ch*ch_size;■引導(dǎo)信息區(qū)的位置(in_ch+1)*ch_size-1或(out_ch+1)*ch_size-1;■傳輸通道中沒有數(shù)據(jù)需要讀取in_rpos==in_wpos;■傳輸通道中沒有空間存放數(shù)據(jù)out_rpos-pk_size+ch_size-1==out_wpos||out_rpos-pk_size==out_wpos;本發(fā)明方法經(jīng)過系統(tǒng)原型的具體實(shí)施,被證明是可行穩(wěn)定的,它避免了復(fù)雜的SCSI設(shè)備的設(shè)計(jì)和對SCSI總線的控制,廉價(jià)、高效的實(shí)現(xiàn)了雙主機(jī)間進(jìn)行隔離切換的數(shù)據(jù)傳輸。
權(quán)利要求
1.一種基于USB總線的數(shù)據(jù)隔離切換傳輸方法,其特征在于,采用隔離切換硬件系統(tǒng)實(shí)現(xiàn)對連接雙機(jī)系統(tǒng)的USB2.0總線進(jìn)行輪流的時(shí)隙切換,隔離切換硬件系統(tǒng)包括切換控制開關(guān)和USB存儲(chǔ)器,只有當(dāng)切換控制開關(guān)連通USB存儲(chǔ)器和主機(jī)時(shí)才由主機(jī)對USB存儲(chǔ)器進(jìn)行讀寫,任意時(shí)刻只有一臺主機(jī)系統(tǒng)對存儲(chǔ)器進(jìn)行讀寫;通過主機(jī)系統(tǒng)中的切換控制軟件來檢測開關(guān)通斷情況,確保只有當(dāng)存儲(chǔ)器連在系統(tǒng)上時(shí)才對其進(jìn)行讀寫操作,并且通過對USB存儲(chǔ)器中數(shù)據(jù)的組織和管理,在雙主機(jī)系統(tǒng)間建立一條有序和準(zhǔn)確的數(shù)據(jù)雙向傳輸通路,從而實(shí)現(xiàn)在配備USB2.0總線接口的雙機(jī)控制系統(tǒng)中進(jìn)行實(shí)時(shí)雙向數(shù)據(jù)切換傳輸。
2.根據(jù)權(quán)利要求1所述的基于USB總線的數(shù)據(jù)隔離切換傳輸方法,其特征是,所述的切換控制開關(guān),具體如下切換控制開關(guān)通過兩個(gè)USB接口用USB2.0總線分別連接兩個(gè)主機(jī)系統(tǒng),兩個(gè)接口均連接在一個(gè)電子切換控制開關(guān)上,開關(guān)的另一端連接著一個(gè)USB接口的存儲(chǔ)器,在任意時(shí)刻,電子開關(guān)控制只有一個(gè)主機(jī)系統(tǒng)與存儲(chǔ)器相連接,切換控制開關(guān)被設(shè)置在USB總線的數(shù)據(jù)線上,電子開關(guān)對USB數(shù)據(jù)線的通斷等效于USB設(shè)備的插入和拔出。
3.根據(jù)權(quán)利要求1所述的基于USB總線的數(shù)據(jù)隔離切換傳輸方法,其特征是,所述的切換控制軟件檢測開關(guān)通斷情況,具體如下若存儲(chǔ)USB器當(dāng)前連接著,則存取操作正常執(zhí)行,否則存取操作被延后執(zhí)行,讀寫進(jìn)程被阻塞,為保證對數(shù)據(jù)的正確讀寫,必須根據(jù)切換控制開關(guān)頻率對開關(guān)的轉(zhuǎn)換時(shí)間點(diǎn)進(jìn)行預(yù)測,通過此時(shí)間預(yù)留讀寫保護(hù)和差錯(cuò)恢復(fù)機(jī)制保證數(shù)據(jù)的可靠和高速讀寫,差錯(cuò)恢復(fù)機(jī)制即每次檢測讀寫操作的返回值,若讀寫操作失敗,則在下次獲得讀寫USB存儲(chǔ)器權(quán)限的時(shí)候重新讀寫上次調(diào)用失敗的內(nèi)容。
4.根據(jù)權(quán)利要求1所述的基于USB總線的數(shù)據(jù)隔離切換傳輸方法,其特征是,所述的數(shù)據(jù)在USB存儲(chǔ)器中的組織,具體如下主機(jī)系統(tǒng)中的切換控制軟件將切換控制開關(guān)連接的USB存儲(chǔ)器看作是一個(gè)線性的存儲(chǔ)區(qū)域,采用物理地址進(jìn)行尋址和讀寫,在存儲(chǔ)器中取一個(gè)存儲(chǔ)單元,作為引導(dǎo)區(qū)用于存放讀寫指針信息,其他的存儲(chǔ)單元被組織成環(huán)形鏈表,當(dāng)有數(shù)據(jù)需要存取時(shí),先讀取引導(dǎo)區(qū)確定當(dāng)前讀寫指針位置,再做真正的讀寫操作,最后移動(dòng)讀寫指針更新引導(dǎo)區(qū)信息,程序通過比較讀寫指針的相對位置判斷存儲(chǔ)器是否為空或是已經(jīng)填滿,由于設(shè)備剛開始工作時(shí)引導(dǎo)區(qū)中的內(nèi)容是隨機(jī)的,因此必須在正常工作開始之前對其中的內(nèi)容進(jìn)行初始化,根據(jù)傳輸?shù)姆较騽澐值刂藩?dú)立的兩段存儲(chǔ)區(qū),使兩個(gè)主機(jī)系統(tǒng)獨(dú)立完成初始化操作。
5.根據(jù)權(quán)利要求1所述的基于USB總線的數(shù)據(jù)隔離切換傳輸方法,其特征是,所述的主機(jī)系統(tǒng)對USB存儲(chǔ)器的讀寫,具體如下切換控制軟件為上層協(xié)議軟件開放了讀寫接口和設(shè)備初始化函數(shù),讀寫調(diào)用函數(shù)和設(shè)備初始化函數(shù)是主機(jī)系統(tǒng)訪問隔離切換硬件系統(tǒng)的唯一途徑,讀函數(shù)和寫函數(shù)都采用阻塞方式。
全文摘要
一種基于USB總線的數(shù)據(jù)隔離切換傳輸方法,用于網(wǎng)絡(luò)數(shù)據(jù)交換、信息安全技術(shù)領(lǐng)域。本發(fā)明采用隔離切換硬件系統(tǒng)實(shí)現(xiàn)對連接雙機(jī)系統(tǒng)的USB2.0總線進(jìn)行輪流的時(shí)隙切換,隔離切換硬件系統(tǒng)包括切換控制開關(guān)和USB存儲(chǔ)器,只有當(dāng)切換控制開關(guān)連通USB存儲(chǔ)器和主機(jī)時(shí)才由主機(jī)對USB存儲(chǔ)器進(jìn)行讀寫,任意時(shí)刻只有一臺主機(jī)系統(tǒng)對存儲(chǔ)器進(jìn)行讀寫;通過主機(jī)系統(tǒng)中的切換控制軟件來檢測開關(guān)通斷情況,確保只有當(dāng)存儲(chǔ)器連在系統(tǒng)上時(shí)才對其進(jìn)行讀寫操作,并且通過對USB存儲(chǔ)器中數(shù)據(jù)的組織和管理,在雙主機(jī)系統(tǒng)間建立一條數(shù)據(jù)雙向傳輸通路,實(shí)現(xiàn)實(shí)時(shí)雙向數(shù)據(jù)切換傳輸。本發(fā)明避免了復(fù)雜的SCSI設(shè)備的設(shè)計(jì)和對SCSI總線的控制,是廉價(jià)、高效的數(shù)據(jù)傳輸方法。
文檔編號G06F13/38GK1564142SQ20041001702
公開日2005年1月12日 申請日期2004年3月18日 優(yōu)先權(quán)日2004年3月18日
發(fā)明者潘理, 李建華, 盧震宇, 張福杰, 蔣睿 申請人:上海交通大學(xué)