關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 多DSP局部總線與VME總線的接口設(shè)計

多DSP局部總線與VME總線的接口設(shè)計

作者: 時間:2007-04-19 來源:網(wǎng)絡(luò) 收藏
1引 言

(Versa Module Eurocard)是一種計算機結(jié)構(gòu),1981年由其生產(chǎn)商Motorola,Mostesk和Signe-tios三家公司組成的集團合作定義。1987年,被批準為國際標準IEEE1014-1987。總線系統(tǒng)采用主控/目標結(jié)構(gòu)、異步非復用傳輸模式,支持16位、24位、32位尋址及8位、16位、24位、32位數(shù)據(jù)傳輸,最大總線速度是40 MB/s。1996年的新標準VME64(ANSI/VI-TA1-1994)將總線數(shù)據(jù)寬度提升到64位,最大數(shù)據(jù)傳輸速度為80 MB/s。而由FORCE COMPUTERS制定的VME64x總線規(guī)范將總線速度提高到了320 MB/s。歷史上,VME總線由于其眾多的功能、強大的兼容性、并行性和高可靠性一直是實時嵌入式系統(tǒng)的首選機型,主要應(yīng)用于圖像處理、軍事通信、雷達信號處理等眾多領(lǐng)域。本文基于雷達實時信號處理的需要,用FPGA實現(xiàn)了多信號處理模板局部總線和基于標準VME總線的計算機進行通信的。

2 VME總線的功能特點

VME總線系統(tǒng)的功能結(jié)構(gòu)可以分為4類:數(shù)據(jù)傳輸總線(DTB)、DTB仲裁總線、優(yōu)先中斷總線和實用總線。每一類都包括一條總線以及與之相關(guān)的功能模塊,他們共同完成某一確定的功能。

2.1 數(shù)據(jù)傳輸總線

DTB信號線可以分為3類:尋址線、數(shù)據(jù)線、控制線。為了適應(yīng)處理器尋址的靈活性,并對地址空問進行保護,VME總線提供6條地址修改線,選擇不同的地址修改碼即可實現(xiàn)16,24,32位的尋址變化,并對地址空間賦予特定的保護權(quán)限??刂凭€和地址線的不同組合可以靈活地控制數(shù)據(jù)的傳送寬度和方式,如8,16,24,32位。依靠這些控制信號的互鎖邏輯,VME總線進行異部傳輸,而不需要時鐘的同步,從而可以可靠地實現(xiàn)不同設(shè)備之間的數(shù)據(jù)傳輸。當主從模塊交換數(shù)據(jù)時,地址線由主模塊驅(qū)動進行尋址,根據(jù)利用的地址線數(shù)目的不同,地址可以是短地址、標準地址和擴展地址,所用地址線的數(shù)目由地址修改線AM0~AM5規(guī)定。數(shù)據(jù)線D00~D31用來傳輸l~4個字節(jié)的數(shù)據(jù)。主模塊用數(shù)據(jù)選通線DS0~DS1,字長線LWORD和地址線A01配合制定不同的數(shù)據(jù)傳輸周期類型。其數(shù)據(jù)長度選擇的真值表和地址總線真值表如表1和表2所示。這里暫不涉及64位據(jù)和地址總線。

2.2 DTB仲裁總線

在VME總線系統(tǒng)中,當同時有多個模塊要求使用DTB時,仲裁子系統(tǒng)就檢測這些請求,并在某一時刻僅允許一塊模板使用DTB。

仲裁總線由6條總線信號線和4組菊花鏈信號線組成:總線請求線BR0~BR3;總線忙線BBSY;總線清除線BCLR;總線允許輸入線BG0IN~BG3IN;總線允許輸出線BG0OUT~BG3OUT。菊花鏈信號線由每塊板的總線允許輸入線(BgxIN)和總線允許輸出線(BgxOUT)組成。從n號插槽出來的菊花鏈信號線,如BGxOUT與下一板(n+1)號插槽的(BgxIN)相連。槽1的BgxIN一般由槽1的總線仲裁模塊來驅(qū)動。

