首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM9的音频系统设计(2)

基于ARM9的音频系统设计(2)

以下给出的是该函数总体框架:  audio_init(void)
  {
  Set_gpio_ctrl(GPIO_L3CLOCK); /*CPU控制端口的初始化 */
  … … /*“……”表示省略部分代码,以下同 */
  Input_stream.dma_ch=DMA_CH1; /*输入 DMA通道的选择 */
  Output_stream.dma_ch=DMA_CH2; /*输出DMA通道的选择 */
  Local_irq_restore(flags);
  Init_UDA1341(); /*初始化 UDA1341*/
  … …
  /*下面两个函数用来注册音频 audio设备和混频器设备 */
  Audio_dev_dsp=register_sound_dsp (&at91rm9200_audio_fops,-1);
  Audio_dev_mixer=register_ound_mixer (&at91rm9200_mixer_fops,-1);
  }
  打开设备由函数open()来实现,该函数可以完成以下功能:配置IIS总线接口;设置UDA1341TS声道及采样频率等参数;计算缓冲区大小;为UDA1341TS分配DMA缓冲区。
  该音频模块经过正确的配置可以实现录音、放音及循环放音等功能。本文给出初始化IIS接口、测试IIS接口以及运用IIS接口来播放一段音乐的程序设计基本流程,流程图如图3所示。录音和循环播放功能的设计流程与放音类似,这里不再赘述。


  图3 IIS接口功能测试软件设计流程图


  6 结论
  本文介绍了一种基于IIS总线的嵌入式音频系统,该系统简洁实用,可以实现音频的采集和播放,文章具体讲述了基于ATMEL公司AT91RM9200型微处理器与音频编解码芯片UDA1341TS的硬件连接及嵌入式 Linux下音频驱动的实现。当然,这只是本系统的主要组成部分,至于其他相关组成部分如FLASH和SDRAM等,笔者在实际设计中已经完成,由于篇幅关系,文中没有详细介绍。该系统已经在AT91RM9200的开发平台上得到了实现,可以顺利进行音频的采集和播放,并取得了良好的效果。另外,当今实时视频处理和传输技术发展迅速,应用也日益广泛,如视频会议、VOIP电话等等,本设计适当加以扩展,特别是与视频模块结合,即可应用于更多相关的复杂系统中。
继承事业,薪火相传
返回列表