機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于USB實(shí)現(xiàn)TMS320C3X系統(tǒng)的BootLoader
基于USB實(shí)現(xiàn)TMS320C3X系統(tǒng)的BootLoader
 更新時(shí)間:2009-6-5 8:59:31  點(diǎn)擊數(shù):1
【字體: 字體顏色

作者:潘明海、岳增龍  單位:燕山大學(xué)

引言

        隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理器(DSP;Digital Signal Processor)技術(shù)的應(yīng)用范圍不斷擴(kuò)大,幾乎遍及整個(gè)電子、信息產(chǎn)業(yè)。其中應(yīng)用最廣泛的是TI公司生產(chǎn)的DSP系列產(chǎn)品。在這種DSP系列的系統(tǒng)設(shè)計(jì)中,引導(dǎo)裝載系統(tǒng)的設(shè)計(jì)是其中的難點(diǎn)之一。

  DSP系統(tǒng)的引導(dǎo)裝載(BootLoad)是指在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),用戶程序通常保存在非易失的ROM存儲(chǔ)器中,如EPROM、Flash 等,而這些存儲(chǔ)器的訪問速度較慢,一般不能直接作為程序存儲(chǔ)器來使用,因此需要在系統(tǒng)加電時(shí),將一段存儲(chǔ)在外部非易失性存儲(chǔ)器上的程序代碼引導(dǎo)搬移到 DSP內(nèi)部的高速程序存儲(chǔ)器RAM 或片外SRAM 中來運(yùn)行這樣設(shè)計(jì)的優(yōu)點(diǎn)有三個(gè):一是利用了外部的存儲(chǔ)單元擴(kuò)展了DSP本身有限的 ROM資源;二是充分發(fā)揮了DSP內(nèi)部資源的效能;三是省去了對(duì)DSP 片內(nèi)ROM進(jìn)行掩膜編程操作,節(jié)省大量費(fèi)用。它可以在不使用昂貴的快速ROM的情況下獲得高速運(yùn)行的能力。由于從 ROM裝入程序時(shí)可以采用8/16/32位格式,這給硬件設(shè)計(jì)帶來了很大的方便,可以在基本不降低運(yùn)行性能的條件下減少芯片,壓縮體積,降低成本。

  Flash存儲(chǔ)器具有低功耗,大容量,擦寫速度快等特點(diǎn),并且由內(nèi)部嵌入的算法實(shí)現(xiàn)對(duì)芯片的操作,因而在DSP系統(tǒng)中得到了廣泛的應(yīng)用。DSP程序主要有兩種存放方式:一種是在硬件系統(tǒng)中帶有一定數(shù)量的E2PROM,供DSP程序存放用;另一種方案是將程序存放在PC機(jī)中,在系統(tǒng)啟動(dòng)過程中將程序傳至DSP的RAM中。對(duì)于第一種情況主要適用于程序數(shù)量不太大,而且不需要經(jīng)常變動(dòng)的情況。但是對(duì)于系統(tǒng)需要完成多項(xiàng)處理任務(wù),第二種情況可以適用于不同的用戶要求運(yùn)行不同的程序的情況,為了設(shè)計(jì)比較通用的信號(hào)處理系統(tǒng),一般采用第二種情況。本文通過一個(gè)振動(dòng)控制系統(tǒng)為例,詳細(xì)介紹了一種基于USB實(shí)現(xiàn)TMS320C32Bootload的方案設(shè)計(jì)和實(shí)現(xiàn)過程。

1.Bootload的引導(dǎo)裝載過程

         在系統(tǒng)上電復(fù)位或手動(dòng)復(fù)位之后,首先檢查MCBL/MP引腳的電平,若為高電平,說明DSP處于微處理器工作方式,即從外部程序存儲(chǔ)器開始執(zhí)行用戶程序,若為低電平,DSP 處于微計(jì)算機(jī)工作方式,此時(shí)系統(tǒng)如果未接在仿真器上,那么芯片自動(dòng)運(yùn)行固化在 0H-FFFH中的引導(dǎo)裝載程序(如圖1所示),這一程序會(huì)自動(dòng)判斷是INT0~INT2或INT3中斷,如果是INT0~INT2中斷,DSP將存放在 BOOT1~BOOT3中的一段程序裝載到片內(nèi)RAM或片外SRAM中,如果是INT3中斷,則DSP將從串口中將程序裝載到片內(nèi)RAM或片外SRAM中。


圖1 引導(dǎo)裝載程序方式選擇流程圖


