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

ATmega328p的音頻信號最小系統播放器設計*

2016-06-24 02:36:56邢方誠王素珍宗衛華王濤
單片機與嵌入式系統應用 2016年6期

邢方誠,王素珍,宗衛華,王濤

(青島大學 電子信息學院,青島 266071)

ATmega328p的音頻信號最小系統播放器設計*

邢方誠,王素珍,宗衛華,王濤

(青島大學 電子信息學院,青島 266071)

摘要:介紹了一種音頻信號最小系統播放器。利用ATmega328p單片機作為主控芯片,VS1003音頻解碼芯片負責音頻解碼,外接SD卡作為存儲介質,使用SSD1306液晶屏作為顯示。該系統音質高、成本低、功耗低、體積小,是一種低成本、高品質的MP3播放器解決方案。

關鍵詞:ATmega328p;MP3播放器;SD卡;VS1003;SSD1306

引言

Arduino是一款便捷靈活、方便上手的開源電子原型平臺,包含硬件(各種型號的Arduino板)和軟件(Arduino IDE),適用于愛好者、藝術家、設計師和對于“互動”有興趣的朋友們。Arduino具有開放源代碼的USB接口Simple I/O接口板(包括12通道數字GPIO、4通道PWM輸出、6~8通道10位 ADC輸入通道),并且具有使用類似Java、C語言的IDE集成開發環境。Arduino具有完全免費、開源的軟件庫,用戶可以根據自己的需求進行修改。自1998年第一臺MP3隨身聽Saehan MPman F10誕生以來,MP3播放器以其便攜性、高品質的音質,贏得了用戶的青睞。本文使用Arduino開發板設計一種最小硬件系統音頻播放器設計方案,在保證音質的同時還具有設計簡單、成本低的優點、非常適合讀者自己動手制作。

1系統的硬件設計

圖1 系統結構框圖

本系統的硬件部分主要由ATmega328p控制器、VS1003解碼模塊、液晶顯示模塊、SD卡和按鍵組成,系統結構框圖如圖1所示。將音頻信號轉換為MP3格式,存放在SD卡上。由ATmega328p作為主控制器,控制音頻信號從SD卡讀取,送到VS1003解碼模塊,進行解碼處理,通過VS1003的內部高品質可變采樣率的ADC和立體聲DAC,發送給耳機放大器。音頻播放的內容和曲目通過SSD1306的128×64的點陣式OLED液晶屏顯示,通過按鍵控制可以對曲目進行選擇。系統的模塊通過硬件SPI總線連接,所有模塊共享SCLK、MOSI、MISO3根引腳,每個模塊的片選信號CS需要單獨連接到單片機的不同引腳上。

1.1Arduino控制器

本系統的控制器采用ATmega328p作為主控制器。ATmega328p是一款高性能、低功耗的AVR 8位微控制器,采用RISC結構,擁有131條指令,絕大多數為單時鐘執行,包括32個8位通用工作寄存器。全靜態工作于16 MHz時,性能高達16 MIPS,只需兩個時鐘周期就能完成硬件乘法器運算。它具有非易失性程序和數據存儲器,32 KB的系統可編程Flash,擦寫壽命為100 000次;具有獨立定位的可選Boot代碼區,通過片上Boot程序實現系統內編程,真正地同時進行讀寫操作;1024字節的EEPROM,擦寫壽命為100 000次;2 KB的片內SRAM,可以對鎖定位進行編程以實現用戶程序的加密。采用TQFP32貼片封裝的ATmega328p,芯片尺寸僅為7 mm×7 mm。

1.2VS1003解碼芯片

VS1003是一個單片MP3/WMA/MIDI音頻解碼器和ADPCM編碼器。它包含一個高性能、低功耗DSP處理器核VS_DSP;工作數據存儲器為用戶應用提供5 KB 的指令RAM 和0.5 KB 的數據RAM;串行的控制和數據接口,4個常規用途的I/O 口,1個UART;1個高品質可變采樣率的ADC和立體聲DAC;1個耳機放大器和地線緩沖器。

圖2 VS1003與控制器接口

VS1003與控制器的連接如圖2所示.其中miso、mosi、sclk與控制器的硬件SPI引腳連接;xrst為硬件復位引腳,低電平有效;dreq為數據請求引腳,VS1003內建一個32字節的FIFO,當VS1003的FIFO在能夠接受數據時,dreq輸出高電平,此時應當向其發送新的數據;xcs為片選輸入信號;xdcs為數據片選信號,可以將其理解為命令/數據選擇信號。在向VS1003發送音頻數據時,需要將xdcs拉低,數據發送完成后再將其拉高。而向VS1003發送寄存器數據時,應將xdcs拉高,數據發送完成后再將其拉低。本設計中采用了硬件SPI,提高了通信速度,同時使用Arduino自帶的SPI庫,大大降低了編程難度。

圖3 SD卡引腳定義

1.3SD卡

本設計采用SD卡的SPI模式進行讀寫操作,可以支持SD卡和SDHC存儲卡,使用Kingmax的2 GB SD卡順利地通過了測試。SD卡的引腳定義如圖3所示,在SPI模式下,其DI、DO、SCLK引腳分別連接至控制器的硬件SPI引腳上,CS片選信號單獨與控制器的一個引腳連接。

1.4液晶顯示模塊

圖4    SSD1306與控制器   SPI接口

鑒于ATmega328p的輸入/輸出引腳數量比較有限,采用了支持SPI讀寫方式的SSD1306液晶顯示器。SSD1306是一款128×64的點陣式OLED液晶屏顯示模塊,具有亮度高、功耗低等特點,在SPI模式下僅需4根線即可與控制器通信,較適合于本系統。如圖4所示,SSD1306的SCK、MOSI引腳分別與控制器的硬件SPI引腳連接,片選信號CS和數據命令選擇信號DC單獨與控制器的兩個引腳連接。

2系統的軟件設計

2.1Arduino IDE開發環境

軟件設計使用Arduino官方的IDE開發工具進行,開發者具有一定的C語言基礎便可快速上手。IDE開發環境自帶串口通信工具,為調試程序帶來了方便。本設計的程序流程圖如圖5所示。系統上電后首先進行一系列的初始化操作,包括VS1003初始化、OLED初始化、SD卡初始化。之后進行SD卡檢測操作,包括卡的類型、剩余容量等。執行初始化操作時若出現錯誤,系統會立即停止運行,并顯示錯誤信息;若啟動正常,系統將讀取SD卡根目錄下的第一首MP3格式的文件,解析其文件大小、歌曲時間及歌名等信息,然后調用顯示程序執行顯示操作。之后調用播放子程序開始音樂播放,在此期間若有按鍵按下,則轉至按鍵處理程序,調整相關參數后(歌曲切換、音量控制)繼續播放。

圖5 主程序流程圖

2.2播放程序設計

為了保證播放的流暢性,VS1003內建32字節的緩沖區,當緩沖區需要數據時會通過DREQ引腳輸出高電平。本設計中,當控制器檢測到DREQ為低電平時,執行其他操作;當檢測到DREQ為高電平時,控制器會立即讀取新的32字節的音頻數據,并將其發送給VS1003,依次循環。主要程序如下:

while (1){

while (digitalRead(MP3_DREQ) == LOW){

vol_set();

song_set();

}

if(!file.read(mp3DataBuffer, sizeof(mp3DataBuffer))){

break;

}

digitalWrite(MP3_XDCS, LOW);

for (int y = 0 ;y

SPI.transfer(mp3DataBuffer[y]);

// Send SPI byte

}

digitalWrite(MP3_XDCS, HIGH);

}

2.3歌曲信息提取子程序

本設計可以支持對ID3V2版本MP3文件的信息顯示,包括歌曲的文件名、文件大小、時間、碼率,通過讀取MP3文件的標簽幀和音頻幀來實現,程序流程圖如圖6所示。其中標簽幀大小通過公式FSize = Size[0]×0x100000000+Size[1]×0x10000+Size[2]×0x100 + Size[3]求得,歌曲時間通過公式total_time=file_size×8/(float(decoding_rate)×1000)求得。

圖6 歌曲信息子程序流程圖

結語

系統上電后首先檢測SD卡信息,將卡類型、總大小、剩余大小通過液晶屏顯示出來,如圖7所示。音頻播放界面如圖8所示,從上到下依次為歌名、歌曲時間、文件大小、音量大小和碼率。

圖7 SD卡檢測界面

圖8 音頻播放界面

參考文獻

[1] VLSI 公司.VS1003-MP3/WMA AUDIO CODE 數據手冊[EB/OL].[2015-12].http//download.csdn.net/detail/zhongpai/4392299.

