基于DSP與FPGA的光柵地震檢波器的信號處理
其次是定義結構體,包括定義內部緩沖地址信號,并定義了一個(gè)容量為16字的Mem(存儲器類(lèi)型)型變量。
最后是并發(fā)進(jìn)程的定義,包括寫(xiě)進(jìn)程和讀進(jìn)程的定義,以時(shí)鐘的脈沖信號作為敏感信號來(lái)觸發(fā)進(jìn)程的啟動(dòng),每一個(gè)時(shí)鐘周期完成一次對RAM的讀寫(xiě),其中時(shí)鐘頻率由FPGA根據AD的采樣速度和DSP的處理速度來(lái)設定,要保證當采集信號寫(xiě)入尾地址的時(shí)刻,至少要保證首地址已經(jīng)被DSP所讀取。圖3為雙口RAM程序流程圖。本文引用地址:http://dyxdggzs.com/article/152232.htm
2.3 雙口RAM的仿真結果
圖4為該進(jìn)程的仿真時(shí)序圖,由圖可見(jiàn)第一個(gè)時(shí)鐘的上升沿數據輸入端口data_in的值為4,這時(shí)寫(xiě)選通端口write_address選通地址1,然后對應著(zhù)地址1的存儲器模塊ram_block1的內的值在此刻刷新為4,這說(shuō)明寫(xiě)進(jìn)程正確。同時(shí)應注意到讀地址選通信號read_address的值被傳遞到讀地址寄存器read_address_reg中,read_address_reg中的值被刷新為1。當第一個(gè)時(shí)鐘的下降沿到來(lái)時(shí),信號輸出端口data_out根據讀地址寄存器read_address_reg中的地址值1選通ram_block1,此時(shí)data_out的值刷新為4,這說(shuō)明讀進(jìn)程也正確。
3 DSP的軟件細分
采用大數可逆計數與小數細分計數的軟件細分技術(shù)。其中大數計數是對莫爾條紋整周期數進(jìn)行可逆的加減計數,這部分功能有采集模塊中的FPGA來(lái)完成,小數計數是對莫爾條紋不到一個(gè)周期信號細分結果進(jìn)行計數,其功能由DSP來(lái)完成。運算的結果為大數計數結果乘以光柵柵距與小數計數結果乘以細分當量之和,其中細分當量為光柵柵距除以細分倍數。該模塊的硬件原理圖如圖5所示。
通過(guò)DSP的地址選通線(xiàn)依次選通讀取FPGA中三個(gè)數據緩存區中的數據,緩存區分別存放兩路模擬信號的數字量與加減計數器的累加計數值,然后利用公式R=N*w+K*L求出任意一點(diǎn)諧振子的幅值并輸出。式中N為整周期的累加計數值,W為光柵柵距,K為細分計數,L=W/M,M為細分倍數。該細分模塊主要是完成對細分計數K值、和幅值R值的求取,并完成對幅值的數字量轉換并輸出。
其中細分方法也就是對K值的求取采用了八卦限幅值分割法,根據上述方法設計了細分倍數可變的細分算法,利用DSP C語(yǔ)言的專(zhuān)用庫函數實(shí)現了純計算的算法。細分算法流程如圖6所示。
評論