基于S3C2410和AT2042芯片实现视频服务器的应用设计

描述

系统总体设计

硬件部分以三星公司的ARM9芯片S3C2410和韩国的专用视频芯片AT2042为核心。S3C2410主要实现系统控制功能,例如对AT2042的配置,接收视频流数据并利用USB存储设备进行存储;配置网络接口建立起完善的网络功能,以方便用户通过Internet对其进行远程访问与控制;同时,挂载U盘或硬盘,预留U口或IDE的接口,可供用户选择,实现本地的海量存储功能。

整个系统软件部分主要分为两部分:服务器端和客户端(C/S模式)。服务器端包括Bootloader的编写,Linux操作系统内核的生成,系统文件的配置以及用户应用软件(实时视频传输、录像、远程回放、抓拍);客户端是通过输入IP地址访问指定的服务器,这时客户端会通过网络从服务器端下载并安装预先设计的ActiveX控件,用户可以通过这个控件实现实时监控、视频回放、图像抓拍等功能。系统总体框图如图1所示。

芯片

2 系统硬件设计

硬件系统主要由视频编解码部分、网络传输部分、本地存储部分、其他外设和接口部分组成,如图2所示。包括S3C2410和AT2042、NAND Flash和SDRAM、数/模转换芯片TVP5150和模/数转换芯片SAA7112以及网卡芯片LAN91C11。接口包括USB接口、IDE接口、网卡接口、电源接口等。

芯片

2.1 视频编解码部分

视频编解码电路主要包括模/数转换电路和视频压缩/解压芯片AT2042。其中,AT2042主要负责对经模/数转换芯片TVP5150转换来的数字视频数据进行硬件压缩。压缩编码过程中,摄像头采集的模拟视频信号先经过TVP5150进行前端处理,产生符合AT2042视频接口标准的数字视频信号。在S3C2410的控制下,该数字视频数据由压缩/解压芯片AT2042进行硬件压缩编码,产生的编码数据流通过芯片内部集成的Mux FIFO接口输出。网络视频服务器的解压缩编码是压缩编码的逆过程,需要解压的数据流通过AT2042内部集成的Demux FIFO接口输入,解压缩编码电路基本原理类似于压缩编码,这里不再赘述。视频编码电路框图如图3所示。TVP5150是TI公司生产的一款电视信号解码专用芯片。它对输入的模拟信号进行A/D转换,TVP5105支持NTSC/PAL/SECAM三种制式,实现模拟视频信号转换为数字并行信号ITU-R BT.601或ITU-RBT.656码流格式。由于AT2042视频接口满足ITU.RBT656标准,故TVP5150输出配置为8位的YUV422格式。

芯片

解码芯片TVP5150的AIPIA模拟信号输入口与摄像头的信号输出端相连,并向压缩编码芯片AT2042传送视频信号。由于TVP5150分场同步脉冲和行同步脉冲,分别对应的输出端为VSYNC和HSYNC,AT2042根据与之相连的VSYNCIN和HSYNCIN信号线来实现图像的场同步和行同步操作;AT2042的视频信号输入数据线VIN[7:0]与TVP5150的输出端YOUT[7:0]相连。AT2042将接收到的数据流传送到压缩编码单元,压缩编码后的视频数据存储到外部SDRAM中,同时通过片内的SDRAM控制器来实现对SDRAM的访问,并将数据流通过HPI总线发送到S3C2410以便通过网络传输到PC监控端,用于实现远程的实时监控。[page]

2.2 网络传输部分

主控制芯片S3C2410通过地址、数据、控制线以及片选信号线对网络芯片LAN91C11进行控制和通信。主芯片发送信号时首先置发送使能信号,数据发送信号端TXD0~TXD1与LAN91C11的TXD0~TXD1引脚连接,作为数据的发送通道以S3C2410的时钟信号TCK发送数据。数据接收端RXD0~RXD1与LAN91C11的RXD0~RXD1引脚对应连接,为数据接收通道。

LAN91C11由S3C2410选通信号线AEN来选通,通过对LAN91C11一系列寄存器的设置,可以实现视频流的网络传输。LAN91C11的INTRQ0端用来产生中断信号。以太网控制芯片通过DMA通道进行数据的传输。首先设置好传输控制和传输地址寄存器的参数,依次从指定的数据存储区域读取数据,送入内部发送缓冲器中,用MAC对数据进行封装发送,并同时记录已发送完的字节数,等到整个数据块发送完毕。一组数据发送完后请求DMA中断,由S3C2410进行处理。网络接口框图如图4所示。

芯片

2.3 本地存储部分

存储接口选用S3C2410自身的LJSB接口功能,该接口可以实现USB1.1协议。随着大容量、小体积U盘的问世,更多的用户都选择使用该存储介质。

当今的USB技术使得各种能够自行识别的外部设备与设备终端连接,并自行装载驱动程序以运行新的装置。而一般即插即用装置,需要有电源的USB接口进行数据传输并提供电源。当发生短路或连接了受损设备时,如受损的电缆或连接头插入USB接口时,必须对USB集线器及主机装置提供有效保护。USB接口的设计电路如图5所示。

芯片

2.4 其他外设和控制接口

其他外设包括Flash、SDRAM、以太网接口、串行通信接口RS232。其中,Flash用于存储操作系统内核和系统软件,待系统上电后加载到内存中;以太网接口将压缩编码后的音视频数据传输到网络;RS232接口主要用于基于控制台的配置和管理。另外,在调试过程中,RS232和以太网接口用于连接宿主机和目标系统平台,方便了网络视频服务器系统的开发和调试。

