當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]簡要介紹了MOTOROLA公司的24位定點(diǎn)數(shù)字信號(hào)處理器DSP56362的并行引導(dǎo)過程和特點(diǎn)。

  摘要:簡要介紹了MOTOROLA公司的24位定點(diǎn)數(shù)字信號(hào)處理器DSP56362的并行引導(dǎo)過程和特點(diǎn)。并結(jié)合實(shí)際,提出了一種雙引導(dǎo)模式,給出了具體的實(shí)現(xiàn)方法。通過這種雙引導(dǎo)模式,巧妙地達(dá)到了系統(tǒng)的要求。另外,介紹了采用DSP軟件編程來實(shí)現(xiàn)FLASH擦除和讀寫方法。

    關(guān)鍵詞:DSP56362;Bootstrap;雙引導(dǎo)模式;命令字序列

1 引言

在脫機(jī)運(yùn)行的DSP系統(tǒng)中,用戶代碼往往都需要在上電后自動(dòng)裝載運(yùn)行。目前,大多數(shù)的DSP內(nèi)部都有固化的引導(dǎo)裝載(Bootload)程序,它能在系統(tǒng)加電時(shí),自動(dòng)將一段存儲(chǔ)在外部非易失性存儲(chǔ)器中的程序代碼移植到內(nèi)部的高速存儲(chǔ)器單元中去執(zhí)行。采用這種方式,既可利用外部的存儲(chǔ)單元來擴(kuò)展DSP本身有限的ROM資源,又充分發(fā)揮了DSP內(nèi)部資源的效能。

    因?yàn)橛脩舸a在一段時(shí)間內(nèi)是相對固定的,所以可以將其固化在非易失性存貯器中。而如果將代碼掩膜到DSP內(nèi)部ROM中去?一方面要受到容量以及價(jià)格的限制,另一方面,系統(tǒng)代碼升級(jí)也不是很靈活方便。FLASH是一種高密度、非易失性的電可擦寫存儲(chǔ)器,其單位存儲(chǔ)比特的價(jià)格比傳統(tǒng)的EPROM要低,十分適合低功耗、小尺寸和高性能的脫機(jī)系統(tǒng)。此外,除了可以采用專用的硬件編程器把程序代碼燒入FLASH中之外,也可以直接利用DSP通過軟件編程來實(shí)現(xiàn)。本文論述的正是如何通過DSP軟件編程來實(shí)現(xiàn)對FLASH的讀寫操作,同時(shí)介紹了系統(tǒng)雙引導(dǎo)裝載方案的實(shí)現(xiàn)方法。

2 系統(tǒng)描述

本系統(tǒng)是基于MOTOROLA公司DSP56362芯片構(gòu)建的數(shù)字音效處理系統(tǒng)中的一部分,整個(gè)數(shù)字音效處理系統(tǒng)的系統(tǒng)框圖如圖1所示。

DSP56362是一款24位通用定點(diǎn)數(shù)字信號(hào)處理器。它采用高性能單時(shí)鐘指令周期的DSP56300內(nèi)核和Motorola Symphony DSP的音頻處理性能相結(jié)合的方法來實(shí)現(xiàn)?具有運(yùn)算速度快(100MIPS)?精度高(24bit),外設(shè)接口豐富(具有增強(qiáng)型串行音頻接口ESAI、并行主機(jī)接口HI08、串行主機(jī)接口SHI、數(shù)字音頻接口DAX等),價(jià)格低廉等諸多優(yōu)點(diǎn),特別適用于音頻處理。其24位的處理精度配合20位的A/D(PCM1800)和24位的D/A?PCM1744?使得整個(gè)系統(tǒng)具有很高的動(dòng)態(tài)范圍(96dB以上)。它高達(dá)100MIPS的運(yùn)算速度保證了算法處理的實(shí)時(shí)性。其增強(qiáng)型串行音頻接口ESAI可以很方便地與音頻A/D、D/A直接通過I2S協(xié)議進(jìn)行連接。通過8bit的并行主機(jī)接口HI08可以方便地與負(fù)責(zé)鍵盤控制和LED顯示的單片機(jī)89C51進(jìn)行通信。

