用FPGA實(shí)現(xiàn)低成本高性能的數(shù)據(jù)采集和控制卡
帶有dsp cpu的現(xiàn)成的數(shù)據(jù)采集和控制卡經(jīng)常只能達(dá)到預(yù)期性能的一小部分。隨著通道數(shù)目的增加或者采樣頻率的提高,在達(dá)到全部通道性能之前,dsp cpu已經(jīng)開始呈現(xiàn)出超載現(xiàn)象。
當(dāng)今市場的壓力迫使數(shù)據(jù)采集和控制卡的供應(yīng)商在增加數(shù)據(jù)采集卡的通道數(shù)和提高采樣頻率的同時還要考慮降低成本。而且,卡的實(shí)際功能可以由生產(chǎn)或者在系統(tǒng)配置時決定。有時候,同一種卡在同一個系統(tǒng)的不同插槽中需要完成不同的功能。
本文引用地址:http://m.butianyuan.cn/article/20552.htm當(dāng)通道數(shù)增加時,dsp的負(fù)荷也隨之增加。在多數(shù)應(yīng)用中,大部分的dsp cpu的帶寬被前端預(yù)處理任務(wù)(偏移校正、增益調(diào)整、預(yù)濾波等)所消耗。而且這種代碼的開發(fā)也是費(fèi)時費(fèi)力的,因?yàn)槌鲇谛史矫娴脑?,它通常需要用匯編語言來編寫。即使采樣數(shù)據(jù)從每個通道到不同的存儲器之間的傳送過程由dma來處理,cpu的性能仍然會因可用的存儲器帶寬減小而降低。采樣頻率越高,處理器可用的執(zhí)行諸如信號分析、視頻處理、壓縮等的實(shí)際dsp功能的時間就越少。
由于dsp處理器不得不從一個通道切換到下一個通道,因此高速緩存器進(jìn)一步降低了可用的總線帶寬。除了處理數(shù)據(jù)以外,dsp cpu還必須管理數(shù)據(jù)(緩沖、數(shù)據(jù)移動等)、通過背板將處理完的數(shù)據(jù)傳送到主處理器、處理背板協(xié)議等。
要滿足通道數(shù)目增加時的處理要求,dsp cpu的性能必須呈指數(shù)型的提高。對提升dsp性能的要求可以通過提高處理器的工作頻率(將導(dǎo)致更高的總線傳輸頻率、使用更快的存儲器和外設(shè)接口芯片)或使用功能更為強(qiáng)大的處理器這兩種方法來滿足。無論哪種方法都會大大地增加電路板的成本。
本文提出的體系結(jié)構(gòu)能夠在給定的dsp cpu的基礎(chǔ)上,經(jīng)濟(jì)地增加通道數(shù)和每個通道的采樣頻率。它通過采用低成本的latticeecp和 latticeec fpga作為 dsp cpu的協(xié)處理器,在降低預(yù)處理和非dsp工作負(fù)荷的同時保持了靈活性,可以適應(yīng)多種不同的應(yīng)用。由于這些fpga器件提供了充足的局域存儲器,因此可以實(shí)現(xiàn)一種能夠進(jìn)一步提高性能的可編程的數(shù)據(jù)流結(jié)構(gòu):一旦所有操作數(shù)就緒,數(shù)據(jù)流結(jié)構(gòu)將幫助dsp處理器執(zhí)行計算任務(wù)。它取代了需要等待操作數(shù)就緒的順序執(zhí)行的方式。
圖1 數(shù)據(jù)采集和控制卡結(jié)構(gòu)
結(jié)構(gòu)圖1顯示了如今的數(shù)據(jù)采集和控制卡結(jié)構(gòu)。該卡被設(shè)計成能夠處理來自adc板塊的20m的采樣數(shù)據(jù)。
從左邊開始,多個高頻模擬信號被adc板塊量化并通過一個lvds接口被傳送到fpga中。fpga通過dma將數(shù)據(jù)直接傳送到連在dsp cpu上的sram中。dsp cpu處理存儲器中的數(shù)據(jù),并將分析過的數(shù)據(jù)通過pci背板傳送到主處理器中。在cpu的命令下,fpga產(chǎn)生用于與外部數(shù)字子系統(tǒng)通信的控制信號。該板的基準(zhǔn)產(chǎn)能是能夠處理4個5m采樣頻率的通道。在這樣的速率下,已經(jīng)沒有剩余的可用于模擬控制(用數(shù)字i/o驅(qū)動dac)或者分析調(diào)理過的信號的處理能力了。因?yàn)閐sp cpu已經(jīng)在處理所有的任務(wù)(包括預(yù)處理功能、與主處理器通信等),任何新增的處理要求只能由下一代的、配備了更昂貴的dsp cpu的數(shù)據(jù)采集卡來完成。另一種可選方案是通過減少輸入通道數(shù)來處理額外的工作。
ecp fpga中的dsp模塊
在分析實(shí)際應(yīng)用的結(jié)構(gòu)圖之前,先描述一下內(nèi)嵌在latticeecp-dsp fpga中的獨(dú)特靈活的dsp模塊是很有幫助的。這種模塊經(jīng)過配置可以用于許多種dsp應(yīng)用。每片ecp-dsp器件有4到10個sysdsp模塊。它們可以通過多個通道實(shí)現(xiàn)并行的dsp處理。借助軟件,每個sysdsp模塊可以配置成下列的模式之一:
36x36模式
一個36x36的乘法器
18x18模式
四個乘法器
兩個52位的乘法累加器
兩個各含兩個18x18乘法器的求和器
一個含四個18x18乘法器的求和器
9x9模式
八個乘法器
兩個34位的乘法累加器
四個各含兩個9x9乘法器的求和器
兩個各含四個9x9乘法器的求和器
sysdsp模塊提供的靈活性可以被用來實(shí)現(xiàn)許多種dsp任務(wù)。以下是sysdsp模塊在18x18模式下的配置示意圖,見圖2。
圖2 sysdsp模塊在18x18模式下的配置示意圖 這些模塊可以實(shí)現(xiàn)250mhz速度下的所有功能,總的處理能力達(dá)一萬個mmac(百萬乘法累加操作)。由于待處理的數(shù)據(jù)通過硬件送到這些sysdsp模塊中(與微處理器需要從它的存儲器中讀取數(shù)據(jù)不同),所以這些模塊的性能非常接近基準(zhǔn)期望值。這些流水線寄存器可以使dsp處理任務(wù)在最高運(yùn)行速度下執(zhí)行。這種sysdsp模塊可以在同一個模塊中實(shí)現(xiàn)乘法累加、求和、加法或減法運(yùn)算,而無需使用外部的fpga結(jié)構(gòu),因此避免了這些結(jié)構(gòu)的布線延時。
這些fpga結(jié)構(gòu)可以編程實(shí)現(xiàn)所要求的數(shù)據(jù)管理功能,從而減輕dsp cpu處理非dsp工作的負(fù)擔(dān)。
重新配置改善性能
結(jié)構(gòu)圖3采用了相同的dsp cpu來實(shí)現(xiàn)所有的新增性能。在通道容量倍增的同時,其成本比采用更新的dsp cpu的板子低得多。
從左側(cè)開始,adc板塊現(xiàn)在可以實(shí)現(xiàn)8路高頻模擬信號的采樣,并且通過lvds信號接口與latticeecp-dsp進(jìn)行通信。ecp器件同時在所有通道中實(shí)時地執(zhí)行所有信號預(yù)處理功能。通過這個fpga,經(jīng)過整形的待處理的采樣數(shù)據(jù)被寫入ddr存儲器。
圖3 采用latticeecp、ec的結(jié)構(gòu)圖 在ecp fpga中實(shí)現(xiàn)的cpu總線接口(64位)能夠在觸發(fā)模式下在高性能ddr存儲器和cpu高速緩存之間傳送數(shù)據(jù)和指令。ecp fpga還提供內(nèi)部存儲器來緩沖待處理的數(shù)據(jù),降低了非順序存取ddr存儲器帶來的損失。當(dāng)cpu在高速緩存中處理數(shù)據(jù)時,在ecp fpga中實(shí)現(xiàn)的智能總線仲裁器和切換邏輯能夠與外圍器件(latticeecp,pci背板,數(shù)字i/o接口)之間交換數(shù)據(jù)。
這種結(jié)構(gòu)提高了dsp cpu的效率。主要表現(xiàn)在降低dsp cpu的預(yù)處理負(fù)荷;減少必不可少的通道切換的中斷時間;減輕非dsp工作的負(fù)荷;通過使用更快的ddr存儲器來增加存儲器的帶寬;在處理任務(wù)時,減少了非順序存取ddr存儲器的次數(shù)。dsp cpu的這種新增能力可以用來增加輸入和輸出的通道數(shù)。
ecp-dsp fpga實(shí)現(xiàn)的功能
高速adc接口;
每個通道的實(shí)時預(yù)處理,實(shí)現(xiàn)諸如偏移校正、增益調(diào)整、有限脈沖相應(yīng)濾波器等功能;
根據(jù)應(yīng)用要求配置數(shù)字i/o接口;
經(jīng)過緩沖,數(shù)字接口也可以驅(qū)動dac;
與latticeecp fpga之間的高速通信接口。
ec fpga實(shí)現(xiàn)的功能
64位dsp cpu接口;
ddr接口;
用局部存儲器存放經(jīng)過部分處理的數(shù)據(jù);
cpci/pxi接口;
用存放在主cpu中的配置來配置lattice ec器件的邏輯;
與lattice ecp fpga之間的高速通信接口; 將由cpu執(zhí)行的啟動代碼傳送至ddr存儲器的邏輯;
用從主cpu收到的最新代碼更新啟動代碼閃存;
管理lattice ecp、存儲器、cpci背板等之間數(shù)據(jù)傳送所需的智能總線仲裁邏輯功能。
在不同的應(yīng)用中配置電路板
這種電路板既可以通過背板接口進(jìn)行在系統(tǒng)配置也可以在制造的過程中進(jìn)行配置。
(1)通過背板配置
供dsp cpu使用的啟動rom中的代碼能夠和主處理器通信,連接在latticeec fpga上的spi配置閃存可以裝載配置以實(shí)現(xiàn)上述所有功能。
當(dāng)卡插入插槽后,latticeec fpga進(jìn)行配置,將rom中的代碼送入ddr存儲器中,并且給power manager發(fā)信號結(jié)束對cpu的復(fù)位操作。dsp cpu與主處理器進(jìn)行通信并開始將dsp處理規(guī)則送入ddr存儲器。同時,通過由latticeec fpga控制的sysconfig端口,預(yù)處理配置被直接載入ecp。 這樣,latticeecp fpga就可以根據(jù)這個插槽的要求開始處理信號了。
(2)在制造時進(jìn)行配置
dsp的處理規(guī)則存放在啟動rom中而fpga的配置存放在它們各自的spi配置閃存中。
當(dāng)卡插入插槽后,latticeec器件通過spi閃存自行實(shí)現(xiàn)配置(在此過程中,power manager將cpu置成復(fù)位狀態(tài))并且將啟動rom中的內(nèi)容送入ddr存儲器。與此同時,latticeecp fpga也通過自己的spi配置閃存實(shí)現(xiàn)自我配置。當(dāng)兩個fpga配置完成后,power manager發(fā)送信號結(jié)束對cpu的復(fù)位。
結(jié)語
與舊的方案相比,在采用相同的dsp cpu的情況下,新的結(jié)構(gòu)能使板的性能提高一倍以上。性能的改善首先得益于取消了舊設(shè)計中費(fèi)時的匯編代碼和難以維護(hù)的預(yù)處理功能,其次得益于使用了更快、更便宜的ddr存儲器。其結(jié)果是在提供了類似性能、保持了同樣的靈活性的前提下,設(shè)計成本大幅下降。
評論