基于STM32的便攜式音樂播放器設(shè)計畢業(yè)設(shè)計說明書_第1頁
基于STM32的便攜式音樂播放器設(shè)計畢業(yè)設(shè)計說明書_第2頁
基于STM32的便攜式音樂播放器設(shè)計畢業(yè)設(shè)計說明書_第3頁
基于STM32的便攜式音樂播放器設(shè)計畢業(yè)設(shè)計說明書_第4頁
基于STM32的便攜式音樂播放器設(shè)計畢業(yè)設(shè)計說明書_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于STM32的便攜式音樂播放器設(shè)計畢業(yè)設(shè)計說明書 編號 畢業(yè)設(shè)計說明書 論文 課 題 便攜式音樂播放器設(shè)計 學(xué) 院 電子工程與自動化學(xué)院 專 業(yè) 電子信息科學(xué)與技術(shù) 學(xué)生姓名 學(xué) 號 指導(dǎo)教師 職 稱 高級研究員 題目類型 理論研究 實驗研究 工程設(shè)計 工程技術(shù)研究 軟件開發(fā)7>2013 年 4 月 20 日摘 要隨著電子行業(yè)的迅猛發(fā)展人們對消費類電子產(chǎn)品的需求越來越高多功能便攜式MP3也越來越受大眾的青睞根據(jù)消費者的愛好需求各種多功能的MP3層出不窮其盡可能的吸收照相機(jī)手機(jī)等電子產(chǎn)品的其它功能本次系統(tǒng)設(shè)計采用ARM Cortex-M3內(nèi)核的STM32F103VET6作為微控制器SD卡

2、作為存儲介質(zhì)VS1003作為音頻解碼芯片以及TFT彩晶屏作為人際交互設(shè)備設(shè)計一款可播放mp3wav文件格式的便攜式音樂播放器并實現(xiàn)相關(guān)功能本次設(shè)計的重點是了解FAT文件系統(tǒng)的構(gòu)造SD卡的讀取VS1003芯片的解碼過程人機(jī)交互設(shè)備的控制操作以及各主從機(jī)之間的通訊方式其中STM32F103系列集成了低功耗IO資源多通信接口多體積小價格適中等多項優(yōu)點隨著日本松下東芝及美國SanDisk公司于1999年8月共同研制SD卡被廣泛應(yīng)用與閃存介質(zhì)并易于讀取VS1003是一個多功能的mp3wav解碼芯片自帶DAC具有無相位差的立體聲輸出TFT顯示屏集成了觸控特點使得人機(jī)交互更為簡便程序編寫更為簡潔關(guān)鍵字STM

3、32F103VET6SD卡VS1003解碼芯片TFT彩晶屏便攜式音樂播放器AbstractWith the rapid development of the electronics industry he consumer electronic products have been used more often by people because of their growing demand Its popular to have a Multi-function portable MP3 for people with the increasingly favored by the pu

4、blic A variety of multi-function MP3 after another according to the demand of consumer They were produced with absorb the other features of the cameras cell phones and other electronic products as much as possible The system used the ARM Cortex-M3 core STM32F103VET6 as microcontroller SD card as the

5、 storage medium VS1003 as human interaction as the audio decoder chip and TFT display screen equipment to make a Portable Music Player with the function that could play wav and mp3 files in this design and some related functions The difficulty lie in design is focused on understanding the structure

6、of the FAT file system how to read SD card the process of decoding in VS103 chip the control of human-computer interaction and the communication by master and slave Among of these devices STM32F103 series integrates a low-power IO resources communication interface small size affordable and many othe

7、r advantages Panasonic Toshiba SanDisk Corporation and the United States develop together in August 1999 SD cards are widely application and flash media and easy to read VS1003 is a mp3 wav decoder chip with many function built-in DAC and stereo output with no phase difference TFT as a display make

8、the human-computer interaction easier and programming more concise by integrating touch featuresKey words STM32F103VET6 SD card VS1003 decoder chip TFT display screen Portable Music Player目 錄引言11 設(shè)計任務(wù)與思路211 設(shè)計任務(wù)212 設(shè)計思路22 器件選擇和系統(tǒng)框圖221 器件選擇222 系統(tǒng)框圖與概述23 硬件電路設(shè)計431 電源模塊432 微控制器模塊533 SD卡模塊634 音頻解碼模塊735

9、音頻放大模塊836 彩晶顯示模塊937 復(fù)位模塊104 FAT文件系統(tǒng)1041 FAT文件系統(tǒng)簡介1042 FAT文件系統(tǒng)的讀取操作125 系統(tǒng)軟件設(shè)計1551 STM32程序調(diào)試15511 STM32啟動簡析15512 STM32程序測試17513 STM32時鐘系統(tǒng)1952 TFT顯示驅(qū)動2153 SD卡讀取驅(qū)動23531 SD卡總線拓?fù)?3532 寄存器與協(xié)議23533 驅(qū)動流程圖2654 VS1003驅(qū)動設(shè)計26541 VS1003總線拓?fù)?6542 VS1003主要寄存器28543 VS1003相關(guān)協(xié)議29544 讀寫時序29545 驅(qū)動流程與框圖3055 系統(tǒng)軟件流程圖316 實物

10、與功能3161實物總圖3262 利用電池供電3363 支持wav和mp3格式3364 支持SD卡存儲3465 可選擇播放3466 可快進(jìn)快退357 自我總結(jié)36謝 辭38參考文獻(xiàn)39附 錄 一40附 錄 二46引言在INTERNET廣泛普及的今天MP3音樂一起較小數(shù)據(jù)流量和近乎完美的播放效果已經(jīng)成為計算機(jī)和INTERNET上最流行的音樂格式了將CD格式的音樂數(shù)據(jù)壓縮成MP3格式音效相差無幾文件大小卻至少可以壓縮12倍每首PCM格式的CD歌曲大約40MB至50MB數(shù)據(jù)流量自韓國世韓公司1998年推出世界上第一臺MP3隨身聽以來MP3播放器以其小巧外形近乎于CD的音質(zhì)前衛(wèi)的功能越來越受到消費者的青