FLASH選用SST公司的39LV010?其存儲(chǔ)容量為128k×8bit,采用3.3V供電,讀寫周期為70ns,支持塊擦除與字節(jié)編程,是一款高性價(jià)比存儲(chǔ)芯片。

DSP與外部FLASH的連接示意圖如圖2所示。圖中,DSP的AA1腳和FLASH的片選信號(hào)腳CE相連。

DSP56362的4個(gè)地址屬性寄存器AAR[3~0]是24位讀寫寄存器,它們的值可用于控制DSP芯片的AA[3~0]引腳的狀態(tài),當(dāng)某個(gè)AAR寄存器中的基址與外部訪問指令存取范圍相匹配時(shí),由這個(gè)AAR定義的相應(yīng)地址空間(X?cái)?shù)據(jù)、Y數(shù)據(jù)或程序)將被相應(yīng)的AA線選通。在本系統(tǒng)中,正是把DSP的AA1作為FLASH的片選線。AA1腳相應(yīng)的AAR1寄存器的值設(shè)為0xD00811H,當(dāng)訪問地址的高8位為11010000時(shí),外部FLASH被選通。

    通過設(shè)置DSP的總線控制寄存器BCR,可以設(shè)置訪問外部存儲(chǔ)器時(shí)插入的等待狀態(tài)的個(gè)數(shù)。在本系統(tǒng)中,FLASH的存取周期為70ns,為了保證FLASH的正確讀寫,一般要插入32個(gè)等待狀態(tài)。

3?。模樱校担叮常叮驳囊龑?dǎo)過程

在DSP56362內(nèi)部的0xFF0000H-0xFF00BFH地址范圍內(nèi)有Motorola定制的24位192字的Bootstrap ROM。該ROM內(nèi)的Bootstrap引導(dǎo)程序可以通過用戶設(shè)置的DSP引導(dǎo)模式信號(hào)線,將用戶程序從外部的8位EPROM、EEPROM、FLASH、 SHI接口或者HDI接口引導(dǎo)到DSP內(nèi)部的高速RAM中全速運(yùn)行。

當(dāng)DSP56362硬件復(fù)位后,它將首先采樣外部的MODA、MODB、MODC和MODD信號(hào)線,并將它們的狀態(tài)寫入工作模式寄存器OMR?Operating Mode Reg-ister?的MA、MB、MC和MD位,然后使程序指針指向0xFF0000H去執(zhí)行Bootstrap引導(dǎo)程序,Bootstrap引導(dǎo)程序通過對OMR的MA、MB、MC和MD位進(jìn)行判斷來決定選擇哪種引導(dǎo)模式。主要的引導(dǎo)模式如表1所列。

表1 DSP56362 Bootstrap的引導(dǎo)模式

MODD MODC MODB MODA

描     述

0 0 0 1 從字節(jié)存儲(chǔ)器引導(dǎo)
0 0 1 0 跳轉(zhuǎn)到程序ROM起始地址
0 1 0 1 從串行主機(jī)接口SHI引導(dǎo)(SPI從模式)
0 1 1 0 從串行主機(jī)接口SHI引導(dǎo)(I2C從模式,時(shí)鐘靜止使能)
0 1 1 1 從串行主機(jī)接口SHI引導(dǎo)(I2C從模式,時(shí)鐘靜止關(guān)閉)
1 0 0 1 內(nèi)部測試保留
1 1 0 0 從并行主機(jī)接口HDI08引導(dǎo)(ISA模式)
1 1 0 1 從并行主機(jī)接口HDI08引導(dǎo)(HC11非復(fù)用模式)
1 1 1 0 從并行主機(jī)接口HDI08引導(dǎo)(8051復(fù)用總線模式)
1 1 1 1 從并行主機(jī)接口HDI08引導(dǎo)(68302總線模式)

在本系統(tǒng)中,由于程序保存在外部的FLASH里,所以采用的引導(dǎo)模式為第一種?即從字節(jié)存儲(chǔ)器引導(dǎo)。在這種模式下?Bootstrap程序?qū)牡刂罚埃模埃埃埃埃埃忍庨_始加載外部數(shù)據(jù),并采用以下數(shù)據(jù)格式從外部接口下載用戶的系統(tǒng)程序:

