0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于USB控制器和FLASH存儲(chǔ)器實(shí)現(xiàn)USB移動(dòng)存儲(chǔ)設(shè)備的系統(tǒng)設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:董鮮宏,許洪光,林 ? 2020-05-25 08:03 ? 次閱讀

引言

自從USB規(guī)范發(fā)布以來(lái),短短的幾年中得到了極大的發(fā)展,基于USB接口的大容量存儲(chǔ)設(shè)備(USB Mass Storage)應(yīng)運(yùn)而生。這類設(shè)備主要有:USB移動(dòng)硬盤、USB外置光驅(qū)、USB外置軟驅(qū)、USB閃存盤等。但是目前國(guó)內(nèi)介紹這一方面開(kāi)發(fā)的文章并不多。結(jié)合作者實(shí)踐,本文將以Philips公司的USB控制器PDIUSBD12和Sumsung公司的閃存(Flash)K9F5608U0A為例,介紹開(kāi)發(fā)大容量存儲(chǔ)設(shè)備的方法。

1、USB大容量存儲(chǔ)設(shè)備類

USB大容量存儲(chǔ)設(shè)備類規(guī)范包括四個(gè)獨(dú)立的子類規(guī)范,即:①USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport;②USB Mass Storage Class Bulk-Only Transport;③USB Mass Storage Class ATA Command Block; ④USB Mass Storage Class UFI Command Specification。前兩個(gè)子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB上的傳輸方法。Bulk-Only傳輸規(guī)范僅僅使用Bulk端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI傳輸規(guī)范則使用Control/Bulk/Interrupt三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個(gè)子規(guī)范定義了對(duì)存儲(chǔ)介質(zhì)的操作命令。UFI命令規(guī)范是針對(duì)USB移動(dòng)存儲(chǔ)而制定的,實(shí)際上UFI命令格式是基于SFF-8070i和SCSI-2規(guī)范,總共定義了19個(gè)12字節(jié)長(zhǎng)度的操作命令。

批量單獨(dú)傳輸在大部分的通信中使用批量傳輸,只有在批量端點(diǎn)上清除一個(gè)Stall狀況,以及傳送類別特定請(qǐng)求(class-specific request)時(shí)才使用控制傳輸。需要注意的是,批量單獨(dú)傳輸還支持兩個(gè)特定的請(qǐng)求是:

◆ Bulk Only Mass Storage Reset——重置設(shè)備;

◆ Get Max Lun——取得設(shè)備支持的邏輯單元數(shù)目。

大容量存儲(chǔ)類支持的設(shè)備都有不同的內(nèi)部結(jié)構(gòu),控制與讀取不同設(shè)備需要使用不同的命令區(qū)塊群。表1列出大部分常用命令區(qū)塊群命令的結(jié)構(gòu)。

表1 大部分常用的命令結(jié)構(gòu)

基于USB控制器和FLASH存儲(chǔ)器實(shí)現(xiàn)USB移動(dòng)存儲(chǔ)設(shè)備的系統(tǒng)設(shè)計(jì)

2、器件簡(jiǎn)介

2.1 USB控制器PDIUSBD12

PDIUSBD12是一個(gè)全速芯片,支持一個(gè)控制端點(diǎn),以及四個(gè)額外的端點(diǎn)地址,一個(gè)端點(diǎn)的地址可以存儲(chǔ)到128個(gè)字節(jié),而雙緩沖區(qū)可以存到256個(gè)字節(jié)。該芯片完全由軟件控制,在外圍設(shè)備的CPU送來(lái)一個(gè)命令來(lái)仿真連接總線之前,芯片都是維持與主機(jī)分離的狀態(tài)。這樣才能保證在開(kāi)機(jī)后搜尋設(shè)備前,芯片有時(shí)間來(lái)初始化。另外,PDIUSBD12有一個(gè)狀態(tài)輸出可以連接到液晶顯示器上,在建立USB連接時(shí)亮燈,而數(shù)據(jù)傳輸時(shí)閃爍。PDIUSBD12引腳圖和邏輯框圖分別如圖1、2所示。

