基于AT91RM9200的嵌入式网络摄像机的设计与实现

发布者:TranquilJourney最新更新时间:2012-09-22 来源: 微计算机信息 关键字:AT91RM9200  网络摄像机  监控 手机看文章 扫描二维码
随时随地手机看文章

1. 引言
随着通信技术和网络技术的迅猛发展,通过网络远程实时监控重要场所已倍受人们关注,网络摄像机在此背景下产生,并成为人们关注的焦点。网络摄像机要将高清晰度的实时视频信息通过互联网传送到监控终端,因其信息量巨大,所以必须压缩。通常人们采用DSP与MPEG-4算法相结合的方案来实现,不仅编程工作量大,而且产品的成本高。本文所介绍的网络摄像机采用专用的MPEG-4压缩芯片、以嵌入式Linux作为操作系统,不仅开发便捷、成本低廉,而且实时性好,适用范围广。
2. 系统总体设计
系统总体设计包括硬件设计和软件设计两部分。硬件设计模块主要包括微控制器模块、压缩编码模块、网络接口模块和相机控制模块四部分。微控制器模块主要由主控芯片、DataFlash和SDRAM(1)组成。其中,主控芯片是整个控制系统的核心,它负责整个系统的调度工作。DataFlash里固化了嵌入式Linux内核、及其文件系统、应用软件和系统配置文件。SDRAM(1)作为内存供系统运行使用。压缩编码模块由视频数据采集芯片、MPEG-4压缩编码芯片、SDRAM(2)组成,负责将视频流转化为MPEG-4码流。网络接口模块主要是配合主控芯片传送MPEG-4码流。相机的控制模块主要由串口芯片组成,其完成转发控制相机命令的功能。当系统启动时,微控制器通SPI(Serial Peripheral Interface,串行外设接口)将Linux内核转入SDRAM(1)中,系统从SDRAM(1)中启动。系统启动后,微控制器通过HPI(Host Peripherial Interface, 主机接口)控制MPEG-4编码模块。统结构如图1所示。

图1 系统结构框图
软件设计部分主要包括嵌入式Linux移植、MPEG-4压缩编码模块、CGI控制程序和MPEG-4解码程序四部分。嵌入式Linux系统存放到由AT91RM9200控制的DataFlash里,它负责整个系统软件的调度工作。MPEG-4压缩编码模块主要负责模拟视频流的采集,并将数字视频流压缩为MPEG-4数据流。CGI控制程序主要负责对摄像机的控制和对MPEG-4视频流的相关设置。MPEG-4解码程序主要负责对通过网络得到的MPEG-4数据流的解码工作。
3. 硬件设计
3.1微控制器模块
微控制器是本系统的核心部件,选用的是ATMEL公司的AT91RM9200。它是一款基于ARM920T核的32位微控制器。其主频为180MHz,处理速度快,功能强,性价比高,能很好满足嵌入式Linux系统的需求。它在系统中的主要作用是在系统上电时配置其他芯片的功能寄存器,在正常工作状态下调度控制整个系统工作,通过片内以太网控制器控制物理层芯片发送码流。
    AT91RM9200通过片内的SPI总线和SDRAM控制器实现对外围DataFlash和SDRAM的控制,利用片内的USART实现对串口芯片的控制,通过片内的以太网控制器对片外网络芯片进行控制。其控制原理图如图2所示。

图2 控制原理图
3.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所示。[page]

图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控制。
3.3网络模块
网络模块硬件设计原理如图4所示。

