《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 基于MATLAB的DSP实时控制软件自动生成
基于MATLAB的DSP实时控制软件自动生成
2015年微型机与应用第8期
王顺锋,孙培德
(东华大学 信息科学与技术学院,上海 201620)
摘要: 随着数字芯片速度的提高和数字信号技术的发展,DSP被广泛应用于工业控制等领域,系统开发的效率得到普遍的关注,传统的MATLAB仿真与产品硬件实现相分隔的方式已经无法满足设计的需求。提出一种基于MATLAB的DSP实时控制软件自动生成方案,并通过Simulink模型自动生成TI C2812 DSP的目标代码的应用实例,验证了代码自动生成的可执行性。
Abstract:
Key words :

  摘  要: 隨著數字芯片速度的提高和數字信號技術的發展,DSP被廣泛應用于工業控制等領域,系統開發的效率得到普遍的關注,傳統的MATLAB仿真與產品硬件實現相分隔的方式已經無法滿足設計的需求。提出一種基于MATLAB的DSP實時控制軟件自動生成方案,并通過Simulink模型自動生成TI C2812 DSP的目標代碼的應用實例,驗證了代碼自動生成的可執行性。
  關鍵詞: CCSLinkETTIC2000自動生成代碼
0 引言
  傳統的DSP軟件設計開發一般分為兩個階段:設計仿真和源代碼開發實現[1]。設計仿真階段根據系統開發的需要,以DSP算法研究與仿真驗證為主,這階段可以利用MATLAB的Simulink模塊仿真來實現;源代碼開發通常采用匯編指令或C語言編寫源代碼,由匯編器和連接器進行鏈接后生成目標可執行代碼。源代碼開發完成后,功能的實現主要在硬件電路板上來驗證設計方案的正確性,對于軟件開發者關于DSP數字芯片與硬件電路的原理有一定程度的要求,特別是各個寄存器的作用和存儲空間的特性和擴展。這兩個部分通常是在不同階段相互獨立地完成,因此大大增加了系統開發的時間,系統設計的實時性也不能得到保證。本文介紹了MATLAB中的MATLAB與CCS的接口和Embeded Target for TIC2000 DSP,提出了一種基于TI C2812的軟件設計思路,實現將設計仿真和源代碼開發在同一平臺下開展,從而有效地將開發過程中的兩大階段有機地結合在一起,大大縮短了開發周期,并通過應用實例進行驗證。
1 ETTIC2000概述
  Embedded Target for the TI TMS320C2000TM為TI C2000 DSP實時控制軟件的自動生成的模型仿真、源代碼開發、目標代碼自動生成、實時調試等各個環節都提供了技術方面的支持[2]。
  1.1 ETTIC2000的功能和特點
  ETTIC2000首先利用Real-Time Workshop從Simulink模型生成標準C語言程序代碼,然后通過MATLAB Link for CCS Development Tools調用CCS開發工具,編譯鏈接Simulink所生成的程序,自動生成目標板(C2812 Simulator)的可執行代碼(.out文件),最后把生成的可執行代碼加載到目標板中,并利用嵌入式對象對程序運行進行實時監控和調試。
  Embedded Target for the TI C2000 DSP、Simulink、Real-Time Workshop、CCS和TI目標之間的關系如圖1所示。

Image 001.png

  1.2 C281×DSP模塊庫
  ETTIC2000提供了多個Simulink模塊,以支持不同型號的DSP,在MATLAB窗口中執行命令C2000lib,就會顯示對應型號的DSP芯片模塊。其中,本文使用的C281×的各模塊如圖2所示。

Image 002.png

2 MATLAB與TI CCS的接口
  2.1 CCSLink的功能及特點
  MATLAB Link for CCS Development Tools作為MATLAB的一個工具箱被集成在MATLAB中,可以支持CCS能夠識別的任何目標板。利用此工具箱,將調用函數、讀寫存儲器或寄存器中的數據、實時測試等工作統一在MATLAB平臺下進行,把MATLAB和TI CCS及目標DSP連接起來。其功能圖如圖3所示。

Image 003.png

  2.2 CCSLink的連接方式
  利用CCSLink提供的MATLAB函數可以完成MATLAB與TI CCS、目標板的存儲器或寄存器的數據及信息的交換。
  CCS IDE的連接對象用于創建CCS與MATLAB的連接。從MATLAB的命令窗中可以運行CCS IDE中的程序,向目標板的存儲器或寄存器讀取數據,檢查DSP的運行狀態,而且可以控制DSP上運行程序的起止。
  在MATLAB環境中可以創建一個嵌入式對象訪問目標板的存儲器或寄存器中的變量,即把C語言代碼中的變量作為MATLAB的一個變量處理。轉變數據類型,創建函數聲明,改變變量值,讀取DSP中的數據與信息,所有這些操作都在MATLAB平臺下進行。
  在MATLAB中,對所有對象的操作方式是一樣的,只是對應的屬性及屬性值不同而已。
  3 應用實例
  32位的TMS320C281×系列芯片融合了DSP和微控制器的最佳特性,能夠完成64位的數據處理,專門的分支硬件減少了條件指令執行的反應時間,使該處理器能夠實現更高精度的處理任務[3]。
  在TMS320F281×DSP中,ADC模塊是一個12位帶流水線的模/數轉換器,由16個結果寄存器ADCResult存放ADC的轉換結果,轉換的計算過程為:
A~F@{$V0S)ELQW_L9_)C`ZT.jpg

  本系統搭建的是一個由AD模塊采集來的數字信號量來控制PWM輸出的占空比的模型。通過讀取AD轉換的數據與信息,同時,利用示波器顯示的PWM輸出波形,分析由CCS實時控制的DSP代碼自動生成的效果。
  具體步驟如下:
  (1)在MATLAB中的Simulink環境搭建模型如圖4所示,選用ADC模塊中A0通道,由PWM1通道輸出結果,設置參數并進行仿真。

Image 004.png

  (2)配置CCSLink。
  驗證CCS是否在PC上安裝并配置好,在MATLAB命令窗中輸入命令:ccsboardinfo,則MATLAB命令窗中會返回圖5所示的板卡信息。

Image 005.png

  圖5證明CCS已經安裝并配置好。CCSLink工作時CCS將自動啟動。
  (3)在Real-Time Workshop中設置編譯鏈接(Build)選項。
  指定ti_c2000.tlc作為系統目標文件(system target file)。設置好Build選項后,通過編譯鏈接選項,Real-Time Workshop會自動產生實時可執行代碼,同時,可通過設置將可執行代碼自動加載到指定的目標板上并且開始運行。圖6為MATLAB命令窗口顯示。

Image 006.png

  (4)實時代碼調試。
  在MATLAB環境下編輯m文件,并運行以下代碼:
  cc=ccsdsp(′boardnum′,0,′procnum′,0)
  //創建一個連接對象
  visible(cc,1)//CCS IDE窗口在桌面上可見
  linkinfo=info(cc)//測試DSP目標板的狀態信息
  projfile=fullfile(matlabroot,′work′,...);
  projpath=fileparts(projfile);
  open(cc,projfile)//加載工程文件
  build(cc)//編譯文件
  load(cc,′.out′)//可執行文件加載到DSP中
  run(cc)//運行
  halt(cc)//停止
  ddatv=read(cc,address(cc,′ddat′),′double′,2)
  //訪問嵌入在目標DSP存儲器中的值
  在MATLAB環境下完成了對工程文件的調入、編譯,生成可執行文件并將其加載到DSP目標板。切換到已經打開的CCS界面,可以看到在MATLAB環境下已經完成了對CCS的各種操作。
  (5)運行結果。
  當由變位器給定模擬電壓輸入為1 V時,加載自動生成代碼到DSP后,讀取DSP寄存器的值如圖7所示。

Image 007.png

  自動生成代碼F2812.ADC=(AdcRegs.ADCRESULT0)>>4;之所以右移4位,是因為在級聯序列發生器模式中,讀取時,ADCRESULTn寄存器為左對齊,應向右平移4位后讀取[4]。
  結果寄存器存放的數字量與計算得出的理論值   1 355非常接近,如圖8所示,驗證目標板AD轉換有效。

Image 008.png

  程序的目標板輸出波形比較如圖9所示。

Image 009.png

  圖9證明了由MATLAB模型生成的代碼是有效的,運行結果也與理論輸出占空比近似,進而證明這種設計方法快捷、高效。
4 結論
  應用MATLAB自動生成DSP代碼的方案,有效地克服了傳統DSP代碼設計方法效率低、難度大等缺點,快速生成了標準化的C語言代碼和DSP可執行文件,極大地縮短了代碼的開發時間。實驗結果表明,自動生成的代碼運行效果良好,可以應用于項目的設計與實現,體現了方案的實用性與可行性。
  參考文獻
  [1] 李利.DSP原理及應用[M].北京:中國水利水電出版社,2004.
  [2] 李真芳,蘇濤,黃小宇.DSP程序開發:MATLAB調試及直接目標代碼生成[M].西安:西安電子科技大學出版社,2003.
  [3] 蘇奎峰,呂強,常天慶,等.TMS320281×DSP原理及C程序開發[M].北京:北京航空航天大學出版社,2008.
  [4] 張雄偉,陳亮,徐光輝.DSP芯片的原理與開發應用[M].北京:電子工業出版社,2003.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 午夜久久资源| 欧美区高清在线| 91久久久在线| 久久精品男人天堂| 久久亚洲精品视频| 国产美女网站在线观看| 国产精品免费入口| 国产精品av网站| 日韩av高清| 国产女精品视频网站免费| 国产男女激情视频| 91精品视频播放| 欧美在线亚洲在线| 欧美一区二区三区免费视| 久久视频精品在线| 91久久精品www人人做人人爽| 午夜精品一区二区三区在线播放| 人妻久久久一区二区三区| 国产精品三级一区二区| 日韩精品综合在线| 国产精品美女免费| 久久免费看av| 亚洲免费久久| 国产不卡在线观看| 国产在线拍揄自揄视频不卡99| 亚洲欧洲精品在线| 国产精品久久国产精品| 免费久久99精品国产自| 国产精品美女诱惑| 久久九九国产视频| 日本国产中文字幕| 夜夜添无码一区二区三区| 国产精品久久久久久久久久久久| 欧美少妇一区| 欧美精品亚洲精品| 日本久久久久久久 | 国产精品入口尤物| 久久精品国产2020观看福利| 日韩久久一级片| 欧美一区二区三区免费视| 日韩视频精品在线|