圖1 PDIUSBD12引腳圖

圖2 PDIUSBD12邏輯框圖

2.2 K9F5608U0A

K9F5608U0A是三星公司生產(chǎn)的K9XXXXXU0A系列閃存中的一種,32MB容量,讀寫(xiě)速度快,數(shù)據(jù)保存時(shí)間長(zhǎng)以及高達(dá)10萬(wàn)次的擦除寫(xiě)入壽命等優(yōu)點(diǎn)。該芯片具有一個(gè)八位的I/O端口。在為低電平時(shí),把置低,地址、命令和數(shù)據(jù)都可通過(guò)該端口寫(xiě)入。數(shù)據(jù)在的上升沿被鎖存,CLE和ALE分別用來(lái)控制對(duì)命令和地址的鎖存。同時(shí)K9F5608U0A具有較強(qiáng)的糾錯(cuò)功能,能夠最大限度地保護(hù)用戶數(shù)據(jù)。其內(nèi)部框圖和引腳圖分別如圖3、4所示。

圖3 K9F5608U0A內(nèi)部框圖

圖4 K9F5608U0A引腳圖

各引腳功能如下:

I/O0 ~ I/O7——數(shù)據(jù)輸入/輸出;

CLE——命令鎖存使能;

ALE——地址鎖存使能;

——片選信號(hào);

——寫(xiě)使能;

——寫(xiě)保護(hù);

GND——地輸入使能額外位;

R/B——準(zhǔn)備好/忙;

VCC——電源;

VSS——地;

NC——懸空。

3、硬件電路設(shè)計(jì)

USB大容量存儲(chǔ)設(shè)備通常使用一個(gè)USB接口引擎和MCU微控制器)一起處理主機(jī)發(fā)送的命令,以及對(duì)存儲(chǔ)設(shè)備進(jìn)行操作。圖5顯示了一個(gè)USB大容量存儲(chǔ)設(shè)備通常采用的硬件結(jié)構(gòu)。ROMRAM分別用于存儲(chǔ)數(shù)據(jù)和程序, USB微控制器通過(guò)通用I/O線與閃存設(shè)備連接。微控制器除了實(shí)現(xiàn)與主機(jī)之間的數(shù)據(jù)/命令傳輸外,還需要根據(jù)主機(jī)的命令對(duì)閃存器件進(jìn)行讀/寫(xiě)/格式化,實(shí)現(xiàn)邏輯扇區(qū)與物理扇區(qū)之間的轉(zhuǎn)換及數(shù)據(jù)錯(cuò)誤校正等操作。

圖5 USB大容量存儲(chǔ)設(shè)備硬件結(jié)構(gòu)框圖

實(shí)例簡(jiǎn)圖如圖6所示。MCU采用內(nèi)含ROM和RAM的微控制器8051,8051通過(guò)數(shù)據(jù)總線和控制總線與兩個(gè)外設(shè)進(jìn)行通信。PDIUSBD12通過(guò)8051和K9F5608U0A進(jìn)行數(shù)據(jù)傳輸,此處采用PDIUSBD12的并行傳輸方式。

圖6 USB大容量存儲(chǔ)設(shè)備硬件結(jié)構(gòu)實(shí)例簡(jiǎn)圖

4、軟件編寫(xiě)

USB微控制器除了傳輸處理及UFI命令處理等工作外,還需要處理如存儲(chǔ)介質(zhì)的尋址/格式化/數(shù)據(jù)校驗(yàn)等操作。本例中所需要的基本操作包括:

① 提供USB枚舉信息;

② USB傳輸管理;

③ 根據(jù)主機(jī)的UFI命令,進(jìn)行相應(yīng)的處理;

④ 提供閃盤基本信息,如扇區(qū)大小、簇大小、閃盤容量等;

