1、学 生 实 习 报 告实 习 名 称 嵌入式系统仿真与开发 院 部 名 称 专 业 班 级 学 生 姓 名 学 号 实 习 地 点 指 导 教 师 实习起止时间:实习项目名称: 基于 ARM11 系列嵌入式 Linux 开发平台的视频监控系统 前言近年来嵌入式技术、互联网技术的飞速发展,嵌入式网络视频监控系统的研究与实现越1来越受到业界的重视。本文主要研究了以基于 ARM11 体系结构的 S3C6410 处理器为核心的嵌入式网络视频监控系统的设计与实现相关理论与可行性,并且在这个基础上提出了基于S3C6410 处理器实现基于 B/S 结构的嵌入式视频监控系统的解决方案。视频监控系统是安防建设的
2、一个重要手段。视频监控系统作为视频技术最基本的应用领域已经在人们的生活、科研以及国防建设中发挥这举足轻重的作用。在众多的视频采集系统中,嵌入式的视频采集以其小巧、灵活、低成本、高性能的特点具有独特的优势。结合嵌入式 WINCE 支持 TCP/IP 的特性,可以更好地利用发达的网络技术,通过建立用户服务器工作模型来实现视频监控。 。通过基于 ARM11 系列嵌入式 Linux 开发平台的视频监控系统的实习,加深巩固了我之前所学的专业知识,弥补了单一理论的不足,可以使我更多了解电子信息知识的应用,加深信息在传输领域的认识,为后续知识学习和毕业设计打下坚实基础。一、 实习目的1.了解嵌入式视频监控系
3、统的项目指标需求等内容;2.熟悉并掌握嵌入式系统开发的具体流程及关键技术;3.锻炼实际工程实践能力及解决实际问题的能力。二、 实习时间2013 年 12 月 16 日至 2013 年 12 月 20 日三、 实习地点吉林工商学院西安校区实验楼 2 教 7 楼-嵌入式实验室四、 实习内容1.基于嵌入式开发的视频监控系统介绍本视频监控系统可以随时选择需要监控的 4 路视频监控信号。本视频监控系统通过ZigBee 进行红外线感应和无线传输触发信号,利用数字摄像头对监控区域视频数据的采集,H.264 视频编码器进行编码,然后 S3C-6410 教学科研平台提供视频(或音频)的录制、查询、回放,最终为相
4、关用户提供服务。该系统综合运用了 RFID 技术、传感器技术、ZigBee无线通信、计算机网络等多种技术来实现其功能。目前视频监控系统应用中存在如下一些突出问题:缺少视频信息情报的标准化生成方法,进而缺少利用视频信息情报指导侦查、破案的新型警务工作模式。存储传输的问题,高效计算的问题使视频信息化情报化警务应用各环节缺乏统一的标准和规范。2.嵌入式简介嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在 ROM 中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数
5、嵌入式系统都是由单个程序实现整个控制逻辑。23.ARM11 系列及 S3C6410 开发板简介ARM11 系列微处理器是 ARM 公司近年推出的新一代 RISC 处理器,它是 ARM 新指令架构ARMv6 的第一代设计实现。S3C6410 是韩国三星电子基于 ARM1176JZF-S 内核构建的高性能多媒体应用处理器,它不仅具有强大的硬件编解码单元,完善的外设,而且拥有高达667MHZ 的运行频率。3C6410 内部结构复杂,芯片内部集成了以下资源:1 个 LCD 控制器(支持 TFT-24bit 真彩色带有触摸屏的液晶显示屏),SDRAM 控制器,NAND Flash 控制器,支持 4 通道
6、 UART 口,32 通道 DMA,4 通道具有 PWM 功能的计数器和 1 个内部时钟,全功能的 SPI,IIC 总线接口,IIS 数字音频总线接口,看门狗计数器,USB OTG,USB HOST,3 通道 MMC/SD 控制器等。4.嵌入式常用开发技术4.1 嵌入式开发环境搭建4.1.1 安装一个虚拟机,Oracle VM VirturelBox,是一个免费的虚拟机软件。4.1.2 fedora 系统安装(1)首先我们需要到 fedora 的官网上下载自己需要的版本,建议下载 32 位的。(2)下载完成后便可以开始使用 vm 安装了,点击新建虚拟机,然后按照要求选在镜像文件所在位置,安装此
7、系统的文件目录,然后下一步下一步即可。(3)接着打开虚拟机的电源后,会出来一系列的英文字母,直接回车即可,然后便会转到fedora 的安装界面,分别有两个选项,一个是试用,一个是安装。(4)接来下便是选择安装语言了(5)接下来就是选择安装的方式,是自定义安装还是基本安装,如果对 fedora 操作系统不熟悉的话,建议选择基本安装。(6)接下来会让你填写主机名(7)接下来就是 root 用户密码的设置(8)接下来便是选在安装类型(9)然后便会弹出下一个安装选项,点击 write changes to disk 便会开始新的安装。(10)安装过程完成了,我们只要点击 reboot 重启一下。3(1
8、1)重启完成后我们进入到最后操作界面,这里创建的用户就是你以后登陆的用户名,其他的操作一般都是 enter 即可。完成后会自动重启。4.1.3UP-CUP6410 产品光盘环境的安装(1)拷贝光盘代码资源到宿主机(2)安装交叉编译器(3)UP-CUP6410 开发软件安装目录结构4.1.4 各项服务配置1 添加 SAMBA 服务(1) 在 fedora 中添加 smb 服务启动虚拟机后,在系统 管理 服务中添加该服务(2) 将 smb 服务添加到防火墙的例外中(3) 禁用 selinux 服务(4) 启动 smb 服务(5) 添加可访问 smb 共享服务的用户2 建立 NFS 共享(1)建立
9、NFS 服务启动虚拟机后,在系统 管理 服务中添加该服务(2)配置 NFS 共享目录进入系统 管理 服务器设置 NFS 中设置目录(3)挂载 NFS 共享目录3 建立 TFTP 服务(1)安装 TFTP 服务(2)配置服务(3)重新启动服务4.2 嵌入式系统开发流程a 建立开发环境4b 配置开发主机c 下载已经移植好的 Linux 操作系统d 建立根文件系统e 建立应用程序的 FLASH 磁盘分区f 开发应用程序g 烧写内核、根文件系统和应用程序4.3TFTP 服务、Telnet 服务、Samba 服务、NFS 服务介绍TFTP 是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单
10、文件传输的协议,提供不复杂、开销不大的文件传输服务。Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成 Samba 服务。NFS,是 Network File System 的简写,即网络文件系统。网络文件系统是 FreeBSD 支持的文件系统中的一种。4.4 GCC 工具和 make 工具介绍GCC 是一套由 GNU 工程开发的支持多种编程语言的编译器。Make,是项目管理工具
11、,通常通过编写 Makefile 来管理编译大型项目。4.5 ARM 汇编语言程序设计4.5.1 ARM 汇编语言程序设计在 ARM/Thumb 汇编语言程序中,程序是以程序段(Section)的形式呈现的。程序段是具有特定名称的相对独立的指令或数据序列。程序段有两大类型:代码段(Code Section)和数据段(Data Section)。代码段的主要内容为执行代码,而数据段则存放代码运行时需要用到的数据。一个汇编语言程序应当至少包含有一个代码段,但当程序较长时,可以将一个长的代码段或者数据段分割为多个代码段或者多个数据段,然后通过程序编译链接(Link)最终形成一个可执行的映像文件。4.
12、5.2 ARM 汇编语言的语句格式为:标号 指令或伪指令助记符 ;注释 4.5.3 基于 Linux 下 GCC 的汇编语言程序结构Linux 下 GCC 的汇编程序语言程序是以程序段为单位进行组织的。Linux 下 GCC 的汇编语言规则总结如下。5所有的指令均不能顶格写。大小写区分(要么全部大写,要么全部小写,不可以大小写混用)。代码标号必须在一行的顶格,后面要加上冒号“:“。注释的内容可以使用符号“,其后面的内容编译器会放弃编译。注释可以在一行的顶格。4.5.4 ARM 汇编器所支持的伪指令ARM 伪指令不是 ARM 指令集中的指令,它们是一些特殊的指令助记符,这些助记符与指令系统的助记
13、符不同,没有相对应的操作码,它们并不是在运行期间由机器执行,而是在汇编程序对源程序汇编期间由汇编程序处理,这些特殊指令助记符就被称作为伪指令。在 ARM 的汇编程序中,伪指令种类繁多,可以细分为如下几种。符号定义伪(Symbol Definition)指令数据定义伪(Data Definition)指令汇编控制伪(Assembly Control)指令宏指令其他伪指令4.5.5 宏指令功能:MACRO、MEND 伪指令可以将一段代码定义为一个整体,称为宏指令,然后就可以在程序中通过宏指令多次调用该段代码。其中,$标号在宏指令被展开时,会被替换为用户定义的符号,宏指令可以使用一个或多个参数,当宏
14、指令被展开时,这些参数被相应的值替换。4.6 摄像头视频采集4.6.1 V4 简介Video4linux2(简称 V4L2),是 linux 中关于视频设备的内核驱动。在 Linux 中,视频设备是设备文件,可以像访问普通文件一样对其进行读写。4.6.2 Video4Linux 下视频编程流程:(1) 打开设备文件。(2) 取得设备的 capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等。(3)选择视频输入,一个视频设备可以有多个视频输入。6(4)设置视频的制式和帧格式,制式包括 PAL,NTSC,帧的格式包括宽度和高度等。(5) 向驱动申请帧缓冲,一般不超过
15、5 个。(6) 将申请到的帧缓冲映射到用户空间,这样就可以直接操作采集到的帧了,而不必去复制。(7) 将申请到的帧缓冲全部入队列,以便存放采集到的数据.(8) 开始视频的采集。(9) 出队列以取得已采集数据的帧缓冲,取得原始采集数据。(10 ) 将缓冲重新入队列尾,这样可以循环采集。(11) 停止视频的采集。(12) 关闭视频设备。4.6.3 Video4Linux 支持的主要数据结构video_capability 包含设备的基本信息(设备名称、支持的最大最小分辨率、信号源信息等)video_picture 设备采集的图象的各种属性video_channel 关于各个信号源的属性video_
16、window /包含关于 capture area 的信息video_mbuf 利用 mmap 进行映射的帧的信息video_buffer 最底层对 buffer 的描述video_mmap /用于 mmap4.7QT 图形界面设计(QTCreator 简介)4.7.1 QT 简介:Qt 是一个 1991 年由奇趣科技开发的跨平台 C+图形用户界面应用程序开发框架。它既可以开发 GUI 程式,也可用于开发非 GUI 程式,比如控制台工具和服务器。4.7.2 QT 特征面向对象构建支持友好的联机帮助便利性7用户自定义国际化丰富的 API 函数可用户化外观完整的一套组件工具良好的可移植性辅助工具4
17、.7.3 QT 编程主要的类QApplication 应用程序类 QLabel 标签类 QPushButton 按钮类 QButtonGroup 按钮组合类 QGroupBox 群组类 QDateTimeEdit 日期时间编辑框类 QLineEdit 行编辑框类 QTextEdit 文本编辑框类 QComboBox 组合框类QProgressBar 进度条类QLCDNumber 数字显示框类QScrollBar 滚动条 类QSpinBox 微调框类QSlider 滑动条类QIconView 图标视图类QListView 列表视图类QListBox 列表框类4.7.4 qt 事件机制:8(1)
18、事件的产生(2) 事件的调度 两种调度方式,一种是同步的, 一种是异步.(3)事件的派发和处理(4) 事件的转发意义(5)5 种级别的事件过滤,处理办法. 以功能从弱到强, 排列如下:a 重载特定事件处理函数.b 重载 event()函数.c 在 Qt 对象上安装事件过滤器.d 给 QAppliction 对象安装事件过滤器.4.7.5 QTcreator 简介及设计流程Qt Creator 是跨平台的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE ) 。1.创建和初始化子程序;2.设置子部件布局;3.设置 Tab 键次序;4.
19、建立信号与插槽连接.4.8 实验结果:QT 界面截图+视频截图。五、 实习总结在设计中我们必须首先熟悉和掌握什么是嵌入式及视频监控系统工作原理,RFID 技术、传感器技术、ZigBee 无线通信、计算机网络等多种技术。嵌入式在导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,各个领域广泛应用。因此,嵌入式的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。通过这次设计,无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。同时也明白了理论与实践相结合的重要性,
20、只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。从中我也认识到了自己的不足,在某些方面认识片面,对一些专业知识掌握不牢并且眼高手低,动手能力差。经过这次生产实习我学习到遇到不懂的地方就要问,并且要多和大家交流,我还得出一个结论:知识通过实践才能体现其价值,有些东西以为学会了,但真正用到的时候才知道是两回事,所以我认为只有到真正会用的时候才是真正学会了。由于我们对视频监控系统的扩展功能分析不够彻底,所以视频监控系统的功能还有待进一步完善9和提高,主要是:视频监控系统对视频和图像做了简单地压缩编码、如
21、果还需要进一步处理就必须要再一次进行压缩,从而达到压缩后文件包的更小化。视频和图像在播放时只能进行单图像或者单视频进行播放,如果要进行多视频或者多图像同时进行播放,就要提高控制器的处理功能。系统在监控区域进行感应时只是单一的红外感应,如果要进行多视角的感应,就需要增加 ZigBee 模块的感应功能,嵌入式系统的多媒体应用正成为当今技术的热点,基于嵌入式的视频采集系统正是切入到这一热点,它充分利用了嵌入式系统强大的接口能力和针对具体应用的软硬件可自由裁减的特性,具有很强的实用性。将来,嵌入式监控系统的发展会越来越迅速,越来越成熟,由数字化逐步向智能化方向发展,由有线化逐步向无线化方向发展,由固定式逐步向便携式方向发展。未来“Anyone, Anytime,Anywhere,Any device”都能接入网络获取视频监控数据的梦想将不再遥远!附件 2:学生实习笔记(即为实习内容)