新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 嵌入式目標模塊在DSP系統開發中的應用

        嵌入式目標模塊在DSP系統開發中的應用

        ——
        作者:華中科技大學交通學院 向先波 武漢工程大學計算機學院 張琴 時間:2007-03-21 來源:電子設計應用 收藏
        引言

        隨著電子技術的不斷進步,特別是3C(計算機、通信、消費電子)的飛速發展,電子設備日趨數字化、小型化和集成化,嵌入式芯片逐漸成為設計開發人員的首選。作為嵌入式芯片的典型代表之一,在信息產業領域得到了廣泛應用。
        雖然為3C產品的開發提供了很好的硬件支撐平臺,但設計者仍得花費一定的時間去掌握內部各種寄存器的正確設置、軟件編程方法以及控制算法設計,這必然會增大產品開發難度,延長產品開發周期,從而影響開發效率。Matlab公司最新推出的針對DSP應用控制系統而開發的嵌入式目標Embedded Target for TI C2000 DSP即可解決上述問題,用戶通過使用該,不僅可以進行電路的系統級仿真,還可編譯生成相應的C語言代碼,并下載到目標板,直接運行程序,進行算法的探索與設計思路的驗證,提高開發效率。

        應用流程

        作為一種專用的集成開發環境,Matlab公司最新推出的Embedded Target for TI C2000 DSP 開發平臺能夠讓設計人員直接進行(半)實物仿真、算法的探索與研究,以及產品可靠性的驗證,從而有效地減少了設計開發過程中的消耗,加快了原型開發的速度。該平臺有如下幾個優點:

        1) 在TI C2000 DSP 上自動測試、執行Simulink仿真模型;

        2) 提供化的系統和功能,比如PWM、ADC、CAN以及目標板載內存等;

        3) 生成文檔化的易讀可編輯的C語言代碼,并生成Code Composer Studio項目文件;

        4) 在F2407 eZdsp評估板和F2812 eZdsp評估板上進行自動化實時測試;

        5) 對TI推出的IQmath Library提供模塊化的支持,可以用于仿真和代碼生成;

        6) 可以進行定點系統的設計、仿真、自動定標和代碼生成工作。

        Embedded Target for TI C2000 DSP提供了將MATLAB和Simulink與TI eXpressDSP工具、TI C2000 DSP控制器集成在一起進行系統開發的手段。通過Real-Time Workshop和TI的開發工具將Simulink模型轉變為實時C代碼,這樣就可以利用這些產品在TI C2000 DSP系統上(如F2812 eZds評估板和F2407 eZdsp評估板等)實現自動代碼生成、產品原型和實現,并可實時進行算法驗證,極大地提高了開發效率。另外,該模塊還有強大的可擴充能力,用戶可以增加自己的代碼、中斷服務程序、IO設備驅動到CCS(Code Composer Studio)的工程項目中,這樣就可以直接驅動自行開發研制的控制板卡或第三方的硬件設備板卡,完成產品的設計。采用該平臺,開發人員不用編寫一行代碼,就可以完成幾乎所有設計、仿真和編程下載的工作,整個開發流程如圖1所示。

        Embedded Target for TI C2000應用流程示意圖

                                       圖1  Embedded Target for TI C2000應用流程示意圖

        Embedded Target for TI C2000 DSP應用實例

        下面以一個基于DSP TMS320F2812芯片的帶CAN2.0B網絡接口的數字逆變控制器的設計為例,介紹利用Embedded Target for TI C2000 DSP模塊,與Matlab的Simulink產品中的其他模塊結合,實現對該逆變控制器進行仿真和編程下載的應用。

        數字式逆變器采用單相半橋逆變結構,逆變控制器核心芯片選用TMS320F2812,輸出兩路SPWM,EXB841模塊作為SPWM信號的驅動放大器,控制開關采用全控器件IGBT,輸入電壓311V,輸出電壓為100V(有效值),開關頻率為10kHz,逆變輸出電壓頻率為50Hz。逆變控制器的系統原理及接口框圖如圖2所示,逆變系統的電流和電壓通過電壓霍爾傳感器和電流采樣電路分別檢測出來,送入模擬信號處理電路中進行模擬濾波處理和幅值調整,處理后的信號送入DSP芯片之中,經過DSP片內的12位A/D轉換模塊,變為數字信號,DSP對信號進行數字濾波后,判斷單相半橋的輸出電壓、電流是否過壓或過流,并采取相應的保護措施;再根據控制算法進行處理,通過DSP片內的PWM輸出模塊,得到所需要的兩路SPWM波形信號,經過EXB841驅動放大模塊進行處理,最后對IGBT逆變半橋進行
        控制,從而實現直流-交流的逆變。同時還利用DSP片內的CAN2.0B模塊,保留一個對外的CAN網絡接口,便于使用網絡通信對數字逆變控制器進行實時控制和監測。

        DSP逆變控制器接口示意圖

                                                圖2  DSP逆變控制器接口示意圖

        C語言項目框架圖

        在Matlab下輸入c2000lib命令,可以顯示Embedded Target for TI C2000 DSP目前所能夠支持的各種DSP功能模塊及相關信息。仿真時,主要利用Embedded Target for TI C2000 DSP所提供的C28X ADC、C28X PWM以及Mailbox子模塊。

        如圖3所示,系統利用A/D轉換模塊,將采集到的逆變電流和電壓作為SPWM輸出的控制源。并通過CAN通道1將A/D轉換值以及PWM輸出占空比輸送出來,同時還可以通過CAN通道0接收來自于網絡上的通信命令,執行相應的子程序。C28X ADC模塊在功能上完全等同于TMS320F2812的12位A/D轉換模塊,可以選擇合適的模擬輸入通道。C28X PWM模塊在功能上完全等同于TMS320F2812事件管理器中帶死區的全比較單元模塊,同樣可以選擇定時器、PWM輸出單元、PWM引腳極性以及設置死區時間。

        Matlab下DSP應用模塊仿真及下載示意圖

                                        圖3 Matlab下DSP應用模塊仿真及下載示意圖

        編程下載之前,先要對F2812 eZdsp模塊進行編譯屬性、目標板和仿真器的選擇設置,以及Real-Time Workshop的屬性設置,具體步驟如下:

        1. 打開CCS2.20,選擇合適的硬件仿真器,此處選擇F2812 XDS510 Emulator,打開DSP軟件集成開發環境。

        2.在Matlab下輸入ccsboardinfo命令顯示出來,查看Embedded Target for TI C2000 DSP所支持的板卡及驅動,如用戶升級仿真器或更換板卡,則需安裝相應的驅動程序,才能支持對應的物理設備。

        3. 右鍵點擊F2812 eZDSP,對評估板硬件鏈接模塊進行編譯、鏈接和運行等選項的設置。注意,在設置BuildOptions屬性時,若沒有連接目標板或仿真器,則BuildAction只選擇Build,可編譯生成C代碼;若有目標板及仿真器,則可選擇Build_and_execute,實現C代碼的編譯下載及實時運行。

        4. 在DSPBoard選項中選擇與目標板一致的DSP芯片類型,并更改DSP板標號,如F2812 PP Emulator等,本文改為F2812 XDS510 Emulator。

        5. 設置Real-Time Workshop的相關屬性,可以根據個人的習慣進行定制。

        經過上述設置步驟之后,可以選擇工具菜單內的Real-Time Workshop下的Build Model生成仿真模型對應的C語言代碼,Matlab的Command窗口會顯示后臺處理的詳細過程,代碼的編譯及鏈接

        過程在CCS中也會有顯示。最后,CCS會自動打開Matlab所生成的軟件項目代碼,CCS中顯示出來的SPWM項目的框架(F2812_SPWM.pjt)如圖4所示,一共有F2812_SPWM_ main.c等14個C語言子程序、SPWM.cmd文件和一些頭文件。所生成的逆變控制器C代碼,保留了模型中相應的變量名,具有良好的可讀性和可維護性,其中所生成CAN通信的主要源代碼如下:

            /* CAN 郵箱發送子程序*/
            {
              ECanaMboxes.MBOX1.MDL.word. LOW_WORD=F2812_SPWM_B.R eadMsgADValueDutyCycle;
              ECanaMboxes.MBOX1.MSGC TRL.bit.DLC = 2;
              ECanaRegs.CANTRS.bit.TRS1 = 1;    // set eCAN Transmit Request Set register
              while(ECanaRegs.CANTA.bit.TA1 != 1 ) {} // check eCAN Transmit Acknowledge register
              ECanaRegs.CANTA.bit.TA1 = 1;      // clear eCAN Transmit Acknowledge register       
            } 

        CCS中自動生成的

                                                             圖4 CCS中自動生成的

        另外,用Embedded Target for TI C2000 DSP所提供的Build/Reload/Run模塊,可以一步到位地將Matlab生成的C語言代碼直接轉為COFF文件下載到DSP逆變控制器的目標板中,不需作兩個開發平臺下的程序移植。如有特殊需求,還可以自行增加一些代碼。這樣就可以避開繁瑣的編程步驟,直接進行在線算法驗證,最終獲取最優的控制程序實現。

        結語

        本文所介紹的DSP結合Matlab的應用實例較為典型。利用Matlab提供的Embedded Target for TI C2000 DSP 模塊,還可完成對基于DSP的三相逆變控制器、電機控制或機器人等其他一些更為復雜的控制系統的仿真、直接編程下載和算法設計驗證,實現DSP系統開發的一步到位。該方法簡單有效、性價比高、開發周期短、適用范圍廣,有一定的參考價值和通用性。

        參考文獻
        1 Mathworks Corp. Embedded Target for TI C2000 (tm) DSP[Z], 2004
        2 Mathworks Corp.External Interfaces/API[Z],2000
        3 MATLAB及在電子信息課程中的應用. 電子工業出版社, 2002
        4 張雄偉. DSP芯片的原理與開發應用(第二版)[M].北京:電子工業出版社,1997

        霍爾傳感器相關文章:霍爾傳感器工作原理


        霍爾傳感器相關文章:霍爾傳感器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 翼城县| 正镶白旗| 马龙县| 奉节县| 精河县| 田东县| 左权县| 五华县| 贵南县| 柘城县| 子洲县| 五家渠市| 哈密市| 苗栗市| 迭部县| 沙田区| 福贡县| 景东| 吴旗县| 泾川县| 南木林县| 施甸县| 醴陵市| 修水县| 巴彦淖尔市| 新兴县| 始兴县| 鄂托克前旗| 漳州市| 大关县| 溧阳市| 安岳县| 锡林浩特市| 彩票| 泰州市| 保靖县| 邻水| 南充市| 吉木乃县| 任丘市| 枣强县|