11、睞也就成為業(yè)界甚至大眾媒體關(guān)注的一個熱門話題它的記錄媒介是芯片或卡無需轉(zhuǎn)動部件徹底擺脫磁盤和光碟的束縛因而抗震性和節(jié)點性能更好在市場消費的刺激下各大公司紛紛推出了自己的mp3播放器產(chǎn)品除了Micronas方案ST方案TI軟解壓單芯片方案還有臺灣創(chuàng)品方案美國Sigmatel方案等進(jìn)入2004年當(dāng)MP3在容量外觀音質(zhì)上的發(fā)展無法再吸引更多眼球的時候開始轉(zhuǎn)向多功能發(fā)展正如在手機(jī)身上所發(fā)生的一切人們對于MP3的要求不再是單一的欣賞音樂而是向手機(jī)一樣身兼多職作為全球第一款閃存式彩屏MP3信利MP301的推出引起了MP3市場的巨大關(guān)注除了彩屏的加入MP301還支持圖書圖片瀏覽及游戲功能多功能融合是消費類電

12、子產(chǎn)品的發(fā)展趨勢MP3播放器的誕生為傳統(tǒng)隨身聽帶來了致命打擊曾幾何時MP3和MD之間的斗爭成為業(yè)界最熱門的話題當(dāng)時甚至多數(shù)人都認(rèn)為MP3由于音質(zhì)上的原因?qū)捉oMD但事實上MP3的發(fā)展遠(yuǎn)遠(yuǎn)超出了MD支持者們的預(yù)想直至今日MP3已成為隨身聽市場的主流產(chǎn)品并成為了繼手機(jī)之后最為廣泛使用的個人隨身電子產(chǎn)品抱著學(xué)習(xí)的態(tài)度秉著嚴(yán)謹(jǐn)?shù)木裢瓿纱舜我魳凡シ牌鞯脑O(shè)計1 設(shè)計任務(wù)與思路11 設(shè)計任務(wù)本設(shè)計課題是一個軟硬件相結(jié)合的設(shè)計類題目要求設(shè)計一個具有如下要求的便攜式音樂播放器利用電池供電支持wav和mp3格式支持U盤CF卡或者SD卡可選擇播放可快進(jìn)快退12 設(shè)計思路整個系統(tǒng)主要由微控制器音頻解碼部分音效處理部

13、分SD卡部分人機(jī)交互部分按鍵復(fù)位部分電源部分程序口下載部分組成整個系統(tǒng)由MCU控制各個部分協(xié)調(diào)運作2 器件選擇和系統(tǒng)框圖21 器件選擇該系統(tǒng)要求能夠?qū)p3wav格式的音頻文件進(jìn)行解碼處理起來速度是有要求的尤其是對320Kbps的MP3格式數(shù)據(jù)流的處理必須非??觳拍軐崿F(xiàn)MP3的流暢播放可供選擇的八位機(jī)有AVRPIC可供選擇的32位處理器有SAMSUNGSTM32ATMEL等選擇MCU優(yōu)先考慮于擁有豐富的RAM八位機(jī)RAM主要靠擴(kuò)展內(nèi)部RAM一般在4Kbyte以內(nèi)32位機(jī)里面SAMSUNG一般不內(nèi)帶RAM也要外擴(kuò)出于成本的考慮外擴(kuò)RAMFLASH芯片必然會增加成本所以控制芯片最好選擇自帶RAMF

14、LASH本次課題設(shè)計選擇使用STM32F103VET6作為微控制器本次課題設(shè)計要求的儲存媒介是U盤CF卡或者SD卡SD卡以其價格低體積小擴(kuò)存容易等優(yōu)勢迅速占據(jù)市場使用也越來越廣泛以此同時各種MCU同時也在內(nèi)部集成了SD控制器出于成本和使用方便等因素的考慮本次課題設(shè)計選擇使用SD卡作為儲存媒介由于使用了ARM7處理器MP3解碼可以有兩種方法一是通過ARM處理器軟解碼通過對MP3數(shù)據(jù)格式的解析實現(xiàn)MP3播放二是通過外部解碼芯片直接解碼第一種方法在解碼高碼率的MP3時ARM7處理能力吃緊而且STM32還需要外部DAC來做音頻輸出所以采用第二種方法進(jìn)行解碼MP3常見的解碼芯片有VS100X系列和STA

15、01系列STA01需要外接DAC做音頻輸出而VS1003自帶DAC且解碼的文件格式包含mp3和wav另外它還可以實現(xiàn)錄音功能方便以后進(jìn)行功能的拓展應(yīng)用人機(jī)交互設(shè)備包括輸入設(shè)備和輸出設(shè)備選擇硬件考慮到程序的調(diào)試控制這里選擇一款3寸的TFT液晶屏其分辨率位240400工作模式為16位數(shù)據(jù)模式通訊速度較快22 系統(tǒng)框圖與概述本次課題設(shè)計采用STM32F103VET6作為為控制器讀取SD卡內(nèi)的音樂文件并將數(shù)據(jù)送入VS1003進(jìn)行音頻解碼得到模擬的音樂流再進(jìn)過音頻放大送入耳機(jī)同時結(jié)合TFT液晶屏進(jìn)行人機(jī)交互控制其系統(tǒng)框圖如圖2-1圖2-1 系統(tǒng)框圖3 硬件電路設(shè)計31 電源模塊電源模塊是電子設(shè)備中必不可

16、少的一部分它位設(shè)備提供了能量如圖3-1所示為該系統(tǒng)的電源模塊電路5V電壓經(jīng)過AMS1117-25AMS1117-28和AMS1117-33產(chǎn)生25V28V和33V直流電壓供系統(tǒng)使用C31可以防止電感效應(yīng)而產(chǎn)生自激C33用來減小由于負(fù)載電流瞬時變化而引起的高頻干擾C32是進(jìn)一步減小輸出脈動和低頻干擾使電源輸出更加穩(wěn)定sp位電源開關(guān)D1和D2位電源指示燈圖3-1 電源模塊電路32 微控制器模塊微控制器STM32F103VET6控制著整個系統(tǒng)協(xié)調(diào)運作STM32F103VET6基于ARM Cortex-M3內(nèi)核設(shè)計片上集成了豐富的數(shù)字和模擬資源允許最高72MHz的工作頻率是一款性價比很高的32位ARM