[2] VLSI公司.VS1003 中文說明書[EB/OL].[2015-12].http://wenku.baidu.com.

[3] Michael McRoberts.Arduino從基礎到實踐[M].楊繼志,郭敬,譯.北京:電子工業出版社,2013.

[4] 江思敏,陳明.Protel電路設計教程[M].北京:清華大學出版社,2006.

[5] 王賓,楊岸.基于DSP的觸摸式MP3的設計[J].電子技術應用,2010(7):81-83.

[6] 李世奇,董浩斌,李榮生,等.基于FatFs文件系統的SD卡存儲器設計[J].測控技術,2011,30(12):79-81.

邢方誠(研究生)、王素珍(教授)、王濤(副教授),研究方向為可編程邏輯器件在通信及信號處理中的應用;宗衛華(副教授),研究方向為無線電磁波在天線制作中的應用。

(責任編輯:薛士然收修改稿日期:2015-01-14)

Audio Minimum System Player Based on ATmega328p

Xing Fangcheng,Wang Suzhen,Zong Weihua,Wang Tao

(College of Electronic Information,Qingdao University,Qingdao 266071,China)

Abstract:In the paper,an audio player is proposed,which takes ATmega328p microcontroller as the main control chip,VS1003 audio decoder chip for audio decoding,external SD card as the storage medium,and SSD1306 LCD screen for displaying.This system has the characteristics of high quality,low-cost,low-power consumption and compact size.It is a good solution of MP3 player.

Key words:ATmega328p;MP3 player;SD card;VS1003;SSD1306

* 基金項目:國家自然科學基金委員會資助項目,青年科學基金資助項目(61501277)。

中圖分類號:TN915.04

文獻標識碼:A

主站蜘蛛池模板: 伊人丁香五月天久久综合| 日韩色图在线观看| 国产精品漂亮美女在线观看| 欧美性色综合网| 亚洲欧美激情另类| 国产日产欧美精品| 狠狠色婷婷丁香综合久久韩国| 在线观看网站国产| 欧美成人第一页| 国产导航在线| 国产永久在线视频| 五月天在线网站| 手机精品视频在线观看免费| 久久午夜夜伦鲁鲁片无码免费| 久热中文字幕在线观看| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产xx在线观看| 麻豆精品视频在线原创| 婷婷色在线视频| 日韩免费成人| 亚欧成人无码AV在线播放| 香蕉eeww99国产精选播放| 一区二区在线视频免费观看| 成人国产一区二区三区| 色AV色 综合网站| 久久国产精品麻豆系列| 久久国产乱子伦视频无卡顿| 九色在线视频导航91| 性视频一区| 好吊妞欧美视频免费| 香蕉久久国产精品免| 国产乱子伦精品视频| 亚洲性一区| 亚洲一级毛片在线观播放| 国产精品一区在线观看你懂的| 日韩第九页| 国产精品30p| 无码精品国产dvd在线观看9久| 国产精品一区二区无码免费看片| 亚洲V日韩V无码一区二区| 国产成人福利在线视老湿机| 2019年国产精品自拍不卡| 亚洲一级毛片在线观| 3p叠罗汉国产精品久久| 香蕉视频国产精品人| 一级毛片免费的| 波多野结衣一区二区三区88| 国产精选小视频在线观看| 凹凸国产熟女精品视频| 91九色国产在线| 亚洲人成亚洲精品| 91区国产福利在线观看午夜 | 九九香蕉视频| 国产又粗又爽视频| 在线看片中文字幕| 亚洲免费毛片| 精品少妇人妻无码久久| 国产精品无码翘臀在线看纯欲| 国产乱子伦精品视频| 久久伊人操| 国产小视频在线高清播放| 精品国产电影久久九九| 亚洲精品自拍区在线观看| 一级毛片基地| 国产毛片不卡| 亚洲国产天堂久久综合226114| 亚洲伦理一区二区| 在线播放91| 久久久久亚洲av成人网人人软件| 性色一区| 久久一级电影| 中文字幕亚洲第一| 国产网站一区二区三区| 国产欧美日韩91| 亚洲色中色| 男人天堂伊人网| 在线观看视频一区二区| 午夜欧美在线| 国产丝袜91| 国产00高中生在线播放| 国产成在线观看免费视频| 久草性视频|