一種基于FPGA的振動(dòng)信號(hào)采集處理系統(tǒng)
4.2 數(shù)據(jù)流開關(guān)
本文引用地址:http://m.butianyuan.cn/article/262772.htm采樣數(shù)據(jù)處理的實(shí)時(shí)性是FPGA設(shè)計(jì)中首先要考慮的問題,振動(dòng)信號(hào)采集過程中常會(huì)由于輸入數(shù)據(jù)量過大,導(dǎo)致后續(xù)處理電路處于飽和狀態(tài)以致數(shù)據(jù)丟失。為解決上述問題,FPGA通過開關(guān)切換的方式將數(shù)據(jù)分別送入不同的線程進(jìn)行處理。振動(dòng)傳感器輸出數(shù)據(jù)格式如下:(A1B1C 1D1E1F1),(A2B2C2D2E2F2),……(AN BN CN DN EN FN),A、B、C、D、E、F分別代表不同方向的振動(dòng)量值。采用單通道的數(shù)據(jù)處理方式時(shí),程序首先需完成數(shù)據(jù)的區(qū)分工作,然后完成6次數(shù)據(jù)處理過程,當(dāng)一次需要處理數(shù)據(jù)量較大的情況下,系統(tǒng)會(huì)產(chǎn)生較大的延遲并導(dǎo)致后續(xù)數(shù)據(jù)的丟失。為降低數(shù)據(jù)處理電路的負(fù)擔(dān),采用數(shù)據(jù)流開關(guān)將振動(dòng)傳感器輸出數(shù)據(jù)分別存儲(chǔ)在不同的通道中通過數(shù)據(jù)流控制開關(guān)后數(shù)據(jù)格式如下:
通道1:A1、A2……AN;
通道2:B1、B2……BN;
通道3:C1、C2……CN;
通道4:D1、D2……DN;
通道5:E1、E2……EN;
通道6:F1、F2……FN。
僅需處理N個(gè)數(shù)據(jù)就能滿足系統(tǒng)要求,系統(tǒng)對(duì)于處理能力的要求相應(yīng)降低。數(shù)據(jù)流控制仿真結(jié)果如圖3所示。圖中AD采樣數(shù)據(jù)為連續(xù)的單通道輸入數(shù)據(jù),經(jīng)過AD控制命令和通道開關(guān)的控制后被分別發(fā)送到6個(gè)數(shù)據(jù)處理通道進(jìn)行后續(xù)處理。
4.3 FIFO的控制
振動(dòng)數(shù)據(jù)存儲(chǔ)在由XILINX提供的FIFO軟核中。FIFO核的存儲(chǔ)深度、數(shù)據(jù)寬度、標(biāo)志位設(shè)置、存儲(chǔ)類型和讀寫端口速率可以在FIFO生成時(shí)進(jìn)行設(shè)置,F(xiàn)IFO模塊生成時(shí)占用FPGA內(nèi)部的BLOCK RAM,即使存儲(chǔ)容量很小的FIFO也會(huì)占用整塊BLOCK RAM。FIFO端口包括輸入輸出端口、讀寫使能、讀寫時(shí)鐘及空滿標(biāo)志幾部分。其中,輸入輸出端口與數(shù)據(jù)總線連接用于數(shù)據(jù)傳輸;讀寫使能由控制邏輯驅(qū)動(dòng)完成一次讀寫操作;讀寫時(shí)鐘信號(hào)完成讀域或者寫域所有信號(hào)的同步;滿標(biāo)志表明由于該FIFO處于滿狀態(tài),寫操作將被忽略,空標(biāo)志表明FIFO處于空狀態(tài),讀操作將不能獲得正確的數(shù)據(jù)。
FIFO控制邏輯進(jìn)行數(shù)據(jù)寫入操作時(shí)首先判斷FIFO是否處于滿狀態(tài),如果FIFO處于滿狀態(tài),先從FIFO中讀出一條數(shù)據(jù),然后將新數(shù)據(jù)寫入FIFO中。如果FIFO不處于滿狀態(tài)則直接進(jìn)行寫操作。FIFO讀操作的時(shí)機(jī)由DSP控制,DSP內(nèi)的程序首先讀取空狀態(tài)寄存器判斷FIFO中是否存有數(shù)據(jù),如果寄存器顯示FIFO為空則取消讀操作,否則就從FIFO中讀出需要的數(shù)據(jù)。IP核對(duì)使能信號(hào)的訪問時(shí)序有著嚴(yán)格地要求,使能信號(hào)必須于讀寫時(shí)鐘完全同步,而且控制邏輯將使能信號(hào)的長(zhǎng)度控制在一個(gè)讀寫時(shí)鐘周期內(nèi)。
4.4 數(shù)據(jù)的存儲(chǔ)
振動(dòng)采樣數(shù)據(jù)的數(shù)據(jù)量非常龐大,一旦出現(xiàn)錯(cuò)位將無法完整復(fù)現(xiàn)信號(hào)的原始狀態(tài),因此在對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)的同時(shí),對(duì)數(shù)據(jù)進(jìn)行時(shí)間標(biāo)記也是十分重要的。時(shí)間標(biāo)記在一個(gè)完整的記錄周期結(jié)束時(shí)進(jìn)行,調(diào)度模塊控制時(shí)標(biāo)開關(guān)在所有的FIFO中存入時(shí)標(biāo)信息,F(xiàn)IFO中存儲(chǔ)在時(shí)標(biāo)以前的數(shù)據(jù)均為本周期的數(shù)據(jù),存儲(chǔ)在時(shí)標(biāo)信息以后的數(shù)據(jù)均為下一周期的數(shù)據(jù),時(shí)標(biāo)及數(shù)據(jù)記錄格式如表1所示。表中D15,D14位是保留位用于功能擴(kuò)展,D13,D12是表明存儲(chǔ)數(shù)據(jù)是時(shí)標(biāo)信號(hào)(01、02),或者采樣數(shù)據(jù)(00)。
4.5 數(shù)據(jù)的訪問
DSP進(jìn)行數(shù)據(jù)還原時(shí),訪問程序依據(jù)采集順序先從本周期起始通道開始依次讀出采樣數(shù)據(jù),當(dāng)訪問程序讀取到第一個(gè)時(shí)標(biāo)數(shù)據(jù)后本周期數(shù)據(jù)讀取完畢,訪問程序繼續(xù)讀取后續(xù)通道的時(shí)標(biāo)信息,直至獲得所有通道的時(shí)標(biāo)數(shù)據(jù)后表明本次數(shù)據(jù)訪問過程結(jié)束,如果訪問程序連續(xù)獲得了所有通道的時(shí)標(biāo)信息表明采樣數(shù)據(jù)為完整有效的數(shù)據(jù),否則說明在采樣過程中存在數(shù)據(jù)丟失的現(xiàn)象,數(shù)據(jù)不可信不能進(jìn)行后續(xù)處理,如果出現(xiàn)數(shù)據(jù)丟失現(xiàn)象則訪問程序?qū)⑺型ǖ罆r(shí)標(biāo)數(shù)據(jù)讀出后本次訪問結(jié)束。
5 結(jié)束語
文中設(shè)計(jì)了一種基于FPGA的振動(dòng)信號(hào)采集處理系統(tǒng),通過數(shù)據(jù)流管理等手段實(shí)現(xiàn)振動(dòng)信號(hào)的實(shí)時(shí)采集處理,本設(shè)計(jì)在真實(shí)環(huán)境中進(jìn)行了驗(yàn)證,系統(tǒng)運(yùn)行穩(wěn)定可靠,各項(xiàng)性能指標(biāo)滿足技術(shù)要求。
模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)
fpga相關(guān)文章:fpga是什么
低通濾波器相關(guān)文章:低通濾波器原理
電荷放大器相關(guān)文章:電荷放大器原理 離子色譜儀相關(guān)文章:離子色譜儀原理
評(píng)論