在VME總線仲裁系統(tǒng)中共有O~3四種優(yōu)先級,第3優(yōu)先級最高,第0優(yōu)先級最低,也就是說DTB仲裁總線中總線請求,總線允許輸入和總線允許輸出各有4條。每個請求模塊只驅(qū)動一條請求線,并接受同一級別的總線允許鏈路仲裁,即BRx,BGxIN,BGxOUT中x相同時才能構(gòu)成一級仲裁鏈路。至于仲裁驅(qū)動模塊對4條仲裁鏈路的處理,則可以采用3種不同的方式:優(yōu)先法、循環(huán)法和單級法。優(yōu)先級仲裁是按照4條總線請求的優(yōu)先級別從最高的BR3到最低的BR0這一固定的優(yōu)先順序分配總線的。循環(huán)仲裁是按照循環(huán)優(yōu)先的原則來分配總線的,在總線請求線BR(n)上某一請求模塊已獲準使用總線時,則下一次仲裁的最高優(yōu)先級就是BR(n-1);單級僅接受BR3上的請求,并依靠BR3上的總線允許菊花鏈來裁判。

2.3 優(yōu)先中斷總線

通常僅有一個處理器處理中斷,監(jiān)視中斷請求線(IRQl~IRQ7),IRQ7優(yōu)先權(quán)最高,在響應(yīng)中斷時,一個地址周期產(chǎn)生,這個地址指示請求已被響應(yīng),中斷響應(yīng)線(IACK)被仲裁器改變以daisy-chain(菊花鏈)的方式向下傳送,用IACKIN和IACKOUT信號,一個數(shù)據(jù)周期指出請求設(shè)備,并提取請求設(shè)備的狀態(tài)和IV(中斷矢量)。

2.4 實用總線

實用總線功能提供系統(tǒng)周期定時,上電初始化和故障檢測功能,主要有SYSCLK(系統(tǒng)時鐘線),ACFAIL(交流故障線),SYSRESET(系統(tǒng)復位線),SYSFAIL(系統(tǒng)故障線);系統(tǒng)時鐘線是獨立的頻率為16 MHz的時鐘信號,由位于1號槽的系統(tǒng)時鐘驅(qū)動模塊產(chǎn)生,可以作為整個系統(tǒng)的時間基準。另外3條信號線由l號槽的電源監(jiān)控模塊產(chǎn)生。

3 系統(tǒng)方案

通常,設(shè)計多局部總線與標準總線接口可以采用專業(yè)公司提供的接口控制芯片。例如,利用Cypress公司的VIC64橋接電路可以設(shè)計功能全面,具有完全的主模塊/從模塊功能的標準VME總線接口。但是如果用戶開發(fā)的基于VME總線的應(yīng)用模塊僅作為從設(shè)備.那么就只需要具備從從模塊的總線接口,這樣就可以使用FPGA自行設(shè)計橋接電路,本設(shè)計結(jié)合系統(tǒng)需要,采用雙口RAM實現(xiàn)數(shù)據(jù)交換,F(xiàn)PGA實現(xiàn)接口邏輯轉(zhuǎn)換。方案如圖1所示。

圖1中為Analog Devices公司TS101,4片TS101共享總線組成緊耦合系統(tǒng)。雙口RAM為Cypress公司的高速、大容量、低功耗芯片CY7C025AV,他的容量為32 kB,數(shù)據(jù)寬度為16 b,最高訪問速度達到80 MHz。FPGA為ALTERA公司的EPF10K30A。

雙口RAM的左端口與多DSP局部總線相連,局部總線的MS0連接雙口RAM的CEL(左端口使能),雙口RAM在多DSP局部總線的地址空間映射為0X8000000~0X8007FFF。雙口RAM的讀寫時序與普通存儲器相同,可以直接與局部總線相連,DSP可以通過慢速總線傳輸協(xié)議訪問雙口RAM的地址空間。雙口RAM的OEL(左端口輸出使能)和RWL(左端口讀寫使能)分別接局部總線的RD和W/R,左端口數(shù)據(jù)線(D0L~D15L)和地址線(A0L~A14L)也分別與局部總線的數(shù)據(jù)和地址線相連。

