《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Matlab的TMS320LF2407程序快速設計
基于Matlab的TMS320LF2407程序快速設計
摘要: TMS320LF2407是TI公司主推的一種高性能、低價格DSP處理器,其處理速度達到30 MIPS,片內處理集成RAM、Flash及定時器外,還集成了A/D轉換器、PWM控制器及CAN總線控制器等模塊,特別適合于電機、電源變換等實時要求高的控制系統。
Abstract:
Key words :

    TMS320LF2407是TI公司主推的一種高性能、低價格DSP處理器,其處理速度達到30 MIPS,片內處理集成RAM、Flash及定時器外,還集成了A/D轉換器、PWM控制器及CAN總線控制器等模塊,特別適合于電機、電源變換等實時要求高的控制系統。但是通常設計DSP程序的方法是,在DSP的集成開發環境CCS中用C語言設計,需要花費大量的時間用來編寫和輸入程序代碼。在 Matlab中用圖形化的方式設計DSP的程序,能夠縮短產品的開發時間。

    1 Embedded Target for T1 C2000 DSP介紹

    目前,新版本的Matlab軟件(Matlab7.O)已經集成了TI公司C2000、C5000、C6000系列DSP的開發工具包,可在 Matlab/Simulink環境中用圖形化的方式進行DSP的設計及仿真驗證。并能將設計的圖形文件(.mdl)直接轉換成C語言程序。其中 C2000系列的開發工具是EmbeddedTarget for TI C2000 DSP。該工具包是TI公司與MathWorks公司共同開發的產品,在Matlab /Simulink中嵌入了eXpressDSP工具箱,支持C24x及C28x系列的DSP處理器。在C24x系列DSP工具箱中,包含DSP處理器中的模/數轉換(ADC)、CAN發送及接收、PWM控制等模塊。用戶可以在Matlab中調用這些圖形化的功能模塊及Simulik中的其他模塊建立數字信號處理的模型,并可以對模型進行仿真驗證,然后生成TMS320C2000的C語言代碼及CCS的工程項目文件,在CCS中經修改、編譯后就可以下載到 DSP目標板中運行。

    2 ADC轉換及FIR濾波處理程序的設計

    以下是用Embedded target for TI C2000工具包設計ADC轉換及FIR濾波的步驟。

    步驟1,在新建的Simulink文件(.mdl)中,放入C2000 Target Preferences中的LF2407 eZdsp功能塊,用于參數的初始化設置。對話框設置如圖1所示。其中DSP定時器的時鐘比例因子(Timer Clock Prescaler),可以選擇I~128,則相應的定時器采樣時間為:
     公式

 

    式中Timer Period是DSP的最大時鐘計數周期,LF2407是16位定點處理器,所以Timer Period數是216-1。圖1中設定的Timer Clock Prescaler數值是2,當LF2407的工作頻率(CPU Clock Speed)為40MHz時,由上式計算出的定數器的采樣時間是0.003 2 S。由于數據處理需要占用一定的運行時間,所以要通過試驗選擇適當的定時器采樣時間。

        設定Timer Clock Prescaler

 

    實現A/D轉換的功能塊是C24x ADC,其參數設置如圖2所示。A/D轉換通道可以選擇模塊A、B中的任一個通道,也可以選擇多個通道,A/D轉換的采樣時間設置為64/80 000。

     ADC設計對話框

 

    步驟2,設計FIR濾波器。在Simulink的信號處理工具箱(Signal Processing Bloekset)中,將濾波器設計專用工具(FDAToo1)放入文件中,雙擊圖符,彈出圖3所示的濾波器設計對話框。

    在圖3中,選擇濾波器類型為FIR低通濾波器,采樣頻率為6kHz,低通頻率為1kHz,截至頻率為2 kHz。先點擊對話框中的Design Filter,然后再點擊圖3中實現模型(Realize Model)圖標進入模型實現對話框,選擇Over-write generated“filter”block,則在設計框圖中生成一個名稱為“Filter”的FIR濾波器的功能框圖,再將原先放入的FDATool 圖標刪除,將Filter連接到圖中,完成的設計如圖4所示。

