4.1.2硬件架构
系统的硬件架构图图4-3所示:
图4-3 系统硬件架构图
OV511摄像头将所监控的场景景象进行光电转换后获取了当前图像的RGB数据,由于进行了内存映射所以系统可以在SDRAM里获取图像数据,之后交由CPU进行处理。最终将数据写往LCD控制器、FLASH存储器、以太网控制器等其他模块。
4.2硬件模块
由于系统不使用DSP,所以所有数据交由主控器模块进行运算,系统存储电路模块和外围电路模块分别提供系统所需的存储空间和设备支持。
4.2.1主控器模块
是整个系统的核心,采用的Pxa270处理器是intel公司基于XSCALE架构的处理器,最高主频可达624MHz。PXA270最引人注目的是加入了Wireless MMX技术,大大提升了多媒体处理能力;同时PXA270还加入了Intel SpeedStep动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。Pxa270提供了丰富的片内资源,支持Linux,是本系统的合适选择。它能完成整个系统的调度工作,在系统上电时配置所有需工作的芯片的功能寄存器,完成视频流的编码。
4.2.2系统存储电路模块
主控器与一些外围存储单元如Nand Flash,和SDRAM。Nand Flash 中包含Linux 的Bootloader、系统内核、文件系统、应用程序以及环境变量和系统配置文件等;SDRAM读写速度快,系统运行时把它作为内存单元使用。设计采用了64M的Nand Flash和64M的SDRAM。
4.2.3外围电路模块
本设计用到的外设有USB接口,网卡接口,RS232接口和JTAG接口。
视频监控终端的USB主控制器模块通过专用的USB集线器与多个USB摄像头相连。在实时监控状态下,各个摄像头上捕获的图像数据通过USB集线器传输到视频监控终端的USB主控制器模块上,然后再由USB主控制器模块交由Pxa270处理器集中处理。
4.3软件架构
图4-4 系统功能模块图
如图4-4所示,图像采集模块负责对摄像头的图像数据进行采集和传输,之后交由图像处理模块进行识别、显示。主控平台提供人机交互界面,同时提供参数设置功能。
4.3.1图像采集模块
功能:实现与摄像头驱动的数据连接的建立,设置图像采集参数以及获取图像数据
主要的函数有:
void V4L1VideoCaptureDevice::setupCamera(QSize size);//构造函数,调用setupCamera( )函数,并初始化视频尺寸为0,0。
~V4L1VideoCaptureDevice();//析构函数,调用 shutdown()函数。
void setupCamera(QSize size);//初始化摄像头驱动,size参数作为视频尺寸
void shutdown();//清楚系统运行时建立的内存映射。
主要API:
bool hasCamera() const;//返回关于摄像头设备是否存在的bool值
void getCameraImage( QImage& img, bool copy = false );//将当前帧图像数据写入形参的QImage指针对象img中。
QSize captureSize() const;//返回图像尺寸
void setCaptureSize( QSize size );//重新设置图像大小
int minimumFramePeriod() const;//返回最小帧周期
4.3.2图像处理模块
功能:调用图像采集模块获取图像数据,进行刷新图像的计时以及像素点内容的比较,并在每个计时周期进行图像绘制,同时在需要的时候进行像素比较。事实上为继承了QT窗口类QWidget的一个派生类。
主要函数:
VideoCaptureView::VideoCaptureView(QWidget *parent, Qt::WFlags fl)//构造函数,创建一个图像采集模块的实例,并进行参数的初始化。
void VideoCaptureView::setLive(int period)//计时函数,负责对数据的获取和刷新进行控制。
void VideoCaptureView::timerEvent(QTimerEvent*)//在一个计时周期结束的时候响应,调用窗口重绘函数。
void VideoCaptureView::paintEvent(QPaintEvent* paintEvent)//窗口绘图函数,使用从图像采集模块获得的图像数据进行绘图。
主要API:
bool available() const;//返回当前设备是否可用的bool值,可用返回ture,不可以用返回false
QImage image() const//返回当前帧的图像数据。
void setStill(const QImage&);//令视频窗口显示一个图片,不更新视频数据。
4.3.3参数设置模块
功能:提供对系统参数的设置功能,通过访问类的接口修改摄像头以及算法的参数。通过建立的窗口控件提供修改系统参数的功能。
主要函数:
void setupUi();//创建窗口控件界面。
void setStoragePath();//在控件发生变化的时候通过信号槽获取目录路径。
主要API:
QString CameraSettings::getStoragePath()//返回当前选项指定的截图存取目录。
4.3.4主控台模块
功能:创建一个图像处理模块的实例,显示视频。同时提供参数修改截图显示的功能。
主要函数:
void takePhotoNow();//保存当前视频图像到指定位置
void loadThumbs();//建立截图显示列表
void pushThumb(const QString file, const QImage& img);//加入图像到显示列表
void on_action_Exit_triggered();//退出按钮事件
void on_action_About_triggered();//系统文件信息按钮事件
void on_action_Options_triggered();//设置按钮事件
void on_actionTake_Photo_triggered();//截图按钮事件
void on_action_Delete_triggered();//删除图片按钮事件
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页