老哥学习网 - www.lg9.cn 2024年04月28日 06:54 星期日
当前位置 首页 >诗词歌赋 >

基于ID200和Micro,SD卡的DAB音频解码系统的软件设计_捡到一台苹果手机怎么ID解码

发布时间:2019-05-08 06:34:59 浏览数:

  摘 要:本文将阐述基于ID200和Micro SD卡的DAB音频解码系统的软件设计,该设计的主要任务就是为用户提供一个信息丰富而且操作简单的可视化液晶界面,同时实现存储在Micro SD卡上的DAB音频数据流的回放功能。
  关键词:DAB Micro SD 音频解码
  中图分类号:TP2 文献标识码:A 文章编号:1672-3791(2012)09(a)-0015-01
  1 设计总体思想
  基于ID200芯片和MicroSD卡的DAB音频解码部分的软件设计[1]总体上是按照操作性强、可视化、稳健性等特点出发,进行了整体设计,尽可能让结构更加灵活,以便于移植和扩展。
  2 软件设计流程
  本软件程序设计采用按键中断,信息显示,确认选择,调用操作函数的流程进行。
  首先,用户按下回放启动按键给MCU产生中断信息,MCU识别该按键信息后转入执行回放启动程序,同时显示进入回放进程。此时MCU将配置基带解码芯片(ID200)为回放模式;启动SPI总线并设置供给Micro SD卡启动的时钟(250kHz),然后上电Micro SD卡并进行初始化,使其进入SPI模式,紧接着就是获取卡的配置参数,计算出当前接入系统的Micro SD卡的基本结构扇区。然后重新配置Micro SD卡工作的时钟,提高其工作频率,此时需要的工作频率为8MHz。自此Micro SD卡将开始正常工作,MCU先驱动SPI总线通道选择Micro SD卡,根据已经读取并计算出的各种参数信息,直接读取根目录表(FDT表)的第一个文件登记项,并提取文件名称、文件存储的首簇号、文件长度等信息,然后关闭选择Micro SD卡的SPI总线通道。当MCU获得的文件名称,文件编号后,通过ASCII码转换,再打开SPI通道选择液晶模块,驱动液晶将这些信息显示出来供用户查看,此时液晶屏上会将显示文件名称、文件编号、按键指南等信息供用户查看和操作。然后MCU将再次关闭SPI总线通道。
  接着,MCU将等待用户的选择命令——按键选择操作。如果用户在查看文件名称等信息后需要回放DAB音频文件,那么就按键操作“确认播放”;如果用户在查阅文件名称等信息后想继续查看下一个文件信息,那么用户可以按键选择“NEXT”,选择下一曲,MCU将再次打开SPI通道选择Micro SD卡,开始访问Micro SD卡的根目录表(FDT表),读取下一个文件的登记信息,同时提取相应的文件名称、文件存储的首簇号、文件长度等信息,并驱动液晶显示这些信息,以供用户查阅。此时用户可以根据自己的喜好进行“前一曲”或者“下一曲”的选择,然后进行按键“确认回放”。
  在确认回放之后,MCU开始根据文件存储的首簇号计算获取该文件在数据区中存储的起始扇区,同时根据文件长度计算该文件所占的扇区数,然后启动SPI总线通道选择Micro SD卡,根据文件存储的起始扇区从Micro SD卡中读取第一个扇区的信息(512个字节),存入MCU的专用缓存器中,提取DAB音频帧的帧头信息,用来识别采样率、比特率、声音模式等信息,同时驱动液晶并将这些信息显示在液晶上供用户查阅。在识别了采样率之后,如果采样率为48kHz的节目,MCU将每隔24ms向基带的SRAM相应地址空间存储一帧数据,供基带在此段时间里完成一帧数据的解码。48kHz采样率节目的一帧数据长度如式(1)所示。
  在这24ms中,基带将对这一帧数据进行MPEG L2的音频解码,但是此时SPI总线已经释放,未进行任何操作。MCU将检测片内缓冲区中的数据是否还能够保证下一帧的发送数据量,如果该数据量(Bytes)能够满足下一帧的发送量,SPI将继续等待启用;但是如果该数据量(Bytes)不能够满足下一帧的发送量时,MCU将立即启动SPI总线通道,选择Micro SD卡,再次读取下一个扇区的数据,按顺序保存到MCU的片内缓冲区内,以供下一个24ms发送给基带芯片。
  对于基带解码部分,当DAB音频数据帧的帧头被解码后,其内部时钟均已配置完成,通过它将配置通往Audio DAC芯片的I2S通道的时钟。此时MCLK为12.5MHz,LRCK为48kHz,SCLK为3MHz。采用RIGOL DS5102CA示波器测得的时钟频率分别为12.49MHz、48.08kHz、3.028MHz。基带解码芯片完成一帧解码后输出PCM采样点给Audio DAC芯片,经其转换后通过耳机或者通过功放芯片驱动喇叭就可以听到美妙的DAB节目的声音了。
  如果识别的采样率为24kHz,那么MCU将每隔24ms向基带的SRAM相应地址空间存储半帧(1/2)数据,供基带在此段时间里完成1/2帧数据的解码。24kHz采样率节目的半帧数据长度如式(2)所示。
  在这24ms中,基带将对这半帧数据进行MPEG L2的音频解码,此时SPI总线已经释放,等待被启动。MCU将检测片内缓冲区中的数据是否还能够保证下一帧的发送数据量,如果该数据量(Bytes)能够满足下一帧的发送量,SPI将继续等待启用;但是如果该数据量(Bytes)不能够满足下一帧的发送量时,MCU将立即启动SPI总线通道选择Micro SD卡,读取下一个扇区的数据,按顺序保存到MCU的片内缓冲区内,以供下一个24ms发送给基带芯片。对于基带解码部分,当24kHz采样率节目的数据帧的帧头被解码后,其内部时钟也已配置完成,通过它将配置通往Audio DAC芯片的I2S通道的时钟,此时MCLK为6.25MHz,LRCK为24kHz,SCLK为1.5MHz。采用RIGOL DS5102CA示波器测得的时钟频率分别为6.16MHz、23.98kHz、1.528MHz。基带解码芯片完成半帧解码后输出PCM采样点给Audio DAC芯片(MAX9850),经其转换后通过耳机或者通过功放芯片驱动喇叭就可以听到美妙的DAB节目的声音了。
  如此逐帧逐帧(或者半帧)连续的解码和DAC转换,就能在时间上连续的回放出原来存储在Micro SD卡里的DAB音频文件了。
  在音频文件的回放期间,如果用户觉得当前的文件不好听,或者想提前结束该段音频,可以通过按键操作使MCU响应中断停止文件数据的传输回到选择节目。如果用户在文件的回放期间,MCU将会根据文件长度计算出该文件存储的扇区总数,当基带解码完成这个总数的数据量之后,MCU将停止从Micro SD卡读取数据,同时也停止向基带解码芯片(ID200)发送解码数据。此时标志着当前用户选择的DAB音频节目回放结束。此时MCU将启动SPI总线通道选择液晶,并驱动液晶显示“节目结束”和“前一曲,后一曲”,以供用户选择。
  如果用户想结束回放模式,回到DAB正常接收状态,只需按键确认退出回放模式即可,MCU将设置基带解码芯片的相应模式寄存器,使其退出回放模式,进入正常接收解码模式。
  参考文献
  [1] 冯涛.数字音频广播的数据应用,2010.

推荐访问:解码 音频 设计 系统

相关文章:

Top