摘 要:為了滿足日益復(fù)雜和高性能的應(yīng)用要求,由主機(jī)+DSP構(gòu)成的多CPU系統(tǒng)已經(jīng)成為嵌入式技術(shù)發(fā)展的潮流。因此,主機(jī)和DSP之間的數(shù)據(jù)交換方式就成為嵌入式系統(tǒng)設(shè)計(jì)必須考慮的重要問題。提出通過HPI接口進(jìn)行數(shù)據(jù)交換的方案,并舉例說明主機(jī)接口在由MPC555和ADSP2191構(gòu)成的系統(tǒng)中的應(yīng)用。
關(guān)鍵詞:主機(jī)接口;嵌入式系統(tǒng);ADSP2191;MPC555
Application of Host Port Interface in Embedded System
SHI Meichuan1,2,XIE hiyuan1,LIU Yumin2
(1.North China Electric Power University,Baoding,071003,China;2.Baoding hongli Power Technology Development Co.Ltd.,Baoding,071051,China
Abstract:According tothe requirement of complexity and high performance to the embedded system,the multi CPU system is composed of a host and a DSP become the current of embedded technique.Thereby,data exchange between host and DSP is a problem in the desigh of embedded system.The paper introduces a solution based on HPI,and illustrates its application in the system consisting of MPC555 and ADSP.
eywords:host port interface;embedded system;ADSP2191;MPC555
1 引 言
隨著計(jì)算機(jī)技術(shù)、通信技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)的迅速普及,嵌入式技術(shù)已成為新世紀(jì)最有生命力的技術(shù)之一,其得到了飛速的發(fā)展和廣泛應(yīng)用。隨著復(fù)雜控制、汽車電子、醫(yī)療儀器、數(shù)字通信、網(wǎng)絡(luò)應(yīng)用等復(fù)雜要求的出現(xiàn),常用的單片機(jī)系統(tǒng)和DSP系統(tǒng)等這類簡單的嵌入式系統(tǒng)已經(jīng)無法滿足要求。在面對日益復(fù)雜和高性能應(yīng)用時(shí),大多采用主機(jī)(由微控制器或微處理器充當(dāng))+DSP的方式構(gòu)成主從式系統(tǒng),這樣既可以利用DSP強(qiáng)大的數(shù)字信號處理能力進(jìn)行復(fù)雜的運(yùn)算,又可以利用微處理器豐富的片內(nèi)外設(shè)和接口對整個(gè)系統(tǒng)的運(yùn)行進(jìn)行控制。
在這種系統(tǒng)中,主機(jī)與DSP的數(shù)據(jù)交換就成為系統(tǒng)設(shè)計(jì)中必須考慮的重要問題。傳統(tǒng)的單片機(jī)與主機(jī)交換數(shù)據(jù)大多采用串行通信方式或共享存儲器方式。串行通信方式只適用于通信量較小的系統(tǒng)。共享存儲器方式,需外擴(kuò)一雙端口RAM及觸發(fā)器鎖存器等芯片,使得系統(tǒng)的硬件結(jié)構(gòu)復(fù)雜。
ADI公司生產(chǎn)的DSP芯片ADSP2191配置了主機(jī)接口(Host Port Interface,HPI),可以實(shí)現(xiàn)與主機(jī)之間并行高速的數(shù)據(jù)傳輸。HPI可以很容易地與各種主機(jī)互聯(lián),甚至不需要外加接口邏輯,可以大大簡化系統(tǒng)的硬件結(jié)構(gòu)。且DSP依靠自身的硬件來協(xié)調(diào)沖突,在主機(jī)訪問HPI的時(shí)候,不會(huì)打斷DSP正常的程序運(yùn)行。
2ADSP2191M主機(jī)接口簡介
主機(jī)接口HPI(Host Port Interface)是Analog Device Inc.公司在新一代高性能DSP芯片上配置的與外部主設(shè)備或主處理器進(jìn)行高速數(shù)據(jù)交換的并行接口。HPI是地址和數(shù)據(jù)總線復(fù)用的8位/16位并行口,只能做從機(jī),外部主機(jī)(微控制器、FGPA或者另一片DSP)是HPI的控制者。通過HPI,主機(jī)可以訪問DSP的內(nèi)部存儲空間、引導(dǎo)空間和I/O空間;另外,還可以通過HPI口把程序加載到DSP。ADSP-2191有24個(gè)引腳專門用于HPI,如表1所示。
3 硬件設(shè)計(jì)
MPC555微控制器是Motorola公司PowerPC 500系列的代表產(chǎn)品,是一款高速高性能的32位浮點(diǎn)處理器,其工作時(shí)鐘可達(dá)40 MHz。其內(nèi)部資源極其豐富,有26 kB RAM和6 kB TPURAM,448 kB FLASH、多通道串行模塊、CAN 2.0B控制器等,特別適于做復(fù)雜的實(shí)時(shí)控制和處理。MPC555與ADSP2191的接口電路如圖1所示。
HPI提供2種硬件尋址模式:地址周期控制模式(ACCM)和地址鎖存模式(ALEM)。其中,ALEM適用于與地址總線和數(shù)據(jù)總線復(fù)用的微處理器接口;ACCM模式適用于與地址總線和數(shù)據(jù)總線分開的微處理器接口。硬件尋址方式是由上電復(fù)位時(shí)HALE引腳的邏輯電平?jīng)Q定。如果上電復(fù)位時(shí)用外部下拉電阻把HALE拉低,就是ALEM方式;反之,如果用外部上拉電阻把HALE拉高就是ACCM方式。
HPI總線是一種異步通信協(xié)議,硬件握手可以是AC方式,還可以是Ready方式,2種方式的有效極性都可以在上電復(fù)位時(shí)配置。另外,讀/寫選通信號的極性也可以在上電復(fù)位時(shí)配置。如果在上電時(shí),讀/寫信號為高電平,那么讀/寫選通信號就是低有效。
綜合考慮MPC555的外部總線時(shí)序和HPI接口的時(shí)序要求,在本設(shè)計(jì)中硬件尋址采用ACCM方式,應(yīng)答方式采用AC方式。讀信號HRD[TX-]、寫信號HWR[TX-]和應(yīng)答信號HAC都是低電平有效。
要控制主機(jī)與DSP的數(shù)據(jù)交互,即主機(jī)要知道何時(shí)能從DSP讀取數(shù)據(jù),而何時(shí)又該寫數(shù)據(jù),還需要一個(gè)聯(lián)絡(luò)信號。本設(shè)計(jì)選用ADSP2191的1個(gè)I/O口PF0作為對主機(jī)的中斷信號。
4 HPI的讀寫操作和接口軟件設(shè)計(jì)
4.1 HPI接口的配置
要通過HPI訪問DSP的內(nèi)部存儲空間和I/O空間,必須先配置HPI的寄存器。HPI接口有15個(gè)寄存器,其中9個(gè)是專門用于DMA方式的,對于直接訪問方式,只有主機(jī)接口配置寄存器(HPCR)和主機(jī)接口直接訪問頁寄存器(HPPR)是必須配置的[1]。外部主機(jī)或者DSP自己可以通過配置這2個(gè)寄存器,設(shè)置主機(jī)接口的訪問參數(shù),包括外部總線寬度、要訪問的存儲空間的頁地址和數(shù)據(jù)類型等。下面是DSP自己配置主機(jī)接口的程序代碼:
//HPCR=0x0001:16 b, AC Mode
IOPG=0x08;
AR=0X3802;
IO(0x1FF=AR;
AR=0x0001;
IO(0x3FF=AR;
SR=LSHIFT AR BY –8(LO;
IO(0x3FF=SR0;
//HPPR=0x0000
AR=0x3804;
IO(0x1FF=AR;
AR=0x0000;
IO(0x3FF=AR;
4.2 主機(jī)對HPI接口的讀寫操作
在ACCM方式下,HALE引腳上的邏輯0電平會(huì)觸發(fā)HWR[TX-]引腳產(chǎn)生一個(gè)下降沿跳變以便把地址鎖存到HPI。時(shí)序圖如圖2,圖3所示:
所以,主機(jī)對HPI的訪問包含地址周期和數(shù)據(jù)周期2個(gè)周期。MPC555訪問HPI的子程序匯編代碼如下:
讀操作:
#/*UINT16 HostPortRead(UINT16 address*/
#{
.text
. align 2
.globl HostPortRead
HostPortRead:
lis r4,HOST_ADDR@h#Address Cycle
orir4,r4,HOST_ADDR@l
sth r3,0x0(r4
lisr6,HOST_DATA@h#Data Cycle
orir6,r6,HOST_DATA@l
lhar3,0x0(r6
blr
#}
[HT5”][J]圖3 主機(jī)接口寫操作時(shí)序圖[HT10.]
寫操作:
#/*UINT16 HostPortWrite(UINT16 address,UINT16 data*/
#{
.text
. align 2[LL]
.globl HostPortWrite
HostPortWrite:
lis r5,HOST_ADDR@h#Address Cycle
orir5,r5,HOST_ADDR@l
sth r3, 0x0(r5
lis r6,HOST_DATA@h#Data Cycle
orir6,r6,HOST_DATA@l
sth r4,0x0(r6
mrr3,r4
blr
#}
5 結(jié) 語
目前,該方案已經(jīng)成功運(yùn)用于母線保護(hù)設(shè)備中,經(jīng)測試在DSP接近滿負(fù)荷工作時(shí),數(shù)據(jù)傳輸速率也能達(dá)到2 MB/s,完全能滿足系統(tǒng)需要。實(shí)踐證明,HPI接口是一種電路簡單、性能穩(wěn)定、高效可靠的通信方式,而且具有很強(qiáng)的通用性,可廣泛應(yīng)用于各種含有HPI接口的多CPU嵌入式系統(tǒng)。
參 考 文 獻(xiàn)
[1]Analog Devices Inc.ADSP219x/2191 DSP Hardware Refe[CD*4]rence.2001.
[2]Analog Devices Inc.ADSP-2191 Host Port Interface.Lite[CD*4]rature Number:EE-154.
[3]Motorola.MPC555/MPC556 User′s Manual.2000.
作者簡介 石美傳 女,1977年出生,碩士研究生。研究方向?yàn)榍度胧较到y(tǒng)與智能控制。
謝志遠(yuǎn) 男,1964年出生,教授。主要研究方向?yàn)樾盘柵c信息處理、現(xiàn)代電子技術(shù)與EDA以及電力通信網(wǎng)監(jiān)控。
劉玉民 男,1977年出生,工程師。研究方向?yàn)榍度胧较到y(tǒng)開發(fā)。