<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用CPLD實(shí)現DSP與PLX9054之間的連接

用CPLD實(shí)現DSP與PLX9054之間的連接

——
作者:李松 汪洋 葛臨東 時(shí)間:2005-09-29 來(lái)源:電子設計技術(shù) 收藏

 CPLD為設計任務(wù)從最簡(jiǎn)單的PAL綜合設計到先進(jìn)的實(shí)時(shí)硬件現場(chǎng)升級提供了全套的解決方法。本文討論如何使用Xilinx公司的CPLD器件XC9500LV實(shí)現PLX9054的局部總線(xiàn) (local bus)和DSP的HPI口之間的實(shí)時(shí)通信。采用這種設計可以以單字或DMA方式完成主機與DSP之間的高速數據傳輸,傳輸速率達到16Mb/s??梢詰糜趯?shí)時(shí)的圖形、圖像及動(dòng)畫(huà)處理場(chǎng)合。

       設計需求

       local bus接口要求

       PLX9054是PCI接口專(zhuān)用主從器件,包括通信、網(wǎng)絡(luò )、磁盤(pán)控制、多媒體等高性能接口功能

。PLX9054可以以多種方式實(shí)現從pci總線(xiàn)端到局部總線(xiàn)端的數據轉移,如直接傳輸,DMA控制傳輸等。pci總線(xiàn)和局部總線(xiàn)之間以6個(gè)可編程FIFO連接,可實(shí)現突發(fā)并行傳輸。通過(guò)串行EEPROM或PCI主控設備對PLX9054內部的配置寄存器進(jìn)行設置。通過(guò)配置EEPROM,設置PLX9054作為PCI總線(xiàn)的從設備,工作在C模式下(數據、地址總線(xiàn)非復用),局部總線(xiàn)數據寬度為16bit,并使能外部設備就緒信號READY,禁止無(wú)限爆發(fā)操作(屏蔽BTERM bit)。

       局部總線(xiàn)端的讀、寫(xiě)時(shí)序基本相同。以寫(xiě)周期為例說(shuō)明。首先,PLX9054通過(guò)置LHOLD信號有效來(lái)申請局部總線(xiàn)的主控權,在收到局部總線(xiàn)仲裁的響應信號LHOLDA之后,PLX9054成為局部總線(xiàn)的主控。隨后置ADS#信號為低,使得地址總線(xiàn)信號LA[31:2]、字節使能信號LBE[3:0]和讀寫(xiě)選擇信號LW/R#進(jìn)入有效狀態(tài)。一個(gè)LCLK周期之后,PLX9054停止驅動(dòng)ADS#。這時(shí),地址總線(xiàn)LA[31:2]上的地址信號將保持有效,直至數據線(xiàn)上的數據有效,并保持一個(gè)LCLK周期。數據線(xiàn)LD[15:0]上的數據信號由READY#驅動(dòng),在讀、寫(xiě)操作周期,READY#分別表示局部總線(xiàn)設備已經(jīng)準備好發(fā)送或者接收數據。BLAST#信號由PLX9054提供,BLAST#信號為低,表示一次傳輸的最后一個(gè)字節,BLAST#的上升沿標志一次數據傳輸完成。一個(gè)LCLK周期之后,PLX9054拉低LHOLD,放棄對局部總線(xiàn)的主控權。局部總線(xiàn)仲裁響應PLX9054的LHOLD信號,拉低LHOLDA,收回局部總線(xiàn)主控權,這時(shí)的局部總線(xiàn)置于閑置狀態(tài)。這里,PLX9054作為局部總線(xiàn)主控權的唯一申請者,只要提出總線(xiàn)申請,局部總線(xiàn)仲裁就立即響應該申請。

       HPI設計要求

       HPI是一種數據寬度為16bit的并行端口,通過(guò)HPI,主機可以直接對CPU的存儲器空間進(jìn)行操作。HPI內部加入了兩個(gè)8級深度的讀寫(xiě)緩沖,可以執行地址自增的讀寫(xiě)操作,提高了讀寫(xiě)操作的吞吐量。HPI為內部CPU提供了標準32bit的數據接口,而它為外部主機提供了一個(gè)經(jīng)濟的16bit接口,所以對外部主機而言,每次讀寫(xiě)必須執行成對的16bit操作。

       HPI內部有3個(gè)寄存器,分別是控制寄存器(HPIC),地址寄存器(HPIA)和數據寄存器(HPID)。這3個(gè)寄存器可以直接被主機訪(fǎng)問(wèn),主機每執行一次對CPU內部存儲空間的訪(fǎng)問(wèn),都必須先對控制寄存器和地址寄存器寫(xiě)入相應的值,然后才能對數據寄存器進(jìn)行讀寫(xiě)操作。HPI的外部接口由數據總線(xiàn)HD[15:0]以及一部分用于描述和控制HPI的控制信號組成,這些控制信號包括:

       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#,使能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ě)入操作。

       對于讀HPI的操作,當HCS#變成有效,在主機不采用地址自增方式從HPID執行讀操作時(shí)(case1),HPI會(huì )向內部地址產(chǎn)生硬件送一個(gè)讀請求。HCS#的下降沿使得HRDY#變?yōu)楦唠娖?,直到內部地址產(chǎn)生硬件將請求的數據裝載進(jìn)HPID,HRDY#變?yōu)橛行顟B(tài)。數據線(xiàn)上的數據為讀出的數據,該數據保持有效,直到HSTROBE#上升沿采樣數據后的10ns左右。在第二次讀操作開(kāi)始時(shí),數據已經(jīng)出現在HPID上了,因此,第二個(gè)半字的讀操作將不會(huì )遇到未準備好的情況 。在HPID以地址自增的方式進(jìn)行讀操作時(shí),HCS#在整個(gè)多個(gè)字節的傳輸過(guò)程中始終保持有效,一旦完成現在的讀操作,下一地址的數據馬上被取出。因此,完成現在讀操作的第二個(gè)半字的傳輸之后(在HSTROBE#的第二個(gè)上升沿),由HSTROBE#的下降沿(通過(guò)變化HDS1#或者HDS2#來(lái)產(chǎn)生)扇出HRDY#信號,用于指示HPI正忙于數據的預讀取。

       設計實(shí)現

       CPLD的功能是要完成局部總線(xiàn)端和HPI端口之間控制信號和數據總線(xiàn)的連接,并保證數據傳輸的可靠性。通過(guò)以上對局部總線(xiàn)和HPI的讀寫(xiě)時(shí)序的分析得知,一些關(guān)鍵信號,例如HCS#、READY#和HRDY#的時(shí)序設計很重要,整個(gè)CPLD設計的主要任務(wù)也是圍繞這幾個(gè)信號的設計展開(kāi)的。

       由HCS#、HDS1#和HDS2#共同作用產(chǎn)生的HPI口內部信號HSTROBE#的上升沿和下降沿直接控制著(zhù)送入HPI端口的數據信號和控制信號,并且HSTROBE#變化的速率決定了數據傳輸的速率,因此它是一個(gè)非常關(guān)鍵的信號。這里,HCS#信號作為字節傳輸標志信號,在一次數據傳輸的過(guò)程中始終保持有效。數據傳輸結束之后,將HCS#拉高,從而控制HRDY#信號恢復到初始狀態(tài),為下一次讀寫(xiě)操作做好準備。HDS1#或者HDS2#中的一個(gè)固定接高電平,變化另外一個(gè)來(lái)控制HSTROBE#產(chǎn)生上升沿和下降沿。這里將HDS1#固定接高電平,由ADS#和HRDY#信號產(chǎn)生邏輯來(lái)控制HDS2#信號。當HRDY#處于無(wú)效狀態(tài),即HPI端口未準備就緒時(shí),HDS2#信號不變,不采樣任何信號;當HRDY#有效時(shí),HCS2#信號同ADS#信號保持一致,在A(yíng)DS#的下降沿采樣控制信號,上升沿采樣數據信號。另外,在一次傳輸開(kāi)始之前和結束之后,HDS2#都要保持為高電平。

本文引用地址:http://dyxdggzs.com/article/8873.htm


關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>