EP1C6Q在水輪機(jī)組轉(zhuǎn)速測(cè)量中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:狀態(tài)監(jiān)測(cè);現(xiàn)場(chǎng)總線;現(xiàn)場(chǎng)可編程門陣列;EP1C6Q
隨著工業(yè)生產(chǎn)與科學(xué)技術(shù)的發(fā)展,大型水輪機(jī)組的自動(dòng)化水平也在不斷提高。而這些設(shè)備一旦發(fā)生故障,將會(huì)給人們的生活和生命財(cái)產(chǎn)造成極大的威脅。因此,對(duì)其運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè),及時(shí)發(fā)現(xiàn)故障征兆具有重要意義?,F(xiàn)場(chǎng)可編程門陣列(FPGA,Field Programmable Gate Array )的出現(xiàn)是超大規(guī)模集成電路和計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)發(fā)展的結(jié)果。它具有集成度高、多功能、低功耗、開發(fā)周期短等特點(diǎn),而且可以很方便地對(duì)設(shè)計(jì)進(jìn)行在線修改,因此獲得了廣大用戶的青睞,應(yīng)用范圍也越來越廣。本文首先介紹了ALTERA公司推出的低價(jià)位、高性能CYCLONE系列FPGA器件EP1C6Q的特點(diǎn)和內(nèi)部結(jié)構(gòu),然后結(jié)合在水輪機(jī)組狀態(tài)監(jiān)測(cè)開發(fā)系統(tǒng)中遇到的實(shí)際問題,給出了相應(yīng)的解決方案,最后就開發(fā)過程中遇到的一些實(shí)際問題,提出了筆者自己的看法。
1?。牛校保茫叮训慕Y(jié)構(gòu)特點(diǎn)
EP1C6Q是ALTERA公司低價(jià)位CYCLONE系列FPGA的一種。它采用1.5V內(nèi)核電壓,內(nèi)嵌92106位存儲(chǔ)區(qū)間,可提供兩個(gè)鎖相環(huán)和雙倍數(shù)據(jù)傳輸速率(DDR)的接口電路。其具體特點(diǎn)如下:
●采用240個(gè)引腳的FPQF封裝形式,能提供185個(gè)IO用戶引腳和5980個(gè)邏輯單元。
●具有20個(gè)4608位的RAM存儲(chǔ)區(qū),最高可支持200MHz的數(shù)據(jù)傳輸。每個(gè)存儲(chǔ)區(qū)均包括單口或雙口RAM、ROM、FIFO等各類存儲(chǔ)器件,并支持8位、16位、32位、36位等數(shù)據(jù)存儲(chǔ)類型。
●片上的鎖相環(huán)電路可以提供輸入時(shí)鐘的1~32分頻或倍頻、156~417ps移相或可變占空比的時(shí)鐘輸出,輸出時(shí)鐘信號(hào)的特性可直接在開發(fā)軟件QUARTUS2里設(shè)定。經(jīng)過鎖相環(huán)輸出的時(shí)鐘信號(hào)既可以作為內(nèi)部的全局時(shí)鐘,也可以輸出到片外供其它電路使用。
●多功能的IO結(jié)構(gòu)支持差分和單端輸入,并與3.3V、32位、66MHz的PCI局部總線兼容;IO輸出可以根據(jù)需要調(diào)整驅(qū)動(dòng)能力,并具有壓擺率控制、三態(tài)緩沖、總線狀態(tài)保持等功能;整個(gè)器件的IO引腳分為四個(gè)區(qū),每一個(gè)區(qū)可以獨(dú)立采用不同的輸入電壓,并可提供不同電壓等級(jí)的IO輸出。
2 在水輪機(jī)組轉(zhuǎn)速測(cè)量中的應(yīng)用
水輪機(jī)組的工作效率是系統(tǒng)狀態(tài)監(jiān)測(cè)中的一項(xiàng)重要指標(biāo),而機(jī)組的工作效率與當(dāng)前時(shí)刻的轉(zhuǎn)速密切相關(guān)。轉(zhuǎn)速測(cè)量的關(guān)鍵是對(duì)六十五路脈沖信號(hào)周期的測(cè)量。筆者采用了EP1C6Q器件內(nèi)部的65個(gè)計(jì)數(shù)器同時(shí)工作的測(cè)量方法。
2.1 水輪機(jī)組轉(zhuǎn)速測(cè)量原理
該水輪機(jī)組轉(zhuǎn)速測(cè)量裝置如圖1所示,它由六十五個(gè)微型機(jī)械傳感器組成,其中六十四個(gè)傳感器分布在對(duì)稱的四個(gè)轉(zhuǎn)軸上,第六十五個(gè)傳感器在軸的中心交點(diǎn)。流經(jīng)管道的水流將帶動(dòng)傳感器的旋轉(zhuǎn)。當(dāng)傳感器旋轉(zhuǎn)一周后,觸發(fā)電子線路產(chǎn)生一個(gè)脈沖信號(hào)。管道中水流的速度越快,脈沖信號(hào)的間隔越短;管道中水流的速度越慢,脈沖信號(hào)的間隔越長(zhǎng)。這樣?就可以根據(jù)脈沖信號(hào)的間隔或者說兩個(gè)信號(hào)上升沿的時(shí)間長(zhǎng)短來計(jì)算流速的大小,從而依據(jù)相應(yīng)的公式計(jì)算水輪機(jī)組轉(zhuǎn)速的大小。
2.2 整體設(shè)計(jì)方案及工作原理
該水輪機(jī)組系統(tǒng)設(shè)計(jì)方案的整體框圖如圖2所示。水輪機(jī)組狀態(tài)監(jiān)測(cè)系統(tǒng)采用LonWorks現(xiàn)場(chǎng)總線技術(shù),神經(jīng)元芯片是構(gòu)成系統(tǒng)采集節(jié)點(diǎn)的核心,它內(nèi)部包括三個(gè)微處理器,即MAC處理器、網(wǎng)絡(luò)處理器、應(yīng)用處理器,而11個(gè)輸入/輸出引腳則可根據(jù)不同的外部設(shè)備來靈活配置。收發(fā)器是節(jié)點(diǎn)之間通信的橋梁。
由于水輪機(jī)組轉(zhuǎn)速比較慢,傳感器發(fā)出的脈沖信號(hào)的時(shí)間間隔較長(zhǎng)?因此?對(duì)緩變信號(hào)周期的測(cè)量應(yīng)采用測(cè)周的辦法。首先是將輸入的脈沖信號(hào)經(jīng)去抖、限幅后變成符合EP1C6Q輸入信號(hào)特性要求的信號(hào),然后當(dāng)EP1C6Q接到神經(jīng)元信號(hào)的測(cè)量命令后,再捕捉輸入信號(hào)的上升沿。為了保證所有的通道在神經(jīng)元芯片讀取數(shù)據(jù)之前已經(jīng)鎖存,讀取數(shù)據(jù)的時(shí)間間隔應(yīng)保證不小于兩個(gè)信號(hào)周期。神經(jīng)元芯片將每個(gè)通道的計(jì)數(shù)值存儲(chǔ)到片內(nèi)RAM區(qū),并將計(jì)算得到的轉(zhuǎn)速值送到信號(hào)處理模塊,以計(jì)算水輪機(jī)組的工作效率。由于流速測(cè)量傳感器的分布特點(diǎn)是邊緣傳感器的信號(hào)周期比內(nèi)部傳感器的信號(hào)周期長(zhǎng),因此,筆者選擇一個(gè)最靠邊的傳感器作為標(biāo)志傳感器,并由標(biāo)志傳感器產(chǎn)生讀取數(shù)據(jù)的標(biāo)志位信號(hào)。
2.3 硬件實(shí)現(xiàn)
(1) 信號(hào)調(diào)理電路
由于EP1C6Q輸入/輸出邏輯高電平僅能支持4.1V,而不能直接與標(biāo)準(zhǔn)的TTL電平信號(hào)相連,因此,神經(jīng)元芯片和EP1C6Q之間的連接以及脈沖輸入電路都必須加限幅電路。芯片的設(shè)計(jì)已經(jīng)考慮到與5V設(shè)備的連接問題,其解決方法是在連接線路中串接一個(gè)162Ω電阻。
(2) EP1C6Q和神經(jīng)元間的物理連接
在轉(zhuǎn)速測(cè)量模塊中,EP1C6Q主要起信號(hào)邊沿檢測(cè)、脈寬測(cè)量以及實(shí)現(xiàn)神經(jīng)元芯片外圍邏輯電路的作用。由于許多功能是在EP1C6Q內(nèi)部利用軟件實(shí)現(xiàn)的,所以二者之間的連接很簡(jiǎn)單??刂菩畔⒌膫鬟f主要有兩個(gè)途徑:一是通過神經(jīng)元芯片的I/O引腳,由于I/O引腳較長(zhǎng)的建立時(shí)間會(huì)影響系統(tǒng)的實(shí)時(shí)性,因此,設(shè)計(jì)電路僅使用IO0、IO1兩個(gè)通道來作為整個(gè)系統(tǒng)的異步清零(clr)和讀取數(shù)據(jù)標(biāo)志(read_time);另外一個(gè)途徑是通過神經(jīng)元芯片的數(shù)據(jù)總線(D0~D7)和地址總線?A0~A15?,即在EP1C6Q的內(nèi)部設(shè)立狀態(tài)寄存器,并由神經(jīng)元芯片向寄存器中寫入不同的數(shù)據(jù),然后由寄存器根據(jù)寫入的數(shù)據(jù)來使相應(yīng)的控制信號(hào)有效。
2.4 軟件設(shè)計(jì)
a.EP1C6Q內(nèi)部程序
EP1C6Q的內(nèi)部程序是在QUARTUS2開發(fā)軟件中實(shí)現(xiàn)的。QUARTUS2能夠支持原理圖輸入和硬件描述語言兩種編程方式。整個(gè)程序包括譯碼電路、分頻電路、計(jì)數(shù)控制電路、計(jì)數(shù)器模塊和數(shù)據(jù)的鎖存和讀取等五個(gè)部分。具體如下:
(1)計(jì)數(shù)控制電路
EP1C6Q內(nèi)部的程序是在神經(jīng)元芯片的控制下運(yùn)行的。其控制部分電路如圖3所示。信號(hào)fin代表六十五路脈沖輸入信號(hào)的一路,clk0代表標(biāo)準(zhǔn)的計(jì)數(shù)時(shí)鐘。在clr信號(hào)由低電平變?yōu)楦唠娖健⑶遥螅簦幔颍糁脼楦唠娖胶?,脈沖信號(hào)fin輸入有效。當(dāng)?shù)谝粋€(gè)上升沿到來后,計(jì)數(shù)器的PUL引腳變?yōu)楦唠娖?,此時(shí),計(jì)數(shù)器開始計(jì)數(shù);當(dāng)?shù)诙€(gè)上升沿到來后,PUL變?yōu)榈碗娖?,?jì)數(shù)器停止計(jì)數(shù);而當(dāng)?shù)谌齻€(gè)上升沿到來后,read_time信號(hào)變高電平,數(shù)據(jù)鎖存。
(2)計(jì)數(shù)器的設(shè)計(jì)
由于水輪機(jī)組的轉(zhuǎn)速比較慢,產(chǎn)生的脈沖信號(hào)頻率一般在0.01Hz~10Hz之間,因此,轉(zhuǎn)速快和轉(zhuǎn)速慢時(shí)的信號(hào)周期差別比較大。為滿足±1/10000個(gè)計(jì)數(shù)時(shí)鐘的精度要求,計(jì)數(shù)器的計(jì)數(shù)位數(shù)應(yīng)設(shè)計(jì)為20位。計(jì)數(shù)器的最大設(shè)定值為1000000,這樣,當(dāng)脈沖信號(hào)周期在10Hz~0.1Hz之間時(shí),計(jì)數(shù)時(shí)鐘為100kHz;而當(dāng)脈沖信號(hào)的周期在0.1Hz~0.01Hz之間時(shí),計(jì)數(shù)時(shí)鐘自動(dòng)轉(zhuǎn)換為10kHz。計(jì)數(shù)時(shí)鐘的自動(dòng)切換是由計(jì)數(shù)器的溢出標(biāo)志控制的,當(dāng)計(jì)數(shù)器的計(jì)數(shù)值超出設(shè)定的最大值(1000000)后,溢出標(biāo)志由低電平變?yōu)楦唠娖?,這樣,經(jīng)過全局時(shí)鐘分頻計(jì)數(shù)的時(shí)鐘分頻次數(shù)也會(huì)相應(yīng)地?cái)U(kuò)大10倍,從而保證了計(jì)數(shù)器不會(huì)再次溢出。
(3)狀態(tài)寄存器設(shè)計(jì)
為了減小神經(jīng)元芯片控制功能對(duì)IO引腳的依賴,EP1C6Q在其內(nèi)部設(shè)立了兩個(gè)狀態(tài)寄存器。這兩個(gè)狀態(tài)寄存器可根據(jù)神經(jīng)元芯片寫入的控制字來使相應(yīng)的控制信號(hào)有效。使用的控制信號(hào)如下:
start:通過神經(jīng)元芯片要求EP1C6Q進(jìn)入信號(hào)采集狀態(tài)控制,高電平有效。
lck:數(shù)據(jù)鎖存信號(hào),低電平有效。當(dāng)EP1C6Q的輸出信號(hào)read_time有效后,神經(jīng)元芯片向狀態(tài)寄存器寫入命令字以使lck信號(hào)有效。為了保證所有通道的計(jì)數(shù)器已經(jīng)停止工作,神經(jīng)元芯片接收到read_time后將延遲ΔT時(shí)間后再鎖存計(jì)數(shù)器的數(shù)據(jù)。
h1?h2:計(jì)數(shù)值高八位、中八位、低八位的選擇控制。為了滿足系統(tǒng)要求的測(cè)量精度, EP1C6Q內(nèi)部采用二十位計(jì)數(shù)器對(duì)每一路信號(hào)進(jìn)行計(jì)數(shù),而神經(jīng)元芯片的數(shù)據(jù)總線是八位,因此需要分三次讀出。
(4)譯碼電路設(shè)計(jì)
神經(jīng)元芯片一般采用內(nèi)存映象法進(jìn)行數(shù)據(jù)的傳遞。所謂內(nèi)存映象法,是指給芯片外部的寄存器、存儲(chǔ)器或IO單元分配一個(gè)物理地址,以便于對(duì)外設(shè)操作,這相當(dāng)于對(duì)該物理地址的操作。譯碼電路主要提供FLASH、狀態(tài)寄存器和六十五個(gè)計(jì)數(shù)器的片選信號(hào)。系統(tǒng)的地址分配如下:
E800~EFFF?數(shù)據(jù)存儲(chǔ)區(qū),用于保存各個(gè)通道的計(jì)數(shù)值。
0000~7FFF?外圍FLASH區(qū)。
8000~8040?六十五個(gè)計(jì)數(shù)器的內(nèi)存地址。
8041~8042?狀態(tài)寄存器的內(nèi)存地址。
8042~E7FF?用戶備用空間。
(5)分頻電路
計(jì)數(shù)器單元的計(jì)數(shù)時(shí)鐘是把輸入的全局時(shí)鐘分頻得到的。12MHz的有源晶振輸出通??勺鳛槿謺r(shí)鐘,分頻電路采用VHDL語言設(shè)計(jì),分頻次數(shù)設(shè)定值的變換由計(jì)數(shù)器的溢出標(biāo)志控制。
b.神經(jīng)元芯片的內(nèi)部編程
本編程設(shè)計(jì)主要用于完成與系統(tǒng)的同步和控制EP1C6Q程序的運(yùn)轉(zhuǎn)。當(dāng)接到信號(hào)處理模塊發(fā)來的數(shù)據(jù)請(qǐng)求信號(hào)后,該程序?qū)?dòng)EP1C6Q內(nèi)部程序并開始計(jì)數(shù),以將最終的計(jì)數(shù)值讀到內(nèi)部RAM區(qū)。
3 注意事項(xiàng)
在整個(gè)設(shè)計(jì)方案的實(shí)現(xiàn)過程中,應(yīng)仔細(xì)考慮以下兩點(diǎn):
第一是芯片的選擇。與普通電路開發(fā)不同的是,本設(shè)計(jì)方案的前期編譯和仿真驗(yàn)證不需要拘泥于某一具體型號(hào)的芯片,只要滿足方案所需的邏輯單元的數(shù)量、控制時(shí)序的精度和存儲(chǔ)區(qū)間的大小等要求,就可以在軟件開發(fā)工具中編譯仿真。可到方案成熟后,再考慮一些細(xì)節(jié)問題,如芯片以及所需電源和配置芯片是否容易買到,提供的IO接口類型是否滿足需要,芯片的封裝形式是否會(huì)影響到PCB板的制作等問題。
第二是時(shí)序電路和組合電路的轉(zhuǎn)化。在一個(gè)系統(tǒng)中,時(shí)序電路和組合邏輯電路一般同時(shí)存在。兩種類型的電路都作為輸入時(shí),為避免毛刺現(xiàn)象,可以在組合邏輯的輸入之前加D觸發(fā)器,以將組合邏輯電路轉(zhuǎn)化為時(shí)序電路。在多級(jí)時(shí)鐘系統(tǒng)中,為了滿足建立和保持時(shí)間的要求,往往需要在低頻時(shí)鐘信號(hào)驅(qū)動(dòng)的邏輯電路的輸出端加一級(jí)高頻時(shí)鐘信號(hào)驅(qū)動(dòng)的D觸發(fā)器,以實(shí)現(xiàn)時(shí)鐘之間的同步。但這樣做會(huì)增加輸入和輸出之間的時(shí)間延遲,嚴(yán)重時(shí)可能通不過編譯軟件的時(shí)序驗(yàn)證。因此,可以將其轉(zhuǎn)化為簡(jiǎn)單的組合邏輯電路,以使其比較容易實(shí)現(xiàn)。
4 結(jié)束語
該方案已經(jīng)通過了實(shí)驗(yàn)驗(yàn)證,測(cè)量結(jié)果能夠滿足設(shè)計(jì)要求。考慮到成本問題,選擇的芯片不能與5V系統(tǒng)直接相連,這使得多路輸入信號(hào)給整個(gè)電路的設(shè)計(jì)帶來了一定的困難。如果排除這些因素,該方案還可以得到進(jìn)一步的改善。