《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 利用MSP430實(shí)現(xiàn)Blackfin DSP的程序引導(dǎo)
利用MSP430實(shí)現(xiàn)Blackfin DSP的程序引導(dǎo)
摘要: 本系統(tǒng)為軟件無線電掌上設(shè)備平臺(tái),,采用了BF533+MSP430F149的雙處理器模式:BF533主要完成寬帶擴(kuò)頻信號(hào)的快速捕獲跟蹤和解碼功能,;MSP430完成的功能包括USB控制器接口,、射頻控制和DSP引導(dǎo),、監(jiān)控等。
Abstract:
Key words :

       Blackfin處理器是ADI公司與Intel公司于2003年4月聯(lián)合推出的一系列DSP產(chǎn)品,,主要面向嵌入式音頻,、視頻和通信等領(lǐng)域,除了具有強(qiáng)大的信號(hào)處理性能和理想的電源效率,,還集成了32位的RISC精簡指令集,。ADSP-BF533是目前Blackfin系列數(shù)字信號(hào)處理器中性能最高的一款,具有600MHz的主頻,,雙16位的MAC(乘加器)和兩個(gè)40位的ALU(算術(shù)邏輯單元),,4個(gè)8位的視頻處理單元,8個(gè)算術(shù)寄存器,,10個(gè)地址尋址單元,。DSP集成了148K字節(jié)的片內(nèi)RAM,并具有豐富的外部接口,,如SDRAM,、通用并行數(shù)據(jù)口、SPI,、PPI,、同步和異步串口等。

       MSP430F149是工業(yè)級(jí)閃存型16位RISC MCU,,具有功耗極低,、片上資源豐富等特點(diǎn),同樣非常適合掌上設(shè)備使用,。

       本系統(tǒng)為軟件無線電掌上設(shè)備平臺(tái),,采用了BF533+MSP430F149的雙處理器模式:B F533主要完成寬帶擴(kuò)頻信號(hào)的快速捕獲跟蹤和解碼功能;MSP430完成的功能包括USB控制器接口,、射頻控制和DSP引導(dǎo),、監(jiān)控等,如圖1所示,。

系統(tǒng)結(jié)構(gòu)簡圖

圖1  系統(tǒng)結(jié)構(gòu)簡圖

       MSP430通過USB控制器同PC機(jī)建立通信,,整個(gè)系統(tǒng)作為一個(gè)USB設(shè)備被PC機(jī)訪問。天線接收射頻信號(hào)進(jìn)行直接下變頻,,經(jīng)AD轉(zhuǎn)換后進(jìn)入BF533,。DSP程序存放在MSP430F149片內(nèi)FLASH ROM中。

       MSP430F149和BF533通過SPI總線連接,,在解決DSP程序引導(dǎo)問題的同時(shí),,也實(shí)現(xiàn)了DSP的實(shí)時(shí)監(jiān)控。

       Blackfin 應(yīng)用程序引導(dǎo)過程

       開發(fā)Blackfin 應(yīng)用程序的一般過程如圖2所示,。

Blackfin 引導(dǎo)文件生成過程

圖2  Blackfin 引導(dǎo)文件生成過程

       DSP應(yīng)用程序編寫和調(diào)試通常在ADI公司的集成開發(fā)環(huán)境VisualDSP++下完成,。在軟件設(shè)計(jì)階段,可使用硬件仿真器Summit ICE通過JTAG(邊界掃描測試接口)同目標(biāo)處理器連接進(jìn)行調(diào)試開發(fā),。VisualDSP++會(huì)將用戶應(yīng)用程序代碼編譯生成DSP可執(zhí)行文件(.DXE),,并通過JTAG口裝入目標(biāo)處理器的內(nèi)存。

 

       在設(shè)計(jì)獨(dú)立的目標(biāo)系統(tǒng)時(shí),,必須考慮用戶程序的引導(dǎo)方式和相應(yīng)的外部存儲(chǔ)器,,通過VisualDSP++產(chǎn)生與存儲(chǔ)器類型相應(yīng)的引導(dǎo)文件(.LDR),將引導(dǎo)文件燒錄到外部存儲(chǔ)器中,。最后,,通過某種引導(dǎo)模式將引導(dǎo)文件裝載到DSP內(nèi)存并執(zhí)行。

       BF533內(nèi)部有一段固化的引導(dǎo)程序(Boot ROM),,見圖3,。硬件復(fù)位后進(jìn)入引導(dǎo)進(jìn)程,執(zhí)行存放在Boot ROM中的引導(dǎo)程序,。首先,,通過對(duì)兩個(gè)專用引導(dǎo)模式選擇引腳BMODE[1:0]的采樣,,決定BF533將以何種方式裝載用戶應(yīng)用程序代碼/數(shù)據(jù)。然后,,按照用戶選擇的格式引導(dǎo)應(yīng)用程序并執(zhí)行,。

