DSP原理及應(yīng)用教程-第二章 DSP芯片結(jié)構(gòu)和CPU外圍電路_第1頁
DSP原理及應(yīng)用教程-第二章 DSP芯片結(jié)構(gòu)和CPU外圍電路_第2頁
DSP原理及應(yīng)用教程-第二章 DSP芯片結(jié)構(gòu)和CPU外圍電路_第3頁
DSP原理及應(yīng)用教程-第二章 DSP芯片結(jié)構(gòu)和CPU外圍電路_第4頁
DSP原理及應(yīng)用教程-第二章 DSP芯片結(jié)構(gòu)和CPU外圍電路_第5頁
已閱讀5頁,還剩118頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第二章DSP芯片結(jié)構(gòu)和CPU外圍電路講課內(nèi)容:1〕TMS320C55x處理器的特點2〕TMS320C55x處理器的CPU結(jié)構(gòu)3〕TMS320C55x處理器的CPU外圍電路2.1DSP芯片結(jié)構(gòu)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2.1DSP芯片結(jié)構(gòu)2.1.1TMS320C55x處理器的特點采用改進(jìn)的哈佛結(jié)構(gòu)。1條讀程序數(shù)據(jù)總線(PB),5條數(shù)據(jù)總線(BB,CB,DB,EB,FB),和他們對應(yīng)的6條地址總線(PAB,BAB,CAB,DAB,EAB,FAB)40位和16位的算術(shù)邏輯單元(ALU)各1個,1個40位的移位器4個40位的累加器(AC0,AC1,AC2,AC3)和(T0,T1,T2,T3)17×17比特的硬件乘法器和一個40比特專用加法器的組合(MAC)比較、選擇和存儲單元數(shù)據(jù)地址產(chǎn)生單元(DAGEN)和程序地址產(chǎn)生單元(PAGEN)數(shù)據(jù)空間和和程序空間位同一物理空間,采用統(tǒng)一編址第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2.1.2TMS320C55xCPUCPU有4個功能單元:指令緩沖單元(I單元),程序流程單元(P單元),地址數(shù)據(jù)流程單元(A單元)和數(shù)據(jù)計算單元(D單元)CPU結(jié)構(gòu)示意圖第二章DSP芯片結(jié)構(gòu)和CPU外圍電路1、指令緩沖單元(IUnit)由指令緩沖隊列(IBQ)和指令譯碼器構(gòu)成。I單元從程序數(shù)據(jù)總線接收程序指令代碼(每次接收32比特程序代碼)放到IBQ(最多可存放64字節(jié)的未譯碼指令)中。指令譯碼器從指令緩沖隊列中取指令(每次取6字節(jié)的程序代碼)進(jìn)行變長8/16/24/32/48位〕指令譯碼。譯碼后的數(shù)據(jù)分別送到P單元,A單元,D單元處理。指令緩沖單元〔I單元〕圖第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2、程序流程單元(PUnit)組成:P單元由程序地址產(chǎn)生邏輯電路和一組存放器組構(gòu)成。主要功能產(chǎn)生所有I單元讀取指令所需的24比特程序地址、控制指令讀取順序。一般情況下,產(chǎn)生的都是〔連續(xù)〕順序地址。在遇到指令要求讀取非連續(xù)地址程序代碼時,也可以根據(jù)來自I單元的立即數(shù)和D單元的寄存器值產(chǎn)生所需的地址,并將產(chǎn)生地址送到PAB。程序流程P單元結(jié)構(gòu)圖第二章DSP芯片結(jié)構(gòu)和CPU外圍電路在程序流程單元中,控制和影響程序地址的存放器有5類:1)程序流程存放器,包括:PC—程序計數(shù)器,RETA—返回地址存放器,CFCT—控制流程關(guān)系存放器;2)塊重復(fù)存放器,包括:BRC0、BRC1—塊重復(fù)存放器0和1、RSA0、RSA1—塊重復(fù)起始地址存放器,REA0、REA1—塊重復(fù)結(jié)束地址存放器0和1;3)單重復(fù)存放器,包括:RPTC—單重復(fù)計數(shù)器,CSR—計算單重復(fù)存放器;4)中斷存放器,包括:IFR0、IFR1〔標(biāo)志〕,IER0、IER1〔使能〕,DBIER0、DBIER1〔調(diào)試中斷使能〕;5)狀態(tài)存放器:ST0_55、ST1_55、ST2_55、ST3_55第二章DSP芯片結(jié)構(gòu)和CPU外圍電路3、地址流程單元〔AUnit〕功能和組成:產(chǎn)生讀寫數(shù)據(jù)空間的地址。由數(shù)據(jù)地址產(chǎn)生電路(DAGEN),16比特的算術(shù)邏輯ALU電路和一組存放器構(gòu)成。DAGEN可以根據(jù)I單元的立即數(shù)和本A單元的存放器數(shù)據(jù)產(chǎn)生讀寫數(shù)據(jù)空間的所有地址。在間接尋址中,還需要有P單元來指示采用那種尋址模式。地址流程單元結(jié)構(gòu)圖第二章DSP芯片結(jié)構(gòu)和CPU外圍電路A單元16位ALU的功能能接收I單元數(shù)據(jù),又能夠和存儲器、I/O空間、A單元存放器、D單元存放器和P單元存放器進(jìn)行數(shù)據(jù)交換,完成算術(shù)、邏輯、位操作、移位、測試、旋轉(zhuǎn)等操作。A單元包括的存放器有以下4種類型:1)數(shù)據(jù)頁存放器(DataPageRegister):DPH、DP、〔接口數(shù)據(jù)頁〕PDP2)指針存放器(Pointers):CDPH、CDP—系數(shù)數(shù)據(jù)、SPH、SP、SSP—棧、XAR0~XAR7—輔助3)循環(huán)緩沖存放器(CircularBufferRegisters):BK03、BK47、BKC—大小,BSA01、BSA23、BSA45、BSA67、BSAC—起始地址4)臨時存放器(TemporaryRegisters):T0~T3第二章DSP芯片結(jié)構(gòu)和CPU外圍電路4、數(shù)據(jù)計算單元(DUnit)D單元包括了CPU的主要計算部件,能夠完成高效的計算功能。組成:移位器、40比特算術(shù)邏輯ALU電路、兩個乘累加器(MAC)和假設(shè)干存放器組構(gòu)成。移位器D單元移位器能夠接收來自I單元的立即數(shù),與存儲器、I/O空間、A單元存放器、D單元存放器和P單元存放器進(jìn)行雙向通信。此外,還向D單元的ALU和A單元的ALU提供移位后的數(shù)據(jù)。數(shù)據(jù)計算單元結(jié)構(gòu)圖第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2.1.3CPU外圍電路:除CPU以外的一些功能單元和外部接口。

時鐘發(fā)生器(Clock)

定時器(Timer)

多通道緩沖串口(McBSP)

主機接口(EHPI)

外部存儲器接口(EMIF)

通用輸入/輸出口(GPIO)

片內(nèi)存儲區(qū)(Momery)DMA控制器高速指令緩沖存儲器