17、處理器其管腳封裝圖如圖3-2自帶128KB閃存和20KB的RAM具有2個SPI接口2個IIC接口3個USART接口一個USB接口和一個CAN總線接口高達(dá)80個IO口資源采用外部8MHz時鐘經(jīng)過倍頻因子PLLMUL可倍頻至72MHz通過一些列的AHB分頻器可設(shè)置各種外設(shè)所需的頻率以達(dá)到低功耗的目的圖3-2 STM32F103VET6管腳圖微控制器電路模塊如圖3-3圖中BOOT0為插針用于選擇啟動模式當(dāng)BOOT 1時用戶閃存存儲器被選為啟動區(qū)域此時可以通過串口下載程序當(dāng)BOOT 0時系統(tǒng)存儲區(qū)被選為啟動區(qū)域電容C11C12C13和C15為諧振電容有助于系統(tǒng)時鐘和RTC時鐘的啟振在設(shè)計時晶振要盡可能

18、靠近芯片電容C14C16C17C20位芯片電源引腳的旁路電容能夠起到穩(wěn)定電源的作用微控制器各引腳接口描述如表3-1所示圖3-3 微控制器模塊電路表3-1 STM32F103VET6主要引腳接口描述STM32F103VET6引腳序號接口類型接口作用89RTC時鐘晶振接口32768KHz晶振Y11213系統(tǒng)時鐘接口8MHz晶振Y283SD卡控制器接口SD卡命令控制SDIO_CMD80SD卡時鐘控制SDIO_CLK65667879SD卡數(shù)據(jù)通訊SDIO_DATA97VS1003控制接口異步復(fù)位端低電平有效XREST51片選輸入端低電平有效XCS63數(shù)據(jù)片選端字節(jié)同步XDCSBSYNC52串行總線時鐘

19、SCLK54串行輸入SI53串行輸出SO98TFT液晶屏接口復(fù)位88片選30時鐘SCK31MISO32MOSI38-4655-576162818216位數(shù)據(jù)接口DATA33 SD卡模塊SD卡Secure Digital Memory Card中文翻譯為安全數(shù)碼卡是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備SD卡的物理規(guī)格管腳功能和數(shù)據(jù)傳輸協(xié)議時MMCMultimedia Card前向兼容的它被廣泛用于便攜式裝置上使用例如數(shù)碼相機(jī)個人數(shù)碼助理 PDA 和多媒體播放器SD卡由日本松下東芝及美國SanDisk公司于1998年共同開發(fā)研制大小猶如一張郵票的SD記憶卡重量只有2克但卻擁有高記憶容量快速數(shù)據(jù)

20、傳輸率極大的移動性以及很好的安全性SD卡標(biāo)準(zhǔn)是SD卡協(xié)會針對可移動存儲設(shè)備設(shè)計專利并授權(quán)的一種標(biāo)準(zhǔn)主要用于制定卡的外形尺寸電氣接口和通訊協(xié)議其中SD卡外形尺寸如圖3-4引腳功能如表3-2圖3-4 SD卡外形尺寸表3-2 SD卡引腳圖PinSD modeSPI modeNameTypeDiscriptionNameTypeDiscription0DATA2IOPPDATA LineRSVIReserved1DATA3IOPPDATA LineCSIChipSelect2CMDPPCommandDataInIHost to card3VSSISGroundVSSISGround4VDDSVolta

21、geVDDSSupply Voltage5CLKIClockCLKIClock6VSS2SVoltageVSS2SVoltage 7DATA0IOPPDATA LineDataOutOCard to Host8DATA1IOPPDATA LineRSVUReserved由于SD卡的廣泛引用各種常用MCU內(nèi)部都集成了SD控制器而恰好本次設(shè)計選取的STM32F103VET6內(nèi)部也含有SD控制器接口為了獲得更大的數(shù)據(jù)傳輸速度本次設(shè)計采用SD模式進(jìn)行主從機(jī)之間的通訊該模式下具有6根通訊線Data0-3CMDCLK和三根電源線VSS1VSS2VDD電路模塊如圖3-5其中RVA0-RVA4為增強(qiáng)驅(qū)動能力圖

22、3-5 SD卡電路模塊34 音頻解碼模塊本次課題設(shè)計采用的解碼芯片是VS1003VS1003是芬蘭VLSI公司生產(chǎn)的單芯片MP3WMA音頻解碼芯片其擁有一個高性能低功耗的DSP處理器核VSDSP5KB的指令RAM05KB的數(shù)據(jù)RAM串行的控制和數(shù)據(jù)輸入接口4個通用的IO口1個UART口1個可變采樣率的DAC1個立體聲DAC以及音頻耳機(jī)放大器其內(nèi)部結(jié)構(gòu)如圖3-6所示圖3-6 VS1003內(nèi)部結(jié)構(gòu)VS1003通過一個串行接口來接收輸入的比特流它可以作為一個系統(tǒng)的從機(jī)輸入的比特流被解碼然后通過一個數(shù)字音量控制器到達(dá)一個18位過采樣多位 DAC通過串行總線控制解碼器除了基本的解碼在用戶RAM中它還可以

23、作其他特殊應(yīng)用例如DSP音效處理其內(nèi)部部分引腳功能如表3-3表3-3 VS1003部分引腳功能表引腳號管腳名稱管腳功能61419IOVDDIO電源典型值28V 最大值36V38434547APWR模擬電源典型值25V最大值28V572431CVDD處理器內(nèi)核電源典型值28V36V37404147AGND模擬地3XRESET低電平有效異步復(fù)位端8DREQ數(shù)據(jù)請求輸入總線9GPIO2DCLK通用IO2串行數(shù)據(jù)總線時鐘10GPIO3SDATA通用IO3串行數(shù)據(jù)總線數(shù)據(jù)13XDCSBSYNC數(shù)據(jù)片選端字節(jié)同步17和18XTALO XTALI晶振輸出和晶振輸入23XCS片選輸入低電平有效28SCLK串行

