发明名称 一种音频设备中实现混音的方法
摘要 本发明是关于一种音频设备中实现混音的方法,主要包括如下步骤:解码音频数据;将多个解码后的数据混合在一起;通过DMA将混合数据传到IIS控制器。本发明在多任务系统中实现了软件混音功能,可以同时听到多种声音,在听音乐的同时,可以发出按键音。
申请公布号 CN101661748A 申请公布日期 2010.03.03
申请号 CN200910112508.X 申请日期 2009.09.15
申请人 福州瑞芯微电子有限公司 发明人 洪锦坤
分类号 G10L19/00(2006.01)I 主分类号 G10L19/00(2006.01)I
代理机构 福州市鼓楼区京华专利事务所(普通合伙) 代理人 翁素华
主权项 1、一种音频设备中实现混音的方法,其特征在于:包括如下步骤:步骤100:解码音频数据,包括如下步骤:步骤101:开始;步骤102:解码器初始化,判断是否成功 是,转入步骤103;否,转入步骤111;步骤103:申请一个FIFO,判断是否成功 是,转入步骤104;否,转入步骤111;步骤104:暂停播放 是,转入步骤105;否,转入步骤106;步骤105:FIFO满 是,转入步骤106;否,转入步骤107;步骤106:OSTIMEDELAY;步骤107:解码,并把数据存到FIFO中;步骤108:判断解码是否成功 是,转入步骤109;否,转入步骤111;步骤109:判断是否结束解码:是,转入步骤110;否,转入步骤104;步骤110;反初始化解码器,释放FIFO空间;步骤111:结束任务;步骤200:将多个解码后的数据混合在一起,包括如下步骤:步骤201:开始;步骤202:申请一个FIFO_A,成功 是,转入步骤203;否,转入步骤211;步骤203:申请一个X长度的BUF_A,成功 是,转入步骤204;否,转入步骤211;步骤204:注册DMA中断函数,并启动DMA;步骤205:所有音频任务的FIFO都不为空 是,转入步骤206;否,转入步骤207;步骤206:FIFO_A满 是,转入步骤207;否,转入步骤208;步骤207:OSTIMEDELAY;步骤208:从所有音频的FIFO中取出数据进行叠加运算,并存到FIFO_A中;步骤209:判断是否停止混音 是,转入步骤210;否,转入步骤205;步骤210:停止DMA,释放FIFO_A和BUF_A空间;步骤211:结束任务;步骤300:通过DMA将混合数据传到IIS控制器,包括如下步骤:步骤301:开始;步骤302:判断是否有已发送的FIFO_A的空间未被释放吗 是,转入步骤303;否,转入步骤304;步骤303:释放FIFO_A已被取出数据的空间;步骤304:判断是否FIFO_A非空 是,转入步骤305;否,转入步骤306;步骤305:判断FIFO_A已使用的空间是否大于X值 是,转入步骤307;否,转入步骤309;步骤306:将BUF_A都填0;转入步骤308:步骤307:从FIFO_A读出X长度的数据到BUF_A,标识FIFO_A有X长度空间未被释放;步骤308:配置并启动DMA,将BUF_A的X长度的数据传给IIS控制器;步骤309:从FIFO_A读出已使用的空间Y的长度数据到BUF_A,标识FIFO_A有Y长度空间未被释放,配置并启动DMA,将BUF_A的Y长度的数据传给IIS控制器;步骤310:中断结束退出。
地址 350011福建省福州市鼓楼区洪山镇西郊工业路北段550号1号楼601单元