• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      MATLAB與DSP使用RTDX的實時數(shù)據(jù)交換*

      2015-07-02 08:57:26覃遠年孫麗真田柯
      關(guān)鍵詞:指針應(yīng)用程序指令

      覃遠年,孫麗真,田柯

      (桂林電子科技大學 通信實驗中心,桂林541000)

      引 言

      在傳統(tǒng)的DSP(Digital Signal Processor)應(yīng)用程序開發(fā)過程中,涉及的算法一般先用 MATLAB語言進行仿真,仿真結(jié)果滿意后,再進入產(chǎn)品的實現(xiàn)階段。仿真實現(xiàn)后的算法用C/C++或匯編語言實現(xiàn),首先在硬件DSP目標板上調(diào)試,將中間結(jié)果通過DSP開發(fā)工具保存到PC機的硬盤上,然后調(diào)用到 MATLAB工作空間,與MATLAB仿真算法的中間結(jié)果進行比較,以發(fā)現(xiàn)DSP程序中由于設(shè)計或精度導(dǎo)致的結(jié)果偏差[1]。如此反復(fù)進行,應(yīng)用程序開發(fā)十分不便。

      鑒于DSP應(yīng)用開發(fā)的傳統(tǒng)設(shè)計方法十分不便,Math-Works公司和TI公司聯(lián)合開發(fā)了MATLAB Link for CCS Development Tools(簡稱 CCSLink)。CCSLink將MATLAB、CCS(TI DSP集成開發(fā)環(huán)境)和目標DSP三者連接起來,開發(fā)人員可以在MATLAB環(huán)境中像操作MATLAB變量一樣操作TI公司DSP的存儲器和寄存器,實現(xiàn)對CCS的控制,極大地方便了TI DSP應(yīng)用程序的開發(fā)。

      本文所做的研究是以MATLAB2010b、CCS3.3以及基于TMS320VC5509A的開發(fā)板進行的。目前大多數(shù)書籍就CCSLink的描述主要是基于 MATLAB6.5的,而后續(xù)的MATLAB版本對CCSLink做了一定的修改和完善。RTDX插件作為CCSLink的重要組成部分之一,有其獨特的優(yōu)勢。在接下來的內(nèi)容中將對RTDX做詳細介紹,旨在向DSP研發(fā)人員提供一種更快捷的RTDX使用方式。

      1 CCSLink的構(gòu)成

      CCSLink由3部分組成[1]:

      ①與CCS IDE的連接對象。利用此對象可以創(chuàng)建CCS與MATLAB的連接,執(zhí)行相應(yīng)的MATLAB命令就可以運行CCS中的應(yīng)用程序,與目標DSP的存儲器和寄存器進行雙向數(shù)據(jù)交換。其優(yōu)點在于:

      (a)用戶可以利用MATLAB強大的數(shù)據(jù)分析和可視化功能,節(jié)省設(shè)計和調(diào)試程序的時間。

      (b)可以編寫用于調(diào)試數(shù)字信號處理程序的MATLAB語言批處理腳本,實現(xiàn)調(diào)試和分析的自動化。

      ②與RTDX的連接對象。提供了MATLAB與目標DSP之間的實時通信通道,利用此通道可以實時地與目標DSP進行數(shù)據(jù)交換而不用停止DSP上正在執(zhí)行的程序。Link for RTDX實現(xiàn)了對實時數(shù)據(jù)的自動化高級分析和可視化,同時也實現(xiàn)了對復(fù)雜DSP程序的有效驗證。

      RTDX包括主機和目標DSP兩部分,如圖1所示。在DSP上有一個小的RTDX庫(RTDX Target Library)[2],其使用一個基于掃描的仿真器,通過增強型JTAG接口在主機和DSP之間傳輸數(shù)據(jù)。DSP應(yīng)用程序則通過調(diào)用RTDX庫的API函數(shù)來完成主機和DSP之間的通信。主機方運行CCS軟件,CCS軟件同樣帶有一個RTDX庫(RTDX Host Library),通過一個COM接口將實時數(shù)據(jù)在主機上顯示[3]。這樣,MATLAB中設(shè)計的參數(shù)可以通過RTDX輸入通道寫入DSP的存儲單元,而算法的最后結(jié)果也可以通過RTDX的輸出通道上傳到MATLAB中,通過編寫MATLAB程序來顯示、分析信號處理的結(jié)果。

      圖1 RTDX原理框圖

      ③嵌入對象。在MATLAB環(huán)境中能夠創(chuàng)建一個代表嵌入在目標C程序中的變量對象,利用嵌入式對象可以像處理MATLAB的變量那樣直接訪問嵌入在目標DSP的存儲器和寄存器中的變量。

      上述3種連接對象的實現(xiàn)方式略有不同,與CCS IDE的連接對象和嵌入式對象在數(shù)據(jù)的傳遞時可以不在目標DSP程序中添加額外的語句,而與RTDX的連接對象在進行數(shù)據(jù)傳遞時則需要在目標DSP程序中添加操縱RTDX通道的語句。

      2 RTDX的工作原理

      實現(xiàn)MATLAB和目標DSP之間的實時數(shù)據(jù)交換,既需要在目標DSP程序中添加特定的語句,又需要MATLAB使用特定的語句實現(xiàn)與目標DSP的數(shù)據(jù)傳遞。

      2.1 DSP對RTDX的配置使用

      2.1.1 設(shè)置RTDX輸入輸出通道

      首先向工程文件中添加頭文件“rtdx.h”、主程序文件“main.c”和其他使用到RTDX的文件。

      基于工程是否有與主機通信的需要,在“main.c”中添加輸入或輸出通道。通道的聲明采用全局變量的形式,不得包括在任何函數(shù)之中。

      默認情況下,這些通道是不能在DSP中直接使用的,但可以在函數(shù)體內(nèi)使能這些RTDX通道。

      如果要在同一工程的其他C文件中使用已經(jīng)聲明過的RTDX通道,必須再次聲明。

      最后,單擊CCS軟件Tools->RTDX->ConfigurationControl,在彈出的窗口中選擇“Enable RTDX”,手動使能RTDX接口。

      2.1.2 使用RTDX讀寫數(shù)據(jù)

      DSP中的RTDX目標庫提供了一些C函數(shù)發(fā)送和接收數(shù)據(jù):

      ①RTDX_read NB()讀數(shù)據(jù)函數(shù)包括3個參數(shù):第1個是輸入通道的指針,第2個是存儲數(shù)據(jù)的數(shù)組指針,第3個是數(shù)據(jù)字長。這是非連續(xù)讀,即如果沒有數(shù)據(jù)可讀將直接返回。

      ②RTDX_read()函數(shù)的3個參數(shù)和RTDX_readNB()一樣,不同的是RTDX_read()是連續(xù)讀,即它將不返回直到讀完數(shù)據(jù)。如果通道忙或未使能,它將返回RTDX_READ_ERROR。

      ③RTDX_write()寫數(shù)據(jù)函數(shù)也包括3個參數(shù):第1個是輸出通道的指針,第2個是要傳輸?shù)臄?shù)組指針,第3個是數(shù)據(jù)字長。執(zhí)行后會返回一個整數(shù),非0代表成功。

      ④RTDX_sizeofInput()包含輸入通道指針的一個參數(shù),并返回從緩沖器中讀取的字長,一般在RTDX_read-NB()完成一次讀操作后使用它。

      ⑤RTDX_channelBusy()包含輸入通道指針的一個參數(shù),并返回一個整數(shù)指示通道狀態(tài),0表示通道不忙。它通常與RTDX_read NB()結(jié)合使用,用于檢查是否有其他讀數(shù)據(jù)請求。

      2.2 MATLAB對RTDX的配置使用

      2.2.1 發(fā)送數(shù)據(jù)[4]

      在傳輸數(shù)據(jù)之前,MATLAB需要知道目標DSP板的信息,完成MATLAB和CCS以及目標DSP的連接,使用下面這條指令實現(xiàn):

      h=actxserver(′RTDX′);

      此指令要在DSP加載了可執(zhí)行文件并使能RTDX接口之后才能使用,使用這條指令還創(chuàng)建了與RTDX的連接對象,h為連接對象的句柄。

      在MATLAB中打開并使能RTDX輸入通道之前,必須在DSP目標程序中已經(jīng)創(chuàng)建了該輸入通道,調(diào)用下面這條指令實現(xiàn):

      invoke(h,′open′,′ichan′,′W′);

      傳輸數(shù)據(jù)用下面這條指令實現(xiàn):

      invoke(h,′Write′,int16(v));

      數(shù)據(jù)通過最近打開的輸入通道由MATLAB向DSP寫數(shù)據(jù),int16(v)表示對數(shù)據(jù)v做強制數(shù)據(jù)類型轉(zhuǎn)換,因為使用的TMS320VC5509A是16位定點DSP。

      在完成數(shù)據(jù)傳輸或讀數(shù)據(jù)之前,應(yīng)該將此接口關(guān)閉,使用下面這條指令實現(xiàn):

      invoke(h,′close′);

      2.2.2 接收數(shù)據(jù)

      在MATLAB接收數(shù)據(jù)部分并沒有采用發(fā)送數(shù)據(jù)使用的那種最新的RTDX實現(xiàn)方式,因為新方法的實現(xiàn)難度較大,這里介紹通用的實現(xiàn)方法,具體步驟如下[3]:

      ①cc=ticcs()實現(xiàn)MATLAB和CCS以及DSP三者的連接,并創(chuàng)建連接對象,對象句柄為cc。

      ②打開并使能RTDX通道:

      ③讀取數(shù)據(jù):

      3 應(yīng)用實例

      列舉一個簡單的求和運算來說明RTDX的具體實現(xiàn)方法,旨在讓讀者掌握如何使用RTDX實現(xiàn)MATLAB和DSP之間的雙向數(shù)據(jù)傳遞。整個程序的實現(xiàn)思路是:首先MATLAB通過RTDX輸入通道向DSP中寫入10個數(shù)據(jù),然后DSP對這10個數(shù)據(jù)求和,最后將這個和值經(jīng)RTDX輸出通道傳遞給MATLAB。整個過程的實現(xiàn)流程如圖2所示。

      3.1 DSP程序?qū)崿F(xiàn)

      圖2 程序流程圖

      3.2 MATLAB程序?qū)崿F(xiàn)

      結(jié) 語

      RTDX技術(shù)巧妙地實現(xiàn)了MATLAB和目標DSP之間的數(shù)據(jù)交換,使開發(fā)者能夠在算法仿真和實時處理之間進行多次反復(fù),以確定最佳算法和參數(shù),極大地方便了DSP應(yīng)用程序的設(shè)計,縮短了開發(fā)周期。

      [1]陳泰紅,任勝杰,魏宇.手把手教你學DSP—基于TMS320C55x[M].北京:北京航空航天大學出版社,2011.

      [2]金衛(wèi).利用RTDX實現(xiàn)DSP與 Matlab的數(shù)據(jù)交換[C]//四川省電子學會電子測量與儀器專委會2005年學術(shù)年會(第十二屆),2005.

      [3]李真芳,蘇濤,黃小宇.DSP程序開發(fā)-MATLAB調(diào)試及直接目標代碼生成[M].西安:西安電子科技大學出版社,2003.

      [4]Thomas Shen.Using RTDX with a MATLAB GUI[EB/OL].[2015-03].http://cnx.org/content/m14388/latest.

      [5]Texas Instruments Inc.TMS320 DSP/BIOS User’s Guide[EB/OL].[2015-03].http://wenku.baidu.com/link?url=DEaRFy VIAH4kZ7 Tolplf FhFhm Ak3gFa NSOH7 XPzf T-nCWY4 CBfCAKSoCu Y_yin RE4zuzhhbob K_929 TMCmF-p Ogp 4J3KT_s22o0dmy Vyki2CS.

      猜你喜歡
      指針應(yīng)用程序指令
      聽我指令:大催眠術(shù)
      刪除Win10中自帶的應(yīng)用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      偷指針的人
      娃娃畫報(2019年5期)2019-06-17 16:58:10
      ARINC661顯控指令快速驗證方法
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      電子測試(2018年18期)2018-11-14 02:30:34
      為什么表的指針都按照順時針方向轉(zhuǎn)動
      基于改進Hough變換和BP網(wǎng)絡(luò)的指針儀表識別
      電測與儀表(2015年5期)2015-04-09 11:30:42
      ARM Cortex—MO/MO+單片機的指針變量替換方法
      坐標系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
      機電信息(2014年27期)2014-02-27 15:53:56
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      南靖县| 尤溪县| 隆德县| 阜平县| 英吉沙县| 汶川县| 潜江市| 枞阳县| 巫溪县| 左权县| 容城县| 四子王旗| 永城市| 固镇县| 澎湖县| 张掖市| 林周县| 邯郸县| 苏尼特左旗| 兴化市| 泸西县| 南漳县| 长乐市| 繁峙县| 观塘区| 九龙城区| 师宗县| 昂仁县| 祁门县| 阳谷县| 河津市| 丰原市| 探索| 天镇县| 汪清县| 九龙坡区| 视频| 新余市| 横峰县| 西平县| 永康市|