24、總線的時鐘29和30SI和SO串行輸入和串行輸出39和46RIGHT和LEFT右聲道輸出和左聲道輸出在設(shè)計VS1003解碼電路時數(shù)字地與模擬地必須相互連接并盡量靠近VS1003以避免鎖存上拉為了能播放48KHz采樣率的音頻文件輸入時鐘使用12288MHz具體設(shè)計電路如圖3-7所示VS1003通過MISO、MOSI、SCK SPI接口 來接收輸入的MP3數(shù)據(jù)經(jīng)過VS1003內(nèi)置的采樣DAC轉(zhuǎn)換為音頻模擬量最后通過Left、Right和Gbuf輸出表3-7 VS1003接口電路35 音頻放大模塊本次課題設(shè)計采用的音頻功放芯片是TDA1308TDA1308是AB類的數(shù)字音頻 CD 專用耳機(jī)功放芯片低

25、電壓低失真高速率強(qiáng)輸出等優(yōu)異的性能是以往的TDA2822TDA7050LM386等經(jīng)典功放望塵莫及的芯片內(nèi)采用MOS管輸出可直接推動低阻抗耳機(jī)因為封裝和功能引腳位與一般的雙運放相同在特定條件下也能當(dāng)雙運放使用在低供電電壓條件下性能比一般的運放要好因其封裝體積小低電壓低功耗等特點主要應(yīng)用在便攜式數(shù)字音頻電路中如discman光驅(qū)的耳放電路等其引腳配置與功能方框圖如圖3-8圖3-8 TDA1308引腳配置和功能方框圖在設(shè)計音頻放大電路模塊時采用了同相放大電路的接法設(shè)計電路如圖3-9輸入信號電壓A5V加到運放的同相輸入端和地之間輸出電壓通過RV1和RV2的分壓作用可得電壓增益Av 1RV2RV1本次

26、設(shè)計采用RV1 RV2使得電壓放大為原來的兩倍輸出至耳機(jī)接口圖3-9 音頻放大電路36 彩晶顯示模塊顯示器采用奮斗STM32開發(fā)板30TFT240400本次設(shè)計的LCD觸摸屏所采用的控制器為XPT2046 XPT2046是一種典型的逐次逼近型模數(shù)轉(zhuǎn)換器SAR ADC包含了采樣保持模數(shù)裝換串口數(shù)據(jù)輸出等功能芯片內(nèi)部集成有一個25V的內(nèi)部參考電壓也可以從外部直接輸入?yún)⒖茧妷浩渲薪涌诓捎肕CU的FSMC功能LCD片選CS采用FSMC_NE1 P88 FSMC_A16 P58 作為LCD的RS選擇FSMC_nWE1 P86 作為LCD的WRFSMC_nOE P85 作為LCD的RDLCD的RESET腳

27、用CPU的PE1P98 LCD-RST FSMC_D0- FSMC_D15和LCD的D1-D8 D10-D17相互連接觸摸屏接口采用SPI1接口片選位PB7-SPI1-CS3由于LCD背光采用恒流源芯片PT4101控制采用PWM控制信號控制背光的明暗PWM信號由PD13-LIGHT-PWM來控制觸摸電路的中斷申請有PB6-INT來接收其設(shè)計電路如圖3-10所示圖3-10 彩晶顯示電路37 復(fù)位模塊復(fù)位電路如圖3-11所示當(dāng)接通電源時電容C10進(jìn)行充電使得nRST為高電平按下復(fù)位按鍵后電容C10放電為低電平實現(xiàn)復(fù)位功能圖3-11 復(fù)位電路4 FAT文件系統(tǒng)41 FAT文件系統(tǒng)簡介MP3文件、BM

28、P、TXT等文件在SD卡中是以FAT11的文件格式存儲的FAT即文件配置表本系統(tǒng)采用FAT1632以FAT32為例其數(shù)據(jù)信息常分為5個部分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ū)存儲了分區(qū)表等信息位于SD卡的扇區(qū)0物理扇區(qū)在其分區(qū)信息里面記錄了DBR所在的位置DBR區(qū) 內(nèi)容為系統(tǒng)引導(dǎo)記錄它包括一個引導(dǎo)程序和一個被稱為BPBBios Parameter Block的本分區(qū)參數(shù)記錄表BPB參數(shù)塊記錄著本分區(qū)的起始扇區(qū)結(jié)束扇區(qū)文件存儲格式根目錄大小FAT個數(shù)分配單元大小等重要參數(shù)FA

29、T區(qū)稱為文件分配表FAT 表一般一個卡上會存在2個FAT表一個用作備份一個用作使用FAT表一般緊隨DBR另一個FAT表則緊隨第一個FAT表FAT表記錄了每個文件的位置和區(qū)域是一種鏈?zhǔn)浇Y(jié)構(gòu)FAT以F8 FF FF 0F FF FF FF FF這樣的8個字節(jié)為表頭用以表示FAT表的開始后面的數(shù)據(jù)每四個字節(jié)為一個簇項從第2簇開始用來標(biāo)記下一個簇所在的位置這樣每個位置都存儲了下一個簇只要按著這個表走就可以找到文件的所有內(nèi)容如果找到下一個簇的位置里面記錄的是FF FF FF 0F代表這個文件到此就結(jié)束了沒有后續(xù)簇了這樣一個文件的讀取就結(jié)束了FTD區(qū)該區(qū)的內(nèi)容為文件目錄表FAT文件系統(tǒng)的一個重要思想是把目

30、錄文件夾當(dāng)作一個特殊的文件來處理FAT32甚至將根目錄當(dāng)作文件處理FAT分區(qū)中所有目錄文件實際上可以看作是一個存放其它文件文件夾入口參數(shù)的數(shù)據(jù)表因此目錄占用空間的大小并不等同于其下所有數(shù)據(jù)的大小但也不等于0通常占很小的空間其具體的存儲原理是不管目錄文件所占空間為多少簇一簇為多少扇區(qū)多少字節(jié)系統(tǒng)都會以32個字節(jié)為單位進(jìn)行目錄文件所占簇的分配各個字段定義如表4-1所列DATA區(qū)該數(shù)據(jù)區(qū)存放文件的內(nèi)容SD卡所占用的空間絕大部分為此部分如果文件長度大于一個簇的大小需要多個簇來存放該文件這些簇通過FAT鏈表串連起來表4-1 文件目錄表各字段定義FAT32文件目錄項32個字節(jié)的定義字節(jié)偏移量字?jǐn)?shù)量定義07

