• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      TMS320C672x系列浮點(diǎn)DSP的EMIF研究與應(yīng)用

      2010-03-26 07:32:12張西峰杜普選孔勇
      電子設(shè)計(jì)工程 2010年12期
      關(guān)鍵詞:存器存儲(chǔ)器寄存器

      張西峰,杜普選,孔勇

      (北京交通大學(xué)電子信息工程學(xué)院,北京100044)

      目前,DSP技術(shù)已廣泛用于信號(hào)處理、通信和雷達(dá)等領(lǐng)域。TI公司的帶EMIF擴(kuò)展存儲(chǔ)器接口的浮點(diǎn)DSP TMS320C672x系列是專為高速、高性能應(yīng)用而開發(fā)的,主要應(yīng)用于高速寬帶、圖像處理和高速鐵路軌道信號(hào)處理等領(lǐng)域。DSP應(yīng)用平臺(tái)設(shè)計(jì)中,外部存儲(chǔ)器接口(EMIF)是為DSP與外部設(shè)備之間提供連接。EMIF和外部器件SDRAM以及Flash的合理設(shè)計(jì)關(guān)系到系統(tǒng)的數(shù)據(jù)存儲(chǔ)和程序加載。

      TMS320C672x系列浮點(diǎn)DSP的EMIF性能優(yōu)良,增強(qiáng)了與外部1、2或4區(qū)的16位或32位SDRAM和異步器件連接的方便性和靈活性。TMS320C6722和TMS320C6726 EMIF寬度為16位,支持的SDRAM可達(dá)128 Mb;TMS320C6727 EMIF寬度為32位,支持高達(dá)256 Mb和512 Mb的SDRAM[1]。異步存儲(chǔ)器接口是從并行的8位、16位或32位NOR Flash實(shí)現(xiàn)系統(tǒng)自啟動(dòng)。若使用大容量的Flash,EMIF連接Flash的高位地址線可通過(guò)外部器件CPLD或自身GPIO口擴(kuò)展。

      1 EMIF接口

      EMIF接口具有很強(qiáng)的外設(shè)連接能力,可尋址空間一般比較大,數(shù)據(jù)吞吐較快。EMIF接口支持的器件包括同步突發(fā)靜態(tài)RAM(SBSRAM)、同步動(dòng)態(tài)RAM(SDRAM)、各種異步設(shè)備(SRAM、ROM和FIFO)以及同步FIFO。TMS320C672x的EMIF引腳結(jié)構(gòu)如圖1所示[2]。

      圖1 TMS320C672x的EMIF功能框圖Fig.1 Block diagram of EMIF for TMS320C672x

      其主要引腳功能如下:

      EM_A[x:0]:EMIF地址總線。當(dāng)與SDRAM器件連接時(shí),地址總線主要為SDRAM提供行地址和列地址。當(dāng)與異步器件連接時(shí),這些引腳與EM_BA引腳提供器件地址。

      EM_BA[1:0]:EMIF存儲(chǔ)區(qū)地址線。與SDRAM連接時(shí),為SDRAM提供存儲(chǔ)區(qū)地址。與異步器件連接時(shí),這些引腳與EM_A引腳共同提供器件地址。

      EM_WE_DQM[x:0]:低電平有效寫觸發(fā)或字節(jié)使能引腳。與SDRAM連接時(shí),這些引腳與SDRAM的DQM引腳連接,在數(shù)據(jù)訪問中分別使能/禁止每一字節(jié)。與異步器件連接時(shí),這些引腳可作為字節(jié)使能(DQM)或字節(jié)寫觸發(fā)(WE)。

      EM_CS[0]和[2]:CS[0]為SDRAM器件低電平有效芯片使能引腳,當(dāng)訪問異步器件時(shí)此引腳失效,在完成異步存取后自動(dòng)恢復(fù)其功能;CS[2]為低電平有效異步器件使能引腳,僅在訪問異步存儲(chǔ)器時(shí)有效。

      EM_RAS:低電平有效行地址選通引腳,與SDRAM的RAS引腳連接,用于向此器件發(fā)送命令。

      EM_CAS:低電平有效列地址選通引腳,與SDRAM的CAS引腳連接,用于向此器件發(fā)送命令。

      EM_CKE:時(shí)鐘使能引腳,與SDRAM的CKE連接,發(fā)出自刷新命令,使器件進(jìn)入自刷新模式。

      EM_CLK:SDRAM時(shí)鐘引腳,EMIF時(shí)鐘來(lái)自DSP的PLL控制器的SYSCLK3時(shí)鐘模塊。

      2 EMIF與SDRAM的設(shè)計(jì)

      這里以SDRAM(HY57V281620A)為例,說(shuō)明EMIF和SDRAM的接口與配置,HY57V281620A是4 Bank×2MB×16 bit的SDRAM器件,可與TMS320C6722 DSP無(wú)縫連接[3]。圖2是TMS320C6722型DSP與HY57V281620A型SDRAM的電路連接。

      圖2 TMS320C6722與HY57V281620A的電路連接圖Fig.2 Schematic diagram of TMS320C6722 and HY57V281620A

      2.1 SDRAM的軟件配置

      在TMS320C6722的EMIF中有一組存儲(chǔ)器映射寄存器,通過(guò)設(shè)置這些寄存器便可完成對(duì)SDRAM的配置,包括配置寄存器SDCR、刷新控制寄存器SDRCR、時(shí)序寄存器SDTIMR和自刷新退出時(shí)序寄存器SDSRETR。具體的配置代碼如下:

      *(int*)EMIF_SDTIMR=(6<<27)//T_RFC設(shè)置自動(dòng)刷新周期(66 ns)

      |(1<<24)//T_RP預(yù)充電周期(20 ns)

      |(1<<20)//T_RCD激活讀寫延時(shí)(20 ns)

      |(1<<16)//T_WR寫恢復(fù)時(shí)間(1clk+7.5 ns)

      |(4<<12)//T_RAS激活充電命令周期(44 ns)

      |(6<<8)//T_RC激活激活命令周期(66 ns)

      |(1<<4);//T_RRD激活塊A和B周期(15 ns)

      *(int*)EMIF_SDSRETR=6;//設(shè)置自刷新(66 ns)

      *(int*)EMIF_SDRCR=0x000004E2;//設(shè)置SDRAM刷新速率

      *(int*)EMIF_SDCR=(0<<31)//SR退出自刷新模式

      |(1<<14)//NM設(shè)置16位數(shù)據(jù)線

      |(2<<9)//CL設(shè)置CAS latency=2 EM_CLK

      |(1<<8)//BIT11_9LOCK允許CL被寫

      |(2<<4)//IBANK表示器件為4塊的SDRAM

      |(0<<0);//PAGESIZE設(shè)置為256字的頁(yè)面

      *(int*)EMIF_SDRCR=0x0000061A;//再次設(shè)置刷新率,與器件的刷新間隔相匹配

      2.2 SDRAM的軟件操作

      根據(jù)上面軟件配置中IBANK和PAGESIZE字段的設(shè)置,圖3列出了C6722 EMIF連接16位4區(qū)256字頁(yè)面的SDRAM地址映射關(guān)系,其他系列地址映射關(guān)系參考TI資料。SDRAM讀/寫程序流程如圖4所示。

      圖3 EMIF連接16位SDRAM時(shí)的地址映射Fig.3 Address mapping when EMIF connecting to 16-bit SDRAM

      圖4 SDRAM讀/寫程序流程圖Fig.4 Flow chart of read/write SDRAM program

      EMIF控制SDRAM工作時(shí),當(dāng)行地址選通引腳EM_RAS有效時(shí),SDRAM通過(guò)A0~A11獲取行地址;當(dāng)列選通引腳EM_CAS有效時(shí),SDRAM通過(guò)A0~A11獲取列地址。EMIF訪問的外部SDRAM空間地址映射為0x80000000~0x8FFFFFFF,由表1的地址映射知,如果要存儲(chǔ)16位的short int型數(shù)據(jù)到SDRAM,每次邏輯地址需要加2,如:*(short int*)(0x80000000+i*2)=short int i;存儲(chǔ)32位的int型數(shù)據(jù)每次地址需要加4,如:*(int*)(0x80000000+i*4)=int i。

      3 EMIF與Flash的設(shè)計(jì)

      當(dāng)DSP脫機(jī)運(yùn)行時(shí),系統(tǒng)上電或復(fù)位后,DSP系統(tǒng)自帶的Bootloader將一段存儲(chǔ)在外部的非易失性存儲(chǔ)器中的代碼搬移到內(nèi)部高速存儲(chǔ)單元中執(zhí)行。這樣既利用了外部存儲(chǔ)單元擴(kuò)展DSP本身有限的ROM資源,又充分發(fā)揮了DSP內(nèi)部資源的效能。TMS320C672x系列DSP只支持一種硬啟動(dòng)選項(xiàng),即從內(nèi)部ROM地址0x00000000啟動(dòng),其他啟動(dòng)選項(xiàng)由存儲(chǔ)于ROM的軟啟動(dòng)器實(shí)現(xiàn)。軟啟動(dòng)器使用CFGPIN0和CFGPIN1寄存器,這2個(gè)寄存器在復(fù)位時(shí)捕捉相關(guān)器件引腳的狀態(tài),以決定進(jìn)入那種啟動(dòng)模式。ROM主要有4種自啟動(dòng)模式:從EM_CS2空間的并行Flash啟動(dòng)、利用SPI0或I2C1主模式從EEPROM啟動(dòng)、利用SPI0或I2C1從模式從外部MCU啟動(dòng)以及利用UHPI口從外部MCU啟動(dòng)。這里分析了從EM_CS2空間的并行Flash啟動(dòng)模式,給出了高密度、非易失性的電可擦除存儲(chǔ)器AM29LV800BB-90EC(512 K×16 Bit)與EMIF的接口設(shè)計(jì)方案。

      3.1 Flash的硬件連接

      AM29LV800BB-90EC型Flash具有19根地址線,而TMS320C6722 EMIF只有14根地址線(EBA0~EBA1、EA0~EA11)。因此,EMIF與Flash連接時(shí)地址線不夠用,需要擴(kuò)展高位地址線,這里提出兩種擴(kuò)展方法:GPIO擴(kuò)展和CPLD地址鎖存器擴(kuò)展。

      3.1.1 G PIO擴(kuò)展

      TMS320C672X MCASP通道的各功能引腳都可以作為通用的I/O接口,直接與Flash存儲(chǔ)器的高位地址線連接。硬件原理圖如圖5所示[4]。圖5中,任何在復(fù)位時(shí)可下拉的GPIO引腳都可用于控制Flash啟動(dòng)器的地址線A[18:13]。

      圖5GPIO擴(kuò)展高位地址線的連接圖

      Fig.5 Schematic diagram of high address extension by GPIO

      3.1.2 C PLD地址鎖存器擴(kuò)展

      在CPLD中設(shè)計(jì)一個(gè)地址鎖存器74L273,通過(guò)74L273的輸出口擴(kuò)展7根高位地址線A11~A17,分別與Flash的A12~A18連接。EMIF的EM_A[11]作為CPLD鎖存器的輸入選通端選,EMIF數(shù)據(jù)線作為鎖存器的輸入,如圖6所示。

      3.2 FLash的軟件配置

      在EMIF異步接口中,A1CR是唯一需要編程的寄存器。根據(jù)Flash器件的特性,配置如下:

      *(int*)EMIF_A1CR=(0<<31)//SS選擇寫觸發(fā)

      |(1<<30)//EW允許擴(kuò)展等待模式

      圖6 CPLD地址鎖存器擴(kuò)展的高位地址線連接圖Fig.6 Schematic diagram of high address extension by CPLD

      |(0<<26)//W_SETUP讀/寫建立時(shí)間寬度,根據(jù)異步器件數(shù)據(jù)手冊(cè)配置|(9<<20)//W_STROBE讀/寫觸發(fā)時(shí)間寬度|(3<<17)//W_HOLD讀/寫保持時(shí)間寬度|(0<<13)//R_SETUP讀建立時(shí)間寬度|(9<<7)//R_STROBE讀觸發(fā)時(shí)間寬度|(3<<4)//R_HOLD讀保持時(shí)間寬度

      |(0<<2)//TA讀/寫之間的最小時(shí)鐘周期數(shù)|(1<<0);//ASIZE設(shè)置數(shù)據(jù)總線寬度

      3.3 Flash的軟件操作

      TMS320C672x DSP的存儲(chǔ)器中EMIF訪問的外部異步器件FLash空間地址映射為0x90000000~0x9FFFFFFF之間。由于Flash數(shù)據(jù)總線寬度為16位,因此在硬件設(shè)計(jì)時(shí)選用半字尋址,即EMIF的BA[1]連接Flash的A[0]。根據(jù)配置寄存器A1CR中數(shù)據(jù)總線寬度的配置,訪問異步器件時(shí)TMS320C6722中內(nèi)部地址和EMIF地址引腳對(duì)應(yīng)如表1所示。

      表1 EMIF連接異步器件地址映射Tab.1 Address mapping when EMIF connect to asynchronous devices

      Flash在讀操作中類似于普通的ROM,在寫操作中需要使用一些特殊命令字,按一定的順序編程,且可隨時(shí)編程,編程命令根據(jù)器件參考資料。對(duì)Flash的讀/寫流程如圖7所示。

      圖7 Flash讀/寫流程圖Fig.7 Flow chart of Flash read/write

      由表1知,對(duì)Flash進(jìn)行16位數(shù)據(jù)寫操作時(shí)每次偏移地址需要左移1位,即:*(short int*)(0x90000000+i*2)=short int i;//對(duì)Flash的i地址寫入16位數(shù)據(jù)i

      由于此Flash高位地址線為擴(kuò)展的地址線,必然導(dǎo)致訪問Flash時(shí)地址不連續(xù)。每次只能連續(xù)訪問Flash內(nèi)部4 K×16 Bit空間,即0x9000_0000~0x9000_1FFE。需要訪問高地址空間時(shí),首先通過(guò)設(shè)置相應(yīng)的GPIO引腳或者通過(guò)數(shù)據(jù)線利用CPLD設(shè)置Flash的相應(yīng)高地址線;然后再分別操作低位地址線進(jìn)行讀寫,便可完成對(duì)高地址空間的讀寫。

      4 EMIF并行Flash自啟動(dòng)

      4.1 Flash自啟動(dòng)過(guò)程

      在實(shí)際應(yīng)用中通常把代碼和數(shù)據(jù)表存放在外部的非易失性存儲(chǔ)器Flash中。TMS320C672X系列DSP片上的Bootloader工具只能將1 KB的代碼搬移到內(nèi)部RAM。但是在通常情況下,用戶應(yīng)用程序的大小都會(huì)超過(guò)1 KB,所以需要在外部Flash的前1 KB范圍內(nèi)預(yù)先存放一小段程序,待片上Bootloader工具把此段代碼搬移入內(nèi)部并開始執(zhí)行后,由此段代碼將Flash中剩余的用戶應(yīng)用程序搬移入內(nèi)部RAM中。Flash中前1 KB代碼為二級(jí)Bootloader。系統(tǒng)上電或復(fù)位時(shí),DSP內(nèi)部固化的啟動(dòng)代碼會(huì)自動(dòng)將位于Flash地址空間(0x90000000~0x9FFFFFFF)開頭的1 KB代碼傳輸?shù)絉AM存儲(chǔ)空間,這就是一次引導(dǎo)。很明顯,一次引導(dǎo)的代碼并不能滿足絕大多數(shù)編程者對(duì)代碼長(zhǎng)度的要求,因此就需要二次引導(dǎo)過(guò)程。二次引導(dǎo)是將DSP一次引導(dǎo)的l KB代碼編寫成一個(gè)搬移程序,搬移程序?qū)⒂脩舻闹鞒绦虬嵋频礁咚賀AM中,并且搬移完成后自動(dòng)跳轉(zhuǎn)至主程序入口處運(yùn)行主程序。由于硬件設(shè)計(jì)中Flash的地址不連續(xù),因此對(duì)高位地址線的控制需要在搬移程序中實(shí)現(xiàn)[5]。圖8為使用二級(jí)Bootloader的流程圖。

      圖8 使用二次Bootloader的CPU運(yùn)行流程圖Fig.8 Flow chart of CPU operation when using the second Bootloader

      二級(jí)Bootloader代碼的編寫必須使用匯編語(yǔ)言,因?yàn)樵趫?zhí)行二級(jí)Bootloader時(shí)C的運(yùn)行環(huán)境還未建立起來(lái)。

      4.2 Flash的燒寫方法

      應(yīng)用程序和二次Boot編寫和編譯完成之后,便可使用TI公司提供的FlashBurn工具完成Flash燒寫,燒寫完成后需要重新上電或復(fù)位,便可實(shí)現(xiàn)自啟動(dòng)。此FlashBurn工具雖然燒寫方法較為直觀,但是過(guò)程復(fù)雜,首先需要下載一個(gè).out文件(FBTC)至DSP系統(tǒng)中,實(shí)現(xiàn)對(duì)Flash的操作;其次Flash-Burn工具不能識(shí)別.out文件,只能接收.hex的十六進(jìn)制文件,必須將.out文件轉(zhuǎn)換為.hex文件。

      因此,用戶可以自己根據(jù)Flash器件的操作方法編寫燒寫程序,避免文件格式轉(zhuǎn)換的繁瑣。首先把用戶應(yīng)用程序(包括二級(jí)Bootloader)編譯生成的.out文件轉(zhuǎn)載到DSP的RAM中,然后根據(jù)要求編寫Flash燒寫程序,把燒寫程序的.out文件裝載到DSP的另一塊區(qū)域(注意修改cmd文件中地址范圍,避免兩次裝載可能產(chǎn)生的地址覆蓋),執(zhí)行程序完成Flash的燒寫。注意:燒寫到Flash中的應(yīng)用程序前面12個(gè)字節(jié)用于存放_(tái)c_int00地址、應(yīng)用程序字節(jié)數(shù)、應(yīng)用程序在RAM中的起始地址,這12個(gè)字節(jié)需要在燒寫過(guò)程中添加[6]。

      5 結(jié)束語(yǔ)

      本文主要研究了TMS320C672x系列DSP EMIF接口的功能和使用方法,并針對(duì)SDRAM和Flash器件討論了EMIF的具體硬件接口設(shè)計(jì)和軟件配置;同時(shí)分析了TMS320C672x系列的自啟動(dòng)過(guò)程,提出了兩種燒寫Flash的方法。該應(yīng)用方法經(jīng)實(shí)驗(yàn)驗(yàn)證,確實(shí)可行并易于實(shí)現(xiàn)。

      [1]Texas Instruments Incorporated.TMS320C672x CPU and Instruction Set Reference Guide[EB/OL].(2006-11-07)[2010-03-02].http://www.ti.com/cn/litv/pdf/spru733a.

      [2]Texas Instuments Incorporated.TMS320C672x DSP External Memory Interface(EMIF)User's Guide[EB/OL].(2007-04-02)[2010-03-02].http://www.ti.com/cn/litv/pdf/spru711c.

      [3]汪安民,張松燦,常春藤.TMS320C6000 DSP實(shí)用技術(shù)與開發(fā)案例[M].北京:人民郵電出版社,2008:60-80.

      [4]劉偉,魏芹芹,王偉.TMS320C672x系列DSP原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008:60-104.

      [5]Texas Instuments Incorporated.Using the TMS320C672x Bootloader[EB/OL].(2009-09-01)[2010-03-02].http://www.ti.com/cn/litv/pdf/spraa69.

      [6]杜普選,馬慶龍.實(shí)時(shí)DSP技術(shù)及浮點(diǎn)處理器的應(yīng)用[M].北京:清華大學(xué)出版社,2007:159-166.

      猜你喜歡
      存器存儲(chǔ)器寄存器
      低面積與低延遲開銷的三節(jié)點(diǎn)翻轉(zhuǎn)容忍鎖存器設(shè)計(jì)
      一種低成本的四節(jié)點(diǎn)翻轉(zhuǎn)自恢復(fù)鎖存器設(shè)計(jì)
      靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
      一種低功耗的容軟錯(cuò)誤鎖存器設(shè)計(jì)
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      存儲(chǔ)器——安格爾(墨西哥)▲
      Grain型級(jí)聯(lián)反饋移存器的非奇異性判定
      基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      和静县| 内丘县| 卢氏县| 怀来县| 靖州| 方正县| 滨海县| 金溪县| 南丰县| 林芝县| 惠州市| 临猗县| 巍山| 佛坪县| 确山县| 子洲县| 遵义县| 旬阳县| 沙田区| 镇安县| 罗定市| 石柱| 嘉义市| 东方市| 山丹县| 灵川县| 弥勒县| 永济市| 汝州市| 长宁县| 凌海市| 湖北省| 天全县| 大化| 淮北市| 方城县| 长泰县| 黄梅县| 元谋县| 攀枝花市| 宁国市|