摘要:本文給出基于8098單片機(jī)的脈沖測量儀的硬件、軟件及抗干擾措施。實(shí)際使用證明該測量儀穩(wěn)定、可靠、精度高、測量速度快。
1、測量原理
8098單片機(jī)具有性能十分優(yōu)良的高速輸入輸出通道,hso0~hso5為高速輸出通道,能產(chǎn)生輸出寬度與周期均可調(diào)的脈沖波(pwm)。hsi0~hsi3為高速輸入通道,cpu通過它們可以同時(shí)接受來自外部的4個(gè)脈沖信號,并且隨時(shí)記錄脈沖信號中的高、低電平出現(xiàn)的時(shí)間,非常適用于對脈沖參數(shù)的檢測。
以高速輸入通道hsi為例,hsi部件有自己的中斷功能,當(dāng)控制寄存器ioc1,7=1時(shí),fifo存儲(chǔ)區(qū)裝滿事件后發(fā)出中斷請求,如果ioc1,7=0,則保持寄存器在裝入事件后發(fā)出中斷請求,兩種原因引起的中斷請求可通過查詢狀態(tài)寄存器ios1而鑒別:如果fifo存儲(chǔ)區(qū)滿時(shí),ios1,6=1,反之,ios1,6=0;如果保持寄存器內(nèi)有值時(shí),ios1,7=1,反之,ios1,7=0。同時(shí),hsi0也有自己的中斷,只要hsi0引腳上有事件發(fā)生,便可以提出中斷請求。hsi有方式寄存器hsimode、狀態(tài)寄存器hsistatus和時(shí)間寄存器hsitime。hsi的方式寄存器hsimode可以規(guī)定每個(gè)通道的四種工作方式如下:
①方式0:每8次正跳變后即觸發(fā);②方式1:每次正跳變時(shí)即觸發(fā);③方式2:每次負(fù)跳變時(shí)即觸發(fā);④方式3:每次跳變(正或負(fù))時(shí)即觸發(fā)。
跳變檢測器按hsimode寄存器規(guī)定的工作方式對hsi0~hsi3共4個(gè)通道的輸入信號進(jìn)行監(jiān)視與檢測,并將有關(guān)引腳電平狀態(tài)的檢測結(jié)果送狀態(tài)寄存器hsistatus,同時(shí)還將有關(guān)事件是否發(fā)生的信息送入fifo單元。時(shí)間寄存器hsitime的內(nèi)容為事件發(fā)生時(shí)記錄下來的定時(shí)器t1的當(dāng)前值。
1.1硬件電路
圖1是由8098單片機(jī)組成的脈沖測量儀的電路原理圖。脈沖測量的結(jié)果由8個(gè)數(shù)碼管顯示,左邊4個(gè)用于脈沖寬度(μs)的顯示,右邊4個(gè)用于脈沖周期(μs)的顯示。
脈沖測量儀的輸入端,即單片機(jī)的hsi0引腳與脈沖信號發(fā)生器的輸出端(vout)連接,單片機(jī)的vss與脈沖信號發(fā)生器的gnd相連。
1.2軟件設(shè)計(jì)
整個(gè)軟件由兩大部分組成:主程序和hsi位0中斷服務(wù)程序。主程序如下:
hsi位0中斷服務(wù)程序的框圖如圖2所示。
系統(tǒng)中有一個(gè)16位的看門狗(wdt)硬件定時(shí)電路,當(dāng)系統(tǒng)復(fù)位時(shí),wdt停止工作,可在軟件中設(shè)定wdt清零指令,當(dāng)軟件運(yùn)行時(shí)即起動(dòng)wdt,如果軟件有故障時(shí),會(huì)造成wdt溢出而復(fù)位,從而防止程序跑飛。另外,單片機(jī)的電源采用了隔離變壓器和低通濾波網(wǎng)絡(luò)。在單片機(jī)的復(fù)位電路中,為防止毛刺和雜波的干擾,在其reset引腳與地之間,接入了一個(gè)提高抗*力的容值很小的電容。同時(shí),8098單片機(jī)為提高供電的可靠性,其vpd還單獨(dú)接到一個(gè)+5v的電池上,一旦+vcc消失時(shí),可以起到掉電保護(hù)的作用。
本系統(tǒng)經(jīng)過使用,具有穩(wěn)定、可靠、精度高、測量速度快等特點(diǎn)。在硬件上不需作改變,只是將脈沖發(fā)生器的輸出vout同時(shí)接到單片機(jī)的hsi0和hsi1,再運(yùn)行相應(yīng)的程序即可對連續(xù)發(fā)生的兩個(gè)事件在時(shí)間間隔(如窄脈沖)很短時(shí)的連續(xù)脈沖使用多通道法進(jìn)行測量。