31、8文件名8103擴(kuò)展名111屬性字節(jié)0x00 讀寫 0x01 只讀 0x02 隱藏 0x04 系統(tǒng) 0x08 卷標(biāo) 0x10 子目錄 0x20 歸檔 121系統(tǒng)保留131創(chuàng)建時間的10毫秒位14152文件創(chuàng)建時間16172文件創(chuàng)建日期18192文件最后訪問時間20212文件起始簇號的高16位22232文件的最近修改時間24252文件的最近修改日期26272文件起始簇號的低16位28314表示文件的長度42 FAT文件系統(tǒng)的讀取操作一般硬盤的數(shù)據(jù)結(jié)構(gòu)是按圖4-1而建立的圖4-1 FAT文件系統(tǒng)結(jié)構(gòu)圖啟動區(qū)的內(nèi)容也就是第一個扇區(qū)使用WinHex軟件查看如圖4-2所示其中帶下劃線或點線部分為有用內(nèi)容

32、具體含義依次如下圖4-2 FAT啟動區(qū)EB 59 90跳轉(zhuǎn)指令4D 53 44 4F 53 35 2E 30廠商標(biāo)志和dos版本號這里是MSDOS5000 20 偏移地址0BH長度2 注意這里數(shù)據(jù)的布局高地址放高字節(jié)低地址放低字節(jié)數(shù)據(jù)為小端格式組織所以數(shù)據(jù)應(yīng)該是0200就是512表示的意思是該磁盤每個扇區(qū)有512個字節(jié)有的可能是10242048409608 偏移地址0DH長度1 表示每個簇有8個扇區(qū)這個值不能為0而且必須是2的整數(shù)次方比如1248163264128但是這個值不能使每個簇超過32KB24 00 偏移地址0EH長度2 轉(zhuǎn)換一下就是0024意思是保留區(qū)域中的保留扇區(qū)數(shù)為36個那么就可

33、以知道下面的FAT1區(qū)的開始的地址就是0x24200每個扇區(qū)的字節(jié)數(shù) 0x480002 偏移地址10H長度1 此卷中的FAT結(jié)構(gòu)的份數(shù)為2另外一個是備份的C6 03 偏移地址24H長度2 每個FAT占用的扇區(qū)數(shù)轉(zhuǎn)換一下為03C6那么每個扇區(qū)占用的字節(jié)數(shù)就是0x03C6200 78C00根據(jù)啟動區(qū)FAT1FAT2根目錄數(shù)據(jù)區(qū)的次序可以依次計算出它們的地址通過以上分析我們知道了啟動區(qū)地址是0x00FAT1表的起始地址的為0x4800如圖4-3所示FAT2表的起始地址為0x48000x78C00 0x7D400如圖4-4所示根目錄區(qū)的起始地址為0x7D4000x78C00 0xF6000如圖4-5所

34、示圖4-3 FAT1的起始地址圖4-4 FAT2的起始地址圖4-5 根目錄的起始地址從SD卡中讀取數(shù)據(jù)需要給出數(shù)據(jù)的地址而且每次讀取都是一個整扇區(qū)512個字節(jié)找出這些地址后可以很方便的找到數(shù)據(jù)由此可見讀取0扇區(qū)的內(nèi)容我們就知道FAT文件系統(tǒng)的重要參數(shù)了現(xiàn)在分析下根目錄區(qū)的內(nèi)容根據(jù)前面得到的根目錄地址0xF6000通過軟件查看它的內(nèi)容如圖4-6所示這里使用的是FAT32短文件目錄項每32個字節(jié)表示一個文件文件夾也是具體含義分別如下5A 53 44 4C 20 20 20 20驅(qū)動器的名稱8個字節(jié)圖4-6 根目錄中的數(shù)據(jù)54 45 53 54 20 20 20 20 偏移地址20H長度8 文件名T

35、EST 空缺部分是空格 54 58 54 偏移地址28H長度3 文件類型為ASCII字符表示20 偏移地址2BH長度1 文件屬性00000000 讀寫 00000001 只讀 00000010 隱藏 00000100 系統(tǒng) 00001000 卷標(biāo) 00010000 子目錄 00100000 歸檔 58 39 偏移地址30H長度2 文件創(chuàng)建時間58 39 偏移地址32H長度2 文件最后訪問日期03 00 偏移地址3AH長度2 起始簇的簇號為0377 2D 00 00 偏移地址3CH長度4 文件長度2D77就是11639字節(jié) 從文件的大小可以計算出需要占用多少個簇根據(jù)前面的數(shù)據(jù)每個簇放8個扇區(qū)每個

36、扇區(qū)512個字節(jié)那么一個簇的空間就是4096字節(jié)了即4KB那么11639字節(jié)需要3個簇這三個簇的開始的地址就可以計算出來了通過起始簇號計算得到起始簇的地址0xF6000根目錄區(qū)地址03-2080x200 0xF7000第一個簇開始地址這里03減去的02的意思是因為簇號都是從2開始的第二個簇號存放在0x48000304因為四個字節(jié)存一個簇號 0x480C中通過圖4-7可知0x480C里面的內(nèi)容是04 00 00 00即第二簇號為04此時第二個簇的地址0xF600004-2080x200 0xF8000依次查看FAT1表可知第三個簇號為05地址0xF600005-2080x200 0xF9000繼

37、續(xù)看看下一個簇號內(nèi)容為0x0FFFFFFF說明文件放置結(jié)束圖4-7 FAT1表中的內(nèi)容通過以上分析可以得到該文件數(shù)據(jù)存放的起始地址了0xF7000第一個簇開始地址、0xF8000第二個簇開始地址、0xF9000第三個簇開始地址他們在文件系統(tǒng)中存儲的數(shù)據(jù)分別如圖圖4-8、圖4-9、圖4-10所示由此就可以獲得該文件的數(shù)據(jù)了圖4-8 簇中的數(shù)據(jù)1圖4-9 簇中的數(shù)據(jù)2圖4-10 簇中的數(shù)據(jù)35 系統(tǒng)軟件設(shè)計51 STM32程序調(diào)試511 STM32啟動簡析要想較清楚的了解STM32的啟動則必然得對STM32庫有初步的認(rèn)知STM32庫是有ST公司針對STM32提供的函數(shù)接口即APIApplicati

