计算机博创嵌入式培训-第9章 OMAP5910与Linux Gateway模板_第1页
计算机博创嵌入式培训-第9章 OMAP5910与Linux Gateway模板_第2页
计算机博创嵌入式培训-第9章 OMAP5910与Linux Gateway模板_第3页
计算机博创嵌入式培训-第9章 OMAP5910与Linux Gateway模板_第4页
计算机博创嵌入式培训-第9章 OMAP5910与Linux Gateway模板_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章

OMAP5910与LinuxGateway

第九章OMAP5910与LinuxGateway随着多媒体应用的不断深入与扩大,尤其是通信领域中3G标准的推出以及业务的开展,对嵌入式处理器功能、功耗等性能提出了更高的要求。美国德州仪器公司〔TI〕推出的双内核处理器OMAP5910提供了语音、数据和多媒体所需的功能,能以极低的功耗提供极佳的性能。本章主要介绍arm和dsp双核结构的omap5910下的Linuxgateway程序设计过程和方法。对于有达芬奇架构编程经验的读者,可以参照比照学习。主要内容第一节OMAP5910体系结构第二节LinuxDSPGateway第三节OMAP5910图像处理1OMAP5910处理器,是由TI应用最为广泛的TMS320C55XDSP内核与低功耗增强型ARM925微处理器所组成的双核应用处理器。其中55x系列芯片可提供对低功耗应用的实时多媒体处理的支持;而ARM925MPU那么可满足控制和接口方面的处理需要。基于双核结构,OMAP5910具有极强的运算能力和极低的功耗,基于其开发的产品性能高且功耗低。而且,同其他OMAP处理器一样,OMAP5910采用开放式易于开发的软件设施,并且支持多种操作系统,如Linux、Windows、WincE、Nucleus、PalmOS、VxWorks等。可以通过API或者用户熟悉且易于使用的工具优化其应用程序。

主要内容: 一、MPU子系统 二、DSP子系统第一节OMAP5910体系结构

2MPU子系统是以T1925T为核心的系统,也是整个OMAP平台的核心系统。MPU控制着存储器管理单元、系统DMA控制器、MPU的外设总线〔TIPB〕桥和众多外设TI25T,是精简指令集〔RISC〕处理器,可以对所有模块实施控制。OMAP5910的DMA控制器有9个通用DMA通道和一个专门的CLD_DMA通道。这十个通道可以同时启动,且均拥有可编程的优先级,采用循环仲裁机制,共有七个端口:EMIFF端口、EMIFS端口、IMIF端口、MPUI端口、TIPB端口、本地端口〔USB主〕和LCD端口。系统提供了2个振荡器来辅助管理电源耗损,在待机模式下可以直接关闭12MHz的振荡输入,只留下32KHz振荡器来维持系统运作。电源管理提供3种工作模式:Awake模式、Bigsleep模式和Deepsleep模式。3第一节OMAP5910体系结构——一、MPU子系统

MPU子系统包括如下模块:MPU核:TI925T核,是ARM9系列处理器的核心。传输控制器〔TrafficController〕:控制系统的内部与外部存储器。MPUMMU〔MPU存储器管理单元〕和DSPMMU。系统DMA控制器。LCD控制器和MPU私有外设。MPUTIPB桥:MPU的TI外设总线,包括私有TIPB和公共TIPB。时钟管理单元:完成MPU子系统和DSP子系统的时钟管理和功耗控制。两级中断控制器。三个通用计时器和一个看门狗。其他外设:包括MPU的公共外设和MPU与DSP共享外设。4第一节OMAP5910体系结构——一、MPU子系统

DPS子系统是以多媒体处理器TMS302C55xDSP为核心的系统,在该系统下主要完成视/音频等多媒体处理任务。DPS子系统包括以下局部:TMS320C55x(C55x)DSPCPU核。硬件加速器:完成DCT/TIDCT,运动估计和半像素内插等视频处理中最常见的耗时模块处理。内部存储器和接口:包括DARAM、SARAM、PDROM和指令cache。外部存储器接口(EMFI):可访问外部存储器。6个通道的DMA。MPUI接口:允许MPU和系统DMA的高带宽并行DSP访问。TIPB桥:Ti的外设总线桥,分别为私有和公有外设提供外部总线。三个通用计时器和一个看门狗两级中断控制器其他外设:包括DSP的公共外设和MPU与DSP共享外设。5第一节OMAP5910体系结构——二、DSP子系统主要内容:一、DSPGateway的由来

