基于嵌入式微處理器S3C44B0X音頻文件播放

發(fā)布時(shí)間:2010-11-4 11:52    發(fā)布者:eetech
關(guān)鍵詞: S3C44B0X , 播放 , 嵌入式 , 微處理器 , 音頻文件
S3C44B0X是三星公司針對嵌入式系統推出高性?xún)r(jià)比微處理器,它是基于ARM7TDMI內核的16/32位RISC處理器,工作主頻為66MHz.為了降低成本和節約產(chǎn)品開(kāi)發(fā)周期,S3C44BO0X提供了豐富的內置部件,包括:內部SRAM,LCD控制器,8通道10位ADC,IIC總線(xiàn)接口,IIS總線(xiàn)接口等.其中S3C44B0X IIS接口能用來(lái)連接一個(gè)外部8/16位立體聲聲音解碼器.CS4334是CIRRUS公司推出的系列音頻解碼芯片.文獻中對它們的工作原理和應用有詳細的論述.

本文詳細研究了S3C44B0X IIS總線(xiàn)接口和CS4334的連接,搭建了以二者為基礎的嵌入式工作平臺.在該平臺上現WAVE音頻文件的播放,并給出了測試程序.

1IIS總線(xiàn)結構

S3C44B0X IIS(Inter-IC Sound)接口對FIFO存取提供DMA傳輸模式代替中斷模式,它可以同時(shí)發(fā)送數據和接收數據也可以只發(fā)或只收.

如圖1所示,總線(xiàn)接口FIFO控制包括總線(xiàn)接口、內部寄存器和狀態(tài)機,控制總線(xiàn)接口邏輯和FIFO訪(fǎng)問(wèn);3位的雙分頻器包括一個(gè)作為IIS總線(xiàn)主設備時(shí)鐘發(fā)生器,另外一個(gè)作為外部編碼器的時(shí)鐘發(fā)生器;主設備串行比特時(shí)鐘發(fā)生器(主設備模式),將從主設備時(shí)鐘中分頻得到串行比特數時(shí)鐘;聲道發(fā)生器和狀態(tài)器生成和控制IISCLK和IISLRCK,并且控制數據的接收和發(fā)送;16位移位寄存器在發(fā)送數據時(shí)將數據由并變串,接收數據時(shí)做相反的動(dòng)作.

IIS總線(xiàn)可以使用正常傳輸模式,DMA傳輸模式和發(fā)送接收同時(shí)模式三種傳輸方式.

2 音頻數模轉換芯片CS4334

CS4334是CIRRUS半導體公司生產(chǎn)的音頻數模轉換芯片,具有接口簡(jiǎn)單、性能穩定以及便于操作等特點(diǎn),在嵌入式系統中有著(zhù)廣泛的應用. 另外,由于WAVE數字音頻經(jīng)CS4334轉換成模擬音頻后信號較微弱,需要增加一個(gè)音頻功率放大器.本文選用的是PHILIPS公司的TDA7050低電平單聲道/立體聲功率放大器.





圖1 IIS總線(xiàn)結構框圖





圖2S3C44B0X與CS4334以及TDA7050的連接示意圖

3S3C44B0X和CS4334以及TDA7050的連接

S3C44B0X IIS總線(xiàn)接口和CS4334模塊都具有很強的通用性,連接很容易實(shí)現.連接方法為:將S3C44B0X的端口PF6(IISDO)、 PF8(IISCLK)、PF5(IISLRCK)、PE8(END/AN)分別與CS4334的管腳1、2、3、4連接.CS4334與TDA7050 連接時(shí),只需將CS4334的輸出連接到TDA7050的相應輸入管腳即可.具體連接方法如圖2所示.

4 程序設計

程序設計假設S3C44B0X已經(jīng)成功啟動(dòng),此處著(zhù)重介紹播放WAVE文件主函數:

Playwave().IIS_Init( )是初始化IIS接口函數,BDMA0_Done( )是BDMA0中斷處理函數.分別介紹如下.

4.1 IIS接口初始化

代碼如下:

void IIS_Init(void){

rPCONF = 0x24900a; //設置I/O端口PF,使端口PF5"8工作在IIS狀態(tài)

Init_4334(); //初始化CS4334芯片}

4.2 播放WAVE音頻文件函數

Playwave()函數運行前會(huì )提示先將wave音頻文件下載到指定RAM區域,函數計算出文件大小并提示播放與否,最后返回.

void Playwave (U32 addr, U32 size){

unsigned char *pWave;

U32 samplesize; //WAVE文件長(cháng)度

U32 save_PLLCON;

save_PLLCON = rPLLCON;

rPLLCON= x69<<12)|(0x17<<4)|0;

SerialChgBaud(115200);

pISR_BDMA0=(unsigned)BDMA0_Done;

rINTMSK="(BIT_GLOBAL|BIT_BDMA0);//中斷設置

pWave=(unsigned char *)addr;//wave文件數據地址

pWave+=0x28; //指向wav采樣長(cháng)度

samplesize=*(pWave+0) | *(pWave+1)<<8 | *(pWave+2)<<16 | *(pWave+3)<<24;

pWave+=4; //指向wav數據

samplesize=(samplesize>>1)<<1;

printf(\nsample start:0x%x,pWave);

printf(\nsamplesize:0x%x,samplesize);

Init_4334();

/****** IIS 初始化 ******/

rIISCON=0x22; //使能 DMA,接收空閑,使能分頻

rIISMOD=0x89; //主模式,IIS格式,16位數據,256fs,32 fs

rIISPSR=0x33; //分頻因子

rIISFCON=0xa00;//接收、發(fā)送DMA模式,使能FIFO

/****** BDMA0 初始化******/

rBDISRC0=(1<<30)+(1<<28)+(U32)pWave; //DMA源;16位數據,增長(cháng)方式

rBDIDES0=(1<<30)+(3<<28)+((U32)rIISFIF); //DMA目的:M2IO,內部模塊

rBDICNT0=(1<<30)+(1<<26)+(3<<22)+(1<<21)+(0<<20)+samplesize;

rBDICNT0 |= (1<<20);//設置DMA請求源為IIS,中斷方式,手動(dòng)重載,使能DMA

rBDCON0 = 0x0<<2;

printf(\nNow play the wave file ...);

printf(\nPush any key to exit!!!);

rIISCON |=0x1;

while(!getkey()); //按下任意鍵返回}

5 小結

采用S3C44B0X內置IIS總線(xiàn)和音頻數模轉換芯片CS4334,本文搭建了以二者為核心的工作平臺,并詳細討論了基于此平臺實(shí)現播放WAVE音頻文件的方法.由于S3C44B0X及CS4334模塊具有較強的通用性,因此本文給出的實(shí)現方法及程序具有使用簡(jiǎn)單、運行穩定、便于移植等特點(diǎn).

本文作者創(chuàng )新點(diǎn)在于詳細設計了基于嵌入式微處理器S3C44B0X和CS4334的WAVE音頻文件播放平臺,融合了ARM處理器功耗小、便攜、代碼執行效率高和WAVE音頻文件音質(zhì)好的優(yōu)點(diǎn),并給出了詳細的連接方法,所設計程序已經(jīng)在硬件平臺上成功運行.
本文地址:http://selenalain.com/thread-36288-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页