(Instructioncache)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路時鐘發(fā)生器1、工作模式(1)功能將輸入時鐘CLKIN變?yōu)镃PU及外圍電路所需要的工作時鐘。通過時鐘輸出腳CLKOUT輸出,供其它器件使用。(2)組成時鐘發(fā)生器由一個數(shù)字鎖相環(huán)(DPLL)和一個模式控制存放器(CLKMD)組成。DPLLCLKMD寄存器CLKINpinCLKOUTpinCLKMDpin第二章DSP芯片結(jié)構(gòu)和CPU外圍電路(3)兩種工作模式(模式控制存放器標(biāo)志位的定義)假設(shè)PLL_ENABLE=0,DPLL工作于旁路(BYPASS)模式。假設(shè)PLL_ENABLE=1,DPLL工作于鎖定(LOCK)模式。旁路模式中:DPLL只對輸入時鐘CLKIN作簡單的分頻,分頻次數(shù)由BYPASS_DIV字段確定。假設(shè)BYPASS_DIV=00,為一分頻,即CLKOUT等于CLKIN。假設(shè)BYPASS_DIV=01,為二分頻,即CLKOUT等于CLKIN的一半。假設(shè)BYPASS_DIV=1x,為四分頻,即CLKOUT等于CLKIN的四分之一。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路鎖定模式中DPLL鎖相環(huán)對輸入時鐘CKLIN進(jìn)行跟蹤鎖定,可得到如下輸出的時鐘頻率:PLL_MULT:鎖定模式下的倍頻次數(shù),取值0到31PLL_DIV:鎖定模式下的分頻次數(shù),取值0到3。CLKOUT=PLL_MULTPLL_DIV+1×CLKIN1<PLL_MULT≤31時CLKOUT=1PLL_DIV+1×CLKINPLL_MULT=0或1時5比特2比特第二章DSP芯片結(jié)構(gòu)和CPU外圍電路4、使用方法(1)DSP復(fù)位對時鐘發(fā)生器的影響在DSP復(fù)位期間和復(fù)位后,DPLL工作于旁路模式,此時的分頻次數(shù)(BYPASS_DIV)由CLKMD管腳上的電平確定,從而確定了它的輸出時鐘頻率。假設(shè)CLKMD管腳為低電平,那么BYPASS_DIV=00,CLKOUT等于CLKIN。假設(shè)CLKMD管腳為高電平,那么BYPASS_DIV=01,CLKOUT等于CLKIN的一半。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路(2)失鎖對時鐘發(fā)生器的影響鎖相環(huán)是通過對輸入基準(zhǔn)時鐘進(jìn)行跟蹤鎖定來穩(wěn)定其輸出時鐘的,在鎖定之后,由于某些因素使其輸出時鐘發(fā)生偏移,即失鎖。發(fā)生失鎖時,DPLL的動作由IOB字段控制:假設(shè)IOB=1,時鐘電路會自動切換到旁路模式,并重新開始跟蹤鎖定過程,在鎖定后又自動切換回鎖定模式。假設(shè)IOB=0,DPLL會繼續(xù)輸出時鐘,而不管鎖相環(huán)是否失鎖第二章DSP芯片結(jié)構(gòu)和CPU外圍電路(3)省電狀態(tài)對時鐘發(fā)生器的影響當(dāng)時鐘發(fā)生器退出省電(IDLE)狀態(tài)時,不管進(jìn)入省電狀態(tài)之前工作于什么模式,DPLL都會切換到旁路模式,并由IAI字段確定進(jìn)一步操作:假設(shè)IAI=1,DPLL將重新開始整個跟蹤鎖定過程。假設(shè)IAI=0,DPLL將使用與進(jìn)入省電模式之前相同的設(shè)置進(jìn)行跟蹤鎖定第二章DSP芯片結(jié)構(gòu)和CPU外圍電路5、DPLL模式控制存放器CLKMD(1)BREAKLN為失鎖指示(只讀)0:表示由于某種原因引起PLL失鎖;1:表示處于鎖定狀態(tài),或發(fā)生對CLKMD存放器的寫操作。(2)LOCK為鎖定模式指示(只讀)0:表示DPLL處于旁路模式1:表示DPLL處于鎖定模式第二章DSP芯片結(jié)構(gòu)和CPU外圍電路6、時鐘發(fā)生器應(yīng)用舉例問題:假定輸入時鐘頻率CLKIN為20MHz,而DSP需要的工作時鐘為160MHz。解:(1)需要將時鐘發(fā)生電路設(shè)為鎖定模式;(2)根據(jù)倍頻次數(shù)PLL_MULT與分頻次數(shù)PLL_DIV的關(guān)系CLKOUT=PLL_MULTPLL_DIV+1×CLKIN1<PLL_MULT≤31時PLL_MULT=8×(PLL_DIV+1)PLL_DIV和PLL_MULT為(0,8),(1,16),(2,24)或(3,32)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路(3)取PLL_DIV和PLL_MULT為(0,8),要求DPLL失鎖或退出省電狀態(tài)后重新鎖定,即IOB=IAI=1。例程如下:MOV#0X6413,PORT(#CLKMD)01100100000100111000100011第二章DSP芯片結(jié)構(gòu)和CPU外圍電路通用定時器一、組成和框圖C5509DSP片內(nèi)有兩個定時器:Timer0,Timer1;具有定時或計數(shù)功能。計數(shù)器在每個時鐘周期減1,當(dāng)減到0就產(chǎn)生一個輸出信號。該輸出信號可用于中斷CPU或觸發(fā)DMA傳輸(稱為定時器事件)。定時器由時鐘、控制存放器、計數(shù)器和定時器事件等局部構(gòu)成。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路4比特預(yù)定標(biāo)器TIN/TOUT16比特主計數(shù)器CPU中斷DMA同步事件CPU時鐘1、時鐘局部可采用內(nèi)部CPU時鐘;也可采用來自TIN/TOUT管腳的外部輸入時鐘。2、兩個定時器一個用于定時器工作(遞減方式)一個用于CPU讀寫(設(shè)置定時長度)3、定時器事件產(chǎn)生三個輸出信號:CPU中斷、DMA同步事件、TIN/TOUT管腳輸出信號。第六章DSP芯片內(nèi)的CPU外圍電路二、時鐘局部定時器的工作時鐘可來自DSP內(nèi)部的CPU時鐘,也可來自TIN/TOUT管腳輸入的外部時鐘。具體時鐘源的選擇和TIN/OUT管腳的功能由控制存放器TCR中的FUNC字段確定。FUNC=00時,TIN/TOUT為高阻態(tài),時鐘源為CPU時鐘。該模式為復(fù)位后的缺省模式。FUNC=01時,TIN/TOUT為定時器輸出,時鐘源為CPU時鐘,可以輸出時鐘信號或脈沖信號。FUNC=10時,TIN/TOUT為通用輸出,時鐘源為CPU時鐘。此時,TIN/OUT作為通用輸出,其電平由控制存放器TCR中的DATOUT字段確定。FUNC=11時,TIN/TOUT為時鐘源輸入,定時計數(shù)器將在其上升沿遞減。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路三、計數(shù)器局部C5509定時器的計數(shù)器分為兩類:一類用于定時器工作,一類用于CPU設(shè)置定時長度。定時長度為20比特:4比特的預(yù)定標(biāo)器和16比特的主計數(shù)器。其中,4比特的預(yù)定標(biāo)值由預(yù)定標(biāo)存放器PRSC定義:16比特主定時器的值由定時周期存放器PRD定義。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路定時器的工作方式設(shè)定時器的工作時鐘周期為Tclock,那么定時長度T可用下式計算:定時器的設(shè)置步驟CPU將定時長度的預(yù)定標(biāo)值和周期值分別寫入TDDR和PRD將控制存放器TCR中的TLB設(shè)為1,使定時器把PRD值和TDDR值分別拷貝到它的工作存放器TIM和PSC中。把控制存放器TCR中的TSS字段設(shè)為0啟動定時器。T=Tclock×(PRD+1)×(TDDR+1)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路四、定時器控制存放器TCRIDLE_EN:省電控制使能位,0:禁止省電模式,1:允許省電模式INT/EXT:時鐘源從內(nèi)部切換到外部的指示標(biāo)志,當(dāng)時鐘源從內(nèi)部切換到外部要檢測此位來決定是否準(zhǔn)備好使用外部時鐘。0:定時器沒準(zhǔn)備好使用外部時鐘,1:定時器準(zhǔn)備好使用外部時鐘。ERR_TIM:定時器錯誤標(biāo)志,0:正常,1:錯誤第二章DSP芯片結(jié)構(gòu)和CPU外圍電路FUNC:定時器工作模式選擇;TLB:定時長度拷貝控制,0:停止拷貝,1:拷貝SOFT和FREE:在仿真時遇到高級語言調(diào)試器斷點時的處理方式00:定時器立刻停止01和11:定時器繼續(xù)運行10:在主計數(shù)器TIM減為0時停止。PWID:TIN/TOUT管腳輸出脈沖的寬度。當(dāng)PWID=00時,TIN/TOUT輸出脈寬為1個CLKOUT周期當(dāng)PWID=01時,TIN/TOUT輸出脈寬為2個CLKOUT周期當(dāng)PWID=10時,TIN/TOUT輸出脈寬為4個CLKOUT周期當(dāng)PWID=11時,TIN/TOUT輸出脈寬為8個CLKOUT周期第二章DSP芯片結(jié)構(gòu)和CPU外圍電路ARB:自動重裝控制。0:不自動重裝,1:自動重裝,即每次TIM減為0時,定時器又會把PRD值和TDDR值分別拷到TIM和PSC,繼續(xù)定時。TSS:定時器停止控制,0:啟動,1:停止C/P:TIN/TOUT引腳輸出脈沖/時鐘選擇,0:輸出脈沖,1:輸出時鐘。POLAR:TIN/TOUT引腳輸出信號的極性,0:正極性,1:負(fù)極性DATOUT:TIN/TOUT引腳作通用輸出時的電平,0:低電平,1:高電平第二章DSP芯片結(jié)構(gòu)和CPU外圍電路五、應(yīng)用舉例