二、DSPGateway的Mailbox机制

三、通信缓冲四、Mailbox命令协议五、DSPGateway的设备接口第二节LinuxDSPGateway

6OMAP平台推出之后,其基于ARM与DSP双核心的体系结构给实现ARM与DSP间通信的软件设计带来了一定的障碍。程序员必须了解ARM结构和DSP体系结构才能把握OMAP双核通信问题。针对这种局面,开源工程DSPGateway编写出基于GPL〔ARM端〕与BSD〔端〕许可的Linux内核软件,使得DSP与ARM的通信问题通过软件的API接口屏蔽掉底层硬件细节。这样程序通过API就能够很容易地实现双核间通信问题。DSPGateway由两局部组成:ARM端Linux设备驱动和DSP端DSP内核库。其中,ARM端Linux设备驱动提供普通的设备驱动接口,使得ARM端的应用程序通过简单调用系统函数就可使用DSP端的程序;而DSP端DSP内核库提供多作业任务环境以及API的接口供编程开发使用。第二节LinuxDSPGateway——一、DSPGateway的由来

7ARM和DSP之间通信是通过Mailbox机制实现的。Mailbox存放器包括三类:一类是MPU通过发送信息给DSP,然后产生中断INT5给DSP;另外两类是DSP发送信息给ARM所产生的中断IRQ10/IRQ11。每一类Mailbox存放器都是由两个16位的数据和命令存放器,以及一个1位的标志存放器组成。中断源处理器可以利用数据和命令存放器发送数据和命令给被中断的处理器。DSPGateway使用一个Mailbox进行每一方向的数据传输第二节LinuxDSPGateway——二、DSPGateway的Mailbox机制

8在两个处理器之间仅仅通过Mailbox存放器来传送大量的数据是不现实的,因此,引进了IPBUF用于大数据块的传输。IPBUF可以置于DSP内部的存储器〔DARAM和SARAM〕,或者映射到DSP空间的外部存储器SDRAM中。有三种类型的IPBUF:全局IPBUF、私有IPBUF以及系统IPBUF。1,全局IPBUF全局的IPBUF通过BID来区分,所有的任务都能够正常地使用它们。最大的缓冲大小为64K

。每一个IPBUF都拥有6字节的头部,头部中包含数据的大小、任务持有的信息和同步字。具体来说,包含了其数据长度信息、IPBUF的下一链接字、ARM端和DSP端都有的一个锁字和同步字。另外,数据体必须是边界对齐的4个字节,用于ARM和DSP之间长字的传输。第二节LinuxDSPGateway——三、通信缓冲

92,私有IPBUFDSP任务可以拥有它们自己的IPBUF,而私有的IPBUF结构和全局的IPBUF结构不同。IPBUF数据体的地址可以在每次数据传输的时候被更改。因为在ARM发送数据给DSP之前需要通知ARM关于缓冲数据体的地址,所以只有主动接收类型的任务才可以使用私有IPBUF接收来自ARM端的数据。私有的IPBUF要将头部和数据体分开,主要是考虑到数据有可能要写到缓冲块的中间局部。3,系统IPBUF系统IPBUF用于双方向〔ARM到DSP方向或者DSP到ARM方向〕的系统数据传递。它们用于随Mailbox命令发送的附加数据。需要注意的是,系统IPBUF必须放置在外部的存储空间。如果任何两个系统IPBUF被置于内部的存储空间〔SARAM或DARAM〕,那么DSP端的DMA和PLL会一直处于唤醒状态而不会进入空闲状态。第二节LinuxDSPGateway——三、通信缓冲

10在DSPGateway中,以下三点对Mailbox协议的理解至关重要:TID〔TaskID〕是DSP中任务的标识符,大多数的命令发送时都包含TID。IPBUF用于ARM和DSP间数据块的传输。一个IPBUF被两个处理器所共有。只有拥有IPBUF所有权的处理器才能够访问该IPBUF。当通过IPBUF传送数据时,该IPBUF的所有权由发送端转移到接收端。Mailbox命令和数据存放器的位定义分别由以下图所示。Qbit〔命令存放器的bit[15]〕是序列号,它在每个命令传输的时候被触发,用于区分前一个命令。在某些情况下,即使DSP只往Mailbox存放器写入一次,在ARM端却可能被解析成两次,因此Qbit能够防止Mailbox中断机制的潜在问题。CMD_H〔bit[14:8]〕是命令的关键位,CMD_L〔bit[7:0]〕是命令的可选位。第二节LinuxDSPGateway——四、Mailbox命令协议

