專利名稱::測(cè)試具有通用串行總線接口的存儲(chǔ)裝置的方法及存儲(chǔ)裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及測(cè)試具有半導(dǎo)體存儲(chǔ)器的存儲(chǔ)裝置的測(cè)試方法及其存儲(chǔ)裝置,特別涉及一種測(cè)試具有通用串行總線(USB-UniversalSerialBus)接口的存儲(chǔ)裝置的測(cè)試方法,以及一種具有自測(cè)試通用串行總線接口的存儲(chǔ)裝置。
背景技術(shù):
:已知具有體快速存儲(chǔ)器的存儲(chǔ)裝置,例如為大姆哥的存儲(chǔ)裝置,其測(cè)試方式是由主機(jī)送出測(cè)試數(shù)據(jù)(testpattern),經(jīng)由USB總線讀寫快速存儲(chǔ)器,將測(cè)試數(shù)據(jù)寫入快速存儲(chǔ)器,然后讀取快速存儲(chǔ)器,在主機(jī)上對(duì)比測(cè)試數(shù)據(jù)和讀取數(shù)據(jù),這樣的已知方式完成測(cè)試所需的時(shí)間相當(dāng)長(zhǎng),尤其是對(duì)存儲(chǔ)容量大的存儲(chǔ)裝置的測(cè)試更為耗時(shí)。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種測(cè)試具有通用串行總線(USB)接口的存儲(chǔ)裝置的測(cè)試方法,使得能夠快速完成對(duì)存儲(chǔ)裝置的測(cè)試。本發(fā)明的另一目的是提供一種具有自測(cè)試通用串行總線(USB)接口的存儲(chǔ)裝置,其能夠在接收到測(cè)試命令之后,自動(dòng)快速完成測(cè)試。為實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明提供一種測(cè)試具有通用串行總線(USB)接口的存儲(chǔ)裝置的測(cè)試方法,其應(yīng)用于存儲(chǔ)裝置,其中存儲(chǔ)裝置至少包含有USB接口、一個(gè)連接USB接口的USB控制器、至少一個(gè)連接USB控制器的半導(dǎo)體存儲(chǔ)器,該測(cè)試方法包括下列步驟USB控制器經(jīng)由USB接口接收由主機(jī)傳送的測(cè)試命令;在USB控制器接收到測(cè)試命令后,USB控制器對(duì)半導(dǎo)體存儲(chǔ)器進(jìn)行寫入及讀出,并對(duì)比寫入及讀出的兩份數(shù)據(jù)是否相同,以便測(cè)試半導(dǎo)體存儲(chǔ)器是好是壞;在USB控制器完成對(duì)半導(dǎo)體存儲(chǔ)器的讀寫測(cè)試后,USB控制器經(jīng)由USB接口向主機(jī)傳送測(cè)試結(jié)果數(shù)據(jù)。此外,為實(shí)現(xiàn)本發(fā)明的另一目的,本發(fā)明提供一種具有自測(cè)試通用串行總線(USB)接口的存儲(chǔ)裝置,包括USB接口;一個(gè)連接USB接口的USB控制器;至少一個(gè)連接USB控制器的半導(dǎo)體存儲(chǔ)器;程序代碼,用于提供給USB控制器執(zhí)行,以便進(jìn)行接收由主機(jī)經(jīng)由USB接口傳送的測(cè)試命令;對(duì)半導(dǎo)體存儲(chǔ)器進(jìn)行寫入及讀出,并對(duì)比寫入及讀出的兩份數(shù)據(jù)是否相同,以便測(cè)試半導(dǎo)體存儲(chǔ)器是好是壞;在完成對(duì)半導(dǎo)體存儲(chǔ)器的讀寫測(cè)試后,經(jīng)由USB接口傳送測(cè)試結(jié)果數(shù)據(jù)。為使本領(lǐng)域技術(shù)人員了解本發(fā)明的目的、特征及效果,下文中將通過(guò)下述具體實(shí)施例,并結(jié)合附圖,詳細(xì)說(shuō)明本發(fā)明。圖1顯示根據(jù)本發(fā)明原理實(shí)施的存儲(chǔ)裝置的結(jié)構(gòu)圖。圖2顯示本發(fā)明的測(cè)試方法的流程圖。圖3A和圖3B顯示根據(jù)圖2的精神,在存儲(chǔ)裝置內(nèi)具體實(shí)施的程序代碼的流程圖。圖4顯示主機(jī)測(cè)試多個(gè)存儲(chǔ)裝置的第一連接方式的結(jié)構(gòu)圖。圖5顯示主機(jī)測(cè)試多個(gè)存儲(chǔ)裝置的第二連接方式的結(jié)構(gòu)圖。圖6顯示本發(fā)明與已知測(cè)試方式的效率比較圖。附圖標(biāo)號(hào)10存儲(chǔ)裝置101USB控制器103USB接口105半導(dǎo)體存儲(chǔ)器107程序代碼12主機(jī)14USB集線器16開(kāi)關(guān)具體實(shí)施方式圖1顯示根據(jù)本發(fā)明原理實(shí)施的存儲(chǔ)裝置的結(jié)構(gòu)圖。存儲(chǔ)裝置10包括USB接口103,用于連接主機(jī)12,或是再經(jīng)由USB集線器14連接主機(jī)12;至少一個(gè)連接USB控制器101的半導(dǎo)體存儲(chǔ)器105,用作數(shù)據(jù)存儲(chǔ),而半導(dǎo)體存儲(chǔ)器105的存儲(chǔ)容量并無(wú)限制,例如可以根據(jù)實(shí)際需求而配置為32MB、64MB、128MB...等等,半導(dǎo)體存儲(chǔ)器105的具體實(shí)施例子可以是快速存儲(chǔ)器;程序代碼107以及USB控制器,其中程序代碼107用于提供給USB控制器101以執(zhí)行圖2所顯示的流程,據(jù)此,程序代碼107是圖2所顯示的流程的具體實(shí)施方式,而程序代碼107可以以固件(firmware)形式實(shí)施于存儲(chǔ)裝置10。主機(jī)12可以是個(gè)人計(jì)算機(jī)或是用于測(cè)試存儲(chǔ)裝置10的工具。圖2顯示本發(fā)明的測(cè)試方法的流程圖。圖2的測(cè)試方法應(yīng)用于圖1所示的存儲(chǔ)裝置10,步驟(20)是USB控制器101經(jīng)由USB接口103接收由主機(jī)12傳送的測(cè)試命令。步驟(22)是在USB控制器101接收到測(cè)試命令后,USB控制器101對(duì)半導(dǎo)體存儲(chǔ)器105進(jìn)行寫入及讀出,并對(duì)比寫入及讀出的兩份數(shù)據(jù)是否相同,以測(cè)試半導(dǎo)體存儲(chǔ)器105是好是壞。步驟(26)是在USB控制器101完成半導(dǎo)體存儲(chǔ)器105的讀寫測(cè)試后,USB控制器101經(jīng)由USB接口103向主機(jī)12傳送測(cè)試結(jié)果數(shù)據(jù)。圖3A及圖3B顯示根據(jù)圖2的精神,在存儲(chǔ)裝置內(nèi)具體實(shí)施的程序代碼的流程圖,而主機(jī)12與存儲(chǔ)裝置10彼此間的測(cè)試方式及測(cè)試命令可以遵循SCSI命令(command)格式作為具體實(shí)現(xiàn)手段。步驟(30)是存儲(chǔ)裝置10接收主機(jī)12傳送的命令。步驟(32)是判斷命令的類型,根據(jù)命令類型分別進(jìn)入所屬的下一個(gè)步驟。步驟(34)是處理測(cè)試命令(testcommand),其提供半導(dǎo)體存儲(chǔ)器105是好是壞的測(cè)試傳輸,而測(cè)試命令的具體手段可以是主機(jī)12傳送出測(cè)試命令,USB控制器101在接收到測(cè)試命令后,分別對(duì)半導(dǎo)體存儲(chǔ)器105設(shè)定不同電壓條件,例如為3.0V低電壓、3.3V正常電壓、3.6V高電壓等,在每一種電壓條件下完成測(cè)試命令的測(cè)試。然后對(duì)于主機(jī)12所指定的半導(dǎo)體存儲(chǔ)器105要測(cè)試的那一個(gè)芯片,將該芯片第0個(gè)塊(block)的每個(gè)地址寫入“AA”,隨后讀取該塊的內(nèi)容,判斷是否為“AA”,記錄發(fā)生錯(cuò)誤的地址,并擦除(erase)該塊,再對(duì)該塊將“55”寫入每個(gè)地址,讀取該塊的內(nèi)容,判斷是否為“55”,并記錄發(fā)生錯(cuò)誤的地址,重復(fù)上述的動(dòng)作直到該芯片最后一個(gè)塊,最后將測(cè)試結(jié)果數(shù)據(jù)傳回主機(jī)。步驟(36)是處理控制轉(zhuǎn)移(controltransfer)命令,其主要將存儲(chǔ)裝置10的裝置描述符(devicedescriptor)、設(shè)置描述符(configurationdescriptor)、字符串描述符(stringdescriptor)等傳輸給主機(jī)12。步驟(38)是判斷SCSI命令類型以進(jìn)入處理SCSI命令的處理步驟。步驟(40)是處理讀取命令(readcommand),其提供讀取半導(dǎo)體存儲(chǔ)器105的數(shù)據(jù)內(nèi)容,而讀取命令的具體手段可以是USB控制器101檢查L(zhǎng)UT(look-up-table(查閱表))是否已建立,若沒(méi)有則先建立LUT,接著讀取LUT(此為physicalblockaddress(物理塊地址)),再將LBA(logicalblockaddress(邏輯塊地址))的5個(gè)LSBbits(比特)加到physicalblockaddress的LSB,以形成半導(dǎo)體存儲(chǔ)器105的起始讀取地址,隨后開(kāi)始讀取半導(dǎo)體存儲(chǔ)器105的數(shù)據(jù)。步驟(42)是處理寫入命令(writecommand),其提供將數(shù)據(jù)內(nèi)容寫入半導(dǎo)體存儲(chǔ)器105,而寫入命令的具體手段可以是USB控制器101先檢查L(zhǎng)BA是否已經(jīng)存在半導(dǎo)體存儲(chǔ)器105,若沒(méi)有則搜尋空的physicalblock(起始地址的設(shè)定則如同讀取命令),隨后開(kāi)始程序化(program)半導(dǎo)體存儲(chǔ)器105,若LBA已經(jīng)存在半導(dǎo)體存儲(chǔ)器105內(nèi),步驟與上述相同,但需要將舊的LBA的數(shù)據(jù)copy(復(fù)制)到新的LBA以達(dá)到覆蓋的目的。步驟(44)是處理狀態(tài)傳輸命令(statustransportcommand),其提供寫入命令、讀取命令處理后的結(jié)果狀態(tài)的傳輸,存儲(chǔ)器裝置10的其它狀態(tài)的傳輸。本發(fā)明進(jìn)一步公開(kāi)了上述的測(cè)試命令的實(shí)施手段,其主要同遵循SCSI命令格式,因此有CommandBlockWrapper(CBW(命令塊包裝))與CommandStatusWrapper(CSW(命令狀態(tài)包裝))。當(dāng)主機(jī)12發(fā)出測(cè)試命令的CBW時(shí),USB控制器101將主機(jī)12所發(fā)出的CBW解碼,發(fā)現(xiàn)此CBW所具有的命令是通知USB控制器101測(cè)試半導(dǎo)體存儲(chǔ)器105,據(jù)此,USB控制器101對(duì)半導(dǎo)體存儲(chǔ)器105寫入及讀出對(duì)比測(cè)試數(shù)據(jù)(TestPattern)“AA”以及“55”,當(dāng)測(cè)試完畢,USB控制器101向主機(jī)12傳輸測(cè)試結(jié)果數(shù)據(jù),例如為測(cè)試失敗的芯片那一個(gè)塊,將測(cè)試結(jié)果數(shù)據(jù)傳輸給主機(jī)12。然后,USB控制器101恢復(fù)狀態(tài)CSW給主機(jī)12,以確認(rèn)測(cè)試命令執(zhí)行的狀況。上述CBW的格式為“555342437407F8DB00000400010003F0000000000000000000000000000000”。其中第0個(gè)至第三個(gè)字節(jié)(byte)“55534243”為bCBWSignature,代表此包裝為CBW。其中第四個(gè)至第七個(gè)字節(jié)“7407F8DB”為dCBWTag,USB控制器101在CSW中需恢復(fù)相同的dCBWTag。其中第八至第十一個(gè)比特線“00000000”為dCBWDataTransferLength,為主機(jī)12預(yù)期由Data-In(輸入數(shù)據(jù)),所讀取的byte數(shù),其長(zhǎng)度不固定,因半導(dǎo)體存儲(chǔ)器105的大小而異。例如半導(dǎo)體存儲(chǔ)器105的大小為128MBytes即共有8192個(gè)blocks(塊),我們以一個(gè)bit代表一個(gè)block(0代表此block為good(好);1代表此block為bad(壞)),共需恢復(fù)1024bytes(8192bits)給主機(jī)12。同理,64MBytes的半導(dǎo)體存儲(chǔ)器105則需恢復(fù)512bytes給主機(jī)12。其中第十二個(gè)字節(jié)“01”代表數(shù)據(jù)由存儲(chǔ)裝置10送到主機(jī)12。其中第十三個(gè)字節(jié)“00”代表LUN(LogicUnitNumber(邏輯單元號(hào)))。其中第十四個(gè)字節(jié)“03”代表CBWCB的有效長(zhǎng)度,其表示共有3個(gè)bytes有效。其中第十五個(gè)字節(jié)“F0”為CBWCB的第0個(gè)byte,代表這是一個(gè)測(cè)試命令。其中第十六個(gè)字節(jié)“00”為CBWCB的第1個(gè)byte,代表主機(jī)12要求USB控制器101測(cè)試半導(dǎo)體存儲(chǔ)器105的第0顆芯片。其中第十七個(gè)字節(jié)“00”為CBWCB的第2個(gè)byte,代表主機(jī)12要求USB控制器101設(shè)定測(cè)試的電壓條件,“00”表示正常電壓,“01”表示高電壓,“10”表示低電壓。其中第十八個(gè)至第三十個(gè)字節(jié)皆設(shè)為“00”。上述的Data-In部分是USB控制器101恢復(fù)給主機(jī)12的數(shù)據(jù),如第八個(gè)至第十一個(gè)字節(jié)所述。上述CSW的格式是“555342537407F8DB0000000000”。其中第0個(gè)至第三個(gè)字節(jié)“55534253”為dCSWSignature,代表此為CSW。其中第四個(gè)至第七個(gè)字節(jié)“7407F8DB”為dCSWTag,此值需要與dCBWTag相同。其中第八個(gè)至第十一個(gè)字節(jié)“00000000”為dCSWDataResidue,其代表USB控制器101恢復(fù)給主機(jī)12的byte數(shù)與主機(jī)12所預(yù)期byte數(shù)的差值。其中第十二個(gè)字節(jié)“00”代表已執(zhí)行命令。圖4及圖5的測(cè)試存儲(chǔ)裝置10的連接方式,能夠?qū)崿F(xiàn)大量測(cè)試存儲(chǔ)裝置10的目的。圖4顯示主機(jī)測(cè)試多個(gè)存儲(chǔ)裝置的第一連接方式的結(jié)構(gòu)圖。主機(jī)12經(jīng)由USB集線器14的每個(gè)端口(port)連接一個(gè)待測(cè)試存儲(chǔ)裝置10,而主機(jī)12連接USB集線器14。測(cè)試人員可依序測(cè)試存儲(chǔ)裝置10,若存儲(chǔ)裝置10發(fā)生錯(cuò)誤時(shí),馬上得知存儲(chǔ)裝置10有問(wèn)題,待測(cè)試完畢后,再插上另一個(gè)待測(cè)存儲(chǔ)裝置10。另外,也可將所有的待測(cè)試存儲(chǔ)裝置10插在USB集線器14上,由主機(jī)12執(zhí)行軟件來(lái)判斷發(fā)生錯(cuò)誤的存儲(chǔ)裝置10。圖5顯示主機(jī)測(cè)試多個(gè)存儲(chǔ)裝置的第二連接方式的結(jié)構(gòu)圖。圖5的切換開(kāi)關(guān)用于代替圖4的USB集線器,在測(cè)試某一個(gè)存儲(chǔ)裝置10時(shí),則連通對(duì)應(yīng)的開(kāi)關(guān)16,其余則斷路。圖5的信號(hào)D+及信號(hào)D-表示為USB信號(hào)。圖6顯示本發(fā)明與已知測(cè)試方式的效率比較圖。從圖6明顯看出本發(fā)明的效率優(yōu)于已知技術(shù)的測(cè)試方式,尤其半導(dǎo)體存儲(chǔ)器105的容量越大時(shí),本發(fā)明所具的效率就越顯著。雖然本發(fā)明已以優(yōu)選實(shí)施例公開(kāi)如上,然而其并非用于限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,可以作各種改變與潤(rùn)色,凡所做的各種改變與潤(rùn)色皆在本發(fā)明所附的權(quán)利要求的范圍之內(nèi)。權(quán)利要求1.一種測(cè)試具有通用串行總線(USB)接口的存儲(chǔ)裝置的測(cè)試方法,其應(yīng)用于存儲(chǔ)裝置,該存儲(chǔ)裝置至少包含有USB接口、一個(gè)連接該USB接口的USB控制器、至少一個(gè)連接該USB控制器的半導(dǎo)體存儲(chǔ)器,該測(cè)試方法包括下列步驟·該USB控制器經(jīng)由該USB接口接收由主機(jī)傳送的測(cè)試命令;·在該USB控制器接收到該測(cè)試命令后,該USB控制器對(duì)該半導(dǎo)體存儲(chǔ)器進(jìn)行寫入及讀出,并對(duì)比該寫入及讀出的兩份數(shù)據(jù)是否相同,以測(cè)試該半導(dǎo)體存儲(chǔ)器是好是壞;·在該USB控制器完成對(duì)該半導(dǎo)體存儲(chǔ)器的讀寫測(cè)試后,該USB控制器經(jīng)由該USB接口向該主機(jī)傳送測(cè)試結(jié)果數(shù)據(jù)。2.如權(quán)利要求1所述的測(cè)試方法,其中該半導(dǎo)體存儲(chǔ)器是為快速存儲(chǔ)器。3.一種具有自測(cè)試通用串行總線(USB)接口的存儲(chǔ)裝置,包括USB接口;一個(gè)連接該USB接口的USB控制器;至少一個(gè)連接該USB控制器的半導(dǎo)體存儲(chǔ)器;程序代碼,用于提供給該USB控制器執(zhí)行,以便進(jìn)行·接收由主機(jī)經(jīng)由該USB接口傳送的測(cè)試命令;·對(duì)該半導(dǎo)體存儲(chǔ)器進(jìn)行寫入及讀出,并對(duì)比該寫入及讀出的兩份數(shù)據(jù)是否相同,以測(cè)試該半導(dǎo)體存儲(chǔ)器是好是壞;·在完成對(duì)該半導(dǎo)體存儲(chǔ)器的讀寫測(cè)試后,經(jīng)由該USB接口傳送測(cè)試結(jié)果數(shù)據(jù)。4.如權(quán)利要求3所述的測(cè)試裝置,其中該半導(dǎo)體存儲(chǔ)器是快速存儲(chǔ)器。全文摘要本發(fā)明是測(cè)試具有通用串行總線(USB)接口的存儲(chǔ)裝置的測(cè)試方法,其應(yīng)用于存儲(chǔ)裝置,所述存儲(chǔ)裝置至少包含有USB接口、一個(gè)連接USB接口的USB控制器、至少一個(gè)連接USB控制器的半導(dǎo)體存儲(chǔ)器,該方法包括下列步驟USB控制器經(jīng)由USB接口接收由主機(jī)傳送的測(cè)試命令;在USB控制器接收到測(cè)試命令后,USB控制器對(duì)半導(dǎo)體存儲(chǔ)器進(jìn)行寫入及讀出,并對(duì)比寫入及讀出的兩份數(shù)據(jù)是否相同,以測(cè)試半導(dǎo)體存儲(chǔ)器是好是壞;在USB控制器完成對(duì)半導(dǎo)體存儲(chǔ)器的讀寫測(cè)試后,USB控制器經(jīng)由USB接口向主機(jī)傳送測(cè)試結(jié)果數(shù)據(jù)。文檔編號(hào)G06F11/22GK1525330SQ0310670公開(kāi)日2004年9月1日申請(qǐng)日期2003年2月27日優(yōu)先權(quán)日2003年2月27日發(fā)明者邱延誠(chéng),葉奇典,邱文彬申請(qǐng)人:義隆電子股份有限公司