• <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久久精品免费看国产一区二区三区 | 日本久久久久亚洲中字幕| 亚洲v国产v天堂a无码久久| 久久久噜噜噜久久| 久久免费的精品国产V∧| 亚洲狠狠综合久久| 久久久综合香蕉尹人综合网| 亚洲色大成网站www久久九| 7国产欧美日韩综合天堂中文久久久久| 久久精品视屏| 久久精品成人国产午夜| 国产成人精品综合久久久| 亚洲一区中文字幕久久| 久久亚洲精品人成综合网| 久久99久久无码毛片一区二区| 久久久久免费看成人影片| 四虎影视久久久免费观看| 777久久精品一区二区三区无码| 人人妻久久人人澡人人爽人人精品| 91精品国产91久久| 99国产精品久久久久久久成人热| 亚洲性久久久影院| 欧美日韩中文字幕久久久不卡 | 一本久久a久久精品vr综合| 久久久WWW免费人成精品| 精品国产青草久久久久福利| 99精品国产在热久久无毒不卡| 蜜臀av性久久久久蜜臀aⅴ| 伊人久久五月天| 青春久久| 久久福利资源国产精品999| 亚洲国产香蕉人人爽成AV片久久| 国产精品美女久久久久AV福利| 亚洲国产精品一区二区久久| 91麻豆精品国产91久久久久久| 久久精品嫩草影院| 国产成人久久777777| 开心久久婷婷综合中文字幕| 色婷婷噜噜久久国产精品12p | 韩国免费A级毛片久久| 精品国产一区二区三区久久久狼|