TMS320VC5402的HPI與51單片機(jī)的接口設(shè)計(jì)
0 引言
TMS320VC5402是TI公司推出的性?xún)r(jià)比極高的定點(diǎn)數(shù)字信號(hào)處理器(DSP)。它具有先進(jìn)的多總線(xiàn)結(jié)構(gòu)(三條16位數(shù)據(jù)存儲(chǔ)器總線(xiàn)和一條程序存儲(chǔ)器總線(xiàn));其數(shù)據(jù)/程序?qū)ぶ房臻g為1 M×16 bit: 內(nèi)置4 k×16 bitP/DROM和16 k×16 bit-DARAM;此外,該DSP內(nèi)含兩個(gè)多通道緩沖串行口,一個(gè)8位并行與外部處理器通信的HPI口,2個(gè)16位定時(shí)器以及6通道DMA控制器;具有低功耗,適合電池供電設(shè)備等特點(diǎn)[1]。
51系列單片機(jī)是一種很經(jīng)典的單片機(jī)。20多年來(lái)一直久盛不衰。而且Intel通過(guò)授權(quán)5l內(nèi)核,目前已出現(xiàn)了很多第三方生產(chǎn)的51系列產(chǎn)品。這些產(chǎn)品一般都具有較高的時(shí)鐘頻率和較大的存儲(chǔ)空間,而且還能運(yù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ù)線(xiàn)傳輸16 bit的數(shù)據(jù),并可通過(guò)設(shè)置控制寄存器的相關(guān)位來(lái)控制高8位和低8位傳輸。HPI有兩種工作方式:一種是主機(jī)獨(dú)占模式 (HOM); 另一種是主機(jī)和TMS320VC5402共享模式(SAM)。其中SAM是通用方式,二者都可尋址HPI存儲(chǔ)器(DARAM)。當(dāng)二者產(chǎn)生沖突時(shí),主機(jī)具有較高的優(yōu)先權(quán),而在TMS320VC5402插人一個(gè)等周期。通過(guò)HPI傳輸?shù)臄?shù)據(jù)率是每5個(gè)CLKOUT時(shí)鐘周期傳輸1字節(jié)。HMS320VC5402芯片中HPI8的內(nèi)部結(jié)構(gòu)邏輯如圖1所示[2]。
HPI通信主要是通過(guò)對(duì)HPIA、HPIC和HPID3個(gè)寄存器賦值來(lái)實(shí)現(xiàn)的。簡(jiǎn)單地說(shuō),HOST通過(guò)外部引腳HCNTL0和HCNTLl選中不同的寄存器后,就將當(dāng)前8位數(shù)據(jù)發(fā)送到該寄存器中了。由于HPIC是16位寄存器,而HPI口總是傳送8位數(shù)據(jù)寬度,所以用HOST向HPIC寫(xiě)數(shù)據(jù)時(shí),需要發(fā)送兩個(gè)一樣的8位數(shù)據(jù)。對(duì)TMS320VC5402來(lái)說(shuō),僅低8位有意義。當(dāng)?shù)刂芳拇嫫鱄PIA選擇后,直接向它寫(xiě)數(shù)據(jù)就可以了,但是要注意MSB和LSB的順序。另外,HPIA具有自動(dòng)增長(zhǎng)的特性,即在每寫(xiě)入一個(gè)數(shù)據(jù)前和每讀一個(gè)數(shù)據(jù)后HPIA都會(huì)自動(dòng)加1。這樣,如果使用了該功能,只需設(shè)定一次HPIA即可實(shí)現(xiàn)連續(xù)數(shù)據(jù)塊的寫(xiě)入和讀出,只是在實(shí)現(xiàn)時(shí),數(shù)據(jù)應(yīng)首先從主機(jī)發(fā)到HPID中,然后再根據(jù)HPIA指定的地址把HPID中的數(shù)據(jù)再寫(xiě)到片內(nèi)RAM的地址中。
2 DSP與單片機(jī)的通信
由于本系統(tǒng)具有主從式雙CPU結(jié)構(gòu),因此,DSP從處理器和單片機(jī)主處理器之間的數(shù)據(jù)通信是必不可少的。它們之間的通信接口設(shè)計(jì)是整個(gè)系統(tǒng)的一個(gè)關(guān)鍵。對(duì)于DSP和單片機(jī)的具體連接方案,考慮到不論是接串口還是接I/O口都要占用DSP的硬件資源,同時(shí)軟件開(kāi)銷(xiāo)也非常大。而TMS320VC5402提供有HPI接口,可專(zhuān)用于DSP和主機(jī)之間的通信,因此DSP在通過(guò)HPI口和主機(jī)通信的過(guò)程中完全沒(méi)有硬件和軟件開(kāi)銷(xiāo),而是由DSP自身的硬件來(lái)協(xié)調(diào)沖突,因從而不會(huì)打斷DSP正常程序的運(yùn)行。在HPI通信方式下,DSP的片內(nèi)存儲(chǔ)器對(duì)外界是完全透明的,可由主機(jī)通過(guò)訪問(wèn)HPI的地址和數(shù)據(jù)寄存器來(lái)完成對(duì)DSP片內(nèi)存儲(chǔ)器的讀寫(xiě)。本系統(tǒng)采取DSP的HPI口和單片機(jī)的P0口相連來(lái)作為數(shù)據(jù)傳輸口從而實(shí)現(xiàn)兩者的交互。
2.1 DSP和單片機(jī)的硬件接口設(shè)計(jì)
本設(shè)計(jì)選取ATMEL公司的AT89C51單片機(jī)作為主機(jī),并以I/O接口方式連接DSP和AT89C51,設(shè)計(jì)時(shí)使用了AT89C51的兩個(gè)通用I/O端口P0和P2,其硬件接口原理圖如2所示。圖中將AT89C51的端口P0和HPI的8位數(shù)據(jù)線(xiàn)HD0一~HD8相連作為數(shù)據(jù)傳輸通道,P20~P24設(shè)置為輸出以控制HPI口的操作。其中P2.0和P2.1分別連接HCNTL0和HCNTLl以實(shí)現(xiàn)對(duì)HPIC、HPIA和HPID寄存器的訪問(wèn),P2.2連接字節(jié)識(shí)別信號(hào)HBIL可控制讀寫(xiě)數(shù)據(jù)是屬16位字的第一字節(jié)還是第二字節(jié),P2.4作為讀寫(xiě)控制選通信號(hào)連接HR/W,P2.7與HCS相連,而連接HDS1作為數(shù)據(jù)選通信號(hào)來(lái)鎖存有效的HCNTL0/1,HBIL和HR/W信號(hào)。 INT0作為輸入與HPI口的主機(jī)中斷信號(hào)HINT相連。ALE與HAS相連,WR和HDS2相連。由HPI接口的原理可知,在HCNTL0/1、HBIL和HR/W信號(hào)有效之后,設(shè)置HDS1為低電平可實(shí)現(xiàn)讀寫(xiě)的數(shù)據(jù)選通,從而完成AT89C51對(duì)DSPHPI口的讀寫(xiě)操作。在數(shù)據(jù)交換過(guò)程中,AT89C51向HPI發(fā)送數(shù)據(jù)可通過(guò)置TMS320VC5402的HPI控制寄存器HPIC中的DSPINT位為1來(lái)中斷5402。AT89C51接收來(lái)自HPI的數(shù)據(jù)時(shí)則可用查詢(xún)方式。當(dāng)TMS320VC5402DSP準(zhǔn)備發(fā)送數(shù)據(jù)時(shí),置/HINT信號(hào)為低。當(dāng)AT89C51查詢(xún)到INT0為低時(shí),系統(tǒng)將調(diào)用接收數(shù)據(jù)子程序來(lái)實(shí)現(xiàn)數(shù)據(jù)的接收。
TMS320VC5402 DSP的外部I/O引腳用的是3.3 V邏輯電平,而AT89C51單片機(jī)用的是5 V邏輯電平,兩者之間存在電平差異而不能直接相連,故采用74LVC16245進(jìn)行接口隔離同時(shí)還可增強(qiáng)DSP的總線(xiàn)驅(qū)動(dòng)能力。
2.2 通過(guò)HPI接口讀取數(shù)據(jù)的軟件設(shè)計(jì)
在硬件搭建好后,接下來(lái)便是軟件功能模塊的設(shè)計(jì)工作。本系統(tǒng)主機(jī)程序主要完成HPI寄存器的選擇、時(shí)序的構(gòu)建和數(shù)據(jù)讀/寫(xiě)等。可根據(jù)DSP HPI接口的工作時(shí)序置HPIENA引腳為高電平,使能DSP進(jìn)入HPI工作模式,然后設(shè)置TMS320VC5402的HPIC寄存器和HPIA寄存器,使其工作在能夠配合8 bit HPI Bootloader狀態(tài)下。AT89C51的部分匯編源程序所完成的功能包括初始化串口、初始化HPI接口、從串口接收命令字(包括16,bit地址和8,bit數(shù)據(jù))、通過(guò)HPI接口讀取DSP的相應(yīng)內(nèi)部存儲(chǔ)器,并發(fā)送到串口、以及等待接收下一次的命令等,其具體匯編程序代碼如下:
3 結(jié)束語(yǔ)
DSP與單片機(jī)之間有許多連接方式, (例如利用雙口RAM或者通過(guò)串口),但是它們都要占用DSP的處理時(shí)間,這在要求苛刻的場(chǎng)合可能會(huì)影響到系統(tǒng)的實(shí)時(shí)性。而HPI接口則通過(guò)DSP片內(nèi)的DMA控制器來(lái)訪問(wèn)片內(nèi)存儲(chǔ)器,它不需要DSP的干預(yù)??梢哉f(shuō),HPI接口是DSP的一個(gè)"后門(mén)",單片機(jī)通過(guò)這個(gè)"后門(mén)"可以訪問(wèn)到DSP的片內(nèi)存儲(chǔ)器。只有當(dāng)HPI接口和DSP同時(shí)對(duì)同一地址進(jìn)行訪問(wèn)時(shí),由于HPI具有訪問(wèn)優(yōu)先權(quán),這時(shí)DSP的執(zhí)行大會(huì)被延遲一個(gè)周期,而這種情況對(duì)系統(tǒng)實(shí)時(shí)性的影響是非常小的。
評(píng)論