图4 网络模块电路
AT91RM9200的在片以太网卡端口和网络物理层芯片DM9161E的MII接口通信。发送数据时,首先置发送使能信号ETXEN有效。数据发送端ETX0~ETX1与DM9161的ETXO~ETX1引脚对应连接,作为数据发送通道,以DM9161E的时钟信号REF_CLK发送数据。数据接收端ERX 0~ERX1与DM9161E的RXDO~RXD1引脚对应连接,作为数据接收通道。管理时钟信号EMDC和管理数据输入输出信号EMDIO用来芯片控制参数的写入和读取。DM9161E的MDINTR端用来产生中断信号。
片内以太网卡通过DMA通道进行数据的发送,不影响AT91RM9200的正常运行。首先正确设置传送控制寄存器和传送地址寄存器的传送数据块字节数、数据块存储首地址等参数,随后依次从指定数据存储区地址读取1024b数据,送入内部发送缓冲器中,由MAC对数据进行封装发送,同时记录已传送字节数,直到数据块发送完毕。当发送完一组数据后,发出DMA中断请求,由AT91RM9200进行相应的处理。整个网络子系统电路由AT91RM9200控制和调度。
4.软件设计
嵌入式Linux系统主要由四个部分组成:引导内核启动的文件(bootloader)、Linux内核文件(kernel)、虚拟磁盘文件(ramdisk)、用户空间文件(user)。它们分别被放在DataFlash内的四个分区模块中。根据不同模块的具体功能采用不同的文件系统:bootloader、kernel、ramdisk,移植完成后不需要动态改变,使用较节省空间的ROMFS只读文件系统;user模块内放置一些可以动态更新的配置文件等,需要进行较多的读写操作,所以使用支持动态擦写保存的JFFS2文件系统[1]。
Linux移植技术已经成熟,本文不作详细的阐述。下文主要介绍MPEG-4压缩编码模块和CGI模块的程序设计。

[page]

4.1 MPEG-4压缩编码模块程序设计
该模块主要完成MPG440和TI5150相关寄存器的配置,并保证MPEG-4码流的正常输出。当嵌入式Linux系统启动后,首先配置MPG440的相关寄存器,其初始化完成后,通过I2C总线对TVP5150进行初始化配置[2]。当系统开始压缩编码时,MPEG-4码流接收存储程序由MPEG-440的数据流缓冲器标志信号控制。当1024b缓冲器满时,RISC_INT0置于低电平,微控制器通过DMA通道从MPG440的HPI口将码流送到PC机端。MPEG-4压缩编码模块程序流程如图4所示。

图5 MPEG-4压缩编码模块程序流程图
4.2 CGI程序模块设计
CGI(Common Gateway Interface)是外部扩展应用程序与WWW服务器交互的一个标准接口。本系统CGI的工作过程:在PC机端的IE浏览器中输入网络摄像机IP地址,嵌入式网络服务器根据请求,将相应的控制页面反馈给IE浏览器,用户填写表单,然后提交,CGI程序提取表单的信息,根据不同信息来分别处理相应的事件,如调节MPEG-4相关属性、相机的相关操作等。CGI控制原理如图5所示。

图6 CGI控制原理图
CGI模块的设计主要包括三部分:嵌入式web服务器的配置、html页面的编写、CGI程序的设计。
嵌入式web服务器采用的是Apache,其配置是以配置文件的形式提供,放在Ramdisk中/etc/httpd/conf/目录下。其配置主要涉及以下三个方面:
○1配置根文件的路径:“DocumentRoot  /home/httpd/html”,html页面必须放到此目录下。
○2配置CGI外部程序所放的路径:“ScriptAlias /cgi-bin/ home/httpd/cgi-bin/”。
○3配置环境变量:“SetEenv D_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib”,该变量将会被传送到 CGI 脚本和SSI页面,以保证CGI程序能正确找到所依赖的库。
网页编写采用html与shtml相结合的方式。html的解析速度较快,shtml可以在普通网页中嵌入外部CGI程序,通过这种方式将系统的默认配置反馈给客户端。
CGI程序采用的是C语言和shell脚本相结合的方式, 具体编写过程,与通常的了Linux下编程相同。限于篇幅,不再赘述。
4.3 MPEG-4解码程序
映佳科技已提供供二次开发的MPEG-4解码插件OCX,OCX在PC机端注册后,OCX函数可方便地被网页调用,从而实现在PC机端观看实时图像。
5 总结
 本文介绍了一种利用AT91RM9200、TVP5150,MPG440和DM9161E等芯片设计的嵌入式网络摄像机。经测试,该系统稳定、可靠、实时性好、图像质量出色。该产品可广泛应用于交通监控和工业监控以及家庭监控、视频会议话等众多领域。

