基于嵌入式系統(tǒng)U盤開發(fā)的設(shè)計_第1頁
基于嵌入式系統(tǒng)U盤開發(fā)的設(shè)計_第2頁
基于嵌入式系統(tǒng)U盤開發(fā)的設(shè)計_第3頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

湖南文理學(xué)院芙蓉學(xué)院課程設(shè)計報告課程名稱:嵌入式系統(tǒng)課程設(shè)計專業(yè)班級:通信工程1301班

王海波邵湘怡完成時間:2016年6月22日報告成績:評閱意見:評閱意見:評閱教師日期湖南文理學(xué)院制目錄基于嵌入式系統(tǒng)u盤開發(fā)的設(shè)計 1一、設(shè)計題目 1二、設(shè)計內(nèi)容及要求 12.1設(shè)計內(nèi)容12.2設(shè)計要求1三、設(shè)計作用與目的 2四、系統(tǒng)設(shè)計方案 2系統(tǒng)總體設(shè)計 2簡要闡述系統(tǒng)工作原理 3五、系統(tǒng)硬件設(shè)計 3硬件電路 3基本程序結(jié)構(gòu) 45.2.1USB設(shè)備端固件分以下幾個層次: 45.2.2. 在調(diào)試的時候,從現(xiàn)象上來看,分成以下幾個階段性的步驟 55.2.3檢查USB件工作與否 55.2.4提供描述符6硬件設(shè)計 6六、系統(tǒng)軟件設(shè)計 7USB協(xié)議 7BULK_ONLY和UFI協(xié)議 86.3 FAT32 116.4 軟件系統(tǒng)模塊 11七、仿真調(diào)試分析 14八、嵌入式系統(tǒng)學(xué)習(xí)心得 14九、參考文獻(xiàn) 14PAGEPAGE14基于嵌入式系統(tǒng)u盤開發(fā)的設(shè)計一、設(shè)計題目基于嵌入式系統(tǒng)u盤開發(fā)的設(shè)計二、設(shè)計內(nèi)容及要求設(shè)計內(nèi)容USBPC機(jī)進(jìn)行數(shù)據(jù)處理,給人們帶來很多不變,為此,本UUSB讀寫器,方便地將采集數(shù)據(jù)以U,PC決下位機(jī)與PC設(shè)計要求UUU上,或者手機(jī)上,以實(shí)現(xiàn)數(shù)據(jù)存儲的功能。在進(jìn)行USB開發(fā)過程中,比較難的是對設(shè)備端的程序(稱為固件,F(xiàn)irmware)進(jìn)行調(diào)試。由于USB協(xié)議有嚴(yán)格的時間要求,這就使得程序必須在有效時間內(nèi)對某些請求或狀態(tài)進(jìn)行處理,否則,USBLED1,LED2顯示輸出的一些信息來輔助調(diào)試,定位問題所在。比如,在某個函數(shù)中加入LED1,LED2顯示語句,程序運(yùn)行時看有否相應(yīng)的LED1,LED2(單片機(jī)部分)借助PC調(diào)試軟件(BusHound)將設(shè)備端的USB協(xié)議(端口配置、地址設(shè)置以及基本數(shù)據(jù)交換)調(diào)通。然后,用調(diào)試好的USB設(shè)備接口來嵌入文件系統(tǒng)功能。三、設(shè)計作用與目的U盤結(jié)構(gòu)特點(diǎn),設(shè)計了一種基于嵌入式系統(tǒng)UU到無線數(shù)據(jù)卡上,或者手機(jī)上,以實(shí)現(xiàn)數(shù)據(jù)存儲的功能四、系統(tǒng)設(shè)計方案系統(tǒng)總體設(shè)計

