datasheet
超过460,000+ 应用技术资源下载
pdf

嵌入式Linux的图像采集与显示

  • 1星
  • 日期: 2015-08-04
  • 大小: 259.14KB
  • 所需积分:1分
  • 下载次数:1
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 嵌入式Linux的图像采集与显示

嵌入式Linux的图像采集与显示

i趣岱里圣蕴苤跫!鲤笙噩!翅基箍2丝翘 k皇王燕室廑旦g 嵌人式Linux的图像采集与显示 郭剑,赵建 (西安电子科技大学机电工程学院 陕西西安710071) 摘要:随着网络技术的发展.利用嵌入式系统实现远程视频监控、可视电话和视频会议等应用已成为可能。为了实现 这些应用,如何获得图像数据和显示图像是一十重要环节。针对这一点,介绍了基于¥3C2410平台与嵌入式Linux进行图 像采集与显示的通用方法,并简单说明了软件的开发流程。 关键词:¥3C2410;嵌入式Linux;目像采集与显示;视频会议 中国分类号:TN919.85 支献标识码:B 文章编号:1004—373x(2006)07—129—03 Image Capture and Display of Embedded Linux GU()Jiaa,ZHAO Jlao School ofMechano—electronicEngin睁rlng.XidianUalversity,Xi’an.710971.Chins} Abstract:Along with the technical development 0f network。using the embedded system to realize the long range supervise.control with video and video telephone had became possible.For realizing these application.how tO get the data of an imagc and display an image is an important part.Aiming at this point,this text introduces a general method tO capture and display an image based Oil the platform of ¥3C2410 and embedded Linux,and explains the process of SO[rware devdopment in brief, Keywords:¥3C2410iembedded Linux;image capture and display;video telephone 1 系统平台的硬件结构 本文使用的系统平台硬件功能框图如图1所示。该 平台采用Samsung公司的处理器¥3C2410。该处理器内 部集成了ARM公司ARM920T处理器核的32 b微控制 器,资源丰富,带独立的16 kB的指令Cache和16 kB数据 Cache。LCD控制器、RAM控制器、NAND闪存控制器、 3路UART、4路DMA、4路带PWM的Timer、并行I/O 口、8路lo位ADC、Touch Screen接口、l。C接口、12S接 口、z个USB接口控制器、2路SPl,主频最高可达 203 MHz。在处理器丰富资源的基础上,还进行了相关的 配置和扩展,平台配置了16 MBl6 b的FLASH和64 MB 32位的SDRAM。通过以太网控制器芯片AX88796扩展 了一个网口,另外引出了一个HOST USB接口。在USB 接口上外接一个带USB口的摄像头。另外,还配有分辨 率为320×240,256色的LCD。 2嵌入式Linux简介 Linux操作系统具有相当多的优点,他的内核稳定、 功能强大、支持多种硬件平台、源代码完垒开放,可裁减 和低成本的特性非常适合于嵌入式应用,并且Linux本身 直接提供完整的TCP/IP协议,可非常方便地进行网络应 收稿日期:2005一10—10  万方数据 用。但Linux内核本身不具备强实时性,且内核体积较 大,而且嵌人式系统的硬件资源有限,因此把Linux用于 嵌入式系统,必须对Linux进行实时化和嵌入式化,即通 过配置内核、裁减shell和嵌入式C库对系统定制,使整个 系统能够存放到容量较小的FLASH中。Linux的动态模 块加载,使Linux的裁减极为方便,高度模块化的部件使 添加非常容易。 囤1 S3C2410平台硬件结构框目 整个系统软件是在嵌入式Linux的基础之上构建的。 ¥3C2410平台使用的Linux内核是在linux一2.4.18内核 打上patch一2.4.18一¥3C2410这个补丁后编译而成。 ¥3C2410平台使用的文件系统是yaf/s,文件系统包括应用 程序、模块、配置文件和库等,图像的采集和显示是建立在 嵌入式Linux内核之上的。整个软件系统如图2所示。 通常宿主机和目标板上的处理器不同,宿主机通常为 Intel处理器,而目标板如图1所示为SAMSUNG 129 一. . 塑剑蔓;墅△萎垦也坚笪国堡墨苤重量丞 ¥3C2410,所以程序需要使用针对处理器特点的编译器才 #include<linux/videodev.h> 能生成在相应平台上可运行的代码。GNU编译器提供这 样的功能,在编译时,可以选择开发所需的宿主机和目标 机,从而建立开发环境。在进行嵌入式开发前的第一步工 作就是把一台PC机作为宿主机开发机,并在其上安装指 定的操作系统。对于嵌入式Linux,宿主机PC上应安装 Linux系统。之后,在宿主机上建立交叉编译调试的开发 环境,开发环境的具体建立这里不细谈。本文采用移植性 很强的C语言在宿主机上编写视频采集程序,再利用交叉 编译调试工具编译链接生成可执行代码,最后向目标平台 移植。 成埘判用M像粟班ⅡⅪ:“&”他辊序) 第1部分,设备的初始化: int fd=open(”/dev/video”-O—RDWR); /*打开设备文件*/ Stl_|UCt video..capability grab—.capability; ioctl(fd,VIDIOCGCAP,&grab—capability); /*获得struet video~capability中摄像头的信息*/ struct video—.picture grab..picture; ioctl(fd,VIDIOCGPICT,&grab—picture); /*获得图像的信息*/ 在获得图像信息后,还可根据需要改变这些信息,例 如对比度、亮度、调色板等,具体做法是先给video pie— ture中相应变量赋新值,再利用V1DIOCSPICT ioetl 函数。 u删x出接 I擞但执驱自 第2部分,使用rrlmap方式的单帧图像采集: 91导程序(Bootloader) 图2软件结构 3基于Vide04Linux的图像采集 Vide04Linux是Linux中关于视频设备的内核驱动, 他为针对视频设备的应用程序编程提供一系列接口函数, 在Linux下,视频采集设备的正常使用依赖于对Vide— 04Linux标准的支持。如果使用Vide04Linux,在编译内核 时,一定要选中Multimedia Deviees下的Video for Linux 选项,本文针对的设备文件是/dev/video,使用的器件是基 于OVSll的USB摄像头。在运行程序前,一定要先加载 USB及OV511设备驱动模块,同时加载Vide04Linux模 块,分别使用命令:modprobe usbeore,modprobe usb— ohci,modprobe videodev和modprobe ov511,以确保生成 设备文件/dev/video,若使用的Linux操作系统不支持 modprobe命令,也可使用insmod命令。一般来讲,基于 匿至甲变霍}匡堕翟 Vide04Linux的图像采集的程序流程如图3所示。 ’——。—————————“————————————————1——“’—}l struct video—mmap grab—buf; /*以下为设置图像帧缓冲区信息*/ grab—bur.frame=O; /*一次只采集一帧q-/ grab—buf.height=240; /*图像高度*/ grab—buf'width=320l /*图像宽度*/ grab buL format—VIDEO PALETTE RGB24: /*图像的调色板格式,24位真彩色*/ unsigned char*data;mmap(0,240*320*3.PROT READjPROT WRlTE,MAP SHARED,fd,O) /*内存映射*/ ioctl(fd,VIDIOCMCAPTURE.&grab bur) /*采集图像*/ 然后调用ioetl(grab fd,VIDIOCSYNC,&frame)函 数,该函数成功返回则表示采集完毕,采集到的图像数据 放到以data为起始地址,长度为240*320*3的内存区域 中,读取该内存中的数据便可得到图像数据。 在此基础上同样可实现连续帧的采集,即一次采集连 续多帧图像的数据,Vide04Linux最多支持一次采集32 帧,此时首先要设置grab bur.frame为要采集的帧数,而 每一帧的数据在内存中的位置为data+grab vm.offlets [frame],其中grab vm为video mbuf结构体变量的一 个声明,利用ioetl(fd,VIDIOcGMBUF,b.grab vm)便可 获得grab—vm的信息。 4基于FrameBuffer的图像显示 害豳 厂—b,±Iq*1  万方数据 当Vide04Linux使用mmap方式采集图像时,他总是 尽最大努力将图像直接显示在屏幕上,但并不一定能够完 成,因此一个完整的设备应该具有图像显示的功能,一般 来讲,嵌入式Linux下显示一幅图像总共有以下几种 方法: (1)在利用Vide04Linux采集图像时,将采集到的图 像数据直接放到FrameBuffer的内存映射区中,而Vide— 04Linux也支持这种功能,利用VIDIOCSFBUF和 VIDl0CGFBUF这两个ioctl函数,可设置和获得struet video—buffer。但该方法并不是每个图像采集设备都 i皿岱皂王攮丕≥垫Qi至差!期盛噩丝!舶 t皇王燕鲞廛周1 支持。PUTCMAP,&new~cmap)将设置新的调色板。 (2)将图像数据存成各种格式(饲如hmp),在各种 以下介绍如何显示一个象素,这里假设LCD为24位 GUI软件中,均会有直接显示不同格式的图像的函数,如 色的。 MiniGui中的FillBoxWithBitmap函数。 x—i00;y一100; /*要显示的象素的坐标。/ (3)直接将图像数据写入FrameBuffer中。location=(x+vinfo.xoffset)*(vinfo.bits—per—pixel/8) 争兰号丰要介绍置.。,j Fram:B“r兰设苎譬孽行兰 Linux控制台上的一个优秀的图形接口,他几乎支持所有 的硬件,提供了统一的API接口,很好地实现了硬件无荚 性,他可以直接操作显存,而且还留有提供图形加遮功能 的接口,运行时不需要root权限。FrameBuffer的设备节 点是/deV/fb“,用户若要使用他,需要在编译内棱时选中 +时+“m“7/of+f3薹二;窑羹茹菁裂嚣藿置。/ /*设置要显示的颜色bl。。=100.g。。。。一15.red一200,/ *(fbp+location)=100; ::fbfb:::。o。c。a曲tio:丰:;三;饕; *(fbp+location+3)一0; 由此便可逐一显示每个象素,进而显示整幅图像。 StrUCt fb vaY screertinfo vinlo: struct fb fix screeninfo finfo; int fd—open(”/dev/fbO”,O—RDWR); ioctt(fd,FBIf)GET FSCREENINF0,&finfo) ioctl(fd,FBIOGET VSCREENINFo,8Lvinfo) 从vinfo和finfo中取得显存起始地址、分辨率、色深 等信息.然后根据这些计算出需映射的显存的大小。 screensize pixel/8; vin:Fo.xres+vinfo.yres。vinfo.bits—per— char*fbp—mmap(O,screensize·PROT—READ PROT— WRITE,MAP—SHARED,fd·O); 由此便可直接操作大小为screensize,起始地址为fbp 的内存区域,在LCD上直接显示图像、图形、文字等,例如 执行memset(fbp,0,screensize)将进行清屏操作。 需要注意的是,对于色深为8位或8位阻下的设备, 在进行绘图操作前还需要设置合适的调色板,操作调色板 要用到fb camp结构,执行ioct](fd,FBIOGETCMAP, &old cmap)将保存两色板信息,执行ioctl(fd,FBIO一 5结语 由于Linux的驱动模型支持模块堆叠技术,内核开发 者已提供了一些通用模块,因此,虽然文中是以USB摄像 头为例,但只要针对自己的图像采集设备编写基于 Vide04Linux的驱动程序,针对自己的LCD编写基于 FrameBuffer的驱动程序,以上的程序便可成为通用的图 像采集与显示程序。应用本文所述方法完成图像采集与 显示工作,再加上相关的处理并接人网络,就构成了一个 智能终端设备,可用于工厂、银行等场合全天候的智能监 控,图像的网络通信等,具有广阔的市场和应用前景。 参考文献 [1]刘峥蝾,张智超,许振山.嵌入式Linux应用开发详解[M]. 北京:机械工业出版社,2004. [23 Linux内核源代码帮助文档. [3]Alex Buell.FrameBufler Howto.V1.1 82 July 1999. [4]Gleicon S Moraes.Programming—v41. 作者简介郭剑 男,1980年出生,陕西绥德人,在读硕士研究生。主要研究方向为嵌入或系统的软硬件设计。 一K ~恩 一卡 一尔 一公一布 一新 一硇 一傲 一燕 一趔 一嚣 }l:L 一品 一路一线 一图 飞思卡尔半导体(Freescale)日前公布了其微控制器产 品路线图,新系列8位和32位器件具备针脚兼容的特性,并 飞恩卡尔汽车和标准产品部高级副总裁兼总经理Paul Grimme表示:“我们期望飞思卡尔今年推出的产品在微控 将共享外围设备接口和一套通用开发工具。 飞思卡尔计划扩展低端和高端8位系列产品。该公司 将推出更低成本的改进产品,适合于剐接触傲控箭器的新设 制器产品领域具有里程碑意义。我们看到.当设计师从具备 外围设备并支持各种应用的控制器性能连续系列中选择时. 属于凡位产品已经变得无关紧要。” 计者;另外还将提供增强的外围设备和扩展内存选择,面向 那些需要更多高端功能的8位产品的资深设计者。飞思卡 尔同时推出的RS08内核是这个路线图的起点。该产品的价 基于微控制器的应用需要更多的连接和功能,因而设计 人员面临着提高性能和缩短开发周期的双重压力。在选择 芯片时,开发工具和软件将是决定性因素。飞思卡尔还计划 位低于50美分。 在32位产品领域,飞思卡尔将继续降低ColdF·re系列 的成本,以低成本架构的价位,提供32位的性能。到2006 不断增强CodeWarrior DeveIopmcnt Studio产品,提供自动 代码生戚,让首次使用的用户只需点击7次,即可创建工作 项目。飞思卡尔还在定义统一硬件开发平台,这些平台将提 年底,飞思卡尔计划推出针脚兼容器件,这些器件能够让8 位设计轻松升级到32位性能.同时保持相同的外围接口。 供通用的板卡和电缆接口,让设计人员在使用各种架构时都 拥有一致的体验。  万方数据 131 嵌入式Linux的图像采集与显示 作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 被引用次数: 郭剑, 赵建, GUO Jian, ZHAO Jian 西安电子科技大学,机电工程学院,陕西,西安,710071 现代电子技术 MODERN ELECTRONICS TECHNIQUE 2006,29(7) 16次 参考文献(4条) 1.刘峥嵘;张智超;许振山 嵌入式Linux应用开发详解 2004 2.Linux内核源代码帮助文档 3.Alex Buell FrameBuffer Howto 1999 4.Gleicon S Moraes Programming-v41 本文读者也读过(4条) 1. 梁孔科.杨林楠.张丽莲 基于S3C2410与Linux的USB驱动的设计[期刊论文]-福建电脑2008,24(4) 2. 王鑫.陈晓竹.徐倩.WANG Xin.CHEN Xiao-zhu.XU Qian USB接口的嵌入式图像采集与显示系统[期刊论文]-中国 计量学院学报2006,17(1) 3. 岳晨林.包国烨.杨学斌.史有群 基于嵌入式技术的视频显示和播放状态智能监视系统[会议论文]-2007 4. 徐加羚.程光.丁伟 基于Linux内核高速IP网络测量器的研究[期刊论文]-计算机科学2003,30(11) 引证文献(17条) 1.崔丽 基于Android和ARM的监视平台的设计与实现[期刊论文]-时代教育(教育教学版) 2010(10) 2.洪毅虹.曹茜 Linux下视频监控系统的研究与设计[期刊论文]-电脑编程技巧与维护 2010(18) 3.曹占中.周余.王自强.都思丹 基于s3c2440的Linux摄像头驱动开发[期刊论文]-电子测量技术 2009(2) 4.刘少刚.王学军 嵌入式Linux系统下的视频采集与SDL研究应用[期刊论文]-林业机械与木工设备 2008(5) 5.冯欢.张红梅.宋天楹 LPC3250嵌入式系统的图像采集[期刊论文]-自动化仪表 2011(3) 6.郭朗 嵌入式遥控摄影和监视平台的设计与实现[期刊论文]-电脑知识与技术 2009(17) 7.淦克亮 基于ARM嵌入式的图像采集与显示系统设计[期刊论文]-工业控制计算机 2011(8) 8.陈友荣.杨海波.程菊花.郑国惠 基于Linux的无线视频传输系统设计与实现[期刊论文]-中国有线电视 2010(9) 9.薛敏彪.吴广伟.王健.卢欣超 嵌入式机载视频输出接口设计[期刊论文]-现代电子技术 2011(2) 10.焦国胜.秦会斌 嵌入式视频采集与显示系统设计[期刊论文]-杭州电子科技大学学报 2011(3) 11.孙开琼.余祖龙 基于WinCE的嵌入式图像采集系统设计[期刊论文]-现代电子技术 2011(8) 12.杨将军.王水波.郑辉 基于S3C2410的嵌入式串口通信实现[期刊论文]-现代电子技术 2007(18) 13.吴晴.周健 嵌入式图像采集系统的设计与实现[期刊论文]-电子测量技术 2007(6) 14.吴才章.步东伟 基于嵌入式的稻米形态特性分析仪的开发[期刊论文]-中国粮油学报 2011(1) 15.吴才章.步东伟 基于嵌入式的整精米特性分析仪[期刊论文]-自动化技术与应用 2010(7) 16.吴才章.步东伟 稻米粒型特性参数测试系统的开发[期刊论文]-农业工程学报 2010(12) 17.吴才章.步东伟 稻米粒型特性参数测试系统的开发[期刊论文]-农业工程学报 2010(12) 本文链接:http://d.g.wanfangdata.com.cn/Periodical_xddzjs200607052.aspx
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })