TMS320C2-CPU支持接口或模塊_第1頁
TMS320C2-CPU支持接口或模塊_第2頁
TMS320C2-CPU支持接口或模塊_第3頁
TMS320C2-CPU支持接口或模塊_第4頁
TMS320C2-CPU支持接口或模塊_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、TMS320C2-CPU支持接口或模塊DSP控制器原理及其應用TMS320C2 CPU支持接口或模塊一、系統接口模塊(片內外設接口)通過外設總線溝通CPU與片內外設的聯系外設總線最多可接16個片內外設 其工作頻率比CPU數據總線頻率低,為CPU時鐘頻率(CPUCLK)的2或4分頻 (SYSCLK)其包含的系統配置寄存器3個,稍后介紹二、DSP復位 4個原因是DSP內部產生,另外2個原因由外部引腳控制。圖中“或門”應該理解為任何一個復位事件為真,則復位真 C2 DSP根據器件的配置不同,最多有6個原因可引起器件復位(包括欠壓檢測復位) 當看門狗定時器溢出、或對看門狗操作不當,就會產生一次看門狗定

2、時器復位。注意:當器件上電后,看門狗定時器自動有效 軟件復位,將要介紹的系統控制寄存器(SYSCR)可以被編程實現軟件復位 欠電壓復位:有些DSP芯片內部有欠壓檢測電路,如果發生欠電壓,將產生復位信號 非法地址復位:在存儲器或者I/O空間,標有“Reserved”的單元是不可實現的單元,任何對這些單元的訪問都將產生一個非法地址復位 RS是一個I/O引腳,當作為輸入引腳時,作用與PORESET基本一樣,引起系統復位(熱啟動DSP)。低電平有效。但復位不影響時鐘模塊,RAM內容也保持不變。當作為輸出引腳時,可將DSP的復位信號送給其它的外圍器件。另外,引腳是一個集電極開路的I/O引腳,故需接上拉電

3、阻。 上電復位引腳PORESET(即冷啟動DSP),為低電平有效,且至少要持續一個系統時鐘周期(SYSCLK)。復位后使PC=0,DSP從0H程序存儲單元讀取程序并開始執行,并影響各寄存器、狀態位,初始化DSP時鐘單元的時鐘控制寄存器 (PC)=0000H B START1)CNF=0,將雙口DARAM(B0)配置為數據存儲器。2)INTM=1,禁止可屏蔽中斷3)系統狀態為:OV=0,XF=1,SXM=1,PM=00,C=14)全局存儲器分配寄存器GREG=XXXX XXXX 0000 0000B5)重復計數器RPTC=0(執行RPT指令時,記錄運算次數)6)等待狀態發生器產生最大的等待狀態數

4、復位原因的識別,可以讀取系統狀態寄存器判斷F240 5V電源 TTL電平三、系統配置系統模塊中有些(3個)系統配置寄存器系統配置寄存器地址映射到數據存儲區地址總線的最低位A0不參與地址譯碼對這些寄存器編程來改變系統的一些性能或了解系統狀態系統控制寄存器(SYSCR)地址為7018HRESET1 RESET0,為軟件復位位 ;CLKSRC1、CLKSRC0,為C240 DSP的CLKOUT/IOPC1引腳的控制位 RESET1 RESET0 DSP狀態 0 0 0 1 1 0 1 1 軟件復位軟件復位軟件復位 CLKSRC1 CLKSRC0 CLKOUT引腳功能 0 0 0 1 1 0 1 1

5、數字輸入/輸出方式即IO方式WDCLK看門狗時鐘輸出到CLKOUT(正常為16kHz)SYSCLK系統時鐘輸出到CLKOUTCPUCLKCPU時鐘輸出到CLKOUT 系統狀態寄存器(SYSSR)地址為701AH 特別注意:DSP中許多的狀態寄存器狀態位清除是通過:1、向該位寫任意數(0或1)清0,例如,本寄存器2、向該位寫1清0,例如,IFRPORST、ILLRST、SWRST、WDRST、VCCAOR為1表示相應位引起DSP復位i表示RS復位時,將DSP的VCCP/WDDIS引腳狀態鎖存到HP0位 If VCCP/WDDIS引腳 = 5 V, 允許對FLASH操作If VCCP/WDDIS引

