基于可編程邏輯器件實(shí)現(xiàn)多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)_第1頁
基于可編程邏輯器件實(shí)現(xiàn)多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)_第2頁
基于可編程邏輯器件實(shí)現(xiàn)多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)_第3頁
基于可編程邏輯器件實(shí)現(xiàn)多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)_第4頁
基于可編程邏輯器件實(shí)現(xiàn)多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于可編程邏輯器件實(shí)現(xiàn)多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)對于國內(nèi)而言,正如DSP在20年前出現(xiàn)的情形一樣,如今,F(xiàn)PGA正處于數(shù)字信號處理技術(shù)的前沿。而DSP都是基于一種精簡指令集的計(jì)算機(jī)體系架構(gòu),其固定的硬件結(jié)構(gòu)和數(shù)據(jù)總線寬度已不適合許多面向用戶型(可重配置型)的DSP應(yīng)用系統(tǒng);其速度也受制于CPU的指令順序執(zhí)行的基本工作模式,這已成為DSP處理器一個(gè)難以突破的瓶頸。現(xiàn)代的大容量、高速度FPGA器件通常都內(nèi)嵌有可配置的高速RAM、PLL、LVDS、LVTTL以及硬件乘法累加器(MAC)等DSP模塊,而且都提供了支持以低系統(tǒng)開銷、低成本實(shí)現(xiàn)高速乘-累加(MAC)超前進(jìn)位鏈的DSP算法。在許多寬帶信號處理領(lǐng)域(如無線通信、多媒體系統(tǒng)、衛(wèi)星通信、雷達(dá)系統(tǒng)等),F(xiàn)PGA技術(shù)具有更廣闊的應(yīng)用前景,已代替DSP實(shí)現(xiàn)許多前端的數(shù)字信號處理算法。用FPGA來實(shí)現(xiàn)數(shù)字信號處理可以很好地解決并行性和速度問題,而且其靈活的可配置特性,使得FPGA構(gòu)成的數(shù)字信號處理系統(tǒng)易于修改、測試及系統(tǒng)升級,能降低設(shè)計(jì)成本,縮短開發(fā)周期。本文應(yīng)用FPGA技術(shù)針對一個(gè)遠(yuǎn)程監(jiān)控系統(tǒng)的多路數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)了64bit位寬的海量數(shù)據(jù)實(shí)時(shí)采集、存儲(chǔ)以及時(shí)鐘匹配。1數(shù)據(jù)存儲(chǔ)板的結(jié)構(gòu)圖1為數(shù)據(jù)采集系統(tǒng)中數(shù)據(jù)存儲(chǔ)板的基本框圖,數(shù)據(jù)采集時(shí)鐘為20MHz,遠(yuǎn)低于SDRAM存儲(chǔ)的工作時(shí)鐘100MHz,需要進(jìn)行緩沖處理。通用CPU的SDRAM控制器只支持32bit位寬數(shù)據(jù),而且容量也很難做到480M,筆者運(yùn)用Altera公司的Cyclone系列高性價(jià)比EP1CQ240C8定制SDRAM控制器。EP1CQ240C8是該數(shù)據(jù)存儲(chǔ)板的核心器件,其主要功能有:完成數(shù)據(jù)的緩沖;對SDRAM的讀寫時(shí)序控制;完成EPP(增強(qiáng)型并口)協(xié)議與計(jì)算機(jī)通信;提供SDRAM的100MHz工作時(shí)鐘;產(chǎn)生SDRAM所需的定時(shí)刷新、充電、配置等控制命令;提供SDRAM的地址空間等。SDRAM選擇HYNIX公司32M×8bit×16組的HYM72V64636BT8。20MHz晶振為EP1CO240C8提供輸入時(shí)鐘,同時(shí)被EP1CQ240C8內(nèi)部的PLL倍頻到100MHz和跟隨的20MHz,前者被CY2309功分到SDRAM,為SDRAM的存儲(chǔ)器組提供工作時(shí)鐘;后者被時(shí)鐘驅(qū)動(dòng)芯片74FCT3807分為多路,為A/D提供采樣時(shí)鐘。2EP1CQ240C8與SDRAM的接口設(shè)計(jì)SDRAM的工作模式配置HYM72V64636BT8具有同步接口,其所有輸入和輸出都與系統(tǒng)時(shí)鐘CLK上升沿同步,由輸入信號RAS、CAS、WE組合產(chǎn)生SDRAM控制命令,完成相應(yīng)的模式寄存器設(shè)置、刷新、激活、讀寫、預(yù)充電等操作。SDRAM在工作之前必須設(shè)置模式寄存器,其讀寫工作模式分為普通模式和頁模式。普通模式的數(shù)據(jù)長度可以為1,2,4,8;頁模式和普通模式不同,一旦確定行列地址,則數(shù)據(jù)按照工作時(shí)鐘(本系統(tǒng)工作時(shí)鐘為100MHz)讀出或?qū)懲暌豁摚?024列)。為了編程方便,筆者選取讀寫不同的工作模式:向SDRAM寫入數(shù)據(jù)時(shí)采用頁模式,寫滿后讀出數(shù)據(jù)時(shí)采用是突發(fā)長度為1的普通模式。讀寫操作完成后用PCH命令或BT命令預(yù)充電中止讀或?qū)懖僮?。在沒有讀寫操作的時(shí)候,每64ms必須用ARF命令刷新存儲(chǔ)單元,防止數(shù)據(jù)丟失。SDRAM的控制接口設(shè)計(jì)根據(jù)本系統(tǒng)SDRAM的工作要求,EP1CQ240C8與SDRAM的接口電路方框圖如圖2示,筆者對FPGA的內(nèi)部硬件資源進(jìn)行了詳細(xì)配置。(1)PLL(鎖相環(huán))完成時(shí)鐘管理。(2)地址產(chǎn)生模塊由計(jì)數(shù)器構(gòu)成,包括寫地址模塊和讀地址模塊。寫地址模塊產(chǎn)生的地址同時(shí)送到雙口RAM和狀態(tài)機(jī),狀態(tài)機(jī)發(fā)出初始化、刷新、讀寫、充電等命令,交給仲裁機(jī)制,在不沖突的情況下完成命令的譯碼和地址的行列復(fù)用,這時(shí)數(shù)據(jù)被存入到由地址的行和列所確定的SDRAM地址中去。數(shù)據(jù)存滿SDRAM后再切換到讀地址模塊,通過讀地址模塊產(chǎn)生讀地址將數(shù)據(jù)讀出到并口,然后導(dǎo)入計(jì)算機(jī)進(jìn)行相關(guān)的處理。(3)仲裁機(jī)制完成對讀寫命令和刷新命令的仲裁,杜絕同時(shí)操作;命令譯碼主要用于控制SDRAM的各種時(shí)序,完成SDRAM的讀寫和刷新。(4)刷新控制電路主要完成對SDRAM數(shù)據(jù)刷新進(jìn)行計(jì)時(shí),確保每64ms刷新8192行數(shù)據(jù);刷新控制電路主要由781計(jì)數(shù)器構(gòu)成。由于SDRAM工作時(shí)鐘是100MHz,SDRAM要求在64ms之內(nèi)刷新8192行數(shù)據(jù),因此該計(jì)數(shù)器應(yīng)小于:64ms/8192/0.01us=781.25。當(dāng)計(jì)數(shù)器計(jì)滿781次后,刷新控制電路向仲裁電路發(fā)出刷新請求,仲裁機(jī)制根據(jù)請求向SDRAM發(fā)出刷新命令。(5)狀態(tài)機(jī)是SDRAM控制器的核心。在程序方案上,筆者設(shè)計(jì)了兩個(gè)模塊:一個(gè)模塊產(chǎn)生狀態(tài)機(jī)命令和控制命令;另一個(gè)模塊完成命令的譯碼,包括讀寫、刷新、充電等操作,將命令翻譯成SDRAM的命令碼字,完成特定的操作。在本系統(tǒng)中,由于多通道數(shù)據(jù)采集后進(jìn)入FPGA的時(shí)鐘是20MHz,而FPGA的狀態(tài)機(jī)以及SDRAM的時(shí)鐘是100MHz,因此,數(shù)據(jù)需要做緩沖處理。筆者利用FPGA內(nèi)部的硬件資源構(gòu)造雙口RAM解決時(shí)鐘匹配問題,同時(shí)又考慮到SDRAM工作在頁模式,因此將雙口RAM的容量構(gòu)造成SDRAM一頁的數(shù)據(jù)容量1024×64bits,這樣數(shù)據(jù)緩沖一頁就存入一頁。雙口RAM作為FPGA配置中的關(guān)鍵模塊,下面將詳細(xì)介紹雙口RAM的設(shè)計(jì)。3雙口RAM的構(gòu)造由于本系統(tǒng)中數(shù)據(jù)讀出時(shí)鐘是寫入時(shí)鐘的五倍,所以必須注意時(shí)鐘追趕的問題,即讀出一定要滯后寫入,否則讀出的數(shù)據(jù)就不是存入雙口RAM的數(shù)據(jù)。筆者的編程思路是:當(dāng)數(shù)據(jù)以20MHz時(shí)鐘寫入到雙口RAM容量的7/8時(shí),便以100MHz時(shí)鐘開始讀出,讀完一頁后必須就等待下次寫滿7/8。讀出的一頁數(shù)據(jù)剛好存滿SDRAM的一頁,依次類推,這樣就完成了數(shù)據(jù)的緩沖。當(dāng)然,讀寫地址的產(chǎn)生是FPGA內(nèi)部用計(jì)數(shù)器實(shí)現(xiàn)的,因此,就得到如圖3示的算法流程圖。圖3中clk1為20MHz時(shí)鐘,clk2為100MHz時(shí)鐘;count1[9:0]輸入到雙口RAM的wraddress[9:0],count2[9:0]輸入到rdaddress[9:0]。并和“1110000000”比較,判斷是否寫滿了雙口RAM的容量的7/8,如果寫滿了就觸發(fā)100MHz的讀出時(shí)鐘,數(shù)據(jù)開始從雙口RAM讀出。根據(jù)上述思路,利用Altera公司的開發(fā)平臺(tái)QUARTUSII完成編譯、仿真得到雙口RAM的功能仿真波形如圖4示,由仿真結(jié)果可知該方案很好地解決了時(shí)鐘追趕問題,完成了數(shù)據(jù)緩沖。4數(shù)據(jù)存儲(chǔ)板的性能測試筆者利用在FPGA內(nèi)部資源編寫了一個(gè)測試模塊,用它產(chǎn)生有規(guī)律的數(shù)據(jù)信號(模擬采樣的數(shù)據(jù)),并存入SDRAM,當(dāng)存滿后通過EPP將數(shù)據(jù)存儲(chǔ)到計(jì)算機(jī),利用相關(guān)軟件讀出保

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論