当前位置:首页 > 电源 > 数字电源
[导读]TMS320DM642提供的专用视频端口通过EDMAs传输数据使视频的获取及输出非常简单;同时TMS320DM642支持的视频驱动设计模式大大简化视频输入输出驱动设计的工作量,从而简化了整个图像处理系统的设计,节省了设计时间,从而保证了系统设计的高效性。基于TMS320DM642的图像处理系统设计简单,设计周期短,是图像处理系统较为理想的选择。

1 引言

随着大规模集成电路的飞速发展,DSP的性能越来越完善,能够满足图像处理时对数据处理速度的实时要求。以DSP为核心处理器组建图像处理系统应用广泛,其优点是DSP资源丰富、编程灵活、算法设计简单,并且在系统软件开发中可采用模块化设计,可提高系统的通用性,缩短系统的开发周期。本文介绍了基于TMS320DM642的图像处理系统。

2 TMS320DM642简介

TMS320DM642是TI公司推出的一款针对网络与多媒体应用的DSP。TMS320DM642具有以下主要特点:

处理器时钟频率高,具有500 MHz/600 MHz/720 MHz 三种时钟速率(本系统设计采用的时钟速率是600 MHz);

专用的视频口,包括3个可配置的视频口;

外部接口:64个独立通道的增强EDMA控制器,多通道音频串行端口(McASP),64 bit的外部存储单元接口EMIF,66 MHz 32-bit,3.3 V的PCI主/从接口,10 Mb/s/100 Mb/s以太网口(EMAC)及通用I/O端口(GPIO)等外围接口;

专用缓存,能够加快数据存储及运算速度。TMS320DM64采用二级高速缓存的Cache结构,一级程序和数据缓存为16 KB,二级缓存为256 KB,其CPU内核基于C64X的CPU。

因此,TMS320DM642的处理速度高,外围接口丰富,并具有专用的视频口。与其他同性能产品相比,TMS320DM642性价比高,无论从产品性能还是经济效益上考虑,TMS320DM642都是图像处理系统的理想选择。

3 系统设计

3.1硬件设计

系统硬件结构框图如图1所示。系统工作过程是:视频输入设备摄像机输入的图像数据经视频解码器解码后传输至TMS320DM642,TMS320DM642存储、处理采集到的数据,并将处理后的数据送至视频编码器,视频编码器对其编码后再送至视频输出设备监视器。

3.2视频输入设计

采集视频输人设备(摄像机)图像采用专门的视频解码器,视频解码器实现图像采集驱动,简化了设计,节省设计时间缩短设计周期。视频解码器采用Phillips公司的SAA7115。

TMS320DM6412数据采集驱动程序通过IOM器件驱动模式进行设计。如图2所示驱动器的设计分为Class Driver与Mini-Driver两个层面,利用FVID模块设计Class Driver,提供独立和通用的API设置以及Mini-Driver的多种服务。为了使代码重复利用率达到最高,Mini-Driver分为通用部分和面向不同电路板的个体部分设计,前者利用EDMAs与视频口进行数据传输,后者又称为EDC(External DeviceControl)接口设计,是针对不同电路板设置视频解码器,包括视频编码器的初始化及其配置等。采用此方式设计TMS320DM642视频输入驱动时,需配置DSP/BIOS参数:正确配置Input/Output下DeviceDrivers中的User-DefinedDrivers项,包括Init function、Function table ptr、Function table type、Deviceid、Device params ptr、Device global data ptr等参数。DSP/BIOS各参数配置完成后,DSP程序包含vport.h、vportcap.h、saa7115.h,并对SAA7115初始化及其配置,视频数据输入直接调用器件支持的API函数,即可完成视频输入驱动设计。

3.3视频输出设计 视频输出的编码器采用Phillips公司SAA7105。SAA7105与SAA7115是配套使用的一对器件。图3是视频输出驱动框图,在显示操作期间。数据从存储器加载到帧缓冲器中,然后通过EDMA传输给视频端口FIFO,视频端口再将数据传输至视频编码器进行显示。EDMA中断在每帧数据从存储加载完成后触发,此中断用于管理帧缓冲器和EDMA重新加载更新数据。


视频输出驱动设计与视频输入驱动设计类似,DSP/BIOS中各参数配置完成后,DSP程序中包含vport.h,vportdis.h,saa7105.h,并对SAA7105进行初始化以及配置,视频数据输出直接调用器件支持的API函数,即可完成视频输出驱动设计。

3.4数据处理设计