2.系統(tǒng)簡(jiǎn)介

         隨著 DSP技術(shù)的廣泛應(yīng)用,一般采用專用的DSP處理器來完成信號(hào)采集和處理,利用PC機(jī)進(jìn)行運(yùn)行控制、參數(shù)設(shè)置、圖形顯示、數(shù)據(jù)存儲(chǔ)等。這種結(jié)構(gòu)對(duì)于數(shù)據(jù)的高速通訊傳輸和實(shí)時(shí)處理有很高的要求,所以DSP處理器和 PC機(jī)之間的接口方式顯得尤為重要。DSP處理器與PC機(jī)之間的數(shù)據(jù)通訊接口方式很多,如早期的串行口、并行口以及目前比較流行的PCI、USB和1394等。其中USB總線接口具有方便快捷、支持即插即用、可實(shí)現(xiàn)高速數(shù)據(jù)通訊等優(yōu)點(diǎn),在很多領(lǐng)域得到廣泛應(yīng)用。USB有三種傳輸速率:1.5Mb/s的低速傳輸,12Mb/s的全速傳輸和480Mb/s的高速傳輸。USB電纜線只有4 根,兩根是電源線,傳送5V電源,可用來向設(shè)備供電;另外兩根是信號(hào)線,用來傳輸串行數(shù)據(jù)。與傳統(tǒng)的接口比較,USB具有傳輸速度更快、集成化程度更高、編程化更好以及能夠支持多個(gè)設(shè)備等優(yōu)點(diǎn)。

        因此在我們的設(shè)計(jì)中用它來和主機(jī)接口實(shí)現(xiàn)高速的數(shù)據(jù)通信。FPGA 現(xiàn)場(chǎng)可編程門陣列有單片機(jī)和DSP無法比擬的優(yōu)勢(shì),時(shí)鐘頻率高、內(nèi)部時(shí)延小;速度快,效率高;組成形式靈活,可以集成外圍控制、譯碼和接口電路。因此,在本系統(tǒng)中我們用 FPGA 來實(shí)現(xiàn)系統(tǒng)的邏輯控制,系統(tǒng)結(jié)構(gòu)框圖如圖2 所示。在該振動(dòng)測(cè)控系統(tǒng),下層主要是由FPGA以及兩塊DSP(主,輔)組成的,其中主輔DSP能夠通過雙口RAM通信。



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