假定定時器0的工作時鐘為160MHz,請配置定時長度為5ms的定時器。解:根據(jù)定時器公式:即(PRD+1)×(TDDR+1)=800000取TDDR=15(0x0F)、PRD=49999(0xC34F)。完成這一定時長度的程序如下:

MOV#0x000f,PORT(#PRSC0);寫入預(yù)定標(biāo)值。MOV#0xc34f,PORT(#PRD0);寫入周期值MOV#0x0fd0,PORT(#TCR0);將PRD0和TDDR0分別拷貝到TIM0和PSC0MOV#0x0Bc0,PORT(#TCR0);TLB=TSS=0,停止拷貝,開始定時第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2.4外部存儲器接口EMIF

TMS320C5509DSP的外部存儲器接口EMIF有:

16位的數(shù)據(jù)總線D[15:0];

4個片選輸出CE[3:0]和其它多種控制信號。能支持多種不同類型的外部存儲器件。片選空間EMIF接口的4個片選空間對應(yīng)的地址如以下圖。ST3_55中的MPNMC字段控制片內(nèi)ROM的使用

1:CE3空間長度為4MB0:后32KB空間被片上ROM占用。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路一、與外部存儲器接口方法C5510DSP的外部存儲器接口EMIF可以提供高度靈活的接口方式,每個片選都可以連接不同類型的存儲器件,單獨設(shè)置讀寫時序參數(shù)等。支持的接口有:

包括異步SRAM、ROM、FLASH(閃速存儲器)、EPROM等,EMIF能夠提供可配置的定時參數(shù),提供高度靈活的存儲器時序。每個接口都可以支持程序代碼訪問32bit數(shù)據(jù)訪問、16bit數(shù)據(jù)訪問、8bit數(shù)據(jù)訪問。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路1、片選控制存放器CEx_1(x=0~3)根據(jù)片選控制存放器中的MTYPE段來設(shè)置訪問類型。MTYPE=000:異步,8比特寬MTYPE=001:異步,16比特寬MTYPE=010:保存MTYPE=011:16比特寬的SDRAM第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2、異步存儲器接口方案:低電平有效的片選信號,用于指定要訪問的外部空間。CEn

ARDY:異步訪問就緒指示,使EMIF可以延緩異步訪問速度。A[13:0]:14位地址數(shù)據(jù)總線。:低電平有效的異步輸出使能信號,連接異步存儲器的輸出使能引腳。AOE:低電平有效的異步讀使能信號。ARE:低電平有效的異步寫使能信號。AWE:低電平有效的字節(jié)選擇信號,用于指定要訪問的字節(jié)位置。BE[3:0]D[15:0]:16位數(shù)據(jù)總線第二章DSP芯片結(jié)構(gòu)和CPU外圍電路EMIF的異步讀操作時序地址有效讀選通有效外部器件沒準(zhǔn)備好第二章DSP芯片結(jié)構(gòu)和CPU外圍電路EMIF的異步寫操作時序第二章DSP芯片結(jié)構(gòu)和CPU外圍電路與EMIF的異步接口有關(guān)的存放器全局控制存放器EGCR全局復(fù)位存放器EMI_RST總線錯誤狀態(tài)存放器EMI_BE片選0空間控制存放器1/2/3CE0_1/CE0_2/CE0_3片選1空間控制存放器1/2/3CE1_1/CE1_2/CE1_3片選2空間控制存放器1/2/3CE2_1/CE2_2/CE2_3片選3空間控制存放器1/2/3CE3_1/CE3_2/CE3_3第二章DSP芯片結(jié)構(gòu)和CPU外圍電路全局控制存放器EGCR〔控制4個片選空間的公共參數(shù)〕

MEMFREQ:同步存儲器的時鐘頻率,00:CLKEM是DSPCPU時鐘

01:DSP時鐘的2分頻。

WPE:后寫使能,0:禁止,1:使能

MEMCEN:同步存儲器時鐘輸出使能,決定CLKMEM是否使用

ARDY:ARDY管腳上的輸入電平,0:外部器件沒有準(zhǔn)備好,1:表示準(zhǔn)備好。

HOLD_:HOLD_管腳上的輸入電平。

HOLDA_:HOLDA_管腳上的輸出電平。表示DSP對外部總線征用的響應(yīng)。

NOHOLD:外部總線征用使能。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路總線錯誤狀態(tài)存放器EMI_BE〔標(biāo)志總線錯誤的類型和位置〕如果訪問出錯,置位存放器中相應(yīng)的標(biāo)志位,表示出錯的原因TIME:超時錯誤CE3/CE2/CE1/CE0:表示訪問CE3/CE2/CE1/CE0出錯。DMA:DMA出錯FBUS/EBUS/DBUS/CBUS:表示CPU讀或?qū)戇@些總線出錯。PBUS:程序總線出錯。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路EMIF全局復(fù)位存放器EMI_RST任何對EMI_RST存放器的寫操作都會復(fù)位EMIF狀態(tài)機,但是不改變當(dāng)前的配置,此存放器不可讀。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路片選控制存放器CEx_1(x=0~3)

MTYPE:存儲器的類型READSETUP:讀建立時間,1~15個DSP時鐘周期READSTROBE:讀選通時間,1~15個DSP時鐘周期READHOLD:讀保持時間,0~3個DSP時鐘周期第二章DSP芯片結(jié)構(gòu)和CPU外圍電路片選控制存放器CEx_2(x=0~3)READEXTENDEDREAD:讀延長保持時間,1~3個DSP時鐘周期WRITEEXTENDEDREAD:寫延長保持時間,1~3個DSP時鐘周期WRITESETUP:寫建立時間,1~15個DSP時鐘周期WRITESTROBE:寫選通時間,1~15個DSP時鐘周期WRITEHOLD:寫保持時間,0~3個DSP時鐘周期第二章DSP芯片結(jié)構(gòu)和CPU外圍電路片選控制存放器CEx_3(x=0~3)TIMEOUT:從選通STROBE的第三個周期開始,假設(shè)在TIMEOUT個周期后,仍沒有響應(yīng),視為訪問超時錯誤。0表示不允許超時,僅對異步存儲器起作用。注意:三個片選控制存放器中除MTPYE外,其它僅對異步存儲器的時序階段設(shè)置,對同步存儲器不影響。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路3、同步動態(tài)RAM接口

SDRAM是一種高密度,高速率的同步動態(tài)RAM,它按行列的方式來組織存儲陣列,并通過行列地址對數(shù)據(jù)讀寫。C5509的EMIF能支持容量為64Mbit或128Mbit寬度為16位的SDRAM。5、應(yīng)用舉例問題:假定有一個16位寬的異步SRAM接在EMIF的片選空間1(CE1)上,要求將C5509片內(nèi)DARAM中從地址000060H開始的200個16位的數(shù),寫入該SRAM中從地址208800h開始的數(shù)據(jù)區(qū)域中。解:MOV#0x0000,PORT(#EMI_RST);復(fù)位EMIF狀態(tài)機等待100個周期

RPT#99;單指令無條件重復(fù),下條指令重復(fù)99+1=100次NOP;空操作指令,需要的周期數(shù)為1

MOV#0x000f,PORT(#EGCR);禁止同步時鐘和總線占用請求

MOV#0x121D,PORT(#CE1_1);MTYPE=001,16位異步存儲器,;RSETUP=2,RSTROBE=7,RHOLD=1

MOV#0319,PORT(#CE1_2);沒有延長保持時間,;;WSETUP=3,WSTROBE=6,WHOLD=1