38、on Program Interface開發(fā)者可調(diào)用這些函數(shù)接口來配置STM32的寄存器使使用者得于脫離最底層的寄存器操作有開發(fā)快速易于閱讀維護(hù)成本低等優(yōu)點實際上庫是架設(shè)在寄存器與用戶驅(qū)動層之間的代碼向下處理與寄存器直接相關(guān)的配置向上為用戶提供配置寄存器的接口庫開發(fā)配置與直接配置寄存器方式區(qū)別如圖5-1所示對于STM32因為外設(shè)資源豐富帶來的必然是寄存器的數(shù)量和復(fù)雜度的增加這是如果直接配置則開發(fā)速度慢程序可讀性差這兩個缺陷直接影響了用戶使用效率而庫開發(fā)方式則正好彌補(bǔ)了這兩個缺陷相對于庫開發(fā)的方式直接配置方式產(chǎn)生的代碼會相對減少但因為STM32有充足的資源權(quán)衡庫開發(fā)的優(yōu)勢與不足本次設(shè)計采用庫開發(fā)

39、方式實現(xiàn)寄存器的配置圖5-1 驅(qū)動方式STM32采用的是Cortex-M3內(nèi)核內(nèi)核是整個微控制器的CPU該內(nèi)核是ARM公司設(shè)計的一個處理器體系結(jié)構(gòu)但ARM公司不生產(chǎn)芯片只做技術(shù)授權(quán)使之產(chǎn)生不同商家的外圍硬件差異性為了解決不同芯片廠商生產(chǎn)的Cortex微控制器軟件的兼容性問題ARM與芯片廠商建立了CMSIS標(biāo)準(zhǔn)CMSIS標(biāo)準(zhǔn)中主要的為CMSIS核心層它包括內(nèi)核函數(shù)層其中包括用于訪問內(nèi)核寄存器的名稱地址定義主要有ARM公司提供設(shè)備外設(shè)訪問層提供了片上的核外外設(shè)的地址和中斷定義主要由芯片生產(chǎn)商提供課件CMSIS層位于硬件層和操作系統(tǒng)或用戶之間可以為接口外設(shè)實時操作系統(tǒng)提供簡單的處理器軟件接口屏蔽了硬

40、件差異對軟件的移植產(chǎn)生極大地好處STM32的庫就是按照CMSIS的標(biāo)準(zhǔn)建立STM32的30版本庫可以從官網(wǎng)獲得解壓后找到6>HTML文件和Library文件HLML文件時告訴我們ST公司已經(jīng)為你寫好了每個外設(shè)的驅(qū)動Library文件下是驅(qū)動庫的源代碼和啟動文件使用時將Library文件下的庫函數(shù)文件添加到工程中這樣就基本完成了寄存器的配置相關(guān)函數(shù)文件功能如下core_cm3c文件該文件可用于屏蔽不同編譯器的差異但最重要的時該文件中包含了stdinh這個頭文件它是獨立于處理器之外的主要作用是提供一些新類型的定義system_stm32f10xc文件該文件是ST公司提供的遵守CMSIS標(biāo)準(zhǔn)功

41、能是設(shè)置系統(tǒng)時鐘和總線時鐘通過M3核的核內(nèi)寄存器來對8MHz的時鐘進(jìn)行倍頻 分頻或者使用芯片內(nèi)部的時鐘所有的外設(shè)都是與時鐘的頻率有關(guān)所以這個文件的時鐘配置是很關(guān)鍵的System_stm32f10xc文件在實現(xiàn)系統(tǒng)時鐘時要用到PLL這就需要操作寄存器寄存器都是通過存儲器映射的方式來訪問的因此該文件包含stm32f10xh這個頭文件stm32f10xh文件這個文件非常重要是一個非常底層的文件所有處理器廠商都會對內(nèi)存的操作封裝成一個宏即我們通常說的寄存器并且把這些實現(xiàn)封裝成一個系統(tǒng)文件包含在相應(yīng)的開發(fā)環(huán)境中這樣在應(yīng)用程序時只需將這個頭文件包含進(jìn)來stm32f10x_pppc和stm32f10x_pp

42、ph文件這是ST公司針對每個STM32外設(shè)而編寫的庫函數(shù)文件屬于CMSIS的設(shè)備外設(shè)函數(shù)其中ppp表示外設(shè)名稱startup_stm32f10x_hds上電后微控制器無法從硬件上定位main函數(shù)的入口地址需要一個啟動文件來處理Library文件夾下幾種不同的啟動文件本次使用的STM32F103VET6有64KRAM512KROM屬于高密度產(chǎn)品所以選擇該文件啟動文件的作用便是負(fù)責(zé)執(zhí)行微控制器從復(fù)位到開始執(zhí)行main函數(shù)中間這段時間稱為啟動過程所必須進(jìn)行的工作總的來說啟動文件的作用是初始化堆棧指針SP初始化程序計數(shù)器指針PC設(shè)置堆棧的大小設(shè)置異常向量表的入口地址配置外部SRAM作為數(shù)據(jù)寄存器設(shè)置C

43、庫的分支入口_main在庫目錄ProjectSTM32F10x_Stdperiph_Template目錄下存放了官方的一個庫工程模板我們在庫建立一個完整的工程時還需要添加這個目錄下的stm32f10x_itcstm32f10x_ithstm32f10x_confh這三個文件stm32f10x_itc文件是專門用來編寫中斷服務(wù)函數(shù)的在修改前這個文件已經(jīng)定義了一些系統(tǒng)異常的接口其它普通中斷服務(wù)函數(shù)有我們自己添加而這些中斷服務(wù)函數(shù)的接口可以在啟動文件中找到stm32f10x_confh文件這個文件包含了stm32f10xh是用來配置使用了什么外設(shè)的頭文件用這個頭文件可以很方便的增加或刪減上面driv

44、e目錄下的外設(shè)驅(qū)動函數(shù)庫如gpiorccspiusart的外設(shè)庫函數(shù)512 STM32程序測試當(dāng)建立好工程并添加了上述函數(shù)后接下來的便是測試芯片引腳功能本次設(shè)計通過配置GPIO寄存器來控制LED燈的亮滅以驗證STM32芯片驅(qū)動程序的正確與否想要控制LED燈當(dāng)然是通過控制STM32芯片的IO引腳電平的高低來實現(xiàn)在STM32芯片上IO引腳可以被軟件設(shè)置成各種不同的功能如輸入或輸出所以被稱為GPIO而GPIO引腳又分被為GPIOAGPIOBGPIOE五組每組端口分為0至15共16個不同引腳因此控制LED的步驟如下GPIO端口引腳多 選定需要控制的特定引腳 GPIO功能如此豐富 配置需要特定的功能控制