3. 系統(tǒng)引導(dǎo)裝載實(shí)現(xiàn)過程

        由于在實(shí)際應(yīng)用中要實(shí)現(xiàn)不同類型的試驗(yàn),而傳統(tǒng)的Bootload受內(nèi)存大小的限制,不能同時(shí)將所有的不同試驗(yàn)類型的程序一次裝載,所以就不能用傳統(tǒng)的Bootload方法,我們可以將各種不同的實(shí)驗(yàn)程序存放在上機(jī)位中,通過USB接口將需要的實(shí)驗(yàn)程序下載到DSP的擴(kuò)展SRAM中,這樣就可按照實(shí)時(shí)需要根據(jù)不同的試驗(yàn)類型裝載不同的下層程序,而且可以輕松實(shí)現(xiàn)系統(tǒng)下層程序的軟件升級(jí)。

        實(shí)現(xiàn)過程中的程序主要分為兩個(gè)部分:

        第一部分:通過USB下載的DSP實(shí)驗(yàn)程序,這部分實(shí)驗(yàn)程序只能是系統(tǒng)的某一個(gè)或幾個(gè)子程序模塊。在系統(tǒng)的上層主要程序中,我們按照COFF文件信息的構(gòu)成規(guī)則分析出信息中有幾段數(shù)據(jù)包以及數(shù)據(jù)包的長(zhǎng)度和存儲(chǔ)地址,然后在命令數(shù)據(jù)前加入命令類型、主輔標(biāo)志、數(shù)據(jù)的長(zhǎng)度、存儲(chǔ)地址等附加信息,這樣就實(shí)現(xiàn)了數(shù)據(jù)的封包,其中包頭主要包括命令類型,主輔標(biāo)志、數(shù)據(jù)長(zhǎng)度、存儲(chǔ)地址。

        例如可以將下傳數(shù)據(jù)的命令類型設(shè)為00000003,主輔DSP的標(biāo)志分別設(shè)為00000001、00000002或者其它數(shù)值。將打包的數(shù)據(jù)通過USB接口發(fā)送給主或輔DSP后,DSP的駐留程序?qū)?duì)接收到的數(shù)據(jù)進(jìn)行分析,通過判斷不同的命令類型進(jìn)而完成不同實(shí)驗(yàn)程序的加載和實(shí)現(xiàn)。

        在本系統(tǒng)中,我們還將上機(jī)位與DSP之間的USB數(shù)據(jù)傳輸部分做成ActiveX控件,這樣就可以在程序中重復(fù)使用,進(jìn)一步提高運(yùn)行效率。

       第二部分:FLASH中的主引導(dǎo)程序,該部分程序?qū)崿F(xiàn)的主要功能:

     (1)對(duì)接收到的數(shù)據(jù)分析得到主輔標(biāo)志、數(shù)據(jù)長(zhǎng)度、存儲(chǔ)地址;
     (2)能夠?qū)⒅鱀SP程序直接下載到擴(kuò)展SRAM,而輔DSP程序通過主DSP的雙端口RAM下載程序,但是程序下載可以不分主輔的次序,任意下載;
     (3)下載完成后需要向上層程序發(fā)送接收完畢的信號(hào);
     (4)將程序的入口地址下傳,實(shí)現(xiàn)下傳程序的跳轉(zhuǎn);
     (5)向上層程序發(fā)送跳轉(zhuǎn)完畢的信號(hào)。

         在系統(tǒng)初始化(上電自舉)過程中,DSP的程序存儲(chǔ)器中駐留的程序主要就是這部分FLASH中的程序,這部分程序是在系統(tǒng)上電復(fù)位時(shí)自動(dòng)加載進(jìn)去的。

         例如:在空閑時(shí)對(duì)@indatasign進(jìn)行掃描,上層將發(fā)出信號(hào)標(biāo)志寫入@indatasign,當(dāng)判別有信號(hào)輸入時(shí),程序調(diào)用readusb子程序,將上層下傳得數(shù)據(jù)寫入輸入緩沖區(qū),寫入完成后對(duì)數(shù)據(jù)進(jìn)行分析。

        首先,程序進(jìn)入begin段,在begin這一段完成數(shù)據(jù)分析后得到下傳數(shù)據(jù)的主輔標(biāo)志,并對(duì)其進(jìn)行判斷。

        如果標(biāo)識(shí)為00000001,說明下傳的數(shù)據(jù)是發(fā)給主DSP的,則調(diào)用firstdsp程序。根據(jù)上層下傳數(shù)據(jù)的格式,分別得到數(shù)據(jù)在主DSP中應(yīng)存儲(chǔ)的地址以及數(shù)據(jù)的長(zhǎng)度。在程序中將這兩個(gè)信息取出后,依次將數(shù)據(jù)存儲(chǔ)到主DSP相應(yīng)的存儲(chǔ)空間中。在存儲(chǔ)完畢后,將調(diào)用implementok子程序,向上層程序發(fā)送接收完畢的信號(hào)。

        如果標(biāo)識(shí)為00000002,說明下傳的數(shù)據(jù)是傳給輔DSP的,則調(diào)用secondsp子程序。這部分程序?qū)⒊鬏o標(biāo)識(shí)以外的所有數(shù)據(jù)存儲(chǔ)到雙端口RAM中,存儲(chǔ)完畢后,程序?qū)?huì)向輔DSP的郵箱地址發(fā)送信號(hào),通知輔DSP從雙端口RAM中讀取數(shù)據(jù)。當(dāng)輔DSP接收到信號(hào)后,將會(huì)執(zhí)行和主DSP類同的程序,將存儲(chǔ)地址、數(shù)據(jù)長(zhǎng)度以及數(shù)據(jù)依次接收并存儲(chǔ)到輔DSP相應(yīng)的RAM中。存儲(chǔ)完畢后,輔DSP將向郵箱地址發(fā)送一個(gè)信號(hào),程序?qū)⑦@個(gè)信號(hào)存儲(chǔ)到數(shù)據(jù)準(zhǔn)備好中并對(duì)其進(jìn)行判斷,如果是接收完畢的信號(hào),則主程序?qū)⒄{(diào)用implementok子程序,向上層程序發(fā)送接收完畢的信號(hào)。

4.實(shí)驗(yàn)測(cè)試結(jié)果

        在實(shí)驗(yàn)中,該高精度測(cè)控系統(tǒng)利用上述方法在加電復(fù)位后可以按照需要,根據(jù)不同的試驗(yàn)類型裝載不同的下層程序,通過上位機(jī)裝載并實(shí)現(xiàn)試驗(yàn)程序,達(dá)到了系統(tǒng)的設(shè)計(jì)要求。

5.結(jié)束語

        本文詳細(xì)介紹了一種利用USB接口實(shí)現(xiàn)C32系統(tǒng)引導(dǎo)裝載的新方法,通過實(shí)驗(yàn)該設(shè)計(jì)方法具有很強(qiáng)的實(shí)用性和通用性,可以為其它芯片的引導(dǎo)裝載提供參考,在測(cè)控、信號(hào)處理、算法的驗(yàn)證以及實(shí)時(shí)仿真方面有著較好的使用價(jià)值。

參考文獻(xiàn)

  [1]王念旭.DSP基礎(chǔ)與應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2001:428-478
  [2]張雄偉.DSP芯片的原理與應(yīng)用.北京:電子工業(yè)出版社,1997:1-8
  [3]劉慧等.多核DSP的BOOTLOADER程序的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2003(6):21-22.
  [4]王迎璽.TMS320C32與計(jì)算機(jī)通信.山西電子技術(shù),2003,(6):17-19
  [5]TMS320C3X User Guide. Texas Instruments, 1990:1-302
  [6]丁玉美,高西全.數(shù)字信號(hào)處理.西安:西安電子科技大學(xué)出版社,2000:242-259
  [7]宗孔德.多抽樣率信號(hào)處理.北京:清華大學(xué)出版社,1996:84-111
  [8]蘇濤,藺麗華,盧光躍,張林讓.DSP實(shí)用技術(shù),西安:西安電子科技大學(xué)出版社,2002.6

<!--插入廣告JS代碼-->
  • 上一篇: 基于DSP的汽車減震彈簧故障診斷儀的設(shè)計(jì)
  • 下一篇: 一種基于高速DSP的圖像處理應(yīng)用平臺(tái)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1