日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

TMS320LF240x DSP控制器的應(yīng)用研究

出處:互聯(lián)網(wǎng) 發(fā)布于:2011-09-04 22:51:38

  隨著DSP技術(shù)的日益發(fā)展,DSP的應(yīng)用越來(lái)越廣泛。TMS320F240x系列DSP控制器將實(shí)時(shí)處理能力和控制器外設(shè)功能集于一身,是TI公司開(kāi)發(fā)的一款側(cè)重于控制功能的DSP產(chǎn)品。它的哈佛結(jié)構(gòu)、并行總線、反序?qū)ぶ返葍?nèi)部硬件特性使其具有強(qiáng)大的運(yùn)算功能,能大大改善傳統(tǒng)單片機(jī)的運(yùn)算速度,并能采用更先進(jìn)、更合理的算法取代原來(lái)的算法;此外,其豐富的片內(nèi)資源和大量的中斷入口,使得該系列DSP在控制領(lǐng)域的開(kāi)發(fā)應(yīng)用比傳統(tǒng)單片機(jī)要強(qiáng)大的多。筆者曾用TMS320F240x系列芯片中的TMS320F2406開(kāi)發(fā)過(guò)電動(dòng)執(zhí)行機(jī)構(gòu),得到了滿意的結(jié)果。結(jié)合自己的開(kāi)發(fā)經(jīng)驗(yàn),筆者簡(jiǎn)要介紹TMS320LF240xDSP的硬件結(jié)構(gòu)、C程序開(kāi)發(fā)過(guò)程中若干關(guān)鍵的問(wèn)題。其中很多包括筆者的心得和體會(huì)。

  1 TMS320LF240X DSP硬件結(jié)構(gòu)特點(diǎn)

  TMS320LF240x DSP有以下一些特點(diǎn):采用高性能靜態(tài)CMOS技術(shù),使得供電電壓降為3.3V,減少了功耗;基于TMS320C2xxDSP的CPU核,保證與TMS320系列DSP代碼兼容;片內(nèi)有高達(dá)32K字的Flash程序存儲(chǔ)器,544字的雙口RAM(DARAM)和2K字的單口RAM(SARAM);兩個(gè)事件管理器模塊EVA和EVB,適用于控制各類電機(jī);看門狗定時(shí)器模塊(WDT);10位A/D轉(zhuǎn)換器的轉(zhuǎn)換時(shí)間為500ns,可選擇由兩個(gè)事件管理器來(lái)觸發(fā)2個(gè)8通道輸入A/D轉(zhuǎn)換器或1個(gè)16通道輸入A/D轉(zhuǎn)換器,而每次要轉(zhuǎn)換的通道都可通過(guò)編程來(lái)選擇。需要說(shuō)明的是,TMS320LF240x DSF是定點(diǎn)l6位芯片,存儲(chǔ)數(shù)據(jù)的單位是16位的字,每個(gè)地址所存的數(shù)據(jù)都是16位。

  1.1 改進(jìn)的哈佛結(jié)構(gòu)和流水線操作

  DSP采用程序空間和數(shù)據(jù)空間完全分開(kāi)的哈佛(Havard)結(jié)構(gòu),允許同時(shí)取指令和操作數(shù),而且允許在程序空間和數(shù)據(jù)空間之間相互傳遞數(shù)據(jù),即改進(jìn)的哈佛結(jié)構(gòu)。TMS320LF240x DSP的cPu具有獨(dú)立的內(nèi)部數(shù)據(jù)和程序總線結(jié)構(gòu)。數(shù)據(jù)和程序總線分為6條l6位的總線,分別為:PAB,程序地址總線,為讀寫(xiě)程序空間提供地址;DRAB,數(shù)據(jù)讀地址總線,為讀數(shù)據(jù)空間提地址;DWAB,數(shù)據(jù)寫(xiě)地址總線,為寫(xiě)數(shù)據(jù)空間提供地址;PRDB,從程序空間向c.PU傳送代碼、立即操作數(shù)和表信息的程序讀總線;DWEB,可以傳送數(shù)據(jù)到程序空間和數(shù)據(jù)空間的數(shù)據(jù)寫(xiě)總線。數(shù)據(jù)讀地址總線(DRAB)和數(shù)據(jù)寫(xiě)地址總線(DWAB)是相互獨(dú)立的地址總線,CPU 在相同的機(jī)器周期內(nèi)可以同時(shí)進(jìn)行數(shù)據(jù)讀寫(xiě)操作。

  TMS320LF240x DSP流水線具有四個(gè)獨(dú)立的階段:取指令、指令譯碼、取操作數(shù)以及指令執(zhí)行。一般情況下,取指令占用PAB和PRDB;指令譯碼不占用任何程序和數(shù)據(jù)總線;取操作數(shù)占用DRAB和DRDB;指令執(zhí)行包括將執(zhí)行結(jié)果寫(xiě)回?cái)?shù)據(jù)存儲(chǔ)器,將占用DWAB和DWEB.可見(jiàn),TMS320LF240x DSP獨(dú)特的總線結(jié)構(gòu)大大減少了流水線沖突,極大提高了指令的運(yùn)行速度。

  1. 2事件管理器模塊

  事件管理器模塊提供了許多適用于運(yùn)動(dòng)控制和電機(jī)控制的功能。每個(gè)240x器件都包括兩個(gè)事件管理器模塊:EVA和EVB.每個(gè)事件管理器模塊包括兩個(gè)16位69通用定時(shí)器、比較單元、捕獲單元、8個(gè)16位的脈寬調(diào)制(PWM)通道以及正交編碼脈沖輸入電路。它們能夠?qū)崿F(xiàn):三相反相器控制;PWM的對(duì)稱和非對(duì)稱波形。事件管理器模塊適用于控制交流感應(yīng)電機(jī)、無(wú)刷直流電機(jī)、開(kāi)關(guān)磁阻電機(jī)、步進(jìn)電機(jī)、多級(jí)電機(jī)以及逆變器

  2 C0FF目標(biāo)文件

  TI公司匯編器所創(chuàng)建的目標(biāo)文件采用的是一種稱為COFF(Common Object File Format)的文件格式,即共同目標(biāo)文件格式。目的是提高編程和程序執(zhí)行的效率,同時(shí)也有利于使用TI公司的BIOS(Basic Input Output System)。

  COFF文件格式的概念就是使用代碼段、數(shù)據(jù)段編程,而不是指令或數(shù)據(jù)簡(jiǎn)單的順序編寫(xiě)。代碼段和數(shù)據(jù)段的概念不僅是現(xiàn)代軟件編制的重要技術(shù)概念,同時(shí)也是嵌入式系統(tǒng)的重要編程技術(shù)。使用這種技術(shù)的優(yōu)點(diǎn)是:程序具有良好的可讀性;程序具有良好的可移植性;能與系統(tǒng)存儲(chǔ)單元充分配合。

  在COFF目標(biāo)文件中,段(section)是其的單位。所謂"段"就是終在TMS320 DSP的存儲(chǔ)器映像中占據(jù)連續(xù)空間的一塊代碼或數(shù)據(jù)。這些段在目標(biāo)文件中是相互獨(dú)立的。由于大多數(shù)系統(tǒng)都包含有不同類型的存儲(chǔ)器(ROM、RAM、EEPROM),所以使用段可使用戶更有效地利用目標(biāo)存儲(chǔ)器;所有段都能夠獨(dú)立進(jìn)行重定位,因此可以將不同的段分配至不同類型的存儲(chǔ)器中去。

  TMS320LF240x DSP C編譯器產(chǎn)生可重定位的數(shù)據(jù)段和代碼段。這些段以不同方式分配到內(nèi)存中,以滿足不同的系統(tǒng)配置。編譯器創(chuàng)建兩種基本的段:初始化段和未初始化段。

  初始化段包括數(shù)據(jù)表和可執(zhí)行代碼。C編譯器創(chuàng)建下初始化段:

  ◆ text段一包含所有的可執(zhí)行代碼和浮點(diǎn)常數(shù);

  ◆ cinlt段一包含用于初始化全局變量和靜態(tài)變量的表:

  ◆ const段一包含字符常量以及用關(guān)鍵字const聲明的全局和靜態(tài)變量:

  ◆ switch段一包含switch語(yǔ)句的跳轉(zhuǎn)表。

  未初始化段在內(nèi)存(通常是RAM)中保留空間。程序在運(yùn)行時(shí)用這些空間創(chuàng)建和保存變量。編譯器創(chuàng)建以下未初始化段:

  ◆ bss段一為全局變量和靜態(tài)變量保存空間,在程序開(kāi)始運(yùn)行時(shí),C初始化boot程序?qū)?shù)據(jù)從。Clnlt拷貝到bss段中;

  ◆ stack段--為系統(tǒng)堆棧分配存儲(chǔ)空間,用于將變量傳遞至函數(shù)以及為局部變量分配空間;

  ◆ system段一為動(dòng)態(tài)內(nèi)存分配保留空間,為動(dòng)態(tài)存儲(chǔ)函數(shù)malloc、callo和realloc分配存儲(chǔ)空間。當(dāng)然,若C程序沒(méi)有用到這些函數(shù),那么編譯器就不用創(chuàng)建system段了。

  3 C程序運(yùn)行環(huán)境

  TMS32OC2xx DSPC語(yǔ)言編譯器包含兩個(gè)庫(kù):rts2xx.1ib和rts.src.

  (1)rts2xx.Ii b

  rts2xx.1ib運(yùn)行支持目標(biāo)庫(kù)。具有COFF文件格式。運(yùn)行支持目標(biāo)庫(kù)是由rts.src中的C和匯編源程序通過(guò)編譯和匯編而得到的。rts2xx lib包含三部分內(nèi)容:ANSI C標(biāo)準(zhǔn)庫(kù)、系統(tǒng)啟動(dòng)程序c int00、允許C訪問(wèn)特殊指令的函數(shù)和宏。

  鏈接程序時(shí),必須指明具體的目標(biāo)庫(kù)并把該庫(kù)作為鏈接輸入文件之一,這樣對(duì)目標(biāo)庫(kù)所包含的運(yùn)行支持函數(shù)的引用就得到了解決。鏈接運(yùn)行目標(biāo)庫(kù)時(shí),鏈接器只是將目標(biāo)庫(kù)中被引用部分加進(jìn)目標(biāo)文件。目標(biāo)庫(kù)指的就是rts2xx.lib.由于運(yùn)行支持函數(shù)符合函數(shù)調(diào)用規(guī)約,可以直接被C訪問(wèn)。

  (2)rts.src

  rts.src運(yùn)行支持源文件庫(kù),由c和匯編源程序組成,可在集成開(kāi)發(fā)環(huán)境(CCS)下打開(kāi),任何一個(gè)運(yùn)行支持函數(shù)的源代碼都可以在rts.src找到。

  rts.src中包含有用匯編語(yǔ)言編寫(xiě)的算術(shù)程序。由于這些函數(shù)的特殊調(diào)用規(guī)約,它們不能從C中被訪問(wèn):但可以對(duì)它們作擴(kuò)展或修改以作為自己的程序。只要修改后的程序遵循函數(shù)特定的調(diào)用規(guī)約和保護(hù)規(guī)約,它們就可以被C直接訪問(wèn)。

  算術(shù)程序中包含浮點(diǎn)運(yùn)算函數(shù)。浮點(diǎn)數(shù)采用IEEE754單浮點(diǎn)數(shù)格式為:

  浮點(diǎn)數(shù)由3部分組成,即符號(hào)位("S")、指數(shù)和尾數(shù)。指數(shù)是有+127偏置的無(wú)符號(hào)整數(shù)。一個(gè)浮點(diǎn)數(shù)占有32位,占用TMS320LF240x DSP兩個(gè)字的空間。32位規(guī)格化數(shù)的值由值(規(guī)格化)=(-1)3×l.尾數(shù)×2(指數(shù)-127)給出。這樣,浮點(diǎn)數(shù)O.5的單浮點(diǎn)數(shù)為3F000000h,格式為:

  例如,源庫(kù)rts.src中的匯編函數(shù)F$$ITOF是將16位有符號(hào)整形數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù),只要在匯編程序中加入"ref F$$ITOF"指令,即可直接調(diào)用該函數(shù)。查看F$$ITOF函數(shù)的說(shuō)明文檔可知,該函數(shù)不遵循C子程序調(diào)用規(guī)約,所以它不能直接被C調(diào)用。

  下面介紹C程序的系統(tǒng)初始化。

  在運(yùn)行C程序之前,必須創(chuàng)建C運(yùn)行環(huán)境。這個(gè)程序由C引導(dǎo)程序使用名為c_intO的函數(shù)來(lái)執(zhí)行。運(yùn)行支持源庫(kù)(rts.src)在名為boot.asm的模塊中包含這個(gè)程序的源程序。c_intO執(zhí)行如下初始化C環(huán)境的任務(wù):

  ①為系統(tǒng)堆棧定義一個(gè)名為stack的段,并設(shè)置初始化指針;

  ②初始化全局變量,將。Clnlt段中的初始化表中的數(shù)據(jù)復(fù)制到bss段中;

  ③調(diào)用函數(shù)main來(lái)運(yùn)行C程序。

  運(yùn)行堆棧被分配在存儲(chǔ)器的一個(gè)連續(xù)塊中,并且從低地址向高地址增加。寄存器ARl通常指向堆棧中下一個(gè)可獲得的字(堆棧頂加一個(gè)字)。

  .clnlt段中的表是由多項(xiàng)初始化記錄組成的。每個(gè)必須自動(dòng)初始化的變量在。cinit段中都有記錄,.clnlt段中初始化記錄的格式如圖l所示。

  全局變量的初始化包括運(yùn)行時(shí)變量的自動(dòng)初始化和加載時(shí)變量的初始化。筆者認(rèn)為,加載時(shí)變量的初始化沒(méi)有實(shí)用價(jià)值。因?yàn)楫?dāng)DSP斷電后,這些變量的值就丟失了。當(dāng)DSP重新上電后,由于初始化程序不給這些全局變量賦初值,使得系統(tǒng)的初始化失敗。

  4 C語(yǔ)言和匯編語(yǔ)言的混合編程

  開(kāi)發(fā)DSP芯片可以用匯編語(yǔ)言或C語(yǔ)言。兩種語(yǔ)言各有所長(zhǎng):用C語(yǔ)言開(kāi)發(fā)DSP芯片,開(kāi)發(fā)速度快,可讀性好,可移植性強(qiáng);而用匯編語(yǔ)言開(kāi)發(fā)DSP芯片,則能充分利用DSP芯片的軟硬件資源,程序代碼的執(zhí)行效率高。

  用C語(yǔ)言和匯編語(yǔ)言進(jìn)行混合編程主要有以下三種方法:

  ①獨(dú)立編寫(xiě)C程序和匯編程序,分開(kāi)編譯或匯編形成各自的目標(biāo)代碼模塊,然后用鏈接器將C語(yǔ)言模塊和匯編模塊鏈接起來(lái)。

  ②直接在C程序中的相應(yīng)位置嵌入?yún)R編語(yǔ)句。

  ③對(duì)C程序進(jìn)行匯編生成相應(yīng)代碼,然后對(duì)這些匯編代碼進(jìn)行手工優(yōu)化與修改。

  (1)寄存器規(guī)約

  在C環(huán)境中,對(duì)什么寄存器用于完成什么樣的操作有嚴(yán)格規(guī)定。所有這些規(guī)定統(tǒng)稱為寄存器規(guī)約。如果想編寫(xiě)出正確的C語(yǔ)言DSP程序,將C程序和匯編程序接口,則必須理解和遵循這些規(guī)約寄存器規(guī)約規(guī)定編譯器如何使用寄存器以及在函數(shù)的調(diào)用過(guò)程中如何保護(hù)寄存器。

  (2)函數(shù)調(diào)用規(guī)約

  C編譯器對(duì)函數(shù)調(diào)用有一系列嚴(yán)格的規(guī)約。任何函數(shù)不管是調(diào)用C函數(shù),還是被C函數(shù)調(diào)用,都必須遵循這些規(guī)約。不遵循這些規(guī)約將破壞C環(huán)境,導(dǎo)致程序運(yùn)行失敗。調(diào)用函數(shù)和被調(diào)用函數(shù)所必須執(zhí)行的操作,以保證調(diào)用前后C環(huán)境的一致性。

  當(dāng)父函數(shù)調(diào)用子函數(shù)時(shí),必須保證當(dāng)前的輔助寄存器為ARl.父函數(shù)執(zhí)行以下操作:①將被調(diào)用函數(shù)所需參數(shù)的值壓入堆棧,使左邊的參數(shù)位于堆棧的頂部;②調(diào)用子函數(shù),即開(kāi)始執(zhí)行子函數(shù)程序代碼;③父函數(shù)認(rèn)為,當(dāng)函數(shù)調(diào)用返回時(shí),ARl是當(dāng)前的輔助寄存器;④當(dāng)被調(diào)用函數(shù)完成時(shí),父函數(shù)將堆棧指針移回到函數(shù)調(diào)用前的位置。直接把壓入堆棧中參數(shù)的值丟棄。

  由上可看出,函數(shù)調(diào)用過(guò)程中參數(shù)的傳遞是值傳遞,并沒(méi)有改變參數(shù)的值,只是把被調(diào)用函數(shù)所需參數(shù)的值拷貝進(jìn)堆棧中。子函數(shù)使用的是堆棧中的拷貝。子函數(shù)對(duì)拷貝部分的修改并不改變參數(shù)的值。當(dāng)函數(shù)調(diào)用完成時(shí),父函數(shù)直接將堆棧中的拷貝丟。

  結(jié)語(yǔ)

  TMS320LF240x DSP是TMS320C2xx系列中的新成員,其性能遠(yuǎn)遠(yuǎn)超過(guò)傳統(tǒng)的l6位微控制器和微處理器,非常適用于電機(jī)的數(shù)字化控制,是電機(jī)數(shù)字化控制的升級(jí)產(chǎn)品。用語(yǔ)言進(jìn)行DSP的開(kāi)發(fā)是DSP開(kāi)發(fā)的重要方向。C語(yǔ)言在滿足控制應(yīng)用程序運(yùn)行速度的基礎(chǔ)上可以更好地維護(hù)程序和移植程序,是開(kāi)發(fā)控制應(yīng)用程序的必然趨勢(shì)。


  
關(guān)鍵詞:DSP控制器

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!