(1) 最開始的3個(gè)字節(jié)用于定義系統(tǒng)程序的總字?jǐn)?shù)(24位)。

(2) 接著的3個(gè)字節(jié)用于定義系統(tǒng)程序下載到DSP56362程序存儲(chǔ)器的目的地址。

(3) 其余是用戶的系統(tǒng)程序(每個(gè)24位的字由三個(gè)字節(jié)組成),這些程序?qū)⒋鎯?chǔ)在DSP程序存儲(chǔ)器內(nèi)連續(xù)的地址空間里。

Bootstrap引導(dǎo)程序要求系統(tǒng)程序在外部FLASH中以地位字節(jié)(LSB)在前的順序排列每個(gè)24位字的3個(gè)字節(jié)。DSP的引導(dǎo)程序一旦完成數(shù)據(jù)的下載,將馬上跳轉(zhuǎn)到內(nèi)部程序存儲(chǔ)器的起始目的地址開始運(yùn)行用戶的系統(tǒng)程序。

4 雙引導(dǎo)裝載方法

4.1 DSP56362的片內(nèi)內(nèi)存分配

DSP56362采用增強(qiáng)型哈佛結(jié)構(gòu),片內(nèi)空間可分為程序空間、X?cái)?shù)據(jù)空間、Y數(shù)據(jù)空間,每個(gè)空間都有一套獨(dú)立的24位地址總線和數(shù)據(jù)總線。在缺省情況下,DSP片內(nèi)的RAM分配情況為:3kB程序RAM、5.5kB X?cái)?shù)據(jù)RAM和5.5kB Y數(shù)據(jù)RAM。通過設(shè)置內(nèi)存切換模式(MS=1)可以將2kB的Y數(shù)據(jù)RAM映射到程序RAM中,此時(shí)的片內(nèi)RAM分配為:5kB程序RAM、5.5kB X?cái)?shù)據(jù)RAM和3.5kB Y數(shù)據(jù)RAM??紤]到本系統(tǒng)對程序空間的需求量較大,而數(shù)據(jù)RAM相對較多,且系統(tǒng)對內(nèi)部數(shù)據(jù)RAM的需求并不是很大,因此,將DSP設(shè)置成內(nèi)存切換模式比較好。DSP56362在內(nèi)存切換模式下(MS=1)的內(nèi)存映像圖如圖3所示。

4.2 直接使用Bootstrap引導(dǎo)程序的問題

DSP的內(nèi)存切換模式需要通過軟件指令對OMR寄存器進(jìn)行設(shè)置來實(shí)現(xiàn)。由于只有在該指令執(zhí)行后才能生效,這樣就產(chǎn)生了一個(gè)矛盾。因?yàn)槿粼谙到y(tǒng)程序開始時(shí)將DSP設(shè)置為內(nèi)存切換模式,那么,往往希望DSP能裝載5kB的程序指令,但是,DSP的Bootstrap引導(dǎo)程序是在系統(tǒng)復(fù)位后立即執(zhí)行的,此時(shí)DSP處于缺省(MS=0)狀態(tài),程序RAM只有3kB,如果此時(shí)外部的指令代碼的大小超過了這個(gè)限制,引導(dǎo)程序就不能把它們加載進(jìn)去,而當(dāng)這條設(shè)置指令生效時(shí),雖然DSP的程序空間又增加了2kB,但是引導(dǎo)程序已經(jīng)結(jié)束,因而這2kB的程序空間實(shí)際上沒有被利用。

另外,從DSP的Bootstrap程序流程可以看出,這個(gè)引導(dǎo)程序只能將系統(tǒng)的程序代碼數(shù)據(jù)加載到DSP內(nèi)部的程序RAM,而不能將數(shù)據(jù)加載到DSP內(nèi)部的X?cái)?shù)據(jù)RAM、Y數(shù)據(jù)RAM,這樣,那些需要在數(shù)據(jù)區(qū)內(nèi)定義常數(shù)的程序?qū)o法正常運(yùn)行。

