张莹 郭卉 张志利
摘 要:采用美国飞思卡尔公司生产的一款基于ARM Cortex-A9体系结构的高性能CPU 即i.MX6Q,对网络音频视频播放进行研究,制作了音频视频播放器平台,解决了本地和网络进行视频播放的问题,该平台可以在Linux系统上播放音频和视频。
关键词:Linux;ARM9;i.MX6Q;音视频播放
ARM开发平台是当前使用广泛的主流嵌入式处理器体系结构,以ARM为核心的嵌入式系统在数字音频播放器、数字机顶盒、游戏机、数码相机、数字式电视机、GPS、机顶盒中得到广泛采用 [ 1 ]。
本文网络音频视频播放进行研究,制作了音频视频播放器平台,解决了本地和网络进行视频播放的问题,该平台可以在Linux系统上播放音频和视频。
1 硬件结构
I.MX6Q是飞思卡尔公司推出的iMX6处理器后紧跟着推出的面向工业互联网,汽车电子,军工,航天等领域的二次开发参考设计平台,包含了一颗1.2GHz主频的Cotex-A9处理器。
1.1 I.MX6Q的音频接口电路
飞思卡尔公司的I.MX6Q为本音频系统的核心,内置视频处理单元(VPU),支持多种格式的全双工视频影像处理,不占CPU资源。
三个硬件加速图形处理单元(GPU):支持3D,2D图形加速和矢量加速(Open VG)。
两个独立的影像处理单元(IPU):连接摄像头和显示通路以及相关的处理,同步和控制。
对总线扩展器模式进行设置,语音控制芯片为飞利浦公司的音频控制芯片UDA1380,通讯方式为集成电路内置音频总线方式和集成电路总线方式。
1.2 I.MX6Q的显示电路
LCD作为人机接口的终端被广泛应用,本文视频系统功能中的播放功能采用LCD实现影像播放。
本系统作为功能实现为主要目的,对相应时间、可视角度、刷新率没有特殊要求,只考虑屏幕显示图像的精细程度及分辨率,采用3.5寸的液晶LCD QVGA。
2 音视频驱动实现
2.1 系统驱动
在系统内部,I/O设备的存取通过一组固定的入口来进行,这组入口点是由每个设备的驱动程序提供的[ 2 ]。
系统所需外部驱动程序通过驱动程序的file_operations结构来实现,该结构函数是驱动程序面向用户的接口,在Linux 2.4里面,只要实现了file_operations里面的那些成员函数,即实现了驱动程序的编写,读取file_operation的函数指针,并且把控制权转交给函数,即完成设备驱动程序。
具体方法是,在用户自己编写定义file_operations结构和设备驱动函数,编写时要注意此操作函数必须在内核中进行注册,否则不能识别。
2.2 音频驱动
在Linux下对本音视频播放系统进行编程时核心是操作声卡设备的驱动程序文件[ 3 ],主要有Mixer编程和DSP编程[ 4 ]。
3 系统综合测试
使用網络接口把Mplayer媒体播放器复制到系统平台。实际测量中首先使用用Ping 命令查看是否网络相通,网段要求一致,测试方法是在终端设备键入ping 192.168.2.99。退出使用 umount /mnt/nfs。进入硬件系统后执行mount o nolock 192.168.2.136:/ /mnt将代码复制到到开发平台的ramdisk中,启动运行mplayer,播放一个上传的视频文件,即可在LCD液晶屏上播放也可以在开发板的/etc/init.d/rcS文件中加入上面的命令脚本, LCD播放效果如图1所示。
4 总结
本文搭建了一个基于ARM为控制核心的网络音视频播放系统,该系统采用飞思卡尔公司生产的一款基于CORTEX-A9内核的高性能CPU即I.MX6Q。
对网络音频视频播放进行研究,制作了音频视频播放器平台,解决了本地和网络进行视频播放的问题,该平台可以在Linux系统上播放音频和视频,对于嵌入式播放音视频研究有一定的积极意义。
参考文献:
[1] 飞思科技产品研发中心,主流ARM嵌入式系统设计技术与实例精解.北京:电子工业出版社,2006.
[2] 于明,范书瑞,曾祥烨.ARM9嵌入式系统设计与开发教程[M].北京:电子工业出版社,2006.
[3] 何泉,贺玉梅.基于AT91RM9200的嵌入式音频系统设计[J].微计算机信息,2007,(23):12-14.
[4] 高建华,王殊,基于I.MX6Q型微处理器和UDA1341型立体声音频编解码器的嵌入式音频系统设计[J].国外电子元器件,2006,(6):35-37.