使用外部訊號作為Counter訊號源時造成的錯誤計數值



硬體: Counter/Timers (TIO)

問題: 當使用內部Timebase作為計數的訊號源時,讀取計數值是正確的。但是當使用外部訊號源時,發現會有錯誤的讀值,為什麼?

解答:

有幾個原因會導致這樣的現象。如果有雜訊干擾或是訊號本身不符合規範時,計數器就有可能會比預期的多偵測了幾個pulse。如果外部訊號太慢,預防重複計數的機制則會被啟用。

訊號規範
DAQ-STC晶片和NI-TIO晶片上的計數器是用於量測TTL訊號的。一個TTL訊號被定義電壓於0~0.8伏特為低邏輯,2~5伏特為高邏輯。而且,上升與下降時間必須低於50ns,計數器才能確實偵測到訊號的邊緣。如果上升/下降時間大於50ns,計數器則會有錯誤的計數值。此外,最小的脈衝寬度對於DAQ-STC晶片的計數器來說必須大於10ns,對於NI-TIO則必須大於5ns。如果外部訊號的脈衝無法滿足這樣的規範,計數值則預期會有錯誤的計數值。
為了達到正確的計數結果,請確認訊號滿足電壓、上升/下降時間和脈衝寬度的規範。

雜訊去除

如果訊號符合規範,雜訊則是最有可能需要考量的因素。比方說,突波就會被偵測成額外的脈衝,為了減少雜訊,可以對訊號利用低通濾波去讓高頻被濾除。若是使用E系列的產品,則會需要使用外部的低通濾波器去實現。

針對這個部分,一般來說突波寬度會遠小於預期量測的脈衝寬度。若是這樣的狀況,你則可以透過DAQmx Channel Property node去動用到數位濾波進而改變可被量測的最小脈衝寬度,如下圖所示。將該參數設定為略小於預期量測的脈衝寬度即可。

國家儀器的DAQ搭載NI-TIO計數晶片(660x系列的DAQ)有內建濾波可以啟用。可以查看相關連結取得相關資訊。

預防重複計數

當利用外部訊號來源去執行buffered measurement時,就會需要注意gate輸入的訊號週期。這邊會啟用同步計數去預防錯誤的計數。同步計數又被稱為重複計數預防機制,確保在外部訊號比較慢或是非周期性時計數器會回傳正確的值。

當同步計數啟用時,訊號會提供給運作於計數器最大timebaseSource腳位。當有效的邊緣傳輸至計數器的source腳位,計數器的最大內部timebase將會用於計數。因此,當啟用同步計數時,內部timebase的訊號才是真正的source

Gate偵測到一個上升邊緣後,沒有任何脈衝輸入至Source,計數器則不會寫入正確的讀值至Buffer中,如下圖所示。

重複計數的預防機制會去同步SourceGate的訊號以及80MHzTimebase,所以即使Souce沒有任何脈衝輸入,計數器依然會偵測到Gate的上升邊緣。

請參考使用手冊去取得更多重複計數的預防機制。



相關連結: Developer Zone Tutorial: Using Quadrature Encoders with E Series DAQ Boards
KnowledgeBase 232JTCMT: Enabling the Filters for the 660x Family Using Traditional NI-DAQ (Legacy) in LabVIEW
Product Manuals: M Series User Manual

附加檔案:





報告日期: 08/16/2001
最後更新: 01/22/2015
文件偏號: 2CFGBTFT