4.3 雙引導(dǎo)模式

為了解決以上問題,本文提出了一種雙引導(dǎo)模式。具體思路是:在系統(tǒng)程序的開始處,設(shè)計(jì)一個(gè)用戶自己的引導(dǎo)模塊,用這個(gè)模塊先對DSP內(nèi)部的OMR寄存器進(jìn)行相應(yīng)的內(nèi)存切換設(shè)置,以使DSP內(nèi)部的程序RAM擴(kuò)大為5kB。然后參照DSP的Boot-strap引導(dǎo)程序分別對系統(tǒng)的X、Y及P區(qū)的數(shù)據(jù)進(jìn)行加載。同時(shí)在將程序燒錄到FLASH時(shí)采用地址隔離的方式將引導(dǎo)模塊與系統(tǒng)程序分開存放,引導(dǎo)模塊作為一段獨(dú)立的程序放在首地址為0xD00000H的存儲(chǔ)區(qū)。于是,對于DSP的Bootstrap引導(dǎo)程序來說,它需要引導(dǎo)的不是整個(gè)系統(tǒng)程序,而僅僅是這個(gè)引導(dǎo)模塊,另外加載完這個(gè)模塊后就立即跳轉(zhuǎn)到內(nèi)部程序RAM中執(zhí)行,此時(shí)引導(dǎo)模塊已獲得CPU控制權(quán),它在完成內(nèi)存切換后將繼續(xù)引導(dǎo)系統(tǒng)程序的其他部分。采用這種兩次引導(dǎo)的方法,不但使X、Y區(qū)的數(shù)據(jù)可以按照程序的要求進(jìn)行初始化,而且DSP的程序指令空間可以預(yù)先設(shè)置成5kB,從而非常巧妙地達(dá)到了系統(tǒng)的要求。該雙引導(dǎo)模式的引導(dǎo)模塊程序流程如圖4所示。

5?。疲粒蹋樱鹊牟脸妥x寫

為了使系統(tǒng)能夠脫機(jī)運(yùn)行,應(yīng)當(dāng)把系統(tǒng)程序燒錄到外部FLASH中去。除了可以用專用的編程器把代碼燒入FLASH中外,還可以用軟件編程的方法由DSP來實(shí)現(xiàn)同樣的功能。本系統(tǒng)正是采用這種軟件編程的方法實(shí)現(xiàn)對FLASH的擦除和讀寫。

5.1 地址映射

利用DSP擦除和讀寫FLASH必然會(huì)牽涉到FLASH中的地址在DSP中的映射方式。DSP56362的內(nèi)存映像圖已在圖3中給出。本系統(tǒng)采用的是128kB的FLASH,其地址范圍為:0x000000H~0x1FFFFH。假設(shè)FLASH的起始地址0x0000H和DSP的起始地址0x000000H重合,那么FLASH中只有對應(yīng)于DSP外部空間的那部分地址空間才是DSP可見的。為了使DSP能夠訪問全部的外部FLASH空間,設(shè)計(jì)時(shí)必須進(jìn)行地址重映射。

本系統(tǒng)實(shí)際用到的FLASH的存儲(chǔ)容量不足64kB,也就是說,當(dāng)訪問外部FLASH時(shí),真正起作用的地址線是A0~A15,而高位地址線A23~A16可以為任意值。因此,可以考慮給訪問地址加一個(gè)偏移量0xD00000H,以將FLASH的地址空間映射到DSP內(nèi)部X?cái)?shù)據(jù)RAM中,映射后的地址范圍是:0xD00000H~0xD0FFFFH。重映射后的FLASH地址空間落在X?cái)?shù)據(jù)RAM的外部保留區(qū)內(nèi),這在DSP中是可見的。

5.2 擦除和讀寫過程

