本實(shí)用新型一般地涉及計(jì)量領(lǐng)域,具體地涉及一種脈沖計(jì)數(shù)裝置。
背景技術(shù):
目前的儀表多采用霍爾傳感器、干簧管傳感器等來實(shí)現(xiàn)計(jì)量,此類儀表主要通過傳感器來累計(jì)脈沖輸出。干簧管和霍爾傳感器的使用非常廣泛。例如,水表里的指針帶有磁鐵,當(dāng)該指針轉(zhuǎn)到某個(gè)位置時(shí),恰好使干簧管與磁鐵吸合,指針每轉(zhuǎn)一圈水表就計(jì)數(shù)一次。另外,也可采用雙干簧管,即當(dāng)檢測到一個(gè)干簧管吸合時(shí),先記錄下來,只有在檢測到另一個(gè)干簧管吸合之后才認(rèn)為有效,此時(shí)記錄脈沖并且對脈沖進(jìn)行累計(jì)。通過計(jì)算轉(zhuǎn)軸圈數(shù)得出相應(yīng)的用水量,交替輸出脈沖信號。
現(xiàn)有技術(shù)主要通過采集微控制器端口的下降沿和上升沿中斷以及電平寬度來實(shí)現(xiàn)脈沖的有效性檢測。首先,每個(gè)脈沖的有效性檢測需要通過微控制器執(zhí)行相應(yīng)的程序來實(shí)現(xiàn),這樣由于需要開啟微控制器內(nèi)部時(shí)鐘執(zhí)行相應(yīng)的程序,因此導(dǎo)致微控制器的功耗增加,從而減少水表在正常工作情況下內(nèi)部電池的使用壽命。其次,如果水表此刻正在處理其它實(shí)時(shí)事件,比如預(yù)付費(fèi)卡操作,則極有可能由于此時(shí)微控制器與卡內(nèi)數(shù)據(jù)進(jìn)行交互而來不及檢測脈沖,進(jìn)而導(dǎo)致丟失脈沖,從而使得計(jì)算出的用水量不準(zhǔn)確。
技術(shù)實(shí)現(xiàn)要素:
本實(shí)用新型提出一種可以降低設(shè)備功耗的脈沖計(jì)數(shù)裝置,在實(shí)現(xiàn)準(zhǔn)確的脈沖檢測和脈沖累積的同時(shí),還能避免出現(xiàn)由于微控制器與卡內(nèi)數(shù)據(jù)交互而導(dǎo)致錯過計(jì)算脈沖之類的缺陷。
本實(shí)用新型提出一種脈沖計(jì)數(shù)裝置,包括時(shí)鐘選擇模塊、控制模塊、計(jì)數(shù)模塊和存儲模塊;所述控制模塊分別與所述時(shí)鐘選擇模塊、所述計(jì)數(shù)模塊和所述存儲模塊連接;所述時(shí)鐘選擇模塊用于選擇內(nèi)部時(shí)鐘的種類;所述計(jì)數(shù)模塊用于對輸入的脈沖進(jìn)行計(jì)數(shù),并將計(jì)數(shù)結(jié)果存儲到所述存儲模塊;所述存儲模塊用于存儲操作參數(shù)和所述計(jì)數(shù)結(jié)果;以及所述控制模塊用于控制所述時(shí)鐘選擇模塊和所述計(jì)數(shù)模塊的運(yùn)行,并在所述計(jì)數(shù)結(jié)果達(dá)到計(jì)數(shù)閾值時(shí)產(chǎn)生中斷。
優(yōu)選地,所述操作參數(shù)包括以下各項(xiàng)中的一個(gè)或多個(gè):脈沖的濾波時(shí)間、脈沖的最小寬度、計(jì)數(shù)閾值、超時(shí)時(shí)間以及多路脈沖的到達(dá)順序。
優(yōu)選地,所述脈沖計(jì)數(shù)裝置的工作模式包括以下各項(xiàng)之一:單路計(jì)數(shù)模式、多路計(jì)數(shù)模式。
優(yōu)選地,當(dāng)所述控制模塊檢測到符合條件的有效脈沖時(shí),重新計(jì)算所述計(jì)數(shù)結(jié)果;并且當(dāng)所述計(jì)數(shù)結(jié)果達(dá)到所述計(jì)數(shù)閾值時(shí),發(fā)送中斷信號;并且所述條件包括以下各項(xiàng)中的一個(gè)或多個(gè):脈沖的寬度達(dá)到脈沖的最小寬度;脈沖的持續(xù)時(shí)間達(dá)到規(guī)定時(shí)間;多路脈沖的先后到達(dá)順序符合預(yù)設(shè)的到達(dá)順序。
優(yōu)選地,所述控制模塊還用于檢測輸入脈沖的初始電平狀態(tài)。
優(yōu)選地,所述脈沖計(jì)數(shù)裝置還包括設(shè)置模塊,所述設(shè)置模塊用于初始化和/或設(shè)置所述脈沖計(jì)數(shù)裝置的所述操作參數(shù)。
本實(shí)用新型還提出一種微控制器,包括中央處理器以及上述脈沖計(jì)數(shù)裝置;所述脈沖計(jì)數(shù)裝置,包括時(shí)鐘選擇模塊、控制模塊、計(jì)數(shù)模塊和存儲模塊;所述控制模塊分別與所述時(shí)鐘選擇模塊、所述計(jì)數(shù)模塊和所述存儲模塊連接;所述時(shí)鐘選擇模塊用于選擇內(nèi)部時(shí)鐘的種類;所述計(jì)數(shù)模塊用于對輸入的脈沖進(jìn)行計(jì)數(shù),并將計(jì)數(shù)結(jié)果存儲到所述存儲模塊;所述存儲模塊用于存儲操作參數(shù)和所述計(jì)數(shù)結(jié)果;以及所述控制模塊用于控制所述時(shí)鐘選擇模塊和所述計(jì)數(shù)模塊的運(yùn)行,并且當(dāng)所述計(jì)數(shù)結(jié)果達(dá)到所述計(jì)數(shù)閾值時(shí),所述控制模塊向所述中央處理器發(fā)送中斷信號。
優(yōu)選地,所述操作參數(shù)包括以下各項(xiàng)中的一個(gè)或多個(gè):脈沖的濾波時(shí)間、脈沖的最小寬度、計(jì)數(shù)閾值、超時(shí)時(shí)間以及多路脈沖的到達(dá)順序。
優(yōu)選地,所述脈沖計(jì)數(shù)裝置的工作模式包括以下各項(xiàng)之一:單路計(jì)數(shù)模式以及多路計(jì)數(shù)模式;當(dāng)所述控制模塊檢測到符合條件的有效脈沖時(shí),重新計(jì)算所述計(jì)數(shù)結(jié)果;并且當(dāng)所述計(jì)數(shù)結(jié)果達(dá)到所述計(jì)數(shù)閾值時(shí),發(fā)送中斷信號;并且所述條件包括以下各項(xiàng)中的一個(gè)或多個(gè):脈沖的寬度達(dá)到脈沖的最小寬度;脈沖的持續(xù)時(shí)間達(dá)到規(guī)定時(shí)間;多路脈沖的先后到達(dá)順序符合預(yù)設(shè)的到達(dá)順序。
優(yōu)選地,所述控制模塊還用于檢測輸入脈沖的初始電平狀態(tài)。
附圖說明
包括附圖是為提供對本公開內(nèi)容的進(jìn)一步的理解。附圖示出了本公開內(nèi)容的實(shí)施例,并與本說明書一起起到解釋本公開內(nèi)容原理的作用。在結(jié)合附圖并閱讀了下面的對特定的非限制性本公開內(nèi)容的實(shí)施例之后,本公開內(nèi)容的技術(shù)方案及其優(yōu)點(diǎn)將變得顯而易見。其中:
圖1示出了根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的脈沖計(jì)數(shù)裝置的結(jié)構(gòu)示意圖。
圖2示出了根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的雙路輸入脈沖的示意圖。
圖3示出了根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的微控制器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
參考在附圖中示出和在以下描述中詳述的非限制性實(shí)施例,更完整地說明本公開內(nèi)容的多個(gè)技術(shù)特征和有利細(xì)節(jié)。并且,以下描述忽略了對公知的原始材料、處理技術(shù)、組件以及設(shè)備的描述,以免不必要地混淆本公開內(nèi)容的技術(shù)要點(diǎn)。然而,本領(lǐng)域技術(shù)人員能夠理解到,在下文中描述本公開內(nèi)容的實(shí)施例時(shí),描述和特定示例僅作為說明而非限制的方式來給出。
在任何可能的情況下,在所有附圖中將使用相同的標(biāo)記來表示相同或相似的部分。此外,盡管本公開內(nèi)容中所使用的術(shù)語是從公知公用的術(shù)語中選擇的,但是本公開內(nèi)容的說明書中所提及的一些術(shù)語可能是公開內(nèi)容人按他或她的判斷來選擇的,其詳細(xì)含義在本文的描述的相關(guān)部分中說明。此外,要求不僅僅通過所使用的實(shí)際術(shù)語,而是還要通過每個(gè)術(shù)語所蘊(yùn)含的意義來理解本公開內(nèi)容。
圖1示出了根據(jù)本實(shí)用新型的一個(gè)實(shí)施例的脈沖計(jì)數(shù)裝置的示意圖。脈沖計(jì)數(shù)裝置10包括時(shí)鐘選擇模塊101、計(jì)數(shù)模塊102、存儲模塊103、控制模塊104以及設(shè)置模塊105。控制模塊104分別與時(shí)鐘選擇模塊101、設(shè)置模塊105、計(jì)數(shù)模塊102以及存儲模塊103連接。
其中,時(shí)鐘選擇模塊101可用于選擇內(nèi)部時(shí)鐘的種類,例如內(nèi)部高速晶振、內(nèi)部低速晶振、外部高速晶振或外部低速晶振。
設(shè)置模塊105可用于初始化和/或設(shè)置脈沖計(jì)數(shù)裝置10的相關(guān)參數(shù),包括但不限于脈沖的濾波時(shí)間、最小寬度、計(jì)數(shù)閾值以及超時(shí)時(shí)間等。優(yōu)選地,若檢測到的脈沖的寬度小于最小寬度,則不計(jì)為有效脈沖;以及/或者,若檢測到的脈沖的持續(xù)時(shí)間超過超時(shí)時(shí)間,則不計(jì)為有效脈沖。本領(lǐng)域技術(shù)人員可以理解的是,還可以根據(jù)實(shí)際情況設(shè)置其他相關(guān)的參數(shù)。
進(jìn)一步地,若有效的脈沖計(jì)數(shù)值達(dá)到計(jì)數(shù)閾值,則表示本次計(jì)數(shù)任務(wù)已完成,由控制模塊104觸發(fā)中斷,微控制器內(nèi)的中央處理器接管后面的工作。
計(jì)數(shù)模塊102根據(jù)內(nèi)部時(shí)鐘以及所設(shè)置的各項(xiàng)參數(shù)對輸入的脈沖進(jìn)行計(jì)數(shù),并將計(jì)數(shù)結(jié)果存儲到存儲模塊103中。計(jì)數(shù)模塊102可采用例如16位(或32位)計(jì)數(shù)器或其他類型的計(jì)數(shù)單元等來實(shí)現(xiàn)。
存儲模塊103用于存儲計(jì)數(shù)模塊102寫入的脈沖計(jì)數(shù)值。進(jìn)一步地,所設(shè)置的各類參數(shù)(例如計(jì)數(shù)閾值等)也可存儲在存儲模塊103中。本領(lǐng)域技術(shù)人員可以理解,存儲模塊103可采用寄存器等常見的存儲設(shè)備來實(shí)現(xiàn)。
控制模塊104用于控制時(shí)鐘選擇模塊101、設(shè)置模塊105以及計(jì)數(shù)模塊102的運(yùn)行。在一個(gè)實(shí)施例中,當(dāng)檢測到當(dāng)前的計(jì)數(shù)結(jié)果達(dá)到計(jì)數(shù)閾值時(shí),控制模塊104將中斷標(biāo)志位置位,并向微控制器內(nèi)的中央處理器發(fā)送中斷信號。該控制模塊可通過單片機(jī)等硬件設(shè)備來實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員可以理解的是,上述設(shè)置模塊105可用于對脈沖計(jì)數(shù)裝置進(jìn)行初始化和參數(shù)配置。在另一個(gè)實(shí)施例中,該設(shè)置模塊可被省略(附圖未示出),并且其對應(yīng)的功能可由中央處理器20或控制模塊104來實(shí)現(xiàn)。
在本實(shí)用新型中,脈沖計(jì)數(shù)裝置10可在以下工作模式之一中工作:單路計(jì)數(shù)模式和多路計(jì)數(shù)模式。在一個(gè)實(shí)施例中,脈沖計(jì)數(shù)裝置在單路計(jì)數(shù)模式下工作,即脈沖計(jì)數(shù)裝置對輸入的單路脈沖進(jìn)行計(jì)數(shù)。在開始計(jì)數(shù)之前,可將輸入脈沖的初態(tài)設(shè)置為例如高電平(或低電平)。當(dāng)脈沖計(jì)數(shù)裝置中的控制模塊檢測到一個(gè)有效的低電平(或高電平)脈沖時(shí),計(jì)算脈沖計(jì)數(shù)值,例如將脈沖計(jì)數(shù)值加1或減1。當(dāng)有效的脈沖計(jì)數(shù)值達(dá)到計(jì)數(shù)閾值時(shí)產(chǎn)生中斷。
如圖2所示,在另一個(gè)實(shí)施例中,脈沖計(jì)數(shù)裝置10可在多路計(jì)數(shù)模式下工作。當(dāng)多路計(jì)數(shù)模式具體是雙路計(jì)數(shù)模式時(shí),即脈沖計(jì)數(shù)裝置對輸入的雙路脈沖(即脈沖A和脈沖B)進(jìn)行計(jì)數(shù)。在開始計(jì)數(shù)之前,可將輸入脈沖的初態(tài)設(shè)置為例如高電平。當(dāng)檢測到兩個(gè)先后到來的有效低電平脈沖時(shí),例如若有效低電平脈沖A在有效低電平脈沖B之前到來,則脈沖計(jì)數(shù)值加1或減1。當(dāng)有效的脈沖計(jì)數(shù)值達(dá)到計(jì)數(shù)閾值時(shí)可產(chǎn)生中斷。
更進(jìn)一步地,如果雙路脈沖的到達(dá)先后順序與設(shè)定值不同也可以產(chǎn)生中斷。在一個(gè)優(yōu)選的實(shí)施例中,如果雙路脈沖的到達(dá)先后順序不同,即不是按照預(yù)先設(shè)定的先后順序到達(dá),則以水表為例,就說明針對水的流向存在反方向計(jì)量的問題。此時(shí),應(yīng)當(dāng)產(chǎn)生中斷以通知中央處理器此時(shí)的計(jì)量是反方向的,即出現(xiàn)故障。
或者,如果雙路脈沖同時(shí)為低電平且超過設(shè)定的超時(shí)時(shí)間,也可產(chǎn)生中斷。在一個(gè)實(shí)施例中,水表采用兩路干簧管進(jìn)行計(jì)量。如果接收到的雙路脈沖同時(shí)為低電平并且持續(xù)了預(yù)定的超時(shí)時(shí)間,則說明此時(shí)有外部磁干擾導(dǎo)致兩路干簧管同時(shí)閉合。此時(shí),應(yīng)當(dāng)產(chǎn)生中斷以通知中央處理器等待相應(yīng)的處理。兩個(gè)干簧管的相對機(jī)械位置決定了,水表在正常的運(yùn)行過程中不會出現(xiàn)兩個(gè)干簧管同時(shí)閉合的情形。
本實(shí)用新型提出的脈沖計(jì)數(shù)裝置的基本工作原理如下:上電后,控制模塊(或設(shè)置模塊)進(jìn)行初始化,初始化的內(nèi)容包括但不限于:配置工作模式(例如單路計(jì)數(shù)模式或多路計(jì)數(shù)模式),配置端口復(fù)用模式,配置中斷標(biāo)志位,設(shè)置超時(shí)時(shí)間、脈沖最小寬度、計(jì)數(shù)閾值等。
初始化完成后,脈沖計(jì)數(shù)裝置根據(jù)所配置的工作模式對相應(yīng)的輸入脈沖進(jìn)行檢測。當(dāng)檢測到符合條件的有效脈沖時(shí),將脈沖計(jì)數(shù)值加1或減1。當(dāng)脈沖計(jì)數(shù)值達(dá)到計(jì)數(shù)閾值時(shí),將中斷標(biāo)志位置位,并向微控制器的中央處理器發(fā)送中斷信號。上述條件包括以下各項(xiàng)中的一個(gè)或多個(gè):脈沖寬度達(dá)到脈沖最小寬度;脈沖持續(xù)時(shí)間達(dá)到規(guī)定時(shí)間;多路脈沖的先后達(dá)到順序符合預(yù)設(shè)的順序。
本領(lǐng)域技術(shù)人員可以理解的是,對脈沖的計(jì)數(shù)方法不限于上述的加1或減1運(yùn)算,也可以采用所屬技術(shù)領(lǐng)域中常見的其他計(jì)算方法。
在另一個(gè)實(shí)施例中,脈沖計(jì)數(shù)裝置中的控制模塊可對輸入脈沖的初始電平狀態(tài)進(jìn)行檢測。以脈沖計(jì)數(shù)裝置在雙路計(jì)數(shù)模式下工作為例,此時(shí)的輸入脈沖分別為脈沖A和脈沖B(如圖2所示)。假設(shè)脈沖A和脈沖B的初始狀態(tài)均應(yīng)為高電平,則在上電后,脈沖計(jì)數(shù)裝置中的控制模塊首先檢測脈沖A和脈沖B的電平狀態(tài):
a.如果脈沖A和脈沖B均為高電平,則脈沖計(jì)數(shù)裝置進(jìn)入計(jì)數(shù)狀態(tài)。
b.如果脈沖A為高電平且脈沖B為低電平,則脈沖計(jì)數(shù)裝置開始計(jì)時(shí),如果在設(shè)置的超時(shí)時(shí)間內(nèi)脈沖B沒有電平變化,則表示脈沖B端口異常,可產(chǎn)生中斷信號以通知中央處理器;如果脈沖B在設(shè)置的超時(shí)時(shí)間內(nèi)變?yōu)楦唠娖剑瑒t脈沖計(jì)數(shù)裝置進(jìn)入計(jì)數(shù)狀態(tài)。
c.如果脈沖A為低電平且脈沖為高電平,則脈沖計(jì)數(shù)裝置開始計(jì)時(shí),如果在設(shè)置的超時(shí)時(shí)間內(nèi)脈沖A沒有電平變化,則表示脈沖A端口異常,可產(chǎn)生中斷信號以通知中央處理器;如果脈沖A在設(shè)置的超時(shí)時(shí)間內(nèi)變?yōu)楦唠娖?,則脈沖計(jì)數(shù)裝置進(jìn)入計(jì)數(shù)狀態(tài)。
根據(jù)上述實(shí)施例,本領(lǐng)域技術(shù)人員能夠得出當(dāng)兩路輸入脈沖的初始電平狀態(tài)均為低電平時(shí)、或者脈沖計(jì)數(shù)裝置在單路計(jì)數(shù)模式下工作時(shí),該脈沖計(jì)數(shù)裝置可采取的初始電平檢測動作。
本領(lǐng)域技術(shù)人員可以進(jìn)一步理解的是,當(dāng)脈沖計(jì)數(shù)裝置在多路計(jì)數(shù)模式下工作時(shí),可以對兩路以上的輸入脈沖進(jìn)行有效性檢測和計(jì)數(shù)。
與現(xiàn)有技術(shù)中微控制器本身對外部端口所傳輸?shù)拿總€(gè)上升(或下降)沿脈沖進(jìn)行有效性檢測及脈沖累積相比,本實(shí)用新型提出的上述脈沖計(jì)數(shù)裝置本身即可實(shí)現(xiàn)對脈沖的有效性檢測和計(jì)數(shù),并在達(dá)到計(jì)數(shù)閾值時(shí)向微控制器內(nèi)的中央處理器發(fā)出中斷信號。即在達(dá)到計(jì)數(shù)閾值之前,微控制器內(nèi)的中央處理器、時(shí)鐘、寄存器、總線等部件均可處于休眠狀態(tài),并且該中央處理器僅在接收到脈沖計(jì)數(shù)裝置發(fā)送的中斷請求信號時(shí)被喚醒,這大大地降低了微控制器的整體功耗。
如圖3所示,本實(shí)用新型還提出一種微處理器30,該微處理器30包括上述脈沖計(jì)數(shù)裝置10和中央處理器20。當(dāng)脈沖計(jì)數(shù)裝置10檢測到脈沖計(jì)數(shù)值達(dá)到所設(shè)定的計(jì)數(shù)閾值時(shí),向中央處理器20發(fā)送中斷信號。當(dāng)中央處理器20執(zhí)行完相應(yīng)的處理之后,脈沖計(jì)數(shù)裝置10重新進(jìn)入計(jì)數(shù)狀態(tài)。
與現(xiàn)有的微控制器采用軟件對脈沖計(jì)數(shù)的方法不同,本實(shí)用新型提出的脈沖計(jì)數(shù)裝置無需微控制器內(nèi)的中央處理器進(jìn)行干預(yù),甚至可以在微控制器的主時(shí)鐘和主程序停止工作的情況下獨(dú)立完成脈沖計(jì)數(shù)任務(wù),這極大地降低了微控制器用于脈沖計(jì)數(shù)的功耗,提高了微控制器的工作效率。脈沖計(jì)數(shù)裝置可由微控制器來供電。當(dāng)脈沖計(jì)數(shù)裝置執(zhí)行計(jì)數(shù)任務(wù)時(shí),整個(gè)微控制器內(nèi)部只有脈沖計(jì)數(shù)裝置在工作。
另外,由于脈沖計(jì)數(shù)裝置內(nèi)設(shè)置有單獨(dú)的控制模塊和內(nèi)部時(shí)鐘,脈沖計(jì)數(shù)任務(wù)可以由脈沖計(jì)數(shù)裝置獨(dú)立地完成,這不但能夠增強(qiáng)微控制器的可靠性,還能提高微控制器的執(zhí)行速度,并且降低丟失脈沖的風(fēng)險(xiǎn)。
雖然本實(shí)用新型的一些實(shí)施方式已經(jīng)在本申請文件中予以了描述,但是對本領(lǐng)域技術(shù)人員顯而易見的是,這些實(shí)施方式僅僅是作為示例示出的。本領(lǐng)域技術(shù)人員可以想到眾多的變型方案、替代方案和改進(jìn)方案而不超出本實(shí)用新型的范圍。所附權(quán)利要求書旨在限定本實(shí)用新型的范圍,并藉此涵蓋這些權(quán)利要求本身及其等同變換的范圍內(nèi)的方法和結(jié)構(gòu)。