电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > DSP > 详细信息
DSP:RTDX在图像处理中的应用
来源:   时间: 2007-5-26 10:32:30    
1 引言

在数字信号处理系统开发过程中,通常要对算法的正确性进行验证,也就是程序调试。而传统的主机调试器必须通过在目标应用程序中插入断点,在中断目标应用程序运行时观测目标机上各寄存器或内存变量的值。但是,由于处理系统是实时的,因此,这种经典的方法不能实时地跟踪数据的变化,有时显示的数据根本就是错误的。这种方法的不足在笔者的图像处理系统中表现得更为突出。且不说它不能实时反映数据处理的结果,即使可以实时反映,在用memoryview方法来观测图像处理的结果时也只是各内存单元的值,因而非常不直观,为故障诊断和系统性能测评等带来许多不便,所以,必须寻找一种方法来实时跟踪数据变化,而且数据还应以非常直观的形式显示在主机屏幕上。

TI的Real-Time Data Ex-change(RTDX)技术就是利用DSPs的内部仿真逻辑和JTAG接口来实现主机与目标机之间的数据交换,它不占用DSPs的系统总线和串口等I/0资源,数据传送完全可以在应用程序的后台运行,对应用程序影响很小,它完全可以在不中断目标应用程序的前提下,向主机实时发送目标机上各寄存器或内存变量的值。而主机上的可视化应用程序也可以通过嵌入COM的APl函数来获得这些数据,并以适当的格式把数据显示出来(如表格、波形图或二维图像等形式)。这样,就可以实时观测和分析应用程序的运行情况,使得编程人员查找和修改应用程序的错误更加方便,从而缩短系统的设计开发周期。

笔者在设计图像目标识别系统时,把摄像头信号通过视频采集卡进行采样和量化,并存放在处理机系统的外部存储器中。为了获得目标在图像中的位置,设计时必须对采样的数据进行识别算法处理。因为笔者处理的是连续图像帧序列,因而不能在中断程序运行的情况下观测处理结果,而且无法通过只看相应memo~的值来判断跟踪窗是否能跟上运动的目标,所以,笔者采用了RTDX技术。

2 RTDX的原理

RTDX是一种可以在不影响目标应用程序运行的情况下让主机和目标机进行实时数据传输的技术。RTDX支持双向数据流,即目标机到主机的数据流和主机到目标机的数据流。RTDX数据流示意图如图1所示。


2.1目标机到主机的数据传送

目标机为了向主机发送数据,必须设定一个输出通道oehanData。通过用户接口可将数据送到输出通道以使这些数据随即保存到RTDX目标机的缓存(由RTDX目标函数库定义)中,然后再将这些数据通过JTAG接口发送到主机。RTDX主机函数库将接收到的数据保存在log文件中或主机的缓存中(具体由RTDX模式来决定)。