6、腳 = 0 V, 禁止Flash,WD始終有效。只有VCCP/WDDIS = 5 V 和WDCR的位6 置1才禁止WD.VECRD:中斷向量掛起位,用于NMI和INT同時中斷時的嵌套問題。 VECRD1,表示INT中斷被響應,但還未讀中斷向量,就被NMI中斷。NMI應該不開中斷直接返回,防止其它中斷源充掉上次的INT中斷系統中斷向量寄存器(SYSIVR)地址為701EH系統中斷象量寄存器為只讀寄存器 DSP中只有INT1INT6個可屏蔽中斷級,每個INT都包含許多中斷源中斷向量高8位讀出總為0,低8位被裝入中斷源的地址偏移量(ID,即每個中斷源的身份證)四、時鐘模塊 3個相關引腳x產生了3個C

7、LK信號、通過編程改變時鐘大小PLL (a) (b) 圖5.3.2 時鐘電路 (a)使用內部振蕩器 (b) 由4引腳石英晶體提供DSP時鐘10MHz時鐘控制寄存器CKCR0和CKCR1 CLKMD(1:0)CPU選擇時鐘源為00011輸入時鐘X/2輸入時鐘X使用PLL即允許PLLPLLPM(1)、PLLPM(0)。規定IDLE指令執行時的低功耗工作模式 D1 在C24中保留不用。D0 PLLPS。確定系統時鐘頻率是2分頻率還是4分頻。 PLLPS=0時, SYSCLK=CPUCLK/4 PLLPS=1時,SYSCLK=CPUCLK/2 PLLOK(1)、PLLOK(0)。PLLOK(1)表示P

8、LL觸發器狀態,PLLOK(0)位用于器件測試。 當PLLOK(1)=1表示鎖相環已鎖定設定頻率,且DSP運行于PLL時鐘。 PLLFB(2:0)PLL乘積因子00000101001110010111011112345911CKINF(3:0)X(MHz)CKINF(3:0)X(MHz)00000001001000110100010101100111323028262422201810001001101010111100110111101111161412108642PLLDIV(2)。確定PLL輸入是否被2分頻。PLLDIV(2)=1,PLL輸入2分頻 3種內部時鐘頻率選擇 1.CPUCLK

9、= 對F/C240器件來說,CPUCLK20MHz 2.SYSCLK=CPUCLK/4 或 SYSCLK=CPUCLK/2 3. WDCLK 是由PLLFB、PLLDIV、CKINF、CLKMD和PLLOK控制的分頻器產生。 當X為2n Hz時,WDCLK=16384Hz。否則,WDCLK=15625Hz /2 CLKMD(1:0)=00X CLKMD(1:0)=01X*PLL倍頻因子/2PLLDIV CLKMD(1:0)=1X時鐘模塊編程 必須先使時鐘控制寄存器CKCR0的CLKMD1=0,禁止PLL然后根據系統要求設置時鐘控制寄存器CKCR1的其它位,最后使CLKMD1=1允許PLL工作(

10、如果使用PLL的話)編程舉例 LDP #00E0h SPLK #0000000001000001B,CKCR0 ;CLKMD1=0禁止PLL,使SYSCLK=CPUCLK/2 SPLK #0000000010111011B,CKCR1 ;CKINF(3)-CKINF(0)=1011指定;CLKIN(OSC)=10MHz,使用PLL并使CPUCLK=20MHz SPLK #0000000011000001B,CKCR0 ;使CLKMD1=1允許PLL使系統按上述編程頻率工作雖然,系統上電復位后CLKMD1=0 ,但第2條指令還是應該保留,否則,在執行完其它程序后,時鐘就是按其它程序設定的值工作L

11、DP 指令是9位短立即尋址所有的短立即尋址,操作數可以是16位的,但編譯后指令只取操作數的最低8、9或13位如果某寄存器地址是7018H,要用立即尋址確定DP:例1: LDP7018H;(0111 0000 0001 1000B);編譯器會給出:WARNING - VALUE OUT OF RANGE;但會產生out文件,指令執行后DP為0C0H X;應該取地址的高9位 (0111 0000 0001 1000B) LDP #0E0H ; 無論用間接、直接或短立即尋址確定DP,最終操作數都應該是目標地址高9位五、低功耗(省電)模式 PLLPM(1:0) CKCR0(3:2) 省電模式 工作電流

12、 時鐘 CPU時鐘域 系統時鐘域 PLL WD時鐘 振蕩器 (不執行IDLE)00 (執行IDLE)01 (執行IDLE)10 (執行IDLE) 11 (執行IDLE) DSP正常工作idle1省電方式idle2省電方式PLL省電方式振蕩器方式 40mA約15mA約4mA約1mA30A on on on on onoff on on on onoff off on on onoff off off on onoff off off off off 退出低功耗模式復位引腳、NMI引腳和外部可屏蔽中斷引腳XINT0、XINT1/IO和XINT2/IO產生的中斷可以結束任何一種低功耗模式 其它片內外