雙口RAM右端口和標準VME總線通信,由FPGA負責譯碼標準VME總線控制信號線產(chǎn)生接口控制邏輯,雙口RAM的右端口數(shù)據(jù)線(D0R~D15R)和地址線(A0R~A14R)通過總線驅(qū)動器74F16245驅(qū)動后和標準VME:總線的數(shù)據(jù)和地址線相連。74F16245的使能和傳輸方向信號由FPGA譯碼產(chǎn)生。

標準VME總線的控制信號線與FPGA連接,由于FPGA的I/O管腳可以兼容各種電平,所以VME的控制信號線可以直接與FPGA相連。

4 FPGA接口程序的設(shè)計

FPGA中的VME總線接口程序主要由2大模塊組成,一個模塊是VME主機對雙口RAM訪問的普通I/O模塊,該模塊主要實現(xiàn)標準VME總線訪問時序到雙口RAM訪問時序的邏輯轉(zhuǎn)換,VME總線地址譯碼和訪問模式譯碼,以及VME總線到雙口RAM的數(shù)據(jù)地址線驅(qū)動的邏輯控制。另一個模塊多DSP模板向VME主機發(fā)送中斷的中斷請求模塊,該模塊主要完成中斷信號的發(fā)送,主機發(fā)來的中斷認可的處理和向主機發(fā)送中斷狀態(tài)和識別碼。

4.1 普通I/O模塊的設(shè)計

普通I/O模塊的程序設(shè)計采用VHDL語言狀態(tài)機實現(xiàn),整個過程分為5種狀態(tài):idle(空閑狀態(tài)),selection(選中狀態(tài)),write(寫數(shù)據(jù)狀態(tài)),read(讀數(shù)據(jù)狀態(tài))和answer(應(yīng)答狀態(tài))。

idle狀態(tài)表示本模塊沒有被VME主機訪問;selection狀態(tài)表示地址和模式譯碼已經(jīng)選中本模塊,主機要訪問雙口RAM的地址空間;write狀態(tài)VME主機正在向雙口RAM寫入數(shù)據(jù);read狀態(tài)表示VME主機正在從雙口RAM中讀出數(shù)據(jù);answer表示本模塊響應(yīng)訪問周期向VME主機發(fā)送數(shù)據(jù)傳輸應(yīng)答。描述整個過程的狀態(tài)轉(zhuǎn)移圖如圖2所示。

I/O模塊標準傳輸?shù)倪^程描述為:idle狀態(tài)時,地址監(jiān)測劃模塊應(yīng)處于VME總線地址譯碼和訪問模式監(jiān)測狀態(tài),本模塊的訪問模式為A24-D16標準數(shù)據(jù)訪問模式。當VME主機輸出的地址和訪問模式與本模塊一致時,即輸入地址VA20~VA23為程序所設(shè)的地址,AM碼等于3A(H),LWORD為高,VA1為低和AS為低,地址監(jiān)測模塊輸出“從模塊選中信號”,啟動了從模塊訪問,這時模塊進人selection狀態(tài)。

進入selection狀態(tài)后,程序監(jiān)視DS0,1(數(shù)據(jù)選通信號)和WRITE(讀寫信號)。當DS0,DS1都為低,WRITE為高時,模塊進入read狀態(tài);當DS0,DS1都為低,WRITE為低時,模塊進入write狀態(tài)。

當模塊處于read狀態(tài)時,F(xiàn)PGA置雙口RAM的CER為低使能雙口RAM,OER為低使能數(shù)據(jù)輸出,RWR為高關(guān)閉寫使能,使雙口RAM為數(shù)據(jù)輸出狀態(tài)。FPGA還要打開總線驅(qū)動使能,設(shè)置總線驅(qū)動方向,使VME地址總線為輸入,數(shù)據(jù)總線為輸出。