Blackfin應(yīng)用程序引導(dǎo)過程

圖3  Blackfin應(yīng)用程序引導(dǎo)過程

       BF533共有4種程序引導(dǎo)模式,表1顯示了引腳BMODE[1:0]的值和引導(dǎo)模式的關(guān)系,。

       對(duì)任何一種模式,,引導(dǎo)程序會(huì)根據(jù)模式引腳選擇的外部程序存儲(chǔ)器的類型,先讀出一個(gè)10個(gè)字節(jié)的文件頭(Header),。文件頭由4個(gè)字節(jié)的目的地址,、4個(gè)字節(jié)的傳輸數(shù)據(jù)數(shù)量(字節(jié)數(shù))和2個(gè)字節(jié)的控制標(biāo)志組成。如果用戶程序或數(shù)據(jù)需要放在DSP內(nèi)存的不同地址塊,,可以采用分塊引導(dǎo)的方式來進(jìn)行數(shù)據(jù)加載,,每個(gè)塊(Block)用不同的文件頭描述。一旦所有的塊裝載完畢,,處理器將結(jié)束引導(dǎo)進(jìn)程,,并從L1指令存儲(chǔ)器的起始地址(0xFFA00000)開始執(zhí)行放在這里的用戶代碼。文件頭中控制標(biāo)志描述了塊的一些屬性,。圖4是引導(dǎo)時(shí)的數(shù)據(jù)流和文件頭格式,。

 BF533的引導(dǎo)數(shù)據(jù)流和文件頭格式

圖4  BF533的引導(dǎo)數(shù)據(jù)流和文件頭格式

 

 

 

       SPI引導(dǎo)時(shí)序

        SPI總線由三條信號(hào)線組成:串行時(shí)鐘(SCLK)、串行數(shù)據(jù)輸出(SDO),、串行數(shù)據(jù)輸入(SDI),。SPI總線可以實(shí)現(xiàn)多個(gè)SPI設(shè)備互相連接。提供SPI串行時(shí)鐘的SPI設(shè)備為SPI主機(jī)或主設(shè)備(Master),,其他設(shè)備為SPI從機(jī)或從設(shè)備(Slave),。將各個(gè)設(shè)備的串行時(shí)鐘引腳接在一起,主設(shè)備的數(shù)據(jù)輸出接從設(shè)備的數(shù)據(jù)輸入MOSI(Master Out Slave In),,從設(shè)備的數(shù)據(jù)輸入接主設(shè)備的數(shù)據(jù)輸出MISO(Master In Slave Out),。

 

       由于MSP430和BF533的SPI口均可軟件配置為主或從設(shè)備,因此通過同樣的連接方法既可使BF533為主機(jī),,又可使MSP430為主機(jī),。

       程序引導(dǎo)時(shí),BF533是主機(jī),,串行時(shí)鐘由BF533提供,,監(jiān)控過程中MSP430是主機(jī),通過SPI口控制BF533,,與引導(dǎo)時(shí)相比,,硬件連接沒有改變,只是MSP430和BF533各提

 

