★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公眾號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/ )
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/9697747.html
➤如果鏈接不是山青詠芝的博客園地址,則可能是爬取作者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持作者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
1、計數器結構
—>Gate Output—>
Counter Register
—>Source
其中:
Source:被計數的輸入源信號
Gate:切斷計數是否啟動的門控信號
Output:用於輸出單個脈沖或脈沖序列的輸出信號
Counter Register:存儲當前計數值,存儲范圍跟計數器分辨率有關,超過范圍則又從0開始計數。
注:計數器接收或輸出的信號都是標准的TTL電平信號。TTL電平信號被利用的最多是因為通常數據表示采用二進制規定,+5V等價於邏輯“1”,0V等價於邏輯“0”,這被稱做TTL(晶體管-晶體管邏輯電平)信號系統,這是計算機處理器控制的設備內部各部分之間通信的標准技術。
2、計數器典型應用
(1)、邊沿計數:對TTL脈沖信號進行邊沿計數。
(2)、脈沖生成:生成單個TTL脈沖或脈沖串。
(3)、脈沖測量:脈沖的高低電平寬度測量、周期/半周期測量、頻率測量。
(4)、位置測量:對編碼器返回的旋轉角度、信息位置等進行測量。
范例查找器(可以用來查找官方標准的舉例):幫助>查找范例>硬件輸入與輸出>DAQmx>計數器測量、生成數字脈沖
3、邊沿計數:
時間=計數值*時基信號周期
(1)、功能:
a、可以設定為對信號的上升沿或下降沿計數,輸入信號邊沿改變計數器的值。
b、對已知頻率的標准時基信號計數,則可以將計數值轉化為時間值,實現對時間的精確
(2)、首先進行物理連線:
選中設備鼠標右鍵>設備引腳>查看:計數器(Coounter/Timer Signal)、Source端(Default Pin number)、引腳(Signal Name)。
(3)、在程序框圖中設置:
a、DAQmx創建通道多態VI>計數器輸入>邊沿計數>然后對計數器通道進行配置:通道名(Counter)、初始值(initial count)、向上/下計數(Count Direction)、上升沿/下降沿計數(Edge)。
b、放置DAQmx開始任務VI。
c、在循環中不斷讀取采集到的邊沿數目。
d、采集停止后清除DAQmx任務,並進行簡單錯誤處理。
e、在簡單邊沿計數的基礎上添加門控功能,前面板中設置:門控信號的來源、門控信號為何種狀態時停止計數。
注:不熟悉則可以參考<范例查找>:
硬件輸入與輸出>計數器測量>數字事件計數>Count Digital和Events VI
4、脈沖生成:在計數器輸出端輸出TTL信號。
(1)、在程序框圖中設置:DAQmx創建通道多態VI>計數器輸出>脈沖生成>頻率。前面板中設置:頻率、占空比。
(2)、在程序框圖中設置:DAQmx時鍾VI>隱式(Implicit,計數器模式):表示采樣率由待測信號本身的頻率決定
(3)、通過MAX中的測試面板觀察輸出脈沖序列的狀態
注:不熟悉則可以參考<范例查找>:DAQmx>生成數字脈沖>此文件中的范例程序
5、脈沖測量:使用已知頻率的時基信號對未知信號進行測量。
細分為三類:
a.脈沖的高低電平寬度測量。
b.周期/半周期測量。
c.頻率測量。
6、脈沖寬度測量。
Gate脈沖寬度=計數值*時基信號周期
(1)、原理:將待測脈沖的高電平或低電平置為有效的門控信號在這段時間內,對Source端的實際信號進行計數,得到計數值。
(2)、物理連接:頻率較高的時基信號接入Source端,頻率較低的Data信號接入Gate端。
(3)、在程序框圖中設置:DAQmx創建通道多態VI>計數器輸入>脈沖寬度>前面板中設置:通道名、開始邊沿(上升沿/下降沿)、根據待測脈沖的范圍設定最大值和最小值。
7、周期/半周期測量
Gate脈沖周期(半周期)=計數值*時基信號周期
(1)、物理連接:頻率較高的時基信號接入Source端,頻率較低的Data信號接入Gate端。
(2)、區別:DAQmx創建多態VI的選擇不同。
(3)、得到周期半周期的數值,可以跟前面脈沖寬度的測量結果進行對比,看測量值是否正確。
8、頻率測量:
(1)、周期取反法(使用一個計數器)—>適用於低頻信號
(2)、平均法(使用兩個計數器)—>適用於高頻信號
(3)、分頻法(使用兩個計數器)—>適用於高頻信號
9、周期取反法(適用於低頻信號)
待測信號周期=計數值*時基信號周期
頻率=1/周期
特點:僅使用一個計數器,適用於低頻信號(f<timebase/100),即待測信號頻率低於Source端時基信號的1%
缺點:如果測量高頻信號,可能產生較大的同步誤差,導致測量結果不准確。
(1)實現
物理連接:待測信號—>Gate端;內部時基信號—>Source端。原理和物理連接和脈沖周期測量是相同的。
在程序框圖中設置:DAQmx創建通道多態VI>計數器輸入>頻率。前面板中設置待測信號頻率的范圍,以便驅動底層選擇適合的內部時基信號作為Source信號。
(2)、同步誤差:Gate信號的上升沿與Source的第一個脈沖的上升沿不能完全同步,可能會造成Source端第一個脈沖上升沿被漏計,而最后一個脈沖上升沿被誤計的結果,所以,測得的Gate信號脈沖寬度可能有±1個Source周期的誤差存在,這種誤差就叫做同步誤差。
(3)、在時基信號一定的情況下,待測信號頻率越高,越接近時基信號的頻率,差生的測量誤差將越大。
10、平均法(適用於高頻信號)
待測信號頻率=計數值/計數時間
原理:在Gate信號有效的時間內,Source脈沖數量越多,同步誤差就越小,平均法就是根據這樣的原理,在Source端頻率一定的情況下延長Gate端的有效時間來提高測量精度。需要兩個計數器。
(1)實現
物理連接:只需將待測信號接入一個計數器的Source端即可,其他的連接,驅動會自動幫我們完成。用CTR表示計數器。CTR0:輸出指定時間寬度的Gate脈沖。CTR1:頻率測量。
內部時基信號—>Source (CTR0)
Out (CTR0) —>Gate (CTR1)
待測信號—> Source (CTR1)
(2)在程序框圖中設置
DAQmx創建通道多態VI>計數器輸入>頻率。
在測量方法接線端>Hight Frequency with 2 counters
DAQmx定時VI> DAQmx時鍾VI>隱式(Implicit,計數器模式):表示采樣率由待測信號本身的頻率決定
11、分頻法(適用於高頻信號)
Gate信號頻率=時基信號頻率/計數值
待測信號頻率= Gate信號頻率*分頻系數
原理:先將待測信號做分頻處理,降低它的頻率,以保證測量結果的准確性。將得到的頻率數乘以分頻系數,可以還原出待測信號的真實頻率。所以分頻發也需要兩個計數器。
(1)、實現
物理連接:只需將待測信號接入一個計數器的Source端即可,其他的連接,驅動會自動幫我們完成。用CTR表示計數器。CTR0:對待測信號做分頻處理。CTR1:頻率測量。
待測信號—> Source (CTR0)
Out (CTR0) —>Gate (CTR1)
內部時基信號—>Source (CTR1)
(2)、在程序框圖中設置
DAQmx創建通道多態VI>計數器輸入>頻率。
在測量方法接線端>Large Range with 2 counters
(3)前面板中設置
設置待測接線端頻率的范圍,以便DAQmx選擇合適的內部時基信號。
設置分頻系數:使得待測信號分頻后的頻率低於時基信號頻率的1%保證測量結果的准確性。
12、位置測量
分為兩類:
a.角度測量—>配合旋轉編碼器使用
b.線性測量—>配合線性編碼器使用
(1)、這兩類編碼器的工作原理類似:都使用光學傳感器來提供兩路脈沖序列形式的電信號,例如:序列A和序列B。由於兩路脈沖信號之間有90度的相位延遲。即有正交的關系,所以這兩類編碼器又叫做正交編碼器編碼器沒旋轉一周會產生多個脈沖(例如BNC2120上的編碼器旋轉一周產生96個脈沖),所以通過計數器監控脈沖數目,和信號A和信號B之間的相對相位信息,就可以獲得旋轉角度和旋轉方向的信息。
注:相位(phase):是對於一個波,特定的時刻在它循環中的位置:一種它是否在波峰、波谷或它們之間的某點的標度。相位描述信號波形變化的度量,通常以度 (角度)作為單位,也稱作相角。 當信號波形以周期的方式變化,波形循環一周即為360° 。相位常應用在科學領域,如數學、物理學等。例如:在函數y=Acos(ωx+φ)中,ωx+φ稱為相位。
(2)、物理連接
Channel A—>Source端(設置脈沖下降沿計數)
Channel A—>AUX端(決定了計數方向,當它的輸入為高電平時,計數器向上計數;當它的輸入為低電平時,計數器向下計數)
(2)、公式
角度測量:
(°)=(Edge_count/(XN))*360
線性位置測量:
(英寸)=(Edge_count/(XN))*(1/PPI)
其中:
N=編碼器旋轉一周產生的脈沖數目
X=編碼類型。常用的有三種:X1(乘1)、X2(乘2)、X4(乘4)
PPI=脈沖每英寸(每英寸脈沖的數目)
Edge_count=邊沿計數值
(2)、在程序框圖中設置
DAQmx創建通道多態VI>計數器輸入>位置>角度編碼器
DAQmx通道屬性節點>計數器輸入>位置>B輸入>接線端
PFIE引腳作為該屬性節點的輸入,將序列B連接到PFIE引腳上驅動自動將它Root到AUX