來源:微計算機信息,作者:吳峰;朱瑞祥;張會娟;黃玉祥;單士睿
引言
數(shù)字頻率信號具有抗干擾能力強、便于遠距離傳輸、后續(xù)電路輸入靈活、接口簡單、占用系統(tǒng)資源少等優(yōu)點。所以在一些非快速過程的前向通道中,愈來愈多采用V/F轉(zhuǎn)換來代替通常的A/D轉(zhuǎn)換,在各類傳感器中數(shù)字化傳感器所占的比重也越來越大[1]。由于數(shù)字化傳感器的大量使用,在密度計、溫度計、轉(zhuǎn)速表等各類智能儀表中經(jīng)常要對頻率信號進行測量。而現(xiàn)有的頻率測量系統(tǒng)是由單片機構(gòu)成的,主要采用單芯片進行測量,在測量過程中,對數(shù)據(jù)進行乘除運算要占用一定的CPU時間,存在運算期間信號無法采集、測量系統(tǒng)效率低等缺點。針對這些問題,本文開發(fā)了一種由雙8051芯片組成的頻率測量系統(tǒng),它可以有效的解決頻率測量系統(tǒng)在測量時產(chǎn)生的上述問題。
雙8051芯片的頻率測量系統(tǒng)的硬件主要由兩片8051芯片、施密特整形器、RAM/IO擴展器8155及LED顯示器等構(gòu)成,其硬件系統(tǒng)電路組成框圖如圖1所示。
工作原理是將被測信號Ix經(jīng)過施密特整形器后變成標準的方波信號,然后將整形后的信號送到8051a中,該芯片負責收集信號的相關(guān)數(shù)據(jù),再將8051a測量得到的數(shù)據(jù)輸入到8051b中進行計算,最后將得到的頻率值由8051b輸出到顯示器顯示。
3 軟件系統(tǒng)設(shè)計
軟件系統(tǒng)主要是通過雙8051芯片的協(xié)作完成任務(wù)的,軟件系統(tǒng)流程圖如圖2所示。該系統(tǒng)采用模塊化程序結(jié)構(gòu),由8051 a和8051 b軟件模塊構(gòu)成。a片用于采集信號,其程序模塊主要有:主程序模塊、測量程序1模塊、測量程序2模塊;b片用于計算和輸出結(jié)果,其程序模塊主要有:主程序模塊、計算模塊、中斷服務(wù)模塊。其中幾個主要程序模塊的功能如下。
3.1 8051a的程序
8051a主要負責信號的采集,它采用測頻率(測量方式1)、測周期(測量方式2)兩種方法,并利用8051b的計算結(jié)果判斷應當采用哪種測量方案。
3.1.1 主程序功能
8051a的功能主要是用來測量信號,并根據(jù)從8051b中讀取的數(shù)據(jù),判斷該采用哪種測量方式,然后將測量數(shù)據(jù)發(fā)送給8051b,主程序流程圖如圖3所示。首先,將并行接口芯片8155進行初始化,然后從8155接口讀取8051b的數(shù)據(jù),以此來判斷是采用測量方式1還是測量方式2,然后再調(diào)用相關(guān)的子程序進行測量,最后把測量方式和所得數(shù)據(jù)發(fā)送給8051b。(本系統(tǒng)采用振蕩頻率為12MHz,所以最大測量范圍是15.259Hz-0.5MHz[2])
3.1.2 測量方式1程序功能
測量方式1采用測頻率法,主要用于高頻段測量,它是利用單片機的定時計數(shù)器測量一定時間內(nèi)脈沖信號的個數(shù)得到頻率值[3],測量方式1程序流程圖如圖4所示。首先,給T0、T1設(shè)置工作模式并賦初始值,以T0作為定時器、T1作為計數(shù)器,然后給T0設(shè)定一段時間,T1由脈沖的上升沿觸發(fā)計數(shù),并啟動定時器T0,同時啟動計數(shù)器T1進行計數(shù),當計時結(jié)束時關(guān)閉計數(shù)器,最后將計數(shù)器T1的計數(shù)結(jié)果進行讀取并保存。
3.1.3 測量方式2程序功能
測量方式2采用測周期法,主要用于低頻段測量,它是通過測量一個信號的周期并進行計算可得到頻率值[4],測量方式2程序流程圖如圖5所示。首先,給T0設(shè)置工作模式為方式2,即16位定時器,對內(nèi)部機器周期計數(shù),當信號由0變1時開始計時,當信號再由0變1時結(jié)束計時,則此時計時器所記時間就為信號的周期。
3.2 8051b的程序
8051b主要負責計算由8051a輸出的數(shù)據(jù),并將計算結(jié)果輸出到8051a及顯示器。
3.2.1 主程序功能
8051b的主程序功能是將8051a的數(shù)據(jù)進行計算并輸出,8051b主程序流程圖如圖6所示。首先,將各個芯片和數(shù)據(jù)進行初始化,然后給8051a發(fā)送數(shù)據(jù)0,開中斷,將8051a中傳入的數(shù)據(jù)進行計算,最后將計算結(jié)果輸出到8051a和顯示器。
3.2.2 中斷程序功能
中斷程序的功能主要是用來接收8051a的數(shù)據(jù),中斷程序流程圖如圖7所示。首先,將有用的數(shù)據(jù)壓入堆棧,然后將8051a發(fā)過來的數(shù)據(jù)進行接收,最后將壓入堆棧的數(shù)據(jù)進行釋放。
4 分析
在單8051芯片的頻率測量系統(tǒng)中,芯片采樣和計算是按順序依次進行的。通常,多字節(jié)的乘除法運算需要運行幾十條指令,并耗費大量的機器時間。在進行計算的過程中,單8051芯片無法進行采樣,導致許多信息在這一過程中丟失,但是采用了雙8051芯片后,將采樣和計算兩部分分開進行,能有效地利用雙8051芯片,減少信號的測量周期,提高頻率測量系統(tǒng)的效率。
5 結(jié)束語
采用雙8051芯片有效地克服了單8051芯片的不足,加快了頻率測量系統(tǒng)的反應速度,提高了頻率測量系統(tǒng)的效率,應用在實時控制系統(tǒng)中能顯著提高系統(tǒng)的實時性。雙8051芯片具有測量效率高、反應速度快等優(yōu)點,可廣泛應用于許多實時控制及其它需要快速測量的系統(tǒng)中。
責任編輯:gt
評論