版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2.5片內(nèi)外設(shè)
’C54x
片內(nèi)外設(shè)包含如下幾部分:⑴外部總線操作;⑵通用I/O口(引腳);⑶定時器;⑷時鐘發(fā)生器;⑸主機接口;⑹同步串行接口;⑺時分復(fù)用串行接口(TDM);⑻軟件可編程等待狀態(tài)發(fā)生器;⑼可編程存儲器組切換模塊。JTAG接口2.5.1通用I/O口
通用I/O口有兩個:跳轉(zhuǎn)控制輸入引腳BIO和外部標志輸出引腳XF⒈跳轉(zhuǎn)控制輸入引腳BIO:該引腳可用于監(jiān)視外部設(shè)備的狀態(tài)。程序可以根據(jù)引腳BIO輸入狀態(tài)有條件地執(zhí)行一個分支轉(zhuǎn)移。條件執(zhí)行指令:
XCn,
cond[,cond[,cond]操作數(shù)n=1或2功能:1、如果n=1且條件滿足,則在該指令之后的一條1-字指令被執(zhí)行;
2、如果n=2且條件滿足,則在該指令之后的一條2-字指令或兩條1-字指令被執(zhí)行。
3、如果條件未滿足,則根據(jù)n=1或2執(zhí)行一條或兩條NOP指令。例一:XC1,ALEQ;如果A的值小于或等于0,則執(zhí)行1字指令MAR*AR1+以修改AR1MAR*AR1+ADDA,DAT100
指令執(zhí)行前指令執(zhí)行后
A=FFFFFFFFFFh A=FFFFFFFFFFh AR1=0031h AR1=0032h例二:XC2,BIO;如果引腳BIO為低電平(條件滿足),則執(zhí)行后面的一條雙字指令或2條單字指令。⒉外部標志輸出引腳XF外部標志輸出引腳XF可以用于向外部設(shè)備發(fā)出信號。XF信號可以由軟件控制。通過對STl(bit13)中的XF位置1或清0,XF引腳輸出為高電平和低電平,亦即CPU向外部發(fā)出1和0信號。
執(zhí)行指令:
SSBXXF;對XF置位
RSBXXF
;對XF復(fù)位2.5.2定時器
C5402內(nèi)部有定時器0和定時器1兩個定時器。結(jié)構(gòu)一樣。片內(nèi)硬件定時器是軟件可編程的,可用于周期性地產(chǎn)生中斷。定時器可以用來產(chǎn)生外部接口電路的采樣時鐘,如模擬接口。
1.定時器的結(jié)構(gòu)和特點定時器主要由3個16位的存儲器映像寄存器及相應(yīng)的邏輯控制電路組成。3個存儲器映像寄存器的地址列于下表中。Timer0地址Timer1地址寄存器說明0024H0030HTIM定時器寄存器,每計數(shù)一次自動減10025H0031HPRD定時器周期寄存器,當TIM減為0后,CPU自動將PRD的值裝入TIM0026H0032HTCR定時器控制寄存器,包含定時器的控制和狀態(tài)位
C54xDSP定時器結(jié)構(gòu)如下圖所示。它由兩個基本功能塊組成,即主定時器模塊(PRD和TIM)、預(yù)定標器模塊(TCR中的TDDR和PSC等)及相應(yīng)的邏輯控制電路。主定時器模塊(由PRD和TIM組成)預(yù)定標器模塊(由TCR的TDDR和PSC位組成)。
*定時器寄存器(TIM):是減1計數(shù)器,可加載周期寄存器PRD的值,并隨計數(shù)減少。*定時器周期寄存器(PRD):PRD用于重載定時器寄存器(TIM)。定時器控制寄存器(TCR)TCR包含定時器的控制和狀態(tài)位,控制定時器的工作過程。定時器主要特點:(1)定時器是一個減計數(shù)器。(2)由16位計數(shù)器和4位預(yù)分頻計數(shù)器組成。16位計數(shù)器的觸發(fā)脈沖由預(yù)分頻計數(shù)器提供,預(yù)分頻計數(shù)器的觸發(fā)脈沖是CPU時鐘信號。(3)有復(fù)位功能。(4)可以選擇調(diào)試斷點時定時器的工作方式。定時器控制寄存器的控制和狀態(tài)位如下:2.定時器控制寄存器(TCR)
TCR各位的意義描述如下表所示
3.定時器工作原理定時器的工作過程:定時器的基準工作脈沖由CLKOUT提供,每來一個脈沖,預(yù)定標計數(shù)器PSC減1,當PSC減至0時,下一個脈沖到來時,PSC產(chǎn)生借位。借位信號分別控制定時計數(shù)器TIM減1和重新將TDDR的內(nèi)容加載到預(yù)定標計數(shù)器PSC。每次定時計數(shù)器TIM
減為0時,PSC的下一個借位信號到來時,TIM也產(chǎn)生借位信號,此借位信號作為中斷信號送到CPU和定時器輸出引腳TOUT
,同時控制或門3重新用PRD值裝載TIM
。
定時器的基本定時周期(定時時間)T可由下式計算:
T=TCLKOUT*(TDDR+1)*(PRD+1)
4.定時器的初始化初始化定時器的步驟如下:(1)對寄存器TCR中的TSS位置1,停止定時器工作;(2)裝入PRD初值;(3)重新裝入TCR:初始化TDDR、將TSS清0啟動定時器、將TRB置1重新裝入定時初值(PRD加載到TIM,TDDR加載到PSC)。使能定時器中斷的操作步驟如下(假定INTM=1):(1)
將IFR中的TINT位置1,清除尚未處理完(掛起)的定時器中斷。(2)
將IMR中的TINT位置1,使能定時器中斷。(3)
將ST1中的INTM位清0,開放所有的中斷。例:用TMS320C54x作為信號發(fā)生器,輸出周期為8ms的方波信號。假定主頻f=10MHz。編寫出匯編源程序。解:因為輸出方波周期為8ms,所以定時中斷周期T(即定時時間)應(yīng)為4ms,每中斷1次將XF引腳的電平取反1次便可在XF引腳產(chǎn)生周期為8ms的方波。(TDDR+1)(PRD+1)=T*f,T*f=4*10-3*10*106=40000取TDDR+1=16,則PRD+1=40000/16=2500則TDDR=15,PRD=2499=9C3H程序如下:
.mmregs .def START .def INTSERVEX .usect "STACK",10定時器的使用FLAG .set 60h .textSTART: STM #X+10,SP STM #0120H,PMST;中斷向量表首址0100h,定時
;器中斷向量014ch STM #0010H,TCR STM #9C3H,PRD STM #0FEFH,TCRSSBXXFSTM#1,FLAG STM #08H,IFR STM #08H,IMR RSBX INTM WAIT: B WAIT;以下是中斷服務(wù)程序INTSERVE: RSBX CPL LD #0,DP BITF FLAG,#1 BC XFOUT,NTC RSBX XF STM #0,FLAG B NEXTXFOUT: SSBX XF STM #1,FLAGNEXT: RETE .end指令BITF Smem,#lk功能:如果((Smem)ANDlk)=0
則
否則 說明:該指令檢測數(shù)據(jù)存儲器操作數(shù)Smem的某位或多位,若指定位(一位或多位)為0,狀態(tài)寄存器ST0中的TC位清0,否則置1。常數(shù)lk用于屏蔽待檢測位。要檢測Smem中某位或某幾位是否為1時,常數(shù)lk中與之對應(yīng)的位應(yīng)為1,而其他位為0。例BITF60H,#0001H指令執(zhí)行前 TC=XDP=0RAM:(60H)=1205H7、命令文件的編寫命令文件在片內(nèi)RAM中定義幾個區(qū)間,用于存放與主程序和中斷服務(wù)程序、中斷向量表、堆棧相應(yīng)的段。指令執(zhí)行后TC=1DP=0RAM:(60H)=1205H定時器的使用用定時器可以實現(xiàn)方波發(fā)生器、脈沖頻率監(jiān)測器、周期信號周期監(jiān)測等功能。
ORM #0010h,TCR0;停止定時器0STM #799,TIM0STM #799,PRD0STM #K_TCR0,TCR0;啟動定時器0中斷;K_TCR0=0269HST #0FFFFh,IFR;初始化中斷
ORM #0008h,IMRRSBXINTM 例如:用定時器設(shè)計一個周期為4ms的方波信號發(fā)生器。假設(shè)DSP主頻為4MHZ(TCLKOUT=250ns),方波信號周期為4ms,那么定時中斷周期應(yīng)為T=2MS,每中斷一次,輸出端電平取反一次。定時中斷周期T=TCLKOUT*(TDDR+1)*(PRD+1),假設(shè)TDDR=9,那么PRD=799(031FH). 15-1211109-6543-0保留softfreePSCTRBTSSTDDR預(yù)定標計數(shù)器定時器重新加載控制位定時器停止位定時器分頻系數(shù);K_TCR0設(shè)置定時器0控制寄存器的內(nèi)容K_TCR0_SOFT.set0b<<11K_TCR0_FREE.set0b<<10K_TCT0_PSC.set1001b<<6K_TCT0_TRB.set1b<<5K_TCT0_TSS.set0b<<4K_TCT0_TDDR.set1001b<<0K_TCR0.setK_TCR0_SOFT|K_TCR0_FREE|K_TCT0_PSC|K_TCT0_TRB|K_TCT0_TSS|K_TCR0_TDDR;初始化定時器0
t0_flag.usect"vars",1
timout:PSHMST0 PSHMST1BITFt0_flag,#1 BCxf_out,NTC SSBXXF ST#0,t0_flag Bnextxf_out:RSBXXF ST#1,t0_flagnext: POPMST1POPMST0 RETE;當前XF輸出電平標志位,如果t1_flag=1,;則XF=1;如果t1_flag=0,則XF=0
.sect“.vector”rst:b_c_int00
nop
nop
nop space18*4*16tint0: btimout
利用DSP的定時器,在XF引腳輸出一個頻率為1kHz的方波。編程要求:(1)DSP實驗板上晶振頻率為16MHz,對時鐘發(fā)生器的PLL編程,使CPU的時鐘頻率為32MHz;(2)定時器采用中斷方式定時,將中斷向量表移到從0100h單元開始的程序存儲空間。1、計算定時器的參數(shù)TDDR和PRD2、由中斷向量表起始地址0100H求出IPTR值3、由IPTR、MP/MC、OVLY、DROM、CLKOFF等的值求得PMST的值。4、由中斷向量表起始地址0100H和定時器0的中斷號求得定時器0的中斷向量地址5、編寫主程序。主程序主要是對DSP初始化,主要包括:(1)設(shè)置堆棧和堆棧指針(中斷時堆棧用于保存斷點地址)(2)PMST寄存器的初始化(3)定時器的初始化(包括中斷初始化)6、編寫中斷服務(wù)程序中斷服務(wù)程序主要作用是:每次定時時間到時,將XF引腳的狀態(tài)取反。但DSP沒有取反指令,因此,進入中斷服務(wù)程序后首先要判斷XF引腳的當前狀態(tài),若為1則修改為0,若為0則修改為1。為此,需要將數(shù)據(jù)存儲器的某個單元作為標志單元,該單元的某個位作為標志位,用此標志位來標志XF引腳的狀態(tài)。每次進入中斷服務(wù)程序后通過檢測該標志位的值來判斷XF引腳當前的狀態(tài)。指令BITF Smem,#lk功能:如果((Smem)ANDlk)=0
則
否則 說明:該指令檢測數(shù)據(jù)存儲器操作數(shù)Smem的某位或多位,若指定位(一位或多位)為0,狀態(tài)寄存器ST0中的TC位清0,否則置1。常數(shù)lk用于屏蔽待檢測位。要檢測Smem中某位或某幾位是否為1時,常數(shù)lk中與之對應(yīng)的位應(yīng)為1,而其他位為0。例BITF60H,#0001H指令執(zhí)行前 TC=XDP=0RAM:(60H)=1205H7、命令文件的編寫命令文件在片內(nèi)RAM中定義幾個區(qū)間,用于存放與主程序和中斷服務(wù)程序、中斷向量表、堆棧相應(yīng)的段。指令執(zhí)行后TC=1DP=0RAM:(60H)=1205H練習解答5.3鏈接命令文件有什么作用?在生成DSP代碼過程中何時發(fā)揮這些作用?答:鏈接命令文件的主要作用有兩方面:一是利用MEMORY命令定義目標系統(tǒng)的存儲器配置,包括對存儲器各部分命名,以及規(guī)定它們的起始地址和長度;一是利用SECTIONS命令告訴鏈接器如何將輸入段組合成輸出段,以及將輸出段放在存儲器中的什么位置。這些作用是在鏈接器對目標文件進行鏈接的過程中起作用的。
5.10在文件的鏈接過程中,需要用到Linker命令文件。請按如下參數(shù)設(shè)計一個命令文件,其參數(shù)為: 中斷向量表起始地址為7600H;長度為8000H; 源程序代碼在中斷向量之后; 初始化數(shù)據(jù)起始為1F10H;長度為4000H; 未初始化數(shù)據(jù)在初始化數(shù)據(jù)之后。解:命令文件為:MEMORY{PAGE0:PROM: org=7600h,len=8000hPAGE1:DRAM: org=1F10h,len=4000h}SECTIONS{.vectors :>PROMPAGE0.text :>PROMPAGE0.data :>DRAMPAGE1.bss :>DRAMPAGE1}2.6中斷系統(tǒng)
C54xDSP既支持軟件中斷,也支持硬件中斷:1、軟件中斷:由程序指令(INTR、TRAP或RESET)請求的中斷。2、硬件中斷:由物理設(shè)備信號請求的中斷,他有兩種形式:①受外部中斷口信號觸發(fā)的外部硬件中斷。②受片內(nèi)外設(shè)信號觸發(fā)的內(nèi)部硬件中斷。一、中斷分類分成如下兩大類:可屏蔽中斷和不可屏蔽中斷。1、可屏蔽中斷:可以用軟件來屏蔽或使能的中斷’C54xDSP最多可以支持16個用戶可屏蔽中斷,例如’C5402只使用14個可屏蔽中斷。這14個中斷的硬件名稱為:
①
②
RINT0、XINT0、RINT1和XINT1(串行口中斷)③TINT0、TINT1(定時器中斷)④HPINT、DMAC0、DMAC4、
DMAC52、非屏蔽中斷:這些中斷是不能夠屏蔽的。包括所有的軟件中斷,以及兩個外部硬件中斷(復(fù)位和)。
C5402中斷源的中斷向量及硬件中斷優(yōu)先權(quán)二、中斷標志寄存器(IFR)
中斷標志寄存器:是一個存儲器映射的CPU寄存器,每個可屏蔽中斷在IFR中有其相應(yīng)的中斷標志位,當CPU接收到可屏蔽中斷請求時,IFR相應(yīng)的位置1。直到CPU響應(yīng)該中斷為止。
將中斷標志清0
的4種方法:①’C54xDSP復(fù)位(引腳為低電平)。②中斷得到處理。③將1寫到IFR中的適當位(相應(yīng)的位變?yōu)?),相應(yīng)的尚未處理的中斷被清除。④利用合適的中斷號執(zhí)行INTR指令。三、中斷屏蔽寄存器(IMR)
中斷屏蔽寄存器(IMR):是一個存儲器映射的CPU寄存器,用來屏蔽外部和內(nèi)部的可屏蔽中斷。
如果狀態(tài)寄存器ST1中的INTM位=1,IMR無效。當ST1中的INTM位=0時,
IMR寄存器中的某一位為1,就使能相應(yīng)的中斷。用戶可以對IMR寄存器進行讀寫操作。
四、處理中斷的步驟
’C54xDSP處理中斷分如下三個步驟:1、接收中斷請求通過軟件(程序代碼)或硬件(引腳或片內(nèi)外設(shè))請求掛起主程序。如果中斷源正在請求一個可屏蔽中斷,則當中斷被接收到時中斷標志寄存器(IFR)的相應(yīng)位被置1。(1)
硬件中斷請求
’C5402硬件中斷的請求信號:
外部中斷口可屏蔽中斷:
INT3~INT0引腳;
外部口非屏蔽中斷:RS和NMI引腳;
片內(nèi)外設(shè)中斷:BRINT0、BXINT0、BRINT1和BXINT1(串口中斷)
TINT0、TINT1(定時器中斷);
DMAC4、DMAC5(DMA中斷);
HPINT(HPI中斷)。
(2)
軟件中斷請求
軟件中斷是由程序指令產(chǎn)生的中斷請求,主要有3條指令:
INTR、TRAP
、RESET指令軟件中斷指令
INTR:語法:INTRK;K為中斷號,0≤K≤31執(zhí)行:例
INTR3指令執(zhí)行前PC=0025h,IPTR=1FFhINTM=0SP=1000hRAM:(0FFFh)=9653h指令執(zhí)行后PC=FF8ChINTM=1SP=0FFFhRAM:(0FFFh)=0026h軟件中斷指令TRAP:語法:TRAPK;K為中斷號,0≤K≤31執(zhí)行:軟件復(fù)位指令RESET:語法:RESET;無操作數(shù)執(zhí)行:對PC、ST0、ST1、IFR加載初始值如下:(IPTR)<<7→PC1→C0→DP0→BRAF0→C160→CPL0→OVM0→OVA1→TC1→SXM0→HM0→FRCT1→INTM0→OVB0→ARP0→ASM1→XF0→CMPT0→IFR該指令執(zhí)行非屏蔽的軟件復(fù)位,以便使C54x處于一個可知狀態(tài)。2、應(yīng)答中斷
對于軟件中斷和非屏蔽的硬件中斷,CPU將立即響應(yīng),進入相應(yīng)中斷服務(wù)程序。
對于硬件可屏蔽中斷,滿足以下3種條件CPU才能響應(yīng)中斷。
①
中斷優(yōu)先級最高(當同時出現(xiàn)一個以上中斷請求時)。②INTM位清0。③IMR屏蔽位為1。
滿足上述條件后,CPU響應(yīng)中斷,終止當前正進行的操作,指令計數(shù)器PC自動轉(zhuǎn)向相應(yīng)的中斷向量地址,取出中斷服務(wù)程序地址,并發(fā)出硬件中斷響應(yīng)信號IACK,而清除相應(yīng)的中斷標志位。⒊執(zhí)行中斷服務(wù)程序(ISR)
當應(yīng)答中斷后,CPU會采取如下的操作:1、把程序計數(shù)器(PC)值(返回地址)壓入堆棧;注意:程序計數(shù)器擴展寄存器(XPC)不會自動保存在堆棧中。因此,如果ISR位于和中斷向量表不同的頁面,用戶必須在分支轉(zhuǎn)移到ISR之前壓入XPC到堆棧中。FRET[E]指令可以用于從ISR返回。2、將中斷向量的地址加載到PC;3、取出位于中斷向量地址處的分支轉(zhuǎn)移指令(分支轉(zhuǎn)移被延時時,并且用戶也存儲了一個2字指令或兩個1字指令,則CPU也會獲取這兩個字);4、執(zhí)行分支轉(zhuǎn)移,轉(zhuǎn)到中斷服務(wù)程序(ISR)。(如果分支轉(zhuǎn)移被延時,則在分支轉(zhuǎn)移之前會執(zhí)行額外的指令);5、執(zhí)行中斷服務(wù)程序直到遇到其中的返回指令;6、從堆棧中彈出返回地址到PC中(注意
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- (參考)酒瓶項目立項報告
- 2023年大功率多功能電子式電度表項目融資計劃書
- 2023年工業(yè)涂料水性色漿項目融資計劃書
- ASP模擬考試題及答案
- 養(yǎng)老院老人請假外出審批制度
- 《標準成本差異分析》課件
- 《砂卡井的處理方法》課件
- 《傳播概念的分享》課件
- 教師教學能力大賽培訓合同(2篇)
- 2024年生日蛋糕卡定制及設(shè)計服務(wù)采購合同模板3篇
- 2023電力建設(shè)工程監(jiān)理月報范本
- 汽車空調(diào)檢測與維修-說課課件
- 氨水濃度密度對照表
- 白雪歌送武判官歸京公開課一等獎?wù)n件省課獲獎?wù)n件
- 園林植物栽培與環(huán)境
- 小型雙級液壓舉升器設(shè)計
- 9月支部委員會會議記錄
- 寺廟消防安全規(guī)定
- 學會正當防衛(wèi)課件
- 木質(zhì)吸音板施工工藝
- 天津市年中考數(shù)學題型專項訓練:旋轉(zhuǎn)問題含答案名師(完整版)資料
評論
0/150
提交評論