- 相關(guān)推薦
用CPLD實現(xiàn)DSP與PLX9054之間的連接
摘要:介紹了利用CPLD實現(xiàn)DSP芯片TMS320C6711b和PCI橋芯片PLX9054之間高速數(shù)據(jù)傳輸?shù)南到y(tǒng)設(shè)計方法,并給出了相應(yīng)的系統(tǒng)設(shè)計原理圖,同時對該系統(tǒng)的性能進行了分析。CPLD是一種復(fù)雜的用戶可編程邏輯器件。它以操作靈活,開發(fā)迅速,投資風(fēng)險低,可多次編程擦寫和在系統(tǒng)可編程(In System programmability)等特點而成為一種可優(yōu)化硬件電路設(shè)計且具競爭力的產(chǎn)品。近年來,隨著微電子集成工藝的不斷發(fā)展,各種系列的CPLD可為簡單PAL綜合設(shè)計到先進實時硬件現(xiàn)場升級等全部范圍內(nèi)的任務(wù)設(shè)計提供全套的解決方法。本文將給出如何使用Xilinx公司的CPLD器件XC9500LV實現(xiàn)PLX9054的局部總線 (local bus)和DSP的HPI口之間的實時通信方法。采用這種設(shè)計可以以單字或DMA方式完成主機與DSP之間的高速數(shù)據(jù)傳輸,傳輸速率可達到16Mb/s。該方法可廣泛應(yīng)用于實時圖形、圖像及動畫處理等場合。
圖1
1 設(shè)計需求
1.1 local bus接口要求
PLX9054是PCI接口專用主從器件,包括通信、網(wǎng)絡(luò)、磁盤控制、多媒體等高性能接口功能。PLX9054可以以多種方式實現(xiàn)從pci bus端到local bus端(局部總線)的數(shù)據(jù)轉(zhuǎn)移, 如直接傳輸,DMA控制傳輸?shù)。通過pci bus和local bus之間以六個可編程FIFO的不同連接可實現(xiàn)突發(fā)并發(fā)傳輸, 同時也可通過串行EEPROM或PCI主控設(shè)備對PLX9054內(nèi)部的配置寄存器進行設(shè)置,其簡化框圖如圖1所示。圖中,通過配置EEPROM可設(shè)置PLX9054作為PCI總線的從設(shè)備?工作在C模式下(數(shù)據(jù)、地址總線非復(fù)用),該模式下的local bus數(shù)據(jù)寬度為16bit,同時,通過使能外部設(shè)備就緒信號READY還可以禁止無限爆發(fā)操作(屏蔽BTERM bit)。
Local bus端的讀、寫時序基本相同,圖2所示是其單字讀寫操作時序。以寫周期為例,首先,PLX9054通過置LHOLD信號有效來申請local bus的主控權(quán),在收到local bus仲裁的響應(yīng)信號LHOLDA之后,PLX9054將成為local bus的主控,隨后置ADS信號為低,使得地址總線信號LA[31:2]、字節(jié)使能信號LBE[3:0]和讀寫選擇信號LW/ R 進入有效狀態(tài),一個LCLK周期之后,9054停止驅(qū)動ADS,這時,地址總線LA[31:2]上的地址信號將保持有效直至數(shù)據(jù)線上的數(shù)據(jù)有效并保持一個LCLK周期。數(shù)據(jù)線LD[15:0]上的數(shù)據(jù)信號由READY驅(qū)動, READY表示local bus設(shè)備已經(jīng)準備好,可以發(fā)送或者接收數(shù)據(jù)。BLAST信號由PLX9054提供,BLAST信號為低表示一次傳輸?shù)淖詈笠粋字節(jié),BLAST的上升沿可用于標志一次數(shù)據(jù)傳輸?shù)耐瓿。一個LCLK周期之后,PLX9054拉低LHOLD?以放棄對local bus的主控權(quán),此后,local bus仲裁響應(yīng)9054的LHOLD信號,并拉低LHOLDA以收回local bus主控權(quán),這時的local bus置于閑置狀態(tài)。這里,PLX9054作為local bus主控權(quán)的唯一申請者,只要提出總線申請,local bus仲裁就會立即響應(yīng)該申請。
1.2 HPI口設(shè)計要求
HPI口是一種數(shù)據(jù)寬度為16bit的并行端口(C64**系列DSP中,HPI口的數(shù)據(jù)寬度達到32bit)。通過HPI口,主機可以直接對CPU的存儲器空間進行操作。在C621*/C671*系列DSP中,沒有留出專門的EDMA通道來執(zhí)行HPI口的訪問操作,而是直接將HPI口連接到內(nèi)部的地址產(chǎn)生硬件上,因而提高了對內(nèi)部存儲空間的訪問速度。HPI口內(nèi)部加入了兩個八級深度的讀寫緩沖,可以執(zhí)行地址自增的讀寫操作,提高讀寫操作的吞吐量。HPI口為內(nèi)部CPU提供了標準32bit的數(shù)據(jù)接口,同時為外部主機也提供了一個經(jīng)濟的16bit接口,所以對外部主機而言,每次讀寫必須執(zhí)行成對的16bit操作。
HPI口內(nèi)部有三個寄存器,分別是控制寄存器(HPIC),地址寄存器(HPIA)和數(shù)據(jù)寄存器(HPID)。這三個寄存器可以直接被主機訪問,主機每執(zhí)行一次對CPU內(nèi)部存儲空間的訪問都必須先對控制寄存器和地址寄存器寫入相應(yīng)的值,然后才能對數(shù)據(jù)寄存器進行讀寫操作。HPI口的外部接口是由數(shù)據(jù)總線HD?15:0?以及一部分用于描述和控制HPI接口的控制信號組成,這些控制信號的具體類型如下:
HCNTL[1:0]:控制HPI的操作類型;
HHWIL:半字確認輸入,“0”,“1”分別表示一次字傳輸?shù)牡谝粋半字和第二個半字;
HR/W:讀/寫選擇;
HRDY:就緒狀態(tài)標志;
HINT:中斷標志,DSP向主機提出中斷;
HAS:區(qū)別地址/數(shù)據(jù)復(fù)用總線的數(shù)據(jù)與地址;
HDS1,HDS2,HCS:數(shù)據(jù)選通輸入,三者配合可用于產(chǎn)生一個HPI內(nèi)部選通信號HSTROBE:
HSTROBE =[NOT(HDS1 XOR HDS2)] OR HCS;
對于一個寫HPI口的操作,應(yīng)首先使能HCS,變化HDS1或HDS2,可使HSTROBE信號產(chǎn)生一個下降沿,HPI口在這個下降沿采樣控制信號HCNTL?1:0?、HHWIL和HR/W,同時在使能HCS的同時扇出HRDY,以使主機進入等待狀態(tài),直到HRDY產(chǎn)生下降沿,表明HPID已清空,可以接收新的數(shù)據(jù)。此時HSTROBE也將產(chǎn)生一個上升沿,并采樣HD?15:0?上的數(shù)據(jù)并將其送入HPID,以完成第一個半字的寫入。對于第二個半字的寫入,由于32bit的HPID已經(jīng)清空,可以直接寫入數(shù)據(jù),不會出現(xiàn)未準備好的情況,所以HRDY一直保持為低,與第一個字節(jié)的寫入相同,該操作也在HSTROBE的下降沿采樣控制信號,并在HSTROBE的上升沿采樣數(shù)據(jù)總線HD[15:0]的數(shù)據(jù)并送入HPID,以完成一個32bit的寫入操作。
圖3
對于讀HPI
【用CPLD實現(xiàn)DSP與PLX9054之間的連接】相關(guān)文章:
CPLD在DSP系統(tǒng)中的應(yīng)用設(shè)計03-18
用CPLD實現(xiàn)單片機讀寫模塊03-20
FFT算法的研究與DSP實現(xiàn)03-07
CF卡與雙核DSP的實現(xiàn)03-18
多制式語音編碼及其DSP實現(xiàn)03-18
DSP和CPLD的空間瞬態(tài)光輻射信號實時探測研究12-07
利用DSP和CPLD增強數(shù)據(jù)采集的可擴展性03-20