MOV#0x001F,PORT(#CE1_3);TIMEOUT=31第二章DSP芯片結(jié)構(gòu)和CPU外圍電路AMOV#000060h,XAR0AMOV#208800h,XAR2RPT#199MOVdbl(*AR0+),dbl(*AR2+);利用AR間接尋址,生存地址之后+1NOP第二章DSP芯片結(jié)構(gòu)和CPU外圍電路作業(yè):假定有一個16位寬的異步SRAM接在EMIF的片選空間1(CE1)上,要求如下:

將C5510片內(nèi)DARAM中從地址000060H開始的100個16位的數(shù),寫入該SRAM中從地址208800h開始的數(shù)據(jù)區(qū)域中。讀/寫建立、讀/寫選通、讀/寫保持時間均為3個DSP時鐘周期。讀/寫延長保持時間為2個DSP時鐘周期設(shè)計任務(wù):(1)畫出EMIF與該SRAM接口連接圖

(2)試編寫完成設(shè)計要求的程序第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2.5增強型主機接口EHPIC5509DSP有一個16位的增強型主機接口EHPI,可與外部主機相連,使DSP系統(tǒng)受控于外部主機。EHPI主要有:地址存放器HPIA,數(shù)據(jù)存放器HPID,控制存放器HPIC和控制邏輯構(gòu)成。通過專門的EHPI通道與DSP內(nèi)的DMA控制器相連,使主機能夠訪問DSP的片內(nèi)存儲空間和局部外部存儲空間。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路一、地址/數(shù)據(jù)14位的地址總線HA[13:0]:可以訪問16K×16的存儲空間數(shù)據(jù)總線HD[15:0]:用于連接外部主機和內(nèi)部的數(shù)據(jù)存放器HPID,支持8比特、16比特的數(shù)據(jù)訪問。字節(jié)選擇信號HBE[1:0]:用于選擇訪問的字節(jié)HBE[1:0]=00:按字的方式訪問,使用16位數(shù)據(jù)總線HD[15:0]HBE[1:0]=01:訪問字的高8位,使用數(shù)據(jù)總線的高8位HD[15:8]HBE[1:0]=10:訪問字的低8位,使用數(shù)據(jù)總線的低8位HD[7:0]第二章DSP芯片結(jié)構(gòu)和CPU外圍電路二、選通信號EHPI的選通信號包括片選信號HCS_:低電平有效,表示地址線和控制線上的輸入為有效輸入。數(shù)據(jù)選通HDS1_和HDS2_:用于控制主機訪問期間的數(shù)據(jù)傳遞。以兩個信號的異或非為準(zhǔn),低電平有效,脈沖寬度至少為2個DSP時鐘周期。地址選通HAS_:只是在復(fù)用模式下使用(與地址線HA2共用一個管腳),EHPI在其上升沿有效,將數(shù)據(jù)總線上的信號鎖存到地址存放器HPIA中。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路三、控制信號1、就緒信號HRDYHRDY為低電平:表示EHPI忙,主機需要插入等待時間HRDY為高電平:表示EHPI已完本錢次數(shù)據(jù)傳輸,主機可以再次發(fā)起訪問。2、讀寫信號HR/W_HR/W_為高電平:主機讀EHPI。HR/W_為低電平:主機寫EHPI。3、主機中斷信號HINT_用于DSP向主機發(fā)送負(fù)脈沖形式的中斷信號。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路4、存放器訪問選擇HCNTL0和HCNTL1(用于選擇訪問的存放器)在非復(fù)用模式下只使用HCNTL0HCNTL0為低電平:訪問EHPI控制存放器HPIC。HCNTL0為高電平:訪問EHPI數(shù)據(jù)存放器HPID。在復(fù)用模式下,使用HCNTL0和HCNTL1來選擇要訪問的存放器HCNTL[1:0]=00:訪問EHPI控制存放器HPIC。HCNTL[1:0]=01:按地址遞增的方式訪問數(shù)據(jù)存放器HPID。HCNTL[1:0]=10:訪問地址存放器HPIA。HCNTL[1:0]=11:按隨機地址方式訪問數(shù)據(jù)存放器HPID。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路四、EHPI的存放器16位的地址存放器HPIA:用于在復(fù)用模式下存放地址。工作于自動遞增模式時,HPIA的值在每次訪問后自動加1,因此,只需要設(shè)置數(shù)據(jù)塊的起始地址,就可以訪問一連續(xù)存放的數(shù)據(jù)。16位的數(shù)據(jù)存放器HPID:用于存放讀寫的數(shù)據(jù)。16位的控制存放器HPIC15~2:reserved:保存1:DSPINT:主機對DSP的中斷,0:去除中斷;1:向DSP發(fā)送中斷請求。0:reserved:保存第二章DSP芯片結(jié)構(gòu)和CPU外圍電路五、EHPI對DSP的復(fù)位DSP的復(fù)位信號來自RESET管腳,當(dāng)復(fù)位信號為低電平時,DSP復(fù)位。六、接口時序

主機和DSP有兩種接口時序方式:非復(fù)用方式和復(fù)用方式。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路非復(fù)用模式HPID用于臨時存放要通過EHPI傳送的數(shù)據(jù)。如果是讀操作,那么HPID中裝有在DSP存儲區(qū)中讀到的數(shù)據(jù);如果是寫操作那么HPID中裝有要寫入DSP存儲區(qū)的數(shù)據(jù)。通過配置控制存放器HPIC可以向DSP發(fā)中斷,并且可以控制DSP的復(fù)位。要訪問HPIC必須使HCNTL0信號為低。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路復(fù)用模式(a)為信號被使用時的連接

(b)為高電平(不被使用)時的連接

第二章DSP芯片結(jié)構(gòu)和CPU外圍電路七、應(yīng)用舉例

用一片C5509(DSP1)的EMIF與另一片C5509(DSP2)的EHPI相連,DSP1為主機,采用非復(fù)用模式于DSP2通信,并由GPIO來選擇要訪問的對象(HPIC或數(shù)據(jù)空間)。要求DSP1向DSP2中的緩沖區(qū)寫入一段數(shù)據(jù)后用中斷方式通知DSP2對該段數(shù)據(jù)進(jìn)行處理。假定DSP1中的數(shù)據(jù)緩沖區(qū)起始地址為000100h,長度為100個字;DSP2中的數(shù)據(jù)緩沖區(qū)的起始地址為000060,長度為200個字。(連接方式如教材32頁所示)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路DSP1中完成該任務(wù)的程序如下:MOV#0x000100,XAR0;源地址MOV#0x200060,XAR1;目標(biāo)地址,采用CE1,起始地址為20000hMOV#0x0001,port(#IODIR);配置GPIO0為輸出MOV#0x0001,port(#IODATA);GPIO0輸出高電平RPT#99MOV*AR0+,*AR1+MOV#0x0000,port(#IODATA);GPIO輸出低電平,要訪問DSP2的HPICMOV#0x0003,*AR1;DSPINT=1,向DSP2發(fā)中斷。RPT#3NopMOV#0x0001,*AR1;DSPINT=0,停止向DSP2發(fā)中斷GPIO0和HCNTL0相連,HCNTL0=1,訪問數(shù)據(jù)區(qū)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2.6多通道緩沖串口McBSP一、概述1、McBSP的功能全雙工通信雙緩沖數(shù)據(jù)存放器,允許連續(xù)的數(shù)據(jù)流。收發(fā)獨立的幀信號和時鐘信號可以與工業(yè)標(biāo)準(zhǔn)的編/解碼器,以及其它串行A/D、D/A接口數(shù)據(jù)傳輸可以利用外部時鐘、或是片內(nèi)的可編程時鐘。利用DMA為McBSP效勞時,串口數(shù)據(jù)讀寫具有自動緩沖能力。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2、其它的特點可與多達(dá)128個通道進(jìn)行收發(fā);支持傳輸?shù)臄?shù)據(jù)字長可以是8bit、12bit、16bit、20bit、24bit、32bit

內(nèi)置u律和A律壓擴(kuò)硬件。

