以嵌入式Linux 作为操作系统的网络摄像机
Ofweek 2022-08-02

  随着通信技术和网络技术的迅猛发展, 通过网络远程实时监控重要场所已倍受人们关注, 网络摄像机在此背景下产生, 并成为人们关注的焦点。网络摄像机要将高清晰度的实时视频信息通过互联网传送到监控终端, 因其信息量巨大, 所以必须压缩。通常人们采用DSP 与MPEG- 4 算法相结合的方案来实现, 不仅编程工作量大, 而且产品的成本高。本文所介绍的网络摄像机采用专用的MPEG- 4 压缩芯片、以嵌入式Linux 作为操作系统, 不仅开发便捷、成本低廉, 而且实时性好, 适用范围广。

 系统总体设计

  系统总体设计包括硬件设计和软件设计两部分。硬件设计模块主要包括模块、压缩编码模块、网络接口模块和相机控制模块四部分。微控制器模块主要由主控芯片、DataFlash 和SDRAM(1)组成。其中, 主控芯片是整个控制系统的核心, 它负责整个系统的调度工作。DataFlash 里固化了嵌入式Linux 内核、及其文件系统、应用软件和系统配置文件。SDRAM(1)作为内存供系统运行使用。压缩编码模块由视频数据采集芯片、MPEG- 4 压缩编码芯片、SDRAM(2)组成,负责将视频流转化为MPEG- 4 码流。网络接口模块主要是配合主控芯片传送MPEG- 4 码流。相机的控制模块主要由串口芯片组成, 其完成转发控制相机命令的功能。当系统启动时, 微控制器通SPI( Serial PeripheralInterface, 串行外设接口) 将Linux 内核转入SDRAM( 1) 中, 系统从SDRAM( 1) 中启动。系统启动后, 微控制器通过HPI(Host Peripherial Interface, 主机接口)控制MPEG- 4 编码模块。统结构如图1 所示。

 系统总体设计

  软件设计部分主要包括嵌入式Linux 移植、MPEG- 4 压缩编码模块、CGI 控制程序和MPEG- 4 解码程序四部分。嵌入式Linux 系统存放到由AT91RM9200 控制的DataFlash 里,它负责整个系统软件的调度工作。MPEG- 4 压缩编码模块主要负责模拟视频流的采集, 并将数字视频流压缩为MPEG- 4 数据流。CGI 控制程序主要负责对摄像机的控制和对MPEG- 4 视频流的相关设置。MPEG- 4 解码程序主要负责对通过网络得到的MPEG- 4 数据流的解码工作。

 硬件设计

  模块

  微控制器是本系统的核心部件, 选用的是ATMEL公司的AT91RM9200。它是一款基于ARM920T 核的32位微控制器。其主频为180MHz, 处理速度快, 功能强, 性价比高, 能很好满足嵌入式Linux 系统的需求。它在系统中的主要作用是在系统上电时配置其他芯片的功能寄存器, 在正常工作状态下调度控制整个系统工作, 通过片内以太网控制器控制物理层芯片发送码流。

  AT91RM9200 通过片内的SPI 总线和SDRAM控制器实现对外围DataFlash 和SDRAM的控制, 利用片内的USART 实现对串口芯片的控制, 通过片内的以太网控制器对片外网络芯片进行控制。其控制原理图如图2 所示。

微控制器模块

  压缩编码模块

  压缩编码模块包括模拟视频采集模块和MPEG- 4压缩模块。视频采集芯片采用TI 公司的TVP5150, 数据压缩芯片采用映佳公司的MPG440。TVP5150 输入端可是两种混合视频信号也可是S- Video 端子的视频信号, 支持NTSC、PAL、SECAM等3 种制式, 其输出的数据色彩格式可以为8bit 4: 2: 2 数字信号或者8bit 同步ITU- R BT.656 数字信号。MPG440 芯片具有符合工业标准的16b/32b 的双向主机接口, 分别用来与视频采集芯片和微控制器芯片通信。同时, 具有移动侦测、防伪水印、动态调整IP 画格比率、动态调整图像质量等特性, 支持D1、VGA、CIF、QVGA、QCI 等五种分辨率模式。微控制器通过主机接口实现MPG440 的初始配置, 也由此接收MPEG- 4 码流。压缩编码模块的硬件设计原理如图3 所示。

