新闻中心

EEPW首页>嵌入式系统>设计应用> 基于GM8180的嵌入式视频服务器设计

基于GM8180的嵌入式视频服务器设计

作者: 时间:2010-04-01 来源:网络 收藏

1.3 其他模块
网络方面,集成了以太网接口控制器,支持RMII接口,可直接连接以太网物理接口芯片DM9161A。DM9161A是Davicom公司生产的一款低功耗、高性能的以太网物理层芯片,它完全兼容IEEE 802.3u 10Base-T/100:Base-TX标准,同时兼容ANSI TP-P(如1995)标准;支持MII和RMII两种接口模式,可完成对网络数据的接收解码和对数据帧的编码发送。
此外,实时时钟芯片S35390A通过I2C总线连接主芯片为系统提供准确、不间断的时间信息以及定时报警服务。

本文引用地址://m.amcfsurvey.com/article/151974.htm

2 系统软件
在软件的上,采用ARM-Linux 2.6操作系统作为服务器软件的承载平台。ARM-Linux的源代码完全免费开放,内核可任意裁剪,应用程序和驱动都非常丰富。在ARM-Linux操作系统的基础上,通过Vide04Linux(V4L)接口采集的视频图像交由片内的H.264编码引擎进行压缩编码;音频上,通过OSS接口采集PCM数据进行自适应多速率窄带语音(AdaptiveMulti-Rate NarrOWband,AMRNB)编码。通过RTSP流媒体服务器为用户提供实时的音视频访问服务。
2.1 视频采集驱动
V4L是Linux下用于获取视频数据的通用API接口。将GM8180的视频采集封装成V4L接口,以便位于应用层的RTSP服务器开发使用。V4L驱动程序需向操作系统内核注册video_device设备,用于指定文件操作接口,使得用户层可以通过标准文件操作来采集视频。
视频采集的流程如图4所示,用户设置采集参数(例如图像分辨率)时,驱动需要完成SAA7113H和GM8180片上视频采集控制器的寄存器设置,以及驱动内核态下图像数据缓冲区的分配等工作。此后,应用层以VIDIOCMCAPTURE标志和VIDEOSYNC标志为参数循环调用ioctl()函数来获得视频图像数据。


当应用程序以VIDIOCMCAPTURE标志调用ioctl()函数时,驱动检查采集控制器和DMA状态,如果当前是正常的采集状态,则ioctl()系统调用返回;如果当前不是正常的采集状态,则重新触发采集控制器和DMA。当应
用程序以VIDEOSYNC标志调用ioctl()函数时,驱动先判断采集缓冲区内是否有图像数据,没有则将调用者挂起在采集等待队列中。直到采集完1帧完整的数据,在DMA中断响应函数中调用wake_up()函数将采集等待队列中的进程唤醒,返回图像数据给应用层调用者。
2.2 H.264编码引擎
GM8180片上集成支持基线档次的H.264编码引擎,该编码引擎遵循AMBA 2.0总线规范。H.264编码引擎通过AHB总线与主CPU和其他片上模块相连。编码引擎同时具有AHB主、从模块功能:
◆当主CPU访问编码引擎内部寄存器时,编码引擎为从模块,主CPU作为主模块;
◆当编码引擎通过内建DMA读写系统内存时,编码引擎为主模块,DDR控制器为从模块。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