供一個(gè)通用IO引腳用作握手信號(hào),,用來避免MSP430在DSP忙時(shí)中斷DSP,。

 

       在本系統(tǒng)中,,BF533引導(dǎo)模式設(shè)為從16位串行SPI存儲(chǔ)器引導(dǎo)。BF533上電或硬件復(fù)位后,,SPI接口默認(rèn)為主模式,,并提供頻率為500KHz的串行時(shí)鐘。引導(dǎo)時(shí)序最初的幾個(gè)周期是:從第一個(gè)SPI時(shí)鐘周期開始,,BF533在MOSI引腳上產(chǎn)生讀SPI的串行EEPROM命令字節(jié),其值為0x03,。這個(gè)值對(duì)于SPI串行EEPROM而言,,是讀存儲(chǔ)器命令。存儲(chǔ)器應(yīng)從下一個(gè)時(shí)鐘節(jié)拍開始將存儲(chǔ)器內(nèi)數(shù)據(jù)串行送到BF533的MISO引腳上,。由圖4可知,,首先送出的應(yīng)該是塊1的目的地址信息0xFFA00000。讀出這個(gè)值之后,,DSP內(nèi)部會(huì)對(duì)該值進(jìn)行判斷,,如果目的地址不是DSP內(nèi)存區(qū)域內(nèi)的有效地址,BF533將重復(fù)發(fā)送讀SPI EEPROM命令字節(jié)并判斷地址有效性這一過程,。如果讀入的地址有效,,將會(huì)啟動(dòng)讀存儲(chǔ)器時(shí)序,再發(fā)送一個(gè)讀SPI 串行EEPROM命令字節(jié):先讀入文件頭,,再讀入引導(dǎo)內(nèi)容,。

       設(shè)計(jì)中應(yīng)特別考慮MSP430軟件以確保由MSP430F149的SPI接口產(chǎn)生的引導(dǎo)時(shí)序和從EEPROM引導(dǎo)時(shí)的時(shí)序相同。根據(jù)筆者開發(fā)經(jīng)驗(yàn),,BF53x系列正式版本具有相同的SPI引導(dǎo)時(shí)序,,但測試版本芯片的SPI時(shí)序與正式版有所差異。

       DSP實(shí)時(shí)監(jiān)控與程序在線升級(jí)

       在DSP程序運(yùn)行的過程中,,通常我們需要知道它的運(yùn)行狀況,。因此需要建立一種機(jī)制用來實(shí)現(xiàn)對(duì)DSP內(nèi)存區(qū)域的實(shí)時(shí)讀寫操作,即完成程序的實(shí)時(shí)監(jiān)控,。

       在BF533應(yīng)用程序設(shè)計(jì)中,,設(shè)置BF533的SPI口為從模式。在引導(dǎo)完成之后,,設(shè)置MSP430的SPI口為主模式,,而引導(dǎo)進(jìn)去的BF533用戶應(yīng)用程序開始執(zhí)行,從而在MSP430和BF533之間建立了主從的SPI通信,。

       此外,,MSP430通過USB接口器件PDIUSBD12連接到PC機(jī)。監(jiān)控命令由PC機(jī)或鍵盤操作發(fā)起,,MSP430響應(yīng)PC機(jī)通過USB總線下發(fā)的命令或鍵盤命令,,再根據(jù)命令類型進(jìn)行操作,。監(jiān)控命令分為兩類:

       (1)PC機(jī)或鍵盤對(duì)MSP430的控制命令。命令通過USB總線或鍵盤傳到MSP430,,MSP430響應(yīng)命令并執(zhí)行相應(yīng)操作,。此類命令包括:升級(jí)DSP程序、下載數(shù)據(jù)到FLASH,、外圍控制等,。

       (2)PC機(jī)或鍵盤對(duì)DSP的控制命令。這類命令可由PC機(jī)通過USB總線或鍵盤操作下達(dá)到MSP430,,也可由MSP430直接發(fā)起,,命令接受方是DSP。此類命令主要有兩個(gè):讀DSP內(nèi)存區(qū)域和寫DSP內(nèi)存區(qū)域,。命令由命令包和數(shù)據(jù)包組成,,讀命令包主要包括命令代碼、目的地址,、讀出長度以及校驗(yàn)字,。在發(fā)出讀命令包后,如果收到DSP正確的響應(yīng),,就發(fā)出跟讀出長度相應(yīng)的數(shù)據(jù)包,,每發(fā)一個(gè)數(shù)據(jù)包就將收到DSP返回的一包數(shù)據(jù)。寫命令包主要包括命令代碼,、目的地址,、寫入長度以及校驗(yàn)字。在發(fā)出寫命令包后,,如果收到DSP的正確響應(yīng),,就將欲寫的數(shù)據(jù)打包送出,如果寫入成功,,就會(huì)收到DSP的正確響應(yīng),。

       MSP430具有60K字節(jié)的片上FLASH程序存儲(chǔ)器,除了自身程序占用的程序空間,,還可空出約48K字節(jié)的空間,。本系統(tǒng)中,這部分空閑空間用來存放待引導(dǎo)的DSP程序,。MSP430的FLASH存儲(chǔ)器具有分段擦除和編程功能,,最小擦除單位是512(0x200)字節(jié)。其FLASH ROM除了可以用專門的開發(fā)工具進(jìn)行編程操作外,,還可以自編程實(shí)現(xiàn)DSP程序的在線升級(jí),。

       結(jié)語

       通過MSP430F149直接對(duì)ADSP-BF533進(jìn)行程序引導(dǎo)和實(shí)時(shí)監(jiān)控,與通常使用串行EEPROM引導(dǎo)相比,,避免了燒寫EEPROM這一中間過程,,減少了電路復(fù)雜度,。在同樣的電路連接上既實(shí)現(xiàn)了引導(dǎo)功能,又實(shí)現(xiàn)了監(jiān)控功能,。此外,,通過MSP430靈活的軟件編程,還使系統(tǒng)具有引導(dǎo)時(shí)機(jī)可靈活掌握,、DSP程序可在線升級(jí)等特點(diǎn),。

 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。