簡易數字相位差計
一、方案設計
1.1方案概述
數字相位差計包括外部電路與ARM開發板兩部分,外部電路主要利用電壓比較器,將正弦波輸入信號轉化為方波;ARM開發板主要用到的模塊為定時器模塊、計數器模塊、中斷系統模塊、CPU處理模塊和數碼管顯示模塊,系統框圖如圖1。

圖1 系統框圖
1.2技術指標
相位差測量范圍:0 ~ 180°
數碼顯示:4位數碼顯示
相位差分辨率:0.1°
識別信號范圍:電壓3V,頻率
工作方式:連續
二、工作原理
2.1系統概述
兩個同頻被測正弦信號分別經過相同型號的電壓比較器與1.5V的固定電壓比較后得到兩個有相位差的方波,然后將兩個方波輸入到ARM開發板上,由中斷系統實時監控電平變換,從而控制計數器對定時器晶振進行計數,經過算法運算后,在數碼管上顯示出相位差的數值。
2.2脈沖計數法相位差測量原理[1]













圖2 相位差計原理圖
設被測兩信號的時間間隔為
(1)
式中,
—在
時間內晶振計數脈沖的個數;
—晶振信號周期。
數字式相位計波形圖如圖2所示,由圖可知
(2)
式中,
—兩被測信號的相位差;
—被測信號的周期。
將式(1)帶入式(2)得
(3)
式中,
—被測信號頻率;
—晶振信號頻率。
若讓計數器在1s內連續計數,即1s內有
個門控信號,則其累計計數為:
(4)
式中,
—1s中晶振累計脈沖數量。
將式(4)代入式(3)得
(5)
若取晶振頻率
,則
(6)
三、器件選擇
3.1 LM311P
LM311P電壓比較器是單比較器可以將模擬信號轉換成二值信號,即只有高電平和低電平兩種狀態的信號。該比較器有兩個輸入端和一個輸出端。兩個輸入端一個稱為同相輸入端,用“+”表示,另一個稱為反相輸入端,用“-”表示。用作比較兩個電壓時,任意一個輸入端加一個固定電壓做參考電壓,另一端加一個待比較的信號電壓。在二者幅度相等時,輸出電壓將產生躍變,即:
當“+”端電壓高于“-”端時,輸出管截止,相當于輸出端開路。
當“-”端電壓高于“+”端時,輸出管飽和,相當于輸出端接低電位。
3.4 ARM開發板
ARM作為嵌入式系統的處理器,具有低電壓,低功耗和高集成度等特點,并具有開放性和可擴充性,其能在電源電壓為2.7V-3.6V的范圍正常工作,其對外電路的供電電源為4V。開發板包括定時器(含晶振)、計數器、中斷系統、CPU處理器、數碼管顯示器、A/D和D\A轉換器等模塊,該開發板可以應用到本設計中。
四、系統設計
4.1 外部電路


