DIY之乐:基于PIC32的以太网音箱设计案例,硬件框图、器件选型、数据结构、软件流程
4软件设计
本系统的整个设计包括以太网音响终端设备软件设计和PC服务器软件设计。以太网音响终端设备实现了UDP数据通信,MP3软解码和DAC 驱动。而PC服务器软件实现了对MP3文件的初步分析,分析提取MP3帧;通过TCP/IP的socket,以MP3帧为最小单位,按每秒26耗描匀速发送给以太网音响终端设备。
4.1PC服务器软件设计
4.1.1通信数据结构设计
PC服务器利用非连接UDP和以太网音响终端设备通信,因此在应用上传输的数据大小不宜超过数据链路层上的最大数据单元。因为,如果超过数据链路层的上最大数据单元,会造成数据在数据链路层上被拆分,而且由于数据在UDP上的不可靠性,会导致由于整批数据中的一个分段丢失导致了整个数据错误,因此应用上传输的最大数据大小应小于数据链路层上的最大数据单元。
上面就是发送的数据结构。usDataHeader是数据包头部分,其高4为该数据的类型:0x1表示该数据的为MP3帧,0x03表示该数据为MP3最后一帧;第27位到第20位为数据序号;第19位到第16位为保留字段;低16位为MP3帧数据大小。ucDataBuffer为MP3数据帧。
4.1.2应用程序界面设计
图9展示了PC程序的主界面,其分别有服务器设置,设置IP地址、端口和音频文件。音频属性中显示了选中音频的相关信息。以太网音响信息,会显示终端设备的IP地址和它的端口号。播放控制和现实中现实了播放间隔和相应的数据包长度,并且可以控制是否发送数据和停止。
图9 PC程序界面
4.1.3应用程序设计
PC服务器可以配置绑定本机网卡地址和端口号。然后选择MP3音频节目,等待以太网终端设备发起数据请求。当收到终端设备发来的连接请求时,将其IP地址和发送数据的端口号记录下来,作为向终端设备发送数据的地址并将该信息现实到PC程序的界面上。
图10PC服务器主程序
图11PC服务器等待请求线程
图12PC服务器发送数据定时器中断
PC服务器在开启时候会运行主界面程序(其流程图如图9所示)和接收终端设备请求线程(其流程图如图10所示)。当用户播放数据之后,程序会运行定时器终端程序,定时发送MP3数据帧。
DIY机械键盘相关社区:机械键盘DIY
模拟信号相关文章:什么是模拟信号
数字通信相关文章:数字通信原理
评论