新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > TMS320VC5402的HPI與51單片機(jī)的接口設(shè)計

TMS320VC5402的HPI與51單片機(jī)的接口設(shè)計

作者: 時間:2007-10-08 來源:網(wǎng)絡(luò) 收藏

0 引言

TMS320VC5402是TI公司推出的性價比極高的定點數(shù)字信號處理器(DSP)。它具有先進(jìn)的多總線結(jié)構(gòu)(三條16位數(shù)據(jù)器總線和一條程序器總線);其數(shù)據(jù)/程序?qū)ぶ房臻g為1 M×16 bit: 內(nèi)置4 k×16 bitP/DROM和16 k×16 bit-DARAM;此外,該DSP內(nèi)含兩個多通道緩沖串行口,一個8位與外部處理器通信的HPI口,2個16位定時器以及6通道DMA控制器;具有低功耗,適合電池供電設(shè)備等特點[1]。

51系列單片機(jī)是一種很經(jīng)典的單片機(jī)。20多年來一直久盛不衰。而且Intel通過授權(quán)5l內(nèi)核,目前已出現(xiàn)了很多第三方生產(chǎn)的51系列產(chǎn)品。這些產(chǎn)品一般都具有較高的和較大的空間,而且還能運行嵌入式操作系統(tǒng)。因而極大地提高了單片機(jī)的性能,擴(kuò)大了它的應(yīng)用范圍。

1 TMS320VC5402的主機(jī)接口(HPI)

HPI(主機(jī)接口)是主機(jī)與TMS320VC5402進(jìn)行數(shù)據(jù)交換的8 bit數(shù)據(jù)口。該接口在
TMS320VC5402芯片上,內(nèi)部有數(shù)據(jù)寄存器(HPID),控制寄存器(HPIC)及地址寄存器(HPIA)。HPI口可用8 bit數(shù)據(jù)線傳輸16 bit的數(shù)據(jù),并可通過設(shè)置控制寄存器的相關(guān)位來控制高8位和低8位傳輸。HPI有兩種工作方式:一種是主機(jī)獨占模式 (HOM); 另一種是主機(jī)和TMS320VC5402共享模式(SAM)。其中SAM是通用方式,二者都可尋址HPI存儲器(DARAM)。當(dāng)二者產(chǎn)生沖突時,主機(jī)具有較高的優(yōu)先權(quán),而在TMS320VC5402插人一個等周期。通過HPI傳輸?shù)臄?shù)據(jù)率是每5個CLKOUT周期傳輸1字節(jié)。HMS320VC5402芯片中HPI8的內(nèi)部結(jié)構(gòu)邏輯如圖1所示[2]。

HPI通信主要是通過對HPIA、HPIC和HPID3個寄存器賦值來實現(xiàn)的。簡單地說,HOST通過外部引腳HCNTL0和HCNTLl選中不同的寄存器后,就將當(dāng)前8位數(shù)據(jù)發(fā)送到該寄存器中了。由于HPIC是16位寄存器,而HPI口總是傳送8位數(shù)據(jù)寬度,所以用HOST向HPIC寫數(shù)據(jù)時,需要發(fā)送兩個一樣的8位數(shù)據(jù)。對TMS320VC5402來說,僅低8位有意義。當(dāng)?shù)刂芳拇嫫鱄PIA選擇后,直接向它寫數(shù)據(jù)就可以了,但是要注意MSB和LSB的順序。另外,HPIA具有自動增長的特性,即在每寫入一個數(shù)據(jù)前和每讀一個數(shù)據(jù)后HPIA都會自動加1。這樣,如果使用了該功能,只需設(shè)定一次HPIA即可實現(xiàn)連續(xù)數(shù)據(jù)塊的寫入和讀出,只是在實現(xiàn)時,數(shù)據(jù)應(yīng)首先從主機(jī)發(fā)到HPID中,然后再根據(jù)HPIA指定的地址把HPID中的數(shù)據(jù)再寫到片內(nèi)RAM的地址中。

2 DSP與單片機(jī)的通信

