measureBwide:process(inputHClk)
begin
if rising_edge(inputHClk) then
if pwmMeasureEnable=′1′ then
--上升沿開始計數(shù)
regCountH<=regCountH+1;
--計數(shù)器++
regOutputReadEnable<=′0′;
--此時數(shù)據(jù)不可讀
else null;
end if;
if (regBLast=′1′)and( regBCurrent=′0′) then
--降沿判斷脈寬
case (regCountH) is
when 5000 to 14000 =>
regOutputData<="0010";
- regOutputPwm0Or1<=′0′;
when 20000 to 30000=>
regOutputData<="0101";
regOutputPwm0Or1<=′1′;
when 35000 to 48000=>
regOutputData<="1000";
regOutputPwm0Or1<=′0′;
when others=>NULL;
regOutputPwm0Or1<=′0′;
end case;
regCountH<=0;
regOutputReadEnable<=′1′;
--此時數(shù)據(jù)可讀
else null;
end if;
else NULL;
end if;
end process measureBwide;
IRIG-B解碼的主要任務(wù)是找到碼元起始報頭,也就是2個連續(xù)的占空比為8 ms:2 ms的脈沖。找到報頭后,根據(jù)碼元的分布情況逐一解出相應(yīng)的數(shù)據(jù)即可。找到起始報頭后,輸出秒脈沖,同時根據(jù)解碼數(shù)據(jù)輸出串行數(shù)據(jù)。本文利用12.8 MHz進(jìn)行1 333次分頻產(chǎn)生9 600 b/s的串行數(shù)據(jù)波特率,雖然不是整數(shù),但是可滿足串行數(shù)據(jù)的誤碼率要求。
分脈沖由秒脈沖計數(shù)器產(chǎn)生,即計數(shù)器計滿1 min時,輸出一個脈沖。
3 同步邏輯信號的實現(xiàn)
分布式同步邏輯的實現(xiàn)為本系統(tǒng)的重要部分,也是分布式錄波系統(tǒng)同步錄波的關(guān)鍵。系統(tǒng)中有一個專門用于接收各子單元故障的信號,作為系統(tǒng)錄波的專用引腳,該信號為RS485驅(qū)動,因此抗干擾能力比較強(qiáng)。實際應(yīng)用中,不論哪一個子單元判斷出故障信號,均向本系統(tǒng)發(fā)出一個觸發(fā)電平,當(dāng)本系統(tǒng)收到該電平后立即發(fā)出啟動信號,啟動錄波后一段時間再發(fā)出錄波結(jié)束電平,結(jié)束本次錄波工作。
由于CPLD的并行處理功能強(qiáng)大與反應(yīng)速度快的特點(diǎn),所以子單元發(fā)出故障信號的延時可以忽略不計(小于10 ns)。由于不同的用戶需要的錄波文件大小不一致,所以將錄波結(jié)束的控制參數(shù)交由用戶在線設(shè)置。由故障、錄波啟動、錄波結(jié)束三組信號再配合IRIG-B時鐘信號即可實現(xiàn)系統(tǒng)的同步錄波功能(此處的源代碼不再贅述)。
4 實驗結(jié)果
本系統(tǒng)在理論上最多能夠連接32個子單元(RS485驅(qū)動能力的限制),實際應(yīng)用中,由于受到產(chǎn)品外形結(jié)構(gòu)的限制,最大連接了8個子單元,任意一個子單元發(fā)出故障信號時,均能通過本系統(tǒng)產(chǎn)生錄波的同步信號,各項指標(biāo)均滿足錄波器的相關(guān)指標(biāo)要求。即使多個子單元發(fā)出故障信號,本系統(tǒng)亦能準(zhǔn)確判斷出故障信號,從而輸出同步信號。
通過實際測試,本文設(shè)計方案只占用了63%的系統(tǒng)資源,留有相當(dāng)大的剩余資源,非常方便實現(xiàn)后期的功能升級,而不用更換硬件。
用戶評論
共 0 條評論