<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用CPLD實(shí)現(xiàn)DSP與PLX9054之間的連接

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

          作者:■ 解放軍信息工程大學(xué)信息工程學(xué)院 李松 汪洋 葛臨東 時(shí)間:2005-04-27 來源:eaw 收藏

          摘    要:本文介紹了利用CPLD實(shí)現(xiàn)DSP芯片TMS320C6711b和PCI橋芯片PLX9054之間的高速數(shù)據(jù)傳輸,并給出了相應(yīng)的系統(tǒng)設(shè)計(jì)原理圖和性能分析。
          關(guān)鍵詞:;
          引言
          CPLD為設(shè)計(jì)任務(wù)從最簡單的PAL綜合設(shè)計(jì)到先進(jìn)的實(shí)時(shí)硬件現(xiàn)場升級提供了全套的解決方法。本文討論如何使用Xilinx公司的CPLD器件XC9500LV實(shí)現(xiàn)PLX9054的局部總線 ( )和DSP的口之間的實(shí)時(shí)通信。采用這種設(shè)計(jì)可以以單字或DMA方式完成主機(jī)與DSP之間的高速數(shù)據(jù)傳輸,傳輸速率達(dá)到16Mb/s??梢詰?yīng)用于實(shí)時(shí)的圖形、圖像及動畫處理場合。

          設(shè)計(jì)需求
            接口要求
          PLX9054是PCI接口專用主從器件,包括通信、網(wǎng)絡(luò)、磁盤控制、多媒體等高性能接口功能。PLX9054可以以多種方式實(shí)現(xiàn)從pci總線端到局部總線端的數(shù)據(jù)轉(zhuǎn)移,如直接傳輸,DMA控制傳輸?shù)?。pci總線和局部總線之間以6個可編程FIFO連接,可實(shí)現(xiàn)突發(fā)并行傳輸。通過串行EEPROM或PCI主控設(shè)備對PLX9054內(nèi)部的配置寄存器進(jìn)行設(shè)置,簡化框圖如圖1所示。通過配置EEPROM,設(shè)置PLX9054作為的從設(shè)備,工作在C模式下(數(shù)據(jù)、地址總線非復(fù)用),局部總線數(shù)據(jù)寬度為16bit,并使能外部設(shè)備就緒信號READY,禁止無限爆發(fā)操作(屏蔽BTERM bit)。
          局部總線端的讀、寫時(shí)序基本相同,如圖2所示。以寫周期為例說明。首先,PLX9054通過置LHOLD信號有效來申請局部總線的主控權(quán),在收到局部總線仲裁的響應(yīng)信號LHOLDA之后,PLX9054成為局部總線的主控。隨后置ADS#信號為低,使得地址總線信號LA[31:2]、字節(jié)使能信號LBE[3:0]和讀寫選擇信號LW/R#進(jìn)入有效狀態(tài)。一個LCLK周期之后,PLX9054停止驅(qū)動ADS#。這時(shí),地址總線LA[31:2]上的地址信號將保持有效,直至數(shù)據(jù)線上的數(shù)據(jù)有效,并保持一個LCLK周期。數(shù)據(jù)線LD[15:0]上的數(shù)據(jù)信號由READY#驅(qū)動,在讀、寫操作周期,READY#分別表示局部總線設(shè)備已經(jīng)準(zhǔn)備好發(fā)送或者接收數(shù)據(jù)。BLAST#信號由PLX9054提供,BLAST#信號為低,表示一次傳輸?shù)淖詈笠粋€字節(jié),BLAST#的上升沿標(biāo)志一次數(shù)據(jù)傳輸完成。一個LCLK周期之后,PLX9054拉低LHOLD,放棄對局部總線的主控權(quán)。局部總線仲裁響應(yīng)PLX9054的LHOLD信號,拉低LHOLDA,收回局部總線主控權(quán),這時(shí)的局部總線置于閑置狀態(tài)。這里,PLX9054作為局部總線主控權(quán)的唯一申請者,只要提出總線申請,局部總線仲裁就立即響應(yīng)該申請。
          設(shè)計(jì)要求
          HPI是一種數(shù)據(jù)寬度為16bit的并行端口,通過HPI,主機(jī)可以直接對CPU的存儲器空間進(jìn)行操作。HPI內(nèi)部加入了兩個8級深度的讀寫緩沖,可以執(zhí)行地址自增的讀寫操作,提高了讀寫操作的吞吐量。HPI為內(nèi)部CPU提供了標(biāo)準(zhǔn)32bit的數(shù)據(jù)接口,而它為外部主機(jī)提供了一個經(jīng)濟(jì)的16bit接口,所以對外部主機(jī)而言,每次讀寫必須執(zhí)行成對的16bit操作。
          HPI內(nèi)部有3個寄存器,分別是控制寄存器(HPIC),地址寄存器(HPIA)和數(shù)據(jù)寄存器(HPID)。這3個寄存器可以直接被主機(jī)訪問,主機(jī)每執(zhí)行一次對CPU內(nèi)部存儲空間的訪問,都必須先對控制寄存器和地址寄存器寫入相應(yīng)的值,然后才能對數(shù)據(jù)寄存器進(jìn)行讀寫操作。HPI的外部接口由數(shù)據(jù)總線HD[15:0]以及一部分用于描述和控制HPI的控制信號組成,這些控制信號包括:
          HCNTL[1:0]:控制HPI的操作類型。
          HHWIL:半字確認(rèn)輸入,“0”,“1”分別表示一次字傳輸?shù)牡谝粋€半字和第二個半字。
          HR/W#:讀/寫選擇。
          HRDY#:就緒狀態(tài)標(biāo)志。
          HINT#:中斷標(biāo)志,DSP向主機(jī)提中斷。
          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的操作,首先使能HCS#,變化HDS1#或HDS2#,使得HSTROBE#信號產(chǎn)生一個下降沿。HPI這個下降沿采樣控制信號HCNTL[1:0]、HHWIL和HR/W#,使能HCS#的同時(shí),扇出HRDY#。主機(jī)進(jìn)入等待狀態(tài),直到HRDY#產(chǎn)生下降沿,表明HPID已清空,可以接收新的數(shù)據(jù)。這時(shí)HSTROBE#產(chǎn)生一個上升沿,采樣HD[15:0]上的數(shù)據(jù)送入HPID,完成第一個半字的寫入。對于第二個半字的寫入,由于32bit的HPID已經(jīng)清空,可以直接寫入數(shù)據(jù),不會出現(xiàn)未準(zhǔn)備好的情況,所以HRDY#一直保持為低。與第一個字節(jié)的寫入相同,在HSTROBE#的下降沿采樣控制信號,HSTROBE#的上升沿采樣數(shù)據(jù)總線HD[15:0]的數(shù)據(jù)送入HPID,完成一個32bit的寫入操作。
          對于讀HPI的操作,當(dāng)HCS#變成有效,在主機(jī)不采用地址自增方式從HPID執(zhí)行讀操作時(shí)(case1),HPI會向內(nèi)部地址產(chǎn)生硬件送一個讀請求。HCS#的下降沿使得HRDY#變?yōu)楦唠娖?,直到?nèi)部地址產(chǎn)生硬件將請求的數(shù)據(jù)裝載進(jìn)HPID,HRDY#變?yōu)橛行顟B(tài)。數(shù)據(jù)線上的數(shù)據(jù)為讀出的數(shù)據(jù),該數(shù)據(jù)保持有效,直到HSTROBE#上升沿采樣數(shù)據(jù)后的10ns左右。在第二次讀操作開始時(shí),數(shù)據(jù)已經(jīng)出現(xiàn)在HPID上了,因此,第二個半字的讀操作將不會遇到未準(zhǔn)備好的情況。在HPID以地址自增的方式進(jìn)行讀操作時(shí),HCS#在整個多個字節(jié)的傳輸過程中始終保持有效,一旦完成現(xiàn)在的讀操作,下一地址的數(shù)據(jù)馬上被取出。因此,完成現(xiàn)在讀操作的第二個半字的傳輸之后(在HSTROBE#的第二個上升沿),由HSTROBE#的下降沿(通過變化HDS1#或者HDS2#來產(chǎn)生)扇出HRDY#信號,用于指示HPI正忙于數(shù)據(jù)的預(yù)讀取。

          設(shè)計(jì)實(shí)現(xiàn)
          CPLD的功能是要完成局部總線端和HPI端口之間控制信號和數(shù)據(jù)總線的連接,并保證數(shù)據(jù)傳輸?shù)目煽啃?。通過以上對局部總線和HPI的讀寫時(shí)序的分析得知,一些關(guān)鍵信號,例如HCS#、READY#和HRDY#的時(shí)序設(shè)計(jì)很重要,整個CPLD設(shè)計(jì)的主要任務(wù)也是圍繞這幾個信號的設(shè)計(jì)展開的。
          由HCS#、HDS1#和HDS2#共同作用產(chǎn)生的HPI口內(nèi)部信號HSTROBE#的上升沿和下降沿直接控制著送入HPI端口的數(shù)據(jù)信號和控制信號,并且HSTROBE#變化的速率決定了數(shù)據(jù)傳輸?shù)乃俾?,因此它是一個非常關(guān)鍵的信號。這里,HCS#信號作為字節(jié)傳輸標(biāo)志信號,在一次數(shù)據(jù)傳輸?shù)倪^程中始終保持有效。數(shù)據(jù)傳輸結(jié)束之后,將HCS#拉高,從而控制HRDY#信號恢復(fù)到初始狀態(tài),為下一次讀寫操作做好準(zhǔn)備。HDS1#或者HDS2#中的一個固定接高電平,變化另外一個來控制HSTROBE#產(chǎn)生上升沿和下降沿。這里將HDS1#固定接高電平,由ADS#和HRDY#信號產(chǎn)生邏輯來控制HDS2#信號。當(dāng)HRDY#處于無效狀態(tài),即HPI端口未準(zhǔn)備就緒時(shí),HDS2#信號不變,不采樣任何信號;當(dāng)HRDY#有效時(shí),HCS2#信號同ADS#信號保持一致,在ADS#的下降沿采樣控制信號,上升沿采樣數(shù)據(jù)信號。另外,在一次傳輸開始之前和結(jié)束之后,HDS2#都要保持為高電平。
          其他一些控制信號,如高低字節(jié)標(biāo)志信號HHWIL是隨著HSTROBE#的上升沿的出現(xiàn)不斷產(chǎn)生0和1的交替變化,所以用HDS2#作時(shí)鐘輸入的兩分頻電路來產(chǎn)生HHWIL。局部總線申請應(yīng)答信號LHOLDA由LHOLD信號經(jīng)一個LCLK的延遲后輸出產(chǎn)生。HCNTL[0:1]接兩根地址線,由上層驅(qū)動程序來控制對HPI內(nèi)部不同寄存器的訪問,LW/R接反相器來產(chǎn)生HW/R信號。原理如圖3所示。

          結(jié)語
          本文提供的這種設(shè)計(jì)方法經(jīng)過實(shí)際運(yùn)行檢驗(yàn),可以保證PLX9054和DSP之間的可靠連接,且邏輯關(guān)系簡單,數(shù)據(jù)線可完全獨(dú)立于CPLD之外直接連接,從而有效地節(jié)約成本,具有較強(qiáng)的實(shí)用價(jià)值和經(jīng)濟(jì)價(jià)值。■

          參考文獻(xiàn)
          1.PLX9054 data book version2.1. PLX   January 2000
          2.TMS320C6711/B/C data book . TI  Febeuary 1999
          3.TMS320C6000 Peripherals Reference Guide. TI  February 2001



          關(guān)鍵詞: HPI local bus PCI總線

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();