基于DMA的并行數字信號高速采集系統
上述方法中,‘5’時(shí)刻至下一周期‘0’時(shí)刻只進(jìn)行了一次寫(xiě)入,實(shí)際上這段時(shí)間可以容納6個(gè)寫(xiě)入周期,時(shí)間并沒(méi)有被充分地利用。對其進(jìn)一步擴展,將系統時(shí)鐘周期充分地利用,可以同時(shí)采集更多通路的信號,將第六到第十個(gè)系統時(shí)鐘周期也用于信號緩存,則可以同時(shí)緩存16×9=144路數字信號。這種情況下,系統的數據緩存速率可達720 Mb/s。
考慮采用SRAM的極限訪(fǎng)問(wèn)速率的情況,可以選用100 MHz的系統時(shí)鐘,這時(shí)系統的數據緩存速率可達1 520 Mb/s。
選用的SRAM的數據寫(xiě)入極限速率為1 600 Mb/s,此種方法的數據緩存速率達SRAM數據緩存極限的95%,實(shí)現了高速的數據緩存。
3 緩存數據重組織
按照上述數據緩存的方法,同一通道的數據不是連續地存儲在SRAM中。SRAM中的數據存儲順序如圖4所示。圖中第一列表示SRAM地址,offset為數據存儲的初始地址偏移;第一行表示數據位,選用的SRAM中一個(gè)地址對應2字節數據,有16個(gè)數據位;剩余每個(gè)方格表示一個(gè)數據存儲單元,方格里的數字表示該單元用于存儲第幾通道的數據。本文引用地址:http://dyxdggzs.com/article/188156.htm
定位一個(gè)通道的一位數據需要知道其對應的SRAM地址和位號。假設通道m的第i位數據由[addr(m,i),bit(m,i)]定位。分析SRAM中的數據存儲順序可知:
addr(m,i)=offset+1+[(m-1)/16]+(i-1)×4;
bit(m,i)=(m-1)%16。
其中m=1,2,3,…,64;i=1,2,3,4,…。
FPGA系統向ARM系統發(fā)送數據時(shí),將同一通路的數據抽取出來(lái),以一個(gè)字節為單位連續發(fā)送,所以需要對存儲的數據進(jìn)行重組織。在FPGA系統中,使用6 bit變量dch[5:0]表示通道號,其中000000(b)表示通道1(m=1),000001(b)表示通道2(m=2),依此類(lèi)推。數據位計數i使用N位變量bitcnt[N-1:0]來(lái)表示,其中N由存儲的總數據量決定,與通道號類(lèi)似,全零表示i=1情況,1(b)表示i=2情況,依此類(lèi)推。因而有:
[(m-1)/16]=dch[5:4];
(i-1)×4={bitcnt[N-1:0],00(b)};
(m-1)%16=dch[3:0]。
數據由FPGA中的變量定位表示為:
addr=offset+1+{bitcnt[N-1:0],dch[5:4]};
bit=dch[3:0]。
FPGA系統根據以上公式將各個(gè)通道數據逐位地從SRAM中讀出,并移入移位寄存器中,從而把同一通路的數據以字節為單位連續地組織起來(lái)。
4 采集實(shí)驗結果
為了進(jìn)行測試,基于FPGA設計了專(zhuān)用信號發(fā)生器,產(chǎn)生62路數字信號用于測試。62路數字信號中包括4.07 kHz~520.8 kHz(50 MHz的96分頻)的TTL信號及恒高、恒低電平信號。
由于數字信號通道數較多,這里以其中不包含恒高和恒低的9~12通道來(lái)說(shuō)明采集精度,采集結果如表1。
依此可知,各通道采集結果與輸入信號對應,說(shuō)明個(gè)通道采集結果正確,本采集系統可靠。
以某型雷達做為被測對象,系統進(jìn)行了實(shí)際工作測試。采集性能如表2所示。
本文介紹基于嵌入式技術(shù)的并行數字信號采集系統的設計,系統采用DMA技術(shù)實(shí)現了62路數字信號同步采集,用于某型雷達預留測試接口信號的采集,整體采集速率達310 Ms/s。利用本設計中提出的DMA方法,系統可以進(jìn)一步擴展,從而實(shí)現128路數字信號同步采集,并使整體采集速率達1 520 Ms/s,此時(shí)SRAM的寫(xiě)入速度已成為主要的限制。
評論