嵌入式课程设计报告

上传人:re****.1 文档编号:550627329 上传时间:2023-02-20 格式:DOC 页数:14 大小:78.50KB
返回 下载 相关 举报
嵌入式课程设计报告_第1页
第1页 / 共14页
嵌入式课程设计报告_第2页
第2页 / 共14页
嵌入式课程设计报告_第3页
第3页 / 共14页
嵌入式课程设计报告_第4页
第4页 / 共14页
嵌入式课程设计报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《嵌入式课程设计报告》由会员分享,可在线阅读,更多相关《嵌入式课程设计报告(14页珍藏版)》请在金锄头文库上搜索。

1、_x0001_嵌入式课程设计报告一、课程设计目的1.1 掌握linux开发环境的搭建; 1.2巩固嵌入式交叉编译的开发思想;1.3掌握嵌入式GUI软件设计技。,.二、 课程设计要求输入信号为 1 路 AV 视频信号,要求系统能对 1 路输入信号进行实时采集,数字化 处理,压缩,存储,要保证一定的录像质量. 根据设计题目的要求,选择确定 ARM 芯片型号,视频采集芯片型号,完成系统硬件设 计和程序设计.三、 课程设计内容设计原理 ARM10 系列微处理器为低功耗的 32 位 RISC 处理器,最适合用于对价位和功耗要 求较高的消费类应用.ARM10 系列微处理器的主要应用领域为:工业控制,Int

2、ernet 设备,调制解 调器设备,移动电话等多种多媒体和嵌入式应用. 视频监控系统总体设计 首先需要对系统进行总体规划,将系统划分成几个功能模块,确定各个模块的实现 方法.整个视频监控系统采用 C/S 结构,从主体上分为两部分:服务器端和客户端.服 务器端主要包括 S3C4510 平台上运行的采集,压缩,传输程序,客户端是 PC 机上运行 的接收,解压,回放程序.视频监控终端从摄像头捕获实时的视频信息,压缩之后通过 以太网传输到视频监控服务器上.视频图像采集和打包发送在服务器端完成,图像的接收 解包和回放将在客户端完成. 采集图像 数据压缩 打包发送 接收系统的硬件设计 系统采用模块化设计方

3、案,主要包括以下几个模块:主控制器模块,储存电路模块, 外围接口电路模块,电源和复位电路,S3C4510 主控器模块 主控器模块是整个系统的核心,采用的 S3C4510B 处理器.Samsung 公司的 S3C45 10B 是基于以太网应用系统的高性价比 16/32 位 RISC 微控制器,内含一个由 ARM 公司设计的 16/32 位 ARM7TDMI RISC 处理器核,ARM7TDMI 为低功耗,高性能的 16/32 核,系统存储电路模块 主控器还需一些外围存储单元如 Nand Flash,和 SDRAM.Nand Flash 中包含 Lin ux 的 Bootloader,系统内核,文

4、件系统,应用程序以及环境变量和系统配置文件等;S DRAM 读写速度快,系统运行时把它作为内存单元使用. 外围电路模块 外围电路主要是以下几个电路,复位电路图,电源电路图以及 JTAG 电路,三、课程设计设备及工具硬件:UP-NETARM2410-S嵌入式实验仪、PC机、ov511摄像头;软件:PC机操作系统REDHAT LINUX 9.0、MINICOM、AMR-LINUX开发环境。四、设计方案本次课程设计采用arm10开发平台。该平台采用Samsung公司的处理器S3C2410。该处理器内部集成了ARM公司 ARM920T处理器核的32位微控制器,资源丰富,带独立的16KB的指令Cache

5、和16KB数据Cache、LCD控制器、RAM控制器、NAND 闪存控制器、3路UART、4路DMA、4路带PWM的Timer、并行I/O口、8路10位ADC、Touch Screen接口、I2C接口、I2S接口、2个USB接口控制器、2路SPI,主频最高可达203MHz。在处理器丰富资源的基础上,还进行了相关的配置和扩展,平台配置了16MB 16位的Flash和64MB 32位的SDRAM。通过以太网控制器芯片DM9000E扩展了一个网口,另外引出了一个HOST USB接口。通过在USB接口上外接一个带USB口的摄像头,将采集到的视频图像数据放入输入缓冲区中。然后,对缓冲区中的视频数据进行压

6、缩成帧,并把每一帧图片在网页中显示出来,每秒钟刷新两次,得到一个动态的视频界面,然后通过局域网访问该主机的网页,得到网络视频信息。本次课程设计主要是完成得到视频图片及网页刷新的过程。本次设计要求在局域网环境中进行。五、开发环境配置5.1 摄像头驱动加载在Linux下,设备驱动程序可以看成Linux内核与外部设备之间的接口。设备驱动程序向应用程序屏蔽了硬件实现了的细节,使得应用程序可以像操作普通文件一样来操作外部设备,可以使用和操作文件中相同的、标准的系统调用接口函数来完成对硬件设备的打开、关闭、读写和I/O控制操作,而驱动程序的主要任务也就是要实现这些系统调用函数。本系统平台使用的嵌入式arm