45、LED的亮和滅 設(shè)置GPIO輸出電壓的高低要控制GPIO口就要涉及到控制相關(guān)的寄存器通過查找STM32手冊得GPIO相關(guān)配置器描述如圖5-2圖中的7個寄存器可分為以下四類配置寄存器選定GPIO的特定功能最基本的如選擇作為輸入或者輸出接口數(shù)據(jù)寄存器保存GPIO的輸入電平或?qū)⒁敵鲭娖綖榭刂萍拇嫫髟O(shè)置某引腳的數(shù)據(jù)位1或0控制輸出電平鎖定寄存器設(shè)置某鎖定引腳后就不能修改其配置圖5-2 GPIO寄存器描述關(guān)于寄存器名稱上標(biāo)號x的意義如GPIOx_CRLGPIOx_CRH這個x的取值可以是A到E表示這些寄存器也是跟GPIO一樣也是分組的即對于GPIOA和GPIOB他們有一組互不相干的寄存器如控制GPIO

46、A的寄存器名為GPIOA_CRLGPIOA_CRH而控制GPIOB則是不同的被命名為GPIOB_CRLGPIOB_CRH實現(xiàn)控制LED燈亮滅的思路框圖如圖5-3所示圖5-3 控制LED燈框圖對于GPIO端口沒個端口有16個引腳每個引腳的模式有寄存器的四個位控制每四位又分為兩位控制引腳配置CNFy10兩位控制引腳的模式及最高速度MODEy10其中y表示第y個引腳配置GPIO引腳模式的一共有兩個寄存器CRH是高寄存器用來配置高8位引腳pin8-pin15如果要配置pin0-pin7引腳則要在CRL中進(jìn)行配置513 STM32時鐘系統(tǒng)STM32芯片為了實現(xiàn)低功耗設(shè)計了一個功能完善但卻非常復(fù)雜的時鐘系

47、統(tǒng)普通的MCU一般只要配置好GPIO的寄存器就可以使用了但STM32還有一個步驟就是開啟外設(shè)時鐘STM32整體時間系統(tǒng)如圖5-4所示圖5-4 STM32時鐘樹時鐘源這個圖說明了STM32時鐘走向從圖的左邊開始從時鐘源一步步分配到外設(shè)時鐘從時鐘頻率來說分為高速時鐘和低速時鐘高速時鐘是提供給芯片主體的主時鐘而低速時鐘只是提供給芯片中的RTC實時時鐘及獨立看門狗使用從芯片角度來說時鐘源分為內(nèi)部時鐘和外部時鐘源內(nèi)部時鐘是芯片內(nèi)部RC振蕩器產(chǎn)生的啟振較快所以時鐘在芯片剛上電的時候默認(rèn)使用內(nèi)部高速時鐘而外部時鐘信號是由外部的晶振輸入的在精度和穩(wěn)定性上都有很大優(yōu)勢所以上電之后再經(jīng)由軟件配置轉(zhuǎn)而采用外部時鐘信

48、號所以STM32具有四個時鐘源高速外部時鐘HSE以外部晶振做時鐘源晶振頻率范圍可取4-16MHz本次使用8MHz的晶振高速內(nèi)部時鐘HSI有內(nèi)部RC振蕩器產(chǎn)生頻率為8MHz但不穩(wěn)定低速外部時鐘LSE一外部晶振做時鐘源主要提供給實時時鐘模塊一般采用32768KHz低速內(nèi)部時鐘LSI有內(nèi)部RC振蕩器產(chǎn)生也主要提供給實時模塊頻率大約為40KHz對于高速外部時鐘其時鐘流程如下從左端的OSC_INOSC_OUT開始這兩個引腳分別接到外部晶振的兩端8MHz的時鐘遇到了第一個分頻器PLLXTPRE在這個寄存器中可以通過寄存器配置選擇它的輸出時鐘可以是對輸入時鐘的二分頻或不分頻本次設(shè)計選擇部分頻所以經(jīng)過PLLX

49、TPRE后還是8MHz的時鐘8MHz時鐘遇到開關(guān)PLLSRC我們可以選擇其輸出輸出為外部高速時鐘HSE或是內(nèi)部高速時鐘HSI這里選擇輸出為HSE接著遇到鎖相環(huán)PLL具有倍頻作用這里可以輸入倍頻因子倍頻因子設(shè)定為9倍頻即經(jīng)過PLL之后時鐘從原來的8MHZ的HSE變?yōu)?2MHz的PLLCLK緊接著遇到一個開關(guān)SW經(jīng)過這個開關(guān)之后就是STM32的系統(tǒng)時鐘SYSCLK了通過這個開關(guān)可以選擇HSIPLLCLK或者HSE作為SYSCLK本次設(shè)計選擇PLLCLK作為SYSCLK即72MHzPLLCLK在輸入到SW之前還流向了USB預(yù)分頻器這個預(yù)分頻器的輸出為USB的外設(shè)時鐘USBCLK匯到SYSCLKSYS

50、CLK進(jìn)過AHB預(yù)分頻器分頻后再輸入到其它外設(shè)如輸出到稱為HCLKFCLK的時鐘還直接輸出到SDIO外設(shè)作為SDIOCLK時鐘存儲控制器FSMC的FSMCCLK時鐘GPIO外設(shè)是掛載在APB2總線上的APB2時鐘是APB2預(yù)分頻器的輸出而APB2預(yù)分頻器的時鐘來源于AHB預(yù)分頻器后的時鐘均設(shè)置為不分頻所以GPIO外設(shè)時鐘也就為72MHzHCLKFCLKPCLK1PCLK2時鐘來源及作用如下從時鐘樹的分析經(jīng)過一系列的倍頻分頻后得到幾個與設(shè)計密切相關(guān)的的時鐘SYSCLK系統(tǒng)時鐘STM32大部分器件的來源主要有AHB預(yù)分頻器分配到各個部件HCLK由AHB預(yù)分頻器直接輸出得到他是高速總線AHB的時鐘信

