《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > TI 54xx DSP與51單片機的接口技術(shù)
TI 54xx DSP與51單片機的接口技術(shù)
摘要: 當(dāng)然DSP與單片機之間還有許多其它的連接方式,,例如利用雙口RAM,,或者是通過串口,,但是它們都占用DSP的處理時間,,在要求苛刻的場合可能會影響到系統(tǒng)的實時性,。而HPI接口是通過DSP片內(nèi)的DMA控制器來訪問片內(nèi)存儲器的,,不需要DSP的干預(yù),??梢哉f,,HPI接口是DSP的一個“后門”,,單片機通過這個“后門”可以訪問到DSP的片內(nèi)存儲器。只有當(dāng)HPI接口和DSP同時對同一地址進(jìn)行訪問時,,由于HPI具有訪問優(yōu)先權(quán),,這時DSP的執(zhí)行會被延遲一個周期,而這種情況對系統(tǒng)實時性的影響是非常小的,。
關(guān)鍵詞: 51單片機 DSP 單片機 接口 HPI RAM
Abstract:
Key words :

       1 硬件設(shè)計     

       1.1 時序匹配    
 

       HPI8總共有18根信號線,。其中數(shù)據(jù)線8根(HD0~HD7),其余10根都是控制線,如表1所列

HPI<a class=接口信號及功能" border="0" hspace="0" onclick="return show_orginral(this)" src="http://files.chinaaet.com/images/20100812/933ef1df-9754-409c-8311-013b6c0d909c.jpg" style="CURSOR: pointer" title="點擊看大圖" width="580" />

       ①HAS:在數(shù)據(jù)線和地址復(fù)用的MCU中,,與ALE信號連接,,在下降沿鎖存HBIL、HCNTL0/1,、HR/W,,因數(shù)這些信號通常與地址線連接。如果MCU的數(shù)據(jù)線和地址線沒有復(fù)用,,則應(yīng)該接高電平,。     

       ②HDS1、HDS2:數(shù)據(jù)傳輸?shù)臅r序控制,。時序見圖1,,即下降沿傳輸開始,上升沿傳輸結(jié)束,。另外如果不使用HAS(即接高電平),,也可以配合HCS對HBIL、HCNTL0/1,、HR/W進(jìn)行鎖存。     

時序


       ③HCNTL0/:選擇HPI內(nèi)部寄存器,,如表2所列,。

選擇HPI內(nèi)部寄存器

       1.2 電平匹配     

 



       54xxDSP的外部I/P引腳用的是3.3V的邏輯電平,,而大部分51鄭易里片機用的是5V的邏輯電平。前者輸出高電平,,最小值為2.4V,;后者輸入高電平,最小值為2.0V,。所以前者的輸出可以直接接到才者的輸入,。但是前者允許輸入高電平最大值為3.6V,而后者的輸出高電平一般都在4.6V以上,。所以前者的輸入和后者的輸出不能直接連接,,需要做電平轉(zhuǎn)換。如果引腳數(shù)量少,,可以直接用三極管電阻來轉(zhuǎn)換,。這里由于引腳較多,所以選用TI74LVC16245A芯片來進(jìn)行電平轉(zhuǎn)換,?! ?nbsp;  

       74LVC16245A是TI公司的一種16位雙向總線收發(fā)器。它可以接收高達(dá)5.5V的高電平,,而輸出的高電平可以達(dá)到3.3V左右,,內(nèi)部包括16路如圖2所示的結(jié)構(gòu)單元。     

74LVC16245A結(jié)構(gòu)圖


       圖2中G為使能端,,低電平有效,;DIR為方向控制端,高電平A→B,,低電平B→A,。另外要注意,74LVC 16245A的操作電壓引腳VCC應(yīng)該接3.3V,。整個硬件連接如圖3所示,。     