11第二节LinuxDSPGateway——四、Mailbox命令协议

12Mailbox命令寄存器的位定义Mailbox数据寄存器的位定义DSPGateway共有5个设备接口,分别是:DSP控制设备、DSP存储设备、DSP任务监视设备、DSP错误检测设备和DSP任务设备。DSP控制设备提供给Linux控制的API,Linux上层应用可以控制DSP的重启、读DSP的配置等其他控制操作。DSP存储设备提供给Linux端的载入程序来访问DSP的内存空间,DSP的载入程序通过这个设备载入DSP二进制镜像到DSP的内部存储空间〔如SARAM或DARAM〕。此外,用户可以使用ioctl命令将外部的SDRAM映射到DSP的内存空间,这样就可以扩展DSP的内存空间范围,映射后,载入程序同样可以访问这局部空间。DSP任务监视设备提供给DSP“动态载入守护进程〞所需要的功能,守护进程可以获得任务是否在运行、请求被载入或开始的相应信息。它增加和删除所需的DSP任务,并通过ioctl命令创立和删除相应的DSP任务设备文件。DSP错误检测设备可以检测来自DSP的错误,如看门狗计时器终止、DSPMMU错误中断。第二节LinuxDSPGateway——五、DSPGateway的设备接口

13随着计算机技术和图像处理技术的不断提高,从个人娱乐用的摄像头到嫦娥一号上的星载相机,图像处理技术得到了广泛的应用。然而,图像处理技术依然面临着许多挑战,其中最大的挑战就是如何加快图像处理速度。采用拥有ARM与DSP双核架构的OMAP平台进行图像处理可以提高处理速度,进而开发出高性能的实时图像处理系统。本节将介绍四个常用的图像处理算法,给出利用OMAP处理器进行图像处理的一般流程。

主要内容: 一、图片格式

二、数字图像算法

第三节OMAP5910图像处理

14图片的格式主要有BMP、JPEG、GIF等。其中,BMP(Bitmap-File)是Windows采用的图像文件格式,在Windows环境下运行的所有图象处理软件都支持BMP格式,Windows系统内部各图像绘制操作都是以BMP为根底的。因此,分析并处理BMP图像文件对于初学者了解图像处理技术是非常有好处的。BMP图像文件由4局部组成:位图文件头(bitmap-fileheader)、位图信息头(bitmap-informationheader)、调色板(colortable)和定义位图的字节阵列第三节OMAP5910图像处理——一、图片格式

151.图像二值化图像的二值化处理就是将图像上的点的灰度值置为0或255,让整个图像呈现出明显的黑白效果。也就是说,将256个亮度等级的灰度图像通过选取适当的阀值,经处理后获得一幅二值化图像,该图像仍然可以反映原图像根本特征。根据算法的描述,图像中所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否那么这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。第三节OMAP5910图像处理——二、数字图像算法

162.领域平均法平滑平滑的目的是模糊和消除噪声。领域平均法可采用空域线性滤波器实现。线性滤波器是线性系统和频域滤波概念在空域的自然延伸。其特征是结果像素值由以下公式定义:R=其中wi表示模板的系数,Zi表示被计算像素及其领域像素的值,i的取值范围是从1到n。第三节OMAP5910图像处理——二、数字图像算法

173.图像中值滤波 中值滤波的实现原理是把数字图像中的一点的值用该点的一个区域的各个点的值的中值代替,中值的定义如下:一组数X1、X2、X3…Xn假设其排序如下:Xi1≤Xi2≤Xi3≤…≤XinY=Med{X1、X2、X3…Xn}=Xi((1+n)/2)n为奇数Xi(n/2)+Xi((1+n)/2)n为偶数Y称为X1、X2、X3…Xn的中值。第三节OMAP5910图像处理——二、数字图像算法

184.图像边缘检测图像最根本的特征是边缘,边缘是图像分割所依赖的重要特征。经典的边缘检测方法是对原始图像按像素的某领域构造边缘检测算子。图像的边缘检测方法有很多种,如差分边缘检测法、梯度边缘检测法、Roberts边缘检测算子、Sobel边缘检测算子。其中,由于Sobel算法对噪声具有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论