基于MATLAB7.0軟件的實時數(shù)據(jù)交換的實現(xiàn)
摘 要:實時數(shù)據(jù)交換(RTDX)是TI公司推出的一種非常優(yōu)秀的實時數(shù)據(jù)傳輸技術(shù),為DSP系統(tǒng)的軟件調(diào)試提供了一種全新的方法。它利用DSP的內(nèi)部仿真邏輯和JTAG接口實現(xiàn)主機與目標機之間的數(shù)據(jù)交換.不占用DSP的系統(tǒng)總線和串口等I/0資源.數(shù)據(jù)傳送完全可以在應(yīng)用程序的后臺運行。對應(yīng)用程序影響很小。文中介紹了一種基于MATLAB的RTDX實現(xiàn)方法,可為DSP編程人員發(fā)現(xiàn)程序錯誤和監(jiān)測系統(tǒng)運行狀況提供實時、直觀的表示形式,并在以C6201型DSP為主處理器的目標板上得到應(yīng)用。
關(guān)鍵詞:實時數(shù)據(jù)交換;MATLAB;數(shù)字信號處理器;CCS
1 引言
在DSP系統(tǒng)開發(fā)過程中.通常要驗證算法的正確性。傳統(tǒng)方法是主機調(diào)試器在目標應(yīng)用程序中插入斷點.中斷目標應(yīng)用程序運行.觀測目標機上各個寄存器或內(nèi)存變量的值。但是處理系統(tǒng)是實時運作的.這種方法不能實時跟蹤處理過程中數(shù)據(jù)的變化,大多數(shù)時間顯示的只是片面的滯后的數(shù)據(jù),數(shù)據(jù)顯示也不直觀.給調(diào)試過程帶來很多不便。TI公司的Real Time Data Exchange(RTDX)技術(shù)就是利用DSP的內(nèi)部仿真邏輯和JTAG接口實現(xiàn)主機與目標機之間的數(shù)據(jù)交換.它不占用DSP的系統(tǒng)總線和串口等L/0資源,數(shù)據(jù)傳送完全可以在應(yīng)用程序的后臺運行,對應(yīng)用程序影響很?。耆梢栽诓恢袛嗄繕藨?yīng)用程序的前提下向主機實時發(fā)送目標機上各個寄存器或內(nèi)存變量的值。而主機上的可視化應(yīng)用程序也可以通過嵌入COM的API函數(shù)獲得這些數(shù)據(jù).并以適當?shù)母袷桨褟哪繕双@得的數(shù)據(jù)顯示出來。這樣.編程人員可以實時觀測和分析應(yīng)用程序的運行情況.更方便地查找和修改應(yīng)用程序的錯誤,從而縮短了系統(tǒng)的設(shè)計開發(fā)周期。
2 RTDX的原理
RTDX是一種可以在不影響目標應(yīng)用程序運行的情況下讓主機和目標機進行實時數(shù)據(jù)傳輸?shù)募夹g(shù)。RTDX支持雙向數(shù)據(jù)流。即目標機到主機的數(shù)據(jù)流和主機到目標機的數(shù)據(jù)流。
RTD)X的數(shù)據(jù)流示意圖如圖1所示。
2.1 目標機到主機的數(shù)據(jù)傳送
目標機為了向主機發(fā)送數(shù)據(jù)必須設(shè)定一個輸出通道RTDX―ochan。通過用戶接口可將數(shù)據(jù)送到輸出通道以使這些數(shù)據(jù)立即保存到RTDX目標機的緩存(由RTDX目標函數(shù)庫定義)中,然后再將這些數(shù)據(jù)通過,JTAG接口發(fā)送到主機。RTDX主機函數(shù)庫將接收到的數(shù)據(jù)保存在log文件或主機的緩存(具體由RTDX工作模式來設(shè)定)中。保存在log文件或主機緩存中的數(shù)據(jù)可以通過COM AutomationClient重新獲取,以便顯示或分析。
下面是幾種典型的COM Automation Client:
MATLAB applications;
Microsoft Excel;
Visual Basic applications;
Visual C++applications:
Lab View;
2.2 主機到目標機的數(shù)據(jù)傳送
目標機要從主機中獲得數(shù)據(jù).首先必須設(shè)定輸入通道RTDX―ichan接收主機發(fā)出的命令,從而實現(xiàn)數(shù)據(jù)傳輸?shù)耐?。運行主機寫操作時.應(yīng)由COMAutomation Client通過COM接口把要發(fā)送的數(shù)據(jù)先寫人RTDX主機函數(shù)庫中的緩存.等待目標機讀取數(shù)據(jù)。當RTDX主機函數(shù)庫收到從目標機發(fā)出的讀取數(shù)據(jù)請求時,保存在RTDX主機函數(shù)庫中的數(shù)據(jù)便可通過JTAG接口將數(shù)據(jù)發(fā)送到目標機.寫入目標機指定的存儲區(qū)域。操作完成后,主機會通知RTDX目標機函數(shù)庫。RTDX目標機函數(shù)庫的用戶接口和COM接口利用RTDX目標機函數(shù)庫的用戶接口可實現(xiàn)目標機。DSP應(yīng)用程序和主機之間安全可靠的數(shù)據(jù)交換。同時可利用它完成應(yīng)用程序向RTDX主機函數(shù)庫發(fā)送數(shù)據(jù)、應(yīng)用程序向RTDX主機函數(shù)庫發(fā)送數(shù)據(jù)請求及在目標機上提供數(shù)據(jù)緩存等功能。
2.3 RTDX的運行模式
RTDX主機庫提供二種運行模式:連續(xù)模式和非連續(xù)模式。在連續(xù)模式中數(shù)據(jù)只是簡單地被RTDX主機函數(shù)庫緩沖.此模式用于希望得到連續(xù)數(shù)據(jù)并顯示的場合。而在非連續(xù)模式中數(shù)據(jù)被寫到主機上的一個日志文件(10g file),所以此模式適用于希望采集有限的數(shù)據(jù)場合。
3 MATLAB Link for CCS介紹
MATLAB是一種科學計算軟件.專門以矩陣的形式處理數(shù)據(jù)。MATLAB將高性能的數(shù)值計算和可視化集成在一起.并提供了大量的內(nèi)置函數(shù).廣泛地應(yīng)用于科學計算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和設(shè)計。Link for Code Composer Studio用于在MATLAB、TI軟件開發(fā)環(huán)境Code ComposerStudio(CCS)和TI DSP硬件之間建立雙向和實時數(shù)據(jù)鏈接。工程師可以利用MATLAB的可視化功能及數(shù)學函數(shù)可視化分析來自CCS及C2800/5000/6000等系列DSP的數(shù)據(jù)。利用該工具可以自動執(zhí)行CCS的命令來進行分析、交互或者批處理調(diào)試和顯示.在MATLAB和CCS之間傳輸數(shù)據(jù)驗證算法。通過RTDX通道可以在不停止DSP運行的情況下與XDS510/XDS560仿真器之間實現(xiàn)高速、實時數(shù)據(jù)交換.并提供分析和可視化仿真或?qū)崟r數(shù)據(jù)能力。
3.1 MATLAll對CCS的控制功能
用戶可以通過MATLAB Link for Code Compos-er Studio在MATLAB環(huán)境中對11 DSP嵌入式應(yīng)用程序進行算法級和系統(tǒng)級的觀察、分析、調(diào)試及驗證,包括分析、調(diào)試代碼實時分析:可以在MATLAB環(huán)境里對CCS的程序進行調(diào)試.可以將數(shù)據(jù)傳遞到CCS,在DSP上執(zhí)行算法,在MATLAB的命令窗口進行雙向、交互的數(shù)據(jù)分析;可以對DSP的寄存器和存儲區(qū)進行操作.獲取數(shù)據(jù)到MATLAB工作區(qū).實現(xiàn)繪圖計算和統(tǒng)計曲線擬合。MATLAB、Simulink和Link for Code Composer Studio為TI的DSP提供了驗證、調(diào)試、觀察和實現(xiàn)嵌入式軟件的集成平臺。
3.2 分析處理并顯示數(shù)據(jù)
實現(xiàn)信號處理運算實時分析測試(RTDX)。該工具借助RDTX提供了管理TI目標DSP的數(shù)據(jù)和算法的通道.能夠在目標DSP運行的情況下在MATLAB與DSP之間實時交換數(shù)據(jù).可以傳遞測試向量、監(jiān)控程序輸出、顯示和評估實時測試結(jié)果:讀取、寫入DSP存儲空間的數(shù)據(jù),在程序執(zhí)行期間改變執(zhí)行參數(shù),在不中斷程序執(zhí)行的情況下改變算法或者在代碼里加入斷點.可以對原始系統(tǒng)設(shè)計進行實時驗證和修正。
4 基于MATLAB的RTDX實現(xiàn)
本設(shè)計用MATLAB編程作為COM AutomationClient實現(xiàn)同C6201為主處理器的目標板與主機之間的通信并實時獲取目標板數(shù)據(jù)。
4.1 目標DSP所需的準備工作
4.1.1 通道定義
在DSP的C程序中需在主函數(shù)前包含必要的頭文件和輸入輸出通道定義語句,即加入:
其中通道名稱ichan和oehan可以任意取,但要與Marlab程序中所使用的通道名稱相對應(yīng)。
4.1.2 主機與目標機間的同步
4.1.3 目標機寫操作程序
4.1.4設(shè)定RTDX_P0110的調(diào)用方式
RTDX目標機函數(shù)庫通過調(diào)用函數(shù)RTDX Poll0實現(xiàn)主機與目標機間通信。RTDX_PollO的調(diào)用有二種方式:一種是在應(yīng)用程序中調(diào)用。另一種是利用中斷服務(wù)程序調(diào)用。程序如下:
While (RTDX_writing!=NULL)
{#if RTDX POLLING_IMPLEMENTATION
RTDX_Poll();
#end if }
若將宏RTDX_POLLING_IMPLEMENTATION定義為1.則表示在應(yīng)用程序中調(diào)用RTDX_Poll0.而如果將其定義為0.則表示在中斷服務(wù)程序中調(diào)用RTDX_Pon0。其他參數(shù)設(shè)定可在CCS中進行,目錄如圖2所示。
4.2 主機的部分MATLAB程序
4.3 操作過程
首先將改好的目標DSP程序編譯下載并運行,然后在CCS的Tools工具欄中打開RTDX,選Con-figuration Contral,并選中Enable_RTDX(見圖3)。
然后運行MATLAB程序,此時在MATLAB的com-mand window就能看到目標DSP回傳給主機的數(shù)據(jù)。如果想直觀的觀察所得的數(shù)據(jù),還可以調(diào)用MATLAB的強大繪圖功能,以圖形形式顯示數(shù)據(jù)。
評論