圖1USB讀寫器結(jié)構(gòu)圖SB讀寫器結(jié)構(gòu)框圖如圖1所示,主要由MSP430F149和SL811HS構(gòu)成,MSP430支持串口輸入和14位的并口輸入,P2.7用作中斷喚醒位,P2.6用作標(biāo)準(zhǔn)位區(qū)分?jǐn)?shù)據(jù)和命令,通過P4口向SL811發(fā)送控制信號,P6用作普通的雙向總線接口與SL811進(jìn)行數(shù)據(jù)交換,P1.1支持中斷喚醒接收SL811的中斷請求。五、系統(tǒng)硬件設(shè)計硬件電路下圖分別為PDIUSBD12的引腳定義,其中,下列幾個方面在制作電路板時應(yīng)該注意。圖2PDIUSBD12引腳圖GND接地,VDD接正(3.3V5V3.3VVout3.3VDD3.3V;如果芯片工作在5V,則這時Vout3.3會輸出3.3V的電壓,用于提供給D考電壓必須為3.3V。對于U盤來說,由于USB接供的是5V電壓,因此應(yīng)該按后一種接法接。即GND接USB接口中的GND,VDD接USB接口中的VDD,D+D-分別接USB位。XTAL1和XTAL2按傳統(tǒng)接法。PDIUSBD12引腳MCUAT-89C55WD引腳DATA<0>~DATA<7>P0.0~P0.7(AD0~AD7)ALEALE/PROGCS_NP1.6RESET_NP1.7PDIUSBD12引腳MCUAT-89C55WD引腳DATA<0>~DATA<7>P0.0~P0.7(AD0~AD7)ALEALE/PROGCS_NP1.6RESET_NP1.7INT_NP3.2(INT0)SUSPENDP3.3WR_NP3.6(WR)RD_NP3.7(RD)A0接GNDDMARQDMACK_NEOT_NGL_NCLKOUT引腳懸空,可作為擴(kuò)充功能使用。MCUAT-89C55WDP1.2和P1.3接2個低電平有效顯示燈LED1和LED2?;境绦蚪Y(jié)構(gòu)USB設(shè)備端的固件分以下幾個層次:表2固件層次固件模塊固件模塊功能進(jìn)行各種初始化操作、寄存器設(shè)Main.c置、中斷設(shè)置中斷服務(wù)程序,負(fù)責(zé)將不同類型的intr.c中斷轉(zhuǎn)向不同的地方usb_op.cusb_op.cD12硬件抽象層,所有的上層模塊都必須通過此模塊與USB芯片打交道設(shè)備枚舉需要的設(shè)備描述符,配置描述usb_prtcl.c符,接口描述符,端口描述符都由此模塊來執(zhí)行提供所有massStorage協(xié)議endpoint2_bulk_only.CCBW,CSW,DATAFLASH由此模塊來處理在調(diào)試的時候,從現(xiàn)象上來看,分成以下幾個階段性的步驟1、USBPCUSB、向主機(jī)提供普通USB設(shè)備提供描述符,提供正確的VID和PID后,PC能夠識別設(shè)備,但要求提供設(shè)備的驅(qū)動程序;3UsbDebug.exe12,;4MassStorageBulk-Only提供描述符,PCMassStorage、響應(yīng)了Inquiry;6、提供了其他所有的UFI(SCSI),開始讀取磁盤0(BPB)FAT12AT-89C55WDEEPROM信息,可以訪問盤符,列目錄為空;8、,軟盤中放一個可執(zhí)行的文件,可以正常運(yùn)行這個可執(zhí)行文件;8、創(chuàng)建文件,向設(shè)備發(fā)出Write檢查USB器件工作與否確定USBUSBSoftConnectUSBBusHound,USBUSB初始化過程為:①初始化MCU的各種端口;②進(jìn)行中斷初始化,設(shè)置中斷服務(wù)程序入口地址,將MCU的中斷方式設(shè)置為低電平觸發(fā),因?yàn)镈12只要進(jìn)入中斷后INT_N就一直為低。③斷開SoftConnect,延時1秒后再次連接④進(jìn)入主程序循環(huán),等待中斷的到來⑤由中斷服務(wù)程序處理所有與USB有關(guān)的操作。提供描述符USB設(shè)備的調(diào)試過程其實(shí)就是根據(jù)主機(jī)的請求,不斷地向主機(jī)提供各種信息的過程。因此,了解主機(jī)按照什么樣的順序向設(shè)備發(fā)出請求,即Windows對USB設(shè)備的枚舉順序是非常有必要的:GetDeviceDescriptor。主機(jī)主要對Length域感興趣,發(fā)送內(nèi)容一定要正確,特別是第2字節(jié)type一定為0x01,即Device;否則,主機(jī)將不響應(yīng),或這時由于主機(jī)對Device的描述符將有多長實(shí)際上都不知道,所以這個步驟只是試探性的,目的是得到真正長度,第三步中才正而巴經(jīng)地讀取DeviceDescriptor。硬件設(shè)計TIMSP430F149MCU,CypressSL811HSUSB充分發(fā)揮各自優(yōu)勢滿足低功耗要求。MSP430TIMSP430的模塊組成,這些微控制器可用電池工作,且使用的時間很長,MSP43016位RISC結(jié)構(gòu),CPU中的16個寄存器和常數(shù)發(fā)生器使其能達(dá)到最高的代碼效率,靈活的時鐘源可以使器件的功率消耗最低,數(shù)字控制的振蕩器(DCO)可使器件從低功耗模式迅速喚醒,在短于6μs的時間內(nèi)激活到活躍的工作方式,非常的內(nèi)/外設(shè)和I/O端口資源,端口P1和P2支持中斷喚醒。SL811HSCypressSL811HSUSB/控制,USB/從設(shè)備控制器支持全高速和低速數(shù)據(jù)傳輸,內(nèi)部256SRAM動加8DMA。六、系統(tǒng)軟件設(shè)計為了使上位PC機(jī)能夠直接讀取該讀寫器寫入U盤的數(shù)據(jù),數(shù)據(jù)存儲按照FAT32文件管理方式存儲,其中涉及USB和UFI協(xié)議以及FAT32文件存儲格式。USB協(xié)議通用串行總線)USB接口的外圍設(shè)備連接到主機(jī)數(shù)據(jù)傳輸?shù)耐獠靠偩€結(jié)構(gòu),是一種快速、靈活的總線接口,USB的傳輸類型有控制(control)(bulk)、中斷(interrupt)和同步(synchronous)傳輸4種,它最大的特點(diǎn)是易于使用,即插即用,主要是用在中速和低速的外設(shè)。USB控制傳輸,這種數(shù)據(jù)傳輸不會丟失數(shù)據(jù)。通過在硬件中實(shí)現(xiàn)差錯檢測功能,并且有選擇地進(jìn)行一定的應(yīng)進(jìn)重試操作,可以在硬件層次上保證數(shù)據(jù)的可靠交換。由設(shè)備自發(fā)產(chǎn)生的數(shù)據(jù)傳輸是中斷數(shù)據(jù)傳輸,這類數(shù)據(jù)傳輸可以由USB設(shè)備在任意時刻發(fā)起,而且USB總線以不低于設(shè)備說明的速率進(jìn)行傳輸。同步數(shù)據(jù)在產(chǎn)生、傳送和處理過程中是連續(xù)的和實(shí)時的,在穩(wěn)定的同步數(shù)據(jù)發(fā)送和接收速率中包含了相應(yīng)的時鐘信息,為了保持定時關(guān)系,同步數(shù)據(jù)必須按照接收的速率進(jìn)行傳輸。BULK_ONLY和UFI協(xié)議USB5U4個獨(dú)立的子規(guī)范,即CBI傳輸、Bulk-Only傳輸、ATA命令塊、UFI命令規(guī)范。前兩個協(xié)議定義了數(shù)據(jù)/命令/狀態(tài)在USB總線上的傳輸方法,Bulk-Only傳輸協(xié)議僅僅使用Bulk端點(diǎn)傳送數(shù)據(jù)/命令/CBIControl/bulk/interrupt三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)的傳送。后兩個協(xié)議定義了存儲介質(zhì)的操作命令,ATA協(xié)議用于硬盤,UFIUSBUBulk-OnlyUFIUFI命令塊規(guī)范是針對USB1912字節(jié)長度的操作命令。Bulk-Only事務(wù)以主機(jī)向設(shè)備發(fā)送CBW(CommandBlockWarp)包,并以建立相應(yīng)的數(shù)據(jù)傳輸開始的,設(shè)備接收到CBW包,檢查并解釋它,試圖滿足主機(jī)的要求,并通過CSW(CommandStateWrap)包向主機(jī)返回狀態(tài)信息。CBWBulk-OutCBW域指明期待的傳輸,CBW31CSWCBW包必須按低字節(jié)在前的次序傳輸。CBW包結(jié)構(gòu)如圖2所示,各域含義如下:字節(jié)7字節(jié)76543210~3命令塊包標(biāo)識4~7命令塊標(biāo)記8~11數(shù)據(jù)傳輸長度12命令塊標(biāo)旗13預(yù)留邏輯單元號1415~30預(yù)留CBWCBCBWCB長度命令塊包標(biāo)識。CBW包標(biāo)記,表明這是一個CBW包,這個域的值為43425355H。命令塊標(biāo)記。當(dāng)設(shè)備返回相應(yīng)的CSWBulkCBWCSW值。命令塊標(biāo)旗。方向位規(guī)定了Bulk端點(diǎn)數(shù)據(jù)傳輸?shù)姆较?,其他位預(yù)留。0。CBWCBCBWCB的有效長度,合法值為1-16。CBWCB。由設(shè)備執(zhí)行的命令,由設(shè)備解釋。CSW向主機(jī)表明來自于CBW包的命令塊的執(zhí)行狀態(tài)。設(shè)備收到CBW包解析處理后將通過Bulk-In端點(diǎn)發(fā)送一個CSW包。CSW開始于包邊界,并以13字節(jié)的短包結(jié)束,結(jié)構(gòu)如圖3所示,各域含義如下:表4命令狀態(tài)包結(jié)構(gòu)字節(jié)字節(jié)765432100~3命令狀態(tài)包標(biāo)識4~7命令狀態(tài)標(biāo)記8~11數(shù)據(jù)殘余12命令執(zhí)行狀態(tài)命令狀態(tài)包標(biāo)識。CSWCSW53425355H。命令狀態(tài)標(biāo)記。次域的值域CBW包的命令塊標(biāo)記相同。CBW包中規(guī)定的數(shù)據(jù)傳輸長度的差值。非0值;則表明失敗或錯誤。UFI是針對USB移動存儲而制定的命令塊協(xié)議,它規(guī)定了主機(jī)和設(shè)備進(jìn)行信息交換所使用的命令塊、數(shù)據(jù)和狀態(tài)信息,Bulk-Only傳輸協(xié)議定義了傳輸這些信息的方法,其中UFI命令塊是封裝在CBW包中的CBWCB,設(shè)備通過讀取CBWCB確定具體要執(zhí)行何種操作命令(如讀命令),如何完成這個命令(如從閃存的哪個地址讀,需要讀取的長度),設(shè)備將命令的執(zhí)行狀態(tài)封裝成CSW返回給主機(jī)。UFI1241)操作命令代碼。指明所需要執(zhí)行的操作命令;邏輯單元號。指明命令將發(fā)送到哪個邏輯單元,如果設(shè)備只有一個邏輯單元,則此域的值為0。邏輯塊地址。命令操作的起始地址。傳輸長度,指明請求傳輸?shù)臄?shù)據(jù)量,通常以扇區(qū)作單位,但是有幾個命令是以字節(jié)"作單位的,對于這些命令,傳輸長度域可以以不同的名字標(biāo)識,若此域的值為0,則表面沒有數(shù)據(jù)需要傳輸。塊(如模式參數(shù)、診斷參數(shù)等),若此域的值為0,則表面沒有數(shù)據(jù)需要傳輸。分配長度,指明主機(jī)已經(jīng)分配的用于返回數(shù)據(jù)的最大字節(jié)長度,若此值為0,則表明沒有數(shù)據(jù)需要傳輸。表5UFI結(jié)構(gòu)字節(jié)字節(jié)765432100操作命令代碼1邏輯單元號預(yù)留2~5邏輯塊地址6預(yù)留7~8傳輸長度或參數(shù)列表長度或分配長度9~11預(yù)留FAT32FAT是Microsoft較早推出的文件系統(tǒng),具有高度的兼容性,目前仍然廣泛應(yīng)用于個人電腦尤其是移動存儲設(shè)備中,F(xiàn)AT由引導(dǎo)扇區(qū)、FAT1表、FAT2表、目錄和文件區(qū)組成(其中FAT2表是FAT1表的備份)。磁盤的管理是以扇區(qū)為單位的,而移動存儲設(shè)備則是以塊為單位的,F(xiàn)AT將塊映射成扇區(qū),原理相同,F(xiàn)AT將磁盤空間以一定數(shù)目的扇區(qū)為單位進(jìn)行劃分,這樣的單位成為"簇"。通常情況下,每扇區(qū)512字節(jié)的原則是不變的,簇的大小一般是2n(n為整數(shù))個扇區(qū)的大小。所以以簇為單位而不以扇區(qū)為單位進(jìn)行磁盤的分配,是因?yàn)楫?dāng)區(qū)分容量較大時,采用512字節(jié)的扇區(qū)管理,會增加FAT表的項(xiàng)數(shù)和大文件存取的消耗,使文件系統(tǒng)效率不高。引導(dǎo)扇區(qū)DBR(DOSBootRecord)通常占用分區(qū)的第0扇區(qū),共512字節(jié),F(xiàn)AT表緊隨其后。DBR的第一部分是一個x86跳轉(zhuǎn)指令、廠商標(biāo)志和操作系統(tǒng)版本號,接下來的從偏移0x0B開始的是一段描述能夠使可執(zhí)行引導(dǎo)代碼找到相關(guān)參數(shù)的消息,通常稱之為BPB。最后是引導(dǎo)程序代碼以及扇區(qū)結(jié)束標(biāo)志。BPB中記錄了扇區(qū)大小、簇的扇區(qū)數(shù)、保留扇區(qū)數(shù)、FAT表大小和文件系統(tǒng)類型等重要參數(shù),用于文件的索引和定位計算。軟件系統(tǒng)模塊USB讀寫器軟件由主模塊、USB模塊、BULK模塊、FATU盤文件的讀寫創(chuàng)建。USBUSB設(shè)備的移入/配置設(shè)備接口端點(diǎn)描述符,建立BULK_ONLY輸入/BULK模塊則在已建立的BULK_ONLY輸入/輸出通道發(fā)送CBW數(shù)據(jù)包,并接收CSW數(shù)據(jù)包,通過CBWCBWCB信息確定對U盤讀/寫操作的扇區(qū)位置和大小,F(xiàn)ATUBPB外部中斷喚醒。中斷處

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論