嵌入式操作系统在实时图像处理系统中的应用.docx
- 文档编号:30696297
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:17
- 大小:217.72KB
嵌入式操作系统在实时图像处理系统中的应用.docx
《嵌入式操作系统在实时图像处理系统中的应用.docx》由会员分享,可在线阅读,更多相关《嵌入式操作系统在实时图像处理系统中的应用.docx(17页珍藏版)》请在冰豆网上搜索。
嵌入式操作系统在实时图像处理系统中的应用
课程设计报告
课程名称:
嵌入式系统课程设计
专业班级:
自动化XXX班学号:
XX
学生姓名:
王XX
指导教师:
XXX
完成时间:
2014年6月3日
报告成绩:
评阅意见:
评阅教师日期2014.6.3
芙蓉学院教学工作部制
嵌入式操作系统在实时图像处理系统中的应用
1.设计要求
随着电子信息技术的迅猛发展,视频监控、视频图像的采集和处理得到了广泛
的应用。
传统的图像采集系统由于技术的限制,使用的都是低速的A/D转换器,由于芯片和总线结构本身的限制,采集速度一直难以提高。
嵌入式系统具有体积小、
功耗低、处理速度快、软硬件可裁剪、可扩展性强等优点。
为视频图像的采集与处
理提供了基础。
由于对实时性能的苛求,图像信息处理系统大多采用监控软件的方式来保证应用软件的正常运行。
要求并行处理系统能适应不同算法的并行处理结构,因此系统控制软件必须具有任务调度、资源分配、进程管理等功能以及支持系统计算能力的扩展。
2.设计的作用目的
数字图像采集与处理系统包括图像的采集、处理、存储、传输和显示几个方面。
系统以ARM处理器为基础,并根据需求扩展必要的外围设备,利用嵌入式Linux
操作系统进行实时多任务管理,通过应用程序对摄像头进行操作并实现图像处理功
能。
系统资源的分配是静态的,数据流是固定的,没有资源管理、任务调度和并发处理的功能。
但是,需要处理的数据量变得越来越大,而处理的时间却要求越来越短,采用多DSP并行的方式就不可避免。
嵌入式操作系统具有实时多任务微内核,有着强大的任务管理和资源管理能力。
3.设计方案
以多片ADSP21060构成的图像处理系统为硬件平台,借助Virtuoso4.2提供的微内核构造了一个嵌入式系统软件,介绍了系统中任务调度、资源管理、并发处理、中断响应、数据通信等实现方式。
4.硬件设计
4.1Virtuoso4.2的特点介绍
1)提供了专为DSP优化的可扩展专用内核。
该专用内核采用独特的分层方式和模块化的设计,对强实时的多任务处理和高速中断提供了有力的支持。
2)采用了多芯分布式应用的先进VSP编程模式。
Virtuoso负责全部通讯工作,开发者可以很透明地将数据对象和任务从一个处理器移到另一个处理器。
处理器拓扑结构的改变并不影响应用程序的确定行为,这种独特的设计使对多处理器系统的编程就象对单处理器一样简单。
系统还提供了硬件抽象层,允许开发者对于算法进行口对口连接,为可移植性提供了良好保障,开发者可轻松地将系统升级到更高端的DSP系统。
3)具有集成开发环境可以简化并加速应用程序的开发。
4.2实时图像处理系统的嵌入式系统软件的实现
虽然Virtuoso4.2提供了多任务调度方法和用于并发性同步和互斥的系统内核对象,但是嵌入式系统软件中任务划分和并发机制、资源的有效管理、中断处理以及数据通信都需要研究和实现。
1)任务的划分和并发机制
嵌入式微内核为多任务创建运行环境,担负着任务管理、任务控制、任务间的通信、任务的同步与互斥等功能,而嵌入式系统软件是系统功能实现的关键。
如何基于嵌入式微内核,更好地将系统应用划分成一个个的并行是系统协调工作、嵌入式微内核充分发挥作用、简化设计复杂性的基础。
划分任务的好坏直接影响到了系统性能的好坏和执行效率的高低。
因此,任务的划分和并发机制是系统设计的重点。
决定系统中任务划分和并行性的最主要的因素是系统中所实现功能间的异步关系。
这就需要从数据流的分析入手,对系统的功能进行划分,根据数据流图中数据的变换,分别确定并行和顺序执行的变换,从而构造不同的任务。
通过对图像处理系统的分析,可以从系统的内部功能上把它分为消息处理、系统监控、系统自检和图像处理等任务。
在这里图像处理任务是系统的主要任务而且是一个周期性任务。
系统监控、系统自检用于处理系统内部事件,根据系统的命令来执行,属于异步任务。
而消息处理完成的是用户接口控制,必须拥有高的优先级使接口输入和响应时间容易控制。
图像处理又可以根据不同的算法逻辑分成不同的图像处理子任务,分配给不同的优先级。
从系统的I/O功能上分为控制信息I/O和图像数据I/O。
考虑到系统的执行效率和各个处理器的利用率,可以通过Virtuoso的集成开发环境对各处理器的任务进行负载分析,使处理器的利用达到均衡。
对于图像处理子任务,在并行方式上属任务级的,这样就存在2种基本的并行结构:
流水线结构和并发结构,也可以2种结构混合使用。
对于并发结构,子任务的并发处理可以通过多个不同的处理器DSP运行同一算法完成图像不同区域的操作,也可以把算法设计成并行算法在不同处理器结点上进行运行。
为了防止其他任务干扰图像处理算法的并行运行,可以通过图像数据的互斥来保证,所有处理器上的任务完成以后,向系统发出完成消息,通知系统可以对图像进行其他操作,从而达到了多处理器间任务的同步。
而对于流水线结构,不同的DSP承担不同的任务,任务可以是不同的算法,也可以是同一算法的不同阶段。
由于图像数据I/O任务与图像处理任务在操作上有时间的先后顺序,因此利用这个特点可以通过流水线结构把任务的执行时间重叠起来。
2)数据通信和中断处理
图像信息处理系统中数据通信主要包括:
图像数据传输、消息传输、用户接口交互信息等。
图像数据量大,在系统中传递频繁,因此要对图像数据传输进行有效管理。
针对设计的图像信息处理硬件系统中DSP采用的是ADSP21060,按照该芯片的特点,决定系统的图像数据利用ADSP21060的LINKPORT,通过点对点的高速DMA方式实现传输,而且不同的图像处理算法需要处理的图像区域不同,根据需求对图像进行区域传输减小了图像传输的数据量。
尽管ADSP21060的LINKPORT的数据传输率高,但由于图像信息处理系统中,图像数据通信频繁,不可避免地要影响系统的效率。
因此,通过图像处理任务在各处理器上有效分配来减少图像传输的可能,同时还要把图像传输作为单独的任务同其他任务并行起来。
用户接口交互信息由专门的消息处理任务完成。
消息传输包括系统消息的传递和透明的进程之间同步状态信息的传递。
处理在中断服务中完成。
中断处理部分还包含对其他硬件的中断服务。
因此必须对其进行分级管理,才能满足不同实时性要求。
硬件请求、系统消息、进程的状态信息都拥有自己的优先级来表示它的紧迫度。
中断服务中对硬件中断和消息传递进行鉴别,对不同优先级的请求采用不同的响应策略。
3)资源管理和系统监控
结合DSP的特点资源管理使用静态分配和动态管理相结合的方法。
系统的地址空间是通过静态分配来实现的,系统控制软件代码段、应用程序代码段、公共数据段、应用程序数据段、堆栈等都是事先通过连接描述文件分配好的,在使用时可以通过内存管理API接口在堆栈区进行存储操作。
对于各个任务的共享资源,例如:
共享总线、LINKPORT口、存储器等硬件资源的占用,则是根据各个任务的需要,进行动态分配、使用和释放的。
为了确保程序运行在一个工作正常的硬件平台和可靠的软件系统上,还为系统设计了状态监视功能,它包括系统自检和系统的运行状态。
其实现方法就是对于不同的硬件和任务定义工作状态字,系统中存在独立的系统监控进程,有较低的优先级,通过定时调度使其在不影响主要任务的情况下得到运行,从而能够监视系统的工作状态并及时报告。
4.3主处理器模块
根据上述的思想和方法构造了基于Virtuoso微内核的嵌入式系统软件,并在多片ADSP21060组成的硬件系统上进行实验,以研究该系统软件的功能和效果。
4.3.1.单DSP上进行的实验
将基于多尺度对比度图像融合方法及性能评价的算法(以下简称为校正算法)作为一个任务在系统中实现,系统中还存在其他任务:
消息处理、图像数据输入、结果图像输出和IDLE任务。
系统消息处理拥有最高的优先级,以保证消息的实时响应;图像数据I/O和校正算法具有略低的优先级,IDLE任务优先级最低。
DSP负载情况见图1。
其中,横轴代表时间(ms);纵轴代表DSP负载的百分比。
各任务运行时间见表1,可以看出Virtuoso微内核开销很小,但是校正算法耗费了大量的处理器时间。
表1图像处理系统各子任务运行时间
4.3.2.用2片DSP进行调试
为了提高效率决定对校正算法进行并行处理,使用2片DSP,对图像进行分块,并行的进行校正。
并上方曲线代表处理器Node1上的负载情况,下方是处理器Node2的负载情况,横轴代表时间(ms);纵轴代表DSP负载的百分比。
处理器Node1上运行系统消息处理、图像I/O和校正算法;处理器Node2上只运行校正算法。
可以看出,2片DSP的负载不均衡。
处理器Node2可以再增加任务,因此在其上加入跟踪算法[5]。
得到所示的均衡负载情况。
但是通过任务运行时间(见表2),看出由于校正任务和跟踪任务执行有时间上的先后,所以系统的总时间仍旧较长。
表2在不同DSP片数各子任务的运行时间ms
5软件设计
5.1系统的结构框架
系统以TM320DM642为核心,由视频采集模块、存储模块、视频输出模块、报警模块、JTAG模块、电源模块等组成,系统的硬件结构图如图4所示。
视频采集模块主要完成实时视频数据采集,存储模块包括SDRAM和FLASH两种存储体,其中,SDRAM主要用来储存视频数据,FLASH存储系统的程序固化程序和系统的相关配数据,视频输出模块将处理结果实时显示,报警模块实现实时报警显示功能。
图1系统结构图
TM320DM642图像处理模块DM642是系统的核心,它采用(VelociTI)体系结构,在600MHz时钟频率下每个指令周期可并行8条32位指令,器,8个独立并行计算功能单元。
采用两级缓存结构,64位的EDMA控制器可以在没有CPU参与的情况下,完成映射存储空间中的数据搬移,极大地提高了系统的并行性能。
大容量的二级缓存和EDMA通道是DM642的高性能体现之一,合理的管理和使用,将大幅度提高程序运行的性能[5]。
DM642还具备了丰富的外围接口,主要包括3个可配置的视频端口(VP0、VP1、VP2),能提供和通用的视频编、解码器等数据流的无缝接口,支持CCIR601,ITU-BT.656、BT.1120、SMPTE125M、SMPTE260MSMPTE274M和SMPTE296M等多个视频标准;64bit的外部内存接口(EMIF)可以寻址字节的外部存储空间,可以无缝连接SDRAM、SRAM等存储器,方便外部存储器的扩展;I2C总线端口使DM642容易控制外围器件;16位通用输入/输出端口(GPIO)等。
以DM642为核心的图像处理模块包括系统的外部时钟电路、JTAG。
该模块的主要功能为:
CPU将EDMA搬运过来数字视频信息先进行中值滤波、图像分割等预处理,然后经过道路检测、车标识别、跟踪、测距等算法后,将处理结果送实时输出模块给用户提供直观的视频信息,同时目标值也通过GPIO送往报警模块,实现报警和显示功能。
5.1.1视频图像采集模块
视频采集模块由CCD摄像头和视频解码芯片TVP5150构成,实现视频数据的采集A/D转换等相关功能。
由于DM642的3个视频口均可以分为A和B两个通道,每个通道均可被配置为视频输入或输出口,DM642最多可支持6路视频输入或输出。
为方便系统的扩展和升级,本系统设计了4路视频信号采集通道,DM642的视频口的具体配置为:
Vport0、Vport1配置为视频输入,Vport2配置为视频输出,其中Vport0、Vport1的A、B通道均被配置为视频输入模式。
该模块采用的视频解码芯片TVP5150,具有高性能低能耗、集成度高、适应性强等特点。
可自动识别NTSC/PAL/SECAM等制式的模拟视频信号,按照YCbCr4:
2:
2格式转化成数字信号,以8位内嵌同步信号的ITU-RBT.656格式输出。
时钟频率为14.318MHz。
其硬件连接如图2所示。
图2TVP5150与DM642的连接
为实现四路视频采集,DM642的VP0、VP1的A、B通道分别连接一片TVP5150。
在文中列举的这一路视频通道,TVP5150的视频输出口YOUT[0~7]与DM642VPORT口的VPOD[2~9]相连,TVP5150的系统时钟SCLKVPOCLK0相连。
采用ITU-RBT.656码流格式,视频流内嵌图像的水平同步、垂直同步、场同步等同步信号[4]。
在系统工作过程中,DM642视频口解码BT656,得到YUV(4:
2:
2)格式的图像,并通过EDMA传输到SDRAM中存储,CPU通过访问SDRAM中的图像数据,依照程序进行相应的图像处理。
TVP5150的时钟由外接晶振电路提供,DM642对TVP5150的访问和控制操作是通过I2C总线实现的,DM642和TVP5150的I2C总线接口SCL和SDA分别互连。
DM642对TVP5150从器件地址的选择是通过对YOUT7管脚电平的配置来是实现的,具体是对该管脚进行上拉电阻(0xBA)和下拉电阻(0xB8)操作,通过硬件配置YOUT7的状态确定该器件的访问地址。
5.1.2视频图像输出模块
视频输出模块由视频编码器SAA7121和显示器组成,系统将VP2的A通道配置为视频输出通道,采用PHILIPS公司的SAA7121视频编码芯片,该芯片支持PAL与NTSC格式的编码,支持BT.656格式的数字视频输入。
SAA7121有1路复合视频(CVBS)输出和1路超级视频(S-Video,Y/C)输出,内部包含同步/时钟产生器和数模转换器两部分电路。
DM642与SAA7121的硬件连接如图3所示。
图3SAA7121与DSP的连接图
VP2的A通道作为8位的BT.656显示时,需要行同步信号、场同步信号、LLC等相关信号。
其中,行同步信号(HSYN)由DM642的VP2CTL0管脚提供;场同步信号(VSYNC)由VP2CTL1提供,LLC信号是由VP2CLK0提供。
8位视频信号从VP2D(2~9)送到SAA7121的MP(0~7)口,由SAA7121实现D/A转换和输出功能。
DM642同样是通过I2C接口对SAA7121进行控制和访问。
DM642对SAA7121访问地址的选择由SA状态来决定的,SA管脚电平为低电平时,其地址为0x88H,SA为高电平时,其地址为0x8CH。
在本系统中将SA管脚直接接地,因此该从器件的地址为0x88H。
在系统上电后,DM642通过I2C接口对SAA7121进行初始化和寄存器配置,为实时视频输出做好准备。
5.1.3报警模块
一个功能完善的嵌入式视频图像处理系统不仅要有完备的实时图像处理功能,而且还要具备友好的人机交互功能。
本系统中DM642将采集到的视频信号实时处理完成以后,将处理结果实时输出,为用户提供直观的处理结果;同时将目标数据通过GPIO接口传送到报警模块,报警模块将目标数据显示在LED显示器上,根据报警决策实现报警。
同时根据报警级别点亮相关的指示灯,实现了多形式的结果显示。
该报警模块采51增强型89C52单片机和LED显示单元,以及蜂鸣器电路和发光二极管电路组成,单元电路如图4所示。
通过该模块,为用户提供了直观的目标数据显示,具备实时报警功能提醒用户注意,并且通过点亮不的LED区分不同的报警级别,使系统功能更加完备。
图4报警单元的连接图
在该模块中DM642将处理后得到的目标数据同过GPIO的高8位传送到单片机的P1口,单片机负责将P1口的数据在LED显示器上显示,并根据系统约定在达到报警条件时,通过蜂鸣器单元发出声音报警,并根据报警级别点亮不同的发光二极管予以区分,具体的实现方法为:
GPIO_RSET(GPGC,0x0);/*将GPIO0不作为GPINT使用*/
GPIO_RSET(GPEN,0xff00);/*将GPIO0高8位初始化*/
GPIO_RSET(GPDIR,0xff00);/*将GPIO0作为输出*/
Object<<=8;/*将目标值右移8位*/
GPIO_RSET(GPVAL,Object);
DM642_waitusec(5000);
DM642_waitusec(5000);
Object>>=8;
Object=P1。
5.2系统软件功能设计
为了搭建一个可以实现不同视频处理算法的平台,系统软件部分主要包括以下几个部分:
系统引导部分、DM642的初始化程序(包括片内外设的选择、EMIF初始化、I2C模块的初始化、视频初始化)、编解码芯片的初始化、Flash的读写程序、EDMA进行视频数据传输的设置报警模块初始化等。
在初始化完成以后,系统的主要任务是实现视频数据采集、数据搬移、实时视频图像处理、实时输出、报警等相关功能,系统的软件框图如图5所示。
系统的软件主要分为两个部分,其中图像处理部分主要在DM642中完成,报警单元主要在单片机上进行,保证两个处理器之间的协调性也是系统软件设计需要注意的地方。
本系统软件的工作流程为:
在系统上电以后,DSP先从FLASH加载程序,完成主要芯片初始化及相关寄存器、外围器件的配置等工作,完成系统的初始化。
由CCD摄像头摄入图像传送到TVP5150解码器,视频模拟信号在TVP5150内部在SAA7115内部经过钳位、抗混叠滤波A/D转换、YUV分离电路之后,转换成BT.656视频数据流送入DM642视频口,DM642然后通过视频口解码BT.656,得到YUV(4:
2:
2)格式的图像,并通过EDMA传输到动态存储器SDRAM)中存储。
CPU通过访问SDRAM中的图像数据,依据视频处理算法对视频数据进行实时处理,然后将处理后的视频数据送到视频输出模块,由输出模块实现D/A转换并实时显示。
目标数据通过DM642的GPIO口传送到报警模块,由报警模块实现数据显示和报警功能。
图5系统程序结构框图
本系统采用ROM引导方式。
引导过程如下:
系统上电时进人中断服务表的复位中断,将CE1(FLASHROM)的前1K空间的内容,通过EDMA按照默认的ROM时序,搬运到由0x00开始的地址空间,EMIF自动将连续的字节组成32位的指令。
DSP复位过程结束后,指向程序的入口点c_int00地址处。
开始执行系统程序,并启动图像采集模块,首先DSP对采集的图像进行预处理,然后进行道路检测、目标识别、跟踪、测距等环节,最后将处理结果实时显示,并由报警单元进行目标显示和实时报警。
6.系统仿真与调试
在系统的硬件平台搭建好以后,将系统应用于结构化公路智能车辆检测系统,系统实时图像处理算法主要是围绕结构化道路车辆目标检测进行。
本系统的车辆目标检测主要是基于单目视觉的方法,系统软件主要是针对在结构化道路上对采集到的实时车辆视频信息进行预处理、智能车辆目标识别、目标跟踪、前方车辆障碍物距离计算等相关算法,将得到的目标数据送到报警模块,由报警模块实现目标数据显示的报警。
系统软件算法主要包括以下三个部分。
(1)预处理
由于条件限制、随机干扰、道路颠簸等,DM642接收的原始图像含有大量的干扰信号和随机噪声,须对其进行滤波、去除噪声信号等预处理,对目标区域进行有选择的突出,同时衰减不需要特征[6]。
预处理部分采用的是空间域中的中值滤波的方法对视频图像进行预处理,有效的抑制脉冲干扰和椒盐噪声,保护图像的边缘[7]。
预处理部分采用的是空间域中的中值滤波的方法对视频图像进行预处理,有效的抑制脉冲干扰和椒盐噪声,保护图像的边缘[7]。
车辆具有规则的水平边界和垂直边界,有良好的对称性。
车辆边缘增强的目的在于突出目标边缘信息,以利于目标边缘识别。
本系统采用的是Sobel边缘算子,有效突出车辆轮廓信息,消除路图像中大部分无用信息。
为了实现目标检测,需要对目标区域进行有效的突出,系统采用多阈值分割的方法对灰度视频信息进行二值化处理,将目标区域和背景区域加以区分[8]。
⑵道路检测及车道线识别[7][9]
在该部分中,先通过图像分割方法确定汽车的行驶路面区域,然后找出路面的边缘点,最后运用数据拟合的方法找到道路边界的轨迹。
这样就可以精确地恢复路面,并准确地估算公路延伸方向,保证车辆在车道内行驶,同时也将目标搜索定位在车道内。
⑶障碍物目标识别和测距[6][10]
障碍物识别和测距的目的是检测出前方目标车辆,避免本车与同向行驶的前方车辆发生追尾碰撞事故,具体的措施为首先检测出本车道行驶的目标车辆,同时对距离,将距离在报警模块上进行显示,当本车与前方目标车辆的距离小于安全距离时,报警模块发出报警信号,根据距离的大小判断危险等级,并由报警模块点亮先关指示灯。
这部分采用了单目视觉的灰度图像处理与分析的方法,路面上行驶的车辆往往具有一些与周围环境不一致的特征,可利用车辆底部的阴影区域与路面其它区域的灰度信息相差明显的特征进行目标别和测距。
本系统设计开发完成后,先在实验室中利用以前在高速公路的录像进行调试和分析,实验室调试正常后,装载汽车在成渝高速公路进行现场试验,试验结果如图6所示。
经过不同光照条件和不同气候条件下进行反复试验,本系统不仅能够有效的防止车辆跑偏,还能够有效检测车辆目标。
当车道内前方车辆与本车距离小于安全距离时,报警模块发出声光报警,提醒驾驶员注意,能够有效的预防公路交通事故的发生。
在系统工作过程中,图像采集和图像处理是并行工作的,采集和处理的图像分辨率为320×240的8位灰度图像,系统处理速度可达到每秒25帧图像,具备良好的实时性。
⑴原始图像⑵道路检测图像⑶目标识别图像
7.心得体会
高效可靠的系统软件是实时图像处理系统的关键部分。
通过分析图像信息处理系统的特点,开扩展Virtuoso微内核的方式开发实时图像处理系统的系统软件的研究工作,并在此系统上,针对多个图像处理算法任务进行了实验,得到了较好的运行效果,显示出这种实现方案具有方便、快捷、系统性能稳定可靠的特点,提高了开发效率,在实时图像处理系统中有着广阔的应用前景。
基于TM320DM642的嵌入式实时图像处理系统,并构建了以DM642为核心的图像处理平台,该系统具备实时图像采集、实时图像处理、实时图像输出等功能,还具备了友好的人机交互功能,并应用于高速公路智能车辆目标检测系统。
经过反复的试验证明,该系统有效的预防公路交通事故的发生。
系统具有整体电路简单、可靠性高、集成度高等优点,无需或者稍微更改硬件电路,就可以应用于其他视频信号处理环境中,具备良好的移植性。
全面提高电力系统自动化程度,本课题的研究具有较高的实用价值,可广泛推广应用。
通过此次的课程设计,让我更进一步的巩固了嵌入式系统的各种知识。
但在设计的过程中,遇到了很多的问题,有一些知识已经不太清楚了,但是通过一些资料又重新的翻阅并且认真的复习了相关教科书中的内容。
此次的课程设计树立了对自己工作能力的信心,相信会对今后的学习工作生活都有非常重要的影响,而且大大的提高了动手能力,使我充分的体会到了创造过程中的探索的艰难和成功的喜悦。
虽然这次做出的作品还
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 操作系统 实时 图像 处理 系统 中的 应用