寄存器中斷邏輯和定時器1_第1頁
寄存器中斷邏輯和定時器1_第2頁
寄存器中斷邏輯和定時器1_第3頁
寄存器中斷邏輯和定時器1_第4頁
寄存器中斷邏輯和定時器1_第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課后測試1. ADSP21160M外部存儲空間是從哪個地址開始的?由哪幾部分組成?ADSP21160M芯片上MS0MS3這4個引腳的作用是什么?2. ADSP21160M雙端口存儲器的容量是多少?可按哪幾種不同字寬模式訪問?3. 試寫出下面64位長字訪問語句執(zhí)行中,存儲單元和寄存器之間是如何交換數(shù)據(jù)的。 R11DM(0 x050014)()(LW)4. ADSP21160M如何使能SIMD操作?使能SIMD操作后處理器可以執(zhí)行哪些并行操作?處理器可以執(zhí)行哪些并行操作?答案1.答:ADSP21160M外部存儲空間是從0 x0800000開始的,由有分組區(qū)間和無分組區(qū)間組成,MS0MS3這4個引腳

2、分別是03組有分組區(qū)間的片選信號。2.答:ADSP21160M雙端口存儲器的容量是4Mb,可按64位(長字);48位(指令字);40位擴(kuò)展精度字;32位正常字;16位短字;這樣幾種不同字寬的模式進(jìn)行訪問。3.答:將地址單元0 x050014中的值R11, 將地址單元0 x050015中的值R10。4.答:MODE1模式控制寄存器的PEYEN位控制SIMD模式的使能。該位置1,就使能了SIMD; 1)將同一條指令同時發(fā)送到兩個處理單元;將同一條指令同時發(fā)送到兩個處理單元; 2)從存儲器載入兩組操作數(shù)分別送到兩個處理單元;從存儲器載入兩組操作數(shù)分別送到兩個處理單元; 3)同時在兩個處理單元里執(zhí)行同

3、一條指令;同時在兩個處理單元里執(zhí)行同一條指令; 4)將兩個運(yùn)算輸出結(jié)果同時保存到存儲器中;將兩個運(yùn)算輸出結(jié)果同時保存到存儲器中; ADSP21160ADSP21160寄存器寄存器 ADSP21160ADSP21160寄存器分類:寄存器分類:1 1)運(yùn)算單元寄存器)運(yùn)算單元寄存器2 2)系統(tǒng)控制和狀態(tài)寄存器)系統(tǒng)控制和狀態(tài)寄存器 3 3)程序控制寄存器)程序控制寄存器4 4)數(shù)據(jù)地址產(chǎn)生寄存器()數(shù)據(jù)地址產(chǎn)生寄存器(DAG1DAG1,DAG2DAG2) 5 5)I/OI/O處理器寄存器處理器寄存器 運(yùn)算單元寄存器運(yùn)算單元寄存器 運(yùn)算單元寄存器主要為運(yùn)算單元的ALU、乘法器、移位器保存輸入、輸出數(shù)

4、據(jù),主要包括:(1)通用數(shù)據(jù)寄存器Rx,Sx, Fx(x=015);(2)乘法結(jié)果寄存器MRFx, MRBx (x=02); 其中MRFx稱為前臺寄存器; MRBx稱為后臺寄存器; 主要用于存放80位定點(diǎn)乘法結(jié)果;注:通常也把總線交換寄存器PX,算作運(yùn)算單元寄存器;系統(tǒng)控制和狀態(tài)寄存器系統(tǒng)控制和狀態(tài)寄存器 主要功能是配置處理器核的操作模式,同時標(biāo)識處理器核的工作狀態(tài),作為條件程序執(zhí)行的判別條件。 對系統(tǒng)控制類寄存器的寫入操作有1個周期的延遲,在寫入后的第二個周期才有效。系統(tǒng)控制和狀態(tài)寄存器續(xù)系統(tǒng)控制和狀態(tài)寄存器續(xù)寄存器名寄存器名初始值初始值MODE1模式控制寄存器模式控制寄存器10 x0000

5、 0000MODE2模式控制寄存器模式控制寄存器20 xnn00 0000MMASK模式屏蔽寄存器模式屏蔽寄存器0 x0020 0000ASTATx,ASTATy運(yùn)算狀態(tài)寄存器運(yùn)算狀態(tài)寄存器0 x0000 0000STKYx,STKYy附加運(yùn)算狀態(tài)寄存器附加運(yùn)算狀態(tài)寄存器0 x0054 0000USTATx(x1-4)用戶定義狀態(tài)寄存器)用戶定義狀態(tài)寄存器0 x0000 0000MODE1寄存器的位定義表寄存器的位定義表Bit(s)NameDefinition0BR8索引寄存器索引寄存器I8位反序使能,位反序使能,1使能使能I8位反序?qū)ぶ?;位反序?qū)ぶ罚?正常尋址正常尋址1BR0索引寄存器索引寄

6、存器I0位反序使能,位反序使能,1使能使能I0位反序?qū)ぶ?;位反序?qū)ぶ罚?正常尋址正常尋址2SRCU運(yùn)算單元備用寄存器選擇,運(yùn)算單元備用寄存器選擇,1使能使能MR備用寄存器;備用寄存器;0只能用主只能用主MR寄存器寄存器3SRD1HDAG1高高4(74)寄存器備用使能,)寄存器備用使能,1使能備用寄存器,使能備用寄存器,0只使用主寄存器只使用主寄存器4SRD1LDAG1低低4(30)寄存器備用使能,)寄存器備用使能,1使能備用寄存器,使能備用寄存器,0只使用主寄存器只使用主寄存器5SRD2HDAG2高高4(74)寄存器備用使能,)寄存器備用使能,1使能備用寄存器,使能備用寄存器,0只使用主寄存器

7、只使用主寄存器6SRD2LDAG2低低4(30)寄存器備用使能,)寄存器備用使能,1使能備用寄存器,使能備用寄存器,0只使用主寄存器只使用主寄存器7SRRFH數(shù)據(jù)寄存器(數(shù)據(jù)寄存器(R15R8)備用選擇使能,)備用選擇使能,1使能備用寄存器;使能備用寄存器;0只使用主寄只使用主寄存器存器98 保留保留10SRRFL數(shù)據(jù)寄存器(數(shù)據(jù)寄存器(R7R0)備用選擇使能,)備用選擇使能,1使能備用寄存器;使能備用寄存器;0只使用主寄只使用主寄存器存器11NESTM中斷嵌套使能,中斷嵌套使能,1允許中斷嵌套;允許中斷嵌套;0禁止中斷嵌套禁止中斷嵌套12IRPTEN全局中斷使能,全局中斷使能,1使能所有可屏