在DSP將數(shù)據(jù)寫入FLASH之前,先要?jiǎng)h除數(shù)據(jù)所在塊,然后才能重新寫入。在擦除和寫操作之前都要執(zhí)行相應(yīng)的命令字序列,即在指定的FLASH地址處寫入指定的指令代碼,而讀操作則可以直接進(jìn)行。FLASH的擦除和寫入流程圖分別如圖5、圖6所示。在本系統(tǒng)中,由于采用了雙引導(dǎo)模式,所以首先要將引導(dǎo)程序?qū)懭耄疲蹋粒樱?,然后再分別將用戶程序的P區(qū)數(shù)據(jù)、X區(qū)數(shù)據(jù)、Y區(qū)數(shù)據(jù)寫入FLASH。

在利用DSP軟件編程進(jìn)行燒錄時(shí),可以從目標(biāo)文件中提取出將要寫入FLASH的數(shù)據(jù),然后將這些數(shù)據(jù)打包成一個(gè)asm文件,再在燒錄程序中將這個(gè)asm文件包含進(jìn)來。接著對燒錄程序進(jìn)行編譯、鏈接,以產(chǎn)生一個(gè)目標(biāo)文件。最后,通過JTAG口將目標(biāo)文件下載到DSP中運(yùn)行,這樣,DSP就會(huì)通過其外部數(shù)據(jù)線將打包好的asm文件中的數(shù)據(jù)寫入FLASH。在本系統(tǒng)中,引導(dǎo)程序和用戶程序?qū)⒎郑创螣耄疲蹋粒樱?為此要分別將引導(dǎo)程序、用戶程序P區(qū)數(shù)據(jù)、用戶程序X區(qū)數(shù)據(jù)、用戶程序Y區(qū)數(shù)據(jù)打包成asm文件。打包一個(gè)asm文件的具體步驟如下:

(1)調(diào)用MOTOROLA公司提供的ASM56300和DSPLNK程序?qū)υ次募M(jìn)行編譯、鏈接,以產(chǎn)生一個(gè)cld格式的目標(biāo)文件。

(2)調(diào)用MOTOROLA公司提供的SREC程序?qū)ⅲ悖欤涓袷降哪繕?biāo)文件轉(zhuǎn)換成MOTOROLA公司的S-RECORD文件格式,可將目標(biāo)文件中的P區(qū)數(shù)據(jù)、X區(qū)數(shù)據(jù)、Y區(qū)數(shù)據(jù)提取出來并生成3個(gè)文件,其后綴分別為p、x、y。

(3)調(diào)用Srec2bin程序?qū)ⅲ樱遥牛茫希遥母袷降奈募D(zhuǎn)換成BINARY格式的文件。

(4)調(diào)用Bin2asm程序?qū)ⅲ拢桑危粒遥俑袷降奈募D(zhuǎn)換成asm文件。這個(gè)asm文件由一系列的數(shù)據(jù)定義指令組成,定義的數(shù)據(jù)依次為系統(tǒng)程序總字節(jié)數(shù)、系統(tǒng)程序起始地址、系統(tǒng)程序?qū)?yīng)的十六進(jìn)制操作碼,其數(shù)據(jù)結(jié)構(gòu)如圖7所示。

為了驗(yàn)證上面方法是否能將引導(dǎo)程序和用戶程序的各部分代碼成功寫入到FLASH中,筆者編寫了一個(gè)測試程序作為用戶程序,該測試程序的功能是將AD輸入的音頻信號(hào)不經(jīng)任何處理直接輸出。實(shí)驗(yàn)證明:系統(tǒng)脫機(jī)運(yùn)行時(shí)能夠正確地運(yùn)行測試程序,從而說明了系統(tǒng)引導(dǎo)裝載和FLASH燒錄的成功。

6 結(jié)束語

采用雙引導(dǎo)裝載方式可以克服Bootstrap引導(dǎo)程序不能加載X區(qū)數(shù)據(jù)和Y區(qū)數(shù)據(jù)的缺點(diǎn),還可以在系統(tǒng)程序運(yùn)行前將DSP設(shè)置為內(nèi)存切換模式,同時(shí),采用軟件編程方法可以在沒有專用編程器的條件下,方便、可靠地實(shí)現(xiàn)對FLASH的擦除和讀寫。該方案具有一定的實(shí)用性和參考價(jià)值,也能夠用于其它DSP系統(tǒng)。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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