⑤ 邏輯簇(logical cluster)到物理塊(physical block)的轉(zhuǎn)換;

⑥ 物理塊的讀/寫(xiě)/更新,其中許多的軟件功能是與閃存的操作相關(guān)的。

本例中用到的傳輸協(xié)議為USB Mass Storage Class Bulk-Only Transport和USB Mass Storage Class UFI Command Specification??偝绦蛄鞒虉D如圖7所示。

圖7 程序流程圖

5、結(jié)論

本文結(jié)合實(shí)例,給出了一種開(kāi)發(fā)USB移動(dòng)存儲(chǔ)設(shè)備的方法。由于USB移動(dòng)存儲(chǔ)設(shè)備具有使用方便、容量大、數(shù)據(jù)傳輸速度快等優(yōu)點(diǎn),因而具有廣闊的市場(chǎng)前景。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15887

    瀏覽量

    175405
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7366

    瀏覽量

    163101
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7774

    瀏覽量

    262421
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求助 數(shù)據(jù)存儲(chǔ)器 FLASH程序存儲(chǔ)器 FLASH數(shù)據(jù)存儲(chǔ)器的區(qū)別

    數(shù)據(jù)存儲(chǔ)器 FLASH程序存儲(chǔ)器 FLASH數(shù)據(jù)存儲(chǔ)器 片內(nèi)RAM數(shù)據(jù)存儲(chǔ)器16M字節(jié)外部數(shù)據(jù)
    發(fā)表于 11-29 09:50

    基于USB接口的移動(dòng)存儲(chǔ)設(shè)備構(gòu)建微型操作系統(tǒng)

    供對(duì)主板、顯卡、網(wǎng)卡、聲卡、存儲(chǔ)器、USB 設(shè)備等驅(qū)動(dòng)的支持。由于是移動(dòng)系統(tǒng),面臨硬件平臺(tái)多樣性的問(wèn)題,所以需要將一些常用基本驅(qū)動(dòng)和
    發(fā)表于 06-10 05:00

    基于FPGA的USB2.0控制器設(shè)計(jì)

    /A。1 控制器結(jié)構(gòu)原理USB2.0控制器結(jié)構(gòu)框圖如圖2所示。控制器主要由兩個(gè)部分組成,其一為與外設(shè)的接口,另一個(gè)是內(nèi)部協(xié)議層邏輯PL(Protocol Layer)。內(nèi)部
    發(fā)表于 06-29 07:30

    基于USB移動(dòng)存儲(chǔ)的鋼絲繩探傷報(bào)警系統(tǒng)設(shè)計(jì)

    針對(duì)鋼絲繩探傷檢測(cè)中的數(shù)據(jù)存儲(chǔ),提出了一種用單片機(jī)實(shí)現(xiàn)USB 移動(dòng)存儲(chǔ)控制的方案。設(shè)計(jì)了一個(gè)
    發(fā)表于 08-06 10:15 ?15次下載

    PowerPC 60x總線的存儲(chǔ)器控制器的設(shè)計(jì)與實(shí)現(xiàn)

    章介紹了PowerPC 60x 處理的總線接口和操作,詳細(xì)闡述了60x 總線存儲(chǔ)器 控制器在CPLD 上的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程。此存儲(chǔ)器
    發(fā)表于 08-26 10:38 ?58次下載

    LM3S 系列微控制器Flash 存儲(chǔ)器應(yīng)用

    LM3S 系列微控制器Flash 存儲(chǔ)器應(yīng)用 在眾多的單片機(jī)中都集成了 Flash 存儲(chǔ)器系統(tǒng)
    發(fā)表于 03-27 15:29 ?48次下載

    LM3S 系列微控制器Flash 存儲(chǔ)器應(yīng)用

    LM3S 系列微控制器Flash 存儲(chǔ)器應(yīng)用
    發(fā)表于 07-23 17:07 ?43次下載

    Flash存儲(chǔ)器的內(nèi)建自測(cè)試設(shè)計(jì)

    內(nèi)建自測(cè)試是一種有效的測(cè)試存儲(chǔ)器的方法。分析了NOR型flash存儲(chǔ)器的故障模型和測(cè)試存儲(chǔ)器的測(cè)試算法,在此基礎(chǔ)上,設(shè)計(jì)了flash
    發(fā)表于 07-31 17:08 ?35次下載

    Symwave推出USB 3.0 RAID存儲(chǔ)控制器

    Symwave推出USB 3.0 RAID存儲(chǔ)控制器 Symwave(芯微科技)宣布,SW6318現(xiàn)在已經(jīng)可以立即供貨,SW6318為單芯片USB 3.0到雙SATA
    發(fā)表于 12-29 17:40 ?1227次閱讀

    Flash存儲(chǔ)器概述

      Flash 存儲(chǔ)器的簡(jiǎn)介   在眾多的單片機(jī)中都集成了 Flash 存儲(chǔ)器系統(tǒng),該存儲(chǔ)器
    發(fā)表于 11-11 18:25 ?4876次閱讀
    <b class='flag-5'>Flash</b><b class='flag-5'>存儲(chǔ)器</b>概述

    快閃存儲(chǔ)器控制器選擇技巧

    現(xiàn)代快閃存儲(chǔ)器控制器中的磨損平衡技術(shù)已經(jīng)有顯著進(jìn)步,能夠克服快閃存儲(chǔ)器儲(chǔ)存介質(zhì)固有的弱點(diǎn),并幫助發(fā)揮出快閃存儲(chǔ)器的優(yōu)勢(shì)。對(duì)于現(xiàn)代快閃存儲(chǔ)器儲(chǔ)
    發(fā)表于 03-07 09:45 ?1349次閱讀

    基于USB海量存儲(chǔ)設(shè)備實(shí)現(xiàn)FLASH數(shù)據(jù)采集和存儲(chǔ)系統(tǒng)的設(shè)計(jì)

    基于USB的海量存儲(chǔ)USB Mass Storage)設(shè)備功能在ARM嵌入式系統(tǒng)中設(shè)計(jì)和應(yīng)用。使用該設(shè)
    的頭像 發(fā)表于 05-20 07:49 ?1818次閱讀
    基于<b class='flag-5'>USB</b>海量<b class='flag-5'>存儲(chǔ)</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>FLASH</b>數(shù)據(jù)采集和<b class='flag-5'>存儲(chǔ)系統(tǒng)</b>的設(shè)計(jì)

    瑞薩科技Flash存儲(chǔ)器控制器,可為工業(yè)應(yīng)用實(shí)現(xiàn)200MHz等功能

    瑞薩科技公司宣布推出SH7216系列32-位片上Flash存儲(chǔ)器控制器Flash控制器)。這個(gè)系列是32位SuperH RISC系列的
    發(fā)表于 08-30 09:59 ?729次閱讀

    盤點(diǎn)芯邦科技存儲(chǔ)主控芯片 USB控制器芯片 SD卡控制器芯片

    盤點(diǎn)芯邦科技存儲(chǔ)主控芯片 USB控制器芯片 SD卡控制器芯片 存儲(chǔ)主控芯片是一種集成電路芯片,用于控制
    的頭像 發(fā)表于 10-25 12:43 ?2263次閱讀
    盤點(diǎn)芯邦科技<b class='flag-5'>存儲(chǔ)</b>主控芯片 <b class='flag-5'>USB</b><b class='flag-5'>控制器</b>芯片 SD卡<b class='flag-5'>控制器</b>芯片

    控制器內(nèi)部的存儲(chǔ)器有哪些

    控制器(MCU)內(nèi)部的存儲(chǔ)器是微控制器系統(tǒng)的重要組成部分,它負(fù)責(zé)存儲(chǔ)程序代碼、數(shù)據(jù)以及控制邏輯
    的頭像 發(fā)表于 08-22 10:41 ?461次閱讀