濾波器設計對話框

 

    圖4中添加的增益模塊(Gain)是為了實現數據類型的轉換。由于ADC轉換輸出的是16位整型數據,而濾波器的輸入需要雙精度浮點數據,因此Gain的數據類型參數(Signal datatypes)設為float(“double”)。Gainl是將浮點數轉換為整型數,因此數據類型參數設為uint(16)。圖4中添加寄存器 (C24x To Memory)模塊是為了使設計完整。在生成的C程序中,增益模塊Gainl的輸出是rth-Gainl,可被其他應用程序調用。

 
    步驟3,將圖形文件生成C程序。在圖4中,運行Simulation菜單下的Configuration Parameters項,彈出配置對話框,選擇其中的Real-Time WorkShop項,點擊Build按鈕,則將圖4的框圖轉化為TI C2000DSP的C語言代碼,并自動調用CCS2軟件編譯運行該程序。生成的C語言程序包括:中斷向量文件vectors.asm、中斷服務程序 MW_c24xx_csl.C、ADC轉換控制testADC.c、主程序TestADC_main.c等。

    3 修改及完善程序

    由Matlab直接生成的程序能夠實現ADC轉換及數字濾波功能,但是由于程序中使用了許多缺省設置,在運行過程中還存在一些問題。用上述方法生成的程序中,中斷處理程序中只對定時器中斷進行處理。當由于干擾信號引起其他中斷時,會造成DSP停機,因此要在中斷向量定義無效中斷(_nothing),并在中斷響應程序中添加中斷服務程序。修改后的程序中,斜體部分是修改的代碼。修改程序如下:

    中斷向量文件vectors.asm:

    中斷向量文件vectors

    基于Matlab的TMS320LF2407程序快速設計圖示

 

    在ADC轉換處理程序中,每次ADC轉換結束后沒有復位DSP的排序器指針。雖然程序中設定的是只進行一個通道的A/D轉換,但結果卻是16個通道的循環轉換,造成數字濾波器的輸人數據不正確,因此程序要作修改,在testadc_c中添加:

    TestADC_B.C24xADC=MMREGS[RESULT0]>>6;/*A/D轉換結果右移6位*/< br>    MMREGS[ArN2TRL2]=MMREGS[ADCTRL2]l0X4242;/*復位排序器指針并清除A/D中斷標志*/

    如果需要通過t/o端口輸出結果,則可以在testadc_c中定義一個I/o(portl00),然后將FIR濾波后的數據rtb-Gainl輸出,程序如下:

    將FIR濾波后的數據rtb

 

    4 試驗結果及結論

    由上述方法設計的程序在TMS3201LF2407A處理器上能正常運行。試驗結果證明,采用FIR濾波后,ADC轉換的抗干擾能力有了明顯的提高。用 Matlab快速建立TI DSP模型及直接生成C語言程序的方法,簡化了DSP軟件的開發。在Embedded target for TI C2000工具箱中還包含其他工具,如PWM控制、CAN總線控制及通用I/O控制等。利用這些工具與Simulink中的其他工具相結合,能夠完成復雜功能的DSP程序設計,并且只需進行少量的修改,就可以實現功能正確的C語言程序的設計,節省程序的編寫及輸入時間。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产高清精品自在久久 | 成人免费久久精品国产片久久影院 | 国产一级精品高清一级毛片 | 日本一区二区免费在线观看 | 国产精品久久久久久网站 | 手机在线亚洲 | 顶级毛片在线手机免费看 | 99久久国产综合精品1尤物 | 久久怡红院国产精品 | 99精品视频99| 午夜性爽快免费视频播放 | 国产91香蕉 | 亚洲精品国产一区二区图片欧美 | 久草视频在线资源站 | 男人的天堂在线观看入口 | 亚州黄色网址 | 人人爽人人香蕉 | 亚洲国产品综合人成综合网站 | 国产欧美日韩一区二区三区在线 | 亚洲韩国欧美一区二区三区 | 久久综合久久综合九色 | 免费一极毛片 | 亚洲一区二区三区欧美 | 老司机精品影院一区二区三区 | 看欧美毛片一级毛片 | 扒开双腿猛进入喷水免费视频 | 亚洲国产亚洲片在线观看播放 | 日韩毛片大全免费高清 | 欧美黄色成人 | 一本一道久久综合狠狠老 | 亚洲产国偷v产偷v自拍涩爱 | a一级免费 | 另类专区亚洲 | 欧美一级www | 久久毛片免费 | 国产精品亚洲专区一区 | 青草青99久久99九九99九九九 | 亚洲一区免费 | 欧美高清一区二区三 | 中文一区二区在线观看 | 色婷婷激婷婷深爱五月老司机 |