對8bit數(shù)據(jù)的傳輸,可選擇LSB先傳,還是MSB先傳。可設(shè)置幀同步信號和數(shù)據(jù)時鐘信號的極性。內(nèi)部傳輸時鐘和幀同步信號可編程程度高。u律〔m-Law〕壓擴(kuò)主要用在北美和日本等地區(qū)的數(shù)字通信中。m為確定壓縮量的參數(shù),它反映最大量化間隔和最小量化間隔之比。A律〔A-Law〕壓擴(kuò)主要用在歐洲和中國大陸等地區(qū)的數(shù)字通信中。A為確定壓縮量的參數(shù),它反映最大量化間隔和最小量化間隔之比。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路一、根本結(jié)構(gòu)C5509有三個多通道緩沖串口McBSP,每個McBSP可以分為收發(fā)通道、時鐘與幀同步、多通道選擇和串口事件等4局部。McBSP在外部通過假設(shè)干管腳與其它串行器件相連,在內(nèi)部通過16位的外設(shè)總線與CPU和DMA控制器相連。外時鐘第二章DSP芯片結(jié)構(gòu)和CPU外圍電路1、收發(fā)通道接收通道由接收數(shù)據(jù)管腳DR、接收時鐘CLKR、接收幀同步FSR、接收移位存放器RSR、接收緩沖存放器RBR和數(shù)據(jù)接收存放器DRR組成。發(fā)送通道由發(fā)送數(shù)據(jù)管腳DX、發(fā)送時鐘CLKX、發(fā)送幀同步FSX、發(fā)送移位存放器XSR和數(shù)據(jù)發(fā)送存放器DXR組成。數(shù)據(jù)壓擴(kuò)器,對發(fā)送的數(shù)據(jù)按μ律或A律壓縮再發(fā)送,對接收的數(shù)據(jù)進(jìn)行擴(kuò)展。是個可選項,可通過控制存放器進(jìn)行選擇。McBSP的收發(fā)通道是相對獨立的,可單獨使用,也可同時使用。可根據(jù)要求對相應(yīng)的存放器進(jìn)行配置。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2、接收通道接收的數(shù)據(jù)到達(dá)管腳DR,在接收時鐘CLKR的上升沿(或下降沿)被逐位依次移入RSR。收滿一個字后,被拷貝到緩沖存放器RBR,再拷貝到數(shù)據(jù)接收存放器DRR,同時設(shè)置接收標(biāo)志位RRDY,并通過串口事件通知CPU或DMA已經(jīng)接到數(shù)據(jù)。CPU或DMA可以通過外設(shè)總線從DRR讀取接收到的數(shù)據(jù)。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路3、發(fā)送通道CPU或DMA將數(shù)據(jù)寫入數(shù)據(jù)發(fā)送存放器DXR,接著拷貝到發(fā)送移位存放器XSR,在發(fā)送幀同步FSX后,CLKR的上升沿(或下降沿)到來時,XSR的內(nèi)容被逐位依次移到發(fā)送管腳DX上。同時,McBSP也會設(shè)置發(fā)完標(biāo)志XRDY,并通過串口事件通知CPU或DMA數(shù)據(jù)已發(fā)出去。這種多級緩沖方式使得片內(nèi)的數(shù)據(jù)搬移和外部數(shù)據(jù)的通信可以同時進(jìn)行。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路4、時鐘與幀同步(時鐘和幀同步具有靈活的信號形式和設(shè)置手段)McBSP的時鐘與幀同步由一組存放器和一個采樣速率發(fā)生器SRG組成。用戶可以通過存放器設(shè)定相應(yīng)的參數(shù),采樣速率發(fā)生器SRG就會根據(jù)這些參數(shù)將輸入?yún)⒖紩r鐘變?yōu)樗枰拇跁r鐘和幀同步信號。(1)采樣速率發(fā)生器的輸入?yún)⒖紩r鐘SRG的工作原理:通過對輸入?yún)⒖紩r鐘進(jìn)行分頻得到所需要串口時鐘和幀同步信號。可供選擇的輸入?yún)⒖紩r鐘有4個。來自CLKX腳的發(fā)送時鐘來自CLKR腳的接收時鐘來自CLKS腳的輸入時鐘(外時鐘)來自時鐘發(fā)生器的CPU時鐘第二章DSP芯片結(jié)構(gòu)和CPU外圍電路究竟選用哪個時鐘,由采樣速率發(fā)生存放器2(SRGR2)中的CLKSM字段和管腳控制存放器(PCR)中的SCLKME字段來確定。當(dāng)SCLKME=0,CLKSM=0時,選擇CLKS腳上的輸入信號為輸入?yún)⒖紩r鐘;當(dāng)SCLKME=0,CLKSM=1時,選擇CPU時鐘作為參考時鐘;當(dāng)SCLKME=1,CLKSM=0時,選擇CLKR腳上的時鐘為參考時鐘;當(dāng)SCLKME=1,CLKSM=1時,選擇CLKX腳上的時鐘為參考時鐘。(2)采樣速率發(fā)生器的輸出時鐘和幀同步輸入的參考時鐘經(jīng)過分頻產(chǎn)生SRG輸出時鐘CLKG。分頻次數(shù)由采樣速率發(fā)生存放器1(SRGR1)中的CLKDV字段(8bit)根據(jù)如下公式?jīng)Q定:FCLKG=Fclocksource/(CLKDV+1),1≤CLKGDV≤255串口的最高時鐘速率為CPU時鐘的一半第二章DSP芯片結(jié)構(gòu)和CPU外圍電路幀同步信號FSG由CLKG進(jìn)一步分頻而來,分頻次數(shù)由采樣速率發(fā)生存放器2(SRGR2)中的FPER(12bit)字段根據(jù)如下公式確定:幀同步脈沖的寬度由抽樣速率發(fā)生存放器1〔SRGR1〕中的FWID字段確定:

抽樣速率發(fā)生器產(chǎn)生的時鐘和幀同步信號既可以用來驅(qū)動接收通道的時鐘和幀同步,也可以用來驅(qū)動發(fā)送通道的時鐘和幀同步。FFSG=FCLKG/(FPER+1)=Fclocksource/(CLKDV+1)(FPER+1)0≤FPER≤4095WFSG=(FWID+1)×TCLKG0≤FWID≤255,TCLKG為CLKG的周期第二章DSP芯片結(jié)構(gòu)和CPU外圍電路(3)時鐘信號的方向性和極性時鐘管腳CLKX和CLKR的方向分別由管腳控制存放器(PCR)中的CLKXM和CLKRM字段控制,而CLKS管腳那么只能是輸入。當(dāng)CLKX(R)M=1時,CLKX(R)由CLKG驅(qū)動,為輸出;當(dāng)CLKX(R)M=0時,CLKX(R)由外部管腳驅(qū)動,為輸入。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路CLKX管腳和CLKR管腳上信號的極性分別由管腳控制存放器(PCR)中的CLKXP和CLKRP字段控制,CLKS管腳上信號的極性由采樣速率發(fā)生器2(SRGR2)中的CLKSP字段確定。CLKXP=CLKRP=CLKSP=0時,CLKX、CLKR和CLKS為正極性,以上升沿開始。CLKXP=CLKRP=CLKSP=1時,CLKX、CLKR和CLKS為負(fù)極性,以下降沿開始。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路(4)幀同步信號的方向和極性發(fā)送幀同步FSX的方向由管腳控制存放器(PCR)中的FSXM字段和采樣速率發(fā)生存放器2(SRGR2)中的FSGM字段共同確定。當(dāng)FSXM=0,F(xiàn)SGM=x時,F(xiàn)SX為輸入,由外部信號源驅(qū)動;當(dāng)FSXM=1,F(xiàn)SGM=0時,F(xiàn)SX為輸出,由DXR到XSR的拷貝動作驅(qū)動;當(dāng)FSXM=1,F(xiàn)SGM=1時,F(xiàn)SX為輸出,由FSG驅(qū)動。發(fā)送幀同步FSX的極性由管腳控制存放器(PCR)中的FSXP字段確定。當(dāng)FSXP=0時,F(xiàn)SX為正極性,即高電平有效;當(dāng)FSXP=1時,F(xiàn)SX為負(fù)極性,即低電平有效。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路接收幀同步FSR的方向由管腳控制存放器(PCR)中的FSRM字段確定。當(dāng)FSRM=0時,F(xiàn)SR為輸入,由外部信號源驅(qū)動;當(dāng)FSRM=0時,F(xiàn)SR由內(nèi)部FSG驅(qū)動。接收幀同步FSR的極性由管腳控制存放器(PCR)中的FSRP字段確定。當(dāng)FSRP=0時,F(xiàn)SR為正極性,即高電平有效;當(dāng)FSRP=1時,F(xiàn)SR為負(fù)極性,即低電平有效.第二章DSP芯片結(jié)構(gòu)和CPU外圍電路(5)同步