8、蔽中斷;使能所有可屏蔽中斷;0禁止響應(yīng)所有可屏蔽中斷禁止響應(yīng)所有可屏蔽中斷MODE1寄存器的位定義表續(xù)寄存器的位定義表續(xù)Bit(s)NameDefinition13ALUSATALU飽和處理使能,飽和處理使能,1ALU定點(diǎn)溢出進(jìn)行飽和處理;定點(diǎn)溢出進(jìn)行飽和處理;0不進(jìn)行飽和處理不進(jìn)行飽和處理14SSE定點(diǎn)短字符號擴(kuò)展使能,定點(diǎn)短字符號擴(kuò)展使能,1符號擴(kuò)展到高符號擴(kuò)展到高16位;位;0高高16位填位填015TRUNC截取模式選擇,截取模式選擇,1靠近靠近0截??;截??;0截取到最近的數(shù)截取到最近的數(shù)16RND3232位浮點(diǎn)數(shù)據(jù)截取方式選擇,位浮點(diǎn)數(shù)據(jù)截取方式選擇,1截取到截取到32位;位;0截取到

9、截取到40位位1817CSELADSP總線控制狀態(tài),總線控制狀態(tài),00ADSP控制總線,控制總線,01,10,11ADSP不控制總線不控制總線2019 保留保留21PEYENSIMD模式使能,模式使能,1使能使能PEy計算單元,使能計算單元,使能SIMD;0禁止禁止PEy,SISD模式模式22BTCST9通過地址寄存器通過地址寄存器I9廣播使能,廣播使能,1將將PM總線上的數(shù)據(jù)廣播到兩個運(yùn)算單元的相總線上的數(shù)據(jù)廣播到兩個運(yùn)算單元的相應(yīng)寄存器中,應(yīng)寄存器中,0禁止廣播方式禁止廣播方式23BTCST1通過地址寄存器通過地址寄存器I0廣播使能,廣播使能,1將將DM總線上的數(shù)據(jù)廣播到兩個運(yùn)算單元的總線

10、上的數(shù)據(jù)廣播到兩個運(yùn)算單元的相應(yīng)寄存器中,相應(yīng)寄存器中,0禁止廣播方式禁止廣播方式24CBUFEN環(huán)形緩沖尋址使能,環(huán)形緩沖尋址使能,1使能環(huán)形緩沖尋址;使能環(huán)形緩沖尋址;0線性尋址線性尋址3125 保留保留MODE2寄存器位定義表寄存器位定義表 IRQ0觸發(fā)方式選擇觸發(fā)方式選擇,1下降沿觸發(fā);下降沿觸發(fā);0低電平觸發(fā)低電平觸發(fā)IRQ1觸發(fā)方式選擇觸發(fā)方式選擇,1下降沿觸發(fā);下降沿觸發(fā);0低電平觸發(fā)低電平觸發(fā) IRQ2觸發(fā)方式選擇觸發(fā)方式選擇,1下降沿觸發(fā);下降沿觸發(fā);0低電平觸發(fā)低電平觸發(fā)Bit(s)NameDefinition0IRQ0E1IRQ1E2IRQ2E3 保留保留4CAIDS指令

11、緩存禁止,指令緩存禁止,1禁止指令緩存;禁止指令緩存;0開啟指令緩存開啟指令緩存5TIMEN定時器使能,定時器使能,1使能定時器;使能定時器;0禁止定時器禁止定時器6BUSLK外部總線請求鎖定,外部總線請求鎖定,1ADSP控制總線,請求鎖定總線;控制總線,請求鎖定總線;0不請求鎖定總線不請求鎖定總線147 保留保留15FLAG0OFLAG0輸入輸出選擇,輸入輸出選擇,1作為輸出;作為輸出;0作為輸入作為輸入MODE2寄存器位定義表續(xù)寄存器位定義表續(xù) 16FLAG1OFLAG1輸入輸出選擇,輸入輸出選擇,1作為輸出;作為輸出;0作為輸入作為輸入17FLAG2OFLAG2輸入輸出選擇,輸入輸出選擇

12、,1作為輸出;作為輸出;0作為輸入作為輸入18FLAG3OFLAG3輸入輸出選擇,輸入輸出選擇,1作為輸出;作為輸出;0作為輸入作為輸入19CAFRZ指令緩存凍結(jié),指令緩存凍結(jié),1凍結(jié)指令緩存,禁止刷新,保持原值;凍結(jié)指令緩存,禁止刷新,保持原值;0允許指令緩存刷新允許指令緩存刷新20IIRAE是否檢測非法寄存器訪問,是否檢測非法寄存器訪問,1允許檢測;禁止檢測允許檢測;禁止檢測21U64MAE是否檢測對非連續(xù)的是否檢測對非連續(xù)的64位長字存儲器空間的訪問,位長字存儲器空間的訪問,1檢測;檢測;0禁止檢測禁止檢測2422 保留保留2725PID20處理器處理器ID號號2928 芯片版本號芯片版

13、本號3130PID43處理器處理器ID號。號。ASTATx運(yùn)算狀態(tài)運(yùn)算狀態(tài)寄存器表寄存器表 Bit(s)NameDefinition0AZ1ALU操作結(jié)果為操作結(jié)果為0;0ALU操作結(jié)果為非操作結(jié)果為非0或者浮點(diǎn)下溢或者浮點(diǎn)下溢1AV1ALU操作結(jié)果溢出;操作結(jié)果溢出;0ALU操作結(jié)果不溢出操作結(jié)果不溢出2AN1ALU最后一次操作結(jié)果為負(fù)數(shù);最后一次操作結(jié)果為負(fù)數(shù);0ALU最后一次操作結(jié)果為正數(shù)最后一次操作結(jié)果為正數(shù)3AC1ALU最后一次定點(diǎn)操作結(jié)果有進(jìn)位;最后一次定點(diǎn)操作結(jié)果有進(jìn)位;0ALU最后一次定點(diǎn)操作結(jié)果無進(jìn)最后一次定點(diǎn)操作結(jié)果無進(jìn)位位4AS1ALU的的ABS或者或者M(jìn)ANT操作操作輸

14、入數(shù)為負(fù);操作操作輸入數(shù)為負(fù);0ALU操作輸入為正數(shù)操作輸入為正數(shù)5AI1ALU浮點(diǎn)操作無效;浮點(diǎn)操作無效;0ALU浮點(diǎn)操作有效浮點(diǎn)操作有效6MN1乘法器操作結(jié)果負(fù)數(shù);乘法器操作結(jié)果負(fù)數(shù);0乘法器操作結(jié)果為正數(shù)乘法器操作結(jié)果為正數(shù)7MV1乘法器操作結(jié)果溢出;乘法器操作結(jié)果溢出;0乘法器操作結(jié)果不溢出乘法器操作結(jié)果不溢出8MU1乘法器浮點(diǎn)操作結(jié)果下溢出;乘法器浮點(diǎn)操作結(jié)果下溢出;0乘法器浮點(diǎn)操作結(jié)果未下溢出乘法器浮點(diǎn)操作結(jié)果未下溢出ASTATxASTATx運(yùn)算狀態(tài)寄存器表續(xù)運(yùn)算狀態(tài)寄存器表續(xù) 9MI1乘法器浮點(diǎn)操作數(shù)無效;乘法器浮點(diǎn)操作數(shù)無效;0乘法器浮點(diǎn)操作數(shù)有效乘法器浮點(diǎn)操作數(shù)有效10AF1