3 系统软件设计

整个嵌入式系统的软件部分由4部分组成:Boot-loader代码、Linux操作系统的内核生成和Linux下驱动程序及应用程序的开发、文件系统的生成和配置以及用户应用程序。设备驱动模块向上层软件提供一致的接口,主要包括硬件的初始化、总线内存地址映射、内存分配等,分别被存储在NAND Flash的4个分区模块中。本设计采用的是较节省空间的CRAMFS只读文件系统。

3.1 MPEG-4压缩编码的实现

AT2042支持MPEG-1、MPEG-2、MPEG-4、H.263和Motion-JPEG等多种视频压缩标准,以及ADPCM、MPEG-1 Layer-II和Lyer-III(MP3)等音频压缩标准。这些功能是通过配置相应的编码寄存器实现的,例如编码模式、编码像素点、编码帧率及设置编码流格式(PES、PS、TS)等等。本系统中采用MPEG-4模式、720X576、每秒25帧及生成PES流来对视频数据进行编码。

MPEG-4压缩编码部分完成对AT2042和TVP5150相关寄存器的配置,保证了MPEG-4数据流的正常输出。系统启动后,首先配置AT2042的寄存器,初始化完成后,通过I2C总线对TVP5150进行初始化配置。在压缩编码过程中,MPEG-4数据流接收存储程序由AT2042的数据流缓冲器标志信号来进行控制。当缓冲器满时,RISC_INT0置低,主控制器通过DMA通道把从AT2042的网卡接口接收过来的码流通过网络通道传输到PC端。其压缩编码模块程序流程如图6所示。

芯片

[page]

3.2 远程网络程序模块

网络控制模块是外部扩展应用程序与视频服务器交互的一个模块。其工作过程是:在监控终端的IE浏览器中输入网络视频服务器的IP地址,嵌入式网络视频服务器根据请求,将相应的控制页面(即ActiveX控件)反馈给IE浏览器,用户下载控件后,根据控件上的指令,进行相应的操作,然后提交。该模块提取操作的信息,根据不同信息通过socket套接口与服务器进行通信来分别处理相应的事件,如调节MPEG-4相关属性、摄像头的相关操作等。该网络控制模块的设计主要包括3部分:本地嵌入式web服务器的配置、ActiveX控件的编写、socket套接字实现服务器与监控端通信。远程网络程序模块框图如图7所示。

芯片

3.3 本地存储部分的实现

该部分主要实现的三大功能:U盘空间的监测,以系统时间来命名存储文件并将文件保存到U盘上,实现MPEG-4编码。视频编码存储主要是利用Linux系统指令、AT2042芯片的视频编码功能和自动生成传输流功能。

(1)显示U盘存储空间

首先,利用Linux系统指令与C语言的接口函数sys-tem(const char*string),执行指令会把U盘空间的容量、可用空间等信息写入设定目录下,然后利用display_string(char*string)函数将该信息显示在显示层面上。这样可以使用户很清楚地了解到可用存储空间的大小。

(2)以系统时间命名文件名

调用系统函数time、localtime,这里需要定义相应的结构体tm来获取系统时间,然后将这些信息与建立文件的路径保存在同一个字符串,调用fopen(const char*path,const char*mode)函数。这样就实现了以系统时间来命名文件名,可以方便用户按时间来查看文件。

3.4 运动图像监测的实现

该视频监控系统配置AT2042的相关寄存器,可实现运动检测的功能。通过运动检测来控制视频数据的存储和报警。运动检测(报警)算法可以控制存储动作,节省存储空间。例如,开始无运动报警信号,存储模块处于等待状态;运动报警信号到来,启动存储模块,在一定时间内如果没有继续收到运动报警信号,存储模块自动停止工作。这样存储量比连续存盘少得多,大量无运动的视频被剪截掉了,大大提高了存盘效率,有效地节省了存储空间。工作过程是这样的:预先进行检测区域设定,从摄像机来的视频信号一方面进行视频压缩,压缩的码流输出到缓冲区中;另一方面进行运动检测,当运动条件满足时发出报警信号,存储设备开始工作。存储设备一接到启动信号就将缓冲区的压缩码流全部保存下来,接着连续存储视频压缩输出的码流,直到存储控制指示停止存盘为止。运动方向的估计可以实现监控系统中的警戒线报警功能。在图像画面上设定警戒线以及方向,相应地产生一个预警区域。围绕边界线产生边界区域或边缘点集,监测是否有运动越过警戒线进入警戒区。

结 语

本视频服务器既有视频远程实时传输,又具有本地存储的功能,再配置AT2042实现多种视频格式的编码和运动检测、报警功能,使用起来方便易行,可以得到广泛的应用。该视频服务器集成普通摄像机和网络转换器,将图像转换为基于TCP/IP网络标准的数据包,使摄像机所摄的画面通过RJ-45以太网接口直接传送到网络上,通过网络即可远程监视画面。该视频服务器采用了最先进的摄像技术和网络技术,具有强大的功能。内置的系统软件能实现真正的即插即用,使用户免去了复杂的网络配置;内置的大容量内存能存储警报触发前的图像;内置的I/O端口和通信口便于扩充外部周边设备,如门禁系统、红外线感应装置、全方位云台。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分