关键字:AT91RM9200  网络摄像机  监控 引用地址:基于AT91RM9200的嵌入式网络摄像机的设计与实现

上一篇:基于AT91SAM7L的极低功耗系统设计
下一篇:基于AT91RM9200的以太网接口模块设计

推荐阅读最新更新时间:2024-03-16 13:09

基于单片机DHT22温湿度LabView上位机监控系统设计
一、系统方案 本设计采用AT89C52单片机作为主控制器,液晶1602显示温湿度,LabView上位机通信,上位机显示温度,同时上位机可以设置温度上下限,当测量温度低于或高于上限,温度报警,上位机可以控制下位机加热设备启动与关闭,实现上位机和下位机的交换数据。 二、硬件设计 原理图如下: 三、单片机软件设计 1、单片机代码主要是串口初始化、串口中断服务程序。首先是串口初始化: void uart_init() { TMOD |= 0x20;//定时器1,工作模式2 8位自动重装 TH1 = 0xfd; TL1 = 0xfd;//设置比特率9600 SM0 = 0; SM1 = 1;//串口工作方式1,8位UART波特率可变
[单片机]
基于单片机DHT22温湿度LabView上位机<font color='red'>监控</font>系统设计
电池供电系统监控电路
很多电池供电系统都需要一个可视指示器,用于指示何时需要更换电池。一般用LED做这种指示灯,但它们至少要消耗10mA的电流。这个不小的电流会加速电池的放电,缩短电池的可用寿命。图1使用了一种采样数据技术降低了监控电路的平均功耗。该电路的待机电流为5μA,在指示低电压时耗电为30μA。   在一个采样周期内,LTC1041设置范围控制器为其两个内部比较器加电;采样VIN、SET POINT和DELTA输入端;将比较结果存储在一个输出锁存器中;然后断电。这个过程要花大约80μs。R1和C1构成的外接RC网络决定了采样速率。 图1,这个监控电路不会连续消耗电池电能,而是通过采样输入,实现5μA的待机功耗,以及30μA的低电压指
[电源管理]
电池供电系统<font color='red'>监控</font>电路
大屏监控显示将会全面进入到液晶时代
     液晶拼接拥有优异的性能、合理的价格在国内外市场受到了广泛的欢迎。因拥有高达5~8万小时的使用寿命,系统稳定,维护成本低,是目前最具性价比的大屏显示系统。因此,就目前来看,液晶拼接行业还是一个非常朝阳的行业,有很大的成长空间。     液晶拼接墙市场走高     随着国内对能源、交通等基础工业建设的投入和工业自动化、信息化进程的不断推进,大屏拼接工业化应用需求稳步增长,大型监控、指挥调度大屏拼接项目建设越来越频繁,更是出现了诸多拼接数量过百的超大尺寸拼接屏项目。而这其中受“热传递”最多的恐怕就要数液晶拼接了。     从销量上来看,液晶拼接墙近年来都实现了连续数年的高速市场增长。     技术层面上,至三星
[安防电子]
基于3G手机的视频监控系统的设计方案
随着3G 网络技术的快速发展以及3G 手机各项功能的增强, 使得利用3G 手机实现随时随地的视频监控已成为可能。而嵌入式技术作为当今IT 业的热门技术, 各种嵌入式芯片如DSP, A RM, SOC 等被广泛应用于数码、安防、交通信号采集、远程医疗等领域 , 可以预见未来便携式多功能的个人医疗数字服务终端会像手机一样普及 , 用户可以随时随地地将自己重要的生理信息实时、准确、快速地传送到远程医疗中心或家庭护理专家处, 从而得到医生的专业建议和指导, 实现远程医疗监护的应用。文献 中的无线监控系统也用到ARM9 芯片和WinCE 操作系统, 但对软件设计部分论述不清晰, 文献 论述的基于ARM 的无线视频监控系统只介绍了简单的硬件结
[嵌入式]
2012年高速公路监控市场将迎来井喷行情
  近年来,高速公路监控系统越来越多地提出更新更高的需求。高速公路监控系统方面的产品不断推陈出新,据交通部《2009年上半年公路水路交通运输经济运行情况》显示,未来三年内高速公路每年新增通车里程有望保持在6000公里的水平。在这种建设“热潮”之下,高速公路监控系统的下一轮市场规模将达到百亿左右。      高速公路监控市场迎来井喷行情     除了众多新建项目的“重头戏”之外,高速公路机电系统同样迎来改造高峰期。高速公路机电设备周期约为七八年,高速公路机电系统每隔八年就会进行设备的改造及更换。早期高速公路“建设热潮”中的项目其机电系统面临着改造,也将给集成商、供应商带来新的机会。改造高峰期除了正常的维修、维护之外,主要包括出于高速
[安防电子]
解析:揭秘公安监所智能监控技术特性
    我国当前监所监控大部分还是传统的监控为主。尽管视频监控系统的应用日益普及,但大多都是通过人工监看的方式查看实时视频。由于人类的注意力难以长时间集中,人工监看的效果随着事件的增长急剧衰减。因此,尽管知道一些重点场景,但公安干警却无法随时监看。虽然少部分采用了智能监控,但实际应用的智能监控的效果并不是很好。为解决这类问题,智能视频应用技术应运而生,主要包括针对实时监控和录像检索两方面。实时监控部分主要包括智能分析技术和视频诊断技术。录像检索部分主要包括重点标记技术     引言     我国当前监所监控大部分还是传统的监控为主。尽管视频监控系统的应用日益普及,但大多都是通过人工监看的方式查看实时视频。由于人类的注意力难
[安防电子]
浅谈AT91RM9200的嵌入式网络摄像机的设计与实现
  1. 引言   随着通信技术和网络技术的迅猛发展,通过网络远程实时监控重要场所已倍受人们关注,网络摄像机在此背景下产生,并成为人们关注的焦点。网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传至地球另一端,且远端的浏览者不需用任何专业软件,只要标准的网络浏览器(如"Microsoft IE或Netscape)即可监视其影像。网络摄像机要将高清晰度的实时视频信息通过互联网传送到监控终端,因其信息量巨大,所以必须压缩。通常人们采用DSP与MPEG-4算法相结合的方案来实现,不仅编程工作量大,而且产品的成本高。本文所介绍的网络摄像机采用专用的MPEG-4压缩芯片、以嵌入式Linux作为操作系统,不仅
[单片机]
浅谈<font color='red'>AT91RM9200</font>的嵌入式<font color='red'>网络摄像机</font>的设计与实现
MCF5282在电力系统监控中的应用
目前,在作为微机保护心脏的微处理器中,一般采用高性能单片机(如Intel公司的87C196CB,87C196CB,78C196NT),数字信号处理器DSP(如TI公司的TMS320F2812)和可编程逻辑器件PLD(如Xilinx公司的XC9572)等来提高继电保护的处理速度,但是,随着继电保护向着多功能、智能化、可视化的方向发展,上述几种单一的芯片已经不能完全满足这些要求,如使用多种通信方式去实现组网调度。在本文中将介绍一种新型嵌入式微处理器MCF5282以及由它设计出的嵌入式主模板,能够满足多种通信方式的要求,而且其处理速度和实现多通道交直流采样的精度比起上述三类芯片都要高得多,其实时性也更完美。 1 MCF5282微处理器
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved