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