15、ALU操作數(shù)是浮點(diǎn)數(shù);操作數(shù)是浮點(diǎn)數(shù);0ALU操作數(shù)是定點(diǎn)數(shù)操作數(shù)是定點(diǎn)數(shù)11SV1移位器操作結(jié)果溢出;移位器操作結(jié)果溢出;0移位器操作結(jié)果不溢出移位器操作結(jié)果不溢出12SZ1移位器操作結(jié)果為移位器操作結(jié)果為0;0移位器操作結(jié)果不為移位器操作結(jié)果不為013SS1移位器操作輸入數(shù)為負(fù)數(shù);移位器操作輸入數(shù)為負(fù)數(shù);0移位器操作輸入數(shù)為正數(shù)移位器操作輸入數(shù)為正數(shù)17-14 保留保留18BTF系統(tǒng)寄存器位測試標(biāo)志系統(tǒng)寄存器位測試標(biāo)志23-19 保留保留3124C A CC比較累加移位寄存器。位比較累加移位寄存器。位31為為ALU最后一次輸入的兩個操作數(shù)比較的結(jié)果。最后一次輸入的兩個操作數(shù)比較的結(jié)果。1X

16、輸入較大;輸入較大;0Y輸入較大。其它輸入較大。其它7位構(gòu)成一個右移寄存器,每位存儲一位構(gòu)成一個右移寄存器,每位存儲一個前面比較的結(jié)果,伴隨著每一次新的比較,個前面比較的結(jié)果,伴隨著每一次新的比較,DSP右移右移CACC中的值,總是中的值,總是把最新的值放在把最新的值放在31位,最舊的值放在位,最舊的值放在24位位3)程序控制寄存器(如下頁圖)程序控制寄存器(如下頁圖) ADSP程序控制寄存器引導(dǎo)指令的執(zhí)行,主要實現(xiàn)以下操作:1. 指令流水指令流水2. 程序和循環(huán)堆棧程序和循環(huán)堆棧3. 定時器操作定時器操作4. 中斷鎖存與屏蔽中斷鎖存與屏蔽 程序控制寄存器表寄存器名說 明初始值PC程序計數(shù)器未

17、定義PCSTK程序計數(shù)堆棧寄存器(保存PC堆棧棧頂?shù)刂罚┪炊xPCSTKP程序計數(shù)器堆棧指針寄存器(存放PC堆棧已用數(shù),其值為031,PC空0,PC滿31)未定義FADDR取指寄存器,存放三級流水第一步取指令地址未定義DADDR譯碼寄存器,存放三級流水第二步譯碼指令地址未定義LADDR循環(huán)地址堆棧寄存器,32位寬,6級深度,每級存放24位循環(huán)終止地址,5位終止代碼,2位循環(huán)類型碼未定義CURLCNTR當(dāng)前循環(huán)計數(shù)寄存器,存放循環(huán)已被執(zhí)行的次數(shù)未定義LCNTR定時器的計數(shù)寄存器未定義TPERIOD定時器周期計數(shù)寄存器未定義TCOUNT定時器計數(shù)寄存器未定義IRPTL中斷鎖存寄存器0 x00000

18、000IMASK中斷屏蔽寄存器0 x00000003IMASKP中斷屏蔽指針寄存器0 x00000000LIRPTL鏈路口中斷寄存器0 x00000000FLAGSFLAG標(biāo)志寄存器0 x000000004)數(shù)據(jù)地址產(chǎn)生器(DAG1,DAG2) 數(shù)據(jù)地址產(chǎn)生寄存器主要為訪問數(shù)據(jù)和指令產(chǎn)生地址,并自動修改地址,實現(xiàn)連續(xù)的地址空間訪問,同時也能實現(xiàn)環(huán)形緩沖尋址等操作,但它們不參與數(shù)值運(yùn)算。 地址產(chǎn)生器地址產(chǎn)生器DAG1寄存器(寄存器(DM) 地址產(chǎn)生器地址產(chǎn)生器DAG2寄存器(寄存器(PM)I0I7I8I15M0M7M8M15B0B7B8B15L0L7L8L15(DAG1,DAG2)寄存器說明表)

19、寄存器說明表寄 存 器名說 明初始值 I0-I7DAG1索引寄存器,保存指向存儲器的地址未定義M0-M7DAG1修改寄存器,為I寄存器提供地址修改量未定義B0-B7DAG1基址寄存器,為環(huán)形緩沖區(qū)操作提供起始地址未定義L0-L7DAG1長度寄存器,為環(huán)形緩沖區(qū)操作提供緩沖區(qū)長度未定義I8-I15DAG2索引寄存器,保存指向存儲器的地址未定義M8-M15DAG2修改寄存器,為I寄存器提供地址修改量未定義B8-B15DAG2基址寄存器,為環(huán)形緩沖區(qū)操作提供起始地址未定義L8-L15DAG2長度寄存器,為環(huán)形緩沖區(qū)操作提供緩沖區(qū)長度未定義環(huán)形緩沖區(qū)操作MODE1寄存器的位定義表續(xù)Bit(s)Name

20、Definition13ALUSATALU飽和處理使能,1ALU定點(diǎn)溢出進(jìn)行飽和處理;0不進(jìn)行飽和處理14SSE定點(diǎn)短字符號擴(kuò)展使能,1符號擴(kuò)展到高16位;0高16位填015TRUNC截取模式選擇,1靠近0截??;0截取到最近的數(shù)16RND3232位浮點(diǎn)數(shù)據(jù)截取方式選擇,1截取到32位;0截取到40位1817CSELADSP總線控制狀態(tài),00ADSP控制總線,01,10,11ADSP不控制總線2019 保留21PEYENSIMD模式使能,1使能PEy計算單元,使能SIMD;0禁止PEy,SISD模式22BTCST9通過地址寄存器I9廣播使能,1將PM總線上的數(shù)據(jù)廣播到兩個運(yùn)算單元的相應(yīng)寄存器中,

21、0禁止廣播方式23BTCST1通過地址寄存器I0廣播使能,1將DM總線上的數(shù)據(jù)廣播到兩個運(yùn)算單元的相應(yīng)寄存器中,0禁止廣播方式24CBUFEN環(huán)形緩沖尋址使能,1使能環(huán)形緩沖尋址;0線性尋址3125 保留M為正時環(huán)形緩沖區(qū)計算方法環(huán)形緩沖區(qū)操作注意事項1地址修改只能采用后修改方式地址修改只能采用后修改方式,即可用,即可用M M寄寄存器(與存器(與I I寄存器在相同寄存器在相同DAGDAG中,但不必同中,但不必同號數(shù),如號數(shù),如I0I0和和M3M3),也可采用立即數(shù)),也可采用立即數(shù); ;但不管修改值是來自但不管修改值是來自M M寄存器還是立即數(shù),寄存器還是立即數(shù),其修改值大小不能超出循環(huán)緩沖區(qū)

22、的長度其修改值大小不能超出循環(huán)緩沖區(qū)的長度(L L寄存器值)。寄存器值)。3. 3. 循環(huán)緩沖區(qū)的長度(循環(huán)緩沖區(qū)的長度(L L寄存器值)必須是正寄存器值)必須是正值且不能超過值且不能超過2 231311 1,如循環(huán)緩沖區(qū)長度為如循環(huán)緩沖區(qū)長度為零,則循環(huán)緩沖區(qū)操作被零,則循環(huán)緩沖區(qū)操作被DISABLEDISABLE。環(huán)形緩沖區(qū)操作注意事項環(huán)形緩沖區(qū)操作注意事項24.B寄存器被裝入某個值時,同時I寄存器被裝入相同的值。但I(xiàn)寄存器被裝入某個值時,B寄存器的值不變。5.M寄存器既可以是正值,也可以是負(fù)值。 注:在上個例子中意味著 B00 x55000, M10 x4M寄存器可以是負(fù)值 初始時I寄存

