在嵌入式系統(tǒng)中實(shí)現(xiàn)對(duì)U盤(pán)的操作設(shè)計(jì)
發(fā)布時(shí)間:2007/8/20 0:00:00 訪問(wèn)次數(shù):553
摘要:主要介紹在嵌入式系統(tǒng)中利用SL811HS對(duì)U盤(pán)操作的實(shí)現(xiàn)方法;簡(jiǎn)要介紹USB設(shè)備中的海量存儲(chǔ)類(lèi)、SL811HS的芯片特點(diǎn)及FAT文件系統(tǒng)。 關(guān)鍵詞:USB U盤(pán) FAT SL811HS
引 言
USB(通用串行總線)用于將適用USB的外圍設(shè)備(device)連接到主機(jī)(host),實(shí)現(xiàn)二者之間數(shù)據(jù)傳輸?shù)耐獠靠偩結(jié)構(gòu);是一種快速、靈活的總線接口。它最大的特點(diǎn)是易于使用,主要是用在中速和低速的外設(shè)。
隨著USB規(guī)范的完善和成熟,USB外設(shè)的種類(lèi)不斷豐富,應(yīng)用領(lǐng)域也不斷擴(kuò)大。在傳統(tǒng)的應(yīng)用中,主要是PC扮演著主機(jī)的角色。根據(jù)USB的規(guī)范,可以看到在USB的拓樸結(jié)構(gòu)中居于核心地位的是主機(jī),每一次的數(shù)據(jù)傳輸都必須由主機(jī)發(fā)起和控制。但是隨著嵌入式產(chǎn)品應(yīng)用領(lǐng)域的日益增長(zhǎng),USB外設(shè)的應(yīng)用范圍也隨之?dāng)U大,為此在嵌入式系統(tǒng)中實(shí)現(xiàn)對(duì)USB外設(shè)控制也變得日益迫切。
本文針對(duì)USB外設(shè)中的U盤(pán),說(shuō)明如何在嵌入式系統(tǒng)中利用SL811HS實(shí)現(xiàn)對(duì)其的操作。
1 海量存儲(chǔ)類(lèi)
USB設(shè)備分為五個(gè)大類(lèi),即顯示器(monitors)、通信設(shè)備(communications devices)、音頻設(shè)備(audio)、人機(jī)輸入(human input)和海量存儲(chǔ)(mass storage)。
通常所用的U盤(pán)、移動(dòng)硬盤(pán)均屬于海量存儲(chǔ)類(lèi)。
海量存儲(chǔ)類(lèi)的規(guī)范中包括四個(gè)獨(dú)立的子規(guī)范,即CBI Transprot、Bulk-Only Transport、ATA Command Block、UFI Command Specification。前兩個(gè)協(xié)議定義了數(shù)據(jù)/命令/狀態(tài)在USB總線上的傳輸方法,Bulk-Only傳輸協(xié)議僅僅使用Bulk端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI傳輸協(xié)議則使用Control/Bulk/Interrupt三種類(lèi)型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)的傳送。后兩個(gè)協(xié)議定義了存儲(chǔ)介質(zhì)的操作命令,ATA協(xié)議用于硬盤(pán),UFI協(xié)議則針對(duì)USB移動(dòng)存儲(chǔ)。
本設(shè)計(jì)中所使用的U盤(pán)遵循Bulk-Only傳輸協(xié)議和UFI命令規(guī)范。
2 實(shí)現(xiàn)方法
2.1 硬件設(shè)計(jì)
本設(shè)計(jì)采用SL811HS芯片完成對(duì)U盤(pán)的操作。SL811HS是Cypress公司推出的具有主/從兩種工作模式的USB控制器,遵循USB1.1規(guī)范;可自動(dòng)檢測(cè)總線速率,支持全速12Mbps和低速1.5Mbps設(shè)備;具有8位雙向的數(shù)據(jù)總線,易與單片機(jī)連接;片內(nèi)256字節(jié)的SRAM(其中16字節(jié)用于工作寄存器),用于數(shù)據(jù)傳輸;可自動(dòng)產(chǎn)生SOF和CRC5/16,簡(jiǎn)化軟件工作量;片內(nèi)具有根Hub;支持掛起/喚醒工作模式,減少功耗;支持自動(dòng)加1功能,減少數(shù)據(jù)讀寫(xiě)周期;3.3V工作電源,接口可承受5V的工作電壓,可與多種規(guī)格的單片機(jī)連接。
單片機(jī)與SL811HS接口的原理如圖1所示。
2.2 軟件設(shè)計(jì)
通過(guò)USB主控芯片對(duì)U盤(pán)操作的主要工作是在軟件方面,它需要對(duì)眾多規(guī)范、協(xié)議透徹的理解。下面主要通過(guò)軟件的工作流程來(lái)說(shuō)明設(shè)計(jì)過(guò)程。
2.2.1 SL811HS初始化
SL811HS共有15個(gè)配置寄存器,其中0~4、8~C是USB-A、USB-B的工作配置寄存器,5、F是控制寄存器,6是中斷使能寄存器,D為狀態(tài)寄存器,E、F為SOF計(jì)數(shù)寄存器。各個(gè)寄存器的具體功能如表1所列。
在SL811HS上電開(kāi)始工作后,首先對(duì)USB總線復(fù)位(置寄存器5的位3為1,延時(shí)30ms后清零),然后使能設(shè)備檢測(cè)中斷(置寄存器6為0x61)。
2.2.2 設(shè)備檢測(cè)
(1)軟件協(xié)議
在設(shè)備檢測(cè)階段,主要通過(guò)setup結(jié)構(gòu)的數(shù)據(jù)包(8字節(jié)長(zhǎng))向USB設(shè)備的控制端點(diǎn)0(默認(rèn)端點(diǎn))發(fā)送命令。數(shù)據(jù)包結(jié)構(gòu)如表2所列。
(2)實(shí)現(xiàn)過(guò)程
當(dāng)U盤(pán)插入U(xiǎn)SB插座時(shí),SL811HS產(chǎn)生中斷,通過(guò)讀取中斷狀態(tài)寄存器可判斷中斷類(lèi)型。當(dāng)中斷類(lèi)型表示為檢測(cè)到設(shè)備插入時(shí),就可對(duì)USB設(shè)備即U盤(pán)進(jìn)行配置了。此時(shí)還需使能SL811HS的1ms SOF(配置SL811HS的寄存器E=0xE0、F=0xAE,然后置位寄存器5的位0和寄存器0的位5),以便進(jìn)行數(shù)據(jù)幀的同步。
在U盤(pán)未配置之前,其默認(rèn)地址和默認(rèn)控制端點(diǎn)均為0。利用setup數(shù)據(jù)包對(duì)U盤(pán)進(jìn)行配置時(shí),須將U盤(pán)的地址寫(xiě)入SL811HS的寄存器4,將數(shù)據(jù)包的類(lèi)型和U盤(pán)的控制端點(diǎn)寫(xiě)入SL811HS的寄存器3。
以下為對(duì)U盤(pán)配置過(guò)程的主要步驟。
① 設(shè)備描述符(GetDeviceDescriptor)。請(qǐng)求設(shè)備描述符的setup數(shù)據(jù)包為
通過(guò)讀取設(shè)備描述符,可獲得設(shè)備的子類(lèi)(通用海量存儲(chǔ)類(lèi))、端點(diǎn)0的最大包長(zhǎng)(一般為8字節(jié))。
② 讀取配置描述符(GetConfigDescriptor)。
對(duì)于請(qǐng)求配置描述符,可以先進(jìn)行首次請(qǐng)求,要求數(shù)據(jù)包長(zhǎng)為9(一個(gè)配置描述符的長(zhǎng)度)。數(shù)據(jù)包內(nèi)容為
摘要:主要介紹在嵌入式系統(tǒng)中利用SL811HS對(duì)U盤(pán)操作的實(shí)現(xiàn)方法;簡(jiǎn)要介紹USB設(shè)備中的海量存儲(chǔ)類(lèi)、SL811HS的芯片特點(diǎn)及FAT文件系統(tǒng)。 關(guān)鍵詞:USB U盤(pán) FAT SL811HS
引 言
USB(通用串行總線)用于將適用USB的外圍設(shè)備(device)連接到主機(jī)(host),實(shí)現(xiàn)二者之間數(shù)據(jù)傳輸?shù)耐獠靠偩結(jié)構(gòu);是一種快速、靈活的總線接口。它最大的特點(diǎn)是易于使用,主要是用在中速和低速的外設(shè)。
隨著USB規(guī)范的完善和成熟,USB外設(shè)的種類(lèi)不斷豐富,應(yīng)用領(lǐng)域也不斷擴(kuò)大。在傳統(tǒng)的應(yīng)用中,主要是PC扮演著主機(jī)的角色。根據(jù)USB的規(guī)范,可以看到在USB的拓樸結(jié)構(gòu)中居于核心地位的是主機(jī),每一次的數(shù)據(jù)傳輸都必須由主機(jī)發(fā)起和控制。但是隨著嵌入式產(chǎn)品應(yīng)用領(lǐng)域的日益增長(zhǎng),USB外設(shè)的應(yīng)用范圍也隨之?dāng)U大,為此在嵌入式系統(tǒng)中實(shí)現(xiàn)對(duì)USB外設(shè)控制也變得日益迫切。
本文針對(duì)USB外設(shè)中的U盤(pán),說(shuō)明如何在嵌入式系統(tǒng)中利用SL811HS實(shí)現(xiàn)對(duì)其的操作。
1 海量存儲(chǔ)類(lèi)
USB設(shè)備分為五個(gè)大類(lèi),即顯示器(monitors)、通信設(shè)備(communications devices)、音頻設(shè)備(audio)、人機(jī)輸入(human input)和海量存儲(chǔ)(mass storage)。
通常所用的U盤(pán)、移動(dòng)硬盤(pán)均屬于海量存儲(chǔ)類(lèi)。
海量存儲(chǔ)類(lèi)的規(guī)范中包括四個(gè)獨(dú)立的子規(guī)范,即CBI Transprot、Bulk-Only Transport、ATA Command Block、UFI Command Specification。前兩個(gè)協(xié)議定義了數(shù)據(jù)/命令/狀態(tài)在USB總線上的傳輸方法,Bulk-Only傳輸協(xié)議僅僅使用Bulk端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI傳輸協(xié)議則使用Control/Bulk/Interrupt三種類(lèi)型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)的傳送。后兩個(gè)協(xié)議定義了存儲(chǔ)介質(zhì)的操作命令,ATA協(xié)議用于硬盤(pán),UFI協(xié)議則針對(duì)USB移動(dòng)存儲(chǔ)。
本設(shè)計(jì)中所使用的U盤(pán)遵循Bulk-Only傳輸協(xié)議和UFI命令規(guī)范。
2 實(shí)現(xiàn)方法
2.1 硬件設(shè)計(jì)
本設(shè)計(jì)采用SL811HS芯片完成對(duì)U盤(pán)的操作。SL811HS是Cypress公司推出的具有主/從兩種工作模式的USB控制器,遵循USB1.1規(guī)范;可自動(dòng)檢測(cè)總線速率,支持全速12Mbps和低速1.5Mbps設(shè)備;具有8位雙向的數(shù)據(jù)總線,易與單片機(jī)連接;片內(nèi)256字節(jié)的SRAM(其中16字節(jié)用于工作寄存器),用于數(shù)據(jù)傳輸;可自動(dòng)產(chǎn)生SOF和CRC5/16,簡(jiǎn)化軟件工作量;片內(nèi)具有根Hub;支持掛起/喚醒工作模式,減少功耗;支持自動(dòng)加1功能,減少數(shù)據(jù)讀寫(xiě)周期;3.3V工作電源,接口可承受5V的工作電壓,可與多種規(guī)格的單片機(jī)連接。
單片機(jī)與SL811HS接口的原理如圖1所示。
2.2 軟件設(shè)計(jì)
通過(guò)USB主控芯片對(duì)U盤(pán)操作的主要工作是在軟件方面,它需要對(duì)眾多規(guī)范、協(xié)議透徹的理解。下面主要通過(guò)軟件的工作流程來(lái)說(shuō)明設(shè)計(jì)過(guò)程。
2.2.1 SL811HS初始化
SL811HS共有15個(gè)配置寄存器,其中0~4、8~C是USB-A、USB-B的工作配置寄存器,5、F是控制寄存器,6是中斷使能寄存器,D為狀態(tài)寄存器,E、F為SOF計(jì)數(shù)寄存器。各個(gè)寄存器的具體功能如表1所列。
在SL811HS上電開(kāi)始工作后,首先對(duì)USB總線復(fù)位(置寄存器5的位3為1,延時(shí)30ms后清零),然后使能設(shè)備檢測(cè)中斷(置寄存器6為0x61)。
2.2.2 設(shè)備檢測(cè)
(1)軟件協(xié)議
在設(shè)備檢測(cè)階段,主要通過(guò)setup結(jié)構(gòu)的數(shù)據(jù)包(8字節(jié)長(zhǎng))向USB設(shè)備的控制端點(diǎn)0(默認(rèn)端點(diǎn))發(fā)送命令。數(shù)據(jù)包結(jié)構(gòu)如表2所列。
(2)實(shí)現(xiàn)過(guò)程
當(dāng)U盤(pán)插入U(xiǎn)SB插座時(shí),SL811HS產(chǎn)生中斷,通過(guò)讀取中斷狀態(tài)寄存器可判斷中斷類(lèi)型。當(dāng)中斷類(lèi)型表示為檢測(cè)到設(shè)備插入時(shí),就可對(duì)USB設(shè)備即U盤(pán)進(jìn)行配置了。此時(shí)還需使能SL811HS的1ms SOF(配置SL811HS的寄存器E=0xE0、F=0xAE,然后置位寄存器5的位0和寄存器0的位5),以便進(jìn)行數(shù)據(jù)幀的同步。
在U盤(pán)未配置之前,其默認(rèn)地址和默認(rèn)控制端點(diǎn)均為0。利用setup數(shù)據(jù)包對(duì)U盤(pán)進(jìn)行配置時(shí),須將U盤(pán)的地址寫(xiě)入SL811HS的寄存器4,將數(shù)據(jù)包的類(lèi)型和U盤(pán)的控制端點(diǎn)寫(xiě)入SL811HS的寄存器3。
以下為對(duì)U盤(pán)配置過(guò)程的主要步驟。
① 設(shè)備描述符(GetDeviceDescriptor)。請(qǐng)求設(shè)備描述符的setup數(shù)據(jù)包為
通過(guò)讀取設(shè)備描述符,可獲得設(shè)備的子類(lèi)(通用海量存儲(chǔ)類(lèi))、端點(diǎn)0的最大包長(zhǎng)(一般為8字節(jié))。
② 讀取配置描述符(GetConfigDescriptor)。
對(duì)于請(qǐng)求配置描述符,可以先進(jìn)行首次請(qǐng)求,要求數(shù)據(jù)包長(zhǎng)為9(一個(gè)配置描述符的長(zhǎng)度)。數(shù)據(jù)包內(nèi)容為
熱門(mén)點(diǎn)擊
- WD硬盤(pán)維修
- 富士通硬盤(pán)維修
- AIT2139的視頻轉(zhuǎn)換器設(shè)計(jì)方案
- 以太網(wǎng)上聯(lián)卡設(shè)計(jì)方案
- 視頻圖像中的車(chē)輛檢測(cè)跟蹤和分類(lèi)
- Windows XP SP2 TCP/IP連
- MAXTOR硬盤(pán)參數(shù)一覽表
- 屏蔽硬盤(pán)的0磁道
- 裝好的電腦該檢查什么?
- 電腦故障大全 連載 磁盤(pán)類(lèi)故障
推薦技術(shù)資料
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(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)用研究
深圳服務(wù)熱線:13751165337 13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)

深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式