本發(fā)明涉及用于生成數(shù)字串行頻率輸出的設備和方法,并且更具體地涉及用于生成示出科里奧利(Coriolis)流量計中的流率的數(shù)字串行頻率輸出的設備和方法。
背景技術:
在過去,純機械設備從針對每次旋轉激活一開關的基本旋轉輪產生頻率輸出。這種類型的輸出被建立并且現(xiàn)在在各種工業(yè)應用中廣泛被需要。
頻率輸出(FO)是來自產生單線路的切換以產生頻率的設備的數(shù)字輸出。在流量測量工業(yè)中,頻率通常與期望的變量(諸如質量流率)成比例。流量測量技術已經在科里奧利質量流量計中詳細描述。
科里奧利質量流量計測量質量流和關于流過管道的材料的其他信息,如美國專利No.4,491,025和Re.31,450中所公開的。這些流量計通常包括流量計電子裝置部分和流量計傳感器部分。流量計傳感器具有直的或彎曲結構的一個或多個流管(flow tube)。每個流管結構具有一組固有振動模式,固有振動模式可以具有簡單的彎曲、扭轉、徑向或耦合類型。每個流管被驅動成按照這些固有振動模式之一以共振振蕩。振動的、材料填充的系統(tǒng)的固有振動模式部分地由流管和流管內的材料的組合質量來限定。當沒有材料流過科里奧利流量計傳感器時,沿著流管的所有點以基本上相同的相位振蕩。當材料流過流管時,科里奧利加速度使得沿流管的點具有不同的相位。流量計傳感器的入口側的相位滯后于驅動器,而流量計傳感器的出口側的相位超前驅動器。
科里奧利流量計傳感器通常包括兩個拾取器(pick-off),用于產生正弦信號,該正弦信號代表在沿著流管的不同點處的流管的運動。由流量計電子裝置計算從拾取器接收的正弦信號的相位差。拾取信號之間的相位差與流過流量計傳感器的材料的質量流率成比例。圖1中示出了科里奧利流量計的示例。
流量計電子裝置接收來自拾取器的拾取信號。流量計電子裝置處理拾取信號以計算通過流量計傳感器的材料的質量流率、密度或另一屬性。
在具有許多復雜外圍設備的集成電路上實現(xiàn)的微控制器通常用在所有流量計中。廣泛可用的微控制器是通用的,并且因此成本低,并且不是專門為流量計設計的。圖2中示出了微控制器的示例。
為了測量瞬時流率,低“抖動”是重要的。抖動被定義為任何給定脈沖的周期的精度。例如,如果奇數(shù)個脈沖是99.9Hz而偶數(shù)個脈沖是100.1Hz,則平均頻率將是100Hz,但是輸出將被稱為具有0.1/100或0.1%的抖動。
為了測量總集成流量,高精度(在分辨率方面)是重要的。例如,給定1個脈沖等于1克的示例,如果產生998個脈沖,但是該設備測量到1000克,則該輸出將被稱為具有998/1000或0.2%的精度。
關于頻率輸出的其他方面,存在一類雙頻率輸出(通常稱為正交),其中對于正向流,一個頻率輸出超前另一個頻率輸出達90度相位,或對于負向流,滯后達90度相位。另一方面是非5??0%占空比要求。頻率輸出必須在寬的范圍內起作用,通常在0.001Hz和10000Hz之間起作用;但是有時需要更高和更低的頻率。
如上所述,生成頻率輸出的一種方式是利用“通用”數(shù)字硬件計時器電路,其存在各種類型,并且通??稍谖⒖刂破魃汐@得。在該方法中,硬件計時器(通常具有除以n和中斷能力)被編程為在特定量的時間內輸出特定頻率。然而,該方法具有幾個缺點。因為所得到的頻率來自于除以n算法,所以即使在高頻輸入時鐘的情況下也隨之發(fā)生顯著的抖動。例如,給定10MHz的輸入時鐘和9999Hz的期望輸出,計時器必須在10000Hz(除以1000)和9990.01Hz(除以1001)之間交替。另外,因為硬件計時器的輸出的相位對準與計時器計數(shù)器更新時間不一致,所以產生能夠保持對輸出脈沖數(shù)的精確跟蹤的算法也是具有挑戰(zhàn)性的。第三個缺點是,通用計時器最多為32位;在必需8個十進制的情況下提供大約五個十進制的范圍。因此,必須引入不同的輸入時鐘和交叉閾值;并且隨之而來的是不連續(xù)性,閾值下的抖動增加以及維持脈沖精度中的增加的復雜性。最后,根據“通用”計時器的個體特征,可能很難實現(xiàn)頻率輸出的“其他方面”,例如正交性、脈沖寬度等。
用于生成頻率輸出的不太常見的方式是通過使用“速率倍增器”。該硬件通常在微控制器中不可用,但是可以內置到ASIC(專用集成電路)、FPGA(現(xiàn)場可編程門陣列)或其他定制電路中。速率倍增器克服“通用”計時器方法的幾個缺點,包括易于跨越所需范圍(使得不引入交叉)并且易于保持脈沖精度(因為更新時間的相位對準總是與輸出匹配)。此外,因為它是通過定制硬件來實現(xiàn)的,所以頻率輸出的“其他方面”(諸如正交性和脈沖寬度)是容易實現(xiàn)的。然而,速率倍增器需要外部硬件,并且在保持低抖動方面是次優(yōu)的(并且是非確定性的)。
除了速率倍增器之外,用于產生頻率輸出的幾種其他方式可以被構思并實現(xiàn)在定制硬件(例如,ASIC、FPGA等)上。然而,所有這些選項共享速率倍增器方案的相同的基本缺點,也就是將存在額外的部件、降低的可靠性和增加的成本。
最后,可以使用模擬電子裝置產生頻率輸出。這在純機械和數(shù)字電子裝置之間的過渡時期是常見的偏好。示例性模擬電路是將電壓轉換成頻率的壓控振蕩器。由于模擬性質,轉換不是100%精確的(例如,1V可能預期被轉換為1000Hz,但是由于模擬部件公差可能是999.9Hz或1000.1Hz)。在模擬電子裝置中,雖然頻率輸出具有接近零的抖動,但是輸出也具有差的脈沖計數(shù)精度。此外,雖然可以將數(shù)字反饋集成到模擬電子裝置中以補償脈沖計數(shù)精度,但是這引入了時延并降低絕對頻率精度。
因此,現(xiàn)有技術中需要一種微控制器設備和方法來通過提供數(shù)字串行頻率輸出來克服上述問題,該微控制器設備和方法:計及給定輸入時鐘中的抖動、脈沖計數(shù)精度、絕對精度,具有實現(xiàn)包括正交性和脈沖寬度的“其他方面”的能力,并且不需要專門的外部硬件。
技術實現(xiàn)要素:
本發(fā)明克服了上述問題并且通過提供針對給定輸入時鐘的理論上最低的抖動、最高可能的脈沖計數(shù)精度、最高可能的絕對精度、容易可實現(xiàn)的“其他方面”(正交性、脈沖寬度等)來提高現(xiàn)有技術,并且不需要專門的外部硬件。
本發(fā)明的各方面
在本發(fā)明的一個方面中,一種在微控制器上生成頻率輸出的方法包括:初始化具有預定周期的輸入時鐘信號;基于所述預定周期計算參數(shù);基于所計算的參數(shù)和預定流率-頻率比率來計算期望頻率;計算多個分數(shù)脈沖,其中,基于所述期望頻率、所述輸入時鐘信號的預定周期和前一分數(shù)脈沖的值來計算所述多個分數(shù)脈沖中的每個分數(shù)脈沖,并且當所計算的分數(shù)脈沖大于或等于輸出脈沖周期的一半時,通過切換輸出狀態(tài)來輸出所述期望頻率。
優(yōu)選地,其中,如果所述前一分數(shù)脈沖是初始分數(shù)脈沖,則所述前一分數(shù)脈沖的值被設置為零。
優(yōu)選地,其中,基于所述輸入時鐘信號的所述預定周期、所計算的參數(shù)和所述預定流率-頻率比率來計算所述輸出脈沖周期。
優(yōu)選地,其中,所述流量計電子裝置被配置為測量瞬時流率。
優(yōu)選地,其中,所述流量計電子裝置被配置為基于被切換的輸出狀態(tài)的數(shù)目和所述預定流率-頻率比率來測量總集成流量。
優(yōu)選地,其中所述參數(shù)包括流率。
在本發(fā)明的一個方面中,一種振動流量計(5)包括:流量計組件(10),包括一個或多個流管(103A,103B)以及第一和第二拾取傳感器(105,105');驅動器(104),被配置為使所述一個或多個流管(103A,103B)振動;以及耦合到所述第一和第二拾取傳感器(105,105')并且耦合到所述驅動器(104)的流量計電子裝置(20),其中所述流量計電子裝置(20)通過被如下配置來生成頻率輸出:初始化具有預定周期的輸入時鐘信號;基于所述預定周期計算參數(shù);基于所計算的參數(shù)和預定流率-頻率比率來計算期望頻率;計算多個分數(shù)脈沖,其中,基于所述期望頻率、所述輸入時鐘信號的預定周期和前一分數(shù)脈沖的值來計算所述多個分數(shù)脈沖中的每個分數(shù)脈沖,并且當所計算的分數(shù)脈沖大于或等于輸出脈沖周期的一半時,通過切換輸出狀態(tài)來輸出所述期望頻率。
優(yōu)選地,其中,如果所述前一分數(shù)脈沖是初始分數(shù)脈沖,則所述前一分數(shù)脈沖的值被設置為零。
優(yōu)選地,其中,基于所述輸入時鐘信號的所述預定周期、所計算的參數(shù)和所述預定流率-頻率比率來計算所述輸出脈沖周期。
優(yōu)選地,其中所述流量計電子裝置被配置為測量瞬時流率。
優(yōu)選地,其中,所述流量計電子裝置被配置為基于被切換的輸出狀態(tài)的數(shù)目和所述預定流率-頻率比率來測量總集成流量。
優(yōu)選地,其中所述參數(shù)包括流率。
附圖說明
相同的附圖標記在所有附圖上表示相同的元件。附圖不一定按比例。
圖1圖示了現(xiàn)有技術中的科里奧利流量計。
圖2圖示了現(xiàn)有技術中的微控制器的框圖。
圖3圖示了根據本發(fā)明的實施例的示例性頻率輸出。
圖4圖示了根據本發(fā)明的實施例的流程圖。
具體實施方式
圖1-4和以下描述描繪了流量計電子裝置的具體示例,用于教導本領域技術人員如何制造和使用本發(fā)明的最佳模式。為了教導發(fā)明原理的目的,流量計電子裝置的一些常規(guī)方面已經被簡化或省略。本領域技術人員將從落入本發(fā)明范圍內的這些示例理解變體。本領域技術人員將理解,下面描述的特征可以以各種方式組合以形成本發(fā)明的多個變體。結果,本發(fā)明不限于下述具體示例,而是僅由權利要求及其等同物來限定。
圖1圖示了現(xiàn)有技術中的科里奧利流量計5。作為示例而非限制,明確地設想了本發(fā)明的實施例可以是振動導管傳感器,包括科里奧利質量流量計和振動密度計。作為示例性實施例,科里奧利流量計5包括科里奧利流量計傳感器組件10和流量計電子裝置20。流量計電子裝置20經由路徑100連接到傳感器組件10,以提供路徑26上的質量流率、密度、體積流率、總質量流信息和其他信息。根據已知流量計設計(圖1中未示出),路徑26表示承載關于多個通信信道的信息的多個輸出端口。
流量計傳感器組件10包括一對凸緣101和101'、歧管102以及流管103A和103B。驅動器104和拾取傳感器105和105'以及溫度傳感器107被連接到流管103A和103B。撐桿106和106'用于限定每個流管103A和103B振蕩所圍繞的軸線W和W'。
當流量計傳感器組件10被插入到承載被測量材料的管道系統(tǒng)(圖1中未示出)中時,材料通過凸緣101進入流量計傳感器組件10,通過材料被引導進入流管103A和103B的歧管102,流過流管103A和103B,并返回到歧管102,材料從歧管102通過凸緣101'離開流量計傳感器組件10。流管103A和103B被選擇并適當?shù)匕惭b到歧管102,以具有基本上相同的質量分布、慣性矩和分別關于彎曲軸線W-W和W'-W'的彈性模量。流管103A、103B以基本上平行的方式從歧管102向外延伸。流管103A、103B由驅動器104關于他們相應的彎曲軸線W和W'在相反的方向上、以流量計的所謂的第一異相彎曲模式被驅動。驅動器104可以包括許多公知的布置中的任何一個,諸如安裝到流管103A的磁體和安裝到流管103B的相對線圈,并且交流電流通過所述線圈以使兩個流管振動。適當?shù)尿寗有盘栍闪髁坑嬰娮友b置20經由引線110被施加到驅動器104。
拾取傳感器105和105'在流管的相對端上被固定到流管103A和103B中的至少一個,以測量流管的振蕩。當流管103A、103B振動時,拾取傳感器105、105'生成第一拾取信號和第二拾取信號。第一和第二拾取信號被施加到引線111和111'。
溫度傳感器107被固定到流管103A和103B中的至少一個。溫度傳感器107測量流管的溫度,以便修改系統(tǒng)的溫度平衡。路徑112將溫度信號從溫度傳感器107承載到流量計電子裝置20。
流量計電子裝置20接收分別出現(xiàn)在引線111和111'上的第一和第二拾取信號。流量計電子裝置20處理第一和第二拾取信號以計算通過流量計傳感器組件10的材料的質量流率、密度或其他屬性。該計算的信息由流量計電子裝置20通過路徑26被施加到利用裝置(圖1中未示出)。在示例性實施例中,流量計電子裝置20包括示例性微控制器(如圖2中所示),以便生成頻率輸出。
圖2圖示了現(xiàn)有技術中的示例性微控制器的框圖。在實施例中,示例性微控制器包括核心和各種外圍設備。在實施例中,核心是發(fā)生計算的微控制器的一部分。在實施例中,外圍設備可以包括用于系統(tǒng)、各種存儲器、時鐘、安全和完整性、模擬、計時器、通信接口和人機接口(HMI)(也稱為人類機器接口(MMI))的各種部件。作為示例性微控制器的一部分,可以用于產生頻率輸出的外圍設備包括:計時器/計數(shù)器、通用輸入輸出引腳(GPIO)以及各種串行流送接口,諸如UARTS、SPORTS、I2C、SPI和I2S。根據本發(fā)明的各方面,頻率輸出可以以物理方式出現(xiàn)在GPIO上或基于串行的通信接口(例如,I2C、i2S或SPI)中的一個上。
在圖3中,示出了根據本發(fā)明的頻率輸出的示例性實施例。在操作中,在該示例中,通過已知方法周期性地以1Hz計算諸如流率之類的參數(shù)。因為T(秒)=1/f(Hz),所以可以使用已知的計算來確定各時間周期(T)=0-1,1-2和2-3秒期間的參數(shù),諸如流率。
在計算期望的輸出頻率時,使用用戶可選擇的流率計算率(m)(如下面段落所述)。在圖3的示例中,對于第一周期(T=0-1秒),用戶將流率計算率(m)選擇為100克/秒。每當流率被確定時,對應于該流率的期望頻率也被確定,并且該頻率將被輸出,直至下一個周期流率確定。在第一周期的示例中,基于所計算的流率(m)和用戶輸入的預定流率-頻率比率(x)或每速率頻率來確定10Hz的期望頻率。例如,為了在100克/秒的已知流率情況下獲得10Hz的期望頻率,用戶輸入的預定流率-頻率比率(x)為0.1。
如圖3中所示,對于第一周期,10Hz的期望頻率導致輸出10個完整脈沖,其中每個脈沖跳變表示切換的輸出狀態(tài)(例如,從高到低或從低到高)。
對于第二周期(T=1-2秒),例如使用已知的計算方法,將流率重新計算為8克/秒。在第二周期的示例中,基于8克/秒的所計算的流率(m)和0.1的用戶輸入的預定流率-頻率比率((x),也稱為每速率頻率),來確定0.8 Hz的期望頻率。
如圖3中所示,對于第二周期,由于用戶需要以0.8Hz的頻率計算的流率,所以輸出“0.8”個完整脈沖。在該示例中,僅發(fā)生一個脈沖跳變(對應于切換的輸出狀態(tài)),并且一個完整脈沖仍然要被輸出。因此,在T=2秒處,脈沖的分數(shù)部分被“留下”,并且必須在第三周期(T=2-3秒)中納入考慮。在本發(fā)明的實施例中,通過分數(shù)脈沖周期(FP)來計及這種情況。如在以下段落中的算法和表中所述,可以基于期望頻率(m*x)、初始化的輸入時鐘周期(p)和前一分數(shù)脈沖(FP)來計算分數(shù)脈沖周期(FP)(FP=FP+(m*x*p))。
在圖3的其他細節(jié)中,在示例性實施例中,以20Hz設置初始化的輸入時鐘周期(p)。按照每秒20個實例,由流量計中的示例性微控制器運行以下算法,以確定并然后設置每個輸入時鐘周期(p)的期望輸出狀態(tài)。
基本算法通過以下計算來定義:
(輸入):當前流率=m (例如100g/s)
(常數(shù)):每速率頻率=x (例如10Hz=100g/s,x=0.1)
輸入時鐘周期=p (例如20Hz,p=0.05S)
(狀態(tài)變量):當前輸出狀態(tài)
分數(shù)脈沖
<對于每個輸入時鐘周期>
分數(shù)脈沖=分數(shù)脈沖+(m*x*p)
If (分數(shù)脈沖>= 0.5) {
分數(shù)脈沖=分數(shù)脈沖–0.5;
切換輸出狀態(tài)
}
下表是通過輸入時鐘周期示例示出當應用于圖3時的算法的計算和輸出的輸入時鐘周期。
作為分數(shù)脈沖(FP)的示例,在第二周期(T=1-2秒)中沒有輸出的0.8Hz的“剩余部分”在第三周期(T=2-3秒)中經由累加器中的“0.30”值來保持軌跡?!?.30”是在1.95秒處被留下的量,用作在(T=2-3秒)中的初始值。
而且,如上表和圖3中所示,跳變之間的時間(其中輸出狀態(tài)保持低或高)是期望輸出頻率的周期。
通過利用期望的輸出頻率的周期,流量計可以測量瞬時流率。例如,對于示例性輸出周期,使用等式:T(秒)=1/f(Hz)和每速率頻率(x),瞬時流率可以通過以下等式確定:瞬時流率(g/s)=期望頻率(Hz)/每速率頻率(x)。
此外,還可以通過對被切換的輸出狀態(tài)的數(shù)目進行計數(shù)并且考慮每速率頻率(x)來確定總集成流率。例如,在圖3中,在第一周期(T=0-1秒)中,10個切換的輸出狀態(tài)乘以0.1的每速率頻率(x)=100克/秒的總集成流量。
與其中10Hz表示100克/秒的圖3的上述示例相反,在另一實施例中,例如100Hz可以表示100克/秒。在該新的示例中,每個完整脈沖現(xiàn)在將表示1克。因此,本發(fā)明不旨在限于每速率頻率(x)的任何特定表征。
同樣,本發(fā)明也不限于輸入時鐘周期(p)的頻率的表征。作為示例并且如以上段落中所述,本發(fā)明提供了在給定輸入時鐘周期(p)中的抖動的精確表示。本發(fā)明可以利用以下等式來確定最大抖動的百分比:
最大抖動(%)=最大輸出頻率(Hz)/輸入時鐘頻率(Hz)
使用上述等式,如果期望在抖動小于0.1%的情況下0至10kHz的頻率輸出,則將需要10MHz的輸入時鐘(p)。
在圖4中,提供了根據本發(fā)明的實施例的流程圖。在步驟401中,初始化輸入時鐘信號,輸入時鐘信號具有多個周期中的預定周期。接下來在步驟402中,確定是否已經度過輸入時鐘周期。這樣做時,輸入時鐘被確立為預定的固定頻率。例如,如果輸入時鐘為1MHz,則輸入時鐘的每個周期將為1uS。因此,輸入時鐘是設計的用戶可選擇部分,并且因此是預定的。在本發(fā)明的某些實施例中,輸入時鐘是流量計中最快的時鐘。如果在操作中輸入時鐘不是最快的時鐘,則可以使用各種方法來確定何時度過輸入時鐘,諸如輪詢或軟件中斷。
如果輸入時鐘周期已經度過,則在步驟403中,確定是否已經度過了足夠的時鐘輸入周期,使得可以計算新的流率。這與“用戶可選擇流率計算速率(m)”相關。例如,如果輸入時鐘是10,000Hz,并且用戶想要以10Hz計算的流率,則將存在每個流率計算所度過的(10,000Hz/10Hz=100)100個輸入時鐘。
如果步驟403被確定為“是”,則在步驟404中,計算新的流率。通過計算新的流率,可以基于所計算的流率(m)和用戶輸入的預定流率-頻率比率(x)來計算期望頻率(m*x)。如果步驟403被確定為“否”,則在步驟405中,基于期望頻率(m * x)、初始化的輸入時鐘周期和前一分數(shù)脈沖(FP)來計算分數(shù)脈沖周期(FP);(FP=FP+(m*x*p))。然而,如果前一分數(shù)脈沖是初始分數(shù)脈沖,則前一分數(shù)脈沖可以被設置為零。
在步驟406中,確定分數(shù)脈沖周期是否大于或等于輸出脈沖周期的一半或0.5,其中輸出脈沖周期是關于頻率(p=1/f)來確定的。這樣,分數(shù)脈沖周期對應于輸出周期已經度過的持續(xù)時間。如果分數(shù)脈沖不大于或等于0.5,則將得到的脈沖周期輸入到步驟402。
如果步驟406中的分數(shù)脈沖大于或等于0.5,則在步驟407中,通過以下等式調整分數(shù)脈沖,F(xiàn)P=FP-0.5。分數(shù)脈沖現(xiàn)在表示剩余部分值,并且觸發(fā)輸出狀態(tài)的切換。
在步驟408中,當分數(shù)脈沖周期大于或等于輸出脈沖周期的一半時,現(xiàn)在通過切換輸出狀態(tài)來提供針對特定流率的期望頻率。然后,當?shù)玫降姆謹?shù)脈沖被輸入到步驟402時,操作循環(huán)繼續(xù)。
在示例性實施例中,通常在微控制器上的串行輸出硬件可以用于減輕處理負擔。這種類型的硬件包括但不限于I2S、SPI、USARTS/ARTS、“SPORTS”以及甚至一些JTAG端口。此外,DMA也可以用于減輕處理負擔。
為了包含各種類型的串行輸出硬件(例如,SPI、DMA等),輸出狀態(tài)的“塊”將被預先計算,并且然后被提供給所述硬件以按照“輸入時鐘速率”輸出。這是有利的,因為它通過減少每個輸出計算的開銷來減少帶寬要求。例如,在SPI情況下,8、16或32個輸出狀態(tài)的塊可以被預先計算,并且然后由標準SPI硬件‘自動’輸出。DMA可以用于將塊大小進一步增加到任何期望的大小。
有利地,本發(fā)明可以容易地被增強以包含任何“其他方面”(正交性、脈沖寬度等)。
有利地,本發(fā)明可以在任何期望的頻率輸出范圍上是完全可縮放的,期望的頻率輸出范圍僅受限于被選擇用于實現(xiàn)所述計算的特定數(shù)據類型的分辨率和輸入時鐘頻率。在實施例中,標準數(shù)據類型包括整數(shù)(例如8、16、32或64位)或浮點(通常為IEEE534單精度或雙精度)。
本描述描繪了教導本領域技術人員如何制造和使用本發(fā)明的最佳模式的具體示例。為了教導發(fā)明原理的目的,一些常規(guī)方面已被簡化或省略。本領域技術人員將理解來自這些示例的落入本發(fā)明范圍內的變體。
上述實施例的詳細描述不是由發(fā)明人設想的在本發(fā)明的范圍內的所有實施例的詳盡描述。實際上,本領域技術人員將認識到,上述實施例的某些元素可以被不同地組合或消除以產生其他實施例,并且這樣的其他實施例落入本發(fā)明的范圍和教導內。對于本領域普通技術人員來說還將顯而易見的是,上述實施例可以整體或部分地組合以在本發(fā)明的范圍和教導內產生附加實施例。
因此,雖然本文中出于說明的目的描述了本發(fā)明的具體實施例和示例,但是如相關領域的技術人員將認識到的,在本發(fā)明的范圍內的各種等同修改是可能的。本文提供的教導可以被應用于除了上述和附圖中所示的實施例之外的其他實施例。因此,本發(fā)明的范圍由所附權利要求確定。