23、器中的值等于B寄存器的值; 在第一次環(huán)形緩沖區(qū)訪問時,I寄存器的值更新為B+L; 然后開始遞減訪問緩沖區(qū)。5. I/O處理器寄存器處理器寄存器 I/O處理器寄存器組列表I/O處理器寄存器組列表續(xù) I/O處理器寄存器分為以下幾組: 系統(tǒng)控制寄存器組; DMA緩沖寄存器組; 鏈路和串行口寄存器組; lExternal port DMA ;lLink port DMA ;lSerial port DMA ;I/O處理器寄存器訪問方法處理器寄存器訪問方法 除DMA操作外,ADSP結(jié)構(gòu)不支持在I/O寄存器與內(nèi)部存儲器地址單元間傳遞數(shù)據(jù),要讀寫I/O處理器,必須要用處理器核寄存器作為中介。例如要向WAIT

24、寄存器賦值情況如下: USTAT10 x08421; DM(WAIT)USTAT1;下面我們就一些重要的IO寄存器進(jìn)行詳細(xì)的講解SYSCON-系統(tǒng)控制寄存器位定義表系統(tǒng)控制寄存器位定義表續(xù)1系統(tǒng)控制寄存器位定義表續(xù)2系統(tǒng)控制寄存器位定義表續(xù)33123位保留未用SYSCON寄存器的位定義寄存器的位定義 1. SRST (位位0):軟件復(fù)位,通過軟件將該位置1,DSP響應(yīng)不可屏蔽中斷RSTI,并將該位清0。2. BSO(位位1):引導(dǎo)方式選擇重載,1DSP使用BMS有效,從片外存儲器空間加載程序。 3IIVT(位(位3):):內(nèi)部中斷向量表,對于ADSP21160來說1不管加載任何模式配置,強(qiáng)制將

25、中斷向量表放到0 x40000地址(基地址);0根據(jù)加載模式選擇放置。4. IMDW0(4. IMDW0(位位9)9):片內(nèi)存儲器塊0數(shù)據(jù)寬度設(shè)置,140位,032位。 SYSCON寄存器的位定義續(xù)寄存器的位定義續(xù) IMDW1(位(位10): 片內(nèi)存儲器塊1數(shù)據(jù)寬度設(shè)置,140位,032位。MSIZE(位位1512):外部存儲器塊大小設(shè)置 MSIZElog2(塊大小)13。 SYSCONSYSCON寄存器的位定義續(xù)寄存器的位定義續(xù) 寄存器部分課后測試1. ADSP21160寄存器分為哪幾類? 2. ADSP程序控制寄存器引導(dǎo)指令的執(zhí)行主要實現(xiàn)哪些操作?3. 根據(jù)下列條件,用DSP匯編語言編寫出

26、下列環(huán)形緩沖區(qū)操作程序,并畫出完成一次完整讀取該環(huán)形緩沖區(qū)循環(huán)的示意圖。 LENGTH=11; BASE ADDRESS=0 x6500; MODIFIER=4;ADSP21160ADSP21160中斷邏輯與定時器中斷邏輯與定時器 1.中斷邏輯 ADSP21160ADSP21160內(nèi)部提供了豐富的中斷資源。內(nèi)部提供了豐富的中斷資源。 a.a.在外部中斷方面:在外部中斷方面: 復(fù)位中斷; 仿真器中斷; 三個外部輸入中斷。 b.在內(nèi)部中斷方面有: 非法輸入中斷; 運(yùn)算錯誤中斷; 鏈路服務(wù)請求中斷; 定時器中斷; 堆棧溢出中斷; 多處理器中斷; 環(huán)形緩沖區(qū)溢出中斷; DMA控制中斷; 用戶自定義軟件

27、中斷等。ADSP SHARC系列處理器的三個外部中斷系列處理器的三個外部中斷觸發(fā)觸發(fā)方式有兩種方式有兩種: 電平觸發(fā)方式電平觸發(fā)方式和沿觸發(fā)方式。沿觸發(fā)方式。 觸發(fā)方式的選擇通過設(shè)置觸發(fā)方式的選擇通過設(shè)置MODE2寄存器來完成,寄存器來完成,其定義方式如下表:其定義方式如下表: BitNameDefine0IRQ0E1-下降沿下降沿 觸發(fā);觸發(fā);0低電平觸發(fā)低電平觸發(fā)1IRQ1E1-下降沿下降沿 觸發(fā);觸發(fā);0低電平觸發(fā)低電平觸發(fā)2IRQ2E1-下降沿下降沿 觸發(fā);觸發(fā);0低電平觸發(fā)低電平觸發(fā)使用內(nèi)外部中斷時應(yīng)注意的幾點(diǎn): 1.1.對上述內(nèi)、外部中斷,除了對上述內(nèi)、外部中斷,除了仿真器中斷仿真

28、器中斷和和復(fù)位中斷復(fù)位中斷不可不可以屏蔽外,其余中斷都是可以屏蔽的。以屏蔽外,其余中斷都是可以屏蔽的。 2.2.除了不可屏蔽中斷和引導(dǎo)加載中斷除了不可屏蔽中斷和引導(dǎo)加載中斷EP0IEP0I或者或者LP4ILP4I外,所外,所有中斷在系統(tǒng)復(fù)位時都默認(rèn)被屏蔽。有中斷在系統(tǒng)復(fù)位時都默認(rèn)被屏蔽。3.3.當(dāng)我們要使用某種中斷時,必須具備以下條件:當(dāng)我們要使用某種中斷時,必須具備以下條件:4.4.通常,當(dāng)一個中斷正在執(zhí)行服務(wù)期間,通常,當(dāng)一個中斷正在執(zhí)行服務(wù)期間,ADSPADSP系列處理器系列處理器在在每個周期每個周期都會對都會對該中斷鎖存寄存器的相應(yīng)中斷標(biāo)志位該中斷鎖存寄存器的相應(yīng)中斷標(biāo)志位進(jìn)行進(jìn)行清零

29、清零,以,以禁止禁止在在執(zhí)行該中斷服務(wù)執(zhí)行該中斷服務(wù)的過程中的過程中再次允許再次允許該中斷鎖存該中斷鎖存。 下面介紹下面介紹IRPTL、IMASK和和IMASKP使用某種中斷時,必須具備的條件:使用某種中斷時,必須具備的條件: 1)1)將系統(tǒng)寄存器將系統(tǒng)寄存器MODE1MODE1中全局中斷使能位中全局中斷使能位 IRPTENIRPTEN置置1 1;2)2)將將IMASKIMASK寄存器中相應(yīng)的中斷屏蔽位置寄存器中相應(yīng)的中斷屏蔽位置1 1;3)3)中斷請求到達(dá)后,中斷鎖存寄存器中斷請求到達(dá)后,中斷鎖存寄存器IRPTLIRPTL的相應(yīng)位置的相應(yīng)位置1,1,并且中斷所存寄存器中沒有優(yōu)先級更高的中斷標(biāo)

