




已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
STM32單片機(jī)課程設(shè)計(jì) 題 目: 基于的大容量音樂播放器設(shè)計(jì) 指導(dǎo)教師: 曹利鋼 所在學(xué)院: 機(jī)械電子工程 專業(yè)班級(jí): 14自動(dòng)化2班 姓名: 張志浩 學(xué)號(hào): 114040200227 聯(lián)系電話:實(shí)踐時(shí)間: 2017年5月30日 目錄一 引言 .1二 系統(tǒng)整體概述設(shè)計(jì).1三 硬件設(shè)計(jì)3.1控制器.23.2電源.33.3 PCM1770音頻播放模塊.43.4 SD卡數(shù)據(jù)存儲(chǔ)模塊.43.5 W25Q32數(shù)據(jù)存儲(chǔ)模塊和OLED顯示模塊.43.6按鍵控制.5四 軟件設(shè)計(jì)4.1 軟件.64.2軟件設(shè)計(jì)流程圖.7五 程序設(shè)計(jì).8六 課程小結(jié).12摘要:采用具有內(nèi)核的等芯片進(jìn)行相關(guān)的硬件設(shè)計(jì),使用進(jìn)行固件程序和驅(qū)動(dòng)程序的開發(fā),設(shè)計(jì)了一種基于的協(xié)議的讀卡器該讀卡器支持符合規(guī)范的接觸式卡。實(shí)驗(yàn)表明,該設(shè)計(jì)可以提高智能卡系統(tǒng)的通信速度和中斷響應(yīng)速度。關(guān)鍵詞:;協(xié)議;1. 引 言 隨著社會(huì)的快速發(fā)展,現(xiàn)今社會(huì)生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,音樂成了我們生活工作中的一個(gè)重要的部分。位次我設(shè)計(jì)了一個(gè)基于的大容量音樂播放器。二 系統(tǒng)總體設(shè)計(jì)概述 基于PCM1770芯片播放器三 硬件設(shè)計(jì) 3.1控制器15 STM32F105互聯(lián)型系列微處理器使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核。工作最高頻率為72MHZ,內(nèi)置256K字節(jié)的閃存和64K字節(jié)的SRAM。豐富的I/O端口和聯(lián)接到兩條APB總線的外設(shè)。包含標(biāo)準(zhǔn)的通訊接口(2個(gè)IIC接口,3個(gè)SPI接口,2個(gè)IIS接口,1個(gè)USB OTG 全速接口,5個(gè)USART接口和2個(gè)CAN接口),2個(gè)12位的ADC和4個(gè)通用的16位定時(shí)器。它具有高性能、低功耗、低電壓等特性,同時(shí)還具有高集成度和易于開發(fā)的特點(diǎn),使該系列產(chǎn)品成為小型項(xiàng)目和作為完整平臺(tái)的理想選擇。STM32的使用需要一個(gè)最小系統(tǒng),包括晶振電路,復(fù)位電路。1)晶振電路的設(shè)計(jì):晶振電路用于向處理器提供工作時(shí)鐘。本系統(tǒng)使用72MHZ無源晶振作為系統(tǒng)的主振蕩器。晶振的負(fù)載電容應(yīng)當(dāng)按照要求選取, 電容不正確可能導(dǎo)致晶振起振緩慢甚至不起振,這將影響整個(gè)系統(tǒng)的穩(wěn)定性。2)復(fù)位電路的設(shè)計(jì):采用簡單的“RC+按鍵”復(fù)位形式,該復(fù)位電路可以實(shí)現(xiàn)上電自動(dòng)復(fù)位和手動(dòng)按鍵復(fù)位 。上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,按鍵復(fù)位是通過復(fù)位端經(jīng)電阻與電源接通而實(shí)現(xiàn)的。 3.2電源 本系統(tǒng)所需要的硬件輸入電源為3.3V, 采用AS1 l173.3穩(wěn)壓芯片來提供,輸入電壓范圍是4.75V-10V,輸出電壓3.3V。在使用過程中用5V電源供電即可。 3.3 PCM1770音頻播放模塊 DAC芯片選擇德州儀器的PCM1770PWR芯片提供音頻播放功能,它是具有耳機(jī)放大器的 24 位低功耗立體聲音頻 DAC(解碼器)??芍С止I(yè)標(biāo)準(zhǔn)音頻數(shù)據(jù)格式,包括標(biāo)準(zhǔn)模式、I2S飛利浦標(biāo)準(zhǔn)、MSB對(duì)齊標(biāo)準(zhǔn)??芍苯域?qū)動(dòng)耳機(jī),具有軟件控制音量大小,芯片模式和模擬語音合成等功能。PCM1770的I2S共4路信號(hào),I2S_SD 串行數(shù)據(jù)用來接收2路左右聲道時(shí)分復(fù)用通道的數(shù)據(jù)、I2S_WS 字選(左右聲道選擇)從模式下作為輸入、I2S_CK 串行位時(shí)鐘 從模式下作為輸入、I2S_MCK 主時(shí)鐘 PCM1770工作需要的時(shí)鐘。PCM1770的SPI共三路信號(hào),SPI2_CS 接口片選、SPI2_SD 數(shù)據(jù)接收、SPI2_CLK 時(shí)鐘信號(hào)。本系統(tǒng)中處理器通過I2S接口(處理器帶有I2S接口)傳送音頻信號(hào)到PCM1770,由它進(jìn)行解碼輸出到音頻座。處理器通過SPI接口訪問PCM1770的寄存器,實(shí)現(xiàn)配置和控制功能。如圖1所示。 3.4 SD卡數(shù)據(jù)存儲(chǔ)模塊SD卡(Secure Digital Memory Card)安全數(shù)碼卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它被廣泛地于便攜式裝置上使用。SD卡具有大容量、高性能、安全等多種特點(diǎn)的多功能存儲(chǔ)卡 。SD卡支持兩種接口訪問模式,SDIO模式和SPI模式。本系統(tǒng)選擇kingston 8G的SD卡,采用SPI模式通訊。3.5 W25Q32數(shù)據(jù)存儲(chǔ)模塊和OLED顯示模塊 本系統(tǒng)選擇型號(hào)為CT242864PMY的OLED屏以及16Mbit的串行FLASH存儲(chǔ)芯片W25Q32,OLED(Organic Light Emitting Display)有機(jī)發(fā)光二極管顯示面板,是一門相當(dāng)年輕的顯示技術(shù)。它利用有機(jī)半導(dǎo)體材料和發(fā)光材料在電流的驅(qū)動(dòng)下產(chǎn)生發(fā)光來實(shí)現(xiàn)顯示。與LCD相比有很多優(yōu)點(diǎn),超輕、超薄、高亮度、大視角、像素自身發(fā)光、低功耗、高清晰等等。CT242864PMY與一般LCD接口相似,包括數(shù)控選擇D/C、讀寫選擇W/R、復(fù)位和8個(gè)并行數(shù)據(jù)傳輸位。W25X系列FLASH存儲(chǔ)器可以為用戶提供存儲(chǔ)解決方案,具有PCB板占用空間少,引腳數(shù)量少,功耗低等特點(diǎn)。與不同串行FLSH相比,使用更靈活,性能更出色。它非常適合做代碼下載應(yīng)例如存儲(chǔ)聲音,文本和數(shù)據(jù)。工作電壓在2.7V-3.6V。在這里選擇W25Q32型號(hào),存儲(chǔ)容量為4M,存儲(chǔ)漢字和字母,供OLED顯示屏使用。如圖3所示。3.6按鍵控制本系統(tǒng)中選擇普通三個(gè)四角按鍵作為控制輸入端,可以控制播放、暫停、音樂選擇、聲音調(diào)節(jié)等。四 軟件設(shè)計(jì) RealView MDK開發(fā)套件源自德國Keil公司,是ARM公司目前最新推出的針對(duì)各種嵌入式處理器的軟件開發(fā)工具, 支持ARM7、ARM9和最新的Cortex-M3核處理器.本次設(shè)計(jì)的軟件平臺(tái)是建立在MDK Vision4之上的。系統(tǒng)軟件設(shè)計(jì)包括應(yīng)用層的主程序和驅(qū)動(dòng)層的PCM1770音頻、W25Q32漢字存取、OLED顯示、SD卡和FatFS文件系統(tǒng)、按鍵模塊。 4.1 軟件1)為了能夠?qū)崟r(shí)在OLED屏幕上顯示所播放音樂的名稱,必須將數(shù)字、字母、漢字以及圖形符號(hào)所對(duì)應(yīng)的的OLED顯示碼(16*8或者16*16點(diǎn)陣)存于W25Q32。這里是按照國標(biāo)GB2312-80中規(guī)定的區(qū)位碼的順序存儲(chǔ)。由于處理器的FLASH為256K,要存儲(chǔ)區(qū)位碼中所有漢字圖形可以分兩次燒錄存儲(chǔ)。在每次使用時(shí)根據(jù)機(jī)內(nèi)碼與區(qū)位碼的對(duì)應(yīng)規(guī)則調(diào)用。第一步:將區(qū)位碼轉(zhuǎn)換為國標(biāo)碼。兩區(qū)位碼改寫成十六進(jìn)制前兩位是區(qū)碼,后兩位是位碼。將十六進(jìn)制數(shù)加2020H得到的就是國標(biāo)碼。第二步:國標(biāo)碼轉(zhuǎn)換成機(jī)內(nèi)碼。將所得到的國標(biāo)碼加8080H,就可得機(jī)內(nèi)碼。2)FatFS是一個(gè)通用的文件系統(tǒng)模塊,用于在小型嵌入式系統(tǒng)中實(shí)現(xiàn)FAT文件系統(tǒng)。 FatFs 的編寫遵循ANSI C,因此不依賴于硬件平臺(tái)。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, ARM 等等。本系統(tǒng)將通過FatFS文件系統(tǒng)訪問SD卡文件。FatFs模塊為應(yīng)用程序提供了部分函數(shù),在此基礎(chǔ)上再編寫遍歷文件等函數(shù)即可滿足應(yīng)用。3)處理器STM32F105的I2S接口為主模式和16bitMSB 對(duì)齊標(biāo)準(zhǔn),PCM1770為從設(shè)備模式和MSB對(duì)齊標(biāo)準(zhǔn)。SPI2接口(訪問PCM1770寄存器接口)為主模式和數(shù)據(jù)傳輸從MSB位開始。4.2軟件設(shè)計(jì)流程圖 處理器上電后先配置各模塊的GPIO接口并初始化,通過FatFS文件系統(tǒng)遍歷SD卡中音頻文件并將文件名存儲(chǔ)。從W25Q32中讀取上次停止時(shí)正在播放的音樂文件顯示在OLED屏幕,準(zhǔn)備播放。在主程序大循環(huán)中有兩個(gè)工作,第一判斷正在讀取的文件是否讀取完成,第二判斷是否有按鍵按下。處理器采用中斷的方式通過I2S接口播放音頻文件。五 程序設(shè)計(jì) 1、初始化的一般流程如下: (1)硬復(fù)位,xReset = 0; (2) 延時(shí),xDCS、xCS、xReset置1; (3)等待DREQ為高; (4)軟件復(fù)位:SPI_MODE = 0x0804;(5)等待DREQ為高(軟件復(fù)位結(jié)束); (6)設(shè)置VS1003的采樣率:SPI_AUDATA = 0xBB81,采樣率,立體聲; (7)設(shè)置重音:SPI_BASS = 0x0055; (8)設(shè)置音量:SCI_VOL = 0x2020; (9)發(fā)送4個(gè)字節(jié)無效數(shù)據(jù),用以啟動(dòng)SPI發(fā)送;2、 播放MP3的一般流程如下: (1)打開一個(gè)指定的MP3文件; (2)發(fā)32個(gè)字節(jié)的數(shù)據(jù)到VS1003; (3)檢測(cè)DREQ,當(dāng)DREQ為高時(shí)發(fā)下一個(gè)32字節(jié)的數(shù)據(jù); (4)是否發(fā)完32個(gè)字節(jié),否,則回到第3步; (5)是否發(fā)完打開的MP3文件,否,則回到第2步; (6)關(guān)閉打開的MP3的文件;讀寫函數(shù)如下: u16 Vs1003_REG_Read(u8 address);/讀寄存器 void Vs1003_DATA_Write(unsigned char * buf);/寫數(shù)據(jù) void Vs1003_CMD_Write(u8 address,u16 data);/寫命令 void Vs1003_Init(void); /初始化VS1003 void Mp3Reset(void); /硬復(fù)位 void Vs1003SoftReset(void); /軟復(fù)位 void set1003(void); /設(shè)置VS1003的音量,播放模式等 void VsRamTest(void); /RAM測(cè)試 void VsSineTest(void); /正弦測(cè)試 u16 GetDecodeTime(void); /得到解碼時(shí)間 u16 GetHeadInfo(void); /得到比特率 void ResetDecodeTime(void);/重設(shè)解碼時(shí)間 void LoadPatch(void); /加載頻譜分析代碼 void GetSpec(u8 *p); /得到分析數(shù)據(jù)TFT顯示屏驅(qū)動(dòng)程序驅(qū)動(dòng)TFT顯示屏實(shí)際上就是對(duì)ILI9320驅(qū)動(dòng)IC的操作。對(duì)ILI9320的初始化操作如下:(1)向ILI9320控制器寫入0x00.(2)如果返回的數(shù)據(jù)為不是0x9320,則驅(qū)動(dòng)IC不是ILI9320,停止初始化。(3)如果返回的數(shù)據(jù)為0x9320,則向相應(yīng)的寄存器寫入默認(rèn)的數(shù)據(jù),啟動(dòng)驅(qū)動(dòng)IC。(4)拉低片選信號(hào)CS,再寫R22h寄存器,接著寫入要寫的數(shù)據(jù)。(5)寫結(jié)束后再將CS拉高。TFT顯示屏的讀寫函數(shù)如下:externvoidTFT_Write_Start(void);/寫開始externvoidTFT_Write_End(void);/寫結(jié)束externvoidTFT_SetGRAMHVA(u16x0,u16y0);/設(shè)置GRAM的最初地址externvoidTFT_SetGRAMArea(u16HSA,u16HEA,u16VSA,u16VEA);/設(shè)置一個(gè)GRAM顯示區(qū)域externvoidTFT_init(void);/TFT顯示屏初始化/externvoidTFT_Test_Square(u16x0,u16x1,u16y0,u16y1,u16Color);externvoidTFT_Clear(u16x0,u16x1,u16y0,u16y1,u16Color);/清屏函數(shù)externvoidDrawOnePixel(u16x,u16y,u16Color);/畫點(diǎn)函數(shù)externvoidWrite_Asc8x16E(u16x,u16y,u16TextColor,u16BackColor,u16W_Char);/8*16英文字符externvoidWrite_Asc12x24E(u16x,u16y,u16TextColor,u16BackColor,u16W_Char);externvoidWrite_Asc12x24E_String(u16x,u16y,u16TextColor,u16BackColor,u8*W_String);externvoidWrite_Asc20x40E(u16x,u16y,u16TextColor,u16BackColor,u16W_Char);externvoidWrite_GB16(u16x,u16y,u16TextColor,u16BackColor,u8*W_Char);/16*16中文字符externvoidWrite_GB_16_And_Asc8x16E(u16x,u16y,u16TextColor,u16BackColor,u8*W_String);externvoidWrite_GB_24_And_Asc12x24E(u16x,u16y,u16TextColor,u16BackColor,u8*W_String);externvoidDisplay_Picture(u16x,u16y,u16Width,u16Height,u16*Picture);/顯示圖片SD卡驅(qū)動(dòng)程序1、驅(qū)動(dòng)模選擇SD卡上電時(shí),如果CS接地,SD將進(jìn)入SPI模式,CS接高電平,將進(jìn)入SDBUS模式。在SDBUS模式時(shí),發(fā)送CMDOSD卡不會(huì)回應(yīng),在SPI模式時(shí),發(fā)送CMD0,SD卡能回應(yīng)R1信息。2、初始化SD卡進(jìn)入SDBUS模式后,發(fā)送CMDO復(fù)位SD卡。由于處于SDBUS模式,SD卡此時(shí)不會(huì)回復(fù)信息。發(fā)送命令的時(shí)候需要注意SD卡命令狀態(tài),不同的狀態(tài)只能響應(yīng)待定的命令,下面為初始化命令發(fā)送流程:(1)CMDO復(fù)位卡。(2)CDM55用戶命令。(3)CMD41SD卡工作電壓設(shè)置命令。(4)CMD2從默認(rèn)地址獲取SD卡ID。(5)CMD3獲取一個(gè)新地址。(6)CMD9從新地址讀取SD卡ID。(7)CMD7選擇新地址的SD卡為有效卡。(8)CMD55用戶命令。(9)CMD6設(shè)置數(shù)據(jù)位寬。(10)CMD16設(shè)置BLOCK長度。(11)CMD13讀取當(dāng)前SD卡狀態(tài)。(12)初始化完成。3、發(fā)送SD卡支持的操作命令不同的SD卡所支持的命令稍有不同,但基本命令都是支持的。詳細(xì)支持哪類命令要從SD卡的ID中獲得。這一步主要為讀,寫,擦這三個(gè)功能。讀CMD17,寫CMD24,擦CMD38。4、退出SD卡操作如果總線上掛有多個(gè)SD卡,就需要用CMD7命令退出當(dāng)前SD卡,從面選擇其他的SD卡操作。CMD7命令為選擇卡或取消卡,在初始化的時(shí)候發(fā)送CMD7命令,SD卡將進(jìn)入數(shù)據(jù)發(fā)送模式,在數(shù)據(jù)模式里發(fā)送CMD7則退出當(dāng)前卡的操作。需要注意的是,在數(shù)據(jù)模式里不同的狀態(tài)只支持特定命令。SD卡讀寫函數(shù)如下:u8SPI_ReadWriteByte(u8TxData);/SPI總線讀寫一個(gè)字節(jié)u8SD_WaitReady(void);/等待SD卡就緒u8SD_SendCommand(u8cmd,u32arg,u8crc);/SD卡發(fā)送一個(gè)命令u8SD_SendCommand_NoDeassert(u8cmd,u32arg,u8crc);u8SD_Init(void);/SD卡初始化u8SD_ReceiveData(u8*data,u16len,u8release);/SD卡讀數(shù)據(jù)u8SD_GetCID(u8*cid_data);/讀SD卡CIDu8SD_GetCSD(u8*csd_data);/讀SD卡CSDu32SD_GetCapacity(void);/取SD卡容量u8SD_ReadSingleBlock(u32sector,u8*buffer);/讀一個(gè)sectoru8SD_WriteSingleBlock(u32sector,constu8*buffer);/寫一個(gè)se
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 營地項(xiàng)目合作協(xié)議
- 醫(yī)療器械行業(yè)創(chuàng)新與市場拓展策略
- 醫(yī)療職業(yè)教育中的技術(shù)培訓(xùn)與人文關(guān)懷并重
- 醫(yī)療行業(yè)數(shù)字化轉(zhuǎn)型與電子健康記錄的推動(dòng)力
- 醫(yī)療基金在健康教育中的角色
- 智能智能家居娛樂系統(tǒng)助手企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 智能旅行體重秤企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 機(jī)場接送服務(wù)承包協(xié)議
- 網(wǎng)絡(luò)安全中介協(xié)議
- 燃料電池汽車量產(chǎn)準(zhǔn)備行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 重慶市巴蜀學(xué)校2024-2025學(xué)年九年級(jí)上學(xué)期12月月考語文試題
- 《中國名牌大學(xué)簡介》課件
- 初二英語語法歸納仁愛版單選題100道及答案解析
- 酒店防洪防汛培訓(xùn)
- 中小學(xué)校財(cái)務(wù)制度知識(shí)培訓(xùn)
- 2025年湖南省高中學(xué)業(yè)水平合格性考試數(shù)學(xué)試卷(含答案)
- 2024年江蘇泰州市第四人民醫(yī)院招聘高層次人才15人歷年管理單位遴選500模擬題附帶答案詳解
- 心安即是歸處讀書分享
- 非虛構(gòu)寫作:公眾故事與作者訪談-札記
- 建筑施工節(jié)前安全檢查表
- 媒體創(chuàng)意經(jīng)濟(jì):玩轉(zhuǎn)互聯(lián)網(wǎng)時(shí)代學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論