關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 用PDIUSBD12和K9F5608U0A設計USB移動閃存

用PDIUSBD12和K9F5608U0A設計USB移動閃存

作者: 時間:2004-12-28 來源:網(wǎng)絡 收藏

摘要:簡要介紹(通用串行總線)大容量存儲設備類,給出控制D12和閃存的原理框圖,并以這兩個芯片為例設計出存儲設備的電路圖,最后列出程序流程圖。

關鍵詞:USB 12 移動閃存

引言

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

1 USB大容量存儲設備類

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

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

*Bulk Only Mass Storage Reset――重置設備;

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

大容量存儲類支持的設備都有不同的內(nèi)部結構,控制與讀取不同設備需要使用不同的命令區(qū)塊群。

2 器件簡介

2.1 USB控制器PDIUSBD12

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

2.2 K9F5608U0A

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

各引腳功能如下:

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

CLE――命令鎖存使能;

ALE――地址鎖存使能;

CE――片選信號;

WE――寫使能;

WP――定保護;

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

R/B――準備好/忙;

VCC――電源;

VSS――地;

NC――懸空。

3 硬件電路設計

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

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

4 軟件編寫

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

①提供USB枚舉信息;

②USB傳輸管理;

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

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

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

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

圖6

本例中用到的傳輸協(xié)議為USB Mass Storage Class Bulk-Only Transport和USB Mass Storage Class UFI Command Specification。程序流程圖如圖7所示。源代碼見網(wǎng)站www.dpj.com.cn。

圖7

5 結論

本文結合實例,給出了一種開發(fā)USB移動存儲設備的方法。由于USB移動存儲設備具有使用方便、容量大、數(shù)據(jù)傳輸速度快等優(yōu)點,因而具有廣闊的高層前景。



關鍵詞: K9F5608U0A PDIUSBD USB

評論


相關推薦

技術專區(qū)

關閉