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