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