一種基于FPGA的振動(dòng)信號(hào)采集處理系統(tǒng)
4.2 數(shù)據(jù)流開(kāi)關(guān)
本文引用地址:http://m.butianyuan.cn/article/262772.htm采樣數(shù)據(jù)處理的實(shí)時(shí)性是FPGA設(shè)計(jì)中首先要考慮的問(wèn)題,振動(dòng)信號(hào)采集過(guò)程中常會(huì)由于輸入數(shù)據(jù)量過(guò)大,導(dǎo)致后續(xù)處理電路處于飽和狀態(tài)以致數(shù)據(jù)丟失。為解決上述問(wèn)題,FPGA通過(guò)開(kāi)關(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ù)處理過(guò)程,當(dāng)一次需要處理數(shù)據(jù)量較大的情況下,系統(tǒng)會(huì)產(chǎn)生較大的延遲并導(dǎo)致后續(xù)數(shù)據(jù)的丟失。為降低數(shù)據(jù)處理電路的負(fù)擔(dān),采用數(shù)據(jù)流開(kāi)關(guān)將振動(dòng)傳感器輸出數(shù)據(jù)分別存儲(chǔ)在不同的通道中通過(guò)數(shù)據(jù)流控制開(kāi)關(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)過(guò)AD控制命令和通道開(kāi)關(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ǔ)類型和讀寫(xiě)端口速率可以在FIFO生成時(shí)進(jìn)行設(shè)置,F(xiàn)IFO模塊生成時(shí)占用FPGA內(nèi)部的BLOCK RAM,即使存儲(chǔ)容量很小的FIFO也會(huì)占用整塊BLOCK RAM。FIFO端口包括輸入輸出端口、讀寫(xiě)使能、讀寫(xiě)時(shí)鐘及空滿標(biāo)志幾部分。其中,輸入輸出端口與數(shù)據(jù)總線連接用于數(shù)據(jù)傳輸;讀寫(xiě)使能由控制邏輯驅(qū)動(dòng)完成一次讀寫(xiě)操作;讀寫(xiě)時(shí)鐘信號(hào)完成讀域或者寫(xiě)域所有信號(hào)的同步;滿標(biāo)志表明由于該FIFO處于滿狀態(tài),寫(xiě)操作將被忽略,空標(biāo)志表明FIFO處于空狀態(tài),讀操作將不能獲得正確的數(shù)據(jù)。
FIFO控制邏輯進(jìn)行數(shù)據(jù)寫(xiě)入操作時(shí)首先判斷FIFO是否處于滿狀態(tài),如果FIFO處于滿狀態(tài),先從FIFO中讀出一條數(shù)據(jù),然后將新數(shù)據(jù)寫(xiě)入FIFO中。如果FIFO不處于滿狀態(tài)則直接進(jìn)行寫(xiě)操作。FIFO讀操作的時(shí)機(jī)由DSP控制,DSP內(nèi)的程序首先讀取空狀態(tài)寄存器判斷FIFO中是否存有數(shù)據(jù),如果寄存器顯示FIFO為空則取消讀操作,否則就從FIFO中讀出需要的數(shù)據(jù)。IP核對(duì)使能信號(hào)的訪問(wèn)時(shí)序有著嚴(yán)格地要求,使能信號(hào)必須于讀寫(xiě)時(shí)鐘完全同步,而且控制邏輯將使能信號(hào)的長(zhǎng)度控制在一個(gè)讀寫(xiě)時(shí)鐘周期內(nèi)。
4.4 數(shù)據(jù)的存儲(chǔ)
振動(dòng)采樣數(shù)據(jù)的數(shù)據(jù)量非常龐大,一旦出現(xiàn)錯(cuò)位將無(wú)法完整復(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)開(kāi)關(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ù)的訪問(wèn)
DSP進(jìn)行數(shù)據(jù)還原時(shí),訪問(wèn)程序依據(jù)采集順序先從本周期起始通道開(kāi)始依次讀出采樣數(shù)據(jù),當(dāng)訪問(wèn)程序讀取到第一個(gè)時(shí)標(biāo)數(shù)據(jù)后本周期數(shù)據(jù)讀取完畢,訪問(wèn)程序繼續(xù)讀取后續(xù)通道的時(shí)標(biāo)信息,直至獲得所有通道的時(shí)標(biāo)數(shù)據(jù)后表明本次數(shù)據(jù)訪問(wèn)過(guò)程結(jié)束,如果訪問(wèn)程序連續(xù)獲得了所有通道的時(shí)標(biāo)信息表明采樣數(shù)據(jù)為完整有效的數(shù)據(jù),否則說(shuō)明在采樣過(guò)程中存在數(shù)據(jù)丟失的現(xiàn)象,數(shù)據(jù)不可信不能進(jìn)行后續(xù)處理,如果出現(xiàn)數(shù)據(jù)丟失現(xiàn)象則訪問(wèn)程序?qū)⑺型ǖ罆r(shí)標(biāo)數(shù)據(jù)讀出后本次訪問(wèn)結(jié)束。
5 結(jié)束語(yǔ)
文中設(shè)計(jì)了一種基于FPGA的振動(dòng)信號(hào)采集處理系統(tǒng),通過(guò)數(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)論