freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于stm32的mp3播放器設(shè)計(jì)論文正稿(編輯修改稿)

2025-07-19 16:58 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 地必須相互連接并盡量靠近VS1003以避免鎖存上拉,為了能播放48KHz采樣率的音頻文件。具體設(shè)計(jì)電路如圖212所示。VS1003通過MISO﹑MOSI﹑SCK(SPI接口)來接收輸入的MP3數(shù)據(jù),經(jīng)過VS1003內(nèi)置的采樣DAC轉(zhuǎn)換為音頻模擬量,最后通過Left﹑Right和Gbuf輸出。 圖212 VS1003解碼模塊電路3 FAT文件系統(tǒng) FAT文件系統(tǒng)簡(jiǎn)介MP3文件﹑BMP﹑TXT等文件在SD卡中是以FAT[11]的文件格式存儲(chǔ)的,F(xiàn)AT即文件配置表,本系統(tǒng)采用FAT16/32。以FAT32為例,其數(shù)據(jù)信息常分為5個(gè)部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、FDT區(qū)和DATA區(qū)。由于SD卡一般不做引導(dǎo)盤,一般也不分區(qū),因此通常無MBR區(qū),直接從DBR區(qū)開始。各分區(qū)的含義如下。MBR區(qū): 主引導(dǎo)記錄區(qū),該區(qū)存儲(chǔ)了分區(qū)表等信息,位于SD卡的扇區(qū)0(物理扇區(qū)),在其分區(qū)信息里面記錄了DBR所在的位置。DBR區(qū): 內(nèi)容為系統(tǒng)引導(dǎo)記錄,它包括一個(gè)引導(dǎo)程序和一個(gè)被稱為BPB(Bios Parameter Block)的本分區(qū)參數(shù)記錄表。BPB參數(shù)塊記錄著本分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件存儲(chǔ)格式、根目錄大小、FAT個(gè)數(shù),分配單元大小等重要參數(shù)。FAT區(qū):稱為文件分配表(FAT 表),一般一個(gè)卡上會(huì)存在2個(gè)FAT表,一個(gè)用作備份,一個(gè)用作使用。FAT表一般緊隨DBR,另一個(gè)FAT表則緊隨第一個(gè)FAT表。FAT表記錄了每個(gè)文件的位置和區(qū)域,是一種鏈?zhǔn)浇Y(jié)構(gòu),F(xiàn)AT以“F8 FF FF 0F FF FF FF FF”這樣的8個(gè)字節(jié)為表頭,用以表示FAT表的開始,后面的數(shù)據(jù)每四個(gè)字節(jié)為一個(gè)簇項(xiàng)(從第2簇開始),用來標(biāo)記下一個(gè)簇所在的位置,這樣每個(gè)位置都存儲(chǔ)了下一個(gè)簇,只要按著這個(gè)表走,就可以找到文件的所有內(nèi)容。如果找到下一個(gè)簇位置,里面記錄的是“FF FF FF 0F”,代表這個(gè)文件到此就結(jié)束了,沒有后續(xù)簇了,這樣一個(gè)文件的讀取就結(jié)束了。FTD區(qū):該區(qū)的內(nèi)容為文件目錄表,F(xiàn)AT文件系統(tǒng)的一個(gè)重要思想是把目錄(文件夾)當(dāng)作一個(gè)特殊的文件來處理,F(xiàn)AT32甚至將根目錄當(dāng)作文件處理。FAT分區(qū)中所有目錄文件,實(shí)際上可以看作是一個(gè)存放其它文件(文件夾)入口參數(shù)的數(shù)據(jù)表。因此,目錄占用空間的大小并不等同于其下所有數(shù)據(jù)的大小,但也不等于0,通常占很小的空間。其具體的存儲(chǔ)原理是:不管目錄文件所占空間為多少簇,一簇為多少扇區(qū)、多少字節(jié),系統(tǒng)都會(huì)以32個(gè)字節(jié)為單位,進(jìn)行目錄文件所占簇的分配,各個(gè)字段定義如表31所列。DATA區(qū):該數(shù)據(jù)區(qū)存放文件的內(nèi)容,SD卡所占用的空間絕大部分為此部分。如果文件長(zhǎng)度大于一個(gè)簇的大小,需要多個(gè)簇存放該文件,這些簇通過FAT鏈表串連起來。表31 文件目錄表各字段定義FAT32文件目錄項(xiàng)32個(gè)字節(jié)的定義字節(jié)偏移量字?jǐn)?shù)量定義0~78文件名8~103擴(kuò)展名111屬性字節(jié)0x00 (讀寫)0x01 (只讀)0x02 (隱藏)0x04 (系統(tǒng))0x08 (卷標(biāo))0x10 (子目錄)0x20 (歸檔)121系統(tǒng)保留131創(chuàng)建時(shí)間的10毫秒位14~152文件創(chuàng)建時(shí)間16~172文件創(chuàng)建日期18~192文件最后訪問時(shí)間20~212文件起始簇號(hào)的高16位22~232文件的最近修改時(shí)間24~252文件的最近修改日期26~272文件起始簇號(hào)的低16位28~314表示文件的長(zhǎng)度 FAT文件系統(tǒng)的讀取操作一般硬盤的數(shù)據(jù)結(jié)構(gòu)是按圖31而建立的。圖31 FAT文件系統(tǒng)結(jié)構(gòu)圖啟動(dòng)區(qū)的內(nèi)容,也就是第一個(gè)扇區(qū),使用WinHex軟件查看,如圖32所示。其中,帶下劃線或點(diǎn)線部分為有用內(nèi)容,具體含義依次如下。圖32 FAT啟動(dòng)區(qū)EB 59 90:跳轉(zhuǎn)指令。4D 53 44 4F 53 35 2E 30:廠商標(biāo)志和dos版本號(hào)。00 20(偏移地址0BH,長(zhǎng)度2):注意這里數(shù)據(jù)的布局,高地址放高字節(jié),低地址放低字節(jié)(數(shù)據(jù)為小端格式組織),所以數(shù)據(jù)應(yīng)該是0200,就是512。表示的意思是,該磁盤每個(gè)扇區(qū)有512個(gè)字節(jié)。有的可能是1022044096。08(偏移地址0DH,長(zhǎng)度1):表示每個(gè)簇有8個(gè)扇區(qū)。這個(gè)值不能為0,而且必須是2的整數(shù)次方,比如136128。但是這個(gè)值不能使每個(gè)簇超過32KB。24 00(偏移地址0EH,長(zhǎng)度2):轉(zhuǎn)換一下,就是0024,意思是保留區(qū)域中的保留扇區(qū)數(shù)為36個(gè)。那么就可以知道下面的FAT1區(qū)的開始的地址就是:0x24*200(每個(gè)扇區(qū)的字節(jié)數(shù))=0x4800。02(偏移地址10H,長(zhǎng)度1):此卷中的FAT結(jié)構(gòu)的份數(shù)為2,另外一個(gè)是備份的。C6 03(偏移地址24H,長(zhǎng)度2):每個(gè)FAT占用的扇區(qū)數(shù),轉(zhuǎn)換一下,為03C6。那么每個(gè)扇區(qū)占用的字節(jié)數(shù)就是0x03C6*200=78C00。根據(jù)啟動(dòng)區(qū)、FATFAT根目錄、數(shù)據(jù)區(qū)的次序,可以依次計(jì)算出它們的地址。通過以上分析我們知道了啟動(dòng)區(qū)地址是0x00。FAT1表的起始地址的為0x4800,如圖33所示。FAT2表的起始地址為0x4800+0x78C00=0x7D400,如圖34所示。根目錄區(qū)的起始地址為0x7D400+0x78C00=0xF6000,如圖35所示。圖33 FAT1的起始地址圖34 FAT2的起始地址圖35 根目錄的起始地址從SD卡中讀取數(shù)據(jù)需要給出數(shù)據(jù)的地址,而且每次讀取都是一個(gè)整扇區(qū),512個(gè)字節(jié)。找出這些地址后,可以很方便的找到數(shù)據(jù)。由此可見讀取0扇區(qū)的內(nèi)容,我們就知道FAT文件系統(tǒng)的重要參數(shù)了,現(xiàn)在分析下根目錄區(qū)的內(nèi)容。根據(jù)前面得到的根目錄地址0xF6000,通過軟件查看它的內(nèi)容如圖36所示。這里使用的是FAT32短文件目錄項(xiàng),每32個(gè)字節(jié)表示一個(gè)文件(文件夾也是)。具體含義分別如下。圖36 根目錄中的數(shù)據(jù)5A 53 44 4C 20 20 20 20:驅(qū)動(dòng)器的名稱,8個(gè)字節(jié)。54 45 53 54 20 20 20 20(偏移地址20H,長(zhǎng)度8):文件名TEST(空缺部分是空格)。54 58 54(偏移地址28H,長(zhǎng)度3):文件類型,為ASCII字符表示。20(偏移地址2BH,長(zhǎng)度1):文件屬性,00000000(讀寫);00000001(只讀);00000010(隱藏);00000100(系統(tǒng));00001000(卷標(biāo));00010000(子目錄);00100000(歸檔)。58 39 (偏移地址30H,長(zhǎng)度2):文件創(chuàng)建時(shí)間。58 39 (偏移地址32H,長(zhǎng)度2):文件最后訪問日期。03 00 (偏移地址3AH,長(zhǎng)度2):起始簇的簇號(hào)為03。77 2D 00 00(偏移地址3CH,長(zhǎng)度4):文件長(zhǎng)度2D77就是11639字節(jié)。 從文件的大小可以計(jì)算出,需要占用多少個(gè)簇。根據(jù)前面的數(shù)據(jù),每個(gè)簇放8個(gè)扇區(qū),每個(gè)扇區(qū)512個(gè)字節(jié),那么一個(gè)簇的空間就是4096字節(jié)了,即4KB。那么11639字節(jié)需要3個(gè)簇,這三個(gè)簇的開始的地址就可以計(jì)算出來了。通過起始簇號(hào)計(jì)算得到起始簇的地址:0xF6000(根目錄區(qū)地址)+(032)*08*0x200=0xF7000(第一個(gè)簇開始地址)這里03減去的02的意思是因?yàn)榇靥?hào)都是從2開始的。第二個(gè)簇號(hào)存放在0x4800+03*04(因?yàn)樗膫€(gè)字節(jié)存一個(gè)簇號(hào))=0x480C中,通過圖37可知0x480C里面的內(nèi)容是:04 00 00 00,即第二簇號(hào)為04。此時(shí)第二個(gè)簇的地址:0xF6000+(042)*08*0x200=0xF8000。依次查看FAT1表可知第三個(gè)簇號(hào)為05,地址:0xF6000+(052)*08*0x200=0xF9000。繼續(xù)看看下一個(gè)簇號(hào):內(nèi)容為0x0FFFFFFF,說明文件放置結(jié)束。圖37 FAT1表中的內(nèi)容通過以上分析可以得到該文件數(shù)據(jù)存放的起始地址了:0xF7000(第一個(gè)簇開始地址)﹑0xF8000(第二個(gè)簇開始地址)﹑0xF9000(第三個(gè)簇開始地址),他們?cè)谖募到y(tǒng)中存儲(chǔ)的數(shù)據(jù)分別如圖圖38﹑圖39﹑圖310所示。由此就可以獲得該文件的數(shù)據(jù)了。圖38 簇中的數(shù)據(jù)1圖39 簇中的數(shù)據(jù)2 圖310 簇中的數(shù)據(jù)34 系統(tǒng)軟件設(shè)計(jì) 軟件設(shè)計(jì)總流程本系統(tǒng)在軟件設(shè)計(jì)上主要包括2部分:底層驅(qū)動(dòng)的設(shè)計(jì)和各功能模塊的設(shè)計(jì)。軟件設(shè)計(jì)平臺(tái)使用RealView MDK[13]。各個(gè)功能的選擇菜單仿照手機(jī)九空格的操作界面,實(shí)現(xiàn)多各個(gè)功能之間的選擇與切換,系統(tǒng)軟件設(shè)計(jì)的總體流程圖41所示。 圖41 系統(tǒng)軟件總流程 底層驅(qū)動(dòng)程序設(shè)計(jì) TFT顯示驅(qū)動(dòng)程序設(shè)計(jì)本設(shè)計(jì)所使用的TFT使用ILI9320作為顯示驅(qū)動(dòng)芯片,數(shù)據(jù)的讀寫方式由模塊硬件設(shè)置為16位數(shù)據(jù)模式。要完成TFT的顯示功能主要依靠2個(gè)操作:寫顯示緩存GRAM(顯示的顏色數(shù)值)和寫寄存器操作(TFT所有的設(shè)置操作)。1. 寫顯示緩存寫顯示緩存GRAM的操作比較簡(jiǎn)單,只需要寫入顏色的數(shù)值即可,它的操作時(shí)序如圖42所示。16位數(shù)據(jù)線采用565模式讀寫數(shù)據(jù),其數(shù)據(jù)的映射關(guān)系如圖43所示。最低5位代表藍(lán)色,中間6位為綠色,高5位是紅色,數(shù)值越大表示顏色越深。圖42 寫顯示緩存操作時(shí)序圖43 16位數(shù)據(jù)映射圖2. 寫寄存器
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1