首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于AT91RM9200的嵌入式网络摄像机设计(2)

基于AT91RM9200的嵌入式网络摄像机设计(2)

网络模块硬件设计原理如图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 等芯片设计的嵌入式网络摄像机。经测试, 该系统稳定、可靠、实时性好、图像质量出色。该产品可广泛应用于交通监控和工业监控以及家庭监控、视频会议话等众多领域。
返回列表