7、-Linux系统在内核主要功能上与 Linux操作系统没本质区别。Video4Linux(简V4L)是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和USB摄像头等。ov511的驱动,2.4的内核中就有,所以我们只需重新编译内核,将下边的选项都选上,然后重新烧写内核就可以了。也就是直接静态加载。(1)在arm linux的kernel目录下make menuconfig。(2)首先(*)选择Multimedia device-下的Video for linux。加载video4linux模块,为视频采集设

8、备提供编程接口;(3)然后在usb support-目录下(*)选择support for usb和usb camera ov511 support。这使得在内核中加入了对采用OV511接口芯片的USB数字摄像头的驱动支持。(4)保存配置退出。(5)make dep;make zImage就生成了带有ov511 驱动的内核。接下来就通过uboot将内核烧到flash里去。这时你将摄像头插上,系统就会提示发现摄像头-ov511+,这说明驱动正常。:-),驱动加载就成功了。5.2 安装jpeg库在地址ftp:/ tar -zxvf jpegsrc.v6b.tar.gz /解压库文件# cd jpe

9、g-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 /建立生成安装文件的目录#make install -lib

10、 /生成安装文件#make install /开始安装文件六、 设计过程6.1 硬件设计系统的主体设计思想是将视频前端和嵌入式Web服务器整合在一起,摄像头通过USB接口和嵌入式系统板的USB HOST相连,摄像头采集来的视频信号经过压缩后,通过内部总线传送到内置的Web服务器,客户端采用浏览器/服务器结构(即B/S结构),可以通过IE浏览器访问视频Web服务器,以便查看所监控的视频画面,而且,用户还可以控制平台对镜头的动作或对系统进行配置控制。网络视频采集系统是由视频监控终端和视频监控中心组成,终端使用嵌入式系统加上USB摄像头,在Linux操作系统上运行USB摄像头的驱动和相应的视频采集处

11、理传输程序,得到视频监控画面,并画面通过网络传输,监控中心运行监控软件端,通过Internet浏览器来浏览终端送来的监控画面,其硬件连接图如下所示:网络视频采集硬件连接图从图中可以看出,PC机部分可以直接采用IE浏览器,不需要在PC机上运行其他的软件,主要设计工作是开发板端的设计。视频监控终端主要有两个部分组成,硬件部分包括摄像头和开发平台的选择;软件部分包括系统级软件(Boot Loader,嵌入式操作系统,USB驱动程序)与用户级软件(应用程序)。6.2 软件设计Video4linux为应用程序提供了一系列的接口函数,通过这些函数,可以执行打开、读写、关闭等基本操作。设备驱动提供了read

12、、write、open、close等函数的具体实现,在内核这些函数都可以调用。视频采集流程图如下所示:视频采集流程图利用V4L编写的视频采集程序重要代码如下,下列代码包含采集编码程序一些关键函数。(1) 程序中定义的数据结构struct _v4l_struct int fd; / 保存打开视频文件的设备描述符 struct video_capability capability;struct video_picture picture; struct video_mmap mmap; struct video_mbuf mbuf; unsigned char *map; / 用于指向图像数据的

13、指针 int frame_current; int frame_usingVIDEO_MAX_FRAME; / 这两个变量用于双缓冲 ; typedef struct _v4l_struct v4l_device; 这些数据结构都是由Video4Linux支持的,它们的用途如下:*video_capability包含摄像头的基本信息,例如设备名称、支持的最大最小分辨率、信号源信息等;*voide_picture包含设备采集图像的各种属性,如brightness(亮度)、hue(色调)、contrast(对比度)、whiteness(色度)、color(深度)等;*video_mmap用于内存映

14、射;*voido_mbuf利用mmap进行映射的帧信息,实际上是输入到摄像头存储器缓冲中的帧信息,包括size(帧的大小)、frames(最多支持的帧数)、offsets(每帧相对基址的偏移)。程序中用到的主要系统调用函数有:open(/dev/voideo0,int flags)、close(fd)、mmap(void *start,size_t length,int prot,int flags,int fd,off_t offset)、munmap(void *start,size_tlength)和ioctl(int fd,int cmd,)。前面提到Linux系统中把设备看成设备文件

15、,在用户空间可以通过标准的I/O系统调用函数操作设备文件,从而达到与设备通信交互的目的。当然,在设备驱动中要提供对这些函数的相应支持。这里说明一下ioctl(int fd,int cmd,)函数,它在用户程序中用来控制I/O通道,其中,fd代表设备文件描述符,cmd代表用户程序对设备的控制命令,省略号一般是一个表示类型长度的参数,也可没有。(2)采集程序实现过程首先打开视频设备,摄像头在系统中对应的设备文件为/dev/video0,采用系统调用函数grab_fd =open (/dev/video0,O_RDWR),grab_fd是设备打开后返回的文件描述符(打开错误返回-1),以后的系统调用函数就可使用它来对设备文件进行操作了。接着,利用ioct1(grab_fd,VIDIOCGCAP,&grab_cap)函数读取struct video_capability中有关摄像头的信息。该函数成功返回后,这些信息从内核空间拷贝到用户程序空间grab_cap各成员分量中,使用 printf函数就可得到各成员分量信息,例如printf(maxheight=%d,grab_fd

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号