當模塊處于write狀態(tài)時,F(xiàn)PGA置雙口RAM的CER為低使能雙口RAM,RWR為低使能寫信號,OER為高關(guān)閉輸出數(shù)據(jù)使能,使雙口RAM為數(shù)據(jù)輸入狀態(tài)。FPGA還要打開總線驅(qū)動使能,設(shè)置總線驅(qū)動方向,使VME地址數(shù)據(jù)線都為輸入。

為了設(shè)置“讀應(yīng)答使能”和“寫應(yīng)答使能”,模塊在進入read(讀數(shù)據(jù)狀態(tài))或write(寫數(shù)據(jù)狀態(tài))后,都使能一個計數(shù)器計數(shù)。當計數(shù)器的計數(shù)值為某值時(此計數(shù)值可以用來調(diào)整讀寫周期的大小,本例中使用32 MHz時鐘時,計數(shù)值為1即可),分別置“讀應(yīng)答使能”和“寫應(yīng)答使能”有效,模塊進入answer(應(yīng)答狀態(tài))狀態(tài)。在模塊進入an-swer后,程序置DTACK為低,向主機發(fā)送數(shù)據(jù)傳送應(yīng)答。這樣,當主機向雙口RAM寫數(shù)據(jù)時,通知主機可以釋放總線;當主機從雙口RAM讀數(shù)據(jù)時,通知主機數(shù)據(jù)已經(jīng)穩(wěn)定可以鎖存數(shù)據(jù)。主機收到DTACK后釋放DS0,DS1為高,AS為高;模塊檢測到DS0,DS1為高,AS為高后,將DTACK置高,關(guān)閉雙口RAM使能和VME總線驅(qū)動,模塊進入idle(空閑狀態(tài)),一個標準的VME總線傳輸周期結(jié)束。

整個過程的仿真時序波形如圖3所示:圖中,“000”表示idle狀態(tài),“001”表示selection狀態(tài),“101”表示read狀態(tài),“011”表示write狀態(tài),“111”表示answer狀態(tài)。

4.2 中斷請求模塊的設(shè)計

本模塊設(shè)計采用VHDL語言編寫程序,使用進程對中斷產(chǎn)生模塊的功能進行描述,即用進程中if-elsif-else語句來描述這個時序過程。

中斷模塊負責產(chǎn)生標準VME總線中斷,處理VME主機中斷管理模塊發(fā)來的中斷響應(yīng)。程序設(shè)計了一個8位的內(nèi)部寄存器VINT,用來控制中斷信號的產(chǎn)生,寄存器位VINT1~7對應(yīng)IRQ1~7,控制VME總線中斷信號的產(chǎn)生和撤銷,VINT0作為發(fā)中斷使能位.當VINT0等于1時,程序檢查VINT1~7,置相應(yīng)的中斷請求信號線IRQ1~7為低,便向監(jiān)控該信號的VME主機中斷管理模塊發(fā)出了中斷請求。

中斷請求模塊發(fā)出中斷請求后,監(jiān)控輸入信號IACK-IN和A1~3,等待VME主機中斷管理模塊發(fā)來的中斷響應(yīng)。當檢測到IACKIN為低,即開始中斷號對照,檢測A1~3上的值是否和本模塊發(fā)出的中斷號一致,如果不一致就將驅(qū)動IACKOUT輸出菊花鏈為低,如果一致將該中斷的狀態(tài)/識別碼放到VD0~7上,當數(shù)據(jù)穩(wěn)定后,驅(qū)動DTACK為低,通知VME主機中斷管理模塊取走中斷狀態(tài)識別碼,主機進入相應(yīng)的中斷服務(wù)程序.即完成了從模塊VME總線中斷的發(fā)送和響應(yīng)過程。

5 結(jié) 語

用VHDL語言實現(xiàn)了多DSP局部總線到標準VME總線普通I/O模塊和中斷請求模塊的設(shè)計,雙口RAM的存儲空間映射到工控機的存儲空間的地址為0XC0410000~0XC0413FFFC。使用32 MHz時鐘時.通信速率町達16 MB/s,能夠滿足雷達信號處理板到終端通信的要求。



關(guān)鍵詞: DSP VME 總線 接口設(shè)計

評論


相關(guān)推薦

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

關(guān)閉