30、并且中斷所存寄存器中沒有優(yōu)先級更高的中斷標(biāo)志位被置志位被置1 1; 滿足上述三個條件的中斷發(fā)生時DSP將執(zhí)行以下操作(1)輸出相應(yīng)的中斷向量地址;(2)將當(dāng)前的程序計數(shù)器PC值壓入PC堆棧;(3)如果中斷源是外部中斷、內(nèi)部定時器中斷或者多 處理器向量中斷,程序控制器還要將ASTAT和 MODE1寄存器中的當(dāng)前值壓入狀態(tài)堆棧中。(4)設(shè)置中斷鎖存寄存器IRPTL的相應(yīng)標(biāo)志位;(5)改變中斷屏蔽指針寄存器IMASKP的相應(yīng)位,反 映當(dāng)前的中斷嵌套狀態(tài)。(6)DSP運(yùn)行中斷向量地址指示的中斷服務(wù)程序, 完成中斷處理任務(wù),最后執(zhí)行RTI指令。 Instr1; /中斷程序入口JUMP(PC,3)(DB,

31、CI);/清除中斷狀態(tài), /跳轉(zhuǎn)到PC3地址單 /元(instr5)順序執(zhí)行Inst r3; /在延遲分支里執(zhí)行Instr4; /在延遲分支里執(zhí)行Instr5;RTS(LR); 采用RTS(LR)指令返回到程序舉例 RTI指令將完成的操作 (1)返回到PC堆棧頂部的地址;(2)彈出PC堆棧棧頂中的值;(3)如果ASTAT和MODE1寄存器壓棧了,則彈 出ASTAT寄存器和MODE1寄存器中的值;(4)清除中斷鎖存寄存器中的相應(yīng)位,并將中斷屏蔽指針寄存器的相應(yīng)位清零; 返回1IRPTL、IMASK和IMASKP IRPTLIRPTL中斷鎖存寄存器中斷鎖存寄存器指示中斷鎖存狀態(tài),在上電復(fù)位后,其初

32、始值為0 x0000 0000。 IMASKIMASK中斷屏蔽寄存器中斷屏蔽寄存器除仿真器中斷和復(fù)位中斷不可以屏蔽外,其余中斷都是可以屏蔽的,在上電復(fù)位后,其初始值為0 x0000 0003,相應(yīng)位定義同IRPTL。 IMASKPIMASKP中斷屏蔽指針寄存器中斷屏蔽指針寄存器反映當(dāng)前中斷嵌套情況,在上電復(fù)位后,其初始值為0 x0000 0000,相應(yīng)位定義同IRPTL。 IRPTL、IMASK和IMASKP寄存器的未位義如下圖:IRPTL、IMASK和IMASKPIRPTL位定義表續(xù)IRPTL位定義表續(xù)IRPTL位定義表續(xù)IRPTL位定義表續(xù)2.中斷嵌套 ADSP處理器支持多級中斷嵌套; 中

33、斷嵌套由MODE1,IRPTL,IMASKP寄存器的相關(guān)位控制; 設(shè)置MODE1寄存器的NESTM嵌套模式位為1,就可以使能中斷嵌套; 反之NESTM位清零,禁止中斷嵌套。2. 2. 中斷嵌套中斷嵌套( (續(xù)續(xù)) ) 注意注意NESTMNESTM1 1時,允許在中斷服務(wù)過程時,允許在中斷服務(wù)過程中處理高優(yōu)先級的中斷,但對同級或者中處理高優(yōu)先級的中斷,但對同級或者低優(yōu)先級的中斷請求不予處理。低優(yōu)先級的中斷請求不予處理。3. 多處理器向量中斷 在多處理器系統(tǒng)中,ADSPSHARC系列處理器支持多處理器向量中斷,通過向量中斷寄存器(VIRPT)的設(shè)置,允許外部主機(jī)或者其它主機(jī)向VIRPT寄存器中寫入

34、一個新的向量地址。 注:多處理器向量中斷不作為本課程講解的重點(diǎn),大家了解就可以了。 4. 4. 定時器定時器 在ADSP21160內(nèi)部只有一個可編程定時器,用來實現(xiàn)以下功能:1. 產(chǎn)生定時事件2. 實現(xiàn)計數(shù)事件3. 產(chǎn)生標(biāo)準(zhǔn)脈沖4. 中斷處理器5. 測量輸入脈沖 定時器的使用和設(shè)置方法 ADSP21160通過對內(nèi)部寄存器: TCOUNT(計數(shù)寄存器) TPERIOD(周期寄存器) 兩個寄存器進(jìn)行編程,從而在TIMEXP引腳 產(chǎn)生定時脈沖輸出; 同時產(chǎn)生兩個定時中斷: TMZHI(高優(yōu))和TMZLI(低優(yōu))。定時器的使用和設(shè)置方法(續(xù)) 定時器的啟動和禁止:定時器的啟動和禁止: 是通過設(shè)置是通過

35、設(shè)置MODE2MODE2的的TIMENTIMEN位來完成;位來完成; 如果該位被如果該位被置置1 1, 啟動啟動定時器;定時器; 如果該位被如果該位被清零清零,禁止禁止定時器。定時器。注意:在啟動定時器之前,應(yīng)該先將注意:在啟動定時器之前,應(yīng)該先將TCOUNTTCOUNT和和TPERIODTPERIOD寄存器設(shè)置好。例如:寄存器設(shè)置好。例如: TPERIODN1; /間隔周期數(shù)TCOUNTPERIOD; /初始化TCOUNTBIT SET IMASK 0 x10; /允許定時中斷BIT SET MODE1 0 x1000; /全局中斷使能BIT SET MODE2 0 x20; /定時器使能

