基于FPGA和Qt技术的音频广播系统
3 终端设计
本文引用地址:https://www.eepw.com.cn/article/262225.htm 通过在SoPC中查看并更改SD卡音乐播放系统的链接结构,确定了系统的硬件平台结构如图3所示,其主要改动为增加了网络模块。
如图3所示,系统通过使用Nios II软核来处理SD卡信息的读取、发送数据到音频解码模块以及和服务器进行通信。硬件系统软件的主要处理流程如图4所示。
如图4所示,当终端上电后,首先将初始化外部设备,设置初始音量等参数。当完成后,等待SD卡插入并挂载,系统创建支持的播放列表。上述初始化工作完成后,等待服务器发送播放命令并解析该播放项在播放列表中的索引值,找到后播放系统中存储的音频文件。
通常在Nios II软核上实现UDP协议有两种方式,一种为使用LwIp的方式进行处理,另一种方式则为自己实现该协议的简化版本。本系统因所需的通信量较少,为了简化软核程序采用了自己实现的方式。自己实现UDP协议主要需要注意的问题有两点:① ARP协议的实现;② UDP报文的组包和解包操作。组包流程为首先组成UDP数据包,然后组成Ip报文最终生成以太网中传输的以太网帧。这些报文格式都可以很容易地通过相关标准得到。同时,在调试系统UDP实现情况时,可通过WireShark网络监测软件对通信过程发送的信息进行监控,提高开发效率。
在UDP基本通信完成后,设定通信中服务器端命令报文的格式为:@@命令内容@;终端命令报文的格式为:@@终端序列@命令内容@。服务器程序和终端通过解析命令帧中的命令内容进行通信。
音频编解码芯片WM8731使用I2C协议进行控制,在系统工作过程中,Nios II软核首先将检测音频DAC控制模块中的FIFO是否满,如果检测结果为非满,则Nios II软核将通过Avalon总线读取512字节数据到FIFO中。音频DAC控制模块采用48 KHz的采样频率将数据送到音频解码模块。目前系统实现所支持的文件格式只有采用48 KHz采样频率和16bit采样深度的wav格式文件。所支持的SD卡文件格式为FAT格式。
3 总结
本文介绍了一种使用软硬件相结合实现的网络定时音频广播系统,在Altera原有项目资源的基础上通过扩展实现网络通信UDP协议、通信协议制定、服务器程序设计进行设计。从上文中可以看出,本文所实现的平台目前功能还比较单一,有待于借助网络平台的优势对系统进一步扩展,增加如视频监控、在线点播、流媒体播放等构成真正意义上的IP广播方案。
参考文献:
[1]陈琳.基于校园网的嵌入式广播系统设计[J].计算机与数字工程,2009,37(7):96-98
[2]徐源.基于 FPGA 的以太网音频广播系统的设计[D].大连海事大学,2011
[3]HAI X,ZHAO C,JIANG X.Train Station Classification for Passenger Dedicated Line[J]. International Journal of Advancements in Computing Technology,2012,4(15)
[4]Altera DE2 多媒体开发平台[R/OL].http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=China&CategoryNo=60&No=31&PartNo=4
[5]LU Z,Li J,ZHANG Y.The reading/writing SD card system based on FPGA[C].Pervasive Computing Signal Processing and Applications (PCSPA), 2010 First International Conference on.IEEE,2010:419-422
[6]UEHARA T,SATO T,YAMAOKA K.The design and implementation of a music broadcasting system via IP multicast with user-authentication[C].Communications, Computers and signal Processing,2003.PACRIM.2003 IEEE Pacific Rim Conference on.IEEE,2003(2):984-987
[7]Liang Hongwei,Li Jiangai,Kan Lingling.Implementation of SD Card Music Player Using Altera DE2-70[C].Multimedia and Signal Processing (CMSP), 2011 International Conference on.IEEE,2011(2):150-153
fpga相关文章:fpga是什么
c++相关文章:c++教程
评论