数据处理设计分为两步,第一步确定算法,第二步将确定好的算法用DSP程序代码实现。确定算法利用功能强大且容易使用的Matlab软件实现,在Matlab环境中设计算法并对其仿真,仿真结果正确后即可确定算法。DSP代码按照图4所示的C6000系列代码开发流程进行设计。代码开发流程分为三个阶段:第一阶段产生C代码,第二阶段优化C代码,第三阶段编写将C代码转换为线性汇编或汇编代码并对其优化,直到程序代码满足要求。

整个设计中代码的优化是核心,只有通过优化代码的效率才能保证满足既定的要求。代码优化的步骤及方法:

1)CCS编程环境中设置编译优化级别为-o3,并按照C代码的优化法则对代码做一些手动的初步优化。

2)经过优化后的C代码效率不能达到要求时将C代码转换为线性汇编代码让编译器作进一步优化。

3)如果还不能达到要求,则将线性汇编代码转换为汇编代码,并且手动调整代码顺序,改变代码的并行及流水能力,如此通过不断地对代码的调整,使代码的执行效率达到要求。

4 应用实例

利用TMS320DM642EVM硬件平台对PAL格式的图像进行旋转处理,算法设计时插值算法采用最近临插值算法。整个软件采用C语言编写,程序运行结果不理想,图像有明显的停滞现象。将耗时最多的旋转算法代码部分转换成汇编代码,并对其优化,重新调整代码次序,增加代码的并行及流水能力,代码执行效率大大提高,程序运行流畅无滞留,运行速度满足实时要求。

5 结束语

TMS320DM642提供的专用视频端口通过EDMAs传输数据使视频的获取及输出非常简单;同时TMS320DM642支持的视频驱动设计模式大大简化视频输入输出驱动设计的工作量,从而简化了整个图像处理系统的设计,节省了设计时间,从而保证了系统设计的高效性。基于TMS320DM642的图像处理系统设计简单,设计周期短,是图像处理系统较为理想的选择。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

如何开始编写一个简单的单片机程序呢?接下来就来介绍一下步骤和方法以便更快更好的编写出来单片机程序。

关键字: C代码 编程序

关注、星标公众号,直达精彩内容文章来源:segmentfault作者:Ethson【导读】:树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。在面试环节中,二叉树也是必考的模块。本文主要讲二叉树操作的相关知识,梳理...

关键字: C代码 BSP ORDER WHILE

【导读】:树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。在面试环节中,二叉树也是必考的模块。本文主要讲二叉树操作的相关知识,梳理面试常考的内容。请大家跟随小编一起来复习吧。本文针对面试中常见的二叉树操作做个总结...

关键字: C代码 ORDER WHILE RETURN

摘要:日益增长的对实时大容量的图像处理服务的需求使得手机图像处理系统成为人们关注的热点。文章阐述了手机 图像处理系统结构设计以及WAP与MISC的接口设计,介绍了程序接口通信方式及协议说明、产品资源平台设计和系统部署,...

关键字: WAP 图像处理系统 Linux

关注「Linux大陆」,一起进步!继 300来行代码带你实现一个能跑的最小Linux文件系统 之后,我们来看看如何60行C代码实现一个shell!在实现它之前,先看看这样做的意义。美是有目共睹的。Unix之美,稍微体会,...

关键字: shell C代码

来源:公众号【编程珠玑】作者:守望先生前言如何在C代码中调用写好的C接口?你可能会奇怪,C不是兼容C吗?直接调用不就可以了?这里我们先按下不表,先看看C如何调用C代码接口。C如何调用C接口为什么会有这样的情况呢?想象一下...

关键字: C代码

今天跟大家分享三种表驱动设计的方法,都非常的精妙,值得收藏和细品。

关键字: 表驱动 静态结构体 C代码

  自从电视发明以来,视频一直是电子行业中最具活力的领域之一。继黑白电视面世之后, 彩色电视、UHF频道、遥控电视、有线电视、越来越高清晰度电视、平板电视、大屏幕电视、数字有线电视、卫星电视,乃

关键字: hdmi 视频 视频输出

▍很懒很操心 有一次,我在项目开发中想监控某段空间数据的大小,即这段空间在MCU中非常有限,希望每个版本在集成软件的时候都想获取其使用了多少空间,防止某些愣头青不珍惜内存,乱塞东西。而这段空间,我定义了一个神一样的结构体...

关键字: C代码

为了优化钻井流程并降低作业成本,Baker Hughes的动力学与遥测(Dynamics & Telemetry)小组开发了一个序列预测算法,用于在钻井作业期间快速可靠的解码井下数据。这个已集成

关键字: C代码 编码 自动代码生成 马尔可夫链
关闭
关闭