基于fpga的開(kāi)入量事件精確測(cè)量的系統(tǒng)及其方法
【專利摘要】本發(fā)明公開(kāi)了一種基于FPGA的開(kāi)入量事件精確測(cè)量系統(tǒng)及其方法,包括CPU和FPGA芯片,所述FPGA芯片內(nèi)集成有整形電路、邊沿檢測(cè)器、時(shí)間模塊、定時(shí)器、中斷發(fā)生器以及FIFO緩沖區(qū);邊沿檢測(cè)器檢測(cè)當(dāng)前邊沿狀態(tài),并記錄當(dāng)前事件時(shí)標(biāo),定時(shí)器開(kāi)始計(jì)時(shí);在一個(gè)計(jì)時(shí)周期內(nèi),如果邊沿狀態(tài)發(fā)生改變,定時(shí)器重新計(jì)時(shí),并重新記錄邊沿狀態(tài)和事件時(shí)標(biāo);否則,關(guān)閉時(shí)間計(jì)數(shù)器并將所述邊沿狀態(tài)、事件時(shí)標(biāo)送入FIFO緩沖區(qū),同時(shí)通過(guò)中斷發(fā)生器將硬件中斷信號(hào)發(fā)送給CPU;CPU響應(yīng)硬件中斷信號(hào),獲取FIFO緩沖區(qū)的數(shù)據(jù)內(nèi)容,輸出開(kāi)入量的類型和事件時(shí)標(biāo)。本發(fā)明能夠在保證開(kāi)入量事件測(cè)量精度的同時(shí),顯著減少了CPU的占用率。
【專利說(shuō)明】基于FPGA的開(kāi)入量事件精確測(cè)量的系統(tǒng)及其方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于FPGA的開(kāi)入量事件精確測(cè)量系統(tǒng),還涉及一種基于FPGA的開(kāi)入量事件精確測(cè)量的方法,屬于電力系統(tǒng)測(cè)控【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]現(xiàn)有開(kāi)入量事件的測(cè)量方法,采用CPU軟處理的方式,具體為:CPU通過(guò)定時(shí)器設(shè)定一個(gè)固定時(shí)間查詢輸入端口的狀態(tài),如果當(dāng)前狀態(tài)值與上一次狀態(tài)值不同,則記錄時(shí)間標(biāo)記,并在接下來(lái)的多個(gè)定時(shí)中斷中(次數(shù)決定去抖動(dòng)時(shí)間),再次判斷該值是否改變,如果沒(méi)有改變,則最終記錄這個(gè)開(kāi)入量事件。這樣的設(shè)計(jì)方法,時(shí)間精度由定時(shí)器時(shí)間來(lái)決定,如果定時(shí)器時(shí)間為lOOus,則記錄精度只有l(wèi)OOus。減少定時(shí)器時(shí)間可提高記錄精度,但也導(dǎo)致CPU占用率的提高,時(shí)間精度與CPU占用率是相互矛盾的因素,顧此失彼。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中的不足,提供一種基于FPGA的開(kāi)入量事件精確測(cè)量的系統(tǒng),解決現(xiàn)有技術(shù)中因提高開(kāi)入量事件測(cè)量精度導(dǎo)致CPU占用率較高的技術(shù)問(wèn)題。
[0004]本發(fā)明的目的是這樣實(shí)現(xiàn)的:基于FPGA的開(kāi)入量事件精確測(cè)量系統(tǒng),其特征在于,包括CPU和FPGA芯片,所述FPGA芯片內(nèi)集成有整形電路、邊沿檢測(cè)器、時(shí)間模塊、定時(shí)器、中斷發(fā)生器以及FIFO緩沖區(qū);所述時(shí)間模塊包括有事件記錄器和由FPGA芯片的內(nèi)部時(shí)鐘控制的時(shí)間計(jì)數(shù)器;所述邊沿檢測(cè)器、時(shí)間模塊、定時(shí)器分別配置有各自的配置寄存器,CPU通過(guò)各所述配置寄存器配置參數(shù);
所述整形電路將開(kāi)入量信號(hào)整形、濾波后輸出至邊沿檢測(cè)器;
邊沿檢測(cè)器檢測(cè)當(dāng)前信號(hào)的邊沿狀態(tài),并分別發(fā)送觸發(fā)信號(hào)給時(shí)間模塊和定時(shí)器;時(shí)間模塊的事件記錄器記錄邊沿狀態(tài),并根據(jù)時(shí)間計(jì)數(shù)器記錄當(dāng)前事件時(shí)標(biāo);定時(shí)器用于周期計(jì)時(shí),計(jì)時(shí)周期結(jié)束,若邊沿狀態(tài)未發(fā)生變化,發(fā)送指令給FIFO緩沖區(qū);
FIFO緩沖區(qū)從事件記錄器中調(diào)取并存儲(chǔ)邊沿狀態(tài)和事件時(shí)標(biāo)信息,同時(shí)通知中斷發(fā)生器向CPU發(fā)送中斷請(qǐng)求;
CPU響應(yīng)中斷請(qǐng)求,通過(guò)總線邏輯從FIFO緩沖區(qū)中獲取數(shù)據(jù)內(nèi)容,輸出開(kāi)入量的類型和事件時(shí)標(biāo)。
[0005]所述時(shí)間計(jì)數(shù)器包括進(jìn)行微秒計(jì)數(shù)的10000000進(jìn)制計(jì)數(shù)器、分別進(jìn)行秒、分計(jì)數(shù)的60進(jìn)制計(jì)數(shù)器、進(jìn)行時(shí)計(jì)數(shù)的24進(jìn)制計(jì)數(shù)器、進(jìn)行天計(jì)數(shù)的365或366進(jìn)制的計(jì)數(shù)器和進(jìn)行年計(jì)數(shù)的100進(jìn)制計(jì)數(shù)器。時(shí)間計(jì)數(shù)器可自動(dòng)在內(nèi)部時(shí)鐘控制下計(jì)數(shù),具備10000000進(jìn)制計(jì)數(shù)器,最高可精確到微秒。
[0006]所述整形電路由光耦隔離電路和施密特觸發(fā)器組成。光耦隔離電路實(shí)現(xiàn)開(kāi)入量的電氣隔離,開(kāi)入量經(jīng)電氣隔離之后送入施密特觸發(fā)器,將開(kāi)入量信號(hào)的邊沿變得更加陡峭,便于邊沿檢測(cè)器的檢測(cè)識(shí)別。[0007]所述邊沿檢測(cè)器包括有上升邊沿檢測(cè)器和下降邊沿檢測(cè)器。通過(guò)對(duì)邊沿檢測(cè)器的配置寄存器配置參數(shù)設(shè)置上升邊沿檢測(cè)器和下將邊沿檢測(cè)器的工作狀態(tài),多樣化設(shè)置,方便屏蔽不需要的觸發(fā)事件,便于CPU讀取有效信息,進(jìn)一步提高測(cè)量精度。
[0008]所述定時(shí)器的計(jì)時(shí)周期為2Pms,其中,O≤η ( 4,η屬于整數(shù)。定時(shí)器實(shí)現(xiàn)去抖動(dòng)的功能,計(jì)時(shí)周期越小則去抖動(dòng)的性能越高,記錄精度也就越高。
[0009]相對(duì)于現(xiàn)有技術(shù),本發(fā)明取得了以下有益效果:FPGA芯片內(nèi)部有豐富的觸發(fā)器和I/o引腳,采用FPGA芯片進(jìn)行開(kāi)入量事件的測(cè)量,在保證開(kāi)入量事件測(cè)量精度的同時(shí),顯著減少了 CPU的占用率,同時(shí)又解決了現(xiàn)有技術(shù)中定制電路的不足,克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn);FPGA芯片具備在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積。
[0010]本發(fā)明的另一目的是提供一種基于FPGA的開(kāi)入量事件精確測(cè)量的方法,解決現(xiàn)有技術(shù)中開(kāi)入量事件測(cè)量精確度不高的技術(shù)問(wèn)題。
[0011]為解決以上技術(shù)問(wèn)題,本發(fā)明的所提供的基于FPGA的開(kāi)入量事件精確測(cè)量的方法,包括如下步驟:
步驟一:初始化定時(shí)器、邊沿狀態(tài)檢測(cè)器和事件記錄器;
步驟二:將開(kāi)入量信號(hào)經(jīng)整形電路整形后送入FPGA芯片的邊沿檢測(cè)器;
步驟三:邊沿檢測(cè)器檢測(cè)當(dāng)前邊沿狀態(tài),并觸發(fā)事件記錄器,依據(jù)時(shí)間計(jì)數(shù)器記錄當(dāng)前事件時(shí)標(biāo),同時(shí)打開(kāi)定時(shí)器,開(kāi)始計(jì)時(shí);
步驟四:在一個(gè)計(jì)時(shí)周期內(nèi),判斷邊沿狀態(tài)是否發(fā)生改變:如果邊沿狀態(tài)發(fā)生改變,則返回步驟一;如果邊沿狀態(tài)未發(fā)生改變,則關(guān)閉時(shí)間計(jì)數(shù)器并將所述邊沿狀態(tài)、事件時(shí)標(biāo)送入FIFO緩沖區(qū),同時(shí)通過(guò)中斷發(fā)生器將硬件中斷信號(hào)發(fā)送給CPU ;
步驟五:CPU響應(yīng)硬件中斷信號(hào),獲取所述FIFO緩沖區(qū)的數(shù)據(jù)內(nèi)容,輸出開(kāi)入量的類型和事件時(shí)標(biāo)。
[0012]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:開(kāi)入量的測(cè)量過(guò)程由FPGA芯片處理,提高開(kāi)入量事件精確度的同時(shí),不會(huì)增加CPU占用率,顯著提高了系統(tǒng)的工作效率和測(cè)量精度;當(dāng)硬件中斷信號(hào)到來(lái)時(shí),CPU僅需訪問(wèn)FPGA的FIFO緩沖區(qū)即可獲得開(kāi)入量事件的信息,操作簡(jiǎn)單、易于實(shí)現(xiàn)。
【專利附圖】
【附圖說(shuō)明】
[0013]圖1為本發(fā)明基于FPGA的開(kāi)入量事件精確測(cè)量系統(tǒng)的結(jié)構(gòu)原理框圖。
【具體實(shí)施方式】
[0014]下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
[0015]如圖1所示,本發(fā)明提供的基于FPGA的開(kāi)入量事件精確測(cè)量系統(tǒng),包括CPU和FPGA芯片,F(xiàn)PGA芯片內(nèi)集成有整形電路、邊沿檢測(cè)器、時(shí)間模塊、定時(shí)器、中斷發(fā)生器以及FIFO緩沖區(qū)。時(shí)間模塊包括有事件記錄器和由FPGA芯片的內(nèi)部時(shí)鐘控制的時(shí)間計(jì)數(shù)器。邊沿檢測(cè)器、時(shí)間模塊、定時(shí)器分別配置有各自的配置寄存器,CPU通過(guò)各配置寄存器配置參數(shù)。整形電路由光耦隔離電路和施密特觸發(fā)器組成。整形電路將開(kāi)入量信號(hào)整形、濾波后輸出至邊沿檢測(cè)器。邊沿檢測(cè)器包括有上升邊沿檢測(cè)器和下降邊沿檢測(cè)器。邊沿檢測(cè)器檢測(cè)當(dāng)前信號(hào)的邊沿狀態(tài),并分別發(fā)送觸發(fā)信號(hào)給時(shí)間模塊和定時(shí)器;時(shí)間模塊的事件記錄器記錄邊沿狀態(tài),并根據(jù)時(shí)間計(jì)數(shù)器記錄當(dāng)前事件時(shí)標(biāo);定時(shí)器用于周期計(jì)時(shí),計(jì)時(shí)周期結(jié)束,若邊沿狀態(tài)未發(fā)生變化,發(fā)送指令給FIFO緩沖區(qū)。FIFO緩沖區(qū)從事件記錄器中調(diào)取并存儲(chǔ)邊沿狀態(tài)和事件時(shí)標(biāo)信息,同時(shí)通知中斷發(fā)生器向CPU發(fā)送中斷請(qǐng)求。CPU響應(yīng)中斷請(qǐng)求,通過(guò)總線邏輯從FIFO緩沖區(qū)中獲取數(shù)據(jù)內(nèi)容,輸出開(kāi)入量的類型和事件時(shí)標(biāo)。時(shí)間計(jì)數(shù)器包括進(jìn)行微秒計(jì)數(shù)的10000000進(jìn)制計(jì)數(shù)器、分別進(jìn)行秒、分計(jì)數(shù)的60進(jìn)制計(jì)數(shù)器、進(jìn)行時(shí)計(jì)數(shù)的24進(jìn)制計(jì)數(shù)器、進(jìn)行天計(jì)數(shù)的365或366進(jìn)制的計(jì)數(shù)器和進(jìn)行年計(jì)數(shù)的100進(jìn)制計(jì)數(shù)器。定時(shí)器的計(jì)時(shí)周期為ms,其中,O≤η≤4, η屬于整數(shù)。
[0016]本發(fā)明提供的基于FPGA的開(kāi)入量事件精確測(cè)量的方法,包括如下步驟:
步驟一:初始化定時(shí)器、邊沿狀態(tài)檢測(cè)器和事件記錄器。
[0017]步驟二:將開(kāi)入量信號(hào)經(jīng)整形電路整形后送入FPGA芯片的邊沿檢測(cè)器。
[0018]步驟三:邊沿檢測(cè)器檢測(cè)當(dāng)前邊沿狀態(tài),并觸發(fā)事件記錄器,依據(jù)時(shí)間計(jì)數(shù)器記錄當(dāng)前事件時(shí)標(biāo),同時(shí)打開(kāi)定時(shí)器,開(kāi)始計(jì)時(shí)。
[0019]步驟四:在一個(gè)計(jì)時(shí)周期內(nèi),判斷邊沿狀態(tài)是否發(fā)生改變:如果邊沿狀態(tài)發(fā)生改變,則返回步驟一;如果邊沿狀態(tài)未發(fā)生改變,則關(guān)閉時(shí)間計(jì)數(shù)器并將邊沿狀態(tài)、事件時(shí)標(biāo)送入FIFO緩沖區(qū),同時(shí)通過(guò)中斷發(fā)生器將硬件中斷信號(hào)發(fā)送給CPU。
[0020]步驟五:CP U響應(yīng)硬件中斷信號(hào),獲取FIFO緩沖區(qū)的數(shù)據(jù)內(nèi)容,輸出開(kāi)入量的類型和事件時(shí)標(biāo)。
[0021]本發(fā)明并不局限于上述實(shí)施例,在本發(fā)明公開(kāi)的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域的技術(shù)人員根據(jù)所公開(kāi)的技術(shù)內(nèi)容,不需要?jiǎng)?chuàng)造性的勞動(dòng)就可以對(duì)其中的一些技術(shù)特征作出一些替換和變形,這些替換和變形均在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.基于FPGA的開(kāi)入量事件精確測(cè)量系統(tǒng),其特征在于,包括CPU和FPGA芯片,所述FPGA芯片內(nèi)集成有整形電路、邊沿檢測(cè)器、時(shí)間模塊、定時(shí)器、中斷發(fā)生器以及FIFO緩沖區(qū);所述時(shí)間模塊包括有事件記錄器和由FPGA芯片的內(nèi)部時(shí)鐘控制的時(shí)間計(jì)數(shù)器;所述邊沿檢測(cè)器、時(shí)間模塊、定時(shí)器分別配置有各自的配置寄存器,CPU通過(guò)各所述配置寄存器配置參數(shù); 所述整形電路將開(kāi)入量信號(hào)整形、濾波后輸出至邊沿檢測(cè)器; 邊沿檢測(cè)器檢測(cè)當(dāng)前信號(hào)的邊沿狀態(tài),并分別發(fā)送觸發(fā)信號(hào)給時(shí)間模塊和定時(shí)器;時(shí)間模塊的事件記錄器記錄邊沿狀態(tài),并根據(jù)時(shí)間計(jì)數(shù)器記錄當(dāng)前事件時(shí)標(biāo);定時(shí)器用于周期計(jì)時(shí),計(jì)時(shí)周期結(jié)束,若邊沿狀態(tài)未發(fā)生變化,發(fā)送指令給FIFO緩沖區(qū); FIFO緩沖區(qū)從事件記錄器中調(diào)取并存儲(chǔ)邊沿狀態(tài)和事件時(shí)標(biāo)信息,同時(shí)通知中斷發(fā)生器向CPU發(fā)送中斷請(qǐng)求; CPU響應(yīng)中斷請(qǐng)求,通過(guò)總線邏輯從FIFO緩沖區(qū)中獲取數(shù)據(jù)內(nèi)容,輸出開(kāi)入量的類型和事件時(shí)標(biāo)。
2.根據(jù)權(quán)利要求1所述的基于FPGA的開(kāi)入量事件精確測(cè)量的方法,其特征在于,所述時(shí)間計(jì)數(shù)器包括進(jìn)行微秒計(jì)數(shù)的10000000進(jìn)制計(jì)數(shù)器、分別進(jìn)行秒、分計(jì)數(shù)的60進(jìn)制計(jì)數(shù)器、進(jìn)行時(shí)計(jì)數(shù)的24進(jìn)制計(jì)數(shù)器、進(jìn)行天計(jì)數(shù)的365或366進(jìn)制的計(jì)數(shù)器和進(jìn)行年計(jì)數(shù)的100進(jìn)制計(jì)數(shù)器。
3.根據(jù)權(quán)利要求1所述的基于FPGA的開(kāi)入量事件精確測(cè)量系統(tǒng),其特征在于,所述整形電路由光耦隔離電路和 施密特觸發(fā)器組成。
4.根據(jù)權(quán)利要求1所述的基于FPGA的開(kāi)入量事件精確測(cè)量系統(tǒng),其特征在于,所述邊沿檢測(cè)器包括有上升邊沿檢測(cè)器和下降邊沿檢測(cè)器。
5.根據(jù)權(quán)利要求1所述的基于FPGA的開(kāi)入量事件精確測(cè)量的方法,其特征在于,所述定時(shí)器的計(jì)時(shí)周期為2s ms,其中,O≤η≤4, η屬于整數(shù)。
6.基于FPGA的開(kāi)入量事件精確測(cè)量的方法,其特征在于,包括如下步驟: 步驟一:初始化定時(shí)器、邊沿狀態(tài)檢測(cè)器和事件記錄器; 步驟二:將開(kāi)入量信號(hào)經(jīng)整形電路整形、濾波后送入FPGA芯片的邊沿檢測(cè)器; 步驟三:邊沿檢測(cè)器檢測(cè)當(dāng)前邊沿狀態(tài),并發(fā)送觸發(fā)信號(hào)給定時(shí)器和時(shí)間模塊,時(shí)間模塊的事件記錄器根據(jù)時(shí)間計(jì)數(shù)器記錄當(dāng)前事件時(shí)標(biāo),定時(shí)器開(kāi)始周期計(jì)時(shí); 步驟四:在一個(gè)計(jì)時(shí)周期內(nèi),判斷邊沿狀態(tài)是否發(fā)生改變:如果邊沿狀態(tài)發(fā)生改變,則返回步驟一;如果邊沿狀態(tài)未發(fā)生改變,則關(guān)閉時(shí)間計(jì)數(shù)器并將邊沿狀態(tài)、事件時(shí)標(biāo)送入FIFO緩沖區(qū),同時(shí)通知中斷發(fā)生器向CPU發(fā)出中斷請(qǐng)求; 步驟五:CPU響應(yīng)中斷請(qǐng)求,獲取所述FIFO緩沖區(qū)的數(shù)據(jù)內(nèi)容,輸出開(kāi)入量的類型和事件時(shí)標(biāo)。
【文檔編號(hào)】H03K19/00GK103955255SQ201410173421
【公開(kāi)日】2014年7月30日 申請(qǐng)日期:2014年4月28日 優(yōu)先權(quán)日:2014年4月28日
【發(fā)明者】高磊, 陳久林, 袁宇波, 李鵬, 劉玙, 李澄, 葛永高, 陸玉軍, 戴太文, 陳晶 申請(qǐng)人:國(guó)家電網(wǎng)公司, 江蘇省電力公司, 江蘇省電力公司電力科學(xué)研究院, 江蘇方天電力技術(shù)有限公司, 福建億榕信息技術(shù)有限公司