版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第二章第二章 tms320c54x的結構原理的結構原理 本章主要介紹本章主要介紹tms320c54x dsp的內部結的內部結構和工作原理,包括構和工作原理,包括cpu結構、總線結構、結構、總線結構、存儲體結構和外圍設備等。存儲體結構和外圍設備等。重點:重點: cpu和外設的寄存器設置和外設的寄存器設置第二章第二章 tms320c54x的結構原理的結構原理 本章內容:本章內容:1. tms320系列系列dsp概述概述ti市場地位:l1.dsp產品全球第一l2.模擬產品全球第一l3.無線產品全球第一l4.圖形計算器全球第一l5.硬盤產品全球第一tms320系列dsp的分類和用途 集成了集成了fla
2、sh存儲器、高速存儲器、高速a/d轉換器以及可靠的轉換器以及可靠的can模塊及數(shù)字馬達控制的外圍模塊,適用于運動控制領模塊及數(shù)字馬達控制的外圍模塊,適用于運動控制領域。域。 包括包括tms320c5x /c54x/ c55x 成本低,經(jīng)濟性好,成本低,經(jīng)濟性好,主要用于個人電子類產品主要用于個人電子類產品 。 tms320c62x/c67x , c64x,在時鐘頻率為,在時鐘頻率為1.1ghz時,時,每秒可執(zhí)行每秒可執(zhí)行90億條指令,適合進行復雜運算處理。億條指令,適合進行復雜運算處理。 (1)tms320c2000系列系列tms320c20xl20x是2000系列中早期的產品主要特點:主要特
3、點:tms320c24x24x系列在20x的基礎上,增加功能: tms320c28x28x系列是目前數(shù)字控制領域中性能最好的dsp芯片。與24x相比做了如下的改進:general purpose input output 多通道緩多通道緩沖串行口沖串行口。是在標準是在標準串行接口串行接口的基礎之的基礎之上對功能上對功能進行擴展,進行擴展,因此,具因此,具有與標準有與標準串行接口串行接口相同的基相同的基本功。本功。sci是用于多是用于多處理器之間處理器之間的異步串行的異步串行通信通信,spi則是用于則是用于cpu與外設與外設之間的同步之間的同步串行通信串行通信 dsessscsip數(shù)據(jù)暫存器數(shù)據(jù)
4、暫存器執(zhí)執(zhí) 行行 部部 件件控控 制制 電電 路路指令譯碼器指令譯碼器總線總線接口接口控制控制電路電路axbxcxdxahbhchdhsidibpspalblcldl寄存器組寄存器組biuabdbcb地地址址加加法法器器指指令令隊隊列列psw標志寄存器標志寄存器eu運運算算器器dsessscsip數(shù)據(jù)暫存器數(shù)據(jù)暫存器執(zhí)執(zhí) 行行 部部 件件控控 制制 電電 路路指令譯碼器指令譯碼器總線總線接口接口控制控制電路電路axbxcxdxahbhchdhsidibpspalblcldl寄存器組寄存器組abdbcb地地址址加加法法器器指指令令隊隊列列psw標志寄存器標志寄存器運運算算器器atmppswbsp
5、dptrrampcromp1p2p3p0定時定時中斷中斷串口串口irplaid振振蕩蕩x1x2 psen rst ale eap0p1p2p3alu(2)tms320c5000系列系列tms320c55xtms320c55x主要特點主要特點tms320c55x主要特點(續(xù))主要特點(續(xù))l大容量大容量ram(128k)和)和rom(32k););l功耗更低,功耗更低,1.26v的內核工作電壓,的內核工作電壓,3.3v外設工外設工作電壓;作電壓;l價格便宜,第一款低于價格便宜,第一款低于5美元的雙核美元的雙核dsp;l采用新型生產工藝,芯片體積小。采用新型生產工藝,芯片體積小。(3)tms320
6、c6000系列系列(4)tms320c5000+arm7dsp+arm risc多應用于多媒體設備多應用于多媒體設備ti dsp命名方式命名方式dsp常見封裝形式常見封裝形式dsp常見封裝形式(續(xù))常見封裝形式(續(xù)) dsp常見封裝形式(續(xù))常見封裝形式(續(xù))2. tms320c54x數(shù)字信號處理器數(shù)字信號處理器 lc54x數(shù)字信號處理器是數(shù)字信號處理器是ti公司公司1996年推出的年推出的 新一代定點數(shù)字信號處理器。它采用先進的新一代定點數(shù)字信號處理器。它采用先進的修修 正哈佛結構正哈佛結構,片內共有,片內共有8條總線(條總線(1條程序總線、條程序總線、 3條數(shù)據(jù)總線和條數(shù)據(jù)總線和4條地址總
7、線條地址總線),高度并行的算),高度并行的算 術邏輯單元術邏輯單元alu,專用硬件邏輯,片內存儲,專用硬件邏輯,片內存儲 器,片內外設,再加上專用的指令系統(tǒng),使器,片內外設,再加上專用的指令系統(tǒng),使 c54x芯片速度更高,操作更靈活,非常適用于芯片速度更高,操作更靈活,非常適用于 遠程通信等實時嵌入式應用的需要。遠程通信等實時嵌入式應用的需要。 c54x的硬件結構框圖 c54xdsp特點特點l改進的哈佛結構和改進的哈佛結構和8總線結構總線結構: 使處理器的性能大大提高,實現(xiàn)高度并行操作。使處理器的性能大大提高,實現(xiàn)高度并行操作。例如:可以在一條指令中,同時執(zhí)行例如:可以在一條指令中,同時執(zhí)行2
8、次讀操作次讀操作和和1次寫操作。次寫操作。c54xdsp特點(續(xù))特點(續(xù))l獨立的獨立的dma總線和控制器總線和控制器:獨立的獨立的dma總線,與總線,與cpu的程序、數(shù)據(jù)總的程序、數(shù)據(jù)總線并行工作,在不影響線并行工作,在不影響cpu工作的條件工作的條件下,下,dma速度目前已達速度目前已達800mbyte/sc54xdsp特點(續(xù))特點(續(xù))l數(shù)據(jù)地址發(fā)生器(數(shù)據(jù)地址發(fā)生器(dag):v在通用在通用cpu中,數(shù)據(jù)地址的產生和數(shù)據(jù)中,數(shù)據(jù)地址的產生和數(shù)據(jù)的處理都由的處理都由alu來完成來完成v在在dsp中,設置了專門的數(shù)據(jù)地址發(fā)生中,設置了專門的數(shù)據(jù)地址發(fā)生器(實際上是專門的器(實際上是專門
9、的alu),來產生所),來產生所需要的數(shù)據(jù)地址,節(jié)省公共需要的數(shù)據(jù)地址,節(jié)省公共alu的時間的時間c54xdsp特點(續(xù))特點(續(xù))lpll(phase-locked loop )鎖相環(huán))鎖相環(huán)l定時器定時器(timer)l軟件可編程等待狀態(tài)發(fā)生器軟件可編程等待狀態(tài)發(fā)生器ljtag(符合(符合ieee1149.1標準)仿真接口標準)仿真接口電氣電子工程師協(xié)會電氣電子工程師協(xié)會(institute of electrical and electronics engineers) 3.總線結構總線結構3.總線結構總線結構l八組八組16-bit總線:總線: 程序總線(程序總線(pb)傳送從程序存儲器
10、來的指令代碼和立)傳送從程序存儲器來的指令代碼和立即數(shù)。即數(shù)。 三組數(shù)據(jù)總線(三組數(shù)據(jù)總線(cb,db和和eb)連接各種元器件,如)連接各種元器件,如cpu、數(shù)據(jù)地址產生邏輯、程序地址產生邏輯,片內、數(shù)據(jù)地址產生邏輯、程序地址產生邏輯,片內外設和數(shù)據(jù)存儲器。外設和數(shù)據(jù)存儲器。cb和和db總線傳送從數(shù)據(jù)存儲器總線傳送從數(shù)據(jù)存儲器讀讀出的操作數(shù)。出的操作數(shù)。eb總線傳送總線傳送寫寫入到存儲器中的數(shù)據(jù)。入到存儲器中的數(shù)據(jù)。 四組地址總線(四組地址總線(pab,cab,dab和和eab)傳送執(zhí)行)傳送執(zhí)行指令和讀寫數(shù)據(jù)所需要的地址。指令和讀寫數(shù)據(jù)所需要的地址。3.總線結構總線結構 各種讀/寫方式用到的
11、總線4.存儲器與存儲空間存儲器與存儲空間片內存儲器介紹片內存儲器介紹片內存儲器介紹(續(xù))片內存儲器介紹(續(xù))片內片內rom空間分配空間分配片內片內rom的分塊操作的分塊操作片內片內ram的分塊操作的分塊操作程序存儲空間和數(shù)據(jù)存儲空間程序存儲空間和數(shù)據(jù)存儲空間pmst和存儲空間分配關系和存儲空間分配關系數(shù)據(jù)存儲空間分頁管理數(shù)據(jù)存儲空間分頁管理程序存儲空間分頁管理程序存儲空間分頁管理c5402分頁擴展程序存儲空間圖(1)c5402分頁擴展程序存儲空間圖(2)c5402分頁擴展程序存儲空間圖(3)存儲器映射存儲器映射cpu寄存器寄存器存儲器映射存儲器映射cpu寄存器功能簡介(寄存器功能簡介(1)l輔
12、助寄存器(輔助寄存器(ar0ar7):8個個16位的輔助寄位的輔助寄存器可以由中心算術邏輯單元存器可以由中心算術邏輯單元calu訪問,也訪問,也可以由輔助寄存器算術單元可以由輔助寄存器算術單元arua修改,主要修改,主要功能是產生功能是產生16位的數(shù)據(jù)地址,也可以作為通用位的數(shù)據(jù)地址,也可以作為通用寄存器和計數(shù)器使用。寄存器和計數(shù)器使用。lt寄存器(寄存器(treg):主要用于存放乘法指令:主要用于存放乘法指令的一個乘數(shù),也可以為移位指令存放移位計數(shù),的一個乘數(shù),也可以為移位指令存放移位計數(shù),還可以存放指數(shù)運算指令還可以存放指數(shù)運算指令exp的指數(shù)值等。的指數(shù)值等。存儲器映射存儲器映射cpu寄
13、存器功能簡介(寄存器功能簡介(2)l狀態(tài)轉移寄存器(狀態(tài)轉移寄存器(trn):在執(zhí)行比較指令:在執(zhí)行比較指令cmps時,可以通過該寄存器位值的變化來判時,可以通過該寄存器位值的變化來判斷比較結果。斷比較結果。l堆棧指針寄存器(堆棧指針寄存器(sp):用于存放棧頂?shù)模河糜诖娣艞m數(shù)?6位地址。位地址。l循環(huán)緩沖區(qū)長度寄存器(循環(huán)緩沖區(qū)長度寄存器(bk):用來在循環(huán):用來在循環(huán)尋址時確定循環(huán)緩沖區(qū)的大小。尋址時確定循環(huán)緩沖區(qū)的大小。存儲器映射存儲器映射cpu寄存器功能簡介(寄存器功能簡介(3)l塊循環(huán)寄存器(塊循環(huán)寄存器(brc,rsa,rea):在執(zhí)行塊:在執(zhí)行塊循環(huán)指令時由循環(huán)指令時由brc確
14、定一塊代碼需要循環(huán)的確定一塊代碼需要循環(huán)的次數(shù);由次數(shù);由rsa指定需要循環(huán)塊的起始地址,由指定需要循環(huán)塊的起始地址,由rea指定循環(huán)塊的結束地址。指定循環(huán)塊的結束地址。l中斷寄存器(中斷寄存器(imr,ifr):中斷屏蔽寄存器:中斷屏蔽寄存器imr用于屏蔽指定的中斷,中斷狀態(tài)寄存器用于屏蔽指定的中斷,中斷狀態(tài)寄存器ifr用來表示各個中斷的當前狀態(tài)。用來表示各個中斷的當前狀態(tài)。存儲器映射外圍電路寄存器存儲器映射外圍電路寄存器i/o存儲空間如:如:portr pa, smem ; pa為端口地址,為端口地址,smem為內存地址為內存地址 portw smem, pa;5.中央處理單元(中央處理單
15、元(cpu)v通用微處理器的通用微處理器的cpu由由alu和和cu組成,其組成,其算術運算和邏輯運算通過軟件來實現(xiàn),如算術運算和邏輯運算通過軟件來實現(xiàn),如加法需要加法需要10個機器周期,乘法是一系列的個機器周期,乘法是一系列的移位和加法,需要數(shù)十個機器周期。移位和加法,需要數(shù)十個機器周期。vdsp的的cpu設置硬件乘法器,可以在單周設置硬件乘法器,可以在單周期內完成乘法和累加期內完成乘法和累加cpu的基本組成cpu狀態(tài)和控制寄存器狀態(tài)和控制寄存器 40位算術邏輯單元(位算術邏輯單元(alu) 40位累加器位累加器a和和b桶形移位寄存器桶形移位寄存器乘法器乘法器/加法器單元加法器單元比較、選擇和
16、存儲單元(比較、選擇和存儲單元(cssu)指數(shù)編碼器指數(shù)編碼器算術邏輯單元(alu)和累加器ltms320c54x使用使用40位算術邏輯單元(位算術邏輯單元(alu)和兩個和兩個40位累加器(位累加器(acca和和accb)來完成)來完成算術運算和邏輯運算,且大多數(shù)都是單周期指算術運算和邏輯運算,且大多數(shù)都是單周期指令。令。alu功能框圖16位數(shù)據(jù)的符號位數(shù)據(jù)的符號位擴展:位擴展:(1)當)當st1寄存寄存器中的器中的sxm=0時;時;高位全部添高位全部添0(2)當)當st1寄存寄存器中的器中的sxm=1,進行符號位擴展,進行符號位擴展,正數(shù)全部添正數(shù)全部添0;負;負數(shù)全部添數(shù)全部添1溢出處理
17、累加器累加器a和和b累加器內容保存累加器內容保存l 例如:累加器例如:累加器a=ff 4321 1234h移位移位vdsp可以在一個機器周期內左移或右移多個可以在一個機器周期內左移或右移多個bit,可以用,可以用來對數(shù)字定標,使之放大或縮小,以保證精度和防止溢來對數(shù)字定標,使之放大或縮小,以保證精度和防止溢出;還可以用來作定點數(shù)和浮點數(shù)之間的轉換出;還可以用來作定點數(shù)和浮點數(shù)之間的轉換v例:例:vadd a,4,b; 累加器累加器a右移右移4位后加到累加器位后加到累加器bvadd a,asm,b;累加器累加器a按按asm指定的位數(shù)移位指定的位數(shù)移位 v 后加到累加器后加到累加器b桶形移位寄存器
18、l桶形移位寄存器的輸入可以為:桶形移位寄存器的輸入可以為:l從從db獲得的獲得的16位操作數(shù);位操作數(shù);l從從db和和cb獲得的獲得的32位操作數(shù);位操作數(shù);l從累加器從累加器a或或b獲得的獲得的40位操作數(shù)。位操作數(shù)。l桶形移位寄存器的輸出連到桶形移位寄存器的輸出連到alu或經(jīng)或經(jīng)eb總線總線寫入指定存儲單元。寫入指定存儲單元。桶型移位器功能框圖 乘法器/加法器單元lc54x cpu有一個有一個17x17位的硬件乘法器,與位的硬件乘法器,與40位的專位的專用加法器相連,可以在單周期內完成一次乘法累加運用加法器相連,可以在單周期內完成一次乘法累加運算。乘法器的輸出經(jīng)小數(shù)算。乘法器的輸出經(jīng)小數(shù)/
19、整數(shù)乘法(整數(shù)乘法(frct/int)輸)輸入控制后加到加法器的一個輸入端,加法器的另一個入控制后加到加法器的一個輸入端,加法器的另一個輸入端來自累加器輸入端來自累加器a或或b。l加法器還包括零檢測器、舍入器(二進制補碼)及溢加法器還包括零檢測器、舍入器(二進制補碼)及溢出出/飽和邏輯電路。飽和邏輯電路。乘法器/加法器單元功能框圖 乘/加單元實現(xiàn)xiyi運算過程比較、選擇和存儲單元功能框圖 比較、選擇和存儲單元功能框圖例如,用例如,用cmps指令對累加器指令對累加器a中中ah和和al的內容進行比較,的內容進行比較,并將較大的數(shù)存放到指定單元并將較大的數(shù)存放到指定單元cmps a,*ar1;(a
20、h)(al),則(),則(ah)*ar1,trn左移左移1位,低位補位,低位補0,tc置置0(ah)a處理器方式狀態(tài)寄存器處理器方式狀態(tài)寄存器pmst的位結構的位結構狀態(tài)寄存器pmst利用輔助寄存器進行間接尋址示意圖利用輔助寄存器進行間接尋址示意圖影響影響tc位的指令位的指令利用利用dp進行直接尋址進行直接尋址ld #4ld #4,dp dp ;指;指向頁向頁4 4(0200h-0200h-027fh027fh)add 9hadd 9h,a a ;將;將數(shù)據(jù)頁數(shù)據(jù)頁4 4中地址中地址9h9h的的數(shù)據(jù)加給數(shù)據(jù)加給acca利用利用sp進行直接尋址進行直接尋址循環(huán)對循環(huán)對xf位置位置1和清和清0,
21、控制控制led亮滅亮滅*循環(huán)對循環(huán)對xf位置位置1和清和清0,用示波器可以在,用示波器可以在xf腳檢測到電平高低周期性變化,常用于腳檢測到電平高低周期性變化,常用于檢測檢測dsp是否工作是否工作*codestart: ;程序入口程序入口ssbx xf ;xf置置1rpt #999 ;重復執(zhí)行下面一條指令重復執(zhí)行下面一條指令1000次次nop ;空指令產生延時空指令產生延時rsbx xf ;xf清清0rpt #999 ;重復執(zhí)行重復執(zhí)行1000次空指令產生延時次空指令產生延時nop b codestart ;跳轉到程序開頭循環(huán)執(zhí)行跳轉到程序開頭循環(huán)執(zhí)行.end nop指令執(zhí)行時間為一個時鐘周期,
22、設指令執(zhí)行時間為一個時鐘周期,設dsp工作頻率是工作頻率是50mhz,可以估算出,可以估算出xf引腳電平引腳電平的變化頻率約為:的變化頻率約為:50m/2000=25khz 用兩級減一計數(shù)器來增長延時時間用兩級減一計數(shù)器來增長延時時間codestart: ;程序入口程序入口 ssbx xf ;xf置置1 call delay ;調用延時程序調用延時程序 rsbx xf ;xf清清0 call delay ;調用延時程序調用延時程序 b codestart ;跳轉到程序開頭循環(huán)執(zhí)行跳轉到程序開頭循環(huán)執(zhí)行 delay: stm #999,ar1 ;循環(huán)次數(shù)循環(huán)次數(shù)1000loop1: stm #4
23、999, ar2 ;循環(huán)次數(shù)循環(huán)次數(shù)5000loop2: banz loop2,*ar2- ;如果如果ar2不等于不等于0,ar2減減1,再判斷,再判斷 banz loop1,*ar1- ;如果如果ar1不等于不等于0,ar1減減1,跳轉到跳轉到loop1 ret按此法延時的近似公式為:按此法延時的近似公式為:4*(ar2+1)*(ar1+1)時鐘時鐘周期周期,當當dsp工作在工作在50mhz(時鐘周期時鐘周期20ns),ar1=999, ar2=4999時時,延時約為延時約為400ms,則,則led閃爍的周期為閃爍的周期為800ms,頻率,頻率1.25hz.6.程序地址生成器程序地址生成器程
24、序計數(shù)器程序計數(shù)器pcl 加載地址到加載地址到pc的幾種途徑的幾種途徑操操 作作 加加載載到到 pc 的的地地址址 復位 pc=ff80h 順序執(zhí)行指令 pc=pc+1 分支轉移 用緊跟在分支轉移指令后面的 16 位立即數(shù)加載 pc 由累加器分支轉移 用累加器 a 或 b 的低 16 位加載 pc 塊重復循環(huán) 假如 braf=1(塊重復有效), 當 pc+1 等于塊重復結束地址(rea)+1 時,將塊重復起始地址(rsa)加載 pc 子程序調用 將 pc+2 壓入堆棧, 并用緊跟在調用指令后面的 16 位立即數(shù)加載 pc。返回指令將棧頂彈出至 pc,回到原先的程序處繼續(xù)執(zhí)行 從累加器調用子程序
25、 將 pc+1 壓入堆棧,用累加器 a 或 b 的低 16 位加載 pc。返回指令將棧頂彈出至 pc,回到原先的程序處繼續(xù)執(zhí)行 硬件中斷或軟件中斷 將 pc 壓人堆棧,用適當?shù)闹袛嘞蛄康刂芳虞d pc。中斷返回時,將棧頂彈出至 pc,繼續(xù)執(zhí)行被中斷了的程序 bacc src b pmad call pmad cala src intr k分支轉移操作l (1)無條件分支轉移)無條件分支轉移;此時;此時pc=pmad,pmad為一個為一個16位位 的地址,程序轉移到在此地址處的的地址,程序轉移到在此地址處的 指令開始執(zhí)行。指令開始執(zhí)行。例如:例如: ;src為累加器(為累加器(a/b);此時把累加
26、);此時把累加 器低器低16位中的值作為指令地址加載位中的值作為指令地址加載 到到pc,程序從此地址處的指令開,程序從此地址處的指令開 始執(zhí)行。始執(zhí)行。例如:例如:ld #80h,a bacc a;從;從0 x80起始的內存處開始程序。起始的內存處開始程序。 (2)條件分支轉移)條件分支轉移;cond作為轉移條件,如果作為轉移條件,如果 cond成立,則成立,則pc=pmad, 即從此地址處的指令開始執(zhí)即從此地址處的指令開始執(zhí) 行。行。;sind為一個操作數(shù),若此為一個操作數(shù),若此 操作數(shù)不為操作數(shù)不為0,則,則pc=pmad。調用和返回調用和返回l (1)無條件調用返回)無條件調用返回l無條
27、件調用和返回指令有以下幾種:無條件調用和返回指令有以下幾種:;將返回地址壓入堆棧,;將返回地址壓入堆棧,pmad加載加載 pc。;將返回地址壓入堆棧,累加器低;將返回地址壓入堆棧,累加器低 16位加載位加載pc。;用棧頂?shù)姆祷氐刂芳虞d;用棧頂?shù)姆祷氐刂芳虞dpc。;返回地址加載;返回地址加載pc,并開放中斷。,并開放中斷。(2)條件調用返回)條件調用返回l條件調用和返回指令有兩種:條件調用和返回指令有兩種:如果指令規(guī)定的條件得到滿如果指令規(guī)定的條件得到滿 足,則先將返回地址壓入堆足,則先將返回地址壓入堆 棧,然后用所指定的地址加棧,然后用所指定的地址加 載載pc。;如果指令中的條件得到滿足,則將
28、;如果指令中的條件得到滿足,則將 棧頂?shù)姆祷氐刂芳虞d棧頂?shù)姆祷氐刂芳虞dpc。條件指令中的條件判斷條件指令中的條件判斷操操 作作 數(shù)數(shù) 符符 號號 條條 件件 說說 明明 aeq a=0 累 加 器 a 等 于 0 beq b=0 累 加 器 b 等 于 0 aneq a0 累 加 器 a 不 等 于 0 bneq b0 累 加 器 b 不 等 于 0 alt a0 累 加 器 a 小 于 0 blt b0 累 加 器 b 小 于 0 aleq a0 累 加 器 a 小 于 等 于 0 bleq b0 累 加 器 b 小 于 等 于 0 agt a0 累 加 器 a 大 于 0 bgt b0 累
29、 加 器 b 大 于 0 ageq a0 累 加 器 a 大 于 等 于 0 bgeq b0 累 加 器 b 大 于 等 于 0 見書附錄見書附錄c條件指令中的條件判斷(續(xù))條件指令中的條件判斷(續(xù))操作數(shù)符號操作數(shù)符號 條條 件件 說說 明明 aov aov=1 累加器 a 溢出 bov bov=1 累加器 b 溢出 anov aov=0 累加器 a 不溢出 bnov bov=0 累加器 b 不溢出 c c=1 alu 進位位置 1 nc c=0 alu 進位位清成 0 tc tc=1 測試/控制標志置 1 ntc tc=0 測試/控制標志清成 0 bio bio 低 bio 信號為低電平
30、nbio bio 高 bio 信號為高電平 unc 無 無條件操作 多重條件指令中的條件組合見書見書p214 圖圖6-1多重條件組合要求多重條件組合要求條件執(zhí)行指令xcxc 1, blt ;若累加器若累加器b小于小于0則執(zhí)行下面一條指令則執(zhí)行下面一條指令neg b ; 累加器累加器b求負求負dst b, data;把累加器把累加器b值存儲到一值存儲到一data開始開始 的連續(xù)兩個內存單元的連續(xù)兩個內存單元條件存儲指令條件存儲指令條件存儲指令條件存儲指令 說說 明明 saccd src, xmem, cond 如果條件滿足,(src)(asm16)xmem, 否則(xmem) xmem strc
31、d xmem, cond 如果條件滿足,(t) xmem, 否則(xmem) xmem srccd xmem, cond 如果條件滿足,(brc) xmem, 否則(xmem) xmem 重復操作指令重復操作指令重復操作指令(續(xù))重復操作指令(續(xù))需重復的需重復的內容內容復位操作復位操作l 硬件復位(硬件復位(/rs)是一個不可屏蔽的外部中斷,)是一個不可屏蔽的外部中斷,正常的復位操作是上電后至少保持正常的復位操作是上電后至少保持5個時鐘周個時鐘周期的低電平,以確保數(shù)據(jù)、地址以及控制線的期的低電平,以確保數(shù)據(jù)、地址以及控制線的正確配置。復位后變高電平,處理器從正確配置。復位后變高電平,處理器從
32、ff80h處取指,即處取指,即pc= ff80h 。l 軟件復位(軟件復位(reset指令)是一個不可屏蔽的指令)是一個不可屏蔽的軟件中斷,該指令執(zhí)行后軟件中斷,該指令執(zhí)行后pc= ff80h 。中斷操作中斷操作l 中斷是由硬件驅動或軟件驅動的信號。中斷使中斷是由硬件驅動或軟件驅動的信號。中斷使dsp暫停正在執(zhí)行的程序,并進入中斷服務程序。暫停正在執(zhí)行的程序,并進入中斷服務程序。軟件中斷:軟件中斷:intr、trap、reset硬件中斷:硬件中斷:l受外部中斷口信號觸發(fā)的外部硬件中斷受外部中斷口信號觸發(fā)的外部硬件中斷。l受片內外圍電路信號觸發(fā)的內部硬件中斷受片內外圍電路信號觸發(fā)的內部硬件中斷。
33、中斷類型中斷類型 :可屏蔽中斷可屏蔽中斷 、非屏蔽中斷非屏蔽中斷 中斷操作中斷操作1. 可屏蔽中斷:可屏蔽中斷:dsp芯片根據(jù)型號不同,所支持的芯片根據(jù)型號不同,所支持的可屏蔽中斷數(shù)目也不盡相同,以可屏蔽中斷數(shù)目也不盡相同,以c5402為例,其支為例,其支持的可屏蔽中斷為:持的可屏蔽中斷為:(1)int0int3:四級片外中斷四級片外中斷(2)rint0、xint0:片內串口片內串口0收、發(fā)中斷收、發(fā)中斷(3)rint1、xint1:片內串口片內串口1收、發(fā)中斷收、發(fā)中斷(4)tint0、tint1:片內定時器片內定時器0、1的定時中斷的定時中斷(5)hpint:主機接口中斷主機接口中斷(6)
34、dmac0dmac5:6通道通道dma中斷中斷中斷操作中斷操作可屏蔽中斷是否被響應,取決于三要素:可屏蔽中斷是否被響應,取決于三要素:對對intm位和位和stm寄存器進行設置,寄存器進行設置,開開指定放對應的可屏蔽中斷:指定放對應的可屏蔽中斷:stm #0008h,imr ;開放定時開放定時0中斷中斷rsbx intm ;全局開放中斷全局開放中斷中斷操作中斷操作2. 不可屏蔽中斷:不可屏蔽中斷:dsp總是會響應這些中斷,不可總是會響應這些中斷,不可屏蔽中斷包括:屏蔽中斷包括:(1)所有的軟件中斷)所有的軟件中斷(2)由)由/rs引腳引入的硬件復位中斷引腳引入的硬件復位中斷(3)由非屏蔽中斷引腳
35、)由非屏蔽中斷引腳/nmi引入的外部中斷引入的外部中斷 不可屏蔽中斷不受不可屏蔽中斷不受intm和和imr的限制。的限制。中斷操作中斷操作軟件中斷:軟件中斷:(1)軟件中斷指令:)軟件中斷指令:intr k; 當當cpu響應響應intr中斷時,中斷時,intm位被置位被置1,屏蔽其他可屏蔽中,屏蔽其他可屏蔽中斷。指令中的操作數(shù)斷。指令中的操作數(shù)k是中斷號(是中斷號(p109),表示),表示cpu所要轉移的所要轉移的中斷向量的位置。中斷向量的位置。(2)軟件中斷指令:)軟件中斷指令:trap k; 功能和功能和intr指令相同,區(qū)別是執(zhí)行指令相同,區(qū)別是執(zhí)行trap指令指令不影響不影響intm的
36、的位值。位值。(3)軟件復位指令:)軟件復位指令:reset; 是一個不可屏蔽的軟件中斷,該指令是一個不可屏蔽的軟件中斷,該指令影響狀態(tài)寄存器影響狀態(tài)寄存器st0和和st1,但不影響,但不影響pmst寄存器寄存器。中斷處理步驟(中斷處理步驟(1)c54x中斷分為三個階段:中斷分為三個階段:第一階段:第一階段:接受中斷請求接受中斷請求當硬件或軟件指令請求中斷時,當硬件或軟件指令請求中斷時,cpu中的中的ifr相應位置相應位置1。ifr中斷標志寄存器,當有中斷請求出現(xiàn)時中斷標志寄存器,當有中斷請求出現(xiàn)時ifr中的對應中的對應中斷標志位置中斷標志位置1,有四種情況會清除該中斷標志位:,有四種情況會清
37、除該中斷標志位:(1)該中斷得到該中斷得到cpu處理;處理;(2)dsp硬件復位;硬件復位;(3)重新將重新將1寫入該位,以清除尚未處理完的中斷;寫入該位,以清除尚未處理完的中斷;(4)利用利用intr指令執(zhí)行該位中斷的中斷號;指令執(zhí)行該位中斷的中斷號;p107stm #0008h,ifr ;清除尚未處理完的定時中斷清除尚未處理完的定時中斷intr 19 ;利用利用intr指令指令清除尚未處理清除尚未處理;完的定時中斷完的定時中斷中斷處理步驟(中斷處理步驟(2)中斷處理步驟(中斷處理步驟(3)l第三階段:第三階段:執(zhí)行中斷服務程序執(zhí)行中斷服務程序(1)pc值入棧,作為中斷返回地址;值入棧,作為
38、中斷返回地址;(2)將中斷向量地址加載)將中斷向量地址加載pc;(3)獲取位于該向量地址的分支轉移指令;)獲取位于該向量地址的分支轉移指令;(4)執(zhí)行該轉移指令,轉到中斷服務程序;)執(zhí)行該轉移指令,轉到中斷服務程序;(5)中斷服務程序結束,執(zhí)行中斷返回指令;)中斷服務程序結束,執(zhí)行中斷返回指令;(6)從堆棧頂部彈出返回地址;)從堆棧頂部彈出返回地址;(7)回到主程序繼續(xù)執(zhí)行。)回到主程序繼續(xù)執(zhí)行。中斷處理步驟(中斷處理步驟(4)l中斷向量地址的產生中斷向量地址的產生 中斷向量的地址(中斷向量的地址(16位)由位)由pmst寄存器中的寄存器中的iptr位和左位和左移兩位后的中斷號共同組成移兩位后
39、的中斷號共同組成.如:如:iptr=001h;/int0的中斷號的中斷號=16(10h)則:則:iptr作為中斷向量地址的高作為中斷向量地址的高9位位 /int0的中斷號的中斷號10h左移兩位后作為中斷向量地址低左移兩位后作為中斷向量地址低7位位故:故:該中斷向量地址為:該中斷向量地址為:00c0h程序舉例程序舉例編寫計算編寫計算 的主要程序的主要程序 .bss x,4 ;為;為x建立建立4個單元,放置個單元,放置x1、x2、x3、x4 .bss y,1 ;為;為y建立一個單元,放置建立一個單元,放置y stm #x,ar1 ;將;將x1的地址傳給的地址傳給ar1 stm #3,ar2 ;將循
40、環(huán)次數(shù);將循環(huán)次數(shù)3傳給傳給ar2 ld #0,a ;對累加器;對累加器a清零清零loop:add *ar1+,a ;對;對x1、x2、x3、x4循環(huán)累加,結循環(huán)累加,結 果放在果放在a中中 banz loop, *ar2- ;檢查循環(huán)是否結束;檢查循環(huán)是否結束 stl a,y ;將結果存入;將結果存入y中中41iixy利用單條指令的重復操作對數(shù)組進行初始化利用單條指令的重復操作對數(shù)組進行初始化x50,0,0,0,0思考:用思考:用rptz指令實現(xiàn)上述功能。指令實現(xiàn)上述功能。利用塊重復操作對數(shù)組利用塊重復操作對數(shù)組x5中的每個元素加中的每個元素加1 7.流水線流水線l c54x有一個有一個6級
41、深度的指令流水線。這級深度的指令流水線。這6級流水線級流水線彼此是獨立的。在任何一個機器周期內,可以有彼此是獨立的。在任何一個機器周期內,可以有1至至6條不同的指令在同時工作,每條指令工作在不同的流條不同的指令在同時工作,每條指令工作在不同的流水線上。這水線上。這6級流水線的功能如下:級流水線的功能如下: l 預取指和取指是指令的取指順序。第預取指和取指是指令的取指順序。第3級是對指令進級是對指令進行譯碼,產生執(zhí)行指令所需要的一系列控制信號。接行譯碼,產生執(zhí)行指令所需要的一系列控制信號。接著的兩級是尋址并讀出操作數(shù)。著的兩級是尋址并讀出操作數(shù)。流水線沖突流水線沖突 解決流水線沖突辦法解決流水線
42、沖突辦法解決流水線沖突辦法解決流水線沖突辦法引起流水線沖突的硬件引起流水線沖突的硬件8.在片外圍電路在片外圍電路通用通用i/o引腳引腳和和xf定時器定時器時鐘發(fā)生器時鐘發(fā)生器串行口串行口主機接口主機接口軟件可編程等待狀態(tài)發(fā)生器軟件可編程等待狀態(tài)發(fā)生器可編程分區(qū)轉換邏輯可編程分區(qū)轉換邏輯不同不同子系列子系列器件器件差別差別通用通用i/o引腳引腳bio和和xf定時器定時器時鐘發(fā)生器時鐘發(fā)生器串行口串行口8.1 通用通用i/o引腳引腳8.2 定時器定時器l片內定時器是一個軟件可編程定時器,可以用片內定時器是一個軟件可編程定時器,可以用來周期的產生中斷。來周期的產生中斷。l片內定時器有三個存儲器映像寄
43、存器:片內定時器有三個存儲器映像寄存器:l三個映像寄存器在數(shù)據(jù)存儲空間的地址分別為三個映像寄存器在數(shù)據(jù)存儲空間的地址分別為0024h、0025h和和0026h8.2 定時器控制寄存器(定時器控制寄存器(tcr)tcr0026h15 12保留保留 11soft 10free 9 6psc 5trb 4tss 3 0tddr 保留位保留位軟件調試控制位軟件調試控制位 預定標預定標計數(shù)器計數(shù)器 重新重新加載位加載位 停止停止狀態(tài)位狀態(tài)位 分分 頻頻系系 數(shù)數(shù) 8.2 條件定時器控制寄存器(條件定時器控制寄存器(tcr)的功能)的功能8.2 定時器工作原理定時器工作原理8.2 定時中斷的周期定時中斷的
44、周期8.2 定時中斷的周期定時中斷的周期 ,要求得到,要求得到2ms定時中斷定時中斷則:則:200ns*(1+tddr)*(1+prd) =2mstddr可選可選9prd可選可選9998.2 定時器的用法定時器的用法8.2 定時器初始化程序實現(xiàn)定時器初始化程序實現(xiàn)stm #0000h,swwsr;不插等待周期不插等待周期stm #0010h,tcr ;tss=1(tcr第第4位位tss置置1)stm #x,prd ;加載定時器周期寄存器(加載定時器周期寄存器(prd=x);定時中斷周期;定時中斷周期=clkout(tddr+1) (prd+1)stm #0c2yh,tcr ;定時分頻系數(shù);定時
45、分頻系數(shù)tddr初始化為初始化為y ;tss=0,啟動定時器工作,啟動定時器工作 ;trb=1,當,當tim減到減到0后重新加載后重新加載prd ;soft=1,free=1定時器遇到斷點后繼續(xù)運行定時器遇到斷點后繼續(xù)運行stm #0008h,ifr ;清除尚未處理完的定時中斷清除尚未處理完的定時中斷stm #0008h,imr ;開放定時中斷開放定時中斷rsbx intm ;開放中斷(狀態(tài)寄存器;開放中斷(狀態(tài)寄存器st1的的intm位復位)位復位)8.2 定時器應用定時器應用定時器中斷定時器中斷codestart: ;程序入口程序入口 ssbx xf ;xf置置1 call delay ;
46、調用延時程序調用延時程序 rsbx xf ;xf清清0 call delay ;調用延時程序調用延時程序 b codestart ;跳轉到程序開頭循環(huán)執(zhí)行跳轉到程序開頭循環(huán)執(zhí)行 delay: stm #999,ar1 ;循環(huán)次數(shù)循環(huán)次數(shù)1000loop1: stm #4999, ar2 ;循環(huán)次數(shù)循環(huán)次數(shù)5000loop2: banz loop2,*ar2- ;如果如果ar2不等于不等于0,ar2減減1,再判斷,再判斷 banz loop1,*ar1- ;如果如果ar1不等于不等于0,ar1減減1,跳轉到跳轉到loop1 ret方波發(fā)生器原理;方波發(fā)生器原理;軟件循環(huán)延時,定軟件循環(huán)延時,定時
47、不準確;且占用時不準確;且占用cpu開銷。開銷。8.2 定時器應用定時器應用定時器中斷定時器中斷xf_flag .word 1 ;當前;當前xf的電平標志,的電平標志,;如果;如果xf_flag=1,則則xf=1 stm #xf_flag,ar2 ;ar指向指向xf標志標志 stm #0000h,swwsrstm #0010h,tcr stm #79,prd stm #0c29h,tcr stm #0008h,ifr stm #0008h,imr rsbx intmend:nopb end pshm st0 ;本中斷程序影響本中斷程序影響tc,位于,位于st0中中;判斷當前判斷當前xf狀態(tài)并作
48、電平變化狀態(tài)并作電平變化bitf *ar2,#1 ;if xf_flag=1 then tc=1 else tc=0bc resetxf,tc ;if tc=1 then xf=0 else xf=1setxf: ssbx xf ;置置xf為高電平為高電平st #1,*ar2 ;相應修改標志相應修改標志b nextresetxf:rsbx xf ;置置xf為低電平為低電平st #0,*ar2 ;相應修改標志相應修改標志next:popm st0rete .end 8.3 時鐘發(fā)生器時鐘發(fā)生器l時鐘發(fā)生器的時鐘源由以下兩種方式輸入:時鐘發(fā)生器的時鐘源由以下兩種方式輸入:1)晶體振蕩器,接在)晶體
49、振蕩器,接在x1和和x2之間;之間;2)將外部時鐘信號接到)將外部時鐘信號接到x2引腳,引腳,x1懸空。懸空。內部晶體振蕩電路內部晶體振蕩電路外部時鐘源電路外部時鐘源電路8.3 cpu時鐘頻率產生時鐘頻率產生cpucpu時鐘頻率時鐘頻率clkout內部晶體振蕩頻率內部晶體振蕩頻率外部時鐘頻率外部時鐘頻率clkinclkin? ?8.3 硬件配置的硬件配置的pll引腳狀態(tài)引腳狀態(tài)時鐘方式時鐘方式clkmdclkmd1 1clkmdclkmd2 2clkmdclkmd3 3選擇方案選擇方案1 1選擇方案選擇方案2 20 00 00 0工作頻率工作頻率= =外時鐘外時鐘3 3工作頻率工作頻率= =外
50、時鐘外時鐘5 51 11 10 0工作頻率工作頻率= =外時鐘外時鐘2 2工作頻率工作頻率= =外時鐘外時鐘4 41 10 00 0工作頻率工作頻率= =內振蕩器內振蕩器3 3工作頻率工作頻率= =內振蕩器內振蕩器5 50 01 10 0工作頻率工作頻率= =外時鐘外時鐘1.51.5工作頻率工作頻率= =外時鐘外時鐘4.54.50 00 01 1工作頻率工作頻率= =外時鐘外時鐘/2/2工作頻率工作頻率= =外時鐘外時鐘/2/21 11 11 1工作頻率工作頻率= =內振蕩器內振蕩器/2/2工作頻率工作頻率= =內振蕩器內振蕩器/2/21 10 01 1工作頻率工作頻率= =外時鐘外時鐘1 1
51、工作頻率工作頻率= =外時鐘外時鐘1 10 01 11 1停止方式停止方式停止方式停止方式p59 表表2-148.3 軟件可編程軟件可編程pll8.3 時鐘方式寄存器時鐘方式寄存器(clkmd)各位的定義各位的定義pllmul15 12plldiv2pllcount11pllon/off10 3pllndiv10pllstatus時鐘發(fā)生時鐘發(fā)生器選擇位器選擇位乘數(shù)乘數(shù)除數(shù)除數(shù)計數(shù)器計數(shù)器通通/ /斷位斷位 工作工作狀態(tài)位狀態(tài)位p 608.3 時鐘方式寄存器時鐘方式寄存器(clkmd)各位段的功能各位段的功能8.3 pll分頻倍頻系數(shù)表分頻倍頻系數(shù)表pllndiv plldiv pllmul
52、乘 系 數(shù)* 0 x 014 0.5 0 x 15 0.25 1 0 014 pllmul+1 1 0 15 1 1 1 0 或偶數(shù) (pllmul+1)2 1 1 奇數(shù) pllmul4 *clkoutclkin乘系數(shù) 8.3 軟件可編程軟件可編程pll的編程考慮的編程考慮8.3設計舉例(設計舉例(1) stm #0010 0001 0100 1111 b,clkmd8.3設計舉例(設計舉例(2) 與 例與 例 1 不 同 , 從不 同 , 從 p l l 方 式 變 為方 式 變 為 d i v 方 式 時 沒 有方 式 時 沒 有 stm #0b,clkmd;切換到;切換到divtest:
53、 ldm clkmd,a and #01b,a;測試;測試status位位 bc test,aneq;若不為;若不為0則等待則等待 stm #0b,clkmd;若為;若為0,關,關pll8.3設計舉例(設計舉例(3) 8.4 c54串行口串行口l串行口可以與編碼解碼器串行口可以與編碼解碼器,串行模數(shù)串行模數(shù)(a/d)轉換器以及其他串行系轉換器以及其他串行系統(tǒng)進行通信。統(tǒng)進行通信。8.4 c54串行口串行口帶緩沖的串行口(帶緩沖的串行口(bsp):):由標準同步串行口和一個自動緩沖單元(由標準同步串行口和一個自動緩沖單元(abu)組成。)組成。abu的功能是控制串行接口與內部的功能是控制串行接口與內部c54x dsp存儲器之間的存儲器之間的數(shù)據(jù)傳送,且不需要數(shù)據(jù)傳送,且不需要cpu的干預。的干預。時分復用(時分復用(tdm)串行口:)串行口:允許允許c54x dspc54x dsp與與7 7個其他器件進行時分串行通信。個其他器件進行時分串行通信。當緩沖串口和時分串口工作在標準方式下與標準串口功能當緩沖串口和時分串口工作在標準方式下與標準串口功能相同,下面討論標準串口工作方式。相同,下面討論標準串口工作方式。 接收通道接收通道發(fā)送通道發(fā)送通道引引 腳腳說說 明
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北部灣大學《微積分(上)》2023-2024學年第一學期期末試卷
- 2024年電動自行車配送服務協(xié)議
- 2025年度網(wǎng)絡安全審計與合規(guī)性檢查服務協(xié)議
- 2025版國際學校招生入學合同3篇
- 2025年度安全生產信息化管理責任書協(xié)議提高管理效率
- 2025年度生態(tài)環(huán)保工程安全生產施工協(xié)議匯編2篇
- 建筑水泥售賣合同范文
- 2025版跨境電商企業(yè)股東變更與市場拓展協(xié)議3篇
- 建造民房住宅合同范文
- 2025年度環(huán)保項目貸款擔保合同范本3篇
- 工程師個人年終總結
- 構詞法(講義)(學生版)-2025年高考英語一輪復習(新教材新高考)
- 2024年河南省公務員錄用考試《行測》試題及答案解析
- GB 17353-2024摩托車和輕便摩托車防盜裝置
- 2024秋期國家開放大學本科《納稅籌劃》一平臺在線形考(形考任務一至五)試題及答案
- 房租收條格式(3篇)
- 期末試卷(試題)2024-2025學年培智生活語文二年級上冊
- 《技術規(guī)程》范本
- DBJ50T-城鎮(zhèn)排水系統(tǒng)評價標準
- 紅色簡約中國英雄人物李大釗課件
- 小學師德考評細則
評論
0/150
提交評論