劉彩霞 賀占莊
摘 要:提出了一種利用CPLD實(shí)現(xiàn)雷達(dá)并口數(shù)據(jù)的采集和存儲的方案。采用單片CPLD完成了以往需要大量外圍器件來完成的雷達(dá)并口數(shù)據(jù)收發(fā)及存儲功能,有效地減少了印制板上功能模塊的面積,減少了系統(tǒng)體積,提高了設(shè)計效率;同時還利用CPLD中的鎖相環(huán)倍頻系統(tǒng)時鐘大大提高系統(tǒng)采集速度。實(shí)踐證明,基于CPLD的系統(tǒng)設(shè)計是靈活、現(xiàn)實(shí)且高效的。
關(guān)鍵詞:CPLD;雙口RAM;數(shù)據(jù)采集;存儲
中圖分類號:TN919文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2009)05-084-03
Collection and Storage of Parallel Data Based on CPLD
LIU Caixia,HE Zhanzhuang
(Xi′an Micro-electronic Institute,Xi′an,710065,China)
Abstract:Using of CPLD to achieve parallel data collection and storage options in radar system is proposed.CPLD takes the place of many peripheral components,complets to send and receive the dates of radar the parallel ports,reduces the area of PCB modules and volume of the system,and improves the designing efficiency,the PLL clock multiplier system in CPLD greatly improved system collection speed.Practice proves that,based on the CPLD,system design is flexible,practical and effective.
Keywords:CPLD;dual-port RAM;data collection;storage
0 引 言
在雷達(dá)的控制和數(shù)據(jù)采集系統(tǒng)中通常采用并行數(shù)據(jù)總線方式進(jìn)行控制信號傳輸和數(shù)據(jù)交換。在以往的設(shè)計中,大量使用中小規(guī)模集成電路及分立元件搭建總線數(shù)據(jù)采集和控制功能模塊,不僅占用較大的印制板面積,而且設(shè)計工作量大,時序控制復(fù)雜,采集速度不理想。
將CPLD應(yīng)用到該系統(tǒng)的設(shè)計中可以有效地解決上述問題。CPLD可以實(shí)現(xiàn)許多中小規(guī)模集成電路的功能,因此可以有效地減少印制板上功能模塊的面積,同時減少系統(tǒng)體積。利用
CPLD的在線編程和仿真功能可以模擬系統(tǒng)各類信號的時序,大大提高設(shè)計效率。
1 系統(tǒng)硬件結(jié)構(gòu)
為了實(shí)現(xiàn)高速數(shù)據(jù)處理與數(shù)據(jù)傳送,系統(tǒng)采用CPCI總線接口形式。該設(shè)計方案為雷達(dá)系統(tǒng)提供了兩路并行數(shù)據(jù)總線接口。其中一路并口由CPLD控制,將存儲空間中系統(tǒng)已經(jīng)準(zhǔn)備好的數(shù)據(jù)發(fā)送給雷達(dá);另一路用于接收雷達(dá)傳回的回波信號,并由CPLD控制放到存儲空間中去。系統(tǒng)設(shè)計框圖如圖1所示。
1.1 CPCI總線接口
CPCI總線接口兼顧了PCI總線的高速度,同時丟棄了金手指式互連方式,而改用2 mm密度的針孔連接器,提高了系統(tǒng)的可靠性,增強(qiáng)了負(fù)載能力。在工業(yè)領(lǐng)域已經(jīng)得到廣泛應(yīng)用。
總線接口電路采用PLX公司的高性能接口芯片PCI9054。它采用了先進(jìn)的PLX數(shù)據(jù)管道結(jié)構(gòu)技術(shù),是32 b,33 MHz的PCI總線控制器。其主要特性如下:
支持主/從兩種訪問方式,其峰值傳輸速率可達(dá)133 MB/s;提供了2個獨(dú)立的可編程DMA控制器,每個通道均支持塊和分散/集中的DMA方式;局部總線速率高達(dá)50 MHz,局部總線的時鐘可以由外部提供,且該時鐘可以與PCI的時鐘同步;內(nèi)部有6種可編程的FIFO,以實(shí)現(xiàn)零等待突發(fā)傳輸及局部總線和PCI總線之間的異步操作。
系統(tǒng)啟動的時候,在系統(tǒng)配置的周期內(nèi),PCI9054從配置E2PROM中讀入配置信息完成初始化。這里采用NS93CS56完成對PCI9054的初始化配置。
1.2 可編程邏輯器件
可編程邏輯器件選用ALTERA公司的EP1C3,其型號為Cyclone系列的產(chǎn)品,具有內(nèi)部邏輯分析功能。在JTAG方式下,通過下載電纜即可觀察到各個IO引腳及內(nèi)部各個寄存器中的數(shù)據(jù),調(diào)試十分方便。
1.3 存儲器
本系統(tǒng)中采用雙口RAM作為PCI總線和并口數(shù)據(jù)存儲和交換的媒介??紤]到用于并口交換的數(shù)據(jù)量較大,因此選用IDT公司的64K×16 b雙口芯片IDT70V28。做成乒乓方式的存儲
結(jié)構(gòu),以實(shí)現(xiàn)并行操作,節(jié)約處理時間,保證實(shí)時處理。
2 系統(tǒng)設(shè)計及原理
2.1 鎖相環(huán)
在印制板上采用的晶體或晶振的輸出頻率較低,并不能滿足系統(tǒng)需求,為了能夠得到較高的采樣速度,必須有一個高頻率時鐘作為系統(tǒng)時鐘。EP1C3內(nèi)部的鎖相環(huán)功能可以對輸入時鐘進(jìn)行倍頻和降頻的處理,還可以根據(jù)需要產(chǎn)生不同的時鐘相位。倍頻后的時鐘可以作為CPLD內(nèi)部的系統(tǒng)時鐘使用,也可以輸出至CPLD外部,作為其他器件的時鐘輸入。
在本系統(tǒng)中采用一個20 MHz的晶振作為CPLD的輸入時鐘,通過倍頻產(chǎn)生一個100 MHz的時鐘作為內(nèi)部的系統(tǒng)時鐘,同時產(chǎn)生一個33 HMz的時鐘輸出作為PCI9054的局部總線異步時鐘。
2.2 并口數(shù)據(jù)收發(fā)
雷達(dá)回波包括16位寬度的數(shù)據(jù)和握手信號,首先需要用CPLD對握手信號進(jìn)行接收和處理。接收到的握手信號都為下降沿觸發(fā)脈沖。需要注意的是,接收到的握手信號必須去除毛刺和噪聲產(chǎn)生的干擾,避免系統(tǒng)接收到錯誤的數(shù)據(jù)。為了去除毛刺干擾產(chǎn)生的影響,應(yīng)使低電平保持一段時間,以減少誤觸發(fā)。根據(jù)系統(tǒng)中毛刺和噪聲的周期設(shè)定檢測門限,例如,當(dāng)握手信號經(jīng)電纜傳輸至接口板時,有時會在前沿產(chǎn)生一個15~20 ns的毛刺,因此可以在檢測到握手信號的下降沿后接著連續(xù)記錄四個以上時鐘周期的低電平信號,只有當(dāng)這四個周期的信號電平全為“0”時,才確定本次握手有效。并口接收數(shù)據(jù)示意圖如圖2所示。
需要輸出的并口數(shù)據(jù)從存儲器讀出后應(yīng)先于握手信號放置在輸出口上并進(jìn)行保持,待并口數(shù)據(jù)穩(wěn)定后才能輸出握手信號。握手信號的延遲時間及握手信號的寬度可以進(jìn)行設(shè)定以增強(qiáng)系統(tǒng)的適應(yīng)性。并口發(fā)送數(shù)據(jù)示意圖如圖3所示。
2.3 數(shù)據(jù)存儲及與交換
本系統(tǒng)中由雙口RAM作為系統(tǒng)輸入和輸出數(shù)據(jù)的緩沖區(qū),由CPLD和總線接口PCI9054共同使用。由于系統(tǒng)輸入輸出數(shù)據(jù)量較大,輸入輸出操作頻繁,因此可將雙口RAM的存儲空間平均分割成長度相同的兩半,輸入輸出數(shù)據(jù)占用一半存儲空間。這樣當(dāng)CPLD向第一塊存儲空間寫入數(shù)據(jù)時,PCI9054既可以從這塊存儲空間讀出數(shù)據(jù),同時還可以向另外一塊存儲空間寫入數(shù)據(jù),這樣可以幾乎節(jié)約一半的操作時間。
但是當(dāng)雙口RAM的兩端同時對同一個地址單元分別進(jìn)行讀數(shù)據(jù)和寫數(shù)據(jù)的操作時,讀出的數(shù)據(jù)會是錯誤的。為了防止發(fā)生這種錯誤,可以使用雙口RAM內(nèi)部的仲裁機(jī)制,利用BUSY信號進(jìn)行判斷。當(dāng)讀取一個地址單元中的數(shù)據(jù)時首先判斷BUSY信號是否為低電平,如果BUSY信號為低電平時表示雙口RAM的另外一邊正在對該地址單元進(jìn)行寫操作。使用仲裁機(jī)制可以有效消除讀寫沖突,但是也需要系統(tǒng)不斷的對雙口RAM的BUSY信號進(jìn)行判斷。這會嚴(yán)重的占用系統(tǒng)資源,同時也影響了數(shù)據(jù)的傳輸速度。
本系統(tǒng)中,再次利用乒乓結(jié)構(gòu)將接收和發(fā)送數(shù)據(jù)的存儲空間各分為長度相等的兩部分。存儲空間最終分配示意圖如圖4所示。
接收數(shù)據(jù)時,當(dāng)CPLD將一塊出處空間寫滿數(shù)據(jù)以后向PCI9054產(chǎn)生中斷信號并產(chǎn)生一個標(biāo)志信息,PCI9054接收到中斷信號以后首先查詢標(biāo)志信息判斷是哪一塊存儲區(qū)域已經(jīng)寫滿,然后將這一存儲空間中的數(shù)據(jù)讀出并發(fā)送給系統(tǒng)。此時CPLD可以繼續(xù)向另一塊存儲空間寫入數(shù)據(jù)。同樣地,當(dāng)PCI9054向其中一塊發(fā)送區(qū)寫入數(shù)據(jù)時,CPLD可以從另一塊區(qū)域中讀出數(shù)據(jù)。
乒乓結(jié)構(gòu)存儲形式使得數(shù)據(jù)交換和數(shù)據(jù)處理可以并行進(jìn)行,極大地節(jié)約了處理時間,對系統(tǒng)滿足實(shí)時性要求具有及其重要的意義。
2.4 接口時序控制
當(dāng)雷達(dá)的回波數(shù)據(jù)與雙口RAM中的數(shù)據(jù)同時準(zhǔn)備好時,由于PCI9054局部總線讀寫速度較快,如果先接收數(shù)據(jù),則雙口RAM中的數(shù)據(jù)有可能溢出,而如果先將雙口RAM中準(zhǔn)備好的數(shù)據(jù)發(fā)送出去則接收的數(shù)據(jù)需要等待一段時間,影響了系統(tǒng)的實(shí)時性。因此CPLD必須控制雙口RAM的讀寫時序,既使發(fā)送區(qū)的數(shù)據(jù)不會溢出同時又不影響系統(tǒng)的實(shí)時性。由于雙口數(shù)據(jù)速率相對于系統(tǒng)來說速度相對比較慢,因此本系統(tǒng)采用分時處理的辦法解決。首先判斷握手信號是否有效,如果握手信號有效則表明并口正在將接收數(shù)據(jù)寫入雙口RAM,否則并口正處于接收間隔時間,CPLD對雙口RAM沒有寫操作。由于每組并口數(shù)據(jù)的傳輸速率比較固定,因此間隔時間可以預(yù)知。在此間隔時間將雙口RAM中的數(shù)據(jù)讀出并發(fā)送,通過這種方法可以進(jìn)一步提高數(shù)據(jù)的收發(fā)速率,減少數(shù)據(jù)在雙口中的滯留時間,更加提高了系統(tǒng)的實(shí)時性。
3 結(jié) 語
本文采用單片CPLD完成了以往需要大量外圍器件來完成的雷達(dá)并口數(shù)據(jù)收發(fā)及存儲功能,所設(shè)計的CPLD已應(yīng)用于雷達(dá)系統(tǒng)中,其應(yīng)用結(jié)果表明:
(1) 采用CPLD極大的簡化了系統(tǒng)結(jié)構(gòu),減少了板卡體積,降低了系統(tǒng)的發(fā)熱量和干擾,提高了系統(tǒng)的可靠性,也給調(diào)試維修帶來了極大的方便。
(2) 使用QuartusⅡ使得硬件 “軟件化”自動設(shè)計,更新了傳統(tǒng)的電路設(shè)計和調(diào)試方式,大大縮短了開發(fā)周期,特別是其設(shè)計仿真和定時分析使得設(shè)計更可靠,確保了系統(tǒng)邏輯的正確性。
參考文獻(xiàn)
[1]李洪偉,袁斯華.基于QuartusⅡ的CPLD/FPGA設(shè)計.北京:電子工業(yè)出版社,2006.
[2]王輝.Max+Plus Ⅱ和Quartus Ⅱ應(yīng)用與開發(fā)技巧.北京:機(jī)械工業(yè)出版社,2007.
[3]David K Barton.雷達(dá)系統(tǒng)分析與建模.北京:電子工業(yè)出版社,2007.
[4]侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計.西安:西安電子科技大學(xué)出版社,2006.
[5]劉春生.高速雙口RAMIDT7026的原理和應(yīng)用.國外電子元器件,2001(8):40-42.
[6]Cyclone Device Handbook.http://www.altera.com.
[7]PCI9054 Handbook.
[8]IDT70V28 Handbook.
[9]CPCI規(guī)范PICMG2.0 D3.0.http://www.picmg.com/.