SRG的輸入?yún)⒖紩r鐘可以是內(nèi)部時鐘(CPU時鐘),也可以是外部輸入時鐘(來自CLKX、CLKR或CLKS管腳)。當(dāng)采用外部時鐘源時,一般需要同步。同步與否由采樣速率發(fā)生器2(SRGR2)中的GSYNC字段控制。

當(dāng)GSYNC=0時,SRG將自由運行,并按CLKGDV、FPER和FWID等參數(shù)的配置產(chǎn)生輸出時鐘;

當(dāng)GSYNC=1時,CLKG和FSG將同步到外部輸入時鐘。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路5、多通道選擇(在一幀數(shù)據(jù)中,最多可包含128個數(shù)據(jù)單元,每個數(shù)據(jù)單元對應(yīng)一個通道)McBSP屬于多通道串口,最多可以有128個通道,其多通道選擇局部由多通道控制存放器MCR、接收通道使能存放器RCER和發(fā)送通道使能存放器XCER構(gòu)成。多通道控制存放器MCR作為總控制,可以禁止或使能全部128個通道。RCER和XCER可以分別禁止或使能某個接收和發(fā)送通道。每個存放器控制16個通道。因此,128個通道需要8個通道使能存放器。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路第二章DSP芯片結(jié)構(gòu)和CPU外圍電路6、串口事件McBSP可以發(fā)起6個串口事件接收中斷RINT發(fā)送中斷XINT接收同步事件REVTA_bis模式的接收同步事件REVTA發(fā)送同步事件XEVTA_bis模式的發(fā)送同步事件XEVTARINT和XINT與CPU相連,可以中斷CPUREVT、REVTA、XEVT和XINT那么與DMA控制器相連,可以用于DMA同步事件,觸發(fā)DMA傳輸?shù)诙翫SP芯片結(jié)構(gòu)和CPU外圍電路收發(fā)中斷的產(chǎn)生分別由串口控制存放器1(SPCR1)中的RINTM字段和串口控制存放器2(SPCR2)中的XINTM字段控制。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路用于DMA接收事件和發(fā)送事件的REVT、REVTA、XEVT和XEVTA那么分別由接收標(biāo)志RRDY和發(fā)送標(biāo)志XRDY兩個標(biāo)志觸發(fā)。其中:REVT和XEVT為McBSP工作于常規(guī)模式時的DMA同步事件REVTA和XEVTA為McBSP工作于A_bis模式時的DMA同步事件。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路二、工作模式根據(jù)McBSP在通信中所處的地位和功能,工作模式可分為:多通道緩沖模式

SPI模式

A-bis模式數(shù)字回環(huán)模式

GPIO模式省電模式第二章DSP芯片結(jié)構(gòu)和CPU外圍電路1、多通道緩沖模式是McBSP的一種常規(guī)模式。在此模式下,根據(jù)其所處的地位有可分為主方和從方。主方提供通信所需的時鐘和幀同步,所以其時鐘和幀同步都由內(nèi)部SRG驅(qū)動,為輸出;從方所需的時鐘和幀同步來自主方,其時鐘和幀同步由外部器件驅(qū)動,為輸入。在多通道緩沖模式下,傳輸由幀同步上升沿(或下降沿)觸發(fā),并在時鐘上升沿(或下降沿)收(發(fā))一個數(shù)據(jù)比特,支持1到128個傳輸通道的多通道傳輸。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2、SPI模式

SPI協(xié)議是一種主—從配置的,支持一個主方,一個或多個從方的串行通信協(xié)議。由4個信號構(gòu)成:串行數(shù)據(jù)輸入MISO(主設(shè)備輸入、從設(shè)備輸出)、串行數(shù)據(jù)輸出MOSI(主設(shè)備輸出、從設(shè)備輸入)