36、INTW:IDEL; /程序在本條語句和下條語句JUMP INTW; /之間循環(huán)等待中斷產(chǎn)生ADSP21160中斷向量表 寄存器 位 中斷向量地址 中斷名稱 功 能 IRPTTL 0 Ox00EMUl 仿真器中斷(只讀,不可屏蔽,最高優(yōu)先級 IRPTL l Ox04 RSTI 復(fù)位(只讀,不可屏蔽) IRPTL 2 0 x08 IlCDI 檢測到非法輸入 IRPTL 3 0 x0C SOVFI 狀態(tài),循環(huán)堆棧溢出或PC堆棧滿 IRPTL4 0 x10TMZHI定時器=O(高優(yōu)先級) IRPTL 5 0 x14 VIRPTL 多處理器中斷向量 IRPTL 6 0 x18 IRQ2I 外部中斷IR

37、Q2有效 IRPTL7 0 xlCIRQII外部中斷IRQ1有效ADSP21160中斷向量表續(xù) IRPTL 8 0 x20 IRQOI 外部中斷IRQ0有效 IRPTL 9 0 x24 保留 IRPTLlO 0 x28 SPROI DMA通道0:串行口0接收 IRPTL ll Ox2C SPRlI DMA通道1:串行口1接收 IRPTL 12 0 x30 SPTOI DMA通道2:串行口0發(fā)送 IRPTL 13 0 x34 SPTll DMA通道3:串行口1發(fā)送 LIRPTL 0 Ox38 LPOI DMA通道4:LBUF0 LIRPTL 1 0 x3C LPll DMA通道5:LBUFl L

38、IRPTL 2 0 x40 LP2I DMA通道6:LBUF2 LIRPTL 3 0 x44 LP3I DMA通道7:LBUF3 LIRPTL 4 0 x48 LP41 DMA通道8:LBUF4 LIRPTL 5 0 x4C LP5I DMA通道9:LBUF5 IRPTL 15 0 x50 EPOI DMA通道10:外部口BUFF0 IRPTL 16 0 x54 EPlI DMA通道11:部口BUFFl IRPTL 17 0 x58 EP2I DMA通道12:外部口BUFF2 ADSP21160中斷向量表續(xù)中斷向量表續(xù) IRPTL 18 0 x5C EP3I DMA通道13:外部口BUFF3

39、IRPTL 19 0 x60 LSRQ 鏈路口服務(wù)請求 IRPTL 20 0 x64 CB7I 環(huán)形緩沖7溢出 IRPTL 2l 0 x68 CBl5I 環(huán)形緩沖15溢出 IRPTL 22 0 x6C TMZLI 定時器=0(低優(yōu)先級) IRPTL 23 0 x70 FIXI 定點(diǎn)溢出 IRPTL 24 0 x74 FLTOI 浮點(diǎn)上溢出 IRPTL 25 0 x78 FLTUI 浮點(diǎn)下溢出 IRPTL 26 0 x7C FLTII 浮點(diǎn)無效 IRPTL 27 0 x80 SFT0I 用戶自定義軟件中斷0 IRPTL 28 0 x84 SFTlI 用戶自定義軟件中斷1 IRPTL 29 0 x

40、88 SFT2I 用戶自定義軟件中斷2 IRPTL 30 0 x8C SFT3I 用戶自定義軟件中斷3 IRPTL 3l 0 x90 保留(最低優(yōu)先級) 中斷向量編程示例中斷向量編程示例 .section/pm seg_rth;_lib_ EMUI: NOP;NOP;NOP;NOP; /對于ADSP2106該位保留_lib_RSTI: NOP; jump start_ID2; NOP; NOP;_lib_ IICD: NOP;NOP;NOP;NOP; /對于ADSP2106該位保留_lib_SOVFI: RTI;RTI;RTI;RTI;_lib_TMZHI: NOP; JUMP timer_i

41、nt; NOP;NOP;_lib_VIRPTI: RTI;RTI;RTI;RTI;_lib_IRQ2I: RTI;RTI;RTI;RTI;_lib_IRQ1I: RTI;RTI;RTI;RTI;_lib_IRQ0I: RTI;RTI;RTI;RTI; NOP;NOP;NOP;NOP; /該位保留_lib_SPR0I: RTI;RTI;RTI;RTI;_lib_SPR1I: RTI;RTI;RTI;RTI;中斷向量編程示例續(xù)中斷向量編程示例續(xù)_lib_SPT0I:NOP;JUMP STx0_int;NOP;NOP;_lib_SPT1I:NOP;JUMP STx1_int;NOP;NOP;_lib

42、_LP2I:RTI;RTI;RTI;RTI;_lib_LP3I: RTI;RTI;RTI;RTI;_lib_EP0I:RTI;RTI;RTI;RTI;_lib_EP1I: RTI;RTI;RTI;RTI;_lib_EP2I: RTI;RTI;RTI;RTI;_lib_EP3I: RTI;RTI;RTI;RTI;_lib_LSRQ: RTI;RTI;RTI;RTI;_lib_CB7I: RTI;RTI;RTI;RTI;_lib_CB15I:RTI;RTI;RTI;RTI;_lib_TMZLI: RTI;RTI;RTI;RTI;.ENDSEG;中斷向量表在存儲區(qū)中的存放位置 中斷向量表可以放在DS

43、P內(nèi)部存儲區(qū),也可以放在DSP外部存儲區(qū),隨DSP芯片型號的不同而不同; ADSP21160M內(nèi)部存儲區(qū)中斷向量表的基地址為0 x00040000,而外部存儲區(qū)基地址為0 x00800000;DMA(Direct Memory Accessing) 利用DMA控制器,可以實現(xiàn)以下幾種類型的數(shù)據(jù)傳輸以下幾種類型的數(shù)據(jù)傳輸 ADSP21160內(nèi)部結(jié)構(gòu)圖ADSP21160的的I/OI/O處理器結(jié)構(gòu)圖處理器結(jié)構(gòu)圖 IOP內(nèi)部結(jié)構(gòu)框圖DMADMA傳輸?shù)膬?yōu)先級傳輸?shù)膬?yōu)先級 由于由于ADSP SHARC系列處理器提供了多個系列處理器提供了多個DMA通道,通道,在某一個時鐘周期可能會出現(xiàn)多個在某一個時鐘周期可

44、能會出現(xiàn)多個DMA通道的請求,處通道的請求,處理器則采用了優(yōu)先級機(jī)制控制為理器則采用了優(yōu)先級機(jī)制控制為DMA通道服務(wù)。通道服務(wù)。 上表中從上到下優(yōu)先級逐漸降低,上表中從上到下優(yōu)先級逐漸降低,DMA通道通道0優(yōu)先級優(yōu)先級最高,其中除了串行口對應(yīng)的最高,其中除了串行口對應(yīng)的DMA通道采用固定優(yōu)先級通道采用固定優(yōu)先級外,鏈路口和外部口既可以設(shè)置為固定優(yōu)先級,也可以設(shè)外,鏈路口和外部口既可以設(shè)置為固定優(yōu)先級,也可以設(shè)置為循環(huán)優(yōu)先級。置為循環(huán)優(yōu)先級。 如果設(shè)置為固定優(yōu)先級,仍遵循表中通道號順序,從如果設(shè)置為固定優(yōu)先級,仍遵循表中通道號順序,從上到下優(yōu)先級逐漸降低。上到下優(yōu)先級逐漸降低。 當(dāng)然,此時也可以

45、通過指定另一個通道為最高優(yōu)先級,當(dāng)然,此時也可以通過指定另一個通道為最高優(yōu)先級,重新定義外部口的重新定義外部口的固定優(yōu)先級次序。固定優(yōu)先級次序。 鏈路口和外部口的循環(huán)優(yōu)先級可以通過對鏈路口和外部口的循環(huán)優(yōu)先級可以通過對SYSCONSYSCON寄存寄存器的器的LDCPRLDCPR位位或或DCPRDCPR位位進(jìn)行設(shè)置。進(jìn)行設(shè)置。 DMA參數(shù)寄存器 IIx,IMx,Cx,CPx,GPx,EIx,EMx,ECx,DAx,DBx1. 內(nèi)部參數(shù)寄存器: IIx,IMx,Cx,CPx,GPxIIx內(nèi)部索引寄存器:存放相對于內(nèi)部存儲器基地址的偏移地址IMx內(nèi)部修改寄存器Cx計數(shù)寄存器:16位,對傳輸次數(shù)減計數(shù)

