1 前 言
工業(yè)生產(chǎn)中,常使用示波器對各類設(shè)備的傳感器信號加以測量和觀察,在生產(chǎn)線上也會同樣使用示波器來檢驗產(chǎn)品性能。由于示波器價格不扉,此類作法已經(jīng)不適應(yīng)大規(guī)模生產(chǎn)產(chǎn)品。產(chǎn)品的批量生產(chǎn)意味著購買更多的示波器,從而使生產(chǎn)成本增加;其次由于示波器操作復(fù)雜,普通操作員工對示波器的操作熟練程度也會嚴(yán)重影響生產(chǎn)效率;最后在環(huán)境欠佳的生產(chǎn)現(xiàn)場,塵土、濕氣、溫度等外界環(huán)境影響將會縮短示波器的壽命。
誠然,開發(fā)完全取代示波器的硬件設(shè)備有一定難度,但示波器在生產(chǎn)檢驗中的用途一般是單一的、確定的,如檢測信號輸入的時間差值、檢測信號的觸發(fā)邊沿時間、檢測信號的頻率、檢測信號的峰值等等功能,所以我們可以只針對某一特定功能,運用當(dāng)前的單片機技術(shù)開發(fā)一款信號檢測系統(tǒng)是可行的。本文將以檢測信號輸入時間差值為目的,介紹系統(tǒng)的設(shè)計與實現(xiàn)過程。
2 系統(tǒng)組成和應(yīng)用原理
2.1 系統(tǒng)設(shè)計目的
如上示波器界面截圖,檢測凸輪多齒上升沿信號與電流起始信號的時間差值,差值可選用1信號為基準(zhǔn)求出,并將其換算為角度,即為圖上兩虛線之間的方波信號個數(shù)(360轉(zhuǎn)速信號,1方波恰為1度)。
2.2 單片機信號測量原理
以單片機為核心,充分利用自身計數(shù)器/定時器的計數(shù)功能。大致測量方法分以下兩個方法:
高頻測量(<500 KHZ):
采用測頻法測量高頻,在確定的閾值時間Tw內(nèi),記錄被測信號的變化周期數(shù)(或脈沖數(shù))Nx,則被測信號的頻率:fx=Nx/Tw。(對T0或T1的外部脈沖進行計數(shù),當(dāng)T0或T1引腳上發(fā)生負跳變時,計數(shù)器加1。由于識別引腳的負跳變需2個機器周期,即24個時鐘振蕩周期,T0/T1的最高頻率為1/24 fosc,當(dāng)晶體振蕩器頻率為12 MHz時,其最高計數(shù)頻率為500 kHz)。測頻法原理如圖所示:
低頻測量:
采用測周法測量低頻,測周期法需用標(biāo)準(zhǔn)信號的頻率fs,待測信號的一個周期Tx內(nèi),記錄標(biāo)準(zhǔn)頻率的周期數(shù)為Ns,則被測信號的頻率為:fx=fs/Ns。由于被測頻率較低,故可采用8051測量,首先要將被測信號轉(zhuǎn)換成門控信號,其原理如圖所示:
2.3 硬件開發(fā)
本次設(shè)計選用C8051F310單片機,該單片機的可編程計數(shù)器(PCA0)由一個專用的16位計數(shù)器/定時器和5個16位捕捉/比較模塊組成。其計算器/定時器由可編程的時基信號驅(qū)動,時基信號可以是系統(tǒng)時鐘的1/2,1/4,1/8,所以時基信號的精確更有利于擴展信號測量的頻率范圍,此外,信號捕捉/比較模塊也具有邊沿觸發(fā)捕捉工作方式。
單片機外圍電路:
P0.6 360 轉(zhuǎn)速信號中斷
P0.7 電流信號中斷
P0.0,P0.1 外接EEPROM(SPI數(shù)據(jù)傳輸)
P2.2-P2.7 LCD液晶顯示
P3.1,P3.2 鍵盤(未使用)
2.4 軟件開發(fā)
系統(tǒng)軟件設(shè)計采用Keil C51編寫。根據(jù)系統(tǒng)所測目的,可運用PCA計數(shù)器溢出中斷、PAC邊沿捕捉模式中斷,以及INT0、INT1中斷對波形進行計數(shù),未運用到信號測頻,測周原理便可以達到系統(tǒng)目的。
系統(tǒng)軟件設(shè)計流程為:單片機初始化;LCD初始化;計數(shù)器清零;轉(zhuǎn)速信號中斷;計數(shù)器+1;電流信號中斷;將此時計數(shù)值賦給電流時間量Y,凸輪多齒信號邊沿捕捉;將此時計數(shù)值賦給凸輪信號多齒輪發(fā)生時間量X,完成一次測試量,目標(biāo)值=Y(jié)-X;調(diào)用顯示函數(shù)顯示,發(fā)送結(jié)果至上位機。如下圖系統(tǒng)軟件設(shè)計流程:
3 系統(tǒng)運用結(jié)論
本方案系單片機的簡單運用,可運用于制造業(yè)特定信號測量,幫助企業(yè)降低購買昂貴儀器的成本。經(jīng)過實際使用,本系統(tǒng)運行穩(wěn)定,所測結(jié)果與使用示波器所測誤差在1度以內(nèi)。操作人員可通過LCD顯示直接觀察檢測結(jié)果,也可通過上位機軟件對其直接觀察,并通過上位機將每次所測數(shù)據(jù)加以保存,上位機采用C#編寫。該軟件顯示界面如下圖: