24小时论文定制热线

咨询电话

ASP.NETVC++MySQLPHP安卓JSPLinuxJava机械VBASP单片机模具汽车工程毕业设计Flash
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

Linux和ARM9下视频图像采集与显示系统设计

添加时间:2018/06/29
视频采集与显示在工业领域中有着重要的作用, 比如现场工况监视、安全监控以及与图像相关算法的实现等[1-2].而随着嵌入式技术的发展, Linux操作系统以其开源、实时性高等优点, 逐步成为嵌入式领域最常用的操作系统平台.
  以下为本篇论文正文:

  摘要:随着嵌入式系统的逐步发展, 实现在嵌入式系统上的视频采集与显示能够提高嵌入式的应用范围与实用性.基于这个目的, 设计了基于S3C2440控制芯片、Linux操作系统的视频采集与显示系统, 对PAL制式的模拟摄像头进行信号采集和解码, 然后显示在LCD显示屏上.根据视频显示测试结果, 该系统具有稳定性好、可移植等优点, 在生产生活中有较高的实用价值.

  关键词:嵌入式系统; ARM-Linux; 视频解码; 视频显示;

  Abstract:With the development of the using of embedded system, its application range and practicality can be improved by implement the function of capture and playback the video. Based on this purpose, a video capture and playback system, that collect video signals from a PAL-formed camera and display the video after decoding the signal, is designed based on S3C2440 microchip and Linux operating system. According to test results of video capture and playback, the system have the advantage of having high reliability and portability, so have widely practical use.

  Keyword:embeded system; ARM-Linux; video acquisition; video display;

  视频采集与显示在工业领域中有着重要的作用, 比如现场工况监视、安全监控以及与图像相关算法的实现等[1-2].而随着嵌入式技术的发展, Linux操作系统以其开源、实时性高等优点, 逐步成为嵌入式领域最常用的操作系统平台.同时, 基于精简指令集的ARM芯片也因为性能高、功耗低、指令运行速度快得到了广泛的应用.所以实现在ARM-Linux平台上的视频图像采集与显示具有较高的实际意义.

  本文在以ARM9芯片为主控芯片, 搭载Linux操作系统的平台上, 实现了视频图像的采集与显示整个系统从架构上可以分为硬件和软件两部分.

  1、图像采集与显示系统的硬件电路

  硬件平台是软件运行的载体, 本文的硬件平台主要包含以下几大部分:电源模块、S3C2440最小系统、PAL-N模拟摄像头、TVP5150的解码模块、LCD显示屏.其中S3C2440最小系统包括S3C2440主控芯片和它正常运行所需要的晶振、ROM和RAM等电路.硬件整体架构如图1所示.

图1 系统硬件框架图
图1 系统硬件框架图

  1.1、电源模块

  电源模块为硬件平台提供电源, 本文采用的12 V锂电池组为供电电源, 使用WRF1212、AMS1117-5 V、AMS1117-3.3 V电压稳压芯片, 分别为整个硬件平台提供12V、5V和3.3V的直流电源.电路图如图2所示.

  1.2、S3C2440最小系统

  S3C2440最小系统主要包括S3C2440芯片、晶振电路、RAM电路、ROM电路和复位电路.本文中的晶振采用的是12 MHz晶振, 12 MHz的时钟信号在S3C2440芯片的内部通过PLL进行处理, 产生S3C2440芯片运行的主频400 MHz时钟信号.复位电路采用的是MAX811芯片, 该芯片的作用是输入一个低脉冲信号, 产生一个低电平信号, 这个低电平信号就是产生S3C2440芯片的复位信号.本文采用两块HY57V561620FTP芯片并联作为内存RAM、K9F1216U0A的NAND flash芯片作为系统的ROM.

图2 电源电路图
图2 电源电路图

  1.3、PAL-N模拟摄像头和TVP5150视频解码模块

  本文中采用的模拟摄像头为PAL-N制式的摄像头, 信号分辨率为720×576, 但由于PAL制式是隔行视频传输信号制式, 所以该信号在一个周期内传输的隔行视频信号分辨率为720×288.该摄像头如图3所示.

图3 PAL-N制式摄像头
图3 PAL-N制式摄像头

  模拟摄像头产生的模拟信号经过解码, 产生数字信号才能够被S3C2440芯片的摄像头接口采集, 所以本文采用TVP5150的视频解码芯片[3].TVP5150芯片可对多种制式的视频信号进行数字解码.但输入和输出都是隔行的信号, 本文中采用的PAL-N制式的摄像头输出的就是隔行的PAL视频信号.而TVP5150输出分为两种格式, ITU BT601格式和ITU BT656格式, 这两个格式在硬件电路中的区别在与ITU BT656信号不需要帧同步和行同步信号, 只需要时钟信号, 帧同步信号和行同步信号都集成在了视频数据信号里, 为减少总线间的干扰, 本文采用ITU BT656的格式.所以, 视频解码模块的整体电路图如图4所示.

  1.4、LCD显示屏

  LCD显示屏用于显示视频信号, 本文中采用的是7寸显示屏.7寸LCD显示屏的分辨率为800×600.在本文中采用的S3C2440芯片还有外部LCD显示接口.LCD显示屏电路如图5所示.

  2、视频采集与显示系统的软件

  本文的软件架构是:Linux操作系统运行在所建立的硬件平台上, 由Linux平台上的摄像头接口驱动摄像头, 来完成对TVP5150解码芯片传输至摄像头接口的视频数据信号的采集, 同时提供保存视频信号的内存段的内存重映射方法.由QT程序完成视频信号的显示.

图4 视频解码电路
图4 视频解码电路

图5 LCD显示屏电路
图5 LCD显示屏电路

  2.1、摄像头接口驱动

  摄像头接口驱动有两种方式, 一种是将摄像头驱动写成V4L2的形式.另一种方式是将摄像头驱动写成普通设备的方式, 这种方式的好处是能够根据项目进行灵活的修改.本文中由于TVP5150的解码芯片需要用IIC通讯方式来进行控制, 故采用第二种方式, 将摄像头的接口写为IIC总线设备驱动的形式.

  摄像头驱动主要完成工作:TVP5150芯片的初始化、摄像头接口的初始化、视频数据帧内存的申请、内存映射方法的实现.TVP5150芯片的初始化需要用到IIC通讯, 所以摄像头驱动才采用IIC总线设备驱动的形式.在IIC驱动中, 由i2c_driver和i2c_device两种结构体来实现IIC驱动和设备的注册, 由i2c_algorithm结构体来实现对IIC设备的读写方法.TVP5150的初始化主要是其内部的若干寄存器进行配置, 主要的寄存器有:0x00寄存器, 选择视频信号输入源;0x03寄存器, 来进行数据输出使能;0x0d寄存器, 进行输出信号格式与比率设置.TVP5150芯片内部可对视频输入信号进行检测, 自动调整相关输入信号控制寄存器的值, 所以在这里可以不用配置.

  摄像头接口的初始化是对S3C2440芯片内部的相关寄存器进行初始化, 主要是进行摄像头接口的数据输入格式配置、输入分辨率配置、数据保存内存地址的首地址、输出FIFO的格式配置、输出FIFO的分辨率及缩放配置.

  在Linux操作系统中, 内存分为两种权限的内存:内核空间内存和应用层内存.这里采用申请页的方式来进行申请, 申请的内存长度为1 024页, 每页的长度为4 096字节.为避免复制大量内核层数据会占用太多的CPU资源, 所以这里采用内存映射的方式将内核空间映射到用户空间[4].

  由驱动程序提供内存映射的方法, 重映射方法通过mmap () 函数实现.在内核驱动的mmap () 函数原型为:int (*mmap) (struct file*, struct vm_area_struct*) .这里采用nopage机制进行页表重映射.这个页表重映射机制通过调用内核结构体vm_operations_struct中的fault函数来实现.函数原型为:int (*fault) (struct vm_area_struct*vma, struct vm_fault*vmf) .

  2.2、QT界面显示程序

  QT开发环境具有跨平台、通用C++编程语言、特有的信号与槽机制等优点, 因此在嵌入式开发领域内得到了较为广泛的应用[5-6].本文中, QT程序主要实现以下功能:调用摄像头接口的内存映射方法, 完成内存映射;显示及刷新图像;通过按键对视频显示操作的实现 (如放大、缩小等) .

  调用摄像头接口驱动中的内存映射方法是通过应用层的mmap () 函数来实现的, 函数原型为:void*mmap (void*start, size_t length, int prot, int flags, int fd, off_t offset) ;通过内存映射, 那么就可以将返回指针作为视频图像帧首地址来使用了.视频的显示是以图片的形式显示在LCD界面上的, 不停地刷新来形成视频效果.通过指针所指向的内存作为图像帧, 首先要建立一个QImage类, 这个类是QT中专门用于内存转换为图像帧的类.即可通过以下语句来实现内存数据到图像帧的转换:

图像帧的转换

  然后将frame图像帧显示在界面的Qlable上:

界面的Qlable

  图像帧的定时刷新通过QT中的Qtime类来定时实现:

QT中的Qtime

  显示的主流程如图6所示.

图6 显示主流程图
图6 显示主流程图

  在QT程序中, 可通过按键来实现对视频的操作, 如放大、缩小和上下左右移动等.在QT程序中, 按键从按下到实现效果是通过信号与槽的机制来实现的, 即按下一个按键时, 就会发出一个信号.而在程序中的槽函数来接收相应的信号, 通过不同的信号来实现对视频的操作.

  3、测试

  对系统的测试主要是对采集 (解码) 效果和显示效果进行测试.

  视频解码模块的功能是对模拟信号进行解码, 解码生成数字信号主要包括数字信号的时钟信号和数字视频ITU BT.656信号.采用示波器捕捉的时钟信号和数字视频信号波形如图7所示.ITU BT.656视频信号的资料传输速率是27 MByte/s, 视频码流传输总线的宽度为8位, 正好是1个Byte, 所以视频时钟信号是27 MHz.由示波器所捕捉的时钟信号波形图可以看出产生的时钟信号稳定.数字视频信号采用YOUT5端口进行信号捕捉, 产生的信号连续效果较为清晰稳定.

图7 视频时钟信号与数字视频信号波形图
图7 视频时钟信号与数字视频信号波形图

  整体显示效果如图8所示.

  从测试结果中可以看出, 系统对图像的采集、解码、显示较为稳定, 实现了对视频采集和显示的目的.

图8 图像显示界面图
图8 图像显示界面图

  4、结论

  本文构建了基于ARM-Linux平台的视频采集与显示系统.硬件上采用ARM内核的S3C2440为主控芯片和TVP5150芯片为解码芯片.软件上编写了Linux下的摄像头驱动和QT界面显示程序.从调试结果可以看出, 该系统较好地实现了视频的采集与显示.

  同时, 本文中的摄像头驱动是针对标准PAL摄像头和标准摄像头接口进行编写的, 能够有较好的可移植性.

  参考文献
  [1]赵楠楠, 杨秀虎.基于Linux+ARM的多格式视频图像采集系统的设计[J].微型机与应用, 2014 (21) :45-47.
  [2]张成法, 孙月兴.基于S3C2440A的嵌入式视频监控系统的设计与实现[J].无线互联科技, 2016 (19) :7-8.
  [3]张新, 张雯, 贺云璐, 等.TVP5150AM1芯片在视频采集系统中的应用[J].西安邮电大学学报, 2013 (4) :51-54, 99.
  [4]王兆文, 蒋泽军, 陈进朝.一种提高Linux内存管理实时性的设计方案[J].计算机工程, 2014 (9) :291-294, 299.
  [5]陈峰, 郭爽, 赵欣.基于QT和嵌入式的视频监控系统[J].通信技术, 2011 (10) :109-111.
  [6]桑旻生.基于QT+Linux的实验室视频监控系统设计与实现[D].成都:电子科技大学, 2015.

    相关内容
    好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。
    所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
    如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!