压缩编码模块

  TVP5150 的AI 模拟输入口与模拟摄像头输出端连接, 向视频处理芯片传送模拟视频信号。模拟信号经过采样处理之后通过YOUT0~YOUT7 引脚送到MPG440, 采样数据在PCLK 的上升沿有效, MPG440的VIDEO_CLK 在收到PCLK 的上升沿时获得YOUT的信号。TVP5150 分场同步脉冲和行同步脉冲, 分别对应其输出端VSYNC、HSYNC。MPG440 正是根据与之相连的VSYNC 和HSYNC 信号线来实现图像的场同步和行同步操作。MPG440 的视频输入数据线DATA_TV0 ~DATA_TV7 与TVP5150 的YOUT0 ~YOUT7 相连。MPG440 在接收数据的同时, 将其得到的数据流传送给MPEG- 4 压缩编码单元, 编码后的MPEG- 4 数据流暂存到SDRAM(2)中。MPG440 片内PDMA 控制器根据配置寄存器的设置准确发起对SDRAM(2)访问, 同时将得到的数据流输送往HPI(主机总线接口,Host Peripherial Interface) , 以等待AT91RM9200 通过DMA 通道将数据发送到网络。

  MPG440 通过HPI 与AT91RM9200 通信,AT91RM9200 将MPG440 的寄存器、存储空间等资源作为其本身内存寻址访问。MPG440 由AT91RM9200选通线NCS4 来选通, 其在AT91RM9200 寻址空间中的地址段为0X50000000 到0X5FFFFFFF。通过对MPG440 一系列寄存器的设置, 可以访问MPG440 系统存储空间。MPG440 中断信号RSC_INT0 从通用I/O引脚的PB29 输入, 当缓冲器填满时, RSC_INT0 引脚置低提示AT91RM9200 通过DMA 通道提取MPEG- 4数据流。编码后视频数据读取过程和MPG440 与主机通信过程由AT91RM9200 读信号CFRD 和写信号CFWE 控制。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 基于C51单片机实现汽车座椅自动控制系统的软硬件设计

    引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节...

    前天
  • MCS51单片机程序设计时堆栈的计算方法解析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己...

    前天
  • 51单片机定时器工作原理及用法

    TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。...

    前天
  • 51单片机学习单片机之路总结

    学习单片机有一学期了,现在也由51转到STM32了。一直想对51的学习做一个总结。也希望对别人有一些启发。也给后学者提供一些建议。当然本文是我对自己学习过程的总结,若有不对的地方,还请高手指出。 我想,再看本...

    前天
  • hot51增强型单片机开发板原理图

    功能要求: 一):绿灯25s倒计时,绿灯过度红灯有5s黄灯时间,红灯25s后直接跳绿灯。 二):按键按下模拟闯红灯输入,产生5s蜂鸣器鸣叫。 开发环境: 软件:Keil uVision4 硬件:HOT51增强型单片机开发板 程序代码:...

    07-01
  • 51单片机的延时子程序

    延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指令周期的区别和联系...

    07-01
  • 什么是Flash盘?Flash盘的结构是什么样的?

    Flash是大家常使用的存储之一,对于Flash,大家或多或少有所了解。上篇文章中,小编对Flash闪存的类型有所介绍。为继续增进大家对Flash的认识,本文将对Flash盘、Flash盘结构以及Flash读写操作予以介绍。如果你对本...

    07-01
  • 深谈嵌入式系统,嵌入式系统是如何组成的?

    嵌入式系统在生活中有诸多应用,大家对于嵌入式系统或多或少有所耳闻。在前两篇文章中,小编对嵌入式系统进行过详细介绍。为继续增进大家对嵌入式系统的认识,本文将对嵌入式系统的组成加以说明。如果你对嵌入式系...

    06-27
  • 嵌入式系统秘籍共享,最全嵌入式系统解析

    嵌入式系统的应用十分广泛,因此越来越多的人学习嵌入式系统。由此,在学习嵌入式系统之前,我们应当对嵌入式系统具备一些认识。所以在本文余下部分,小编将对嵌入式系统进行全面解析。如果你对嵌入式系统具有兴趣...

    06-27
  • 51单片机超声波测距程序详解

    51单片机超声波测距程序详解 超声波四通道测距:超声波测距实现分为三大块: 其一是12864带字库的液晶驱动程序: 代码如下: /////////////////12864驱动程序/////////////////////////// //1写数据 void WriteDat...

    06-25
  • 51系列单片机的引脚图

    51系列单片机的引脚图 端子介绍 l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8...

    06-25
  • 51单片机串口通信需要加超时中断吗?

    接收数据时,超过一定时间就算出错. 这个超时的时间是单片机自己算出的吗?超时的时间是由编程序的人定的,他定多长就多长从一段程序开始 实现电脑向 单片机发送一些数据,单片机返回Iget +数据 #include #define u...

    06-25
下载排行榜
更多
评测报告
更多
广告