999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

AVR單片機的高音質WAV播放器設計

2017-09-03 09:22:50
單片機與嵌入式系統應用 2017年8期
關鍵詞:單片機

王 波

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

AVR單片機的高音質WAV播放器設計

王 波

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

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

ATMEGA16MCU;FATFS文件系統;WAV;FIFO;PWM

引 言

隨著科技的進步,MP3播放器不僅越來越小,存儲空間越來越大,而且音質也越來越高,功能也越來越強大。

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

1 硬件設計

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

圖1 WAV播放器總體設計框圖

1.1 SD卡接口電路

SD卡是在MMC卡的基礎上發展而來,高效的讀寫速度使得SD卡成為當前數碼產品中應用最廣泛的存儲卡。在SD模式下,SD卡采用6線制,使用CLK、CMD、DAT0~DAT3進行數據通信。在SPI模式中,使用CLK、CMD、DAT0、DAT3信號線與主機通信。使用單片機對SD卡操作時,一般都采用SPI方式。

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

圖2 SD卡接口電路圖

1.2 串口模塊電路

串口模塊電路采用CH340作為USB轉TTL電平的主器件,CH340 是一個 USB 總線的轉接芯片,主要用于實現 USB 轉串口、USB 轉 IrDA 紅外或者 USB 轉打印口。 在串口方式下,CH340 提供常用的 MODEM 聯絡信號,用于為計算機擴展異步串口,或者將普通的串口設備直接升級到 USB 總線。 在紅外方式下,CH340外加紅外收發器即可構成 USB 紅外線適配器,實現 SIR 紅外線通信。串口模塊既可以用作STC單片機的下載器,也可以用作單片機與PC機的串口通信使用,以方便調試,串口模塊電路圖見圖3。

圖3 串口模塊電路圖

2 軟件設計

2.1 WAV文件格式解析

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

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

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

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

圖4 WAV文件的解析流程圖

2.2 開源的文件系統Petit Fatfs

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

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

pf_mount:在使用Petit Fatfs時,必須要注冊一個工作區域,使用完畢時,需要注銷工作區域。

pf_open:打開/創建一個文件,文件打開后,便可對文件進行讀寫操作。

pf_close:文件讀寫完成后必須關閉調用此函數關閉打開的文件。

pf_read,pf_write:文件的讀寫函數。

pf_opendir,pf_readdir:存儲卡上指定目錄的打開讀取函數。

2.3 WAV文件音頻數據的提取與消耗

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

3 軟件設計及調試結果

圖5 定時器中斷流程圖

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

圖6 WAV播放器軟件設計流程圖

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

圖7 系統顯示效果圖

結 語

[1] 彭偉.單片機C語言程序設計實訓100例:基于AVR+Proteus仿真[M].北京:北京航空航天大學出版社,2010.

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

[3] 段勇.基于MSP430單片機的SD卡讀寫[J].生物醫學工程研究,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] 徐濟仁,牛紀海,陳家松.對WAV文件格式的實例分析[J].電聲技術,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結合電阻網絡實現16位WAV語音播放[J].單片機與嵌入式系統應用,2014(9):75-76.

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

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

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)

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 欧美综合中文字幕久久| 亚洲中文精品人人永久免费| 中文字幕亚洲综久久2021| 久久国产精品电影| 久久亚洲美女精品国产精品| 特级毛片免费视频| 色亚洲激情综合精品无码视频 | 色综合中文综合网| 最新国语自产精品视频在| 亚洲乱强伦| 性色生活片在线观看| 午夜视频免费试看| 亚洲欧美不卡| 性做久久久久久久免费看| 亚洲首页国产精品丝袜| 免费国产一级 片内射老| 色有码无码视频| 看国产一级毛片| 免费观看精品视频999| 五月天在线网站| 91在线中文| 中文字幕人妻无码系列第三区| 国产成人在线小视频| 国产成人1024精品| 久久国产V一级毛多内射| 99久久这里只精品麻豆| 少妇精品久久久一区二区三区| 91福利国产成人精品导航| 久草国产在线观看| 国产精品一区二区不卡的视频| 久久久久国产一级毛片高清板| 国产极品粉嫩小泬免费看| 永久免费精品视频| 日韩欧美在线观看| a免费毛片在线播放| 亚洲一区波多野结衣二区三区| 国产精品美女免费视频大全| 日本三级欧美三级| 国产精品视频免费网站| 亚洲日韩精品综合在线一区二区| 欧美中文一区| 大乳丰满人妻中文字幕日本| 日韩国产综合精选| 国内精品久久久久久久久久影视| 亚洲成a人在线观看| 国产精品亚洲天堂| 亚洲天堂视频在线观看免费| 免费在线不卡视频| 国产91小视频| 国产成人久视频免费| 色老二精品视频在线观看| 少妇极品熟妇人妻专区视频| 日本欧美一二三区色视频| 久久动漫精品| 狼友视频国产精品首页| 国产女人18水真多毛片18精品 | 四虎成人精品在永久免费| 亚洲国产成人无码AV在线影院L| 日本午夜视频在线观看| 国产网友愉拍精品| 91久久精品日日躁夜夜躁欧美| 亚洲swag精品自拍一区| 伊人久久久久久久久久| 亚洲91在线精品| 色悠久久久久久久综合网伊人| 夜夜操狠狠操| 中文字幕一区二区人妻电影| 高清视频一区| 亚洲国产中文在线二区三区免| 麻豆国产精品| 中文天堂在线视频| 午夜福利在线观看成人| 91丨九色丨首页在线播放| 亚洲最大福利视频网| 四虎永久免费地址| 国产资源免费观看| 亚洲国产中文精品va在线播放| 国产特一级毛片| 中国特黄美女一级视频| 伊人查蕉在线观看国产精品| 一区二区三区精品视频在线观看| 精品伊人久久久久7777人|