46、,初始為數(shù)據(jù)塊長度, 每傳輸一個數(shù)據(jù),自動減1,減到零時,產(chǎn)生該DMA中斷CPx鏈?zhǔn)街羔樇拇嫫?,用于鏈?zhǔn)紻MA操作GPx通用寄存器,通常也用于鏈?zhǔn)紻MA操作DMA參數(shù)寄存器續(xù)2.外部參數(shù)寄存器:1) EIx,EMx,ECx 用于外部口DMA通道的32位參數(shù)寄存器,它們的功能和內(nèi)部參數(shù)寄存器類似。EIx 外部索引寄存器;EMx 外部修改寄存器;ECx 外部計數(shù)寄存器; 2) DAx,DBx是兩個16位的維數(shù)寄存器,用于串行口和鏈路口DMA通道,存放二維DMA傳輸?shù)年嚵械刂?,?dāng)然也可以用于一維DMA操作。 DMA控制寄存器1.外部口DMA控制寄存器 DMACx控制外部口各個DMA通道的操作模式,可

47、配置成5種模式。具體位定義略。 1)主機(jī)模式 2)同步主機(jī)模式 3)從機(jī)模式 4)握手模式 5)外部握手模式DMA控制寄存器 2.串行口DMA控制寄存器串行口發(fā)送和接收控制寄存器:串行口發(fā)送和接收控制寄存器: STCTLxSRCTLx(x=01) 上述兩個寄存器中與DMA控制相關(guān)的位如下表DMA控制寄存器3.鏈路口鏈路口DMA控制寄存器控制寄存器LCTLx :與與DMA控制相關(guān)的位列表控制相關(guān)的位列表 DMA通道的建立外部口外部口DMADMA傳輸通道的建立傳輸通道的建立(1) 首先設(shè)置DMA參數(shù)寄存器: IIx,IMx,Cx,CPx,EIx,EMx,Ecx;(2) 定義內(nèi)部存儲器緩沖區(qū): 緩沖

48、區(qū)大小、起始地址、地址增量、外部口尋址區(qū)間、地址增量等;(3) 然后設(shè)定DMA通道控制寄存器: 定義數(shù)據(jù)傳輸方向、數(shù)據(jù)打包模式、握手模式、并使能DMA傳輸; 上述設(shè)定結(jié)束后,DMA數(shù)據(jù)就自動開始從后臺傳輸,直到數(shù)據(jù)傳輸完畢,產(chǎn)生DMA中斷。DMA通道的建立續(xù)2.I/O口DMA傳輸通道的建立(1)首先要配置I/O口;(2)然后設(shè)定內(nèi)部存儲區(qū)DMA參數(shù)寄存器;(3)最后設(shè)置I/O口控制寄存器,定義數(shù)據(jù)傳輸方向,數(shù)據(jù)格式,并使能DMA傳輸。I/O數(shù)據(jù)傳輸過程: 接收數(shù)據(jù)當(dāng)數(shù)據(jù)到達(dá)I/O口緩沖區(qū)時,I/O口自動將數(shù)據(jù)送到內(nèi)部存儲區(qū); 發(fā)送數(shù)據(jù)自動從內(nèi)部存儲區(qū)將數(shù)據(jù)取出送到I/O口緩沖區(qū),進(jìn)行發(fā)送。鏈?zhǔn)?/p>

49、DMA傳輸簡介 鏈?zhǔn)紻MA傳輸:就是允許ADSP SHARC系列處理器在一次DMA傳輸完成后自動將DMA參數(shù)寄存器載入新值,開始一次新的DMA傳輸。 上述特性使得處理器在無須處理器核干預(yù)的情況下進(jìn)行無限制的多重DMA傳輸,但每個DMA操作有不同的屬性。二維DMA傳輸簡介 二維DMA模式可以將存儲區(qū)中的傳輸數(shù)據(jù)塊當(dāng)作一個數(shù)據(jù)陣列,因而對那些執(zhí)行矩陣操作的DSP算法非常有用,可以大大簡化程序設(shè)計,提高算法執(zhí)行效率。 二維DMA模式只適用于鏈路口和串行口所對應(yīng)的DMA通道。 二維DMA模式設(shè)置方法將鏈路口或串行口的控制寄存器中L2DMA位或D2DMA位置1,并使能DMA傳輸。串行口 在我們講解DSP

50、串口之前,還是讓我們回顧一下RS232C串行口。1.為什么RS232C串行口被如此廣泛的應(yīng)用?2.RS232C所采用的核心芯片是什么?3.RS232C擴(kuò)展 (1)RS485 (2)RS442ADSP處理器串行口 ADSP SHARC系列處理器有兩個獨(dú)立的同步串行口SPORT0和SPORT1,為與外部數(shù)字或模擬器件連接提供了一種靈活、簡捷的I/O接口; 每個串行口都有自己的一套控制寄存器和數(shù)據(jù)緩沖區(qū),而且支持可編程的串行時鐘和幀同步選擇。同步串行通訊同步串行通訊 所謂同步串行通訊,指的就是每一個數(shù)據(jù)位的所謂同步串行通訊,指的就是每一個數(shù)據(jù)位的發(fā)送是嚴(yán)格和一個時鐘脈沖同步,每個時鐘脈發(fā)送是嚴(yán)格和一

51、個時鐘脈沖同步,每個時鐘脈沖沖(TCLKx)(TCLKx)發(fā)一位數(shù)據(jù)這就要求每一個串行發(fā)一位數(shù)據(jù)這就要求每一個串行口都有自己的發(fā)送和接收時鐘引腳(口都有自己的發(fā)送和接收時鐘引腳(TCLKxTCLKx和和RCLKxRCLKx),我們通過對),我們通過對TDIVxTDIVx,RDIVxRDIVx兩個寄存兩個寄存器的設(shè)置來配置內(nèi)部串行時鐘頻率。器的設(shè)置來配置內(nèi)部串行時鐘頻率。 此外我們也可以用一個幀同步信號來標(biāo)識一個此外我們也可以用一個幀同步信號來標(biāo)識一個字或一個字塊的開始,發(fā)送和接收幀同步信號字或一個字塊的開始,發(fā)送和接收幀同步信號用用TFSTFS和和RFSRFS表示,同樣內(nèi)部幀同步頻率也是通表示

52、,同樣內(nèi)部幀同步頻率也是通過對過對TDIVxTDIVx和和RDIVxRDIVx兩個寄存器的設(shè)置來配置的。兩個寄存器的設(shè)置來配置的。 返回1ADSP SHARC串行口的功能 (1)每個串行口都有獨(dú)立的發(fā)送與接收通道,能夠同時進(jìn)行全雙工收/發(fā)數(shù)據(jù); (2)為與外設(shè)接口雙向通信提供了6條或者8條簡捷的硬件連接線; (3)具有雙數(shù)據(jù)緩沖結(jié)構(gòu); (4)發(fā)送或者接收數(shù)據(jù)時,有集成的可選硬件壓擴(kuò)(A律或u律)功能;串行口串行口A A律、律、u u律壓擴(kuò)律壓擴(kuò) 所謂數(shù)據(jù)壓擴(kuò)就是利用對數(shù)編碼、解碼所謂數(shù)據(jù)壓擴(kuò)就是利用對數(shù)編碼、解碼算法對數(shù)據(jù)位進(jìn)行最小化處理。算法對數(shù)據(jù)位進(jìn)行最小化處理。 A A律壓擴(kuò):是將律壓擴(kuò)

