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