由于本系統(tǒng)具有主從式雙CPU結(jié)構(gòu),因此,DSP從處理器和單片機(jī)主處理器之間的數(shù)據(jù)通信是必不可少的。它們之間的通信接口設(shè)計是整個系統(tǒng)的一個關(guān)鍵。對于DSP和單片機(jī)的具體連接方案,考慮到不論是接串口還是接I/O口都要占用DSP的硬件資源,同時軟件開銷也非常大。而TMS320VC5402提供有HPI接口,可專用于DSP和主機(jī)之間的通信,因此DSP在通過HPI口和主機(jī)通信的過程中完全沒有硬件和軟件開銷,而是由DSP自身的硬件來協(xié)調(diào)沖突,因從而不會打斷DSP正常程序的運行。在HPI通信方式下,DSP的片內(nèi)存儲器對外界是完全透明的,可由主機(jī)通過訪問HPI的地址和數(shù)據(jù)寄存器來完成對DSP片內(nèi)存儲器的讀寫。本系統(tǒng)采取DSP的HPI口和單片機(jī)的P0口相連來作為數(shù)據(jù)傳輸口從而實現(xiàn)兩者的交互。

2.1 DSP和單片機(jī)的硬件接口設(shè)計

本設(shè)計選取ATMEL公司的AT89C51單片機(jī)作為主機(jī),并以I/O接口方式連接DSP和AT89C51,設(shè)計時使用了AT89C51的兩個通用I/O端口P0和P2,其硬件接口原理圖如2所示。圖中將AT89C51的端口P0和HPI的8位數(shù)據(jù)線HD0一~HD8相連作為數(shù)據(jù)傳輸通道,P20~P24設(shè)置為輸出以控制HPI口的操作。其中P2.0和P2.1分別連接HCNTL0和HCNTLl以實現(xiàn)對HPIC、HPIA和HPID寄存器的訪問,P2.2連接字節(jié)識別信號HBIL可控制讀寫數(shù)據(jù)是屬16位字的第一字節(jié)還是第二字節(jié),P2.4作為讀寫控制選通信號連接HR/W,P2.7與HCS相連,而連接HDS1作為數(shù)據(jù)選通信號來鎖存有效的HCNTL0/1,HBIL和HR/W信號。 INT0作為輸入與HPI口的主機(jī)中斷信號HINT相連。ALE與HAS相連,WR和HDS2相連。由HPI接口的原理可知,在HCNTL0/1、HBIL和HR/W信號有效之后,設(shè)置HDS1為低電平可實現(xiàn)讀寫的數(shù)據(jù)選通,從而完成AT89C51對DSPHPI口的讀寫操作。在數(shù)據(jù)交換過程中,AT89C51向HPI發(fā)送數(shù)據(jù)可通過置TMS320VC5402的HPI控制寄存器HPIC中的DSPINT位為1來中斷5402。AT89C51接收來自HPI的數(shù)據(jù)時則可用查詢方式。當(dāng)TMS320VC5402DSP準(zhǔn)備發(fā)送數(shù)據(jù)時,置/HINT信號為低。當(dāng)AT89C51查詢到INT0為低時,系統(tǒng)將調(diào)用接收數(shù)據(jù)子程序來實現(xiàn)數(shù)據(jù)的接收。

TMS320VC5402 DSP的外部I/O引腳用的是3.3 V邏輯電平,而AT89C51單片機(jī)用的是5 V邏輯電平,兩者之間存在電平差異而不能直接相連,故采用74LVC16245進(jìn)行接口隔離同時還可增強(qiáng)DSP的總線驅(qū)動能力。

2.2 通過HPI接口讀取數(shù)據(jù)的軟件設(shè)計

在硬件搭建好后,接下來便是軟件功能模塊的設(shè)計工作。本系統(tǒng)主機(jī)程序主要完成HPI寄存器的選擇、時序的構(gòu)建和數(shù)據(jù)讀/寫等??筛鶕?jù)DSP HPI接口的工作時序置HPIENA引腳為高電平,使能DSP進(jìn)入HPI工作模式,然后設(shè)置TMS320VC5402的HPIC寄存器和HPIA寄存器,使其工作在能夠配合8 bit HPI Bootloader狀態(tài)下。AT89C51的部分匯編源程序所完成的功能包括初始化串口、初始化HPI接口、從串口接收命令字(包括16,bit地址和8,bit數(shù)據(jù))、通過HPI接口讀取DSP的相應(yīng)內(nèi)部存儲器,并發(fā)送到串口、以及等待接收下一次的命令等,其具體匯編程序代碼如下:




3 結(jié)束語

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



關(guān)鍵詞: 時鐘 頻率 存儲 并行

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