13、設如果能夠產生中斷也可以使相應低功耗模式結束 CPUCLK off,所以不可能由軟件中斷退出任何IDLECMOS工藝的芯片功耗主要由動態功耗決定:對電容的充放電、開關動作過程中PMOS和NMOS的同時開通。所以要降低功耗就是逐級關掉各模塊時鐘,使相應模塊不工作。六、等待狀態發生器 1、等待狀態產生控制寄存器(WSGR),地址映射到I/O地址空間的FFFFH單元。TI不同DSP可以產生(17)個等待狀態。 X240內部等待狀態發生器最多插入1個。高速DSPREADY慢速外設或存儲器時序匹配等待狀態發生器電路2、外部硬件產生READY低電平信號當DSP速度足夠快時,READY與等待狀態發生器配合七

14、、中斷系統 中斷確保了CPU在運行中,高效實時地處理外圍設備的各種服務請求 。CPU(總經理)與外部交換信息的幾種方式(查詢、中斷、DMA)C2中斷類型可概括分為:軟件中斷和硬件中斷 其中,C2 DSP中,每個可屏蔽INTk又管理多個中斷源(包括可屏蔽中斷引腳和片內外設)。受IMR 和ST0中的INTM控制 中斷優先級(排隊判優電路秘書)中斷向量碼(k) 中斷向量表位置(2k)中斷名稱優先級中斷描述012345678161718192031 02468AHCHEH10H21H22H24H26H28H3FH 硬件復位INT1INT2INT3INT4INT5INT6INT k(k=816)TRAP

15、NMIINT k(k=2031) 1(最高)4567891032復位中斷可屏蔽中斷INT1可屏蔽中斷INT2可屏蔽中斷INT3可屏蔽中斷INT4可屏蔽中斷INT5可屏蔽中斷INT6DSP保留INT軟件中斷TRAP指令中斷NMI硬件中斷DSP保留INT軟件中斷 DSP內部將中斷分為兩個中斷模塊: 系統中斷模塊和事件管理模塊中斷,系統中斷模塊,管理除EV以外的所有可屏蔽中斷源 5圖5.6.1 C2硬件中斷結構DSP CPU中斷管理 (總經理CPU的秘書)地址線1-5 IACK INT6 INT5 NMI INT1 INT4 INT3 INT2 IACK1-5 IACK INT6 INT5 NMI

16、INT1地址線系統模塊INT4 INT3 INT2 IACK事件管理模塊系統配置寄存器地址A1A4A0不參與譯碼優先級依次降低系統中斷模塊例如INT1ST0INT1有哪些中斷源?假設外部中斷與串行通信高優先級?To DSP CPU中斷管理 ?去哪響應事件管理模塊中斷EV有:4個捕獲單元、3個定時器、3個比較器、3個簡單比較單元 及低電壓檢測 共23多個中斷源分為A、B和C三組,每組有3個中斷寄存器:EVIMRx、EVIFRx、EVIVRxX=A、B、C中斷寄存器一、寄存器CPU中斷寄存器 CPU中斷屏蔽寄存器(IMR)地址0004H Di為:0=屏蔽INTX中斷;1=允許INTX中斷 CPU中

17、斷標志寄存器(IFR)地址0006HDi為1:至少一個INTX中斷源請求,CPU響應中斷后自動清除對應標志位,向該位寫1也清除 二、外部硬件中斷控制寄存器 (NMI、INT1、INT23/IO) 1.外部引腳XINT1中斷控制寄存器XINT1CR地址7070HD15 XINT1 Flag =1表示檢測到有效的XINT1中斷觸發沿D6 XINT1引腳數據 該位為只讀,反映引腳的當前邏輯電平 D2 XINT1中斷有效沿 可以編程設置XINT1為下沿還是上沿觸發 D1 XINT1優先級 D0 XINT1中斷允許 2.外部引腳XINT2中斷控制寄存器XINT2CR地址7078H XINT2 為雙用引腳

18、(XINT2/IO),既可以作為中斷請求引腳也可以編程為輸入輸出引腳。由D4編程確定輸入輸出方向(D4=0,XINT2為輸入引腳、1為輸出),為輸出引腳時,由D3設置輸出數據并輸出,D6為只讀數據輸入引腳。其它各位與XINT1CR完全一樣 . XINT3CR 地址707AH , NMICR地址7072H .外設中斷向量偏移地址(ID)每個可屏蔽中斷INT1INT6都包含了多個DSP片內或外部引腳中斷源軟件中斷INT n(n=16)也分別與可屏蔽中斷INT1INT6占用同一個向量表位置,NMI硬件和NMI軟件中斷也一樣,會進入同一中斷服務程序,怎么區分?每個硬件中斷源都有一個確定的ID(非0值)

