新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > DIY之乐:基于PIC32的以太网音箱设计案例,硬件框图、器件选型、数据结构、软件流程

DIY之乐:基于PIC32的以太网音箱设计案例,硬件框图、器件选型、数据结构、软件流程

作者:时间:2014-05-09来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/256940.htm

4.2以太网终端设备软件设计

4.1.1缓冲区数据结构设计

下面是一个数据单元的结构体。ucIndex为数据包序号;uiHeader该数据类型;uiSize为解码的数据个数,数据单位为字节;ucBuffer为MP3解码后的PCM码流;fiInfo为针砭信息。解码后的最大的数据长度为2304,因此将ucBuffer定义最大长度为2400。


考虑到网络的传输的可能出现一些抖动、PC软件定时器的误差和需要给MP3解码预留时间,因此需要在终端设备中缓冲一定的数据量。又由于,MP3音频要实时播放因此不需要缓冲太大的数据量。

在本次设计中,在终端设备里将上面的数据结构定义为20个缓冲区。当数据缓冲解码到数据缓冲区个数的一半时,开始播放PCM码流。

4.1.2以太网终端设备软件设计

以太网终端设备模块有三个分别是EthernetSpeaker.c、EthernetSpeakerPlayer.c和MP3Api.c。EthernetSpeaker.c的功能是负责网络通讯模块,EthernetSpeakerPlayer.c是DA驱动模块,MP3Api.c中包含MP3库载入初始化,和MP3解码函数。

图13以太网音响终端设备程序流程图

图13描述了以太网终端设备程序流程图,通过SW3按键向PC程序发送请求数据。图14中描述了以太网终端设备的SP3 TX空的中断服务程序。

图14以太网终端设备SPI TX空中断服务程序流程图

5总结

本文实现了以太网音响在现有的以太网上可以播放MP3文件,解决了传统模拟广播系统的模拟的信号的缺点。实现了PC服务器匀速发送MP3帧文件,终端设备软解码并实时播放。最后的成品可以在局域网上流畅播放、控制终端设备。设计基本达到了赛前的设计需求。当然,本次设计还是有遗憾和不足之处,遗憾的是由于不支持I2S,所以只有用SPI驱动DA,导致了只能播放单声道。

DIY机械键盘相关社区:机械键盘DIY


模拟信号相关文章:什么是模拟信号


数字通信相关文章:数字通信原理



上一页 1 2 3 4 5 6 下一页

评论


相关推荐

技术专区

关闭