嵌入式课程设计报告样本Word格式.docx
- 文档编号:15844792
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:14
- 大小:35.76KB
嵌入式课程设计报告样本Word格式.docx
《嵌入式课程设计报告样本Word格式.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计报告样本Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
设计原理ARM10系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用.
ARM10系列微处理器的主要应用领域为:
工业控制,Internet设备,调制解调器设备,移动电话等多种多媒体和嵌入式应用.
视频监控系统总体设计首先需要对系统进行总体规划,将系统划分成几个功能模块,确定各个模块的实现方法.整个视频监控系统采用C/S结构,从主体上分为两部分:
服务器端和客户端.服务器端主要包括S3C4510平台上运行的采集,压缩,传输程序,客户端是PC机上运行的接收,解压,回放程序.视频监控终端从摄像头捕获实时的视频信息,压缩之后经过以太网传输到视频监控服务器上.
视频图像采集和打包发送在服务器端完成,图像的接收解包和回放将在客户端完成.采集图像数据压缩打包发送接收
系统的硬件设计系统采用模块化设计方案,主要包括以下几个模块:
主控制器模块,储存电路模块,外围接口电路模块,电源和复位电路,
S3C4510主控器模块
主控器模块是整个系统的核心,采用的S3C4510B处理器.Samsung公司的S3C4510B是基于以太网应用系统的高性价比16/32位RISC微控制器,内含一个由ARM公司设计的16/32位ARM7TDMIRISC处理器核,ARM7TDMI为低功耗,高性能的16/32核,
系统存储电路模块
主控器还需一些外围存储单元如NandFlash,和SDRAM.NandFlash中包含Linux的Bootloader,系统内核,文件系统,应用程序以及环境变量和系统配置文件等;
SDRAM读写速度快,系统运行时把它作为内存单元使用.
外围电路模块
外围电路主要是以下几个电路,复位电路图,电源电路图以及JTAG电路,
三、课程设计设备及工具
硬件:
UP-NETARM2410-S嵌入式实验仪、PC机、ov511摄像头;
软件:
PC机操作系统REDHATLINUX9.0、MINICOM、AMR-LINUX开发环境。
四、设计方案
本次课程设计采用arm10开发平台。
该平台采用Samsung公司的处理器S3C2410。
该处理器内部集成了ARM公司ARM920T处理器核的32位微控制器,资源丰富,带独立的16KB的指令Cache和16KB数据Cache、LCD控制器、RAM控制器、NAND闪存控制器、3路UART、4路DMA、4路带PWM的Timer、并行I/O口、8路10位ADC、TouchScreen接口、I2C接口、I2S接口、2个USB接口控制器、2路SPI,主频最高可达203MHz。
在处理器丰富资源的基础上,还进行了相关的配置和扩展,平台配置了16MB16位的Flash和64MB32位的SDRAM。
经过以太网控制器芯片DM9000E扩展了一个网口,另外引出了一个HOSTUSB接口。
经过在USB接口上外接一个带USB口的摄像头,将采集到的视频图像数据放入输入缓冲区中。
然后,对缓冲区中的视频数据进行压缩成帧,并把每一帧图片在网页中显示出来,每秒钟刷新两次,得到一个动态的视频界面,然后经过局域网访问该主机的网页,得到网络视频信息。
本次课程设计主要是完成得到视频图片及网页刷新的过程。
本次设计要求在局域网环境中进行。
五、开发环境配置
5.1摄像头驱动加载
在Linux下,设备驱动程序能够看成Linux内核与外部设备之间的接口。
设备驱动程序向应用程序屏蔽了硬件实现了的细节,使得应用程序能够像操作普通文件一样来操作外部设备,能够使用和操作文件中相同的、标准的系统调用接口函数来完成对硬件设备的打开、关闭、读写和I/O控制操作,而驱动程序的主要任务也就是要实现这些系统调用函数。
本系统平台使用的嵌入式arm-Linux系统在内核主要功能上与Linux操作系统没本质区别。
Video4Linux(简V4L)是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和USB摄像头等。
ov511的驱动,2.4的内核中就有,因此我们只需重新编译内核,将下边的选项都选上,然后重新烧写内核就能够了。
也就是直接静态加载。
(1)在armlinux的kernel目录下makemenuconfig。
(2)首先(*)选择Multimediadevice->
下的Videoforlinux。
加载video4linux模块,为视频采集设备提供编程接口;
(3)然后在usbsupport->
目录下(*)选择supportforusb和usbcameraov511support。
这使得在内核中加入了对采用OV511接口芯片的USB数字摄像头的驱动支持。
(4)保存配置退出。
(5)makedep;
makezImage就生成了带有ov511驱动的内核。
接下来就经过uboot将内核烧到flash里去。
这时你将摄像头插上,系统就会提示发现摄像头-ov511+,这说明驱动正常。
:
-),驱动加载就成功了。
5.2安装jpeg库
在地址ftp:
//
#tar-zxvfjpegsrc.v6b.tar.gz//解压库文件
#cdjpeg-6b
#./configure--prefix=/usr/local/jpeg6--enable-shared//生成MAKEFILE文件
#make//编译安装文件
#mkdir/usr/local/jpeg6
#mkdir/usr/local/jpeg6/include
#mkdir/usr/local/jpeg
#mkdir/usr/local/jpeg/lib
#mkdir/usr/local/jpeg/bin
#mkdir/usr/local/jpeg/man
#mkdir/usr/local/jpeg/man/man1//建立生成安装文件的目录
#makeinstall-lib/生成安装文件
#makeinstall//开始安装文件
6、设计过程
6.1硬件设计
系统的主体设计思想是将视频前端和嵌入式Web服务器整合在一起,摄像头经过USB接口和嵌入式系统板的USBHOST相连,摄像头采集来的视频信号经过压缩后,经过内部总线传送到内置的Web服务器,客户端采用浏览器/服务器结构(即B/S结构),能够经过IE浏览器访问视频Web服务器,以便查看所监控的视频画面,而且,用户还能够控制平台对镜头的动作或对系统进行配置控制。
网络视频采集系统是由视频监控终端和视频监控中心组成,终端使用嵌入式系统加上USB摄像头,在Linux操作系统上运行USB摄像头的驱动和相应的视频采集处理传输程序,得到视频监控画面,并画面经过网络传输,监控中心运行监控软件端,经过Internet浏览器来浏览终端送来的监控画面,其硬件连接图如下所示:
网络视频采集硬件连接图
从图中能够看出,PC机部分能够直接采用IE浏览器,不需要在PC机上运行其它的软件,主要设计工作是开发板端的设计。
视频监控终端主要有两个部分组成,硬件部分包括摄像头和开发平台的选择;
软件部分包括系统级软件(BootLoader,嵌入式操作系统,USB驱动程序)与用户级软件(应用程序)。
6.2软件设计
Video4linux为应用程序提供了一系列的接口函数,经过这些函数,能够执行打开、读写、关闭等基本操作。
设备驱动提供了read、write、open、close等函数的具体实现,在内核这些函数都能够调用。
视频采集流程图如下所示:
视频采集流程图
利用V4L编写的视频采集程序重要代码如下,下列代码包含采集编码程序一些关键函数。
(1)程序中定义的数据结构
struct_v4l_struct
{
intfd;
//保存打开视频文件的设备描述符
structvideo_capabilitycapability;
structvideo_picturepicture;
structvideo_mmapmmap;
structvideo_mbufmbuf;
unsignedchar*map;
//用于指向图像数据的指针
intframe_current;
intframe_using[VIDEO_MAX_FRAME];
//这两个变量用于双缓冲
};
typedefstruct_v4l_structv4l_device;
这些数据结构都是由Video4Linux支持的,它们的用途如下:
*video_capability包含摄像头的基本信息,例如设备名称、支持的最大最小分辨率、信号源信息等;
*voide_picture包含设备采集图像的各种属性,如brightness(亮度)、hue(色调)、contrast(对比度)、whiteness(色度)、color(深度)等;
*video_mmap用于内存映射;
*voido_mbuf利用mmap进行映射的帧信息,实际上是输入到摄像头存储器缓冲中的帧信息,包括size(帧的大小)、frames(最多支持的帧数)、offsets(每帧相对基址的偏移)。
程序中用到的主要系统调用函数有:
open("
/dev/voideo0"
intflags)、close(fd)、mmap(void*start,size_tlength,intprot,intflags,intfd,off_toffset)、munmap(void*start,size_tlength)和ioctl(intfd,intcmd,…)。
前面提到Linux系统中把设备看成设备文件,在用户空间能够经过标准的I/O系统调用函数操作设备文件,从而达到与设备通信交互的目的。
当然,在设备驱动中要提供对这些函数的相应支持。
这里说明一下ioctl(intfd,intcmd,…)函数,它在用户程序中用来控制I/O通道,其中,fd代表设备文件描述符,cmd代表用户程序对设备的控制命令,省略号一般是一个表示类型长度的参数,也可没有。
(2)采集程序实现过程
首先打开视频设备,摄像头在系统中对应的设备文件为/dev/video0,采用系统调用函数grab_fd=open("
/dev/video0"
O_RDWR),grab_fd是设备打开后返回的文件描述符(打开错误返回-1),以后的系统调用函数就可使用它来对设备文件进行操作了。
接着,利用ioct1(grab_fd,VIDIOCGCAP,&
grab_cap)函数读取structvideo_capability中有关摄像
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计 报告 样本
![提示](https://static.bdocx.com/images/bang_tan.gif)