19、,軟件中斷(INT1INT6和NMI)或假中斷(phantom-interrupt)的ID=0000H在系統中斷模塊和事件管理模塊都有確定的中斷向量地址寄存器,該寄存器保存得到CPU中斷響應的中斷源的中斷偏移地址,提供了可屏蔽中斷服務程序進入各中斷源服務程序的依據,即“偏移地址”。也可以將其理解為各INT1INT6中斷源的標識(ID)部分外設中斷向量偏移地址(ID)列表P105 每個ID低6位不同,高位全0主程序進入中斷服務程序主程序讀中斷向量地址寄存器,得到ID,進入對應中斷程序,權衡節省ROM或時間,有多種方式進入進入中斷服務程序如果某一可屏蔽中斷INTk,只有或只允許一個中斷源中斷如果某

20、一可屏蔽中斷INTk,允許多個中斷源中斷中斷總結: 5圖5.6.1 C2硬件中斷結構DSP CPU IACK INT6 INT5 NMI INT1 INT2 INT3 INT4 IACK IACK INT6 INT5 NMI INT1系統模塊 SYSIVR(701EH) IACK6 INT6 INT2 INT3 INT4 IACK事件管理模塊EVIMRA、EVIMRB、EVIMRCEVIVRA、EVIVRB、EVIVRCEVIFRA、EVIFRB、EVIFRC IRQA IACKAINT6管理的各中斷源,判優電路INT2管理的各中斷源排對判優電路最優源的IDIMR的INT6置1,INTM0;總

21、經理秘書按優先級受理。對應標志位置1IFR的INT6置1經理秘書IFR的INT6自動清0系統模塊判優電路響應INT6,CPU從中斷向量表2*6位置取指令、執行中斷服務程序,讀ID軟件清除該標志位EV中斷過程一樣,僅寄存器不同C2中斷操作流程(微操作過程)中斷請求可屏蔽中斷?單獨屏蔽位為1?中斷判優并將最高優先級對應中斷標志寄存器(IFR)置1中斷響應,對應IFR位清0PC保存到堆棧INTM置1到2k 執行中斷服務程序從堆棧彈出程序斷點地址到PC中斷使能位INTM=0?TRAP指令?繼續執行主程序IMR位為1?中斷服務流程CPU響應中斷:例如, CPU 允許INT3中斷:1、(PC)入棧2、00

22、06送PC3、從程序區(0006)和(0007)單元獲得跳轉指令代碼進入GISR讀中斷向量寄存器SYSIVR, EVIVRA, EVIVRB, EVIVRC.得到ID,根據ID跳轉至特殊服務中斷子程序SISR中斷入口:中斷服務程序 INT1Serve: ;中斷服務程序保護現場 讀ID進入對應服務程序 ;如果有多個源 ;服務程序主體清除中斷標志位 恢復現場CLRC INTMRET 如果每個INT只有一個中斷源被允許,而且沒有相應的軟件中斷,就沒必要讀ID中斷嵌套 優先級高的中斷可中斷正在執行的中斷服務程序 。即INT1可中斷正在執行的INT6。每個INTk管理的各個源是不能嵌套的,所以每個INT

23、中斷服務程序:必須在讀完中斷向量寄存器得到ID后(對系統模塊,只有一個中斷向量寄存器) ,加一條CLRC INTM 指令,允許其它的INT中斷嵌套但同級或低級的中斷請求不能中斷正在執行的中斷服務 由于硬件NMI中斷優先級高于INT,不受INTM控制。因此,NMI的中斷服務程序結束時要注意判斷是否有沒來得及讀中斷向量寄存器的INT可屏蔽中斷響應。NMI中斷返回處理例如,系統模塊管理有INT1、INT5、INT6和NMI,當每個INT都有多個源可以產生中斷時,因為 INT1、INT5、INT6的中斷向量地址寄存器共用SYSIVR主程序讀中斷向量地址寄存器,得到ID,進入對應中斷程序,權衡節省ROM

