0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:单片机与嵌入式系统应用 作者:张石 , 赵百超 , 王 2020-08-12 09:39 次阅读

系统总体设计

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

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

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

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

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

    关注

    447

    文章

    47788

    浏览量

    409105
  • 三星电子
    +关注

    关注

    34

    文章

    15604

    浏览量

    180118
  • 服务器
    +关注

    关注

    12

    文章

    8116

    浏览量

    82507
收藏 人收藏

    评论

    相关推荐

    基于S3C2410AT2042芯片实现服务器的远程监控系统的设计

    硬件部分以三星公司的ARM9芯片S3C2410和韩国的专用视频芯片AT2042为核心。S3C2410
    的头像 发表于 10-19 10:06 3463次阅读
    基于<b class='flag-5'>S3C2410</b>和<b class='flag-5'>AT2042</b><b class='flag-5'>芯片</b><b class='flag-5'>实现</b><b class='flag-5'>服务器</b>的远程监控系统的设计

    基于嵌入式Linux与S3C2410平台的视频采集

    基于嵌入式Linux与S3C2410平台的视频采集首先简介基于嵌入Linux系统的S3C2410平台和在平台上进行开发所需要的软件环境,接着详细论术在该平台上如何实现
    发表于 03-28 12:51

    s3c2410 datasheet 中文数据手册

    s3c2410 datasheet 中文数据手册 s3c2410采用了ARM920T内核,0.18um工艺的CMOS标准宏单元和存储单元。它的低功耗,精简和出色的全静态设计特别适用于对成本和功耗
    发表于 11-13 12:10

    LCD基础及S3C2410 LCD控制

    LCD基础及S3C2410 LCD控制
    发表于 08-17 20:56

    基于S3C2410控制的金融税控机的设计与实现

    基于S3C2410控制的金融税控机的设计与实现
    发表于 08-20 09:26

    基于S3C2410的GPRS数据终端的设计

    基于S3C2410的GPRS数据终端的设计
    发表于 08-20 16:18

    s3c2410 触摸屏

    s3c2410 触摸屏资料
    发表于 04-28 01:02

    S3C2410处理

    S3C2410处理通过GPD端口连接LED1-4四个灯,试着画出其电路连接图,并变成实现其逐一点亮功能。
    发表于 11-23 21:50

    S3C2410中文手册全集

    S3C2410中文手册全集 新手换积分
    发表于 01-19 11:33

    基于S3C2410AT2042芯片设计的远程监控功能的视频服务器

    视频服务器既有视频远程实时传输,又具有本地存储的功能,再配置AT2042实现多种视频格式的编码
    发表于 11-26 07:21

    如何用Allegro对s3c2410的BGA封装布线?

    如何用Allegro对s3c2410的BGA封装布线?
    发表于 04-26 06:49

    基于S3C2410的黄金矿工游戏的设计资料分享

    。① 输出部分包括: 4个发光led、蜂鸣器。② 控制部分包括:键盘的*键,#键,B键。③ 显示部分LCD显示屏上可以实时的显示矿工挖矿的状态。游戏功能分析要实现S3C2410 ARM处理和嵌入...
    发表于 12-24 06:20

    基于AT2042的网络视频服务器设计

    详细介绍了Pentamicro 公司的2通道A/V 编解码器AT2042的功能结构、主要特点和通信接口的基础上,提出了一种基于AT2042的网络视频服务器的设计与
    发表于 05-17 15:42 29次下载
    基于<b class='flag-5'>AT2042</b>的网络<b class='flag-5'>视频</b><b class='flag-5'>服务器</b>设计

    AT2042,pdf datasheet

    本内容提供了AT2042芯片的资料
    发表于 06-08 18:45 41次下载
    <b class='flag-5'>AT2042</b>,pdf datasheet

    视频编解码器AT2042的linux设备驱动程序设计

    论文在分析各种多媒体压缩标准的基础上,详细介绍了Pentamicro 公司的2 通道A/V 编解码器AT2042 的功能结构和主要特点,提出了一种基于AT2042 芯片的网络视频
    发表于 11-07 15:10 36次下载
    音<b class='flag-5'>视频</b>编解码器<b class='flag-5'>AT2042</b>的linux设备驱动程序设计