DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 120|回复: 0
打印 上一主题 下一主题

基于TMS320DM642的图像处理系统

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:17:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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的图像处理系统设计简单,设计周期短,是图像处理系统较为理想的选择。

                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-28 05:26 , 耗时 0.108669 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表