實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)采集,具體地,涉及一種實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)及方法。
【背景技術(shù)】
[0002]數(shù)據(jù)采集是使用計(jì)算機(jī)測(cè)量電壓、電流、溫度、壓力或聲音等電子、物理現(xiàn)象的過(guò)程?;赑C的DAQ (數(shù)據(jù)采集,Data Acquisit1n)系統(tǒng)利用行業(yè)標(biāo)準(zhǔn)計(jì)算機(jī)的處理、生產(chǎn)、顯示和連通能力,提供更強(qiáng)大、靈活且成本效益的測(cè)量解決方案。不論是單機(jī)數(shù)據(jù)采集(采集卡+局部總線)還是多點(diǎn)分布式數(shù)據(jù)采集裝置(上位機(jī)+下位機(jī)+現(xiàn)場(chǎng)總線),一般均包括傳感器、DAQ設(shè)備(信號(hào)調(diào)理、數(shù)模轉(zhuǎn)換)、通過(guò)標(biāo)準(zhǔn)計(jì)算機(jī)總線(或網(wǎng)絡(luò))連接至計(jì)算機(jī)?,F(xiàn)有技術(shù)中的DAQ系統(tǒng)組成如圖1所示。
[0003]現(xiàn)有基于PC的數(shù)據(jù)采集系統(tǒng),采用多線程處理技術(shù),為防止數(shù)據(jù)傳輸延時(shí)、線程調(diào)度處理不及時(shí)等原因而引起的數(shù)據(jù)丟失,通常DAQ系統(tǒng)均基于多級(jí)緩存機(jī)制,由于PC機(jī)是分時(shí)多任務(wù)系統(tǒng),中斷和定時(shí)精度不可能達(dá)到更高。采用DMA方式降低了 CPU的占用率提升了傳輸帶寬,仍不能從根本上滿足實(shí)時(shí)系統(tǒng)對(duì)時(shí)間的嚴(yán)格要求,而且在強(qiáng)實(shí)時(shí)性應(yīng)用場(chǎng)景不允許DMA(直接內(nèi)存訪問(wèn),Direct Memory Access)長(zhǎng)期占用總線,因此單純DMA技術(shù)也存在一定的弊端。采用RT0S(實(shí)時(shí)操作系統(tǒng),RealTime Operating System)任務(wù)調(diào)度機(jī)制可以提高實(shí)時(shí)性,但缺點(diǎn)是一方面增加系統(tǒng)移植成本,另一方面從根本上受限基于“指令串行”先天缺陷,實(shí)時(shí)性不容易符合現(xiàn)代高速控制系統(tǒng)要求。如圖所示,1代表T0時(shí)刻DAQ設(shè)備緩存數(shù)據(jù)已準(zhǔn)備好,但數(shù)據(jù)到達(dá)計(jì)算機(jī)緩存的時(shí)刻Tx時(shí)緩存數(shù)據(jù)如2所示;而最終到達(dá)線程調(diào)度時(shí)刻Ty,進(jìn)入線程的緩存內(nèi)容為4,而3成為下一周期T0時(shí)刻的緩存,如此往復(fù)執(zhí)行。即Ty時(shí)刻處理的數(shù)據(jù)是T0時(shí)刻的數(shù)據(jù),而Ty的精度在基于緩存的機(jī)制下無(wú)法得到更加精確的保證,導(dǎo)致系統(tǒng)實(shí)時(shí)性無(wú)法保證。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)及方法。
[0005]根據(jù)本發(fā)明的一個(gè)方面提供的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),包括傳感器、DAQ設(shè)備和計(jì)算機(jī);
[0006]其中,所述傳感器、所述DAQ設(shè)備和所述計(jì)算機(jī)依次相連;所述DAQ設(shè)備包括可編程邏輯器件和ADC模數(shù)轉(zhuǎn)換器;
[0007]所述傳感器用于采集模擬量數(shù)據(jù),所述ADC模數(shù)轉(zhuǎn)換器用于將所述模擬量數(shù)據(jù)轉(zhuǎn)換為數(shù)字量數(shù)據(jù);所述可編程邏輯器件用于將數(shù)字量數(shù)據(jù)濾波生成濾波數(shù)據(jù)并傳送至計(jì)算機(jī)的緩存中。
[0008]優(yōu)選地,所述可編程邏輯器件用于實(shí)現(xiàn)周期性數(shù)據(jù)刷新有限狀態(tài)機(jī)FSM ;
[0009]所述周期性數(shù)據(jù)刷新有限狀態(tài)機(jī)FSM的周期固定為T(mén),其精度不會(huì)受操作系統(tǒng)調(diào)度延時(shí)、程序指令中斷等延時(shí)等因素的限制,因而可達(dá)到微妙甚至納秒級(jí)精度的數(shù)量級(jí)。
[0010]優(yōu)選地,所述可編程邏輯器件采用可編程邏輯器件CPLD或現(xiàn)場(chǎng)可編程邏輯器件FPGA ο
[0011]根據(jù)本發(fā)明的另一個(gè)方面提供的實(shí)時(shí)數(shù)據(jù)采集方法,采用所述的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),包括如下步驟:
[0012]步驟1:可編程邏輯器件啟動(dòng)ADC模數(shù)轉(zhuǎn)換器;
[0013]步驟2:可編程邏輯器件對(duì)ADC模數(shù)轉(zhuǎn)換器生成的數(shù)字量數(shù)據(jù)進(jìn)行數(shù)字量數(shù)據(jù)濾波生成濾波數(shù)據(jù);
[0014]步驟3:將濾波數(shù)據(jù)暫存到可編程邏輯器件的FIFO緩存中;
[0015]步驟4:將所述濾波數(shù)據(jù)傳送到計(jì)算機(jī)的緩存中;
[0016]步驟5:計(jì)算機(jī)執(zhí)行所述濾波數(shù)據(jù)實(shí)時(shí)采集處理任務(wù)。
[0017]優(yōu)選地,當(dāng)濾波數(shù)據(jù)暫存到可編程邏輯器件的FIFO緩存中時(shí),同時(shí)存儲(chǔ)一個(gè)同步的時(shí)間戳標(biāo)記。
[0018]優(yōu)選地,在步驟4中,當(dāng)將所述濾波數(shù)據(jù)傳送到計(jì)算機(jī)的緩存時(shí),所述計(jì)算機(jī)數(shù)據(jù)采集線程通過(guò)ΡΙ0方式實(shí)時(shí)查詢當(dāng)前DAQ設(shè)備的時(shí)間戳與計(jì)算機(jī)的緩存時(shí)間戳,若當(dāng)前DAQ設(shè)備的時(shí)間戳與計(jì)算機(jī)的緩存時(shí)間戳超出設(shè)定的實(shí)時(shí)性閾值,則繼續(xù)將所述濾波數(shù)據(jù)傳送到計(jì)算機(jī)的緩存中,否則進(jìn)步步驟5。
[0019]優(yōu)選地,在步驟4之前還包括如下步驟:
[0020]-循環(huán)重復(fù)執(zhí)行步驟1至步驟3,每次循環(huán)執(zhí)行步驟1至步驟3后,遞增一個(gè)時(shí)間變化量Atl。
[0021 ] 優(yōu)選地,在步驟2中,通過(guò)DMA方式將濾波數(shù)據(jù)傳送到計(jì)算機(jī)的緩存中。
[0022]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
[0023]1、本發(fā)明采用通用的微處理器和可編程邏輯器件即可實(shí)現(xiàn),與現(xiàn)有數(shù)據(jù)采集裝置結(jié)構(gòu)兼容,將可編程并行計(jì)算應(yīng)用于數(shù)據(jù)采集實(shí)現(xiàn),克服CPU指令串行和操作系統(tǒng)調(diào)度導(dǎo)致的非實(shí)時(shí)因素,以極低的硬件成本實(shí)現(xiàn)較高的性能;
[0024]2、本發(fā)明克服了傳統(tǒng)的數(shù)據(jù)采集技術(shù)因緩存延時(shí)、線程調(diào)度實(shí)時(shí)精度不高導(dǎo)致的系統(tǒng)實(shí)時(shí)性問(wèn)題,將實(shí)時(shí)精度提高一個(gè)數(shù)量級(jí)(微秒甚至納秒);
[0025]3、本發(fā)明原理可擴(kuò)展用于其他計(jì)算機(jī)數(shù)據(jù)處理任務(wù),尤其適用于多通道并行高速數(shù)據(jù)采集系統(tǒng)。
【附圖說(shuō)明】
[0026]通過(guò)閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0027]圖1為現(xiàn)有技術(shù)中DAQ系統(tǒng)的結(jié)構(gòu)示意圖;
[0028]圖2為現(xiàn)有技術(shù)中DAQ系統(tǒng)的多級(jí)緩存機(jī)制示意圖;
[0029]圖3為現(xiàn)有技術(shù)中DAQ系統(tǒng)的多級(jí)緩存機(jī)制的時(shí)間示意圖;
[0030]圖4為本發(fā)明的結(jié)構(gòu)示意圖;
[0031]圖5為本發(fā)明中的實(shí)時(shí)數(shù)據(jù)原理示意圖。
[0032]圖中:
[0033]10為時(shí)間軸;
[0034]11為任務(wù)調(diào)度時(shí)刻;
[0035]12為精細(xì)間隔時(shí)間;
[0036]13為數(shù)據(jù)采樣值緩存陣列;
[0037]14、15、16、17均為非實(shí)時(shí)的任務(wù)調(diào)度時(shí)刻間隔;
[0038]18為時(shí)間間隔;
[0039]100為有限狀態(tài)機(jī)FSM。
【具體實(shí)施方式】
[0040]下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。
[0041]隨著半導(dǎo)體工藝水平提高,可編程邏輯技術(shù)(CPLD、FPGA)以其并行執(zhí)行、邏輯可定制、實(shí)現(xiàn)成本低、硬件強(qiáng)實(shí)時(shí)等技術(shù)優(yōu)勢(shì),在計(jì)算機(jī)領(lǐng)域得到大規(guī)模應(yīng)用。為了實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明提供的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),包括傳感器、DAQ設(shè)備和計(jì)算機(jī);其中,所述傳感器、所述DAQ設(shè)備和所述計(jì)算機(jī)依次相連;所述DAQ設(shè)備包括可編程邏輯器件和ADC(模數(shù)轉(zhuǎn)換,Analog Digitalize Converter)模數(shù)轉(zhuǎn)換器;所述傳感器用于采集模擬量數(shù)據(jù),所述ADC模數(shù)轉(zhuǎn)換器用于將所述模擬量數(shù)據(jù)轉(zhuǎn)換為數(shù)字量數(shù)據(jù);所述可編程邏輯器件用于將數(shù)字量數(shù)據(jù)濾波生成濾波數(shù)據(jù)并傳送至計(jì)算機(jī)的緩存中。
[0042]所述可編程邏輯器件用于實(shí)現(xiàn)周期性數(shù)據(jù)刷新有限狀態(tài)機(jī)FSM ;所述周期性數(shù)據(jù)刷新有限狀態(tài)機(jī)FSM(有限狀態(tài)機(jī),F(xiàn)inite State Machine)的周期固定為T(mén),精度至少可達(dá)到微秒