專利名稱:帶通用串行總線插頭的微型存儲(chǔ)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種帶通用串行總線插頭的微型存儲(chǔ)器及其讀寫方法,更具體地說(shuō)是插入個(gè)人計(jì)算的USB接口,進(jìn)行數(shù)據(jù)處理的微型存儲(chǔ)器。
現(xiàn)有技術(shù)中,CN2405269中國(guó)實(shí)用新型專利說(shuō)明書,公開了一種用于數(shù)據(jù)處理系統(tǒng)的快閃電子式外存儲(chǔ)裝置,包括存儲(chǔ)介質(zhì)、直流電源和存儲(chǔ)控制電路,該存儲(chǔ)控制電路包括微處理器、通用串行總線接口控制器、通用串行總線插座和休眠及喚醒電路;所述存儲(chǔ)介質(zhì)是快閃存儲(chǔ)器(Flash Memory);所述微處理器分別與通用串行總線接口控制器、休眠及喚醒電路和快閃存儲(chǔ)器連接;通用串行總線接口控制器分別與該總線插座、休眠及喚醒電路和快閃存儲(chǔ)器連接;通用串行總線插座通過該總線電纜與數(shù)據(jù)處理系統(tǒng)主機(jī)連接。該快閃電子式外存儲(chǔ)裝置的不足之處,是硬件電路和相應(yīng)的控制軟件設(shè)計(jì)比較復(fù)雜。
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)之不足,提供一種硬件電路和相應(yīng)的控制軟件設(shè)計(jì)較為簡(jiǎn)單的帶通用串行總線插頭的微型存儲(chǔ)器。
按照本發(fā)明提供的帶通用串行總線插頭的微型存儲(chǔ)器,包括外殼和部分裝于其內(nèi)部的電路板,該電路板上安裝有USB接口電路、微控制器及快閃存儲(chǔ)器,所述USB接口電路通過USB插頭與個(gè)人計(jì)算機(jī)的USB接口連接,所述微控制器電路與所述USB接口電路及快閃存儲(chǔ)器電路分別多線雙向連接于地址、數(shù)據(jù)、控制總線上,所述微控制器的時(shí)鐘源由所述USB接口電路提供。
按照本發(fā)明提供的帶通用串行總線插頭的微型存儲(chǔ)器,由于其USB接口電路和快閃存儲(chǔ)器是通過微控制器進(jìn)行控制和通信的(即USB接口電路和快閃存儲(chǔ)器不能直接進(jìn)行信號(hào)的傳遞),因此其硬件電路和其控制軟件設(shè)計(jì)相對(duì)較為簡(jiǎn)單。
下面結(jié)合附圖給出的實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明
圖1為按照本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器的一種實(shí)施例的結(jié)構(gòu)示意圖;圖2為圖1所示的本發(fā)明一種實(shí)施例的電路原理圖;圖3為圖2所示的實(shí)施例電路原理圖的詳細(xì)電路結(jié)構(gòu)圖;;圖4為按照本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器在WINDOWS98操作系統(tǒng)下的控制軟件層次圖;圖5為隨本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器提供的設(shè)備驅(qū)動(dòng)程序操作流程圖;圖6為按照本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器的微控制器的控制程序流程圖;圖7為圖1所示的本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器的另一種實(shí)施例的電路原理結(jié)構(gòu)圖8為按照本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器微的計(jì)算機(jī)讀取數(shù)據(jù)的步驟流程圖;圖9為按照本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器微的計(jì)算機(jī)寫入數(shù)據(jù)的步驟流程圖;參見圖1,按照本發(fā)明提供的帶通用串行總線插頭的微型存儲(chǔ)器,包括一扁平外殼100和部分裝于其內(nèi)部的電路板(圖中用虛線表示),外殼上成形有一矩形凹陷部,以便插入個(gè)人計(jì)算機(jī)的USB接口和從該USB接口拔下該微型存儲(chǔ)器,其中的USB接口標(biāo)示為J1,該外殼還可以用半透明的材料制作,便于看到裝于內(nèi)部線路板上的指示燈。
參見圖2和3,作為本發(fā)明的一種優(yōu)選實(shí)施例,所述電路板上安裝有USB接口電路1、微控制器2及快閃存儲(chǔ)器3,所述USB接口電路1通過USB插頭與個(gè)人計(jì)算機(jī)的USB接口連接,所述微控制器電路2與所述USB接口電路1及快閃存儲(chǔ)器電路3分別多線雙向連接于地址、數(shù)據(jù)、控制總線上,個(gè)人計(jì)算機(jī)要保存的數(shù)據(jù)先通過USB接口送到USB接口電路1,USB接口電路1再通過總線把數(shù)據(jù)送到微控制器電路2,微控制器電路2對(duì)數(shù)據(jù)進(jìn)行處理,然后再通過總線把數(shù)據(jù)送到快閃存儲(chǔ)電路3;讀取的數(shù)據(jù)由快閃存儲(chǔ)電路3通過總線送到微控制器電路2,微控制器電路2對(duì)數(shù)據(jù)進(jìn)行處理,然后再通過總線把數(shù)據(jù)送到USB接口電路1,USB接口電路1再通過USB接口送回個(gè)人計(jì)算機(jī),所述微控制器(2)的時(shí)鐘源由所述USB接口電路(1)提供。因此該方式不僅可以方便地進(jìn)行數(shù)據(jù)的加解密處理,并提供多種數(shù)據(jù)保護(hù)方式;而且還可以最大幅度的減少元器件數(shù)目,降低成本,提高了可靠性及產(chǎn)品的成品率。
作為本發(fā)明的另一種優(yōu)選實(shí)施例,如圖7所示,所述USB接口電路1、所述微控制器電路2和所述快閃存儲(chǔ)器電路3分別多線雙向連接到地址、數(shù)據(jù)總線;所述微控制器2的控制總線通過模擬開關(guān)電路4與所述USB接口電路1及所述快閃存儲(chǔ)器3電連接。其具體線路如下所述微控制器電路2控制總線雙向連接模擬開關(guān)電路4,另有多條控制線連接模擬開關(guān)電路4并對(duì)其進(jìn)行控制;USB接口電路1的控制總線雙向連接模擬開關(guān)電路4;快閃存儲(chǔ)器電路3的控制總線雙向連接模擬開關(guān)電路4。個(gè)人計(jì)算機(jī)要保存的數(shù)據(jù)先通過USB接口送到USB接口電路1,USB接口電路1再通過控制總線把消息送到微控制器電路2,微控制器電路2對(duì)模擬開關(guān)電路4進(jìn)行控制,使模擬開關(guān)電路4處于特殊狀態(tài),微控制器電路2對(duì)控制總線進(jìn)行控制,使數(shù)據(jù)通過數(shù)據(jù)總線由USB接口電路1直接送到快閃存儲(chǔ)器電路3進(jìn)行存儲(chǔ);讀取數(shù)據(jù)時(shí),先由微控制器電路2對(duì)模擬開關(guān)電路4進(jìn)行控制,使模擬開關(guān)電路4處于特殊狀態(tài),微控制器電路2對(duì)控制總線進(jìn)行控制,使數(shù)據(jù)通過數(shù)據(jù)總線由快閃存儲(chǔ)器電路3直接送到USB接口電路1,USB接口電路1再通過USB接口送回個(gè)人計(jì)算機(jī);這種方式可以減少數(shù)據(jù)流動(dòng)的中間環(huán)節(jié),可以提高數(shù)據(jù)的吞吐率,減少數(shù)據(jù)存取時(shí)間。
如圖3所示,在給出的上述優(yōu)選實(shí)施例中,所述微控制器2電連接有一狀態(tài)指示電路,所述狀態(tài)指示電路包含一個(gè)發(fā)光二極管D2和電阻R8,D2和R8串聯(lián),D2正極接電源正極,R8另一端接U2的14腳(I/O端口),由該發(fā)光二極管D2實(shí)現(xiàn)狀態(tài)顯示,它可顯示本微型存儲(chǔ)器的工作狀態(tài)。
如圖3所示,在給出的上述優(yōu)選實(shí)施例中,所述USB接口電路1由型號(hào)為PDIUSBD12的接口芯片U1、晶體諧振器Y1、電阻R1~R4、電容C1~C4、發(fā)光二極管D1、二極管D3和D4、磁珠FB1和FB2、USB插頭J1構(gòu)成,其中,D1和R1串聯(lián),D1正極連接電源正極,R1另一端接U1的21腳,用來(lái)顯示USB線路的狀態(tài);C3和C4并聯(lián),兩端分別接電源正極和地,D3和D4串聯(lián),正極接FB1,負(fù)極接電源正極,構(gòu)成降壓濾波電路,向系統(tǒng)供電;Y1兩端分別接C1、C2和U1的22、23腳,C1、C2另一端接地,組成振蕩電路;FB1兩端分別接J1的1腳和D4正極,F(xiàn)B2兩端分別接J1的4腳和地,構(gòu)成低通濾波器,可減少高頻干擾;U1的25、26腳分別經(jīng)R2、R3接J1的2、3腳,與主機(jī)通信;R4兩端接U1的18、19腳;U1的18、20、24、27腳接電源正極;U1的5腳接地,U1符合USB1.0和USB1.1協(xié)議,完成USB的數(shù)據(jù)通信工作。
如圖3所示,在給出的上述優(yōu)選實(shí)施例中,所述微控制器2是由微處理器芯片U2、電阻R5~R8、發(fā)光二極管D2組成,R5、R6的一端接電源正極,另一端分別接U2的13、12腳,提供上拉電流;R7的一端接電源正極,另一端接U2的9腳,提供上電復(fù)位信號(hào);D2和R8串聯(lián),D2正極接電源正極,R8另一端接U2的14腳,顯示微控制器的狀態(tài);U2的數(shù)據(jù)總線32~39腳和控制線30、16、17、12、28腳分別與USB接口電路U1的數(shù)據(jù)和控制線連接,對(duì)U1進(jìn)行控制和通信;U2的時(shí)鐘輸入線19腳接U1的時(shí)鐘分頻輸出線13腳,由U1向U2提供時(shí)鐘源。
在給出的上述優(yōu)選實(shí)施例中,所述微處理器芯片U2可以采用AVR90或8051系列,當(dāng)采用AVR90系列時(shí),微控制器2電連接有一接口J2,J2的1、2、3、4腳分別接U2的9、8、7、6腳,利用該接口可實(shí)現(xiàn)在線編程的功能。
如圖3所示,在給出的上述優(yōu)選實(shí)施例中,所述快閃存儲(chǔ)器3是由TC58或K9系列的快閃存儲(chǔ)芯片U3構(gòu)成,U3的數(shù)據(jù)線29~32、41~44腳與U2的數(shù)據(jù)線32~39腳連接;所述U3的控制線6~9及16~19腳分別與U2的控制線4、13、17、27、3、2、16、1腳連接相連接,由所述微控制器2控制該快閃存儲(chǔ)器3的讀寫過程。
本發(fā)明不需要機(jī)械讀取設(shè)備,是純電子方式存取數(shù)據(jù),其操作由軟件實(shí)現(xiàn)。
在詳細(xì)說(shuō)明本發(fā)明提供的帶通用串行總線插頭的微型存儲(chǔ)器的讀寫方法之前,首先解釋或者定義涉及到的一些相關(guān)的專業(yè)術(shù)語(yǔ)所謂USB接口,其中的USB系原文Universal Serial Bus的縮略語(yǔ),即通用串行總線,其標(biāo)準(zhǔn)由Compaq、Intel、Microsoft、NEC共同制定,意在使個(gè)人計(jì)算機(jī)與外設(shè)間的連接更加簡(jiǎn)單方便,通用性更好;“操作系統(tǒng)上層驅(qū)動(dòng)程序”,系指由操作系統(tǒng)提供的,給應(yīng)用程序提供服務(wù)的程序。本說(shuō)明書中專指文件系統(tǒng)驅(qū)動(dòng)程序和SCSI類驅(qū)動(dòng)程序;“設(shè)備驅(qū)動(dòng)程序”,系指對(duì)應(yīng)于某種設(shè)備的專用程序,給操作系統(tǒng)上層驅(qū)動(dòng)程序提供服務(wù),本說(shuō)明書中專指USB接口快閃外存儲(chǔ)裝置的設(shè)備驅(qū)動(dòng)程序;“操作系統(tǒng)底層驅(qū)動(dòng)程序”,系指由操作系統(tǒng)提供,專為某些通用接口進(jìn)行控制的程序,它給某些設(shè)備驅(qū)動(dòng)程序提供服務(wù)。本說(shuō)明書中專指USB接口底層驅(qū)動(dòng)程序;“微控制器程序”,系指固化在設(shè)備的微控制器中,對(duì)通過某種通用接口接收到的主機(jī)命令進(jìn)行響應(yīng),做出相對(duì)應(yīng)的操作,并把結(jié)果或狀態(tài)返回到主機(jī),它和主機(jī)的操作系統(tǒng)底層驅(qū)動(dòng)程序通信。本說(shuō)明書專指USB接口快閃外存儲(chǔ)裝置中微控制器的程序;
本發(fā)明提供帶通用串行總線插頭的微型存儲(chǔ)器中的數(shù)據(jù)的存入和讀取是以數(shù)據(jù)塊為單位進(jìn)行的,其中數(shù)據(jù)塊大小由所用快閃存儲(chǔ)芯片特性決定。
下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明提供的帶通用串行總線插頭的微型存儲(chǔ)器的讀寫方法參見圖4,其中示出按照本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器在WINDOWS98操作系統(tǒng)下的控制軟件層次圖。該控制軟件即驅(qū)動(dòng)程序,包括操作系統(tǒng)上層驅(qū)動(dòng)程序(包括文件系統(tǒng)驅(qū)動(dòng)程序和SCSI類驅(qū)動(dòng)程序)、設(shè)備驅(qū)動(dòng)程序(包括SCSI小端口驅(qū)動(dòng)程序和USB驅(qū)動(dòng)程序)、USB底層驅(qū)動(dòng)程序(包括USB集線器驅(qū)動(dòng)程序和USB主機(jī)控制器驅(qū)動(dòng)程序)和微控制器程序。其中所述微控制器程序在固化于微控制器U1中并在微控制器U1中運(yùn)行,控制快閃存儲(chǔ)芯片U3和USB接口芯片U1,與USB底層驅(qū)動(dòng)程序通信;所述USB底層驅(qū)動(dòng)程序,在WINDOWS98/2000、LINUX和MAC OS下是由操作系統(tǒng)提供,在WINDOWS NT下使用本申請(qǐng)人提供的底層驅(qū)動(dòng)程序,它負(fù)責(zé)控制主機(jī)USB接口與設(shè)備驅(qū)動(dòng)程序的通信;所述設(shè)備驅(qū)動(dòng)程序建立在USB底層驅(qū)動(dòng)程序之上,負(fù)責(zé)解釋并完成操作系統(tǒng)或應(yīng)用程序?qū)ㄓ么锌偩€插頭的微型存儲(chǔ)器發(fā)出的操作請(qǐng)求,所述操作系統(tǒng)上層驅(qū)動(dòng)程序由操作系統(tǒng)提供,并給應(yīng)用程序提供服務(wù),同時(shí)負(fù)責(zé)將應(yīng)用程序的讀寫請(qǐng)求傳送給設(shè)備驅(qū)動(dòng)程序。
如圖4所示,當(dāng)應(yīng)用程序發(fā)送一個(gè)讀請(qǐng)求后,該讀請(qǐng)求首先被發(fā)送到文件系統(tǒng)驅(qū)動(dòng)程序和SCSI類驅(qū)動(dòng)程序,再轉(zhuǎn)給SCSI小端口驅(qū)動(dòng)程序,SCSI小端口驅(qū)動(dòng)程序會(huì)把這次請(qǐng)求轉(zhuǎn)換成本裝置要求的格式,并傳遞給本裝置的USB驅(qū)動(dòng)程序,USB驅(qū)動(dòng)程序會(huì)將轉(zhuǎn)換過的請(qǐng)求發(fā)送給USB底層驅(qū)動(dòng)程序,并最終通過USB接口傳到本裝置的USB接口電路。
參見圖5,其中示出了隨本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器提供的驅(qū)動(dòng)程序流程圖。其基本操作過程依次包括如下步驟如步驟S501所示,將帶通用串行總線插頭的微型存儲(chǔ)器插入計(jì)算機(jī)主機(jī)的USB插口后,存儲(chǔ)器內(nèi)的上述電路將從USB接口獲得電源,微控制器U2隨之復(fù)位并開始執(zhí)行內(nèi)置的微控制器程序首先進(jìn)行初始化,這部分程序的作用是設(shè)定微控制器U2及USB接口芯片U1的初始參數(shù);設(shè)置工作完成后,微控制器U2將進(jìn)入等待狀態(tài),等待主機(jī)發(fā)送請(qǐng)求(即USB接口芯片產(chǎn)生中斷);如步驟S502所示,USB接口芯片U1初始化后,主機(jī)將檢測(cè)到USB接口上有設(shè)備連接。由操作系統(tǒng)提供的USB底層驅(qū)動(dòng)程序?qū)l(fā)送一系列請(qǐng)求給本裝置,微控制器U2會(huì)執(zhí)行由USB接口芯片U1中斷引發(fā)的中斷服務(wù)程序,由中斷服務(wù)程序處理主機(jī)的各個(gè)請(qǐng)求;如步驟S503所示,當(dāng)上述請(qǐng)求處理完畢后,主機(jī)操作系統(tǒng)將首先加載預(yù)先安裝在主機(jī)硬盤內(nèi)的為本存儲(chǔ)器編寫的設(shè)備驅(qū)動(dòng)程序中的USB驅(qū)動(dòng)程序;如步驟S504所示,當(dāng)上述USB驅(qū)動(dòng)程序加載完畢后,USB驅(qū)動(dòng)程序會(huì)首先創(chuàng)建一個(gè)設(shè)備對(duì)象并通知操作系統(tǒng)有新的設(shè)備連接;如步驟S514所示,操作系統(tǒng)加載本存儲(chǔ)器的SCSI小端口驅(qū)動(dòng)程序;然后進(jìn)入步驟S515,當(dāng)本存儲(chǔ)器的USB驅(qū)動(dòng)程序與SCSI小端口驅(qū)動(dòng)程序均加載至系統(tǒng)中后,主機(jī)進(jìn)行初始化并根據(jù)設(shè)備信號(hào)創(chuàng)建一個(gè)新的驅(qū)動(dòng)器符號(hào);之后進(jìn)入等待操作步驟S516,當(dāng)主機(jī)發(fā)出一個(gè)請(qǐng)求后,則進(jìn)入步驟S517,操作系統(tǒng)上層驅(qū)動(dòng)程序判斷是否為文件讀操作,如果判斷結(jié)果是肯定的,則進(jìn)入步驟S518,通過調(diào)用USB驅(qū)動(dòng)程序讀取數(shù)據(jù)塊;如判斷結(jié)果是否定的,則進(jìn)入步驟S519,判斷是否為文件寫操作,如果判斷結(jié)果是肯定的,則進(jìn)入步驟S520,通過調(diào)用USB驅(qū)動(dòng)程序讀取數(shù)據(jù)塊,然后進(jìn)入步驟S521,合并新數(shù)據(jù)塊并調(diào)用USB驅(qū)動(dòng)寫入數(shù)據(jù)塊;如果判斷結(jié)果是否定的,則進(jìn)入步驟S522,操作系統(tǒng)上層驅(qū)動(dòng)程序判斷是否為設(shè)備刪除,如果判斷結(jié)果是肯定的,則進(jìn)入步驟S524,本發(fā)明被系統(tǒng)卸載;如判斷結(jié)果是否定的,則進(jìn)入步驟S523,返回錯(cuò)誤信息。
如圖5所示,在上述步驟中,步驟S518,S521,S523執(zhí)行完成后即進(jìn)入步驟S505,進(jìn)入等待請(qǐng)求狀態(tài);如步驟S506所示,當(dāng)本存儲(chǔ)器得到一個(gè)請(qǐng)求后,首先判斷該請(qǐng)求是否為讀請(qǐng)求,如果判斷結(jié)果是肯定的,則進(jìn)入步驟S507,通過調(diào)用USB底層驅(qū)動(dòng),讀取數(shù)據(jù);如果判斷結(jié)果是否定的,則進(jìn)入寫請(qǐng)求的判斷步驟S508,如果判斷結(jié)果是肯定的,則進(jìn)入步驟S509,通過調(diào)用USB底層驅(qū)動(dòng),寫入數(shù)據(jù);如果判斷結(jié)果是否定的,則進(jìn)入拔出請(qǐng)求的判斷步驟S510,如果判斷結(jié)果是肯定的,則進(jìn)入步驟S512,處理并刪除設(shè)備連接,然后進(jìn)入步驟S513,被系統(tǒng)卸載;如果判斷結(jié)果是否定的,則返回錯(cuò)誤信息。
在上述過程進(jìn)行的同時(shí),微控制器程序也進(jìn)行相應(yīng)的控制,其流程如圖6所示,依次包括如下步驟步驟S601,該存儲(chǔ)器插入計(jì)算機(jī);步驟S602,硬件初始化;步驟S603,等待中斷;步驟S604,微控制器程序判斷是否為USB中斷,如果判斷結(jié)果是否定的,則返回到步驟S603,等待中斷;如果判斷結(jié)果是肯定的,則進(jìn)入中斷服務(wù)程序,該程序首先判斷是否為控制傳輸,進(jìn)入步驟S605,如果判斷結(jié)果是肯定的,則進(jìn)入步驟S606,處理系統(tǒng)請(qǐng)求,處理完畢后,則返回到步驟S603,等待中斷;如果判斷結(jié)果是否定的,則進(jìn)入步驟S607,該程序判斷是否為塊傳輸,如果判斷結(jié)果是否定的,則返回到步驟S603,等待中斷;如果判斷結(jié)果是肯定的,則進(jìn)入步驟S608,處理自定義請(qǐng)求,處理完畢后,返回到步驟S603,等待中斷。之后當(dāng)本裝置從USB接口上拔下時(shí),則進(jìn)入S609的拔出步驟,該微控制器程序停止工作,同時(shí)主機(jī)會(huì)自動(dòng)檢測(cè)到上述狀態(tài),并通知本裝置的USB驅(qū)動(dòng)程序設(shè)備已經(jīng)移除。USB驅(qū)動(dòng)程序會(huì)進(jìn)行一些必要的處理,取消那些沒有完成的讀寫請(qǐng)求,刪除設(shè)備對(duì)象。由于USB驅(qū)動(dòng)程序刪除了由它創(chuàng)建的設(shè)備對(duì)象,因此本裝置的USB驅(qū)動(dòng)程序卸載后,SCSI小端口驅(qū)動(dòng)程序也會(huì)隨之被操作系統(tǒng)卸載。
當(dāng)上述準(zhǔn)備基本完成后,SCSI小端口驅(qū)動(dòng)程序會(huì)先讀取設(shè)備特定的信息,然后開始等待應(yīng)用程序發(fā)出“讀/寫”請(qǐng)求,至此硬、軟件的初始化工作完成,本發(fā)明進(jìn)入等待讀寫請(qǐng)求狀態(tài);當(dāng)USB接口芯片接收到主機(jī)通過USB接口發(fā)送來(lái)的請(qǐng)求后,USB接口芯片會(huì)給微控制器發(fā)送一個(gè)中斷信號(hào),微控制器會(huì)轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序會(huì)分析主機(jī)發(fā)來(lái)的請(qǐng)求,當(dāng)發(fā)現(xiàn)是讀請(qǐng)求后微控制器會(huì)記錄主機(jī)要讀取的區(qū)塊描述,然后每次會(huì)從快閃存儲(chǔ)芯片中讀出一塊數(shù)據(jù)通過USB接口芯片發(fā)回主機(jī),直到所有要求的數(shù)據(jù)全部發(fā)送完。
發(fā)給主機(jī)的這些數(shù)據(jù)會(huì)由本裝置的USB驅(qū)動(dòng)程序傳給SCSI小端口驅(qū)動(dòng)程序,并最終傳給應(yīng)用程序,至此讀操作完成。
與上述過程相類似,當(dāng)操作系統(tǒng)接到應(yīng)用程序發(fā)送來(lái)的寫請(qǐng)求后,也會(huì)先將這個(gè)請(qǐng)求傳給SCSI小端口驅(qū)動(dòng)程序,由SCSI小端口驅(qū)動(dòng)程序?qū)⑵滢D(zhuǎn)換成本裝置要求的格式。但由于快閃存儲(chǔ)芯片只能整塊寫入,因此SCSI小端口驅(qū)動(dòng)程序會(huì)先從本裝置中讀取一部分?jǐn)?shù)據(jù),然后將要寫入的數(shù)據(jù)與讀回的數(shù)據(jù)合并成完整的數(shù)據(jù)塊之后再寫入本裝置。數(shù)據(jù)寫入完成后,SCSI小端口驅(qū)動(dòng)程序會(huì)把操作狀態(tài)返回給文件系統(tǒng)驅(qū)動(dòng)程序。
下面結(jié)合附圖8詳細(xì)敘述本微型存儲(chǔ)器的讀操作過程,依次包括如下步驟1) 如圖中步驟S801、S802表示,首先主機(jī)操作系統(tǒng)的應(yīng)用程序向操作系統(tǒng)上層驅(qū)動(dòng)程序發(fā)出一個(gè)讀命令;2)如步驟S803所示,操作系統(tǒng)上層驅(qū)動(dòng)程序判斷上述命令是否為本裝置的讀操作,如判斷結(jié)果是否定的,則進(jìn)入S804所示的步驟,終止執(zhí)行該命令;如判斷結(jié)果是肯定的,則進(jìn)入步驟S805,把讀請(qǐng)求轉(zhuǎn)給設(shè)備驅(qū)動(dòng)程序;3)在步驟S805,設(shè)備驅(qū)動(dòng)程序把讀請(qǐng)求轉(zhuǎn)換為操作系統(tǒng)底層驅(qū)動(dòng)程序的命令序列,然后進(jìn)入步驟S806;4)在步驟S806,設(shè)備驅(qū)動(dòng)程序根據(jù)命令序列調(diào)用系統(tǒng)底層驅(qū)動(dòng)程序;5)當(dāng)上述步驟完成后,進(jìn)入步驟S807,操作系統(tǒng)底層驅(qū)動(dòng)程序通過USB接口傳給微控制器程序;6)當(dāng)上述步驟完成后,進(jìn)入步驟S808,微控制器程序做出對(duì)應(yīng)操作,即微控制器記錄主機(jī)要讀取的區(qū)塊描述,然后每次從快閃存儲(chǔ)芯片中讀出一塊數(shù)據(jù)通過USB接口芯片發(fā)回主機(jī),然后進(jìn)入步驟S809,微控制器程序?qū)⒔Y(jié)果及狀態(tài)送回操作系統(tǒng)底層驅(qū)動(dòng)程序;此處所述“結(jié)果”是指從本微型存儲(chǔ)器讀取的數(shù)據(jù),“狀態(tài)”是指讀操作是否完成;7)在步驟S809中,操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒔Y(jié)果及狀態(tài)返回設(shè)備驅(qū)動(dòng)程序;8)然后進(jìn)入步驟S810,設(shè)備驅(qū)動(dòng)程序根據(jù)結(jié)果和狀態(tài),重復(fù)完成4、5、6、7步驟,直到完成全部數(shù)據(jù)讀取的操作,然后進(jìn)入步驟S811,將數(shù)據(jù)和狀態(tài)返回給操作系統(tǒng)上層驅(qū)動(dòng)程序;9)當(dāng)上述步驟完成后,進(jìn)入步驟S811,操作系統(tǒng)上層驅(qū)動(dòng)程序再將數(shù)據(jù)和狀態(tài)返回給應(yīng)用程序,即進(jìn)入步驟S812。
如附圖9所示,主機(jī)對(duì)本發(fā)明的帶通用串行總線插頭的微型存儲(chǔ)器寫入數(shù)據(jù)的步驟如下1)如圖中步驟S901、S902表示,主機(jī)應(yīng)用程序向操作系統(tǒng)上層驅(qū)動(dòng)程序發(fā)出一個(gè)寫命令;2) 如步驟S903,操作系統(tǒng)上層驅(qū)動(dòng)程序判斷該命令是否為本裝置的寫操作,如判斷結(jié)果是否定的,則進(jìn)入步驟S904,終止執(zhí)行該命令;如判斷結(jié)果是肯定的,則進(jìn)入步驟S905,把寫請(qǐng)求轉(zhuǎn)給設(shè)備驅(qū)動(dòng)程序;3)然后進(jìn)入步驟S906,設(shè)備驅(qū)動(dòng)程序先進(jìn)行對(duì)應(yīng)數(shù)據(jù)塊的讀操作,此處所述的“對(duì)應(yīng)數(shù)據(jù)塊”是指本發(fā)明的微型存儲(chǔ)器內(nèi)部原有的數(shù)據(jù);4)在步驟S906,設(shè)備驅(qū)動(dòng)程序把讀請(qǐng)求轉(zhuǎn)換為操作系統(tǒng)底層驅(qū)動(dòng)程序的命令序列;5)在步驟S906,設(shè)備驅(qū)動(dòng)程序根據(jù)命令序列調(diào)用操作系統(tǒng)底層驅(qū)動(dòng)程序;6)在步驟S906,操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒁讯x好的命令碼通過USB接口傳給微控制器程序;7)在步驟S906,微控制器程序做出對(duì)應(yīng)操作,并將結(jié)果及狀態(tài)送回操作系統(tǒng)底層驅(qū)動(dòng)程序;
8)在步驟S906,操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒔Y(jié)果及狀態(tài)返回設(shè)備驅(qū)動(dòng)程序;9)在步驟S906,設(shè)備驅(qū)動(dòng)程序根據(jù)結(jié)果和狀態(tài),重復(fù)完成5、6、7、8步驟,直到完成數(shù)據(jù)塊讀取,將數(shù)據(jù)保存于緩沖區(qū),由于上述讀取數(shù)據(jù)的過程與前述讀操作過程相同,因此流程圖中簡(jiǎn)化為步驟S906;10)當(dāng)上述步驟完成后,進(jìn)入步驟S907,設(shè)備驅(qū)動(dòng)程序?qū)⒁膶懙臄?shù)據(jù)和緩沖區(qū)中未變化的數(shù)據(jù)合并為新的數(shù)據(jù)塊保存于緩沖區(qū);11)然后進(jìn)入步驟S908,設(shè)備驅(qū)動(dòng)程序把寫請(qǐng)求轉(zhuǎn)換為操作系統(tǒng)底層驅(qū)動(dòng)程序的命令序列;12)然后進(jìn)入步驟S909,設(shè)備驅(qū)動(dòng)程序根據(jù)命令序列調(diào)用操作系統(tǒng)底層驅(qū)動(dòng)程序;13)然后進(jìn)入步驟S910,操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒁讯x好的命令碼通過USB接口傳給微控制器程序;14)然后進(jìn)入步驟S911,微控制器程序做出對(duì)應(yīng)操作,其中包括擦除和寫操作,然后進(jìn)入步驟S912,并將狀態(tài)送回操作系統(tǒng)底層驅(qū)動(dòng)程序;“狀態(tài)”是指寫操作是否完成;15)在步驟S912,操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒔Y(jié)果及狀態(tài)返回設(shè)備驅(qū)動(dòng)程序;16)然后進(jìn)入步驟S913,設(shè)備驅(qū)動(dòng)程序根據(jù)結(jié)果和狀態(tài),重復(fù)完成12、13、14、15步驟,直到完成把緩沖區(qū)中的數(shù)據(jù)全部寫入,然后進(jìn)入步驟S914,將狀態(tài)返回給操作系統(tǒng)上層驅(qū)動(dòng)程序;17)當(dāng)上述步驟完成后,進(jìn)入步驟S915,操作系統(tǒng)上層驅(qū)動(dòng)程序?qū)顟B(tài)返回給應(yīng)用程序。
權(quán)利要求
1.一種帶通用串行總線插頭的微型存儲(chǔ)器,包括外殼和部分裝于其內(nèi)部的電路板,電路板上安裝有USB接口電路(1)、微控制器(2)及快閃存儲(chǔ)器(3),所述USB接口電路(1)通過USB插頭與個(gè)人計(jì)算機(jī)的USB接口連接,其特征在于所述微控制器電路(2)與所述USB接口電路(1)及快閃存儲(chǔ)器電路(3)分別多線雙向連接于地址、數(shù)據(jù)、控制總線上,所述微控制器(2)的時(shí)鐘源由所述USB接口電路(1)提供。
2.根據(jù)權(quán)利要求1所述的帶通用串行總線插頭的微型存儲(chǔ)器,其特征在于所述微控制器(2)的控制總線通過模擬開關(guān)電路(4)與所述USB接口電路(1)及所述快閃存儲(chǔ)器(3)電連接。
3.根據(jù)權(quán)利要求1所述的帶通用串行總線插頭的微型存儲(chǔ)器,其特征在于所述微控制器(2)電連接有一狀態(tài)指示電路,所述狀態(tài)指示電路包含一個(gè)發(fā)光二極管D2,由該發(fā)光二極管D2實(shí)現(xiàn)狀態(tài)顯示。
4.根據(jù)權(quán)利要求3所述的帶通用串行總線插頭的微型存儲(chǔ)器,其特征在于所述狀態(tài)指示電路包含發(fā)光二極管D2和電阻R8,D2和R8串聯(lián),D2正極接電源正極,R8另一端接U2的I/O腳,由該發(fā)光二極管D2實(shí)現(xiàn)狀態(tài)顯示。
5.根據(jù)權(quán)利要求1所述的帶通用串行總線插頭的微型存儲(chǔ)器,其特征在于所述USB接口電路(1)由型號(hào)為PDIUSBD12的接口芯片U1、晶體諧振器Y1、電阻R1~R4、電容C1~C4、發(fā)光二極管D1、二極管D3和D4、磁珠FB1和FB2、USB插頭J1構(gòu)成,其中,D1和R1串聯(lián),D1正極連接電源正極,R1另一端接U1的21腳,用來(lái)顯示USB線路的狀態(tài);C3和C4并聯(lián),兩端分別接電源正極和地,D3和D4串聯(lián),正極接FB1,負(fù)極接電源正極,構(gòu)成降壓濾波電路;Y1兩端分別接C1、C2和U1的22、23腳,C1、C2另一端接地,組成振蕩電路;FB1兩端分別接J1的1腳和D4正極,F(xiàn)B2兩端分別接J1的4腳和地,構(gòu)成低通濾波器;U1的25、26腳分別經(jīng)R2、R3接J1的2、3腳,與主機(jī)通信;R4兩端接U1的18、19腳;U1的18、20、24、27腳接電源正極;U1的5腳接地。
6.根據(jù)權(quán)利要求1所述的帶通用串行總線插頭的微型存儲(chǔ)器,其特征在于所述微控制器(2)是由微處理器芯片U2、電阻R5~R8、發(fā)光二極管D2組成;R5、R6的一端接電源正極,另一端分別接U2的13、12腳,提供上拉電流;R7的一端接電源正極,另一端接U2的9腳,提供上電復(fù)位信號(hào);D2和R8串聯(lián),D2正極接電源正極,R8另一端接U2的14腳,顯示微控制器的狀態(tài);U2的數(shù)據(jù)總線32~39腳和控制線30、16、17、12、28腳分別與USB接口電路U1的數(shù)據(jù)和控制線連接,對(duì)U1進(jìn)行控制和通信;U2的時(shí)鐘輸入線19腳接U1的時(shí)鐘分頻輸出線13腳,由U1向U2提供時(shí)鐘源。
7.根據(jù)權(quán)利要求6所述的帶通用串行總線插頭的微型存儲(chǔ)器,其特征在于所述微處理器芯片U2為AVR90或8051系列,當(dāng)采用AVR90系列時(shí),微控制器(2)電連接有一接口J2,J2的1、2、3、4腳分別接U2的9、8、7、6腳,實(shí)現(xiàn)在線編程。
8.根據(jù)權(quán)利要求1所述的帶通用串行總線插頭的微型存儲(chǔ)器,其特征在于所述快閃存儲(chǔ)器(3)是由TC58或K9系列的快閃存儲(chǔ)芯片U3構(gòu)成,U3的數(shù)據(jù)線29~32、41~44腳與U2的數(shù)據(jù)線32~39腳連接;所述U3的控制線6~9及16~19腳分別與U2的控制線4、13、17、27、3、2、16、1腳連接相連接。
9.帶通用串行總線插頭的微型存儲(chǔ)器的讀寫方法,包括如下操作步驟(1)初始化,具體有如下操作步驟將本微型存儲(chǔ)器插入計(jì)算機(jī)主機(jī)的USB插口,該微型存儲(chǔ)器內(nèi)電路從USB接口獲得電源,微控制器U2復(fù)位并開始執(zhí)行內(nèi)置的微控制器程序,進(jìn)行初始化,設(shè)定微控制器U2及USB接口芯片U1的初始參數(shù);主機(jī)檢測(cè)到USB接口上有設(shè)備連接,根據(jù)主機(jī)操作系統(tǒng)的規(guī)范,操作系統(tǒng)結(jié)合設(shè)備驅(qū)動(dòng)程序做相應(yīng)處理,直到在系統(tǒng)中產(chǎn)生可用的存儲(chǔ)設(shè)備;(2)等待應(yīng)用程序發(fā)出“讀/寫”請(qǐng)求;其特征在于〖A〗從該微型存儲(chǔ)器讀取數(shù)據(jù)的過程包括如下步驟1)操作系統(tǒng)上層驅(qū)動(dòng)程序接收應(yīng)用程序讀命令;2)操作系統(tǒng)上層驅(qū)動(dòng)程序判斷是否為本微型存儲(chǔ)器的讀操作,如判斷結(jié)果是否定的,則終止執(zhí)行;如判斷結(jié)果是肯定的,則把請(qǐng)求轉(zhuǎn)給設(shè)備驅(qū)動(dòng)程序;3)設(shè)備驅(qū)動(dòng)程序把讀請(qǐng)求轉(zhuǎn)換為操作系統(tǒng)底層驅(qū)動(dòng)程序的命令序列;4)設(shè)備驅(qū)動(dòng)程序根據(jù)命令序列調(diào)用系統(tǒng)底層驅(qū)動(dòng)程序;5)操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒁讯x好的命令碼通過USB接口傳給微控制器程序;6)微控制器程序做出對(duì)應(yīng)操作,并將結(jié)果及狀態(tài)送回操作系統(tǒng)底層驅(qū)動(dòng)程序;7)操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒔Y(jié)果及狀態(tài)返回設(shè)備驅(qū)動(dòng)程序;8)設(shè)備驅(qū)動(dòng)程序根據(jù)結(jié)果和狀態(tài),重復(fù)完成4、5、6、7步驟,直到完成數(shù)據(jù)塊讀取的操作,將數(shù)據(jù)和狀態(tài)返給操作系統(tǒng)上層驅(qū)動(dòng)程序;9)操作系統(tǒng)上層驅(qū)動(dòng)程序再將數(shù)據(jù)和狀態(tài)返回給應(yīng)用程序?!糂〗主機(jī)對(duì)帶通用串行總線插頭的微型存儲(chǔ)器寫入數(shù)據(jù)的過程包括如下步驟1)系統(tǒng)上層驅(qū)動(dòng)程序接收應(yīng)用程序?qū)懨睿?)操作系統(tǒng)上層驅(qū)動(dòng)程序判斷是否為本微型存儲(chǔ)器的寫操作,如判斷結(jié)果是否定的,則終止執(zhí)行;如判斷結(jié)果是肯定的,則把請(qǐng)求轉(zhuǎn)給設(shè)備驅(qū)動(dòng)程序;3)設(shè)備驅(qū)動(dòng)程序先進(jìn)行對(duì)應(yīng)數(shù)據(jù)塊的讀操作;4)設(shè)備驅(qū)動(dòng)程序把讀請(qǐng)求轉(zhuǎn)換為操作系統(tǒng)底層驅(qū)動(dòng)程序的命令序列;5)設(shè)備驅(qū)動(dòng)程序根據(jù)命令序列調(diào)用操作系統(tǒng)底層驅(qū)動(dòng)程序;6)操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒁讯x好的命令碼通過USB接口傳給微控制器程序;7)微控制器程序做出對(duì)應(yīng)操作,并將結(jié)果及狀態(tài)送回操作系統(tǒng)底層驅(qū)動(dòng)程序;8)操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒔Y(jié)果及狀態(tài)返回設(shè)備驅(qū)動(dòng)程序;9)設(shè)備驅(qū)動(dòng)程序根據(jù)結(jié)果和狀態(tài),重復(fù)完成5、6、7、8步驟,直到完成數(shù)據(jù)塊讀取,將數(shù)據(jù)保存于緩沖區(qū);10)設(shè)備驅(qū)動(dòng)程序?qū)⒁4娴臄?shù)據(jù)和緩沖區(qū)中未變化的數(shù)據(jù)合并為新的數(shù)據(jù)塊保存于緩沖區(qū);11)設(shè)備驅(qū)動(dòng)程序把寫請(qǐng)求轉(zhuǎn)換為操作系統(tǒng)底層驅(qū)動(dòng)程序的命令序列;12)設(shè)備驅(qū)動(dòng)程序根據(jù)命令序列調(diào)用操作系統(tǒng)底層驅(qū)動(dòng)程序;13)操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒁讯x好的命令碼通過USB接口傳給微控制器程序;14)微控制器程序做出對(duì)應(yīng)操作,其中包括擦除操作和寫操作,并將結(jié)果及狀態(tài)送回操作系統(tǒng)底層驅(qū)動(dòng)程序;15)操作系統(tǒng)底層驅(qū)動(dòng)程序?qū)⒔Y(jié)果及狀態(tài)返回設(shè)備驅(qū)動(dòng)程序;16)設(shè)備驅(qū)動(dòng)程序根據(jù)結(jié)果和狀態(tài),重復(fù)完成12、13、14、15步驟,直到完成把緩沖區(qū)中的數(shù)據(jù)全部寫入,將結(jié)果和狀態(tài)返給操作系統(tǒng)上層驅(qū)動(dòng)程序;17)操作系統(tǒng)上層驅(qū)動(dòng)程序?qū)⒔Y(jié)果和狀態(tài)返回給應(yīng)用程序。
10.根據(jù)權(quán)利要求9所述的帶通用串行總線插頭的微型存儲(chǔ)器的讀寫方法其特征在于所述帶通用串行總線插頭的微型存儲(chǔ)器中的數(shù)據(jù)的存入和讀取是以數(shù)據(jù)塊為單位進(jìn)行的。
全文摘要
本發(fā)明涉及一種帶通用串行總線插頭的微型存儲(chǔ)器及讀寫方法,存儲(chǔ)器包括外殼和部分裝于其內(nèi)部的電路板,電路板上安裝有USB接口電路、微控制器及快閃存儲(chǔ)器,所述USB接口電路通過USB插頭與個(gè)人計(jì)算機(jī)的USB接口連接,所述微控制器電路與所述USB接口電路及快閃存儲(chǔ)器電路分別多線雙向連接于地址、數(shù)據(jù)、控制總線上,所述微控制器的時(shí)鐘源由所述USB接口電路提供,該存儲(chǔ)器不僅可以方便地進(jìn)行數(shù)據(jù)的加解密處理,并提供多種數(shù)據(jù)保護(hù)方式;還可以最大幅度的減少元器件數(shù)目,降低成本,提高了產(chǎn)品的可靠性及成品率,而且讀寫步驟設(shè)計(jì)合理,軟件開發(fā)方便,高效地與各種操作系統(tǒng)配合。
文檔編號(hào)G06F12/00GK1367437SQ0110212
公開日2002年9月4日 申請(qǐng)日期2001年1月21日 優(yōu)先權(quán)日2001年1月21日
發(fā)明者黃煜, 陸舟 申請(qǐng)人:北京飛天誠(chéng)信科技有限公司