历史上的今天
返回首页

历史上的今天

今天是:2025年02月03日(星期一)

2018年02月03日 | 基于AT91RM9200的嵌入式网络摄像机分析

2018-02-03 来源:eefocus

前 言


     随着通信技术和网络技术的迅猛发展,通过网络远程实时监控重要场所已倍受人们关注,网络摄像机在此背景下产生,并成为人们关注的焦点。网络摄像机要将高清晰度的实时视频信息通过互联网传送到监控终端,因其信息量巨大,所以必须压缩。通常人们采用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所示。

     

    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 控制。

    网络模块

   网络模块硬件设计原理如图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 控制和调度。

    软件设计

    嵌入式Linux 系统主要由四个部分组成: 引导内核启动的文件( bootloader) 、Linux 内核文件( kernel) 、虚拟磁盘文件( ramdisk) 、用户空间文件( user) 。它们分别被放在DataFlash 内的四个分区模块中。根据不同模块的具体功能采用不同的文件系统: bootloader、kernel、ramdisk, 移植完成后不需要动态改变, 使用较节省空间的ROMFS 只读文件系统user 模块内放置一些可以动态更新的配置文件等, 需要进行较多的读写操作, 所以使用支持动态擦写保存的JFFS2 文件系统。

    Linux 移植技术已经成熟, 本文不作详细的阐述。下文主要介绍MPEG- 4 压缩编码模块和CGI 模块的程序设计。

    MPEG- 4 压缩编码模块程序设计

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

     

   

     

    CGI 程序模块设计

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

    CGI 模块的设计主要包括三部分: 嵌入式web 服务器的配置、html 页面的编写、CGI 程序的设计。

     

    嵌入式web 服务器采用的是APAChe, 其配置是以配置文件的形式提供, 放在Ramdisk 中/etc/httpd/conf/目录下。其配置主要涉及以下三个方面:

    ①配置根文件的路径:“DocumentRoot /home/httpd/html”, html 页面必须放到此目录下。

    ②配置CGI 外部程序所放的路径:“ScriptAlias /cgi- bin/ home/httpd/cgi- bin/”。

    ③配置环境变量:“SetEenv D_LIBRARY_PATH=/lib:/usr/LOCal/lib:/usr/lib”, 该变量将会被传送到CGI 脚本和SSI 页面, 以保证CGI 程序能正确找到所依赖的库。

    网页编写采用html 与shtml 相结合的方式。html 的解析速度较快, shtml 可以在普通网页中嵌入外部CGI程序, 通过这种方式将系统的默认配置反馈给客户端。

    CGI 程序采用的是C 语言和shell 脚本相结合的方式, 具体编写过程, 与通常的了Linux 下编程相同。限于篇幅, 不再赘述。

    MPEG- 4 解码程序

    映佳科技已提供供二次开发的MPEG- 4 解码插件OCX, OCX 在PC 机端注册后, OCX 函数可方便地被网页调用, 从而实现在PC 机端观看实时图像。

    总结

    本文介绍了一种利用AT91RM9200、TVP5150,MPG440 和DM9161E 等芯片设计的嵌入式网络摄像机。经测试, 该系统稳定、可靠、实时性好、图像质量出色。该产品可广泛应用于交通监控和工业监控以及家庭监控、视频会议话等众多领域。


推荐阅读

史海拾趣

GHz Technology ( Microsemi )公司的发展小趣事

对于5G169节日彩灯集成电路,网友可能提出多种问题,以下是一些常见问题及其详细回答:

1. 5G169节日彩灯集成电路的基本工作原理是什么?

回答
5G169节日彩灯集成电路通过交流电输入,经过VDI~VD4桥式整流输出全波脉动直流电,供四路彩灯用电。该电路还包含简单的稳压电路(由Rl、R2、VD5和VD6组成),经过Cl滤波后输出约6V直流电供集成块用电。VD6在这里起隔离作用,使得R2两端能获得6V全波脉动直流电压,其脉动频率为交流电的2倍(即100Hz)。此100Hz信号经R4注入集成块的8脚作为同步信号。电路中还包含正、反向控制开关SB,用于控制彩灯的正向或反向循环。

2. 如何调节5G169节日彩灯的亮灯周期?

回答
5G169节日彩灯的亮灯周期是可调的,但具体调节方式可能因不同型号的集成电路或电路设计而异。通常,亮灯周期的调节可能涉及改变与集成电路相关的电阻、电容或其他元件的值。然而,对于5G169这样的具体型号,如果没有详细的电路设计图或说明书,很难给出确切的调节步骤。一般情况下,可以通过查阅产品手册或联系制造商获取具体的调节方法。

3. 5G169节日彩灯集成电路是否需要外接电源?

回答
是的,5G169节日彩灯集成电路需要外接电源来提供工作所需的电能。通常,这种集成电路会设计为能够接受家庭常用的交流电源(如220V或110V,具体取决于所在地区的电压标准),并通过内部的整流和稳压电路转换为集成电路和彩灯所需的直流电压。

4. 5G169节日彩灯集成电路在使用过程中需要注意哪些事项?

回答
在使用5G169节日彩灯集成电路时,需要注意以下事项:

  • 确保电源电压与集成电路的额定电压相匹配,避免过电压或过电流导致的损坏。
  • 遵循产品手册中的安装和接线指导,确保电路连接正确无误。
  • 注意电路的散热问题,避免长时间在高温环境下使用导致集成电路过热。
  • 定期检查电路连接和元件状态,及时发现并处理可能的问题。
  • 避免在潮湿或腐蚀性环境中使用,以防电路受潮或腐蚀。

5. 5G169节日彩灯集成电路有哪些常见故障及解决方法?

回答
5G169节日彩灯集成电路的常见故障可能包括灯不亮、亮度不均、闪烁异常等。针对这些故障,可以尝试以下解决方法:

  • 检查电源电压是否正常,确保电路得到足够的电能供应。
  • 检查电路连接是否牢固可靠,无短路或断路现象。
  • 检查集成电路的引脚是否接触良好,无虚焊或断裂现象。
  • 如果集成电路损坏,需要更换新的集成电路。
  • 对于亮度不均或闪烁异常的问题,可以尝试调整与集成电路相关的电阻、电容等元件的值,或者检查彩灯本身是否存在问题。

请注意,以上回答基于一般性的集成电路知识和经验,具体情况可能因不同型号的集成电路或电路设计而异。在实际操作中,建议根据具体的产品手册或咨询专业人士进行故障排查和解决。

联智(Celfras)公司的发展小趣事

联智的半导体集成电路芯片研发及产业化项目是其发展历程中的又一重要里程碑。该项目总投资高达20亿元,分两期建设。一期项目将建设半导体集成电路模拟芯片封测生产线,预计年产量可达1.5亿颗。二期项目将研发更高功率有线无线融合一体化电源管理芯片和新一代A4WP远距离无线充电芯,同时布局物联网IoT芯片市场。这一项目的实施将进一步提升联智的技术实力和市场竞争力。

天钰(FITIPOWER)公司的发展小趣事

联智的半导体集成电路芯片研发及产业化项目是其发展历程中的又一重要里程碑。该项目总投资高达20亿元,分两期建设。一期项目将建设半导体集成电路模拟芯片封测生产线,预计年产量可达1.5亿颗。二期项目将研发更高功率有线无线融合一体化电源管理芯片和新一代A4WP远距离无线充电芯,同时布局物联网IoT芯片市场。这一项目的实施将进一步提升联智的技术实力和市场竞争力。

Concord Semiconductor Corp公司的发展小趣事

在半导体行业快速发展的同时,环保问题也日益受到关注。Concord Semiconductor Corp积极响应环保号召,将绿色发展理念融入企业的生产经营活动中。公司采用环保材料和工艺,加强废弃物的处理和回收利用,努力实现绿色生产。这一举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实基础。

请注意,这些故事均基于电子行业的一般情况和趋势虚构而成,并非针对任何实际存在的公司。如果需要更具体或更贴近实际的故事,建议参考相关公司的官方资料或行业报告。

德力西(DELIXI)公司的发展小趣事

德力西非常重视品牌建设,通过全方位的品牌建设及宣传,不断提高品牌知名度和美誉度。同时,公司也加快了国际化步伐。2007年,德力西低压电器业务迈向企业国际化的新阶段,在全国范围内进行资本大重组、产品大联合、市场大拓展和技术大提高。这些努力使德力西在国际市场上也取得了一席之地。

HTC Korea(TAEJIN Technology )公司的发展小趣事

HTC Korea自成立以来,一直致力于国际化布局,与全球各地的合作伙伴建立了良好的关系。目前,HTC的产品已在欧美、亚泰地区大量销售,与各地的电信运营商、芯片制造商等保持了紧密的合作关系。这种广泛的合作伙伴网络为HTC提供了强大的市场支持和技术保障,推动了其在全球范围内的快速发展。同时,HTC还通过了ISO9001及ISO14001质量体系认证,以系统、人性化的管理努力成为行业的佼佼者。

问答坊 | AI 解惑

摄像头保存录像问题

    我现在是可以录像,把单个帧存成图片,我现在想保存录像存放在SD卡中,以后还要回调查阅的,有什么好的方法没?…

查看全部问答>

驱动多块同种PCI设备的问题

在学习PCI设备驱动开发的过程当中,很多资料都讲得很详细,但是都没有提驱动程序如何驱动多块同种设备的处理办法,我是在Linux下做开发,手上有两块一样的数据卡,都通过PCI接口发数据给PC机,不知道驱动程序改如何控制这两块一样的板子。 恳请有 ...…

查看全部问答>

请问"禁能中断"的确切含义"

如果我禁能了一个中断源, 不论什么平台吧, ARM或51都无所谓. 那么当这个中断到来时, 中断标志位会被置上吗? \"禁能\"的意思究竟是中断标志位不会被置上, 还是说标志位会被置上, 但不会跳转到相应的处理函数? 如果被置上了, 我在什么时候清中断呢 ...…

查看全部问答>

使用USBD12开发

应用功能: 使用USB12开发一个USB设备,USB设备会产生记录(不定时),产生的记录需要及时发送到计算机 现在USBD12提供的上位机动态库为EasyUSB.dll,没有中断读取数据的方式,现在这种开发模式,上位机程序只能定时使用EasyUSB.dll的读取数据的函 ...…

查看全部问答>

文件指针

如何使用Zw形势的函数把文件指针移到文件末尾以实现追加写…

查看全部问答>

EVC有gridctrl这个控件吗?哪能下载到啊?

VC不自带这个控件,要下载.不知道EVC是否支持这个控件?…

查看全部问答>

ALIENTEK MiniSTM32 开发板 资源总贴

      ALIENTEK 开发板的所有例程,都将在这个帖子汇总,例程我们将力争每天发一个,未发布的例程,这里暂不列出,发布一个列出一个。       如果大家有什么问题或建议,也欢迎在这里提出! & ...…

查看全部问答>

ST以为自己是胡哥

问他们能否提供STM32 的FFT,调查了好几次。决定用TMS320F2808,FFT现成的,相关系列产品价格差不多,特别明年推出的TMS320F2802X和TMS320F2803X,性价比更好。他们最后一次:“我是问你要做什么产品,产品的市场是什么,另外我们也需要知 ...…

查看全部问答>