李庆,彭墨
(1.武警成都指挥学院,四川 成都 610213;2.四川省交通厅 信息中心,四川 成都 610041)
将TCP/IP网络协议运用于嵌入式监控系统的设计中,可利用IP网络在广域范围内实现对特定目标的监控.笔者介绍一种基于嵌入式TCP/IP技术的网络摄像头设计方案.
本设计选用C8051F020单片机作为控制核心,系统主要包括视频采集处理电路以及网络通信电路.
视频采集处理电路主要由武汉万德数码技术有限公司开发的JPEG300数码相机模块来实现,其外观如图1所示.
图1 JPEG300数码相机模块
JPEG300数码相机模块将镜头取景、图像捕捉、图像压缩、8位数据接口等功能电路集成在一块电路板上,从而简化了系统设计.模块采用30万像素CMOS图像传感器,可输出分辨率为320×240或640×480的JPG图像文件.其文件大小受图像复杂度的影响.JPEG300数据接口为8位并口,具有固定的数据输出速度.
视频采集处理电路如图2所示.JPEG300模块数据输出口D0~D7与单片机P2.0~P2.7口相连,JPEGINT中断信号引脚连接单片机/INT1口,CAPEN图像采集使能引脚接单片机P3.1口.为提高传递帧数,将CAPMODE接高电位,使输出图像分辨率为320×240的图像.
图2 视频采集处理电路
系统上电初始化完成后JPEG300进入空闲状态.在空闲状态下,如果CAPEN=1,则按照CAPMODE引脚所确定的分辨率启动压缩,并在D0~D7引脚上连续输出数据,每输出一个数据,就在JPEGINT引脚上产生一个中断信号,以通知主机读取数据.
JPEG300输出的是一个完整的JPG文件.JPG文件总是以 “0xFF”、 “0xD8” 开始, 并以“0xFF”、 “0xD9” 结束.主机把收到的 “0xFF”、“0xD8”、 中间数据、 以及 “0xFF”、 “0xD9” 按顺序保存下来,就得到了一个JPG文件.主机应对接收的数据进行检查,当收到 “0xFF”、“0xD9”时,表明文件结束.输出完成后,JPEG300将重新回到空闲状态.图3为JPEG300模块工作时序图.
图3 JPEG300工作时序图
网络通信电路采用Silabs公司的CP2200以太网控制器.CP2200内部集成了IEEE 802.3以太网媒体访问控制器 (MAC)和10Base-T物理层(PHY),可为系统提供以太网通信功能.网络通信电路如图4所示.
图4 网络通信电路
设置C8051F020外部存储器接口配置寄存器EMI0CF为0xFB,将单片机外部存储器接口EMIF配置在高端口(P4~P7).C8051F020的P4.5口连接CP2200进行复位操作,P4.6、P4.7口分别连接CP2200读写控制信号线/RD、/WR,P5.7口(A15)作为CP2200的片选信号.P6口作为地址总线的低8位与CP2200的地址线A[7:0]相连,P7口作为数据总线与CP2200的数据线D[7:0]相连.经交叉开关配置的单片机/INT0并与CP2200芯片的中断信号/INT相连.CP2200的14个中断事件中的任何一个产生中断时,CP2200通过将中断状态寄存器中相应的标志置1,并将/INT引脚驱动到低电平来通知主机.此外,CP2200的两组差分信号RX+/RX-和TX+/TX-需要通过RJ-45插头实现与网络的连接.
网络通信程序如图5所示.
图5 网络通信程序
网络通信程序主要包括模块初始化程序、CP2200驱动程序以及嵌入式TCP/IP协议栈三部分.其中CP2200驱动程序主要完成接收网络数据以及向网络发送数据的工作.由于系统软硬件资源有限并且功能需求较少,因此在构造嵌入式TCP/IP协议栈的时候可以对TCP/IP协议进行裁剪.本系统中设计的嵌入式TCP/IP协议栈只选取了四项协议:ARP、IP、ICMP和TCP.
本研究提出了一种基于嵌入式TCP/IP技术的网络摄像头设计方案.系统采用JPEG300数码相机模块实现视频的采集、处理与输出,并利用嵌入式TCP/IP协议栈实现与远程监控端的网络连接.系统具有结构简单、扩展能力强的特点,对于嵌入式远程监控系统的研制有一定的参考价值.
[1]李云岗.基于CP2201的嵌入式以太网接口的实现及应用[D].北京:北京交通大学,2008.
[2]王晓菊.基于MCU的嵌入式Internet技术研究[D].沈阳:沈阳航空工业学院,2007.