1前言
用戶經(jīng)常會遇到如何將DSP與標準總線聯(lián)系起來的問題,并需要開發(fā)與標準總線的應用模板。在工控機的機箱里使用背板總線,現(xiàn)在一般都是基于VME或CPCI的應用開發(fā)。由于其眾多的功能、強大的兼容性、并行性和高可靠性,VME總線一直應用于多種DSP系統(tǒng)中。雖然現(xiàn)在PCI總線及其擴展規(guī)范CPCI總線逐漸被設(shè)計者接受,但相對于PCI(CPCI)總線,VMEbus一直居主導地位,更是由于其PCI總線所不能及的特點,如VME總線系統(tǒng)具有良好的可擴展性,在1個VME系統(tǒng)機箱內(nèi)可以容納多達21塊應用模板。所以對于設(shè)計多DSP板時,VME總線也是挺好的選擇。
作為用戶開發(fā)基于VMEbus的應用模塊來說,必須根據(jù)特定的要求考慮如何與VMEbus接口的問題。一般來說,用戶可以采用專業(yè)公司的現(xiàn)成IC,它們的功能比較全面。國外兩個主要的提供VMEbus到計算機界面的芯片廠商是Cypress和TundraSemiconductor。Cypress公司的VIC068A是較早推出的VME總線橋控制器,功能全面,具有完全的主模塊/從模塊功能,也可以當作系統(tǒng)控制器。VIC64與VIC068A功能與引腳都兼容,只是增加了對VME64規(guī)范的支持。另外,由于VIC068A系列接口芯片的局部總線是為Motorola公司的68K系列微處理器設(shè)計的,對于與68K處理器總線不兼容的其它類型處理器來說,使用VIC068A需要完成與該類型處理器總線的接口轉(zhuǎn)換。Tundra公司的UniverseSCV64是1個通用的單芯片的總線橋控制芯片,可以與多種局部處理器類型使用,但是也要外部邏輯完成與局部總線接口之間轉(zhuǎn)換。
圖1 VIC068A引腳排列
2 VIC068A的原理和引腳排列
VIC068A具有全面的接口功能,即能進行A32、A24、D32、D16、D8主模塊和從模塊標準傳輸和塊傳輸,有5種總線釋放模式,支持寫自檢過程、自定義的AM碼以及自定義的總線定時等其它功能。它的塊傳輸操作可以在借助適當?shù)耐獠侩娐非闆r下,實現(xiàn)長度大于256字節(jié)的塊傳輸,同時具有雙通道特性。VIC068A在上電的時候如果檢測到SCON引腳為低有效時,就會被選擇充當系統(tǒng)控制器,完成總線仲裁、總線定時、中斷和中斷管理、IACK菊花鏈驅(qū)動、SYSCLK驅(qū)動等功能,如果想使能/關(guān)閉系統(tǒng)控制器功能,最好是用大于4.7kΩ的上拉/下拉電阻器。
VIC068A的復位方式有:(1)內(nèi)部復位,這是最通常的復位,對選擇的寄存器和內(nèi)部邏輯復位;(2)系統(tǒng)復位,是通過VME背板復位,VIC068A可以通過寫配置寄存器產(chǎn)生1個SYSRESET信號;(3)全局復位,復位所有的配置寄存器,常被用作上電復位。
圖1給出VIC068A的引腳排列。
下面是與VIC068A數(shù)據(jù)傳輸關(guān)系比較密切的信號引腳的介紹。
MWB,CS:MWB為局部功能模塊如DSP發(fā)出的需要VMEbus請求。CS為局部總線寫VIC068A內(nèi)部寄存器的片選。設(shè)計者可以利用不同的地址譯碼來選擇MWB和CS,以區(qū)分此次操作時對VME總線操作還是對VIC068A操作。
LBR,LBG:是局部總線請求和允許信號。
PAS,DS,R/W:PAS是局部總線地址選通,DS是局部數(shù)據(jù)選通,R/W是局部數(shù)據(jù)方向指示。
DSACK1,0:局部數(shù)據(jù)位寬確認信號。與VMEbus的DS有些類似,VIC068A在從模塊傳輸,從塊傳輸或DMA傳輸時接受DSACK之一輸入,確認此周期結(jié)束,在主模塊操作時輸出此信號向局部總線確認VMEbusmastertransfer結(jié)束。并且這個信號還和WORD,SIZ1,0信號一起用來指示此次數(shù)據(jù)的位寬。
一組緩沖器控制信號。LADI,LAEN,LADO,ABEN為輸入局部地址鎖存、使能和輸出VMEbus地址鎖存、使能。LEDI,DENIN,LEDO,DENO分別為輸入的VMEbus數(shù)據(jù)鎖存、使能和輸出的VMEbus鎖存、使能。對于簡單應用(如只是單周期傳輸),圖2給出外部鎖存/緩沖器與VIC068A之間的典型連接。
其它的引腳功能如LBERR,F(xiàn)C2,F(xiàn)C1,BLT,DEDLK等可以查看Cypress手冊,更具體的資料可以與作者聯(lián)系。
3 VIC068A的主模塊和從模塊操作
3.1主模塊標準傳輸操作
當局部總線(局部主處理器)使得MWB低有效時,緊接著PAS也有效時就發(fā)出單個數(shù)據(jù)或塊傳輸請求;VIC068A收到這兩個信號有效后,如果VIC068A不是當前VMEbusmaster,就申請VMEbus訪問,當滿足AS自上1個周期后無效、DTACK和BERR無效、BGiIN收到為低、合適的延時過后,就得到開始數(shù)據(jù)傳輸?shù)目刂茩?quán)。
首先VIC068A驅(qū)動D[7..0]緩沖到VMEbus,并使DENO有效,來使剩下的數(shù)據(jù)線緩沖有效;與此同時,VIC068A也使能A[7..0]和ABEN,驅(qū)動剩下的VMEbus地址線。VIC068A也驅(qū)動總線控制信號線如AM,WRITE,LWORD,這時VIC068A確保內(nèi)部的地址建立時間過去后,使AS有效,此后VIC068A鎖存局部總線數(shù)據(jù)LA[7..0]以及使LADO有效,鎖存LA[31..8]。在AS啟動有效后,VIC068A啟動1個DSi的內(nèi)部時延,在這個時間里,主處理器應該將要送的數(shù)據(jù)放到局部總線上,同時VIC068A會驅(qū)動緩沖數(shù)據(jù)控制線LEDO,來鎖存數(shù)據(jù)到VMEbus上。在這個時間過去以后,便根據(jù)傳輸數(shù)據(jù)的大小和排列驅(qū)動合適的DSi(i=0,1)有效。直到收到另1塊模板上的從模塊驅(qū)動DTACK或BERR有效后,VIC068A便根據(jù)數(shù)據(jù)位寬大小向局部總線驅(qū)動DSACKi,即如果WORD信號輸入為無效(高),VIC068A便認為這是個D32的數(shù)據(jù)傳輸,就使DSACK0,DSACK1同時有效(低),否則若WORD有效,就認可這是個D16的操作,只驅(qū)動DSACK1為低,這與Motorola68K動態(tài)總線字長的能力是兼容的。





