




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
TMS320C5000?第6章片內外設內容時鐘發生器
中斷定時器
主機接口串行口6.1時鐘發生器
1)組成:時鐘發生器由內部振蕩器和鎖相環(PLL)電路兩部分組成。2)輸入方式:時鐘發生器要求有一個參考時鐘輸入,可以有兩種方式提供:將一個晶體跨接到X1和X2/CLKIN引腳將一個外部時鐘信號直接加到X2/CLKIN引腳3)C54xPLL形式:(1)硬件配置PLL:(P149表6-1)(引腳)CLKMD1,CLKMD2,CLKMD3;選定時鐘方式(PLL×N;停止方式IDLE3)返回(2)軟件配置PLL:①PLL方式:CLKIN×N(N為0.25~15)②DIV(分頻器)方式:CLKIN/2(或4),關斷模擬電路、PLL、省功耗硬件:不用PLL:時鐘頻率=0.5(外部時鐘或內部振蕩器頻率)利用PLL:時鐘頻率=N(外部時鐘或內部振蕩器頻率)軟件設置(復位時設置的時鐘方式)對CLKMD(時鐘方式寄存器)編程。地址為:0058HCLKMD各位含義:如圖P149151211103210PLLMULPLLDIVPLLCOUNTPLLON/OFFPLLNDIVPLLSTATUSR/WR/WR/WR/WR/WRPLL乘數除數計數器通斷時鐘發生器選擇位0:分頻1:PLL狀態位PLKCOUNT(十進制)>LookupTime16×TCLKIN4)鎖定時間與時鐘頻率關系:
若4)鎖定時間與時鐘頻率關系:
例1若要從DIV方式轉到PLL×3方式,已知CLKIN=13MHZ,,可求得PLKCOUNT=41(十進制數),再在程序中加入如下指令就行了。
STM#0010
00010100
1111b,CLKMD
2
41PLL
PLLMUL
PLLMUL+1
見表P150表6-3例2切換時鐘從PLL×3模式到÷2模式,關PLL,進入IDLE3,IDLE3喚醒后,從DIV進入PLL×3方式,PLKCOUNT=64(鎖定時間值) STM #0,CLKMD ;切換DIV模式TstStatu:LDM CLKMD,A AND #01b,A ;查詢
BC TstStatu,ANEQ STM #0b,CLKMD;resetPLKON_OFF;whenstatusisDivmode IDLE3(AfterIDLE3WAKE-UP-SWITCHthePLLfromDivmodetoPLL×3mode) STM
#0010001000000111b,CLKMD;PLKCOUNT=64(十進制)
低功耗(節電)模式
IDLE1模式:IDLE1暫停所有的CPU活動。
IDLE2模式:IDLE2暫停CPU和片內外設的工作。
IDLE3模式:IDLE3模式類同于IDLE2,但它也使片內鎖相環PLL暫停工作。
HOLD模式:HOLD模式是另外一種節電模式。它使外部地址總線、數據總線和控制總線進入高阻狀態。它也可以使CPU暫停工作。此外,C54x還有兩種節電功能:關閉外部總線和關閉CLKOUT。6.2中斷1、類型
C54x既支持軟件中斷,也支持硬件中斷:由程序指令(1NTR、TRAP或RESET)要求的軟件中斷;由外圍設備信號要求的硬件中斷。
C54x的中斷可以分成兩大類:第一類是可屏蔽中斷,這些都是可以用軟件來屏蔽或開放的硬件和軟件中斷。第二類是非屏蔽中斷。這些中斷是不能夠屏蔽的。
中斷C541只有9個可屏蔽中斷。這9個中斷的硬件名稱為:INT0~INT3
(外部硬件中斷)。RINT0、XINT0、RINTl和XINTl(串行口中斷,內部硬件中斷)。TINT(定時器中斷,內部硬件中斷)。C54x的非屏蔽中斷包括:所有的軟件中斷。(復位,外部硬件中斷)。(外部硬件中斷)。復位操作
RS是一個不可屏蔽的外部中斷;它至少保持2個時鐘周期的低電平;處理器從FF80h處取指。注意:復位狀態見P153。復位期間對其余的狀態位以及堆棧指針沒有初始化。(P153)
可屏蔽硬件中斷信號產生后能否引起CPU執行相應的中斷服務程序ISR,還取決于以下4點:ST1中INTM=0。CPU當前沒有響應更高優先級的中斷。IMR中對應的中斷屏蔽位置1。IFR中對應的中斷標志位置1。2、中斷標志寄存器IFR和中斷屏蔽寄存器IMR
IFR是一個MM的CPU寄存器,中斷時IFR中相應的中斷標志位置1。如下4種情況會使IFR中相應的中斷標志位置0:①
IMR也是MM的CPU寄存器,用來屏蔽外(內)部中斷。開放中斷的條件:①ST1中INTM=0。②IMR中某位為1。注意:和
=0。②中斷得到處理。③將1寫到IFR中的適當位(相應位變成0),相應的尚未處理
完的中斷被清除。④執行INTR,相應的中斷標志位清零。不包括在IMR中,IMR不能屏蔽這兩個中斷。表6-3 ’C541的中斷標志寄存器IFR15-1211109876543210ResResResResINT3XINT1RINT1XINT0RINT0TINTINT2INT1INT015-1211109876543210ResResResResINT3XINT1RINT1XINT0RINT0TINTINT2INT1INT0表6-4 ’C541的中斷屏蔽寄存器IMR中斷向量地址=PMST中IPTR(中斷向量指針,9位)+左移2位后中斷向量序號(7位)3、重新安排中斷向量地址問題:說明:硬件復位后總是從0FF80h開始執行程序。除硬件復位向量外,其它的中斷向量,只要改變IPTR位的值,都可以重新安排它們的地址。P258附錄36.2.2處理過程(上)第一階段:接受中斷請求CPU的IFR中相應位置1。注意:①TRAP不需設置INTM位,因其是不可屏蔽中斷。②響應RESET時,ST1中INTM=1,禁止所有可屏蔽中斷。RESET指令復位與(硬件)復位在對IPTR和外圍電路初始化方面是有區別的。第二階段:響應中斷只有滿足以下條件才能響應:1.優先級別最高(當同時出現一個以上中斷時)。2.STl中的INTM位為0。3.IMR中的相應位為1。說明:②和③開放相應的中斷。示例: mmregs STM #0000,SWWSR ;不插等待周期
RSBX INTM ;開放中斷
STM #0004,IMR ;開放INT2
CPU相應中斷時,PC轉到適當地址取出軟件向量,并發出,清除相應的中斷標志位,即IFR相應位為0。處理過程(下)第三階段:執行中斷服務程序響應中斷之后,CPU:
1.將PC值(返回地址)存到數據存儲器堆棧的棧頂。
2.將中斷向量的地址加載到PC。
3.在向量地址上取指。
4.執行分支轉移指令,轉至中斷服務程序。
5.執行中斷服務程序。
6.中斷返回,從堆棧彈出返回地址加到PC。
7.繼續執行被中斷了的程序。用戶編寫如圖P156 Fig6-6注意:BRC比ST1中BRAF先恢復,若BRC恢復前,ISR中BRC=0,那么先恢復BRAF位將被清0。示例:INT_2:NEG A ;A變負
RETE ;開中斷從中斷返回
PCINT_2:RETE
PCSTACK
6.2定時器定時器的組成定時器的操作定時器中斷周期定時器初始化步驟定時器
C54x定時器是一個軟件可編程定時器,可用來周期地產生中斷。1)定時器的組成TIM(定時器reg):減1計數0024H。PRD(定時器周期reg):存放時間常數0025H
。TCR(定時器控制reg):含定時器的控制位和狀態位0026H。圖6-5 定時器的功能框圖
(1)TCR:各位含義見教材P160TCR是一個16位存儲器映象定時控制寄存器,包含的控制位有下列功能:▲控制定時器模式▲指定定時器預先定標計數器的當前計數值▲重新加載定時器▲啟動、停止定時器▲定義定時器的分頻系數(2)TIM與PRD:這兩種REG共同工作提供定時器的當前計數值。在正常情況下,當TIM減到0后,PRD中的時間常數自動地加載到TIM。當系統復位(=1)或定時器復位(TRB=1)時,
PRD中的時間常數重新加載到TIM。C54x定時器控制寄存器TCR
:15121110965430ReservedsoftfreePSCTRBTSSTDDRTCR中各位描述如下:
TDDR(Timerdivide-downratio):定時器分頻系數TSS(Timerstopstatus):定時器停止狀態位TRB(Timerreload):定時器重新加載位PSC(Timerprescalercounter):定時器預定標計數器Soft、Free:仿真調試使用Resvd:保留位,讀成02)定時器的操作在每一個CLKOUT脈沖后PSC減1,直到PSC=0。在下一個CLKOUT周期,TDDR加載新的除計數值到PSC,并使TIM減1。以同樣方式,PSC和TIM連續進行減操作,直到TIM=0。在下一個CLKOUT周期,將TINT送到CPU,一脈沖送到TOUT,把新定時器計數器計數值從PRD加載到TIM,并使PSC再減1。3)定時器中斷周期
TINT周期=CLKOUT(TDDR+1)(PRD+1)說明:①CLKOUT:時鐘周期。②TDDR:定時器分頻系數。③PRD:時間常數。例:假定CLKOUT頻率=10MHZ,利用4加載TDDR,以使每5個CLKOUT周期TIM減1;利用TIM的開始值(199)加載PRD。問:用Timer產生時鐘信號的頻率是多少?
=107×=10kHZ
定時器硬件復位(發①TIM、PRD被MAX值FFFF加載。②TCR所有位清零。③除數值為0(TDDR=0,PSC=0)。④啟動定時器(TSS=0)。⑤FREE、SOFT均為0。TINT頻率=CLKOUT頻率×1(TDDR+1)×(PRD+1)1(4+1)×(199+1)):4)定時器初始化步驟:先將TCR中的TSS位置1,關閉定時器加載PRD重新加載TCR,啟動定時器開放定時中斷,必須(假定INTM=1)將IFR中的TINT位置1,清除尚未處理完的定時器中斷將IMR中的TINT位置1,開放定時器中斷將STI中的INTM位置0,從整體上開放中斷要點:時間常數、中斷、初始化
下面舉例說明定時器初始化和開放定時中斷的步驟:
STM #0000H,SWWSR ;不插等待周期
STM #0010H,TCR ;TSS=1關定時器
STM #199,PRD ;加載周期寄存器PRD,STM
#0C24H,TCR
;定時器分頻系數TDDR初始化為0
;TSS=0,啟動定時器工作
;TRB=1,當TIM減到0后,重新;加載PRD
;SOFT=1,FREE=1,定時器遇;到斷點繼續進行
STM #0008H,IFR
;清除尚未處理完的定時器中斷
STM #0008H,IMR;開放定時器中斷
RSBX INTM
;開放中斷
∶
∶6.4主機接口HPI概念
什么是HPI①HostportInterface的縮寫,主機接口,是一種高速、異步并行接口(8/16/32位),用來與主設備或者處理器接口。②外部處理器通過HPI接口可以高速訪問DSP的局部或全部存儲空間。③HPI接口是以主處理器為主,DSP為從的主-從結構。
DSP中設置HPI接口的目的為主-從結構的雙處理器系統提供簡單、方便、廉價的信息交換平臺HPI概念傳統的雙處理器接口:①異步/同步串口:速度慢。②雙端口RAM:成本高,局部存儲空間,信息量有限。③雙向FIFO:成本高,受FIFO深度應用,信息量有限。能與何種類型的主處理器直接接口:①數據/地址分時復用主處理器。②數據/地址獨立的主處理器。③讀/寫控制獨立的主處理器。④讀/寫控制復合的主處理器。HPI存儲器(DARAM):(2K字1000H~17FFH)
用于C54X與主機間傳送數據。HPI地址寄存器(HPIA):由主機對其直接訪問,存放當前尋址HPI存儲單元地址。HPI數據鎖存器(HPID)::由主機對其直接訪問,存
放當前進R/W數據。HPI控制寄存器(HPIC):
C54X和主機都能對它直接訪問。地址為:002CHHPI控制邏輯:用于處理HPI與主機之間的接口信號。1)HPI組成:2)HPI工作方式:(1)共用尋址方式(SAM):主機與C54x都
能尋址HPI存儲器。(2)僅主機尋址方式(HOM):僅能讓主機尋
址HPI存儲器。
用途:HPI支持主設備與C54x之間高速傳送
數據。SAM方式:主機運行頻率可達Fd*n/5;Fd:CLKOUT,n:4(3)HOM方式:與C54x時速速率無關,每50ns尋
址一個字節。3)HPI與主機的連接圖——硬件
P163Fig6-11HPI接口信號數據數據總線HD0-HD7地址HCNTL[1:0]:用于選擇3個寄存器HPIA,HPID和HPICHBIL:當HPI數據總線寬度是DSP數據總線寬度的一半時,用于指示前后2次傳輸,如果總線寬度相同時,無此信號。HR/W:用于指示HPI傳輸的方向。控制、、:用于數據選通。:用于地址鎖存。握手線
HRDY:HPI接口數據就緒信號。
:DSP請求主機中斷信號。
HPI:與主處理器接口
信號:當數據/地址時分復用時,接主機的ALE。否則,接固定高電平。接ALE時:HD0~HD7、HCNTL0、HCNTL1、HBIL、HR/接數據/地址復用總線。接固定高電平“1”時:HD0~HD7接數據線。HCNTL0、HCNTL1、HBIL接地址線。HR/接地址線,或寫選通線。信號接片選信號。
HPI:與主處理器接口[2:1]信號隨意接獨立的讀、寫信號。一個接單獨的數據選通信號,另一個接:固定高“1”,若獨立的數據選通為低電平有效。固定低“0”,若獨立的數據選通為高電平有效。HPI:工作原理3個寄存器:HPIC:用于主處理器與DSP相互握手,實現相互中斷請求。HPIA:用于鎖存主處理器要訪問的DSP存儲單元的地址HPID:用于主處理器與DSP交換數據主處理器對HPI的訪問由2部分組成:外部:主處理器與HPI寄存器交換數據。內部:HPI寄存器與DSP存儲單元交換數據,由DSP片上DMA/EMDA自動完成。HPI地址寄存器自動加1。HPI數據寄存器有2個地址。主處理器對其中一個地址訪問后,HPI地址寄存器不變。主處理器對另外一個地址訪問后,HPI地址寄存器自動加1,這對連續的DSP存儲空間訪問非常有用。HPI:工作原理主處理器對DSP存儲單元的訪問。讀操作:預取。主機完成HPIA訪問后,DSP片上DMA自動將數據從由HPIA寄存器所指定的DSP存儲單元中預取到HPID中
。主機完成HPID讀操作后,DSP片上DMA才自動將下一個數據從由HPIA寄存器所指定的DSP存儲單元中預取到HPID中
。寫操作:后寫。主機完成對HPID寫操作后,DSP片上DMA才自動將當前數據寫到由HPIA寄存器所指定的DSP存儲單元中。HRDY信號。主處理器只有在HRDY信號有效后,才能對HPI寄存器進行操作,否則將導致錯誤發生。圖6-6
主機接口的組成框圖HPI有3個可訪問的寄存器:HPIA、HPID和HPIC。主機通過HPI接口訪問C54x片內RAM:首先要初始化HPIC。然后設置HPIA。最后讀寫C54x的片內RAM,對HIPD進行操作。主機和C54x訪問HPIC寄存器的結果如圖所示:
1512111098743210XHINT0SMODBOBXHINT0SMODBOB(a)主機讀HPIC1512111098743210XHINTDSPINTSMODBOBXHINTDSPINTXBOB(b)主機寫HPIC15143210XHINT0SMOD0(c)C54x讀HPIC15143210XHINTXSMODX(d)C54x寫HPIC
HPIC是一個16位MMR,地址:002CH4個狀態位:BOB:字節選擇位。僅主機可R/W。BOB=1,1st字節為低字節。BOB=0,1st字節為高字節。SMOD:尋址方式選擇位。SMOD=1,選擇SAM。SMOD=0,選擇HOM方式。DSPINT:主機向C54x發出中斷位。僅能由主機寫,高、低字節寫入相同的值。且主機和C54x都不能讀它。HINT:C54x向主機發出中斷位。該位決定引腳的狀態。HPI接口配置TIDSP中只有C5000和C6000系列DSP中有HPI接口。C54x系列DSP:8位HPI接口。C55x系列DSP:16位HPI接口。C62x/C67x系列DSP:16位HPI接口。C64x系列DSP:32位HPI接口。HPI接口的數據總線可配置為通用的I/O口。6.5串行口同步串行通信基礎知識串行口概述串行口框圖串行口控制寄存器同步串行通信基礎知識什么是串行通信:發送器將并行數據逐位移出成為串行數據。接收器將串行數據流逐位接收組合成并行數據。串行數據位流以一定時序和一定格式呈現在連接收/發器的數據線上。串口通信的一些基本概念:幀同步:串行數據位流的起始條件。位-時鐘:每個串行數據位持續的時間。數據元:一次串并變換所產生的串行數據位流長度,是串行通信最基本的數據單位,以數據位長度為單位,一般為8/12/16/20/24/32位。數據幀:一串連續不間斷的數據元所組成的串行數據位流,以數據元個數為單位。數據相:多個獨立的數據幀組成一串連續不間斷的串行數據位流,每個獨立的數據幀被稱為數據相。不同數據相中的數據幀,包含的數據元的個數和數據元的數據位長度可以不同。引入數據相概念的目的是可以使連續的2個數據幀,幀內的數據元的個數和數據元的數據位長度相互獨立。同步串行通信:發送器和接收器以統一的位-時鐘工作。同步串行通信標準串行數據流位起始時刻稱為幀同步事件。幀同步事件由位-時鐘采樣幀同步信號給出。串行數據位流長度:串行傳輸的數據流位數達到設定的長度后(由數據元、數據幀和數據相設定),結束本次傳輸,等待下一個幀同步信號達到,再發起另一次串行傳輸。串行數據流傳輸速度:即每一個串行位的持續時間,由位-時鐘決定。如何取得幀同步事件、何時采樣串行數據位流、或何時輸出串行數據位流,即FSR(FSX)、CLKR(CLKX)、DR(DX)三者之間的不同關系,決定了不同的同步串行標準。1、串行口概述1)概述C54x具有高速全雙工串行口。C54x中的串行口有三種形式:
標準同步串行口、
緩沖串行口和
時分多路串行口。用途:可用來與系統中其他C54x器件,編碼解碼器,串行A/D變換器以及其他的串行器件直接接口。(1)標準同步串行口
①組成:5個部分。標準同步串行口有2個存儲器映象寄存器用于傳送數據:發送數據寄存器(DXR)和接收數據寄存器(DRR)——軟件管理。每個串行口的發送和接收部分都有與之相關聯的時鐘、幀同步脈沖以及數據信號。②數據格式:串行數據可以按8位字節或16位字轉換。③可屏蔽中斷:串行口在進行收發數據操作時,可以產生它們自己的可屏蔽收發中斷(RINT和XINT)④傳送數據方式:在軟件控制下經中斷進行。注意:C54X的串行口都是雙緩沖的。(當串行發送或接收數據的操作正在進行時,可以將另一個數據傳送到DXR或從DRR獲得)。(2)緩沖串行口(BSP)
在(1)的基礎上增加了一個自動緩沖單元(ABU)。BSP是一種增強型標準串行口。
ABU利用獨立于CPU的專用總線,讓串行口直接R/W’C54x的內部存儲器。工作方式:①非緩沖方式:同(1)產生以字為基礎中斷(WXINT、WRINT)加到CPU。②自動緩沖方式:直接與C54x內部M進行16位數據傳送。
(3)時分多路串行口
將時間間隔分成若干個子間隔,按照事先規定,每個子間隔表示一個通信信息。注意:C54xTDM最多可以有8個TDM信道可用。工作方式:非TDM方式{同(1)}和TDM方式用途:為多處理器通信提供簡便而有效的接口。(用一個信息發送數據,用8個信道中的一個或一個以上的信道接收數據)。
總結:串行口(所有)都是雙緩沖的。標準串行口的最高工作頻率是CLKOUT的1/4。40MHZ,10Mbit/s。BSP與C54x的系統主時鐘頻率相同。
本節主要討論(1)。2.串行口的組成框圖串行口的組成DRR數據接收寄存器DXR數據發送寄存器地址:P266附錄4RSR接收移位XSR發送移位控制電路16位硬件連線:DR:串行接收數據FSR:接收時幀同步信號CLKR:接收時鐘信號
3.串行口控制寄存器(SPC)——16位
(P166圖6-15)不同的應用需要不同的串行口工作模式,SP支持兩種基本的工作模式。①連續模式(FSM=0):在每次接收、發送期間,只要
不斷寫入DRR或讀出DXR,就只需一個起始幀同步脈沖。②突發模式(FSM=1):對每次傳送都需要一個幀同步脈沖,在分組數據傳送之間存在串行口非激活時間,利用這種模式可傳送短的信息分組。
11109876543210XRDYRRDYIN1IN0RRSTXRSTTXMMCMFSMFODLBRESRRRRRR/WR/WR/WR/WR/WR/WR15141312FREESOFTRSRFULLXSREMPTYR/WR/WRR
SPC中各位的功能描述如下:Free、Soft:仿真控制位。RSRFULL:接收移位寄存器已滿標志位。
:發送移位寄存器已空標志位。
XRDY:發送準備就緒位。RRDY:接受就緒位。
IN1、IN0:當CLKX引腳作為輸入時,該位反映輸入信號的電平。
:接收復位標志。:發送復位標志。TXM:發送方式(TXM)位。用于設定幀同步脈沖FSX的來源。
FSM:幀同步方式位。
FO:數據寬度標志位。DLB:數字自循環測試方式位。(為1時允許使用該功能,MCM)Res:保留位。此位總是讀成0。
4.串行通信(1)查詢法:查詢SPC。
用查詢法確定何時FIFO緩沖器(DRR、DXR、RSR、XSR)需要服務,則應在中斷屏蔽reg(IMR)屏蔽他們,以使不能產生中斷。
有兩種方法:查詢法和中斷法,此兩種方法管理R/W和FIFO緩沖器。(2)中斷法:設置XINT或RINT。①復位和初始化SP
給SPC置0038H(0008H): 5 4 3TXMMCMFSMFSX(出)CLKX(出)突發模式②清除任何正在進行中的中斷給IFR置00C0H(XINT、RINT置位)。③允許串行口中斷 給IMR置00C0H。④STI中INTM=0。⑤啟動串行口 給SPC置00F8H(或00C8H)。⑥寫第一個數據值給DXR。SP的ISR(串行口中斷服務子程序)①保存堆棧中任何別修改的內容。②讀DRR或者寫DXR (R/W入預確定的內存中)。③回復保存在①中的內容。④返回,RETE。USBC5509DSP片內集成有USB1.1功能。外部擴展USB器件。USB器件按傳輸速率分為:低速:1.5Mbps。全速:12Mbps(USB1.1)。高速:480Mbps(USB2.0)。USB接口組成:USB收發器:實現USB的電氣連接(物理層)。USB串行接口引擎SIE:實現USB底層通信協議(鏈路層)。微處理器:編程實現各種應用(應用層)。新設計的USB系統一般選用USB2.0。Cypress公司是全球最大的USB接口器件供應商,其產品系列最全,開發最方便。USBCypress公司USB2.0器件按實現的功能可分為:USB收發器:鏈路層和應用層全由與之配合的處理器實現CY7C68000。USB智能引擎:USB收發器+SIE,與之配合的處理器只需實現應用層CY7C68001。USB控制器:USB收發器+SIE+MCU,與之配合的處理器只需與MCU進行數據交換CY7C68013。DSP系統中一般選用USB智能引擎或USB控制器。USBCY7C68001為智能USB外設,包含:FIFO接口,用于緩存USB端點數據流。命令接口,配置、查詢USB狀態。通過DSP的異步存儲器接口實現。第6章作業圖Fig—1是一個串行口傳送數據圖,DRR、DXR是存儲器映象寄存器,假定有一個數據輸入文件input.dat的格式如下:12345678datafull將此文件作為接收文件,每隔50個CPU時鐘周期進行一次串行接受,重復5次,用BIO引腳仿真FSR。(1)試建立時鐘周期輸入文件sbio.dat;(2)用仿真命令ma、mc及調試命令pinc來仿真串行數據接收。(3)編寫調試串行口接收數據程序,并給出調試結果。(采用中斷方式)C54xdevice0DX FSX CLKXFig—1串行口傳送數據C54xdevice1DRFSRCLKR
ThankYou!第7章CCS開發工具及應用章節內容CCS概述CCSv12的安裝及窗口CCSv12的基本使用方法TMS320VC5505EZDSP簡介
CC/CCS(CodeComposerStudio)是一種集成開發環境,是針對標準TMS320調試器接口的交互式方法。
CC/CCS目前有多個不同時期的版本,有C2000CC、C3000CC、CCS5000、CCS6000等4個不同的型號。7.1.1CCS的發展7.1.2代碼生成工具7.1.3CCS集成開發環境7.1.4DSP/BIOS插件7.1.5硬件仿真和實時數據交換7.1CCS概述CCS提供了配置、創建、調試、跟蹤和分析程序的工具,它便于實時、嵌入式信號處理程序的編制和測試,它能夠加快和增強程序員開發進程,提高工作效率。CCS提供了基本代碼生成工具,它具有一系列的調試、分析能力。CCS支持如下所示的開發周期中的所有階段:7.1.1CCS的發展CCS的構成及其在主機和目標系統中的接口
7.1.1CCS的發展IntegrateThird-PartyToolsExtendtheenvironmenttomatchgrowingneedsAdvancedDataVisualizationViewDSPtargetsignals&dataasimagesGainanintuitiveunderstandingofthesystemanditscharacteristicsIntegratedDevelopmentEnvironment(IDE)IntegratesfeaturesforeverystageofthedevelopmentcycleDSP/BIOSEnablesReal-timeAnalysisViewdatawithouthaltingtheprocessorImmediatelyidentifyproblemsCanembedBIOSinyourDSPSystemCCS概覽CsourceASMsourceHeaderandIncludefilesPaths&EnvironmentLinkerLibrariesCommandfile.map.outOptionsSeparateEditorCompilerandAssemblerOptionsObjectFiles代碼生成過程7.1.3CCS集成開發環境
1.編輯源程序2.創建應用程序3.調試應用程序CCS集成開發環境允許創建、編輯、編譯和調試DSP目標程序CCS功能:對軟件進行編輯、編譯、調試、代碼性能測試(profile)和項目管理等工作。提供的實時分析和數據可視化功能。7.1.3CCS集成開發環境CodeComposerIDEAsmLinkEditDebugCompileBreakInBreakOutPLUGINS(C++,VB,Java)RTDX -GetdatawithouthaltingtargetRTDX -GetdatawithouthaltingtargetDSPBIOSAPIs-ThreadmanagementPrioritybasedschedulingRealtimeanalysisDataandEventloggingSIMDSKEVMThirdPartyXDSDSPBoardProfilingGraphsCCS的功能CCS的視角界面CCS的功能File Edit View Project Run
C
sourceASMsourceHeaderandIncludefilesCompilerandAssemblerLinker.map.outProjectmanagesanautomaticpjtfile
BuildLibrariesCommandfileIntegratedEditorFileEditViewProjectRunToolsScriptHelpWindowOutputwindowGraphicalDisplaysMemorybufferMemoryDisplaysCPURegistersRun/AnimateStepIn/Over/OutBreakPointsWorkspaceCreatecustommenuitemsGELfilesWatchWindowsMonitorCPUconsumptionOptimizecodeLoad.OUTexecutableontotheDSPBreakPointsFILEI/OCCS的功能.outExecutableSimulatorClassicDebuggerRunSystemBreakpointsSinglestepRegistersMemoryDisassemblyLogicAnalyzerEmulatorInterface調試過程CCS集成開發環境允許創建、編輯、編譯和調試DSP目標程序。(1)編輯源程序CCS允許編輯C語言源程序和匯編語言源程序,如下圖所示:7.1.3CCS集成開發環境(2)創建應用程序一個工程中包括:C語言源程序匯編語言源程序目標文件庫文件鏈接命令文件和包含文件等7.1.3CCS集成開發環境在CCS中,應用程序由一個或多個工程組成。(3)調試應用程序CCS提供下列調試功能:設置可選擇步數的斷點;在斷點處自動更新窗口。查看變量;觀察和編輯存儲器和寄存器的值;觀察和調用堆棧。對流入目標系統或從目標系統流出的數據采用斷點工具觀察,并收集存儲器映像。繪制選定對象的信號曲線圖。估算執行程序性能的統計數據。觀察目標程序的反匯編指令和C指令。此外,CCS還提供GEL語言。7.1.3CCS集成開發環境
DSP/BIOS的概述-IntroductionDSP/BIOS的實時調度-RealTimeSchedulingDSP/BIOS提供的實時分析工具-RealTimeAnalysisToolsDSP/BIOS下的實時數據交換-Real-TimeDataExchange7.1.4DSP/BIOS插件
DSP/BIOSOverviewDSP/BIOS是一個可升級的實時內核。它主要是為需要任務的實時調度和同步,主機-目標系統通信和實時監測的應用而設計的。DSP/BIOS集成到CCS中的,不需要額外的費用。DSP/BIOS
是TI’seXpressDSP
技術的重要組成部分。7.1.4DSP/BIOS插件搶先式多任務內核
配置工具
實時分析工具
DSP/BIOSAPI:
提供近200個DSP/BIOSAPI給用戶。DSP/BIOS的組件
在CCS中打開一個配置文件時,會出現右圖所示窗口:
保存配置文件時將產生若干個與應用程序連接在一起的文件。7.1.4DSP/BIOS插件
1.DSP/BIOS配置
Instrumentation/Real-TimeAnalysis
LOG
日志模塊
STS 統計模塊
TRC
跟蹤模塊
RTDX
實時數據交換模塊ThreadTypesHWI
硬件中斷模塊
SWI
軟件中斷模塊
TSK
任務管理模塊
IDL
空閑函數模塊ClockandPeriodicFunctionsCLK
系統時鐘模塊
PRD 周期函數模塊
Comm/SynchbetweenthreadsSEM
信號量模塊
MBX
郵箱模塊
LCK
鎖定模塊Input/Output
PIP
數據通道模塊
HST
主機輸入/輸出模塊
SIO
流模塊
DEV
設備驅動模塊MemoryandLow-levelPrimitives
MEM
存儲器模塊
SYS
系統服務模塊
QUE
隊列模塊
ATM
共享數據函數
GBL
全局設置模塊7.1.4DSP/BIOS插件
2.DSP/BIOS應用編程接口模塊
7.1.5硬件仿真和實時數據交換
片上仿真硬件提供了多種多樣的功能:DSP的啟動、停止或復位功能向DSP中下載代碼或者數據檢測DSP的寄存器或者存儲器硬件指令或者依賴于數據的斷點包括周期的精確計算在內的多種記數能力主機和DSP之間的實時數據交換(RTDX)
RTDX由目標系統和主機兩部分共同組成。RTDX系統組成開發者通過調用RTDX軟件庫中應用程序接口將數據輸入或者輸出目標系統DSP庫函數通過在片仿真硬件和JTAG將數據輸入或輸出主操作平臺數據在DSP應用程序運行時實時傳送給主機。7.1.5硬件仿真和實時數據交換在主機平臺上,RTDX庫函數是和CCS一道協同工作的。顯示和分析工具可以通過串行通訊端口的應用程序接口和RTDX進行通信。開發者可以使用標準的顯示軟件插件NationalInstruments’LabVIEW。7.2CCSv12的安裝及窗口7.2.1CCSv12的安裝7.2.2初次運行CCSv127.2.3CCSv12的窗口、主菜單和工具條
7.2.4CCSv12較CCS早期版本的改進7.2.1CCSv12的安裝系統配置要求(1)機器類型:IBMPC及兼容機。(2)操作系統:Windows7(SP1之后),Windows8.x、Windows10
或Windows11。(3)處理器:至少為2.0GHz單核CPU。建議2.4G多核系統。(4)磁盤空間:建議2.5GB的磁盤剩余空間(1或2個器件系列),5.0GB(支持所有功能)。(5)內存需求:至少4GB,推薦大于8GB。2.安裝CCSv121.定義工作目錄
在初次運行CCSv12時,將出現定義工作目錄界面,用戶工作目錄(注:路徑中不能包含中文字符),若選中“Usethisasthedefaultanddonotaskagain”選項,CCS便將當前工作目錄設為默認值并在以后啟動時不再詢問。單擊“OK”,CCSv12啟動完成。
7.2.2初次運行CCSv12CCSv12啟動后,可選“File”→“SwitchWorkspace”來切換工作目錄。
CCS從2017年開始,已經完全免費。從CCSv7開始不支持Windows
XP系統,下面以基于Win10的個人計算機安裝CCSv12為例。下載地址:https:///tool/download/CCSTUDIO
下載后,運行CCSv12安裝程序ccs_setup_12.xx.exe(xx表示軟件版本),在出現歡迎界面后,單擊“Next”按鈕。7.2.2初次運行CCSv12
從CCSv8開始出現了視角(Perspective)這一概念,即在不同視角下窗口內將顯示不同的內容,且不同視角之間可以快速切換,這樣在有限大小的窗口內可以向用戶提供更多的信息,方便用戶的使用。7.2.3CCSv12的窗口、主菜單和工具條
1.“CCSEdit”視角下圖為CCSv12在“CCSEdit”視角下的一個示例:7.2.3CCSv12的窗口、主菜單和工具條
7.2.3CCSv12的窗口、主菜單和工具條
2.“CCSDebug”視角下圖為CCSv12在“Debug”視角下的一個示例:7.3CCSv12的基本使用方法7.3.1創建一個新的工程7.3.2工程的管理與設置7.3.3編譯和運行程序7.3.4導入CCS早期版本的工程
(1)選擇“Project”→“NewCCSProject”。
(2)在“Projectname”中輸入新工程的名稱(本例中為“Hello”)。
(3)在ProjecttypeandTool-chain中:“Outputtype”:工程的輸出類型。“Executable”為生成可運行的完整程序。“StaticLibrary”為生成其他工程需要使用的函數庫。“LinkerCommandFile”:在“VC5505.cmd”,可為工程分配一個CCS自帶的簡易.cmd文件。
7.3.1創建一個新的工程(4)向工程中添加源代碼等文件:選擇“Project”→“AddFiles…”,完成添加。
在工程上單擊右鍵并在彈出的關聯菜單中選擇相應的功能,便可對該工程進行管理和設置。7.3.1創建一個新的工程2.工程的設置
7.3.2工程的管理與設置在工程顯示窗口中選擇“Properties”,將會出現如右圖所示的工程屬性設置對話框:較為常用的設置有:頭文件的路徑:“Build”→“C5500Compiler”→“IncludeOptions”,再點擊圖標
便可添加頭文件的搜索路徑。預定義符號:“Build”→“C5500Compiler”→“AdvancedOptions”→“PredefinedSymbols”,再點擊圖標
便可添加預定義符號。運行模式設置:“Build”→“C5500Compiler”→“AdvancedOptions”→“RuntimeModelOptions”,在此可設置與運行模式相關的設置。7.3.2工程的管理與設置2.工程的設置
1.編譯工程
選擇“Project”→“BuildProject”,或點擊工具欄中的
按鈕。
7.3.3編譯和運行程序CCSv12不再像早期版本需要運行CCS配置程序,安裝目標板驅動卡,運行CCS設置驅動程序,而只需通過給每個工程分配目標配置文件。(1)右鍵單擊工程名稱,并選擇“New”→“TargetConfigurationFile”。(2)為目標配置文件命名,目標配置文件的擴展名為.ccxml。2.工程目標配置文件(TargetConfigurationFile)7.3.3編譯和運行程序7.3.3編譯和運行程序3.運行程序
選擇“Run”→“Debug
”。
導入CCSv3.3工程的步驟如下:7.3.4導入CCS早期版本的工程(1)選擇“Project”→“ImportLegacyCCSv3.3Projects”,彈出如右圖對話框。
(2)選中“SelectaProjectFile”并用“Browse”選擇要轉換的.pjt文件;選中“Copyprojectsintoworkspace”選項將工程復制到CCSv12的工作目錄中。7.3.4導入CCS早期版本的工程
對于一些用相對路徑引用了其他文件的工程,則應選中“Keeporiginallocationforeachproject”選項,以保持其相對路徑不變。單擊“Next”按鈕。
TMS320VC5505eZdspUSBStick(以下簡稱5505EZDSP)是SpectrumDigital公司開發的基于TMSVC5505DSP的評估版,其上包含了豐富的外設資源,是學習DSP開發的理想平臺。7.4TMS320VC5505EZDSP簡介
在本節中,將對5505EZDSP做簡要介紹,并結合一個音頻實例向各位介紹5505EZDSP的使用和開發。7.4.15505EZDSP概述7.4.25505EZDSP的硬件資源7.4.3使用5505EZDSP的音頻處理示例7.4.4示例小結7.4TMS320VC5505EZDSP簡介5505EZDSP可以用來對VC5505DSP進行評估和開發,其主要特點如下:7.4.15505EZDSP概述用于VC5505處理器的小型DSP開發工具。TMS320VC5505定點低功耗DSP。嵌入式XDS100仿真器。I2C電可擦可編程只讀存儲器。TLV320AIC320432位可編程低功耗立體聲編解碼器。線性輸入、耳機輸出連接器。擴展連接器。可拆卸的USBStick。1)TMS320VC5505DSP7.4.25505EZDSP的硬件資源2)AIC3204:TLV320AIC3204是一款靈活、低功耗、低電壓的立體聲音頻編解碼器,具有可編程輸入和輸出、PowerTune功能、固定預定義和可以配置參數的信號處理模塊、集成PLL、集成LDO和靈活的數字接口。結合先進的PowerTune技術,該設備可以覆蓋從8kHz單聲道語音播放到音頻立體聲192kHzDAC播放的操作,非常適合便攜式電池供電的音頻和電話應用。7.4.25505EZDSP的硬件資源
本小節中,使用音頻應用程序示例來介紹5505EZDSP的使用與開發。其功能為:7.4.3使用5505EZDSP的音頻處理示例將輸入音頻進行采樣并乘以音量增益再送回輸出端。使用不同截止頻率的低通濾波器對輸入音頻進行處理。每隔15s自動切換不同截止頻率的低通濾波器。使用CCS提供的圖形工具線性顯示音頻數據的FFT頻譜圖。1.板卡的連接用3.5mm立體聲音頻線將板卡與電腦主機相連,將線的一端插入板卡上名為
“STEREOIN”的插口,另一端插入電腦主機端的耳機輸出口。將立體聲耳機插入板卡上名為“HPOUT”的插口。將板卡USB與電腦主機相連,板卡連接完成。7.4.3使用5505EZDSP的音頻處理示例如下圖所示:7.4.3使用5505EZDSP的音頻處理示例2.工程的加載打開CCSv12,選擇
“Project”→“ImportCCSProject”導入名為“Audio”的工程(該工程可在所附光盤中得到)。按照7.3節所述的操作完成工程的編譯、加載。展開后的工程如右圖所示:7.4.3使用5505EZDSP的音頻處理示例3.配置圖形可視化工具選擇菜單中“Tools”→“Graph”→“FFTMagnitude”,按照右圖所示對彈出的圖形屬性對話框進行配置。程序中AIC3204默認采樣頻率為48000Hz,若在程序中更改了AIC3204的采樣頻率,則需更新該配置項。7.4.3使用5505EZDSP的音頻處理示例如下圖所示,在出現的圖形顯示窗口中點擊上方工具欄中的“EnableContinuousRefresh”按鈕,使圖形顯示工具自動持續使用最新數據生成頻譜圖。7.4.3使用5505EZDSP的音頻處理示例4.運行示例7.4.3使用5505EZDSP的音頻處理示例
在電腦上循環播放“Audio”工程中的音頻文件“music.wav”(加入了12kHz單頻噪音的測試音頻),切換到CCSv12,按“F8”鍵開始運行程序。下圖顯示了主要數據的流動過程:(程序見P204)7.4.3使用5505EZDSP的音頻處理示例AIC3204針對音頻輸入進行A/D,并將轉換后的數據由I2S總線傳出。TMS320VC5505芯片通過定時器設置在不同的時間里使用不同截止頻率的低通濾波器對輸入音頻進行處理。將已經過處理的數據乘以音量增益后傳出至I2S總線上。AIC3204芯片將傳入的數據進行D/A,并將轉換后的波形信號輸出至音頻輸出端口。7.4.3使用5505EZDSP的音頻處理示例程序說明:
DSP內核初始化。外圍設備的初始化。根據時間使用不同截止頻率的低通濾波函數對輸入音頻進行處理。關閉外圍設備并進行復位操作。7.4.3使用5505EZDSP的音頻處理示例音頻處理示例演示了怎樣設置和使用I2C總線對輸入/輸出外圍設備進行配置并通過I2S總線在外圍設備和數字信號處理目標系統之間進行數據傳輸的過程,同時設置和使用GPT定時器與定時器中斷服務函數對程序流的執行進行控制。提供這個示例是為了幫助開發者開發自己的DSP應用系統,理解I2C總線和定時器等外圍設備的功能和使用方法。7.4.4示例小結CCSv12提供了兩個導入工程的工具:“ImportCCSProjects”。“ImportLegacyCCSv3.3Projects”。
7.3.4導入volume工程前者是用來導入由CCSv12或CCE建立的工程;后者是用來導入由CCS早期版本建立的工程。由于兩者非常類似,此處僅以前者作為示例。首先登錄西安電子科技大學出版社網站()查找到本書,然后從本書配套的相關資源處下載volume文件夾。將volume文件夾拷貝至工作區,打開其步驟如下:
(1)按如下圖對話框,選擇“Project”→“ImportCCSProjects”。7.3.4導入volume工程(2)出現如下圖對話框,選擇volume(如文件夾拷貝工作區)。7.3.4導入volume工程打開工程,如下圖所示:7.3.4導入volume工程
按課件資源提供的7-4(3)volume.mp4視頻指導下一步步執行,如在volume.c中,設置斷點的具體步驟如下:
(1)在main中“dataIO();”處設置斷點。
(2)在“processing(input,output);”行設置斷點。
(3)......
最后可以看到視頻中的波形,以此例可以做算法處理。7.3.4使用斷點和觀察窗口
第八章
DSP芯片C語言開發DSP芯片C語言開發簡介為何使用C語言?加快DSP程序的開發程序的可讀性和可移植性增加程序的修改極為方便采用C編譯器的優化功能可增加C代碼的效率TI公司提供DSPLIB和rts.lib等輔助特殊函數庫DSPC語言:C運行環境(1)寄存器使用規則C編譯器如何使用DSP的寄存器函數進入和返回前,寄存器的保護函數調用規則函數間的參數傳遞通過寄存器和系統堆棧進行調用函數和被調用函數必須對各自的寄存器進行保護從被調用函數返回前,被調用函數必須歸還所有已占用的堆棧空間C和ASM混合編程C和ASM混合編程時,必須遵循寄存器使用規則和函數調用規則被C調用的ASM函數,其函數名前應加“_”中斷服務程序ASM編寫的中斷服務程序必須對所有用到寄存器進行保護,以免破壞C運行環境C編寫的中斷服務程序應用interrupt關鍵字聲明注意:這些數據類型在float.h和limits.h中定義8.2.1TMS320C54xC/C++支持的數據類型8.2.2C語言的數據訪問方法DSP片上寄存器的訪問DSP內部和外部存儲器的訪問DSPI/O端口的訪問1.DSP片上寄存器的訪問DSP片上寄存器在C中一般采用指針方式將DSP寄存器地址的列表定義在頭文件中(如reg.h),在主程序中include這個頭文件即可。DSP寄存器地址定義的形式為宏。見P211例:主程序中對SWWSR和BSCR初始化#defineSWWSR(volatileunsignedint*)0x0028#defineBSCR(volatileunsignedint*)0x0029
intfunc(){...*SWWSR=0x2000;*BSCR=0x0000;...}2.DSP內部和外部存儲器的訪問int*data1=0x3000;/*內部存儲器單元*/int*data2=0x8fff;/*外部存儲器單元*/intfunc(){...*data1=2000;*data2=0;...}本例通過指針操作對內部存儲器單元0x3000和外部存儲器單元0x8fff操作。3.DSPI/O端口的訪問DSPI/O空間的訪問通過ioport關鍵字實現。定義的形式為:ioport
typeporthex_numioport
是關鍵字,表明變量是io變量;type必須是char,short,int和unsigned;port表示io地址;hex_num是16進制地址。3.DSPI/O端口的訪問ioportunsignedport10;/*定義地址為10h的I/O端口變量*/intfunc(){...port10=20;/*writeatoport10h*/...b=port10;/*readport10hintob*/...}注意:所有的IO變量必須在程序開始聲明,不能夠在函數中聲明。8.2.3C和匯編的混合編程方法混合編程方法主要有以下三種:獨立編寫C程序和匯編程序。在C語言程序的相應位置嵌入匯編語句。對C程序進行編譯生成相應的匯編程序,然后對匯編程序進行手工優化和修改。1、獨立編寫C程序和匯編程序分開編譯或匯編形成各自的
目標代碼模塊。用鏈接器將C模塊和匯編模塊鏈接起來。匯編程序:.bss_var,1;定義變量.global_var;說明為外部變量C程序:externintvar;/*外部變量*/var=1;/*訪問變量*/C程序:globalinti;/*定義i為全局變量*/globalfloatx;/*定義x為全局變量*/main(){}匯編程序:.ref_i;說明_i為外部變量.ref_x;說明_x為外部變量LD@_i,DPSTL_x,A2、在C程序中嵌入匯編語句優點:可以在C語言中實現用C語言不好實現的一些硬件控制功能,如插入等待狀態、中斷使能或禁止等。可在C程序中的關鍵部分用匯編語句代替C語句以優化這個程序。缺點:比較容易破壞C環境,因為C編譯器在編譯嵌入了匯編語句的C程序時并不檢查或分析所嵌入的匯編語句。嵌入匯編語句的方法比較簡單,只需在匯編語句的左右加上一個雙引號,用小括弧將匯編語句括住,在括弧前加上asm標識符即可,如下所示。
asm(“匯編語句”);在C程序中直接嵌入匯編語句的一個典型應用是控制DSP芯片的一些硬件資源。TMS320C5409在C程序中一般常用下列匯編語句實現一些硬件控制asm("NOP");/*插入等待周期*/asm("ssbxINTM");/*關中斷*/asm("rsbxINTM");
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CNCIA 02001-2017綠色設計產品評價技術規范水性建筑涂料
- T/CMA JY-047-2021加油機在線監督管理規范
- T/CIMA 0028-2021手持式數字多用表檢驗規范
- T/CIMA 0021-2020諧波有功電能表檢驗裝置
- T/CIIA 017-2022科學數據安全標準體系
- T/CHTS 20025-2022公路橋梁單元式工字形鋼梳齒型伸縮裝置
- T/CHINABICYCLE 1-2018電動自行車集中充電設施設備技術規范
- T/CHES 43-2020水利水電工程白蟻實時自動化監測預警系統技術規范
- T/CHC 1004.3-2023植物基食品第3部分:肉制品
- T/CGA 42-2023地下黃金礦山巖石力學數據采集技術規范
- 租賃換電定制合同協議
- 2025標準技術咨詢服務合同模板
- 慢性腎臟病肌少癥診斷治療與預防專家共識(2024年版)解讀
- 汽車制造業產品質量管理措施
- 科學上海會考試卷及答案
- 中小學校園安全風險防控規范操作手冊與案例分析
- 大模型備案-落實算法安全主體責任基本情況-XX集團有限公司
- 重大危險源安全管理培訓
- 封閉管理的疫情防控課件
- 離婚協議書正規打印(2025年版)
- 世界各地文化創意產業發展報告表
評論
0/150
提交評論