亚洲日本成本线在观看,最新国自产拍在线,免费性爱视频日本,久久精品国产亚洲精品国产精品

            現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>ADSP-218X的IDMA接口自舉設(shè)計

            ADSP-218X的IDMA接口自舉設(shè)計

            時間:2023-02-21 00:06:06 電子通信論文 我要投稿
            • 相關(guān)推薦

            ADSP-218X的IDMA接口自舉設(shè)計

            摘要:介紹ADSP-218X系列DSP芯片的IDMA接口的自舉設(shè)計與應(yīng)用。硬件方面介紹ADSP-218X的IDMA接口特點以及它與主機的連接方式;軟件方面介紹如何DSP的程序與主機程序代碼結(jié)合起來,并由主機通過IDMA接口與ADSP-218X下載程序。此種方法可簡化系統(tǒng)設(shè)計 ,降低成本。

                關(guān)鍵詞:DSP ADSP-218X IDMA 主機 自舉

            隨著DSP芯片技術(shù)的發(fā)展,其種類和型號日益增多。ADI公司推出了ADSP-218X系列16位定點DSP,它的IDMA接口極具特色。

            1 IDMA接口介紹

            IDMA接口是一個并行的I/O接口, 主機可通過IDMA接口為DSP下載程序、讀/寫DSP的內(nèi)部存儲器。下面簡稱ADSP-218X為218X。IDMA接口的讀/寫訪問是完全異步的。也就是說在DSP全速運行時,主機可訪問DSP的內(nèi)部程序空間和數(shù)據(jù)空間。

            IDMA接口引腳定義如表1所列。其中I/O是針對DSP來說的,I是輸入信號,O是輸出信號。

            表1 IDMA接口引腳定義

            引腳名 I/O

            功  能  描  述

            IS I IDMA接口片選信號 IRD I IDMA接口讀信號。當IS和IRD同時有效時,開始一個IDMA讀周期 IWR I IDMA接口寫信號。當IS和IWR同時有效時,開始一個IDMA寫周期 IAL I IDMA接口地址鎖存信號。當IS和IAL同時有效時,開始一個IDMA地址鎖存序列。此時主機應(yīng)將訪問IDMA的起臺地址送到IAD0~15上 IACK O IDMA接口允許訪問的確認信號 IAD0~15 I/O IDMA接口的16位地址/數(shù)據(jù)總線

            當IS與IAL同時有效時,218X將IAD0~15總線上的地址寫入IDMA控制寄存器。雖然主機送到IAD0~15上的是數(shù)據(jù),但對218X來說,它是要鎖存的地址。該地址的位14是主機通知218X它要訪問的是程序空間(PM)還是數(shù)據(jù)空間(DM),而位0~13是它要訪問的存儲器的起始地址。主機第一次訪問218X的地址就是IDMA控制寄存器所保存的地址,以后每訪問一次,就在該地址值的基礎(chǔ)上再加1。這個工作由218X自動完成,直到主機通過IAL和IS鎖存新的地址。IDMA控制寄存器定義如圖1所示。

            主機只要先通知218X它要訪問的是程序空間還是數(shù)據(jù)空間以及要訪問的起始地址,以后就可以連續(xù)讀寫一段空間的數(shù)據(jù)。至于218X是如何實現(xiàn)的,對主機來說是透明的。

            2 218X與主機的IDMA接口設(shè)計

            下面介紹218X如何通過IDMA接口自舉的系統(tǒng)設(shè)計。這樣可以減少一個程序片,讓218X與主機共用一個程序片。

            ADSP-218X有多種型號。不同型號的DSP處理器,要設(shè)置不同的模式引腳,才能達到IDMA自舉功能。對ADSP-2181和ADSP-2183來說,要分別設(shè)置模式引腳MMAP=0,引腳BMODE=1。對于其它型號的ADSP-218X芯片來說,模式引腳分別設(shè)置為Mode A=1,Mode=1,Mode C=0。如果該型號的218X還有模式引腳Mode D的話,要設(shè)置為0。模式引腳如此設(shè)置,表示218X是通過IDMA接口進行自舉的。

            圖1

                218X占用主機的一個片選信號。對于主機來說,218X只占用兩個I/O地址空間,一個是控制端口地址(此時IAL為1),另一個是數(shù)據(jù)端口地址(此時IAL為0),因此可將主機的地址線A1與218X的IAL相連。而218X的IACK與主機的一個輸入引腳相連,主機通過查詢它來判斷218X是否繁忙。其它信號接線如圖2所示。

            3 218X程序與主機程序的連接

            目前大多數(shù)主機系統(tǒng)提供C編譯器,因此主機采用C語言進行編程,既便于理解又具有實用價值。本文以ADSP-2185為例說明如何將218X目標代碼鏈接到主機源程序中。

            218X程序編完后,用ADI公司提供的VisualDSP++ for 21xx軟件將它編譯生成218X的目標文件,后綴名為DEX。在VisualDSP++ for 21xx軟件中的還有一個轉(zhuǎn)換工具elfsp121,它將218X目標代碼轉(zhuǎn)換成便于IDMA下載的文件。如果218X的目標文件為EXAMPLE1.DEX,可以按下面格式調(diào)用。

            c:EXAMPLE1.DXE DSP.OUT -idma

            其中的開關(guān)-idma表示要將EXAMPLE1.DXE轉(zhuǎn)換為IDMA下載格式,輸出文件為DSP.OUT。下面簡單地表示一下DSP.OUT文件格式。

            0040

            4000

            FFFF

            FFFE

            可以看出它不是C語言格式,因此要將DSP.OUT改寫成DSP.H。它內(nèi)含C語言格式的常量數(shù)組,供主機下載程序代碼到218X使其自舉。

            下面對DSP.H文件內(nèi)容進行編寫,并分析其結(jié)構(gòu)。

            注:在←及以后的內(nèi)容DSP.H文件中是沒有的,只是幫助說明。

            #define MAX_CODE_LEN 257

            unsigned short DSP_ROM_CODE[MAX_CODE_LEN]={←32位機使用short,而16位機要將short改為int 0x0040, ←當前一段要下載的代碼長度為0x40,不包含IDMA控制字

            0x4000, ←IDMA控制字。先初始化數(shù)據(jù)空間,地址為數(shù)據(jù)空間的0x0000,其中4表示訪問的是DM數(shù)據(jù)空間

            0xFFFF, ←第一個數(shù)據(jù)字

            0xFFFE, ←第二個數(shù)據(jù)字

            …………

            0x001F,←第0x40個數(shù)據(jù)字

            0x00B8,←當前一段要下載的代碼長度

            0x0001,←IDMA控制字。下面下載程序代碼至PM程序空間,起始地址為0x0001

            0x0000,←第1個程序代碼的高16位一個程序代碼由24位的字組成,因此要下載兩個字

            0x0000,←第1個程序代碼的低8位

            …………

            0x000F,←最后一個程序代碼的低8位,相當于下載的第0xB8個程序字

            0x0002,←當前段長度為2,218X的IDMA口程序下載最后是對程序空間地址0寫代碼。

            0x0000, ←IDMA控制字。下載程序代碼至PM程序空間,起始地址為0x0000,一寫完,218X就開始運行程序

            0x1803,

            0x000F,

            0xffff};←0xffff表示下面沒有數(shù)據(jù)要主機下載了

            從上面描述可以看出,主機下載218X程序時,要多個段。如果218X程序在數(shù)據(jù)空間定義了常量數(shù)組,就要先下載數(shù)據(jù)段,然后下載程序段最后再對程序空間地址0x0000寫代碼。如果218X工作在IDMA接口自舉模式下,在系統(tǒng)復(fù)位后,218X并不執(zhí)行程序。一旦主機對程序空間地址0x0000寫了代碼,218X才開始運行程序。
            (范文先生網(wǎng)adivasplayground.com收集整理)
            4 主機下載218X程序

            在主機的C程序中,將DSP.H作為頭文件,DSP_ROM_CODE是填充218X程序的常量數(shù)組,數(shù)組長度由MAX_CODE_LEN宏定義。由主機將DSP_ROM_CODE中的數(shù)據(jù)按其格式下載到218X中。這樣主機源泉程序無需修改。下面給出主機下載218X程序的主要程序。

            對主機來說,DSP_ADDR是218X的控制端口地址,注意其地址A1為1;DSP_DATA是218X的數(shù)據(jù)端口,地址A1為0。這是因為A1接218X的IAL引腳。

            #define DSP_ADDR (*(volatile unsigned short *)0x300002

            #define DSP_DATA (*(volatile unsigned short*)0x300000)

            //功能:判斷218X的IACK信號是否有效。主機每進行一次IDMA訪問前都要先判IACK。

            Void wait_ack(void)

            {unsigned char ch;

            while(1)/*查詢I/O口,判斷IACK是否為低,為低則已獲利218X確認,退出*/

            {ch=SIM_PORTF;

            if((ch & 0x20)!=0x20)break;

            }

            }

            //功能:完成218X程序下載

            void DownCodeToDSP(void)

            {unsigned short iCount,ip,idata;

            ip=0;

            while(1)

            {iCount=DSP_ROM_CODE[ip++];//讀要寫的字節(jié)數(shù)

            if(iCount==0xffff)break;

            //當字節(jié)數(shù)為0xffff時,218X所有段都已下載完成,結(jié)束下載wait_ack();

            DSP_ADDR=DSP_ROM_CODE[ip++];

            //向218X的IDMA口寫起始地址

            while(iCount) //此循環(huán)完成寫一個段

            {idata=DSP_ROM_CODE[ip++];

            //向218X的IDMA口數(shù)據(jù)或程序代碼

            DSP_DATA=idata;

            wait_ack();

            iCount--;}

            }

            }

            一般單片機的計算功能,特別是乘、除法性能比較差,開發(fā)人員可根據(jù)自己所要設(shè)計的系統(tǒng)的要求,選擇相應(yīng)的主機CPU。要求至少是16位的單片機,因為IDMA接口為16位的地址/數(shù)據(jù)總線。在程序功能的分配上,讓主機完成一些復(fù)雜的邏輯運算、通信等功能,主機通過IDMA接口與218X相連;由218X完成極為耗時的乘、除法計算。主機通過IDMA接口為218X下載程序,減少了218X的程序片;雙方通過IDMA接口交換數(shù)據(jù),這又減少了218X與主機之間的雙口RAM。對于主機來說,218X只不過是一個計算協(xié)處理器,系統(tǒng)設(shè)計成本低而又極為簡潔。


            【ADSP-218X的IDMA接口自舉設(shè)計】相關(guān)文章:

            增強并口EPP與DSP接口的設(shè)計增強并口EPP與DSP接口的設(shè)計08-06

            多路讀寫的SDRAM接口設(shè)計08-06

            基于DSP平臺的USB接口設(shè)計08-06

            基于單片機的MicroDrive接口設(shè)計08-06

            用FIFO設(shè)計A/D與DSP之間的接口08-06

            異步串行通信接口的IP核設(shè)計08-06

            PowerPC和Dallas的時鐘芯片接口設(shè)計08-06

            基于USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計08-06

            帶USB接口的電子巡更系統(tǒng)的設(shè)計08-06