摘要:本文給出基于8098單片機(jī)的
脈沖測量儀的硬件、軟件及抗干擾措施。實(shí)際使用證明該測量儀穩(wěn)定、可靠、精度高、測量速度快。
1、測量原理
8098單片機(jī)具有性能十分優(yōu)良的高速輸入輸出通道,HSO0~HSO5為高速輸出通道,能產(chǎn)生輸出寬度與周期均可調(diào)的脈沖波(PWM)。HSI0~HSI3為高速輸入通道,CPU通過它們可以同時(shí)接受來自外部的4個(gè)脈沖信號(hào),并且隨時(shí)記錄脈沖信號(hào)中的高、低電平出現(xiàn)的時(shí)間,非常適用于對脈沖參數(shù)的檢測。
以高速輸入通道HSI為例,HSI部件有自己的中斷功能,當(dāng)控制寄存器IOC1,7=1時(shí),F(xiàn)IFO存儲(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è)通道的輸入信號(hào)進(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引腳與脈沖信號(hào)發(fā)生器的輸出端(Vout)連接,單片機(jī)的Vss與脈沖信號(hào)發(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)行測量。