本發(fā)明涉及自動化控制領(lǐng)域,更具體的說,涉及一種信息采集裝置及方法。
背景技術(shù):
隨著變電站自動化程度的不斷提高,來自變電站二次設(shè)備的信息,特別是時間同步信息,越來越成為事故分析和系統(tǒng)回復(fù)的重要依據(jù)。目前采集信息一般是在總線和接口標(biāo)準(zhǔn)PCIE接口間接擴(kuò)展多個網(wǎng)口芯片來采集數(shù)據(jù)包,并選擇具有打時間戳功能的網(wǎng)口芯片對報文打上接收時的時間戳,但是每個網(wǎng)口使用各自的晶振,由于不同的晶振的頻率是不一樣的,會造成多個網(wǎng)口采集報文時的時標(biāo)一致性降低。再次,現(xiàn)有技術(shù)中不能根據(jù)接入的時間串碼及時調(diào)整時間,會造成多個網(wǎng)口采集報文時的時間精度降低。因此,亟需一種能夠提高多個網(wǎng)口采集報文時的時標(biāo)一致性和時間精度的裝置。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種信息采集裝置及方法,以解決多個網(wǎng)口采集報文時的時標(biāo)一致性和時間精度低的問題。
為解決上述技術(shù)問題,本發(fā)明采用了如下技術(shù)方案:
一種信息采集裝置,所述裝置包括:
設(shè)置在FPGA硬件平臺上的信息采集模塊、解碼自走時守時模塊、打時間戳模塊和接口收發(fā)模塊;
所述信息采集模塊、所述解碼自走時守時模塊和所述接口收發(fā)模塊分別與所述打時間戳模塊連接;
所述信息采集模塊,用于通過FPGA并行同步采集網(wǎng)口報文,并發(fā)送給所述打時間戳模塊;
所述解碼自走時守時模塊,用于對時間串碼電平進(jìn)行解析得到時間信息、根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時、自走時處理,得到處理后的時間信息;所述時間信息包括秒脈沖信號、年月時分秒信息、閏秒信息、校驗(yàn)位信息和時間質(zhì)量位信息;所述處理后的時間信息走納秒級時鐘;
所述打時間戳模塊,用于根據(jù)所述處理后的時間信息給所述網(wǎng)口報文打時間戳,并將打好時間戳的報文發(fā)送給所述接口收發(fā)模塊;
所述接口收發(fā)模塊,用于將所述打好時間戳的報文發(fā)送給指定設(shè)備。
優(yōu)選地,所述采集網(wǎng)口報文的所述信息采集模塊,具體用于:
實(shí)時監(jiān)測網(wǎng)口MII總線,當(dāng)數(shù)據(jù)線接收有效時,確定所述網(wǎng)口報文中的SFD位置并采集所述網(wǎng)口報文。
優(yōu)選地,所述根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時的所述解碼自走時守時模塊,具體用于:
利用指定時鐘判斷兩個連續(xù)秒脈沖信號的時間間隔是否在指定時間內(nèi);
若在指定時間內(nèi),進(jìn)入對時狀態(tài),并分析指定數(shù)量的連續(xù)秒脈沖信號的時間間隔的平均值,并輸出處理后的秒脈沖信號;
若不在指定時間內(nèi),進(jìn)入守時狀態(tài),并輸出處理后的秒脈沖信號。
優(yōu)選地,所述進(jìn)行自走時處理的所述解碼自走時守時模塊,具體用于:
根據(jù)所述處理后的秒脈沖信號,采用納秒級的時鐘進(jìn)行走時。
優(yōu)選地,所述根據(jù)所述處理后時間信息給所述網(wǎng)口報文打時間戳的所述打時間戳模塊,具體用于:
鎖定確定SFD位置時的時間戳,并將所述時間戳和所述網(wǎng)口報文同時存儲。
一種信息采集方法,應(yīng)用于信息采集裝置,所述方法包括:
通過FPGA并行同步采集網(wǎng)口報文;
對時間串碼電平進(jìn)行解析得到時間信息、根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時、自走時處理,得到處理后的時間信息;所述時間信息包括秒脈沖信號、年月時分秒信息、閏秒信息、校驗(yàn)位信息和時間質(zhì)量位信息;所述處理后的時間信息走納秒級時鐘;
根據(jù)所述處理后的時間信息給所述網(wǎng)口報文打時間戳;
將所述打好時間戳的報文發(fā)送給指定設(shè)備。
優(yōu)選地,所述采集網(wǎng)口報文,具體包括:
實(shí)時監(jiān)測網(wǎng)口MII總線,當(dāng)數(shù)據(jù)線接收有效時,確定所述網(wǎng)口報文中的SFD位置并采集所述網(wǎng)口報文。
優(yōu)選地,所述根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時,具體包括:
利用指定時鐘判斷兩個連續(xù)秒脈沖信號的時間間隔是否在指定時間內(nèi);
若在指定時間內(nèi),進(jìn)入對時狀態(tài),并分析指定數(shù)量的連續(xù)秒脈沖信號的時間間隔的平均值,并輸出處理后的秒脈沖信號;
若不在指定時間內(nèi),進(jìn)入守時狀態(tài),并輸出處理后的秒脈沖信號。
優(yōu)選地,所述進(jìn)行自走時處理,具體包括:
根據(jù)所述處理后的秒脈沖信號,采用納秒級的時鐘進(jìn)行走時。
優(yōu)選地,所述根據(jù)所述處理后時間信息給所述網(wǎng)口報文打時間戳,具體包括:
鎖定確定SFD位置時的時間戳,并將所述時間戳和所述網(wǎng)口報文同時存儲。
相較于現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:
本發(fā)明提供了一種信息采集裝置及方法,本發(fā)明中的信息采集模塊、解碼自走時守時模塊、打時間戳模塊和接口收發(fā)模塊設(shè)置在FPGA硬件平臺上,由于均設(shè)置在FPGA硬件平臺上,而且FPGA具有并行接收數(shù)據(jù)的特點(diǎn),可以并行同步采集多個網(wǎng)口的報文,保證了各個網(wǎng)口采集報文時使用同一個工作時鐘。解決了每個網(wǎng)口使用各自的晶振,而帶來的多個網(wǎng)口采集報文時的時標(biāo)一致性低的問題。對時間串碼電平進(jìn)行解析得到時間信息、根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時、自走時處理,能夠解決不能根據(jù)接入的時間串碼及時調(diào)整時間而帶來的時間精度低的問題。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一提供的信息采集裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例二提供的信息采集裝置的中使用的方法流程圖;
圖3為本發(fā)明實(shí)施例三提供的信息采集方法的方法流程圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供了一種信息采集裝置,所述裝置包括:
設(shè)置在現(xiàn)場可編程門陣列FPGA硬件平臺上的信息采集模塊101、解碼自走時守時模塊102、打時間戳模塊103和接口收發(fā)模塊104;
所述信息采集模塊101、所述解碼自走時守時模塊102和所述接口收發(fā)模塊104分別與所述打時間戳模塊103連接;
所述信息采集模塊101,用于通過FPGA并行同步采集網(wǎng)口報文,并發(fā)送給所述打時間戳模塊103;
所述解碼自走時守時模塊102,用于對時間串碼電平進(jìn)行解析得到時間信息、根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時、自走時處理,得到處理后的時間信息;
其中,所述時間信息包括秒脈沖信號、年月時分秒信息、閏秒信息、校驗(yàn)位信息和時間質(zhì)量位信息;所述處理后的時間信息走納秒級時鐘。
需要說明的是,所述時間串碼為IRIG-B碼,IRIG-B碼是一幀的時間串碼,為脈寬編碼,每個碼元寬度為10ms,一個時幀周期包括100個碼元,每個碼元代表不同的含義,包含年、天數(shù)、時、分、秒、時間質(zhì)量等信息。規(guī)定二進(jìn)制“1”的高低脈寬比為5:5,二進(jìn)制“0”的高低脈寬比為2:8,P信息的高低脈寬比為8:2。碼元的“準(zhǔn)時”參考點(diǎn)是當(dāng)連續(xù)出現(xiàn)兩個P信息時,找到兩個連續(xù)P信息及找到時間信息的起始點(diǎn),所述起始點(diǎn)為當(dāng)前秒的零時刻。進(jìn)而再去解析得到時間信息。
所述打時間戳模塊103,用于根據(jù)所述處理后的時間信息給所述網(wǎng)口報文打時間戳,并將打好時間戳的報文發(fā)送給所述接口收發(fā)模塊104;
可選的,本發(fā)明的另一實(shí)施例中,所述根據(jù)所述處理后時間信息給所述網(wǎng)口報文打時間戳的所述打時間戳模塊,具體用于:
鎖定確定SFD位置時的時間戳,并將所述時間戳和所述網(wǎng)口報文同時存儲。
所述接口收發(fā)模塊104,用于將所述打好時間戳的報文發(fā)送給指定設(shè)備。
需要說明的是,所述指定設(shè)備為中央處理器CPU,接口收發(fā)模塊104通過PCIE總線接口,直接以寫內(nèi)存的方式發(fā)送給CPU。同樣的,所述接口收發(fā)模塊104也能夠接收CPU發(fā)送的數(shù)據(jù)。
具體工作過程為:信息采集模塊101采集網(wǎng)口報文后,打時間戳模塊103根據(jù)處理后的時間信息給所述網(wǎng)口報文打時間戳,并通過接口收發(fā)模塊104發(fā)送給指定設(shè)備。
本實(shí)施例中的FPGA硬件平臺還可以對CPU的運(yùn)行狀態(tài)進(jìn)行檢測,所述運(yùn)行狀態(tài)包括上電狀態(tài)、開門狗復(fù)位狀態(tài)、bios切換的功能,對系統(tǒng)的穩(wěn)定性和可靠性起到了關(guān)鍵性的作用。
本實(shí)施例中的信息采集模塊101、解碼自走時守時模塊102、打時間戳模塊103和接口收發(fā)模塊104設(shè)置在FPGA硬件平臺上,由于均設(shè)置在FPGA硬件平臺上,可以保證各個網(wǎng)口采用同一個工作時鐘。對時間串碼電平進(jìn)行解析得到時間信息、根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時、自走時處理,能夠解決不能根據(jù)接入的時間串碼及時調(diào)整時間的問題,并且處理后的時間信息走納秒級時鐘,能夠提高時間精度。因此本方案解決了采集信息時時標(biāo)一致性低的問題。
可選的,本發(fā)明的另一實(shí)施例中,所述采集網(wǎng)口報文的所述信息采集模塊,具體用于:
實(shí)時監(jiān)測網(wǎng)口介質(zhì)無關(guān)接口MII總線,當(dāng)數(shù)據(jù)線接收有效時,確定所述網(wǎng)口報文中的幀起始定界符SFD位置并采集所述網(wǎng)口報文。
需要說明的是,當(dāng)數(shù)據(jù)線接收有效時,當(dāng)檢測到接收數(shù)據(jù)RXD前后兩個采集的值為preamble和SFD時,所述SFD即為所需的位置。此時,從SFD位置開始,就接收并存儲當(dāng)前的網(wǎng)口報文。
本實(shí)施例中,通過確定SFD的位置,能夠確定報文的起始點(diǎn),為打時間戳做準(zhǔn)備。
可選的,本發(fā)明的另一實(shí)施例中,參照圖2。所述根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時的所述解碼自走時守時模塊,具體用于:
S201、利用指定時鐘判斷兩個連續(xù)秒脈沖信號的時間間隔是否在指定時間內(nèi);
需要說明的是,所述指定時鐘采用的是本地100MHz的時鐘。優(yōu)選的,所述指定時間為4μs。此處選擇4μs是從實(shí)際調(diào)試和所述的晶振波動考慮而選擇的一個值。
S202、若在指定時間內(nèi),進(jìn)入對時狀態(tài);
S204、分析指定數(shù)量的連續(xù)秒脈沖信號的時間間隔的平均值;
需要說明的是,此處分析指定數(shù)量的連續(xù)秒脈沖信號的時間間隔的平均值,是為了在守時狀態(tài)時使用。
S205、輸出處理后的秒脈沖信號;
S203、若不在指定時間內(nèi),進(jìn)入守時狀態(tài);
其中,所述守時狀態(tài)為以前累計的32個秒脈沖的時間間隔的平均值,所述時間間隔為32個秒脈沖信號中包含的時鐘個數(shù)乘以10ns。
需要說明的是,進(jìn)入守時狀態(tài)后,依舊需要輸出處理后的秒脈沖信號。同時,不管是進(jìn)入對時狀態(tài),還是進(jìn)入守時狀態(tài),都仍然需要繼續(xù)判斷兩個連續(xù)秒脈沖信號的時間間隔是否在指定時間內(nèi),若在指定時間內(nèi),再次進(jìn)入對時狀態(tài)。若不在指定時間內(nèi),則進(jìn)入守時狀態(tài)。
同時,針對秒脈沖信號,只選取時間間隔為大于999950μs并且小于1000050μs范圍內(nèi)的秒脈沖信號,當(dāng)秒脈沖信號不在此范圍內(nèi)時,濾掉不用。
本實(shí)施例中,通過采用對時狀態(tài)和守時狀態(tài),能夠提高時間精度。
可選的,本發(fā)明的另一實(shí)施例中,所述進(jìn)行自走時處理的所述解碼自走時守時模塊,具體用于:
根據(jù)所述處理后的秒脈沖信號,采用納秒級的時鐘進(jìn)行走時。
在使用一般的晶振時,都會存在50ppm的誤差,在不進(jìn)行時間馴服的時候,每零秒時刻同步上后,走到1秒的最后會相差50μs的時間差,利用這種時間打上時間戳就會存在50μs的時間差,會影響CPU的數(shù)據(jù)分析的精確度。因此,此時需要對走時進(jìn)行一定的處理。
本系統(tǒng)采用的是100MHz的時鐘,每兩個秒脈沖之間對應(yīng)的時鐘個數(shù)用
CLKCOUNT表示,根據(jù)公式計算得到T值,當(dāng)
CLKCOUNT大于108時,處理方法為每數(shù)夠T個時鐘時,少數(shù)一個時鐘;
CLKCOUNT小于108時,處理方法為每數(shù)夠T個時鐘時,多數(shù)一個時鐘。這樣一來,就能夠彌補(bǔ)晶振本身帶來的誤差。
本實(shí)施例中,通過采用納秒級的時鐘進(jìn)行走時,能夠提高時間精度。
可選的,本發(fā)明的另一實(shí)施例提供了一種信息采集方法,應(yīng)用于信息采集裝置,所述方法包括:
S301、采集網(wǎng)口報文;
S302、對時間串碼電平進(jìn)行解析得到時間信息、根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時、自走時處理,得到處理后的時間信息;
其中,所述時間信息包括秒脈沖信號、年月時分秒信息、閏秒信息、校驗(yàn)位信息和時間質(zhì)量位信息;所述處理后的時間信息走納秒級時鐘。
S303、根據(jù)所述處理后的時間信息給所述網(wǎng)口報文打時間戳;
所述根據(jù)所述處理后時間信息給所述網(wǎng)口報文打時間戳,具體包括:
鎖定確定SFD位置時的時間戳,并將所述時間戳和所述網(wǎng)口報文同時存儲。
S304、將所述打好時間戳的報文發(fā)送給指定設(shè)備。
本實(shí)施例中,本實(shí)施例中的信息采集模塊、解碼自走時守時模塊、打時間戳模塊和接口收發(fā)模塊設(shè)置在FPGA硬件平臺上,由于均設(shè)置在FPGA硬件平臺上,可以保證各個網(wǎng)口采用同一個工作時鐘。對時間串碼電平進(jìn)行解析得到時間信息、根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時、自走時處理,能夠解決不能根據(jù)接入的時間串碼及時調(diào)整時間的問題,并且處理后的時間信息走納秒級時鐘,能夠提高時間精度。因此本方案解決了采集信息時時標(biāo)一致性低的問題。
需要說明的是,本實(shí)施例中具體工作過程參照圖1對應(yīng)的實(shí)施例,在此不再贅述。
可選的,本發(fā)明的另一實(shí)施例中,所述采集網(wǎng)口報文,具體包括:
實(shí)時監(jiān)測網(wǎng)口MII總線,當(dāng)數(shù)據(jù)線接收有效時,確定所述網(wǎng)口報文中的SFD位置并采集所述網(wǎng)口報文。
本實(shí)施例中,通過確定SFD的位置,能夠確定報文的起始點(diǎn),為打時間戳做準(zhǔn)備。具體說明請參照上述實(shí)施例,在此不再贅述。
可選的,本發(fā)明的另一實(shí)施例中,所述根據(jù)所述時間信息中的秒脈沖信號進(jìn)行守時,具體包括:
利用指定時鐘判斷兩個連續(xù)秒脈沖信號的時間間隔是否在指定時間內(nèi);
若在指定時間內(nèi),進(jìn)入對時狀態(tài),并分析指定數(shù)量的連續(xù)秒脈沖信號的時間間隔的平均值,并輸出處理后的秒脈沖信號;
若不在指定時間內(nèi),進(jìn)入守時狀態(tài),并輸出處理后的秒脈沖信號。
本實(shí)施例中,通過采用對時狀態(tài)和守時狀態(tài),能夠提高時間精度。具體說明請參照上述實(shí)施例,在此不再贅述。
可選的,本發(fā)明的另一實(shí)施例中,所述進(jìn)行自走時處理,具體包括:
根據(jù)所述處理后的秒脈沖信號,采用納秒級的時鐘進(jìn)行走時。
本實(shí)施例中,通過采用納秒級的時鐘進(jìn)行走時,能夠提高時間精度。具體說明請參照上述實(shí)施例,在此不再贅述。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。