、移位時鐘SCK和從方使能SS。McBSP的時鐘停止模式:指其時鐘會在每次數(shù)據(jù)傳輸結(jié)束時停止,并在下次數(shù)據(jù)傳輸時立即啟動或延時半個周期后再啟動。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路3、A-bis模式A-bis模式是McBSP提供的一種比特域抽取—擴(kuò)展的工作模式。此模式下,McBSP能從一條PCM鏈路上接收或發(fā)送1024個比特。發(fā)送時,它將1024個有效數(shù)據(jù)比特按給定的發(fā)送圖案擴(kuò)展到PCM鏈路上;接收時,那么從PCM幀中按給定的接收圖案抽取出1024個有效比特。4、數(shù)字回環(huán)模式用于在只有一個DSP時,測試其McBSP的情況。數(shù)字回環(huán)DLB模式能在McBSP內(nèi)部將收發(fā)局部連在一起,即DR與DX、FSR、FSX、CLKX與CLKR,第二章DSP芯片結(jié)構(gòu)和CPU外圍電路在McBSP中有兩種回環(huán)在復(fù)位時,McBSP內(nèi)部將從圖中(1)的位置進(jìn)行回環(huán),此時假設(shè)向DXR寫一個數(shù),4個周期以后就能從DRR收到該數(shù)據(jù)。在復(fù)位以后,通過串口控制存放器1(SPCR1)中的DLB的控制使McBSP內(nèi)部從圖中(2)的位置進(jìn)行回環(huán)。當(dāng)DLB=0時,不回環(huán);當(dāng)DLB=1時,從位置(2)進(jìn)行回環(huán)。(1)(2)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路5、GPIO模式McBSP處于復(fù)位狀態(tài)時,它的7個管腳(書表6-22)在管腳控制存放器PCR和串口控制存放器SPCR的控制下可以用作通用輸入輸出(GPIO)。其中CLKX、CLKR、FSX和FSR既可設(shè)為輸入又可設(shè)為輸出,輸入/輸出電平值由相應(yīng)的極性控制位確定;DX只能為輸出;DR和CLKS那么只能為輸入。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路6、省電模式在C5509DSP總的省電控制和管腳控制存放器PCR中IDLE_EN的控制下,可以使McBSP進(jìn)入省電模式,以降低功耗。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路三、收發(fā)格式與參數(shù)設(shè)置幀同步有效表示一幀串行數(shù)據(jù)傳輸?shù)拈_始。每次收發(fā)數(shù)據(jù)傳輸都從幀同步開始,每個數(shù)據(jù)幀可以有兩個階段,即階段1和階段2,每個階段可有1到128個字,每個字可以是8、12、16、20、24、或32比特。每一幀最多傳送4096bit的數(shù)據(jù),因為FPER控制字段只有12bit。〔字段設(shè)置參見教材38頁,表2-21〕第二章DSP芯片結(jié)構(gòu)和CPU外圍電路數(shù)據(jù)比特的延遲:當(dāng)幀同步有效后,一般在其后的第一個時鐘周期啟動該幀的傳輸,如果需要,數(shù)據(jù)的發(fā)送/接收的起始時刻相對于幀信號的起始點可以存在一定的延時。延時范圍可以從0到2個周期的傳輸時鐘。對收發(fā)數(shù)據(jù)還可按μ律或A律進(jìn)行壓擴(kuò),選擇是MSB先還是LSB先由于收發(fā)通道存放器都是16位的,所以對字長缺乏或超過16比特的數(shù)據(jù)可以進(jìn)行左對齊或右對齊調(diào)整。選擇左對齊時,McBSP將用0填充LSB;選擇右對齊時,McBSP可以用0填充MSB,也可用符號擴(kuò)展方式填充MSB。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路四、異常處理每個多通道緩沖串口McBSP有以下5個事件會導(dǎo)致錯誤:接收過速,由標(biāo)志RFULL=1表示;接受幀同步錯誤,由標(biāo)志RSYNCERR=1表示;發(fā)送數(shù)據(jù)重寫;發(fā)送存放器空,由標(biāo)志=0表示;發(fā)送幀同步錯誤,由標(biāo)志XSYNCERR=1表示。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路1、接收過速是指在接收通道上的3個存放器已滿時造成的數(shù)據(jù)喪失,通過標(biāo)志RFULL=1來表示。因為RSR、RBR和DRR中都有數(shù)據(jù),所以當(dāng)下一個數(shù)據(jù)到來時就會覆蓋RSR使RSR中的數(shù)據(jù)喪失。2、發(fā)送數(shù)據(jù)重寫發(fā)送數(shù)據(jù)重寫是指CPU或DMA在DXR中的數(shù)據(jù)被拷貝到XSR之前又對DXR寫入新的數(shù)據(jù),使DXR中的數(shù)據(jù)被覆蓋而喪失。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路3、發(fā)送存放器空與發(fā)送數(shù)據(jù)重寫相對應(yīng),發(fā)送存放器空那么是由于CPU或DMA寫入太慢,使得發(fā)送幀同步出現(xiàn)時,DXR還未寫入新值,這樣XSR中的值就會不斷重發(fā),直到DXR寫入新值為止。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路4、接受幀同步錯誤接受幀同步錯誤是指在當(dāng)前數(shù)據(jù)幀的所有數(shù)據(jù)比特還未收完時出現(xiàn)了幀同步信號。由于幀同步表示一幀的開始,所以出現(xiàn)幀同步時,接收器就會停止當(dāng)前幀的接收并重新開始下一幀的接收,從而造成當(dāng)前幀數(shù)據(jù)的喪失。5、發(fā)送幀同步錯誤與接收幀同步錯誤相對應(yīng),發(fā)送幀同步錯誤是指當(dāng)前幀的所有數(shù)據(jù)比特未發(fā)送完之前出現(xiàn)了發(fā)送幀同步信號。此時,發(fā)送器將終止當(dāng)前幀的傳送,并重新開始下一幀的傳送。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路應(yīng)用舉例:利用McBSP0來發(fā)送一段數(shù)據(jù),要求如下:(1)采用多通道緩沖模式;(2)發(fā)送時鐘和幀同步由內(nèi)部采樣速率發(fā)生器驅(qū)動,接收時鐘和幀同步由外部輸入驅(qū)動;(3)發(fā)送時鐘速率為CPU時鐘速率的1/4,幀同步周期為18個CLKG,脈沖寬度為2個CLKG;(4)收發(fā)都是每幀1個階段,每階段1個字,字長16比特,不壓擴(kuò),1比特延遲;(5)采用查詢發(fā)送標(biāo)志XRDY和接收標(biāo)志RRDY的方式進(jìn)行收發(fā)。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路程序?qū)崿F(xiàn)分析:MOV#0x0000,PORT(#SPCR1_1);;設(shè)置串口控制存放器1,要求(1),RRST_=0:復(fù)位McBSP接收機MOV#0x0a00,PORT(#PCR_1);設(shè)置串口管腳控制存放器,要求(2)。;設(shè)置接收引腳,;FSXM=CLKXM=1,發(fā)送時鐘和幀同步由內(nèi)部驅(qū)動;;FSRM=CLKRM=0,接收時鐘和幀同步由外部驅(qū)動MOV#0x0103,PORT(#SRGR1_1);要求(3)。對采樣速率發(fā)生存放器設(shè)置;設(shè)置發(fā)送時鐘速率,;CLKGDV=(3)10=00000011,SRG輸出時鐘4分頻;;FWID=(1)10=00000001,幀同步脈沖的脈寬為2個CLKG周期0000000100000011第二章DSP芯片結(jié)構(gòu)和CPU外圍電路MOV#0x3011,PORT(#SRGR2_1);對采樣速率發(fā)生存放器2進(jìn)行設(shè)置;0011000000010001;CLKSM=1,選擇CPU時鐘為參考時鐘;FSGM=1,采用FSG做內(nèi)部幀同步驅(qū)動;FPER=(17)10=(000000010001)2MOV#0x0040,PORT(#XCR1_1);要求(4),對發(fā)送控制存放器1進(jìn)行設(shè)置;XFRLEN1=0000000,幀長為一個字;;XWDLEN1=010,字長為16比特MOV#0x0001,PORT(#XCR2_1);對發(fā)送控制存放器2進(jìn)行設(shè)置;XPHASE=0,每幀一個階段;0000000000000001;XDATDLY=01,發(fā)送時1比特延遲0000000001000000第二章DSP芯片結(jié)構(gòu)和CPU外圍電路MOV#0x0040,PORT(#RCR1_1);要求(4),對接收控制存放器1進(jìn)行設(shè)置,;RFRLEN1=0000000,幀長為一個字;;RWDLEN1=010,字長為16比特MOV#0x0001,PORT(#RCR2_1);對接收控制存放器2進(jìn)行設(shè)置,;RPHASE=0,每幀一個階段;RDATDLY=01,發(fā)送時1比特延遲MOV#0x0001,PORT(#MCR1_1);對多通道控制存放器1進(jìn)行設(shè)置,;無需多個通道。RMCM=1,不使能所有接收通道MOV#0x0001,PORT(#MCR2_1);對多通道控制存放器2進(jìn)行設(shè)置;;XMCM=01,不使能所用發(fā)送通道00000000010000000000000000000001第二章DSP芯片結(jié)構(gòu)和CPU外圍電路MOV#0x0040,PORT(#SPCR2_1);設(shè)置串口控制存放器2;GRST=1,啟動采樣速率發(fā)生器。MOV#0x00C1,PORT(#SPCR2_1);FRST=1,啟動幀同步。MOV#0x0041,PORT(#SPCR2_1);XRST=1,啟動發(fā)送器。MOV#0x0001,PORT(#SPCR1_1);RRST=1,啟動接收器;要求(5)XRDY_TRANSMIT:MOVPORT(#SPCR2_1),T0AND#0x0002,T0BCCRRDY_RECEIVE,T0==#0;假設(shè)XRDY=0,就去查RRDYMOV#0xAAAA,PORT(#DXR_1);假設(shè)XRDY=1,就發(fā)送一個數(shù)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路RRDY_RECEIVE:MOVPORT(#SPCR1_1),T0AND#0x0002,T0BCCRRDY_RECEIVE,T0==#0;假設(shè)RRDY=0,就去查XRDYMOVPORT(#DRR1_1),T1;假設(shè)RRDY=1,就接收一個數(shù)BXRDY_TRANSMIT第二章DSP芯片結(jié)構(gòu)和CPU外圍電路通用輸入輸出GPIO一、GPIO口C5509DSP配有一個專門的通用輸入輸出口GPIO。它由8個相互獨立的可編程管腳(IO0~IO7)構(gòu)成。GPIO口各個管腳的輸入或輸出由方向存放器IODIR設(shè)定,各個管腳上的輸入/輸出電平由存放器IODATA控制。IOxDIR:0-輸入,1-輸出IOxDATA:0-低電平,1-高電平第二章DSP芯片結(jié)構(gòu)和CPU外圍電路二、通過GPIO進(jìn)行自舉模式設(shè)定在C5509復(fù)位時,GPIO口的IO[3:1]還作為DSP自舉模式的設(shè)定,DSP在復(fù)位信號的上升沿采樣這三個管腳上的電平,并將它們鎖存到自舉模式存放器BOOT_MOD里。在采樣以后,這三個管腳就可用作通用輸入輸出了。三、GPIO的使用舉例MOV#0x0001,port(#IODIR);配置GPIO0為輸出MOV#0x0001,port(#IODATA);GPIO0輸出高電平DMA控制器第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2.8DMA控制器

通過4個端口和6個通道與DSP的IO資源相連。內(nèi)部通過32位寬的DMA總線互聯(lián)。能夠獨立于CPU工作,完成I/O資源間的數(shù)據(jù)傳輸,而不影響CPU執(zhí)行做其它的事情,類似于PC機的后臺處理。

有一個EHPI輔助端口和EHPI輔助通道,可以直接和主機相連,DMA的各個傳輸通道采用時分復(fù)用(TDM)的方式分享DMA總線。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路注意:

