• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      AVR單片機(jī)的高音質(zhì)WAV播放器設(shè)計(jì)

      2017-09-03 09:22:50
      關(guān)鍵詞:音頻文件PC機(jī)播放器

      王 波

      (阿壩師范學(xué)院 電子信息與自動(dòng)化學(xué)院,汶川623000)

      AVR單片機(jī)的高音質(zhì)WAV播放器設(shè)計(jì)

      王 波

      (阿壩師范學(xué)院 電子信息與自動(dòng)化學(xué)院,汶川623000)

      以單片機(jī)為控制器,SD卡為存儲(chǔ)介質(zhì),通過FATFS文件系統(tǒng)管理SD卡,實(shí)現(xiàn)SD卡上指定目錄WAV音頻文件的播放。系統(tǒng)充分利用ATMEGA16單片機(jī)的片內(nèi)資源,利用SPI接口讀取SD卡上的數(shù)據(jù),PWM波模擬DAC輸出。為防止數(shù)據(jù)斷流,使用FIFO對(duì)緩沖區(qū)數(shù)據(jù)進(jìn)行處理,根據(jù)WAV文件的采樣率,在指定的時(shí)間送入音頻數(shù)據(jù),通過PWM接口濾波輸出。經(jīng)過測試,系統(tǒng)能流暢地播放采樣率在8 kHz~48 kHz之間的WAV音頻文件。

      ATMEGA16MCU;FATFS文件系統(tǒng);WAV;FIFO;PWM

      引 言

      隨著科技的進(jìn)步,MP3播放器不僅越來越小,存儲(chǔ)空間越來越大,而且音質(zhì)也越來越高,功能也越來越強(qiáng)大。

      MP3的全稱是MPEG Audio Layer 3,是一種高效的計(jì)算機(jī)音頻編碼方案,它以較大的壓縮比將音頻文件轉(zhuǎn)換成較小的擴(kuò)展名為.MP3的文件,基本保持原文件的音質(zhì)。MP3是 ISO/MPEG標(biāo)準(zhǔn)的一部分,ISO/MPEG標(biāo)準(zhǔn)描述了使用高性能感知編碼方案的音頻壓縮,此標(biāo)準(zhǔn)一直在不斷更新以滿足“質(zhì)高量小”的追求,現(xiàn)已形成 MPEG Layer 1、Layer 2、Layer 3三個(gè)音頻編碼解碼方案。MPEG Layer 3壓縮率可達(dá)1:10~1:12,由此可見,MP3是一種經(jīng)過壓縮的音頻格式,音質(zhì)畢竟有所變化。WAVE是錄音時(shí)用的標(biāo)準(zhǔn)的Windows文件格式,文件的擴(kuò)展名為“WAV”,數(shù)據(jù)本身的格式為PCM或壓縮型,是無損音樂格式的一種。本文所設(shè)計(jì)的WAV播放器,是一種無損的音樂播放器,在音質(zhì)上有很大的提高,可以與CD音質(zhì)媲美。

      1 硬件設(shè)計(jì)

      WAV播放器采用Atmel公司的8位AVR內(nèi)核的低功耗單片機(jī)ATMEGA16。芯片具有16 Kb的片內(nèi)FLASH、512字節(jié)的EEPROM、1 Kb的片內(nèi)SRAM,通用I/O接口32個(gè),集成了I2C接口、SPI接口、JTAG接口、UART接口及8通道的10為ADC轉(zhuǎn)換接口;具有4個(gè)PWM通道、2個(gè)8位定時(shí)器和1個(gè)16位定時(shí)器,芯片資源比較豐富,能很好地滿足系統(tǒng)的設(shè)計(jì)要求[1]。串口模塊使用南京沁恒公司的CH340作為USB轉(zhuǎn)TTL的核心器件,通過該模塊以及PC機(jī)上的超級(jí)終端,實(shí)現(xiàn)單片機(jī)與PC機(jī)的通信。電源模塊采用4節(jié)AA電池,經(jīng)過π型濾波電路,LM7805穩(wěn)壓為ATMEGA16提供5 V電壓,5 V電壓經(jīng)過AMS1117-3.3低壓差穩(wěn)壓芯片穩(wěn)壓[2],為SD卡模塊提供3.3 V電壓。MAV播放器總線設(shè)計(jì)框圖如圖1所示。

      圖1 WAV播放器總體設(shè)計(jì)框圖

      1.1 SD卡接口電路

      SD卡是在MMC卡的基礎(chǔ)上發(fā)展而來,高效的讀寫速度使得SD卡成為當(dāng)前數(shù)碼產(chǎn)品中應(yīng)用最廣泛的存儲(chǔ)卡。在SD模式下,SD卡采用6線制,使用CLK、CMD、DAT0~DAT3進(jìn)行數(shù)據(jù)通信。在SPI模式中,使用CLK、CMD、DAT0、DAT3信號(hào)線與主機(jī)通信。使用單片機(jī)對(duì)SD卡操作時(shí),一般都采用SPI方式。

      ATMEGA16單片機(jī)通過硬件SPI接口方式操作SD卡,由于SD卡上電時(shí),默認(rèn)是處于SD模式。為了使其工作在SPI模式,必須在關(guān)閉片選信號(hào)下,發(fā)送至少74個(gè)時(shí)鐘信號(hào)。在初始化過程中,SPI的時(shí)鐘不能太快,否則會(huì)初始化失敗。在初始化成功后,應(yīng)該盡量提高SPI的時(shí)鐘速率,以便高效地讀寫SD卡[3]。單片機(jī)與SD卡每次通信都采用命令傳輸和應(yīng)答的方式完成。每個(gè)命令都對(duì)應(yīng)不同的應(yīng)答格式,命令分為標(biāo)準(zhǔn)的常規(guī)命令CMD和應(yīng)用命令A(yù)CMD,每次使用ACMD之前都要首先發(fā)送CMD55;應(yīng)答響應(yīng)中除響應(yīng)R2的代碼發(fā)送長度是136位之外,其余的R1、R1b、R3、R6、R7都是48位[4]。圖2是SD卡接口電路圖。

      圖2 SD卡接口電路圖

      1.2 串口模塊電路

      串口模塊電路采用CH340作為USB轉(zhuǎn)TTL電平的主器件,CH340 是一個(gè) USB 總線的轉(zhuǎn)接芯片,主要用于實(shí)現(xiàn) USB 轉(zhuǎn)串口、USB 轉(zhuǎn) IrDA 紅外或者 USB 轉(zhuǎn)打印口。 在串口方式下,CH340 提供常用的 MODEM 聯(lián)絡(luò)信號(hào),用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級(jí)到 USB 總線。 在紅外方式下,CH340外加紅外收發(fā)器即可構(gòu)成 USB 紅外線適配器,實(shí)現(xiàn) SIR 紅外線通信。串口模塊既可以用作STC單片機(jī)的下載器,也可以用作單片機(jī)與PC機(jī)的串口通信使用,以方便調(diào)試,串口模塊電路圖見圖3。

      圖3 串口模塊電路圖

      2 軟件設(shè)計(jì)

      2.1 WAV文件格式解析

      WAV為微軟公司開發(fā)的一種聲音文件格式,它符合RIFF(Resource Interchange File Format)文件規(guī)范,所有的格式為WAV的音頻文件都有一個(gè)文件頭,這個(gè)文件頭固定為 “RIFF”。數(shù)據(jù)塊的記錄方式是little-endian字節(jié)順序,標(biāo)志符并不是字符串而是單獨(dú)的符號(hào)[5]?!癛IFF WAVE FILE”格式解析表見表1。

      通過該表,可以從WAV文件中獲取必要的信息,比如采樣率、通道數(shù)、音頻文件的實(shí)際大小等。WAV文件是由若干個(gè)Chunk組成的 ,而每個(gè)塊由8個(gè)字節(jié)組成,每次讀取8個(gè)字節(jié)分塊信息,存儲(chǔ)WAV分塊信息中有用信息[6]。

      表1 “RIFF WAVE FILE”格式解析表

      為了兼容,跳過對(duì)“LIST”chunk、“DISP”chunk、“fact”chunk的處理,圖4是WAV文件的解析流程圖。

      圖4 WAV文件的解析流程圖

      2.2 開源的文件系統(tǒng)Petit Fatfs

      FAT文件系統(tǒng)發(fā)展至今,出現(xiàn)了FAT12、FAT1、FAT32三種類型。根據(jù)FAT表中每個(gè)FAT項(xiàng)所占長度來分類,即它們的FAT表中每個(gè)FAT項(xiàng)占用的位數(shù)分別為12、16、32位。由于FAT12不支持中文文件名,并且最多管理8 MB的容量,使得它的淘汰成為必然。雖然FAT16能管理16 MB~2 GB的磁盤空間,但是造成大量的空間浪費(fèi),F(xiàn)AT32的出現(xiàn)解決了這一問題。

      為了更好地管理SD卡,使用開源的文件系統(tǒng)代碼“Petit FatFs”。Petit FatFs是免費(fèi)開源的通用文件系統(tǒng)模塊,用在小型嵌入式系統(tǒng)中實(shí)現(xiàn)FAT文件系統(tǒng),采用ANSI C編寫,不依賴硬件平臺(tái),用戶只需要編寫底層的磁盤驅(qū)動(dòng)函數(shù)、RTC函數(shù)、應(yīng)用層函數(shù)就能快速的完成模塊移植。Petit FatFs模塊中提供了許多函數(shù),下面就能其中常用函數(shù)做簡單說明,詳細(xì)的函數(shù)說明見參考文獻(xiàn)[7]。

      pf_mount:在使用Petit Fatfs時(shí),必須要注冊一個(gè)工作區(qū)域,使用完畢時(shí),需要注銷工作區(qū)域。

      pf_open:打開/創(chuàng)建一個(gè)文件,文件打開后,便可對(duì)文件進(jìn)行讀寫操作。

      pf_close:文件讀寫完成后必須關(guān)閉調(diào)用此函數(shù)關(guān)閉打開的文件。

      pf_read,pf_write:文件的讀寫函數(shù)。

      pf_opendir,pf_readdir:存儲(chǔ)卡上指定目錄的打開讀取函數(shù)。

      2.3 WAV文件音頻數(shù)據(jù)的提取與消耗

      由于WAVE文件有以下4種不同的格式:8bit Mono,8bit Stereo,16bit Mono、16bit Stereo,每個(gè)采樣樣本包含的字節(jié)數(shù)不一,需進(jìn)行相應(yīng)的處理以便存儲(chǔ)。FAT文件系統(tǒng)初始化完畢后,發(fā)送讀取單塊命令CMD17,一旦收到響應(yīng)0xFE,接下來就可以接收數(shù)據(jù),并對(duì)其進(jìn)行處理,為了防止數(shù)據(jù)斷流,設(shè)計(jì)一個(gè)256字節(jié)的FIFO緩沖區(qū)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),一旦數(shù)據(jù)緩沖區(qū)存滿,就停止對(duì)緩沖區(qū)進(jìn)行寫操作,并等待數(shù)據(jù)取走。在WAV文件頭信息進(jìn)行成功解析后,根據(jù)當(dāng)前文件的采樣率,設(shè)置定時(shí)器的定時(shí)時(shí)間,并在指定的時(shí)間產(chǎn)生中斷,將存儲(chǔ)在FIFO緩沖區(qū)的未讀取數(shù)據(jù)取走,送PWM接口濾波輸出[8-9]。假設(shè)WAV文件的采樣頻率是f=44 100 Hz,T=1/f=22 μs,那么定時(shí)器每22 μs就產(chǎn)生一次中斷,并將FIFO緩沖區(qū)中的數(shù)據(jù)送PWM輸出即可。圖5是定時(shí)器中斷流程圖。

      3 軟件設(shè)計(jì)及調(diào)試結(jié)果

      圖5 定時(shí)器中斷流程圖

      FAT文件系統(tǒng)管理模塊采用Petit FatFs R0.03版本,編譯環(huán)境采用ATMEL公司的AVR StudioV4配合Windows下的GCC編譯器WINAVR一起使用。打開PC機(jī)上的超級(jí)終端,選擇相應(yīng)端口,設(shè)置波特率為9 600 bps,8位無奇偶檢驗(yàn)位,1位停止位,將其作為調(diào)試平臺(tái)。將SD卡格式化為FAT32,并拷貝WAV音頻文件到SD卡上的WAV目錄下,圖6是WAV播放器軟件設(shè)計(jì)流程圖。

      圖6 WAV播放器軟件設(shè)計(jì)流程圖

      系統(tǒng)上電后,初始化相應(yīng)I/O口、串口、SD卡,利用Petit FatFs文件系統(tǒng)模塊掛接SD卡, 讀取SD卡扇區(qū)大小、根目錄所在扇區(qū)、SD卡的類型等并通過PC機(jī)上的超級(jí)終端進(jìn)行顯示。一旦進(jìn)入目錄搜索WAV文件成功時(shí),就播放該文件,此時(shí)就聽到悅耳的音樂,同時(shí)還能在超級(jí)終端上看到文件名、采用率,另外通過按鍵可以切換歌曲。經(jīng)過實(shí)際測試,該WAV播放器能流暢播放采樣率在8~48 kHz之間的WAV文件,圖7是系統(tǒng)顯示效果圖。

      圖7 系統(tǒng)顯示效果圖

      結(jié) 語

      [1] 彭偉.單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例:基于AVR+Proteus仿真[M].北京:北京航空航天大學(xué)出版社,2010.

      [2] Ams Company. AMS1117 Datasheet[EB/OL].[2017-05].http://www.ams-semitech.com/attachments/File/AMS 1117_20120314.pdf.

      [3] 段勇.基于MSP430單片機(jī)的SD卡讀寫[J].生物醫(yī)學(xué)工程研究,2007(4):348-349.

      [4] SD Group and SD Association .SD Specification Part 1 Physical Layer Simplified Specification Version 3.01[EB/OL].[2017-05]. http://www.doc88.com/p-6058725096701.html

      [5] Multimedia Programming Interface and Data Specifications 1.0(1991-08)[2017-05]. http://elm-chan.org/junk/adpcm/RIFF_MCI.pdf.

      [6] 徐濟(jì)仁,牛紀(jì)海,陳家松.對(duì)WAV文件格式的實(shí)例分析[J].電聲技術(shù),2001,11(22):41-46.

      [7] Petit FAT File System Module.(2014-10)[2017-05].http://elm-chan.org/fsw/ff/00index_p.html.

      [8] 黃玲,吳凌云.PWM結(jié)合電阻網(wǎng)絡(luò)實(shí)現(xiàn)16位WAV語音播放[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014(9):75-76.

      [9] 周明華.PWM 語音播放器基于 Stellaris 系列 ARM[J].工程技術(shù)筆記,2008,3(2):23-34.

      王波(碩士研究生),主要從事單片機(jī)與嵌入式應(yīng)用設(shè)計(jì)方面的研究。

      High-quality WAV Player Design Based on AVR Microcontroller

      Wang Bo

      (College of Electronic Information and Automation,Aba Teachers’College,Wenchuan 623000,China)

      In the paper,the ATMEGA16 microcontroller is used as the controller,SD card is used as the storage medium.The FATFS file system is used to manage the SD card,and plays the WAV audio file in the specified directory of the SD card.The system makes the best use of on-chip resources,such as the timers,the SPI interface,the PWM and so on.The data of SD card is read through the SPI interface,The DAC output is based on PWM.In order to prevent datastream on breakpoint,the data stored in the buffer is handled using FIFO.The audio data is output using PWM at the specified time according to the sampling rate of the WAV files.After a series of tests,the system can smoothly play the WAV audio files that sample rate is between 8 kHz and 48 kHz.

      ATMEGA16 MCU;FATFS file system;WAV;FIFO;PWM

      TP368.1

      A

      ?迪娜

      2017-05-31)

      猜你喜歡
      音頻文件PC機(jī)播放器
      Walkman誕生40周年 索尼適時(shí)發(fā)布NW-ZX500和NW-A100系列播放器
      基于STM32的MP3播放器設(shè)計(jì)
      電子制作(2019年9期)2019-05-30 09:41:44
      Moon ACE播放器/放大器一體機(jī)
      基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
      基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
      基于Android手機(jī)的音頻文件取證技術(shù)研究
      VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
      電子制作(2017年23期)2017-02-02 07:16:47
      播放器背板注塑模具設(shè)計(jì)
      中國塑料(2015年8期)2015-10-14 01:10:55
      提取APP中的音頻文件
      電腦愛好者(2015年5期)2015-09-10 07:22:44
      數(shù)字水印在音頻文件篡改檢測中的應(yīng)用
      桦甸市| 贡山| 岳池县| 从化市| 荥阳市| 塔河县| 阜平县| 颍上县| 邢台县| 石城县| 阿瓦提县| 昭平县| 永嘉县| 会东县| 大埔区| 吉安县| 吉木乃县| 南京市| 浦县| 沅陵县| 甘谷县| 武平县| 拉萨市| 读书| 盈江县| 道孚县| 慈利县| 盐山县| 奉新县| 拉萨市| 琼结县| 称多县| 丁青县| 淳化县| 宾阳县| 丰县| 壤塘县| 桃园县| 沽源县| 西安市| 建德市|