51、號提供給存儲器DMA及cortex內(nèi)核是cortex內(nèi)核運行的時鐘cpu主頻就是這個信號它的大小與STM32運算速度數(shù)據(jù)存取速度密切相關(guān)FCLK同樣由AHB預(yù)分頻器輸出得到是內(nèi)核的自由運行時鐘自由表現(xiàn)在它不來自時鐘HCLK因此在HCLK時鐘停止時它也急需工作它的存在可以保證在處理器休眠時也能夠采樣到中斷和跟蹤休眠時間它與HCLK互相同步PCLK1外設(shè)時鐘由APB1預(yù)分頻器輸出得到最大頻率為36MHz提供給掛載在APB1總線上的外設(shè)PCLK2外設(shè)時鐘由APB2預(yù)分頻器輸出得到最大頻率為72MHz提供給掛載在APB2總線上的外設(shè)為什么STM32的時鐘系統(tǒng)如此復(fù)雜有倍頻分頻及一系列的外設(shè)時鐘的開關(guān)需

52、要倍頻是考慮到電磁兼容性如果外部直接提供一個72MHz的晶振太高的振蕩頻率可能會給制作電路板帶來一定的難度分頻是因為STM32既有高速外設(shè)又有低速外設(shè)各種外設(shè)的工作頻率不盡相同如同pc機(jī)上的南北橋把高速設(shè)備和低速設(shè)備分開來管理最后每個外設(shè)配備上外設(shè)時鐘的開關(guān)當(dāng)不使用某個外設(shè)時可以把 特定的外設(shè)時鐘關(guān)閉從而降低STM32的整體功耗52 TFT顯示驅(qū)動本次設(shè)計的LCD觸摸屏的驅(qū)動包含基于FSMC接口的16位TFT接口初始化LCD的控制器XPT2046的初始化屏幕坐標(biāo)的建立窗口的建立指定坐標(biāo)畫點及其顏色的設(shè)置ASCII字符的寫入字符顏色的控制控制器寄存器的讀取顯示字符串其流程圖如5-55-6所示圖5

53、-5基于FSMC接口的16位TFT接口初始化 圖5-6 LCD的控制器驅(qū)動流程由于顯示設(shè)備LCD具有觸摸控制功能所以本次課題設(shè)計采用觸摸控制以實現(xiàn)設(shè)計課題的任務(wù)功能即實現(xiàn)歌曲播放的快進(jìn)和快退功能其軟件控制如圖5-7所示圖5-7 觸摸按鍵功能流程圖觸摸屏的坐標(biāo)原點標(biāo)度和LCD的坐標(biāo)原點標(biāo)度不一樣且電阻式觸摸屏的坐標(biāo)原點通常不在有效點觸區(qū)內(nèi)因此必須進(jìn)行坐標(biāo)變換本設(shè)計采用四點定位法其方法如下假設(shè)ABCD分別為觸摸屏對應(yīng)LCD四個頂點的坐標(biāo)點分別觸擊這四點得到四組坐標(biāo)值根據(jù)式5-1計算出觸摸屏中心點坐標(biāo) 5-1設(shè) 則可得觸點坐標(biāo)公式 5-2式5-2中x和y分別為觸點在x工作面和y工作面上產(chǎn)生的電壓數(shù)字

54、量的測量值可通過采樣得到 xy 反映了觸點在觸摸屏上的坐標(biāo)W和H分別是LCD顯示屏X軸和Y軸上的象素點總數(shù) xlcdylcd 為觸點映射到LCD顯示屏上的像素點坐標(biāo)53 SD卡讀取驅(qū)動531 SD卡總線拓?fù)浔敬卧O(shè)計將SD卡至于SD模式下進(jìn)行主從機(jī)通訊SD總線有6根通訊線和3根電源供應(yīng)線CMD命令線是雙向信號線主機(jī)和卡通過push pull模式工作CLK時鐘是從主機(jī)到卡的信號CLK通過push pull模式工作DAT03數(shù)據(jù)線是雙向信號線主機(jī)和卡通過push pull模式工作VDDVDD是SD卡的電源供應(yīng)線VSS01VSS是兩根地線其總線拓?fù)淇驁D如圖5-8所示圖5-8 總線框圖532 寄存器與協(xié)

55、議寄存器描述SD卡各寄存器如表5-2所示表5-2名稱寬帶描述CID128卡標(biāo)識號RCA16相對卡地址本地系統(tǒng)中卡的地址動態(tài)變化在主機(jī)初始化時確定CSD128卡描述數(shù)據(jù)卡操作條件相關(guān)的信息數(shù)據(jù)SCR64SD配置寄存器SD卡特定信息數(shù)據(jù)OCR32操作條件寄存器主機(jī)STM32F103系列的相關(guān)SDIO寄存器如表5-3SD總線協(xié)議SD總線通信是基于命令和數(shù)據(jù)位流方式的由一個起始位開始一個停止位結(jié)束命令命令式開始操作的標(biāo)記命令發(fā)送一個卡尋址命令或所有連接的卡廣播命令命令在CMD線上串行傳輸響應(yīng)響應(yīng)是從尋址卡發(fā)或所有連接的卡同步送給主機(jī)用來響應(yīng)接受到的命令標(biāo)記命令在CMD線上串行傳輸數(shù)據(jù)數(shù)據(jù)可以通過數(shù)據(jù)線在SD卡和主機(jī)間相互傳送卡尋址通過會話地址方式實現(xiàn)地址在初始化的時候非配給卡SD卡總線上的基本操作時commandresponse表5-3寄存器名描述SDICONSDI控制寄存器SDIPRESDI波特率分頻寄存器SDICCONSDI命令控制寄存器SDICSTASDI命令狀態(tài)寄存器SDIDTIMERSDI數(shù)據(jù)忙時鐘寄存器SDIDCONSDI數(shù)據(jù)控制寄存器SDIDCNTSDI數(shù)據(jù)剩余計數(shù)器寄存器SDIDCONSDI數(shù)據(jù)狀態(tài)寄存器SDIDATSDI數(shù)據(jù)寄存器SDIMSKSDI中斷屏蔽寄存器數(shù)據(jù)傳送采用快方式數(shù)據(jù)塊后接CRC校驗位操作包

溫馨提示

  • 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

提交評論