當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]利用MSP430實(shí)現(xiàn)Blackfin DSP的程序引導(dǎo)

 Blackfin處理器是ADI公司與Intel公司于2003年4月聯(lián)合推出的一系列DSP產(chǎn)品,主要面向嵌入式音頻、視頻和通信等領(lǐng)域,除了具有強(qiáng)大的信號(hào)處理性能和理想的電源效率,還集成了32位的RISC精簡(jiǎn)指令集。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)為軟件無(wú)線電掌上設(shè)備平臺(tái),采用了BF533+MSP430F149的雙處理器模式:B F533主要完成寬帶擴(kuò)頻信號(hào)的快速捕獲跟蹤和解碼功能;MSP430完成的功能包括USB控制器接口、射頻控制和DSP引導(dǎo)、監(jiān)控等,如圖1所示。

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

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

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

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

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

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

       DSP應(yīng)用程序編寫(xiě)和調(diào)試通常在ADI公司的集成開(kāi)發(fā)環(huán)境VisualDSP++下完成。在軟件設(shè)計(jì)階段,可使用硬件仿真器Summit ICE通過(guò)JTAG(邊界掃描測(cè)試接口)同目標(biāo)處理器連接進(jìn)行調(diào)試開(kāi)發(fā)。VisualDSP++會(huì)將用戶(hù)應(yīng)用程序代碼編譯生成DSP可執(zhí)行文件(.DXE),并通過(guò)JTAG口裝入目標(biāo)處理器的內(nèi)存。 在設(shè)計(jì)獨(dú)立的目標(biāo)系統(tǒng)時(shí),必須考慮用戶(hù)程序的引導(dǎo)方式和相應(yīng)的外部存儲(chǔ)器,通過(guò)VisualDSP++產(chǎn)生與存儲(chǔ)器類(lèi)型相應(yīng)的引導(dǎo)文件(.LDR),將引導(dǎo)文件燒錄到外部存儲(chǔ)器中。最后,通過(guò)某種引導(dǎo)模式將引導(dǎo)文件裝載到DSP內(nèi)存并執(zhí)行。

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

圖3  Blackfin應(yīng)用程序引導(dǎo)過(guò)程[!--empirenews.page--]

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

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

       程序引導(dǎo)時(shí),BF533是主機(jī),串行時(shí)鐘由BF533提供,監(jiān)控過(guò)程中MSP430是主機(jī),通過(guò)SPI口控制BF533,與引導(dǎo)時(shí)相比,硬件連接沒(méi)有改變,只是MSP430和BF533各提供一個(gè)通用IO引腳用作握手信號(hào),用來(lái)避免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í)鐘周期開(kāi)始,BF533在MOSI引腳上產(chǎn)生讀SPI的串行EEPROM命令字節(jié),其值為0x03。這個(gè)值對(duì)于SPI串行EEPROM而言,是讀存儲(chǔ)器命令。存儲(chǔ)器應(yīng)從下一個(gè)時(shí)鐘節(jié)拍開(kāi)始將存儲(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é)并判斷地址有效性這一過(guò)程。如果讀入的地址有效,將會(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ù)筆者開(kāi)發(fā)經(jīng)驗(yàn),BF53x系列正式版本具有相同的SPI引導(dǎo)時(shí)序,但測(cè)試版本芯片的SPI時(shí)序與正式版有所差異。

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

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

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

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

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

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

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

       結(jié)語(yǔ)

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