53、:是將1313位線性碼壓縮成位線性碼壓縮成8 8位。位。 u u律壓擴(kuò):是將律壓擴(kuò):是將1414位線性碼壓縮成位線性碼壓縮成8 8位。位。返回1ADSP SHARC串行口的功能續(xù)(5)能實現(xiàn)與內(nèi)部處理器間在ADSP核控制下的中斷觸發(fā)的單字傳輸;(6)每個串行口都支持兩種傳輸模式:DMA塊傳輸和單字傳輸,實現(xiàn)串行口與內(nèi)部存儲器間的數(shù)據(jù)發(fā)送或接收;(7)支持多種操作模式:標(biāo)準(zhǔn)模式、IZS模式和TDM接口的多通道模式;(8)可編程實現(xiàn)332位數(shù)據(jù)傳輸,可以先傳高位或者先傳低位ADSP21160的串行口內(nèi)部結(jié)構(gòu)圖串行口的引腳描述ADSP21160每個串行口共有6個引腳如下:串行口控制寄存器和數(shù)據(jù)緩沖表

54、串行口控制寄存器和數(shù)據(jù)緩沖表續(xù)串行口發(fā)送和接收控制寄存器串口模式的設(shè)置:從上面的表格可以了解到(1)串口控制寄存器是IOP寄存器;(2)對于每一個串行口都有自己一套獨(dú)立的控制寄存器,可以利用處理器核寄存器對這些寄存器進(jìn)行讀寫;注: (1)對串口寄存器寫入新的值存在一個周期的延遲, (2)對于串行口的使能,要經(jīng)過兩個輸入時鐘周期,串行口才能開始發(fā)送或接收數(shù)據(jù)。串行口發(fā)送控制寄存器STCTLx位定義表在標(biāo)準(zhǔn)模式下數(shù)據(jù)格式:在標(biāo)準(zhǔn)模式下數(shù)據(jù)格式: 在多通道模式下數(shù)據(jù)格式:在多通道模式下數(shù)據(jù)格式: 串行口發(fā)送控制寄存器STCTLx位定義表續(xù)ADSP串行口設(shè)計和編程注意事項1.我們在編程時,首先是設(shè)置控

55、制寄存器,使能同步串行口傳輸,然后如果是發(fā)送數(shù)據(jù),只需把數(shù)據(jù)送入TX緩沖區(qū);如果是接收數(shù)據(jù)是從RX緩沖區(qū)取數(shù)。2.DSP的SPORT不是我們學(xué)習(xí)IBM PC硬件接口電路時所講的UART,所以不能直接和一個RS232設(shè)備通訊。3.有兩種方法可以復(fù)位SPORT串行口。一種是利用RESET引腳硬件復(fù)位法,另一種是通過對STCTLx和SRCTLx寄存器中串行口使能位SPEN位的清零,進(jìn)行軟件復(fù)位SPORT串行口。 串口模式的設(shè)置串口模式的設(shè)置 首先串口控制寄存器是首先串口控制寄存器是IOPIOP寄存器寄存器( (存儲存儲器映射寄存器器映射寄存器) ),所以不能直接和存儲器,所以不能直接和存儲器交換數(shù)據(jù)

56、,須處理器核寄存器作為中介,交換數(shù)據(jù),須處理器核寄存器作為中介,對于每一個串行口都有自己一套獨(dú)立的對于每一個串行口都有自己一套獨(dú)立的控制寄存器,可以利用處理器核寄存器控制寄存器,可以利用處理器核寄存器對這些寄存器進(jìn)行讀寫對這些寄存器進(jìn)行讀寫; ; 其次需要其次需要注意的是,對這些寄存器寫入注意的是,對這些寄存器寫入新的值存在一個周期的延遲,對于串行新的值存在一個周期的延遲,對于串行口的使能,要經(jīng)過兩個輸入時鐘周期,口的使能,要經(jīng)過兩個輸入時鐘周期,串行口才能開始發(fā)送或接收數(shù)據(jù)。串行口才能開始發(fā)送或接收數(shù)據(jù)。 串行口的應(yīng)用編程串行口的應(yīng)用編程 串行口的應(yīng)用編程,關(guān)鍵就是對發(fā)送控串行口的應(yīng)用編程,

57、關(guān)鍵就是對發(fā)送控制寄存器(制寄存器(STCTLxSTCTLx)和接收控制寄存器)和接收控制寄存器(SRCTLxSRCTLx)的設(shè)置,上述兩個寄存器的)的設(shè)置,上述兩個寄存器的位除位除21212828有所不同外,基本上相對應(yīng)。有所不同外,基本上相對應(yīng)。當(dāng)需要重新設(shè)定串行口的操作模式時,當(dāng)需要重新設(shè)定串行口的操作模式時,應(yīng)首先將串行口控制寄存器清零,然后應(yīng)首先將串行口控制寄存器清零,然后再寫入新的控制數(shù)據(jù)。再寫入新的控制數(shù)據(jù)。串行口發(fā)送、接收時鐘頻率計算公式fRCLK 串行口接收時鐘頻率 ; fTCLK 串行口發(fā)送時鐘頻率 RCLKDIV接收分頻系數(shù);TCLKDIV發(fā)送分頻系數(shù) fCCLK 處理器

58、核時鐘頻率;串口幀同步頻率 (1)每來一個時鐘脈沖,就會傳輸1位數(shù)據(jù)。 (2)在每個字或者數(shù)據(jù)塊發(fā)送或者接收的開始,串口要產(chǎn)生幀發(fā)送同步信號TFSx或者RFSx。 (3)內(nèi)部產(chǎn)生幀同步信號可以通過配置TDIVx和RDIVx寄存器的TFSDIV,RFSDlV位來設(shè)定幀同步信號的頻率。 (4)幀同步分頻系數(shù)表示有多個接收發(fā)送時鐘就產(chǎn)生一個幀同步脈沖TFS或RFS。幀同步頻率計算公式fTFS 發(fā)送幀同步頻率; fRFS 接收幀同步頻率fTCLK 串行口發(fā)送時鐘頻率; fRCLK 串行口接收時鐘頻率TFSDIV發(fā)幀同步分頻系數(shù); TFSDIV收送幀同步分頻系數(shù) 1.串口發(fā)送控制寄存器配置舉例SPEN=1 串口使能DTYPE00(b)標(biāo)準(zhǔn)模式,數(shù)據(jù)采用右對齊,未用的高位填0SENDN=0 先傳高位數(shù)據(jù)SLEN01111 串行數(shù)據(jù)長度選擇,字寬15116位字長PACK0 不使能16位到32位數(shù)據(jù)字打包ICLK1 內(nèi)部產(chǎn)生傳輸時鐘CKRE1 采樣數(shù)據(jù)/幀同步信號的時鐘邊沿選擇,1上升沿有效TFSR1 每個發(fā)送字都有幀同步信號ITFS1 內(nèi)部產(chǎn)生幀同步 1.串口發(fā)送控制寄存器配置舉例續(xù)根據(jù)上述要求編寫如下語句:根據(jù)上述要求編寫如下語句: r00 x000274f1;

溫馨提示

  • 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

提交評論