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