圖3 外部電路圖
本項目外部電路由兩個如圖3所示的電路組成,其中
為輸入信號(正弦波),
為經過電壓比較器處理過后的輸出信號(方波)。
4.2 ARM開發板
4.2.1工作過程簡述
當ARM開發板接收到兩個輸入信號時,定時器的晶振啟動,同時中斷系統實時監控兩個輸入信號(其作用相當于“異或門”),控制計數器讀出兩信號在(0,1)或(1,0)時晶振產生的脈沖次數,并通過CPU進行算法運算,實時輸出到數碼管顯示器上(框圖如圖1 ARM開發板模塊)。
4.2.2模塊介紹
定時器:定時器的內部晶振頻率為...,可以通過分頻的方法設置所需頻率的晶振。本設計采用的是163.28Kz頻率的晶振,當檢測到輸入信號時晶振便開始產生脈沖,計數器(計數定時器)溢出周期為0.4s。由此估測所能測得最低頻率為3Hz。(輸入波形周期不能超過定時器溢出周期)。
中斷系統:本設計設置兩個中斷,采用上升沿中斷,分別捕獲輸入IO口的兩路波形的上升沿。在每個上升沿中斷處實現:
①定時器計數讀出;
②計數器清零;
③對累計的脈沖數進行均值算法。
計數器:由中斷系統控制,進行清零和計數這兩個任務。鑒于計數器在于累計計數時有上限,故程序設置計數器每次累計到程序設定值時自動清零。
CPU處理器:用于接收計數器輸出的數字,根據脈沖計數法相位差測量原理進行算法運算(包括平均值運算),并將結果輸出到數碼管。
數碼管顯示:本項目數碼管采用八段數碼管作為輸出顯示器件。顯示方式為動態實時顯示,并且把小數點一直顯示到最后一位,此時,LED 數碼管的第一、二、三位是用來對相位差進行顯示的,最后一位是用來進行小數顯示的。
五、系統測試
5.1測試儀器
信號發生器、數字式相位差計。
5.2測試方法
利用信號發生器產生兩個同頻信號,不斷改變兩個信號的相位差,并分別記錄下信號發生器的相位差設設置數據與數字相位差即所測量出的數據,各7組。
5.3測試結果
5.3.1實驗數據
頻率: Hz 幅值:3V
頻率: Hz 幅值:3V
頻率: Hz 幅值:3V
頻率: Hz 幅值:3V
5.3.2數據處理
算數平均值:
標準差估計值:
算數平均值的標準誤差估計值:
算數平均值的置信限:
當P=,
時,查表得

測量結果:
5.3.3誤差分析
系統誤差:
(1)LM311P是高增益,寬頻帶器件,如果輸出端到輸入端有寄生電容而產生耦合,當比較器改變狀態時,輸出信號很容易產生振蕩。這種現象出現在當比較器改變狀態時,輸出電壓過渡的間隙,從而使得生成的方波產生誤差。
改進方法:采用遲滯比較器代替單限比較器,即在單限比較器電路中引入正反饋,從而加快比較器的響應速度,免除由于電路寄生耦合而產生的自激振蕩。但是反饋電阻阻值的選擇也尤為重要,反饋電阻過大導致比較器的比較精度降低,反饋電阻過小導致比較器高低電平的變化速率降低,經過多次模擬仿真,我們選擇43
作為我們電路中的反饋電阻。
(2)本設計是將輸入信號與1.5V的電壓比較,大于1.5V為高電平,小于1.5V的為低電平。如圖4所示虛線為信號通過比較器后的理想輸出波形,但實際情況為圖4的實線,由于導線和電阻的影響導致固定電壓大于(或小于)1.5V,從而使得輸出方波的高電平脈寬偏小(或偏大),從而產生誤差。
圖4實際輸出方波比較圖
(3)計數器在對晶振脈沖進行計數時,脈沖頻率過高時,計數器對一個相位差脈寬脈沖過多,計數器計數準確率會降低,會產生誤差。
脈沖頻率過低時,計數器對一個相位差脈寬內的晶振脈沖計數更準確,但是脈沖數量過少不能完整表示整個相位差的脈寬,會產生誤差。
圖5 晶振脈沖示意圖
改進方法:本設計將晶振的頻率設置為163.28Kz,從而減小了由于頻率過高或過低而產生的誤差。
隨機誤差:
5.3.3結果分析
5.4測試出現問題及解決方法
- 我們將輸入信號頻率分別設置為1kHz、100Hz、50Hz和10Hz四種情況,分別對其相位差從0°~180°,每隔30°進行測試,并記錄下數據。由實驗數據可以發現該設計的精度不高,每次測量均會偏大2°左右,產生誤差。
解決方法:這種問題是由于硬件性能不夠精準而產生的問題,我們對所測得的數組數據進行處理,即求測量數據的偏差均值,對軟件算法進行修改來補償硬件所造成的誤差。
- 當輸入信號頻率較低為10Hz時,數碼管顯示相位差數據會出現抖動的情況,該問題屬于硬件問題,難以解決。
附錄:
主程序