嵌入式开发实验报告Word格式文档下载.doc
- 文档编号:944186
- 上传时间:2023-04-29
- 格式:DOC
- 页数:17
- 大小:180KB
嵌入式开发实验报告Word格式文档下载.doc
《嵌入式开发实验报告Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《嵌入式开发实验报告Word格式文档下载.doc(17页珍藏版)》请在冰点文库上搜索。
Low"
isreflectedinthequalityandlow;
short,valueaddedoftheindustrychainislow;
123fusionyieldlowemployeeage,lowquality."
Small"
isreflectedinsmaller,specializedcooperativesthroughouttheCountytherewere3,396,butonthescaleoftoolittle."
San"
isreflectedinproduction,management,services,decentralized,centralized,standardized,brand,informationandorganizationallevelisnothigh.Second,thecountrysideisstillin"
dirty"
phase."
Dirty"
isdirtyofruralsanitationsituationhasnotchanged."
Chaos"
isavillageinruralhousingconstructionplanning,constructionofdisorder,nodrawings,noconstruction,novetting"
fourno"
phenomenon,heaplyingthere."
Bad"
istheweakruralbase,villagegovernanceispoor.Thirdly,farmerscontinuedtobe"
persistent"
look."
Old"
isaging,rurallaborforceaccountedfor70%overtheageof50."
Big"
isthatthereformmeasuresgroundresistance,suchasthetransactionsofpropertyrights,landreplacement;
publicservicesupplygap,ruraleducation,healthcare,pensionsandotherservicescannotmeetthedemandstilldifficultforpovertyalleviation,withemphasisonpovertyalleviationand191."
Hard"
isa"
peasants,peasants.Fourwatereffectsstilllacks
时间:
2015年04月25日
目录
1绪论-------------------------------------------------------------1
2课程设计的目标---------------------------------------------------2
3课程设计的意义---------------------------------------------------2
4需求分析---------------------------------------------------------3
5概要设计---------------------------------------------------------4
1.分配内存----------------------------------------------------4
2.获取并记录缓存的物理空间------------------------------------5
3.处理采集数据------------------------------------------------7
4.关闭视频设备------------------------------------------------8
6相关技术说明-----------------------------------------------------8
1.视频采集应用程序流程------------------------------------------8
2.设定属性及采集方式-------------------------------------------8
7详细设计---------------------------------------------------------10
1.监控前端-----------------------------------------------------10
2.监控终端-----------------------------------------------------12
8总结-------------------------------------------------------------16
绪论
当今,随着工厂的建设、管理向着信息化、智能化方向发展,在厂区安装闭路监控系统就成了许多生产企业必不可少的管理措施之一,在企业内部安装一整套局域网上的网络视频监控系统,可以很清楚方便地了解本企业的生产工作情况。
另外,在某些工业生产现场,需要对流水线上的产品或是机械机床上的刀具等进行实时的监控,发现异常情况就会产生及时的反应措施和报警,这样可以有效地保障生产的顺利进行。
目前,在我国各行业中广泛使用的闭路监控系统大多为模拟系统,其主要特点是:
采用矩阵主机控制,通过电视墙监视前端目标,采用长延时模拟录像机系统进行录像和回放;
其主要缺点是:
当录像资料需要长时间备份时,需要大量的录像带,消耗大量的人力和物力,并且在录像回放、检索时操作不方便。
因此,基于数字存储技术的硬盘录像系统应运而生,经过几年的发展,至今技术已经完全成熟,很好地解决了传统图像存储及回放等技术难题。
数字硬盘录像系统不仅存储费用低、效率高,而且还具有网络传输、远程传输和循环存储等优点。
与此同时,硬盘录像系统的数字化和传输网络化等先进技术可以实现与防盗报警等系统联网联动,及时准确地反馈现场信息,为报警事件提供充分可靠的依据。
我们选用的研华视频监控系统就是一个典型的数字式的录像系统,存储量大,回放和检索都非常地方便。
第一章课程设计的目标
1.了解闭路电视监控系统的设计目标、原则、依据及基本设计方案。
2.熟悉数字视频监控系统的硬件组成及接线和布线。
熟悉数字视频监控系统的软件系统。
3.熟悉图像的采集、传输以及后继的处理等步骤的硬件支持部分。
4.掌握所有实验器材的性能及其具体的使用规则,完成具体设备的连接,组成一个四通道的实时数字视频采集监控系统。
第二章课程设计的意义
随着计算机网络技术、视频压缩技术以及嵌入式技术在近些年来的迅速发展,网络视频监控系统进入快速发展期,市场上出现了很多网络视频监控产品,以满足人们对安全的各种要求。
采用嵌入式Web技术的网络视频监控系统,目前正成为网络视频监控系统的一个重要发展方向。
用户通过浏览器或其他专门的客户端软件,就可远程访问监控摄像机,实现对现场的远程视频监控。
在系统设计中采用B/S结构,将视频采集功能模块和PC机客户端监控功能模块相分离,采用TCP协议对视频数据进行网络传输。
视频采集,对目前Linux下USB摄像头驱动的两种接口标准Videofor-Linux和VideoforLinuxTwo分别进行了研究,分别实现了基于这两种标准的驱动下的图像采集,并在最终的系统中采用了基于VideoforLinux标准的驱动程序,完成了图像采集功能。
通过在嵌入式视频采集上建立嵌入式Web服务器,使用户通过Web页面查看图像视频。
第三章需求分析
在本实验中,我们要达到的设计要求是:
组成一个4通道画面的实时数字录像监控系统,通过4路摄像系统将各自采集的数字图像在显示器上用4分屏方式分别显示出来并用硬盘予以记录便于回放和查询:
同时,可以将其中任一路摄像系统采集来的连续视频图像或是单一图片通过网络传送至局域网上的另外一台计算机上,这样使得通过网络远距离查看录像资料成为可能,而且也可以在另外的计算机上对这些传送过来的图像、图片信息进行一定的图像处理及比对,若是发现异常情况可以将一定反馈报警信号通过局域网发送给图像采集系统,实时图像采集系统的管理员据此检查各现场的情况,这样就可以尽早发现监控现场的异常情况。
这套数字视频硬盘监控录像系统可以用于工厂厂房现场的监控;
也可用于机械加工机床上对刀具进行多角度的观测和图像采集,在对采集来的图像进行比对和检查,可以尽早发现刀具表面的裂纹以及其他可能产生的失效形式。
在一些对软、硬实时性要求并不高的场合都可以考虑应用。
1.架构合理:
采用先进合理的技术来架构系统,使整个系统安全平稳地运行,并具备良好的未来扩展条件。
2.稳定性和安全性:
只有稳定运行的系统才能确保企业闭路监控系统平稳运行,只有拥有较高的安全性才能保证整个系统不会被非管理人员和非法恶意操作所破坏。
3.产品主流:
系统是否采用当今的主流产品,关系到系统的整体质量和未来能否得到良好的技术支持以及完整的技术文档资料。
4.低成本低维护量:
力争有良好的性能价格比,所采用的产品应是简单、易操作、易维护和高可靠度的。
系统的易操作性和易维护性是保证非专业人员使用的一个重要条件。
5.功能完善:
录像、监控、预警、查询等功能的运用应简单、方便。
第四章概要设计
监控系统由监控前端,监控终端,网络三部分组成,监控前端是一个嵌入式Linux系统,它通过S3C6410的CameraIF接收摄像头(SAA7113)采集的数据,并传送给硬件编解码(MFC)模块,并把得到的经过H264压缩的数据打包发送到IP网络上,监控终端(Linux)通过网络接收数据包,经过解码实时播放。
总体框架如图1:
整个嵌入式视频采集系统由软件和硬件两部分组成。
硬件方面,以S3C6410处理器为核心通过CameraIF接口接收摄像头数据,经过MFC硬件编码后通过DM9000发送,UART作为开发调试接口;
软件方面,引导程序和Linux内核,设备驱动程序形成基本的嵌入式运行环境,应用层负责视频采集,压缩及传输。
4.1分配内存
接下来可以为视频捕获分配内存:
structv4l2_requestbuffersreq;
if(ioctl(fd,VIDIOC_REQBUFS,&
req)==-1){
return-1;
}v4l2_requestbuffers
结构如下:
structv4l2_requestbuffers{
__u32count;
//缓存数量,也就是说在缓存队列里保持多少张照片
enumv4l2_buf_typetype;
//数据流类型,必须永远是V4L2_BUF_TYPE_VIDEO_CAPTURE
enumv4l2_memorymemory;
//V4L2_MEMORY_MMAP或V4L2_MEMORY_USERPTR
__u32reserved[2];
};
4.2获取并记录缓存的物理空间
使用VIDIOC_REQBUFS,我们获取了req.count个缓存,下一步通过调用VIDIOC_QUERYBUF
命令来获取这些缓存的地址,然后使用mmap函数转换成应用程序中的绝对地址,最后把这段缓存放入缓存队列:
typedefstructVideoBuffer{
void*start;
size_tlength;
}VideoBuffer;
VideoBuffer*buffers=calloc(req.count,sizeof(*buffers));
structv4l2_bufferbuf;
for(numBufs=0;
numBufs<
req.count;
numBufs++){
memset(&
buf,0,sizeof(buf));
buf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory=V4L2_MEMORY_MMAP;
buf.index=numBufs;
//读取缓存
if(ioctl(fd,VIDIOC_QUERYBUF,&
buf)==-1){
}buffers[numBufs].length=
buf.length;
//转换成相对地址
buffers[numBufs].start=mmap(NULL,buf.length,PROT_READ|PROT_WRITE,
MAP_SHARED,fd,buf.m.offset);
if(buffers[numBufs].start==MAP_FAILED){
}//放入缓存队列
if(ioctl(fd,VIDIOC_QBUF,&
}}
操作系统一般把系统使用的内存划分成用户空间和内核空间,分别由应用程序管理和操作系统管理。
应用程序可以直接访问内存的地址,而内核空间存放的是供内核访问的代码和数据,用户不能直接访问。
v4l2捕获的数据,最初是存放在内核空间的,这意味着用户不能直接访问该段内存,必须通过某些手段来转换地址。
一共有三种视频采集方式:
使用read、write方式;
内存映射方式和用户指针模式。
read、write方式,在用户空间和内核空间不断拷贝数据,占用了大量用户内存空间,效率不高;
内存映射方式:
把设备里的内存映射到应用程序中的内存控件,直接处理设备内存,这是一种有效的方式。
上面的mmap函数就是使用这种方式;
用户指针模式:
内存片段由应用程序自己分配。
这点需要在v4l2_requestbuffers里将memory字段设置成V4L2_MEMORY_USERPTR。
4.3处理采集数据
V4L2有一个数据缓存,存放req.count数量的缓存数据。
数据缓存采用FIFO的方式,当应用程序调用缓存数据时,缓存队列将最先采集到的视频数据缓存送出,并重新采集一张视频数据。
这个过程需要用到两个ioctl命令,VIDIOC_DQBUF和VIDIOC_QBUF:
memset(&
buf,0,sizeof(buf));
buf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory=V4L2_MEMORY_MMAP;
buf.index=0;
//读取缓存
if(ioctl(cameraFd,VIDIOC_DQBUF,&
buf)==-1)
{return-1;
}//…………视频处理算法//重新放入缓存队列
if(ioctl(cameraFd,VIDIOC_QBUF,&
}
4.4关闭视频设备
使用close函数关闭一个视频设备
close(cameraFd)
第五章相关技术说明
5.1视频采集应用程序流程
5.2设定属性及采集方式
打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。
这一步是可选的。
在Linux编程中,一般使用ioctl函数来对设备的I/O通道进行管理:
externintioctl(int__fd,unsignedlongint__request,…)__THROW;
__fd:
设备的ID,例如刚才用open函数打开视频通道后返回的cameraFd;
__request:
具体的命令标志符
设备参数设置示例:
设置帧率
structv4l2_streamparmparm;
parm,0,sizeof(structv4l2_streamparm));
parm.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
parm.parm.capture.timeperframe.numerator=1;
parm.parm.capture.timeperframe.denominator=FPS;
ret=-1;
if((ret=ioctl(camera_fd,VIDIOC_S_PARM,&
parm))<
0)
{
printf("
setfperror:
%s\n"
strerror(errno));
exit
(1);
第六章详细设计
软件设计包括嵌入式系统构建和应用软件两部分,其中嵌入式系统部分按照华恒科技S3C6410用户手册构建,其中包括了Bootloader,Linux内核,交叉编译器,驱动等;
下面介绍应用软件设计:
6.1监控前端:
监控前端主要包括视频采集模块和视频压缩编码模块。
视频采集模块使用V4L2接口收集摄像头数据到缓冲区中,视频压缩模块调用MFC驱动把YUV420数据压缩编码,同时可以指定编码参数。
示例代码如下:
cam_fp=open(cam_name,O_RDWR);
//打开camera设备
...
mfc_fd=open(MFC_DEV_NAME,O_RDWR|O_NDELAY);
//打开MFC设备
addr=(char*)mmap(0,BUF_SIZE,PROT_READ|PROT_WRITE,MAP_SHARED,mfc_fd,0);
//mmapMFC
//设置编码参数
enc_init.in_width=out_width;
enc_init.in_height=out_height;
enc_init.in_frameRateRes=atoi(argv[2]);
enc_init.in_frameRateDiv=0;
enc_init.in_bitrate=atoi(argv[3]);
enc_init.in_gopNum=atoi(argv[4]);
ioctl(mfc_fd,IOCTL_MFC_H264_ENC_INIT,&
enc_init);
frame_size=(enc_init.in_width*enc_init.in_height*3)>
>
1;
//得到MFC输入缓冲区地址
get_buf_addr.in_usr_data=(int)addr;
ioctl(mfc_fd,IOCTL_MF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 开发 实验 报告