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