保存在log文件中或主机缓存中的数据可以通过COM Automation Client重新获取析。下面是几种典型的COM Automation Client:

  • Visual Basic applications;
  • Visual C++ applications;
  • Lab View;
  • Microsoft Excel。

    2.2主机到目标机的数据传送

    目标机要从主机中获得数据,首先必须设定一个输入通道ichanCmd,来接受主机发出的命令,从而实现数据传输的同步。运行中,系统可通过用户接口发送一个读取数据的请求,并将这个请求保存在RTDX目标机的缓存中,然后通过JTAG接口发送到主机。同时应由COM automation client通过COM接口把要发送的数据先写入到RTDX主;帆函数库中的缓
    存,以等待目标机读取数据的请求。当RTDX主机函数库收到从目标机发出的读取数据请求时,保存在RTDX主机函数库中的数据便可通过JTAG接口将数据发送到目标机,从而使该数据可以实时写入目标机指定的存储区域。操作完成后,主机会通知RTDX目标机函数库。

    2.3 RTDX目标机函数库的用户接口和COM接口

    利用RTDX目标机函数库的用户接口可实现在目标机DSP应用程序和主机之间进行安全可靠的数据交换。同时可利用它完成应用程序向RTDX主机库发送数据、应用程序向RTDX主机库发送数据请求以及在目标机上提供数据缓存等功能。另外,数据发送前应先将数据拷贝到目标机缓存中,以减少对应用程序实时性的影响。 RTDX主机库中的COM接口可用来确定COM automation client与RTDX主机函数库的通信方式。而通过COM automation client可访问保存在RTDX lox文件或BTDX主机函数库缓存中的数据。同时COM automation client也可通过RTDX主机函数库向应用程序发送数据。

    2.4 RTDX模式

    RTDX主机函数库提供了两种接受目标机数据的模式:第一种是非连续模式,在这种模式中,数据通常存到主机的log文件中。该模式一般应用于非实时处理情况下,可在事后分析保存在log文件中的数据。第二种是连续模式,在这种模式中,数据不写入log文件,而是由RTDX主机函数库缓存,它一般应用在实时情况下。


    3 基-ZRTDX的视频数据传输

    在程序调试时,笔者利用RTDX技术在主机上显示采集图像处理后的结果以验证算法的性能,并通过设定主机与目标机的握手信号来在主机上实现动态的视频显示。

    考虑到数据传输都由JTAG接口完成而且图像数据量很大,调试中往往采用将512X512图像每4个相邻像素取一个点的方法来将分辨率降为128X128,因为减少数据量可提高显示帧频。当数据通过RTDX通道传到主机时,128X128的图像数据可通过每个像素扩展成4个相邻的像素来恢复图像。最后通过VC的位图显示函数来显示图像结果。图2所示是其视频数据流示意图。

    为了使主机与目标机之间能正确地传送和接受数据,主机应用程序和目标机应用程序都要嵌入支持RTDX的APl函数。下面详细介绍两者之间的操作流程。

    3.1在DSP应用程序中使用RTDX

    在DSP应用程序中通过APl函数调用RTDX目标机函数库时,必须将相应的API函数嵌入应用程序中。其步骤如下:

    (1)设定相应的RTDX通道为全局对象

    RTDX通道为单向传输。设定RTDX输出通道ochanData可使目标机向主机传输数据;而设定RT-DX输入通道ichanCmd则可使主机向目标机传输命令数据,同时,可用输入通道来同步主机与目标机。

    其程序如下:
    RTDX_CreatOutputChannel(ochanData);
    RTDX_CreatlnputChannel(ichanCmd);
    Void Task ch()
    RTDX_enableOutput(&ochanData);
    RTDX_enablelnput(&ichanCmd)

    //START为主机向目标机发送
    的传输开始控制命令(用户自定义)

    Retumcode二RTDX_read(&ichanCmd,
    received,4);
    )while(received[0]!:START);

    (2)设定RTDX_Poll()的调用方式

    RTDX目标机函数库是通过调用函数RTDXPon()来实现主机与目标机间的通信的。RTDX_Poll()的调用有两种方式:一种是在应用程序中调用,另一种是利用中断服务程序调用。程序如下
    while(RTDX_writing!二NUIL)
    #ifRTDX_POIIJNG
    RTDX_Poll();
    #endif )

    若将宏RTDX_POII,ING_IMPLEMENTATION定义为1,则表示在应用程序中调用RTDX_Poll(),而如果将其定义为0,则表示在中断服务程序中调用
    RTDX_Poll()。

    (3)目标机向主机发送视频数据

    若采集数据空间的一帧图像(512X 512),可通过调用函数RTDX_write()发送到主机,并可将一帧图像分成若干块传输,每一块数据为1k。程序如下:

    fOr(cond:0;cond<0x10;cond++)
    rawdat_temp'baseadd+cond*0x4000;
    rawdat二(unsignedint*)mwdat_temp;
    /*图像在目标机上的地址*/
    fOr(count:0;count<OxlO;count++)
    while(!RTDX-write(&ochan,mwdat+count*datanum,datanum*sizeof(int)));

    3.2在VC编程环境下使用RTDX

    在VC环境下获取RTDX主机函数库缓存中的数据并显示的步骤如下:

    (1)在VC中实现与RTDX主机函数库的握手

    (Handshanking)程序如下:
    ::Colnitialize(NULL); //initializeCOM
    ::Variantlnit(&sa); //initializeVARIANTsa
    h二ndx.Createlnstance(uuidof(RTDXINTLib::Rtdx-
    Exp)); //instantiate出eRTDX//COMObiect
    订(FAILED(血)){
    MessageBox(//Error:Instantiationfailed!//);
    return-1; )
    status二rtdx->Open("ochan'',"R");
    //opepachannel(ochan)fOrreading
    订(status!二Success){
    MessageBox("-Error
    fdled!");
    return-1; 1

    (2)在VC中重新获得由目标机传送来的数据

    rtck->ReadSAl4(&sa);
    //read a 32-ht integermessage
    switch(status) {
    //teststatus returnedfrom ReadSAl4
    case Success:
    for(i:0;i<(signed)sa.parray->
    rgsabound[0].cElements;i++)
    {hr二::SafeArrayGetElement(sa.parray,
    &i,(10ng*)&data);
    datatemp:(unsignedint)data;
    fOr(intitochar:0;itochar<4;itochar十+)
    ImageT[count+itochar];(char)(datatemp
    >>itochar-k9)&队000000ff);
    count+:4;1//counter为传输像素计数器
    break;
    case Failure:
    MessageBox(-Error:ReadSAl4
    returnedfmlure!\n");
    case
    return-1;
    EnoDataAvailsble:
    MessageBox("NODataiscurrendy
    available!");
    return-1;
    case EendOfl_ogFile:
    MessageBox("DataProcessingComplete!")
    1 while(status!二EEndOfLogFile)

    (3)在VC中显示数据的程序如下:

    if(count二:16384) //128*128:
    count二0;
    br(inti:0;i<m_nHeidlt;i++)
    for(intj:0¨<m_nWidth;j++)
    lpTemlmage¨*m_nWidth+¨:ImageT
    [(m_nHei少t-i-1)*m_nWidth+¨
    m_rawdat:RawToDib(hlmage);
    Draw(m_rawdat,dc,1eft,top);
    /*调用函数Draw()画图*

    4 结束语
    RTDX是一种非常优秀的实时数据传输技术,为软件调试提供了一种全新的方法。该项技术所设计的调试软件具有占用系统资源少、速度快和COM Automatic Client选择灵活等特点,为DSP编程人员发现程序错误和监测系统运行状况提供了实时的、直观的表示形式。其实,RTDX不但可以用在软件调试过程中,而且可用于医疗监测、工业控制等领域。

  •  
    相关信息
    发表评论
    打印本页 关闭本页
    TI新型低功耗可编程DSP显著延长电池工作时间
        德州仪器(TI)宣布,其超低功耗可编程DSP产品系列又添新成员TMS320C5506DSP。这款业界最低功耗可编程DSP将进一步推动低功耗音频/语音应用领域的创新。全新TMS320C5506DSP在待机模式下的功耗仅为0.12mW,另外,其还具备众多其它低功耗特性,堪称同类产品中功耗最低的处理器。   全面的128KB片上存储器可显著简化编程工作,而全速USB2.0接口则提供了低成本的有线连接方案。C5506DSP...
    >>详细内容
    卫生间门控开关 (一)
        本例介绍的卫生间门控开关电路,可以用磁控门开关来控制卫生间内的照明灯和排风扇,实用性较强。  电路工作原理  该卫生间门控开关电路由电源电路和控制电路组成,如图3-52所示。   电源电路由电源变压器T、整流二极管VDl-VD4、滤波电容器Cl、C2和三端集成稳压器ICl组成。交流220V电压经T降压、VDl-VD4整流、Cl滤波和ICl稳压后,在C2两端产生+l2V电压,作为控制电路的工作电压...
    >>详细内容
    飞思卡尔新推三款MEMS三轴加速传感器,面向手机等应用
        飞思卡尔半导体(Freescale Semiconductor)目前正通过引入高敏感度的XYZ三轴加速计,满足当今智能移动设备领域日益增长的移动感应需求。   从MP3播放器到PDA,再到超小的笔记本电脑,当今的消费者正在越来越多地通过其使用的便携式电子设备的种类以及对这些设备的定制方式来彰显自己的个性。便携式设备的设计人员也在不断寻找新途径,以便在不增加设备尺寸的情况下,让设备具有更...
    >>详细内容
    吊灯红外遥控开关
        本例介绍的吊灯红外遥控开关,可用家用电器 (例如电视机、影碟机、录像机等)的遥控器进行遥控开、关灯及灯光选择操作。连续按动遥控器上任意键时,吊灯按第1组灯亮→第l、第2组灯均亮→3组灯全部点亮→3组灯全部熄灭→第1组灯亮…的顺序循环变化。  电路工作原理  该吊灯红外遥控开关电路由电源电路、红外接收电路、计数/分配器和控制执行电路组成,如图3-51所示。   电源电路...
    >>详细内容
    吊灯控制开关 (六)
        电路工作原理  该吊灯控制开关电路由电源电路和控制电路组成,如图3-50所示。   电源电路由电源变压器T、整流桥堆UR、滤波电容器Cl、C2、泄放电阻器Rl组成。  控制电路由电阻器R2-R6、电容器C3-C5、光耦合器VLCl、VLC2、晶闸管VTl、VT2、继电器Kl、K2和二极管VDl、VD2组成。  交流220V电压经T降压、UR整流及Cl、C2滤波后,为控制电路提供lOV左右的工作电压。  接通电源开...
    >>详细内容
    ANADIGICS最新集成射频模块简化3G手机设计
        ANADIGICS, Inc.在3GSM世界大会(3GSM World Congress)上推出了一个能帮助简化3G设计的前端模块(FEM)AWT6507和AWT6510。此举标志着该公司在整合领域的下一步行动,新的多芯片前端模块能为WCDMA/EDGE(WEDGE)移动手机提供一个完整的发射链,其中包括功率放大器(PA)、射频耦合器、发射滤波器和双工器以及天线开关。   这些前端模块使用了ANADIGICS专有的第三代低功耗高效率(HELP3)技...
    >>详细内容
    已有(
    )位对此新闻感兴趣的网发发表了看法 >>更多评论
    内 容:
         
     
    热点新闻
    一周排行
    关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
    Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
    维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
    总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
    电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com