用PDIUSBD12和K9F5608U0A設(shè)計(jì)USB移動(dòng)閃存
發(fā)布時(shí)間:2007/8/28 0:00:00 訪問次數(shù):1621
摘要:簡(jiǎn)要介紹USB(通用串行總線)大容量存儲(chǔ)設(shè)備類,給出USB控制PDIUSBD12和閃存K9F5608U0A的原理框圖,并以這兩個(gè)芯片為例設(shè)計(jì)出存儲(chǔ)設(shè)備的電路圖,最后列出程序流程圖。
關(guān)鍵詞:USB PDIUSBD12 K9F5608U0A 移動(dòng)閃存
引言
自從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)介紹這一方面開發(fā)的文章并不多。結(jié)合作者實(shí)踐,本文將以Philips公司的USB控制器PDIUSBD12和Sumsung公司的內(nèi)存(Flash)K9F5608U0A為例,介紹開發(fā)大容量存儲(chǔ)設(shè)備的方法。
1 USB大容量存儲(chǔ)設(shè)備類
USB大容量存儲(chǔ)設(shè)備類規(guī)范包括四個(gè)獨(dú)立的子類規(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。前兩個(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ū)塊群。
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)。這樣才能保證在開機(jī)后搜尋設(shè)備前,芯片有時(shí)間來(lái)初始化。另外,PDIUSBD12有一個(gè)狀態(tài)輸出可以連接到液晶顯示器上,在建立USB連接時(shí)亮燈,而數(shù)據(jù)傳輸時(shí)閃爍。PDIUSBD12引腳圖和邏輯框圖分別如圖1、2所示。
2.2 K9F5608U0A
K9F5608U0A是三星公司生產(chǎn)的K9XXXXXU0A系列閃存中的一種,32MB容量,讀寫速度快,數(shù)據(jù)保存時(shí)間長(zhǎng)以及高達(dá)10萬(wàn)次的擦除寫入壽命等優(yōu)點(diǎn)。該芯片具有一個(gè)八位的I/O端口。在CE為低電平時(shí),把WE置低,地址、命令和數(shù)據(jù)都可通過(guò)該端口寫入。數(shù)據(jù)在WE的上升沿被鎖存,CLE和ALE分別用來(lái)控制對(duì)命令和地址的鎖存。同進(jìn)K9F5608U0A具有較強(qiáng)的糾錯(cuò)功能,能夠最大限度地保護(hù)用戶數(shù)據(jù)。其內(nèi)部框圖和引腳圖分別如圖3、4所示。
各引腳功能如下:
I/O0~I(xiàn)/O7——數(shù)據(jù)輸入/輸出;
CLE——命令鎖存使能;
ALE——地址鎖存使能;
CE——片選信號(hào);
WE——寫使能;
WP——定保護(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)。ROM和RAM分別用于存儲(chǔ)數(shù)據(jù)和程序,USB微控制器通過(guò)通用I/O線與閃存設(shè)備連接。微控制器除了實(shí)現(xiàn)與主機(jī)之間的數(shù)據(jù)/命令傳輸外,還需要根據(jù)主機(jī)的命令對(duì)閃存器件并行讀/寫/格式化,實(shí)現(xiàn)邏輯扇區(qū)與物理扇區(qū)之間的轉(zhuǎn)換及數(shù)據(jù)錯(cuò)誤校正等操作。
實(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的并行傳輸方式。
4 軟件編寫
USB微控制器除了傳輸處理及UFI命令處理等工作外,還需要處理如存儲(chǔ)介質(zhì)的尋址/格式化/數(shù)據(jù)校驗(yàn)等操作。本例中所需
摘要:簡(jiǎn)要介紹USB(通用串行總線)大容量存儲(chǔ)設(shè)備類,給出USB控制PDIUSBD12和閃存K9F5608U0A的原理框圖,并以這兩個(gè)芯片為例設(shè)計(jì)出存儲(chǔ)設(shè)備的電路圖,最后列出程序流程圖。
關(guān)鍵詞:USB PDIUSBD12 K9F5608U0A 移動(dòng)閃存
引言
自從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)介紹這一方面開發(fā)的文章并不多。結(jié)合作者實(shí)踐,本文將以Philips公司的USB控制器PDIUSBD12和Sumsung公司的內(nèi)存(Flash)K9F5608U0A為例,介紹開發(fā)大容量存儲(chǔ)設(shè)備的方法。
1 USB大容量存儲(chǔ)設(shè)備類
USB大容量存儲(chǔ)設(shè)備類規(guī)范包括四個(gè)獨(dú)立的子類規(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。前兩個(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ū)塊群。
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)。這樣才能保證在開機(jī)后搜尋設(shè)備前,芯片有時(shí)間來(lái)初始化。另外,PDIUSBD12有一個(gè)狀態(tài)輸出可以連接到液晶顯示器上,在建立USB連接時(shí)亮燈,而數(shù)據(jù)傳輸時(shí)閃爍。PDIUSBD12引腳圖和邏輯框圖分別如圖1、2所示。
2.2 K9F5608U0A
K9F5608U0A是三星公司生產(chǎn)的K9XXXXXU0A系列閃存中的一種,32MB容量,讀寫速度快,數(shù)據(jù)保存時(shí)間長(zhǎng)以及高達(dá)10萬(wàn)次的擦除寫入壽命等優(yōu)點(diǎn)。該芯片具有一個(gè)八位的I/O端口。在CE為低電平時(shí),把WE置低,地址、命令和數(shù)據(jù)都可通過(guò)該端口寫入。數(shù)據(jù)在WE的上升沿被鎖存,CLE和ALE分別用來(lái)控制對(duì)命令和地址的鎖存。同進(jìn)K9F5608U0A具有較強(qiáng)的糾錯(cuò)功能,能夠最大限度地保護(hù)用戶數(shù)據(jù)。其內(nèi)部框圖和引腳圖分別如圖3、4所示。
各引腳功能如下:
I/O0~I(xiàn)/O7——數(shù)據(jù)輸入/輸出;
CLE——命令鎖存使能;
ALE——地址鎖存使能;
CE——片選信號(hào);
WE——寫使能;
WP——定保護(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)。ROM和RAM分別用于存儲(chǔ)數(shù)據(jù)和程序,USB微控制器通過(guò)通用I/O線與閃存設(shè)備連接。微控制器除了實(shí)現(xiàn)與主機(jī)之間的數(shù)據(jù)/命令傳輸外,還需要根據(jù)主機(jī)的命令對(duì)閃存器件并行讀/寫/格式化,實(shí)現(xiàn)邏輯扇區(qū)與物理扇區(qū)之間的轉(zhuǎn)換及數(shù)據(jù)錯(cuò)誤校正等操作。
實(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的并行傳輸方式。
4 軟件編寫
USB微控制器除了傳輸處理及UFI命令處理等工作外,還需要處理如存儲(chǔ)介質(zhì)的尋址/格式化/數(shù)據(jù)校驗(yàn)等操作。本例中所需
熱門點(diǎn)擊
- 氣敏元件和傳感器技術(shù)的發(fā)展現(xiàn)狀
- 鉑電阻測(cè)溫儀的設(shè)計(jì)與實(shí)現(xiàn)
- 虛擬儀器驅(qū)動(dòng)器綜述
- 傳感器接口電路的抗干擾設(shè)計(jì)
- 基于ADSP21060和VirtexII的圖
- 用PDIUSBD12和K9F5608U0A設(shè)
- 一種神經(jīng)信號(hào)調(diào)理電路的設(shè)計(jì)
- 血流檢測(cè)儀的動(dòng)態(tài)電源管理模塊設(shè)計(jì)
推薦技術(shù)資料
- 按鈕與燈的互動(dòng)實(shí)例
- 現(xiàn)在趕快去看看這個(gè)目錄卞有什么。FGA15N120AN... [詳細(xì)]
- 分立器件&無(wú)源元件選型及工作原
- 新一代“超越EUV”光刻系統(tǒng)參
- 最新品BAT激光器制造工藝設(shè)計(jì)
- 新款汽車SoC產(chǎn)品Malibo
- 新芯片品類FPCU(現(xiàn)場(chǎng)可編程
- 電動(dòng)汽車動(dòng)力總成系統(tǒng)̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究