系統(tǒng)硬件連接


       2 軟件設(shè)計     

       HPI的數(shù)據(jù)傳輸分為兩部分:外部傳輸和內(nèi)部傳輸。外部傳輸是指主機和HPI寄存器之間的傳輸,,由主機發(fā)出指令完成,。內(nèi)部傳輸是指HPI寄存器和DSP內(nèi)部RAM之間的傳輸,由DSP內(nèi)部的DMA控制器自動完成,。主機在進(jìn)行外部傳輸時,,要先檢查內(nèi)部傳輸是否完成,這是通過檢測HRDY信號實現(xiàn)的,。外部傳輸操作的一般步驟是:     

       *檢查HRDY信號的電平,。為高,表示可以進(jìn)行傳輸,;為低,,表示DSP正在進(jìn)行內(nèi)部傳輸,,此時不能進(jìn)行外部傳輸?! ?br />
       *主機發(fā)出指令,,設(shè)置HCNTL0、HCNTL1,、BHIL,、HR/W信號的狀態(tài),以確定讀或?qū)懙募拇嫫饕约白止?jié)的選擇,?! ?br />
       *主機發(fā)出時序控制信號,按照圖1所示的時序進(jìn)行操作,,從而完成一次外部傳輸,。       

       編程時還要注意以下問題:

       ①由于DSP的數(shù)據(jù)是16位,,而單片機的數(shù)據(jù)是8位,,所以單片機要分兩次將數(shù)據(jù)傳給DSP,即將16位的數(shù)據(jù)分成兩個字節(jié)來傳輸,。這時,,可以通過控制HPI口的HBIL信號來指定此次傳輸?shù)氖堑?個還是第2個字節(jié)。另外,,還要通過HPI的控制寄存器(HPIC)中的BOB位來指定第1個字節(jié)作為高8位還是低8位,,所以主機在訪問HPI1時,應(yīng)首先對HPIC進(jìn)行初始化,,并注意對BOB位的設(shè)置,。HPIC的各位設(shè)置如下:

HPIC的各位設(shè)置

      ②主機對地址寄存器(HPIA)的寫操作會初始化一次內(nèi)部傳輸。當(dāng)主機通過兩次對HPIA的寫操作后,,HPIA就得到了主機要訪問的地址,。這時內(nèi)部的DMA控制器就會根據(jù)這個地址將相應(yīng)單元的內(nèi)容讀到HPI內(nèi)部的數(shù)據(jù)鎖存器中,再對HPID進(jìn)行兩次讀操作就可以將數(shù)據(jù)讀出,。如果將HPIA設(shè)置成自動遞增模式,,就會在數(shù)據(jù)傳輸?shù)耐瑫r完成HPIA加1,于是又啟動了一次內(nèi)部傳輸,。這樣有利于數(shù)據(jù)的連續(xù)轉(zhuǎn)移,。     

       ③注意設(shè)置HPIC中的XHPIA位。XHPIA=1時,,表示對DSP的7位擴展地址進(jìn)行操作,;XHPIA=0時,表示對DSP的低16位地址進(jìn)行操作。由于DSP復(fù)位后,,XHIPA的狀態(tài)是不確定的,,所以必須首先對HXPIA進(jìn)行設(shè)置。     

       ④主機和DSP可以互相中斷,。主機通過向HPIC中的位DSPINT寫入1來中斷DSP。該痊總是被讀出為0,,而且DSP對該位的寫操作是無用的,。而DSP要中斷主機時,向HPIC中的位HINT寫入1,,這時HPI的接口引腳HINT被置低,,從而使主機產(chǎn)生中斷。該位總是讀出為1,,主機可以對該位寫1來清除中斷,,這時HINT引腳就恢復(fù)高電平。     

       下面給出一段程序?qū)嵗簡纹瑱C將DSP內(nèi)部RAM1000H單元的內(nèi)容讀出,。硬件按照圖1所示連接,。    

單片機將DSP內(nèi)部RAM1000H單元的內(nèi)容讀出


       3 總結(jié)     

       當(dāng)然DSP與單片機之間還有許多其它的連接方式,例如利用雙口RAM,,或者是通過串口,,但是它們都占用DSP的處理時間,在要求苛刻的場合可能會影響到系統(tǒng)的實時性,。而HPI接口是通過DSP片內(nèi)的DMA控制器來訪問片內(nèi)存儲器的,,不需要DSP的干預(yù)??梢哉f,,HPI接口是DSP的一個“后門”,單片機通過這個“后門”可以訪問到DSP的片內(nèi)存儲器,。只有當(dāng)HPI接口和DSP同時對同一地址進(jìn)行訪問時,,由于HPI具有訪問優(yōu)先權(quán),這時DSP的執(zhí)行會被延遲一個周期,,而這種情況對系統(tǒng)實時性的影響是非常小的,。

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