《DSP課程設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《DSP課程設(shè)計報告(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、課 程 設(shè) 計 報 告
電子與信息工程學院
課程設(shè)計報告
( 2010 — 2011 學年 第 一 學期)
課程名稱: DSP課程設(shè)計_
班 級: 電子0703
學 號:
姓 名:
指導教師:
2010 年 01 月
課程設(shè)計題目:
DSP課程設(shè)計
目的與任務(wù):
1. 了解DSP實驗板結(jié)構(gòu)原理
2. 焊接電路板
3. 根據(jù)編程任務(wù)要求編寫并調(diào)試程序
4. 課程設(shè)計成果
2、驗收、面試,撰寫報告
內(nèi)容和要求:
1. 可根據(jù)指導書上任務(wù)要求進行編程調(diào)試,或者根據(jù)現(xiàn)有硬件資源進行自由發(fā)揮
2. 要求熟練掌握硬件器件的使用
3. 熟悉DSP軟硬件開發(fā)流程
設(shè)計內(nèi)容(原理圖以及相關(guān)說明、調(diào)試過程、結(jié)果)
任務(wù)說明:
首先認識DSP的TMS320VC5402、74lvc244芯片、MAX3232、TLV320AIC23等主要芯片的原理,大致明白電路的連接,然后焊接電路板,使其能夠通過JTAG仿真器下載程序并使各種燈該亮的亮該不亮的不亮,正確完成電路板的焊接,最后理解DSP HPI啟動方法,編寫MCU程序完成DSP的啟動,并能在焊好的電路板上運行出來。
3、
基本原理:
1. TMS320VC54x系列DSP芯片簡單介紹
C54x的存貯空間分為三個部分,分別是程序空間,數(shù)據(jù)空間和輸入輸出(I/O)空間。程序空間的大小為1M字,數(shù)據(jù)和輸入輸出空間大小都是64K字。
存貯空間的配置有兩種模式,一種是微處理器方式(MP),另一種是微計算機方式,而這兩種方式主要影響程序空間的分配。微處理器模式,程序地址空間FF80~FFFF是外部的,也就是我們可以配置的。微計算機模式,程序地址空間FF80~FFFF是被系統(tǒng)占用了的,用于存放系統(tǒng)中斷向量表,同時F000~FEFF地址空間也被系統(tǒng)使用,這段地址里面包含了引導程序。由此可以看出,微計算機方式就是把該
4、DSP看成了獨立的一個系統(tǒng),要自己能夠單獨工作起來,因此需要引導程序。
數(shù)據(jù)空間分成了6個部分。其中00~5F是存貯器映射空間。這段地址空間的值和DSP內(nèi)部寄存器的值是一致的,訪問這個地址空間就等于訪問DSP內(nèi)部的相對應(yīng)寄存器。而這段空間是在DSP的片上RAM內(nèi)。
60~7F是一個散空間,相當于系統(tǒng)給自己保留了一個空間用于特殊之用。
80~3FFF是DSP的片上RAM所映射的地址空間,如果我們程序的代碼比較小時,可以不用外擴RAM。
4000~EFFF,這段空間是外部尋址空間。假如程序比較大,片上RAM放不下下的時候,可以外擴一個RAM,然后將程序放在這段空間里執(zhí)行。
F000~FE
5、FF,這段空間可以是外部,也可以是片上ROM,主要受CPU的控制寄存器DROM位的控制。
FF00~FFFF,可以是外部也可以是保留不能使用。主要受DROM位影響。
輸入輸出(I/O)空間的64K字全部是外部的。
另外,C54x的程序空間采用了分頁機制。每64K字為一頁。因此程序空間1M字可以劃分為16頁。
在進行系統(tǒng)軟件設(shè)計時,應(yīng)注意以下幾個問題:
(1)由于McBSP工作在數(shù)據(jù)接收中斷方式,因此全局中斷和串口中斷的相應(yīng)位要合理設(shè)置。同時,在設(shè)置中斷向量表時,中斷向量表的位置應(yīng)與處理器模式狀態(tài)寄存器PMST中的中斷向量指針I(yè)PTR相對應(yīng),IPTR的9位地址指向128字的中斷向量所
6、在的程序頁同時,中斷向量表也要嚴格按照C5402規(guī)定的格式編寫,否則不能正確地產(chǎn)生需要的中斷結(jié)果。
(2)要實現(xiàn)DSP數(shù)據(jù)采集系統(tǒng)的脫機獨立運行,程序裝載十分關(guān)鍵。C5402(主)進行并行裝載時,AT29LV1024中的程序數(shù)據(jù)流要嚴格按照并行裝載的格式依次把C5402從 裝載程序、C5402(主)自身執(zhí)
行程序和C5402(從)的程序裝載到片內(nèi)DRAM和片外雙口SRAM中。
(3)當雙端口RAM在兩片DSP之間進行數(shù)據(jù)傳遞時,要合理分配空間,協(xié)調(diào)好讀寫時序,嚴格避免數(shù)據(jù)沖突。
2. 最小系統(tǒng)
DSP最小系統(tǒng)設(shè)計以TMS320VC5402為核心,配置電源管理芯片、JTAG仿真
7、口、時鐘電路及用于系統(tǒng)測試的電路,使用TI CCS(Code Compose Studio)開發(fā)環(huán)境進行簡單程序的編寫、編譯、下載和運行調(diào)試。
圖1.系統(tǒng)總體設(shè)計結(jié)構(gòu)圖
DSP時鐘電路:
圖2.時鐘電路
DSP復(fù)位電路:
圖3.復(fù)位電路
3.HPI BootLoader設(shè)計
進行HPI接口程序設(shè)計,包含了單片機和DSP相關(guān)技術(shù),提高學生綜合、靈活應(yīng)用知識的能力。學生首先在TI CCS集成開發(fā)環(huán)境中編寫用戶程序編譯后形成COFF文件(.out文件),利用TI提供的命令HEX500將.out文件轉(zhuǎn)換為.hex文件。利用ST
8、C單片機在線燒寫的功能,將這一文件和單片機控制DSP HPI接口程序一起編譯,采用RS232串口一同燒寫到STC單片機片內(nèi)ROM中。
DSP復(fù)位后檢測MP/MC=0為自啟動模式, DSP片內(nèi)程序BootLoaer(自舉程序)查詢HPI接口是否可以進行自啟動如圖2所示:在啟動以后,DSP片內(nèi)0x7F地址的值被置為0,BootLoader不斷檢驗0x7F地址處是否出現(xiàn)了可用的程序指針的跳轉(zhuǎn)地址。當其發(fā)現(xiàn)該地址內(nèi)的值不為0時,即判定為DSP已由外部單片機進行了HPI自舉程序加載,并按照該值跳轉(zhuǎn)PC指針,開始運行,從而完成HPI方式自舉。通過觀察實驗結(jié)果來驗證程序的正確性。
圖4.HPI啟動流
9、程圖
4. I/O設(shè)計
DSP芯片存在三種空間分別是程序、數(shù)據(jù)和I/O空間。DSP芯片通過/IS以及/IOSTRB外部I/O空間片選和鎖存,結(jié)合地址線、數(shù)據(jù)線對I/O空間進行讀寫操作。應(yīng)用數(shù)字電路基礎(chǔ)課程的74LVC系列譯碼器件進行邏輯設(shè)計,加以編程實現(xiàn)如44鍵盤、LED的讀寫控制,可以化抽象為具體,并觸類旁通掌握程序、數(shù)據(jù)空間擴展方法。
5. 電源設(shè)計:
TMS320VC5402芯片采用低電壓供電方式,這可以大大降低DSP的功耗, TMS320VC5402的電源分兩種,即內(nèi)核電源和I/O電源。其中, I/O 電源采用3.3V,而內(nèi)核電源為1.8V。為了滿足TMS320VC5402對電
10、源的要求,并降低實驗板成本,采用AMS1117芯片分別提供1.8V和3.3V電源,滿足系統(tǒng)中所有芯片的供電需求。
圖5.系統(tǒng)電源模塊
6.MCU的相關(guān)電路
(1)下載電路
圖6.下載電路
MAX232主要功能是:在單片機下載電路中該芯片主要是轉(zhuǎn)換電平。
(2)MCU芯片核心電路
圖7.MCU芯片電路
7.LED選調(diào)驅(qū)動電路圖如下:
圖8.LED選通電路
74LVC139 2-4譯碼器:通過設(shè)置portcfff使得控制驅(qū)動電路選擇鍵盤電路還是LED電路。
當A13A12=00且A15A14!=00時,74LVC139譯碼器Y0輸出低電平使能74LVC24
11、4芯片。此時,DSP芯片引腳DSP_D4-DSP-D7的值輸入到芯片內(nèi)部,輸出點亮相應(yīng)的LED燈。
部分程序如下:
#define LedAdd portcfff
ioport unsigned int LedAdd;
74LVC244總線驅(qū)動:使用74LVC244的四個IO口控制四盞LED燈,當引腳輸出低時電平點亮LED燈,輸出高電平時熄滅LED燈。
實驗步驟
1.焊接電路板:
首先注意安全:特別是在實用烙鐵時,注意不要燙著人體,不要燙著電線,以免發(fā)生傷害事故;
器件焊接順序:
(1)首先用萬用表測量電路板上電源與地,保證這兩端不短路;
(2)其次先焊接電源電路
12、,焊接完后立即上電測試電源輸出3.3V 和1.8V是否正常,注意上電前需要再次測試電源與地,保證這兩端不短路;
(3)其余器件原則是從矮到高的,大致是先焊貼片器件,如電阻,再焊座子等;
貼片器件(電阻、電容、三極管等)焊接方法:先在電路板上器件對應(yīng)封裝的一個管腳焊盤上上點焊錫,然后用鑷子夾送器件到板子上先固定已有焊錫的那個管腳,然后再焊接其他管腳,焊錫用量不宜過少,以保證焊接牢靠。特別是在焊接引腳很密的芯片時,要特別注意焊接的方法,焊接完后對各引腳進行連接測試。
具體實踐時我們發(fā)現(xiàn)貼片電阻等小件的焊接前,要將焊盤搪少量的焊錫(盡量少,并均勻),電烙鐵溫度以1秒左右能融化焊錫為最佳,然后用
13、尖的鑷子夾元件并擺好位置,烙鐵頭上有焊錫,不用特意保留。貼片焊時用烙鐵頭同時接觸元件的焊點和電路板的焊盤,看到PCB的焊盤焊錫融化即可;再焊接另一頭;如果覺得焊錫不足可以補。焊接貼片集成塊時,先將集成塊的管腳也搪錫,然后可以一個一個管腳焊接,只用烙鐵加熱一下如果大量焊接可以將烙鐵吃滿錫,粘松香后由一端焊向另一端,瞬間即可焊接一側(cè)的管腳,掌握好時間和吃錫量,可以焊接的很快。
2. JTAG下載程序到DSP。
LAB1~LAB11 為11個實驗文檔可以使用JTAG仿真器進行實驗,若要脫離JTAG仿真器要使用HPI BOOT。同時注意download.c 程序中,0x007f的值為ccs編譯時候
14、 _c_int00的地址值具體方法如下:
(1)把CCS2.0編譯輸出文件*.out拷貝到CHANGE目錄中,重新命名為ASM.OUT。
(2)運行change.bat批處理文件把ASM.OUT轉(zhuǎn)換為dspcode.h。
(3)把dspcode.h拷貝到LOAD文件夾,用C編譯器編譯生成 load.hex文件。
(4)用串口標準線連接DEC5402的COM口和PC的COM口(在斷電情況下操作)。
(5)運行STC在線燒寫軟件。
(6)點擊STC上downLoad按鈕,等出現(xiàn)如下圖所示時,接通DEC5402的電源。
3. 對于點亮LED程序的設(shè)計
(1)通用I/O引腳的使
15、用
TMS320VC5402有64k字并行I/O口,和兩個受軟件控制的專用引腳BIO和XF。外部標志輸出引腳XF可以用來向外部器件發(fā)信號,可以使用匯編語句“SSBX XF”給XF置位,使用“RSBX XF”進行復(fù)位,使CPU向外部器件發(fā)信號。在測試的過程中,將XF引腳連接到外部的LED燈,用LED燈觀察XF引腳電平的變化。
(2)數(shù)據(jù)總線D15~D0的使用
D15~D0為CPU與外部數(shù)據(jù)、程序存儲器或者I/O設(shè)備之間傳送數(shù)據(jù)復(fù)用,程序中使用數(shù)據(jù)總線控制LED燈的亮滅。
程序中所用的硬件電路主要有:DSP最小系統(tǒng)、電源電路、五個LED燈、譯碼芯片74LVC139和總線驅(qū)動芯片74
16、LVC244,主要實現(xiàn)LED0-LED3按照四位二進制遞增的方式依次點亮,然后不停閃爍。
在程序的開始,定義了led燈的端口地址,從而使得A15A14=00且A13A12=11,使能74LVC244的控制led燈部分。
(3)LED軟件設(shè)計
軟件框圖(右):
圖9..軟件流程圖
軟件程序:
#define LedAdd portcfff
ioport unsigned int LedAdd;
void delay();
void main()
{ unsigned int i,k;
i=0;k=0;
17、
asm(" stm 0xffe0, pmst ");
asm(" rsbx xf ");
for(k=0;k<0xf;k++)
{
i=k;
LedAdd=0x00f0 & i<<4;
delay(0x00ff);
}
asm(" ssbx xf");
delay(0x0020);
i=0;
while(1)
{
asm(" rsbx xf");
LedAd
18、d=0x00f0;
delay(0x00ff);
delay(0x00ff);
asm(" ssbx xf ");
LedAdd=0x0000;
delay(0x00ff);
delay(0x00ff);
}
}
void delay(unsigned int temp)
{
unsigned int l, j;
for(j=0;j
19、320VC5402,MP/MC 管腳接地,程序運行于內(nèi)部RAM。
1) 在HPI Boot 時最好將 HINT 與 INT2 直接相連,同時加上拉電阻。這樣可以保證 DSP 在啟動后查詢 Boot 方式時直接進行 HPI %% Boot。
2) 在主機向 DSP 下載應(yīng)用程序前,最好清零 HINT,即向 DSP 的 HPIC 寄存器的 HINT 位寫 1。
3) 在主機向 DSP 下載程序之前,向 DSP 的 0x7F 地址寫零。
4) 在主機向 DSP 下載完程序之后,先將 DSP 的 OVLY 位設(shè)為 1,確保 DSP 的程序?qū)ぶ肺挥?DSP 的內(nèi)部 RAM。
20、
5)上述工作完成后,將 DSP 的入口地址寫入到 0x7F 寄存器,DSP開始運行。(注意:這里的入口地址應(yīng)該是程序的復(fù)位向量所在地址%%,通常的鏈接采用了 -c 參數(shù),這時自動的將 _c_int00 函數(shù)作為系統(tǒng)的入口函數(shù),該函數(shù)的地址即是 DSP 的入口地址。同時因為系統(tǒng)的中%% 斷向量表中的復(fù)位向量指向的是 _c_int00,所以將入口地址設(shè)為中斷向量表的復(fù)位向量地址也可以)(在單片機程序中發(fā)送給DSP的數(shù)據(jù)第一個數(shù)作為高位,第二個數(shù)作為低位的).
小結(jié):
本次課程設(shè)計主要分為兩個大的模塊:硬件電路的焊接以及軟件的編程調(diào)試和下載。本次課程設(shè)計相應(yīng)的從實際動手和編程兩
21、個方面鍛煉了我們。對于電路板的焊接,因為之前有做過類似電路板的焊接,所以對于焊接這方面幾乎沒什么問題,并且由于是兩人一組,兩個人配合起來使焊接過程頗為順利,同時完成的質(zhì)量也較好,沒出什么問題。在焊接硬件電路的過程中,對于整個原器件以及電路也有了較好的了解,尤其對于一些元件的正負極以及高低電平點亮在心中有了一定的思量,這為下面對于程序的掌握起到了很好的基礎(chǔ)作用。
通過本次課程設(shè)計,熟悉了DSP的相關(guān)知識,同時又加深了對于單片機的了解。在本次課程設(shè)計中由于利用JTAG下載程序到DSP芯片中,程序掉電不保存,但有了單片機,利用軟件轉(zhuǎn)換程序格式,生成適合單片機的.hex文件,這樣就解決了DSP中程序掉電不保存的缺陷。
參考文獻
[1] 高林海、錢滿義編著.《DSP技術(shù)及其應(yīng)用》.清華大學出版社.2009
[2] 武曉光、郭天文編著.利用I2c和McBsp接口實現(xiàn)DSP與CODEC芯片的數(shù)據(jù)傳輸[J].現(xiàn)代電子技術(shù),2006(24):137—139.
- 11 -