学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 艺术论文 > 多媒体设计论文

音乐播放模块与GPS信息接收显示模块

来源:学术堂 作者:陈老师
发布于:2016-10-24 共2430字
  4.3 音乐播放模块
  
  音频播放功能模块的总体框图如图 4-19 所示,这里重点讲解通过 SPI 控制器实现对 SD 卡中数据的传输和利用 Audio 控制器将外设的 WM8731 解码芯片与 Avalon 总线接口互联达到驱动目的。以此完来成对音频文件的解码和播放。下面详细介绍这两个部分。
  
  4.3.1 SD 卡控制子模块
  
  本模块是在完成 FATfs 文件系统移植的基础上进行实现的,本模块的作用是让 Nios II 软核通过 avalon 总线能够与外设 SD 卡实现音频信息的传输。采用的是 SPI 模式。它是一种串行的信息交换协议。
  
  图 4-20 为 SD 卡与主控芯片的硬件连接电路图,下面我们给出,SPI 的四条控制线对应 SD 卡的信号线情况。SD_CLK(SCLK)、SD_DAT3(SS_n)、SD_CMD(MOSI)、SD_DAT(MISO),其中括号内代表 SPI 控制器的控制信号,括号外代表 SD 卡与主控芯片的实际连接线。
  
  利用 SOPC builder 工具,添加 SPI IP 核到系统中,以 IP 核的形式模拟 SPI协议,此处我们添加两种不同速率的 SPI IP,一种是 2000Hz,用来配置 SD 卡,一种为 25Mhz 用来处理数据。因为用到的是三线 SPI IP,所以为了正常使用,另外还要添加一条控制不同 SPI 速率的 CONTROL 信号。如图 4-21 所示为成功生成的 SPI 控制器模块。
  
  4.3.2 Audio 控制器子模块
  
  本系统中选择用硬件的方式完成音频解码,用到的音频解码芯片型号为WM8731,为了实现 Nios II 软核对它的控制并在 FPGA 中协同工作。本系统利用硬件编程语言为其专门设计了 Audio 控制器。
  
  利用 4.2 节中的控制器设计方法,利用 verilog 完成两个文件的硬件语言编写,分别是 AUDIO_DAC_FIFO.v 和 FIFO_16_256.v 两个文件。
  
  其中 FIFO_16_256.v 的设计作为音频文件的缓存,宽度为 16bit,深度是 256words.它的工作方式同 Sdram_fifo 相似,wrreq 为写准备信号,使能后按照写时钟写入数据写满后,会通过 wrfull 给出写停止的信号。同理,读信号部分是从q端输出16位的数据。这项任务时利用Quartus II中的MegaWizard Plug-In 工具完成的,根据本系统的数据传输要求进行定制。最后生成的模块如图 4-22 所示。
  
  AUDIO_DAC_FIFO.v 是 解 码 芯 片 的 主 控 模 块 部 分 , 同 时 也 是FIFO_16_256.v 的顶层文件,也就是说前面生成的缓存也是受到这部分的主控模块所控制。编译成功后,生成的功能图如图 4-23 所示。
  
  Audio IP 是 Avalon 总线同解码芯片之间的传输媒介,解释一下模块主要的一些控制信号,其中 oAUD_BCK 是数字音频位时钟,oAUD_LCK 是 DAC 采样时钟,oAUD_XCK为晶振时钟。oAUD_XCK 作为控制器工作主时钟为18.4Mhz,前两个时钟是根据采样原理,利用采样频率、传输数据量等数值在模块内部利用 verilog 编写的频率生成器得出的,都是用来为数据传输提供时钟的。oDATA是音频数据的传送通道,一端连接在解码器端,另一端进入的 AUDIO 控制器的iDATA 连接的是前面生成的 16 位缓存。
  
  最后就是在 Nios II IDE 环境下利用软件语言对系统进行控制串联各个功能模块,将 SD 卡中的音频数据,利用 AUDIO 控制器通过 16 位缓存,再逐位的传给解码芯片,最后完成音乐播放功能。其主控程序流程图如图 4-24 所示。
  
  测试 Audio 控制器,是将一组正弦信号传输给 WM8731 最后利用跳线接触一条数据口,通过示波器测得其波形正确稳定,如图 4-25 所示。
  
  4.4 GPS 信息接收显示模块
  
  GPS 功能模块在多媒体系统平台中能够完成一个独立的功能,从信息的接收、传输、数据处理和显示整个过程都包含在整个模块的设计当中,其总体模块图如图 4-26 所示。此模块设计也很好的体现了 FPGA 技术中软硬结合的方法。
  
  本实验中用到的 GPS 模块型号为 ProGin SR-87 系列,具有高敏感度的 SiRFStar III 芯片组,能够搜寻到 20 颗卫星。重复获取信息的时间间隔为 0.1s,命令接口输出的电平为 TTL 电平,支持 NAME-A0183 通信协议。
  
  4.4.1 信息传输子模块
  
  首先,要实现的是 GPS 接收模块与 FPGA 之间的通信,因为 GPS 命令接口输出的是 TTL 电平,刚好能与串口的数据传输电平匹配,再加上串口数据传输的稳定性很高,所以本系统采用了 RS232 串口完成通信任务,这一模块,是在SOPC Builder 工具中完成的,在软核系统中添加 UART 的 IP 核,添加窗口如图4-27 所示。
  
  根据 GPS 芯片的刷新速率,选择串口的波特率为 9600bps,数据位 8bit,1位停止位和两位奇偶校验位。另外要注意的是,本系统使用的 GPS 接收模块的串口连接部分,它的发射线和接收线跟正常的串口线是相反的,所以需要特制一条串口线。
  
  另外,利用此串口模块还可以实现与上位机的数据通信,可以通过串口从多媒体系统向上位机传输数据,但这里只是驱动了串口,并没有通过上位机进行数据处理,串口的具体控制模块图如图 4-28 所示,包括电平检测模块、波特率定时模块、接收控制模块和发送控制模块。
  
  4.4.2 信息处理子模块
  
  接下来是数据处理模块,这部分的任务是在 Nios II IDE 中完成的,主要是利用 C 语言结合 HALAPI 函数来进行数据的处理。整个程序主要包括,对 GPS信息的接收、提取、缓存和最后的显示几个部分进行。图 4-29 为 GPS 信息处理的软件流程图。
  
  图 4-29 中 string[i]为用来存储一组完整的 GPS 信息,section_id 是用来标志信息的属性,本系统接收的是 RMC 格式的信息,一组数据有 13 项信息,最前面有标识符号$GPRMC,最后有结束标记*3B,中间的十一项信息之间都是用逗号隔开,传输数据的顺序是固定的,所以我们利用这些标记来对信息进行整理分析,处理后分别显示出来。
  
  4.5 本章小结
  
  本章展示了在实际工程中如何利用 FPGA 技术,实现各个功能模块的操作步骤和方法。首先是负责系统节拍的时钟控制子模块的设计,第二是负责图像显示和采集功能的 LCM 显示模块和图像采集模块的设计,其中阐述了如何利用硬件语言设计 IP 控制器的方法,接着分别给出了 LCM 主控模块、图像采集模块、格式转换模块、SDRAM 读写子模块、和 I2C 控制模块的设计方案。第三,在音乐播放功模块设计中,对其中的 SPI 控制器和 Audio 控制器的实现做了详细描述。最后描述了 GPS 功能中的信息传输子模块和信息处理子模块的设计方法。
相关标签:gps论文
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站