對于EMIF,SARAM,DARAM,外設(shè)和EHPI,除了EHPI與外設(shè)之間,以及EHPI與其本身不可以使用DMA外,其它相互之間以及自身都可以通過DMA搬運數(shù)據(jù)。(表6-39)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路一、EHPI通道EHPI端口和EHPI通道為主機專用。外部主機通過EHPI通道可以訪問EMIF、SARAM和DARAM。1、EPHI通道的優(yōu)先級的問題:通過對DMA全局控制存放器DMA_GCR,可以設(shè)置EHPI通道的優(yōu)先級。當(dāng)EHPIPRIO=0時,EHPI通道為低優(yōu)先級;當(dāng)EHPIPRIO=1時,EHPI通道為高優(yōu)先級。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2、EHPI通道與其余6個通道分享DSPIO資源的方式由DMA全局控制存放器(DMA_GCR)中的EHPIEXCL字段確定:EHPIEXCL=0時,為共享模式,即EHPI通道與DMA的其余通道共享EMIF、SARAM和DARAM;EHPIEXCL=1時,為獨占模式,即EHPI通道獨占SARAM和DARAM,其余DMA通道只能訪問EMIF和外設(shè)。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路二、DMA通道傳輸配置DMA通道的傳輸過程:先從數(shù)據(jù)源讀入數(shù)據(jù),放到通道的FIFO緩沖區(qū)里,然后再從FIFO緩沖區(qū)取出寫到目的端口。DMA控制器有兩套存放器:一套為配置存放器,供CPU寫入所需的配置值;一套為工作存放器,供DMA通道工作時使用。因此,DMA通道正在執(zhí)行數(shù)據(jù)傳輸時,CPU可以寫入下次傳輸?shù)呐渲脜?shù),而不影響正在進(jìn)行的傳輸。第六章DSP芯片內(nèi)的CPU外圍電路1、數(shù)據(jù)塊、幀和單元DMA通道一次傳輸一個數(shù)據(jù)塊(Block),該數(shù)據(jù)塊由假設(shè)干幀(Frame)構(gòu)成,每幀由假設(shè)干數(shù)據(jù)單元(Element)構(gòu)成,每個數(shù)據(jù)單元又由假設(shè)干比特構(gòu)成。每個數(shù)據(jù)塊包含的幀數(shù)由DMA通道數(shù)據(jù)幀數(shù)存放器(DMA_CFN)指定,范圍為1到65535幀。每幀包含的數(shù)據(jù)單元數(shù)由DMA通道數(shù)據(jù)單元數(shù)量存放器(DMA_CEN)指定,范圍為1到65535.數(shù)據(jù)單元的比特數(shù)由DMA通道參數(shù)存放器(DMA_CSDP)的DATATYPE指定當(dāng)DATATYPE=00時,每個數(shù)據(jù)單元長8比特;當(dāng)DATATYPE=01時,每個數(shù)據(jù)單元長16比特;當(dāng)DATATYPE=10時,每個數(shù)據(jù)單元長32比特。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路2、傳輸類型與數(shù)據(jù)打包DMA支持的數(shù)據(jù)傳輸類型有:8、16、24、32bit。問題:DMA總線寬度為32位,最多能支持兩個16位的或一個32位的數(shù)據(jù)傳輸,當(dāng)所傳輸?shù)臄?shù)據(jù)單元長度小于總線寬度時,DMA傳輸效率降低。比方8比特長數(shù)據(jù)單元的傳輸,4次才傳32比特。數(shù)據(jù)打包:將4個8比特單元打包成一個32比特的數(shù)據(jù)包,那么只需傳遞一次。提高了傳輸效率。通過DMA通道參數(shù)存放器(DMA_CSDP)中的DST(SRC)PACK字段可以設(shè)定數(shù)據(jù)打包功能。DST(SRC)PACK=0時,不打包;等于1時,對數(shù)據(jù)打包傳輸。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路3、目的端口和源端口的類型DMA通道傳輸?shù)哪康亩丝诤驮炊丝诘念愋陀蒁MA通道參數(shù)存放器(DMA_CSDP)中DST(SRC)字段指定。DST(SRC)=xx00時,目的(源)為SARAMDST(SRC)=xx01時,目的(源)為DARAMDST(SRC)=xx10時,目的(源)為EMIFDST(SRC)=xx11時,目的(源)為外設(shè)第二章DSP芯片結(jié)構(gòu)和CPU外圍電路4、數(shù)據(jù)源和目的地址DMA傳輸采用字節(jié)地址,每次傳輸?shù)臄?shù)據(jù)塊大小也是以字節(jié)為單位的。(1)DMA通道的數(shù)據(jù)源的起始地址

通道數(shù)據(jù)源的起始地址DMA_CSSA_L存放低16位地址通道數(shù)據(jù)源的起始地址DMA_CSSA_U存放高16位地址(2)DMA通道的目的起始地址

通道數(shù)據(jù)源的起始地址DMA_CDSA_L存放低16位地址通道數(shù)據(jù)源的起始地址DMA_CDSA_U存放高16位地址第二章DSP芯片結(jié)構(gòu)和CPU外圍電路(3)數(shù)據(jù)傳輸時地址的修改方式由DMA通道控制存放器DMA_CCR.DST(SRC)AMODE字段指定DST(SRC)AMODE=00時,目的(源)地址為固定地址;DST(SRC)AMODE=01時,目的(源)地址在每個單元傳輸完后自動加1;DST(SRC)AMODE=10時,目的(源)地址在每個單元傳輸完后自動遞增一個索引長度值。索引值由數(shù)據(jù)單元索引存放器(DMA_CEI)指定。DST(SRC)AMODE=11時,目的(源)地址按單元和幀進(jìn)行雙索引。索引值由數(shù)據(jù)單元索引存放器(DMA_CEI)和幀索引存放器(DMA_CFI)指定。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路5、單次傳輸與屢次傳輸DMA通道可以有單次傳輸和屢次傳輸兩種模式。單次傳輸:DMA通道在傳完一個數(shù)據(jù)塊以后就自動停止。屢次傳輸,DMA通道在傳完一個數(shù)據(jù)塊以后又會將配置參數(shù)從配置存放器拷到工作存放器,繼續(xù)傳輸下一個數(shù)據(jù)塊。一個DMA通道的傳輸模式由DMA通道控制存放器(DMA_CCR)中的AUTOINIT、ENDPROG和REPEAT字段控制。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路6、DMA傳輸?shù)膯优渲煤脗鬏攨?shù)后,兩種方法可以啟動DMA通道的數(shù)據(jù)傳輸。一種是由CPU直接將通道控制存放器(DMA_CCR)中的通道使能字段EN置為1,DMA通道就會立即開始傳輸;另一種是由外部DMA同步事件來觸發(fā)DMA通道的數(shù)據(jù)傳輸(如McBSP的XEVT事件等),此時DMA傳輸不會立即開始,而要等到指定的事件發(fā)生以后才會開始。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路C5509中共有20個DMA同步事件可以觸發(fā)DMA傳輸:6個外部中斷2個定時器中斷12個McBSP事件(每個串口4個)具體由哪個事件來觸發(fā),由通道控制存放器(DMA_CCR)中的同步字段SYNC來控制。此外,通過通道控制存放器(DMA_CCR)中的FS字段,還可以指定這些同步事件是與幀傳輸同步呢?還是與數(shù)據(jù)單元傳輸同步。對于前者,每次DMA同步事件觸發(fā)一個數(shù)據(jù)幀的傳輸;對于后者,那么觸發(fā)一個單元的傳輸。當(dāng)FS=0時,與數(shù)據(jù)單元傳輸同步;當(dāng)FS=1時,與數(shù)據(jù)幀傳輸同步。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路7、通道中斷與狀態(tài)DMA通道在傳輸過程中產(chǎn)生的各種狀態(tài)都會把通道狀態(tài)存放器DMA_CSR中相應(yīng)的標(biāo)志置為1。P51表2-38同時,在通道中斷控制存放器DMA_CICR的控制下,這些狀態(tài)都能觸發(fā)DMA通道中斷,使CPU能及時得到DMA傳輸?shù)臓顟B(tài)。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路三、存放器說明DMA控制器有兩套存放器,一套用于工作,一套用于CPU寫入配置參數(shù)。注意:用于工作的存放器是不能訪問的。第二章DSP芯片結(jié)構(gòu)和CPU外圍電路四、DMA應(yīng)用實例假定需要將位于SARAM中從字節(jié)地址20000h開始的32個16位的數(shù)搬到DARAM中從字節(jié)地址00c0h開始的數(shù)據(jù)緩沖區(qū),要求使用DMA通道1,并由CPU直接啟動,在傳完以后給C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論