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