24、或時間,有多種方式進入進入INT6中斷服務程序NMI中斷服務CLRC INTM RET ;讀中斷向量地址寄存器,得到ID進入INT1中斷服務程序INT6的ID還在嗎?因此在NMI中斷服務程序末尾用以下指令:LDP0E0H ;DP指向SYSSR所在頁BIT SYSSR,15 ;測試系統狀態寄存器的D0位ST1的TC位RETC TC ;若D0為1說明NMI中斷了可屏蔽服務程序; 而且該服務程序還未讀中斷向量寄存器,所以NMI直接返回。CLRC INTM ;否則,開中斷返回RET中斷標志位中斷標志寄存器某位置位表示有一次中斷請求,該標志位的置位與是否被允許中斷無關。也可以通過查詢和中斷兩種方式處理對

25、應請求。退出中斷服務時要清除標志位,否則無法再次中斷IFR寄存器在CPU響應中斷后,硬件自動將最優INTk(也是正被CPU響應的INTk)對應IFR標志位清0每個中斷源單獨的中斷標志位,硬件是不會在響應后自動清除這些標志位的,必須由軟件處理,這些中斷標志位其清除方法有兩種:一是讀INT對應的中斷向量寄存器,這種方法較為簡單;二是清除每個中斷源單獨的中斷標志位(寫1清除)。如:LACC EVIVRC ;讀INT4對應的中斷向量寄存器EVIVRC即清除或 LACC EVIFRC ;這種方法會將低優先級的中斷也清除,用AND SACL EVIFRC ;捕獲單元中斷屬于INT4,讀EVIFRCC2中斷

26、編程1、中斷初始化編程 將IMR中INTk對應位置1允許INTk中斷清除中斷標志寄存器主程序開始INTM置1禁止所有可屏蔽中斷INTM置0等待中斷對某項中斷源,將單獨屏蔽位置1,并編程有效觸發沿,如,XINT1XINT3、NMI等系統初始化圖5.6.6 中斷初始化流程初始化編程舉例:XINT1中斷初始化編程 .sect “vector”;編寫中斷向量RESET:B START ;復位向量,即復位后程序跳轉至STARTINT1:B INT1S ;XINT1中斷向量.text ;編寫主程序 NOPSTART SETCINTM ;禁止中斷 LDP #0 SPLK#0001h,IMR ;允許XINT1

27、中斷 LACC IFR ;SACLIFR ; 清除標志寄存器IFR LDP #00E0H;指向XINT1CR數據頁,設XINT1引腳中斷 SPLK #0005H,XINT1CR;允許中斷,高優先級,上沿觸發 ;系統初始化CLRC INTM ;允許中斷 LOOP1 B LOOP1;等待中斷INTS:NOPRET中斷舉例2實驗二、程序CAP0使用捕獲單元測脈寬。捕獲單元測周期、頻率、脈寬非常方便在軟件調試環境下,介紹CAP0程序。熟悉匯編程序架構。T八、數字輸入/輸出(I/O) 因為集成工藝問題,常常引腳復用,比如,I/O和功能引腳。TI DSP器件不同型號其可用的數據I/O引腳數目、位置、引腳功

28、能和是否共享、命名方法、相關的寄存器等都不盡相同,原理類似。F/C240共有28個I/O共享引腳,這些引腳可以被分為兩組:1、專門I/O端口(Port)A、B和C的數據I/O與其它基本功能共享引腳,該組引腳共20個。2、模塊具有內置I/O功能。比如SPI、SCI、外部中斷和PLL等功能引腳,同時也可以編程用作I/O引腳,該組引腳共8個。 第一組I/O結構每個引腳有3位來定義其操作:確定I/OI/O方向位I/O數據位 與IO共享的兩個特殊功能引腳介紹 第一組IO引腳只有以下兩個引腳在DSP復位時被配置為功能引腳,換句話說,除以下2個引腳外,其他IO引腳在上電后均為IO XF/IOPC2該引腳上電后被設置為XF通用輸出引腳,并置為高電平。可以由ST1.4讀寫。使用XF引腳控制外設時要注意ST1的保護和恢復可能會修改XF引腳,慎用。 該引腳上電后被設置為BIO分支控制輸入引腳,由BCND pma指令查詢該引腳電平,若為低電平則執行分支程序。比如通過RS232引導程序時,則用該引腳確定程序走向,不用該功能時,將其設置為IO引腳 與第一組I/O結構有關寄存器有:OCRA、OCRB確定A(4)、B(8)和C(8)口 MUX位;如果MUX定義引腳為I/O: PADATADIR 、PBDATADIR 、PCDATADIR 分別確定A、B和C口方向,并保存數據位。各寄存器結構例1、將A

溫馨提示

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

評論

0/150

提交評論