• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            USB系列之四:向U盤(pán)上寫(xiě)數(shù)據(jù)

            在《USB系列之三》中,我們實(shí)現(xiàn)了一系列的SCSI命令,在這個(gè)系列中,我們要實(shí)現(xiàn)向U盤(pán)上寫(xiě)扇區(qū)的命令,所以,本文相對(duì)比較容易,更多地是給出一個(gè)實(shí)現(xiàn)的源程序。

                在《USB系列之三》中,我們實(shí)現(xiàn)的SCSI命令有:INQUIRY、READ CAPACITY(10)、TEST UNIT READY、REQUEST SENSE、READ(10);都是一些讀出的命令,所以不會(huì)破壞U盤(pán)的內(nèi)容,在文檔SBC-2的第29頁(yè)有一個(gè)SCSI命令的表,在這個(gè)表中列出了所有的命令,其TYPE為“M”的都是SCSI設(shè)備必須實(shí)現(xiàn)的命令,這些命令有:

            Num

            Command Name

            Operation Code

             Type

             Reference

             1

             FORMAT UNIT

             04h

             M

             SBC-2

             2

             INQUIRY

             12h

             M

             SPC-3

             3

             READ(6)

             08h

             M

             SBC-2

             4

             READ(10)

             28h

             M

             SBC-2

             5

             READ(16)

             88h

             M

             SBC-2

             6

             READ CAPACITY(10)

             25h

             M

             SBC-2

             7

             READ CAPACITY(16)

             9Eh/10h

             M

             SBC-2

             8

             REQUEST SENSE

             03h

             M

             SPC-3

             9

             SEND DIAGNOSTIC

             1Dh

             M

             SPC-3

             10

             TEST UNIT READY

             00h

             M

             SPC-3

             11

             WRITE(10)

             2Ah

             O

             SBC-2

                這里面最后的一個(gè)命令并不是SBC-2中要求強(qiáng)制實(shí)現(xiàn)的,而是可選的,但如果我們不去實(shí)現(xiàn),U盤(pán)的操作將失色很多;我們不打算去實(shí)現(xiàn)序號(hào)為1、3、5、7和9的命令,READ(6)、READ(16)和READ(10)十分相似,只是LBA的長(zhǎng)度不同而已,如果需要實(shí)現(xiàn),參考READ(10)就可以了,F(xiàn)ORMAT和SEND DIAGNOSTIC兩個(gè)命令對(duì)使用芯片的U盤(pán)來(lái)說(shuō)沒(méi)有什么意義,當(dāng)然對(duì)硬盤(pán)是有意義的,所以在本文中,我們只需要實(shí)現(xiàn)一個(gè)很重要的WRTE(10),向U盤(pán)上寫(xiě)數(shù)據(jù),我們需要準(zhǔn)備一張沒(méi)有有用數(shù)據(jù)的U盤(pán),因?yàn)槲覀円淖兤渲械膬?nèi)容。

                WRITE(10)源代碼下載地址:

                http://blog.hengch.com/source/usb-write.zip

                程序中,我們向《USB系列三》中的程序一樣,先reset,然后得到最大的LUN,這個(gè)步驟不是必須的,然后我們向device發(fā)出WRITE(10)命令,注意,這是一個(gè)OUT事務(wù),所以,CBW_FLAGS=0X00而不是像以前一樣是0X80,發(fā)出WRITE(10)命令后,我們還要向device發(fā)送要寫(xiě)入的數(shù)據(jù),每次64個(gè)字節(jié),一個(gè)扇區(qū)512字節(jié)需要啟動(dòng)8個(gè)OUT事務(wù),這個(gè)工作又函數(shù)putData完成,每次發(fā)送的64個(gè)字節(jié)我們分別寫(xiě)入了0--63,程序中,我們把這些數(shù)據(jù)寫(xiě)入到了LBA=100的扇區(qū)中,寫(xiě)入后,我們?cè)谑褂迷凇禪SB系列之三》中介紹過(guò)的READ(10)命令把相同的扇區(qū)讀出來(lái),我們會(huì)看到我們所希望的結(jié)果,由于在讀之前,我們已經(jīng)把buffer全部清為0了,所以我們有把握相信,我們讀到的數(shù)據(jù)是真實(shí)的。

                到這里,我們已經(jīng)把控制U盤(pán)的主要命令都介紹完了,利用DOSUSB,我們已經(jīng)有可能為U盤(pán)編寫(xiě)一個(gè)簡(jiǎn)單的驅(qū)動(dòng)程序,但可能我們還不知道DOS下的驅(qū)動(dòng)程序該如何寫(xiě),從下一篇文章開(kāi)始,我們將暫時(shí)放下USB系列文章,介紹一下DOS下驅(qū)動(dòng)程序的寫(xiě)法。

            posted on 2010-11-24 14:10 wrh 閱讀(1225) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            導(dǎo)航

            <2011年10月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            統(tǒng)計(jì)

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            无码任你躁久久久久久老妇| 中文字幕久久精品| 99精品久久精品一区二区| 亚洲欧美成人综合久久久| 国产精品九九九久久九九| 国产免费久久精品99久久| 国产成人久久激情91| 777久久精品一区二区三区无码| 亚洲国产成人久久综合野外| 久久国产成人精品麻豆| 狠狠综合久久综合88亚洲| 久久最新精品国产| 丁香色欲久久久久久综合网| 国产成人久久精品二区三区| 久久人人爽人人爽人人片AV麻烦 | 国产精品综合久久第一页| 一本久道久久综合狠狠爱| 久久综合狠狠综合久久97色| 99久久99久久精品免费看蜜桃| 亚洲日本久久久午夜精品| 久久久久久久综合日本| 久久99国产亚洲高清观看首页| 久久天天躁夜夜躁狠狠躁2022| 精品国产乱码久久久久久浪潮| 久久久老熟女一区二区三区| 国产亚洲精品久久久久秋霞| 国产真实乱对白精彩久久| 亚洲国产精品久久久久久| 精品九九久久国内精品| 热re99久久6国产精品免费| 久久久国产打桩机| 亚洲精品无码久久久久AV麻豆| 日韩电影久久久被窝网| 青青久久精品国产免费看| 久久精品国产精品亚洲人人| 国内精品伊人久久久久影院对白| 久久久久久免费一区二区三区| 国产女人aaa级久久久级| 人妻无码αv中文字幕久久| 99久久99久久精品国产片果冻| 亚洲国产成人精品久久久国产成人一区二区三区综 |