亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        STM32的頻率采集方法在實時操作系統(tǒng)的應(yīng)用

        2021-03-11 03:34:18呂新張博劉志堅王瑞闞京波
        電子技術(shù)與軟件工程 2021年21期
        關(guān)鍵詞:設(shè)置方法系統(tǒng)

        呂新 張博 劉志堅 王瑞 闞京波

        (中車大連機車研究所有限公司 遼寧省大連市 116000)

        STM32F4 系列是意法公司基于arm 內(nèi)核的中端產(chǎn)品,擁有數(shù)量較多的通用定時器[1],及DMA 通道。針對捕獲頻率方法,通用定時器擁有豐富的配置方案。

        工控系統(tǒng)中,頻率采集是一項基本功能。頻率輸入量一般為PWM 波或者正弦波樣式,通過硬件光耦轉(zhuǎn)換為高低電平。軟件計算頻率方法根據(jù)ST 系統(tǒng)配置模式的不同,會稍有區(qū)別。但為了精度要求,都要滿足奈奎斯特采樣定律,在大于10 倍采樣頻率才會有較高的精度[2]。對于一般捕獲模式及計頻方法,通過電平變化時間差,計算頻率;對與PWM 輸入捕獲模式,只需要設(shè)置定時器采樣頻率,計數(shù)上升沿或者下降沿數(shù)量,可計算出頻率,通過DMA模式,不中斷實時系統(tǒng)的任務(wù),很大程度減輕系統(tǒng)的工作量。

        1 控制方案

        1.1 捕獲采樣

        配置定時器模式為捕獲模式,捕獲上升、下降沿時間,若捕獲周期過低,則會存在N 次溢出,就需要對可能溢出次數(shù)預(yù)估,做出判斷。如圖1所示,若定時器周期為T,t1 時刻計數(shù)值CNT1,t2 時刻捕獲值為CNT2,兩次捕獲值相減,需要注意,加上溢出次數(shù),否則會丟失頻率。若預(yù)分頻設(shè)為0,自動重裝值設(shè)為T,計算公式為CNT1>CNT2 時,(CNT1-CNT2) * N*T,若CNT1<CNT2 時,計算公式為N*T-CNT2 +CNT1。

        圖1:捕獲采樣原理

        捕獲采樣面臨的問題是,定時器的周期設(shè)置不能過小,否則采樣精度會下降。此時中斷會對系統(tǒng)任務(wù)有很大影響,尤其當(dāng)多通道采集頻率時,實時任務(wù)響應(yīng)不及時的現(xiàn)象時有發(fā)生,CPU 占用率高。

        1.2 計頻方式

        計頻模式是利用STM32 自帶的ETR 引腳計算脈沖數(shù),捕獲步驟如圖2所示,設(shè)置為向上計數(shù)器,分頻一般設(shè)置為0 即可,濾波器在這里設(shè)置為5 次濾波,設(shè)置為外部計數(shù)模式2。

        圖2:計頻方式時鐘原理圖

        可以利用實時系統(tǒng)時間鉤子函數(shù),每隔N 毫秒中斷一次并讀取計數(shù),兩次相減即為N 毫秒的計數(shù)值cnt,再算出次數(shù)cout = 1000/N,頻率即為cnt * cout。

        捕獲模式的問題是,為了采集精度,計數(shù)值計算需要頻繁中斷累加計數(shù)值,頻率采集和實時系統(tǒng)會互相影響,CPU 占用率高。

        1.3 PWM輸入捕獲DMA方法

        DMA 是直接通過外設(shè)到內(nèi)存的處理模式,廣泛應(yīng)用于高速信號處理相關(guān)領(lǐng)域[3],在本方法中主要發(fā)生在捕獲采樣階段,通過FIFO 不斷刷新內(nèi)存緩沖數(shù)組中的數(shù)據(jù),避免了CPU 被占用過多的資源,PWM 輸入捕獲以定時器1 通道為例,如圖3所示,通過濾波器,設(shè)置為5 次,邊沿檢測通過配置設(shè)置,一般設(shè)置為上升沿,本次利用從控制器的捕獲控制。一般PWM 輸入捕獲有兩個通道,分別為TI1FP1 和TI2FP2,利用其中一個計算頻率,另一個計算占空比。通過定時器DMA 相應(yīng)通道傳輸數(shù)據(jù)。捕獲計數(shù)為cnt,根據(jù)PWM 輸入捕獲的模式方法,與捕獲方法的最大不同為,每一個新周期cnt 重新清零。定時器時鐘周期為F,則頻率為F/cnt。

        圖3:PWM 輸入捕獲方法模塊原理圖

        PWM 輸入捕獲獲DMA 傳輸方法的問題是,數(shù)據(jù)DMA 中采集有一定波動,需要利用中值濾波進行濾波。

        2 方案的具體實施

        2.1 捕獲采樣的實現(xiàn)

        利用通用定時器配置計數(shù)周期,根據(jù)引腳外圍定義設(shè)置IC 通道,設(shè)置相關(guān)的IC 捕獲屬性。同時配置NVIC 中斷管理器相關(guān)優(yōu)先級,使能定時器的捕獲中斷配置信息。在中斷中計算兩次上升沿計數(shù)差值,在實時系統(tǒng)fi 任務(wù)中對頻率量作中值濾波[4]。計算頻率具體核心配置代碼如下:

        TIMx_ICInitStructure.TIM_Channex = TIM_Channel_x;

        TIMx_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;

        TIMx_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;

        TIMx_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;

        TIMx_ICInitStructure.TIM_ICFilter = 0x00;

        TIM_ICInit(TIMx, &TIMx_ICInitStructure);

        2.2 計頻方式的實現(xiàn)

        根據(jù)引腳定義,初始化相關(guān)引腳為外部捕獲引腳,系統(tǒng)設(shè)置定時器參數(shù),預(yù)分頻設(shè)置為0,周期設(shè)置為0xffff,模式為外部時鐘模式2.需根據(jù)采樣精度需要設(shè)置定時器中斷,本設(shè)計中利用系統(tǒng)自帶時間鉤子函數(shù),在鉤子函數(shù)中對外部捕獲(時鐘)信息計數(shù),精度精確到1HZ。在實時系統(tǒng)fi 任務(wù)中對相鄰的兩次計數(shù)值相減,對此值累加1000 次,即為周期數(shù)。

        2.3 PWM輸入捕獲DMA方法

        PWM 輸入捕獲是一種特殊的捕獲方式,也可以說是一種簡化的捕獲方案。定時器配置方案與捕獲采樣基本相同,只需要多配置一個模式選擇,同時根據(jù)圖3配置相應(yīng)時鐘從模式相應(yīng)參數(shù),如下代碼所示。重點需要考慮DMA 的相關(guān)配置。

        (1)DMA 配置基本信息;DMA 通道、DMA 外設(shè)基準(zhǔn)地址、DMA 內(nèi)存基準(zhǔn)地址、DMA 傳輸方向、DMA 傳輸數(shù)組大小、數(shù)據(jù)格式等;

        (2)DMA 模式設(shè)置為循環(huán)模式、FIFO 模式禁止。

        (3)使能DMA。

        (4)使能相應(yīng)定時器DMA 請求。

        TIM_PWMIConfig(TIMx, &TIMx_ICInitStructure); // 使能PWM 捕獲模式

        TIM_SelectInputTrigger(TIMx, TIM_TS_TI1FP1); //選擇輸入捕獲的觸發(fā)信號

        TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset);// PWM 輸入模式時,從模式必須工作在復(fù)位模式,當(dāng)捕獲開始時,計數(shù)器CNT 被復(fù)位清零;

        TIM_SelectMasterSlaveMode(TIM2,TIM_MasterSlaveMode_Enable);

        根據(jù)系統(tǒng)的采樣精度要求,系統(tǒng)采樣頻率上限為5000HZ,那么若一個DMA 緩沖區(qū)數(shù)據(jù)長度設(shè)置為10,在實時系統(tǒng)fi 任務(wù)中周期設(shè)置為10ms,讀取一次DMA 的傳輸結(jié)果的在一個任務(wù)周期中會有50 個周期,若一個fi 任務(wù)中周期設(shè)置為100ms,讀取一次DMA的傳輸結(jié)果的在一個任務(wù)周期中會有500 個周期,并在任務(wù)中作中值濾波,基本滿足性能要求。

        3 實驗驗證

        3.1 實時系統(tǒng)CPU占用率及所??臻g實驗

        在實時系統(tǒng)中分別建立不同的功能任務(wù),且主要邏輯任務(wù)為motor_task,motor_another_task,實時任務(wù)在系統(tǒng)運行過程中處于不同的三種狀態(tài)[5],在這些任務(wù)中調(diào)用了fi/fi_detect_task 中的頻率頻率采集值,系統(tǒng)中分別多次調(diào)用三種采集方式,為了保證實驗的準(zhǔn)確性,剩余部分代碼未變化,計算系統(tǒng)信息參數(shù)配置相同。如圖4所示,觀察CPU 剩余堆棧及占用率及變化,可以得到以下結(jié)果:

        圖4

        (1)主要實時主要邏輯任務(wù)motor_task 對應(yīng)上述三種采集方式所剩堆棧數(shù)量,可以得到采用中斷捕獲中任務(wù)處于阻塞態(tài),剩余堆棧數(shù)179;采用計頻方法,任務(wù)處于運行態(tài),剩余堆棧數(shù)179;采用PWM 輸入捕獲DMA 方式,任務(wù)處于運行態(tài),剩余堆棧數(shù)187;另一個實時任務(wù)motor_another_task,對應(yīng)上述三種方式,分別為阻塞態(tài),運行態(tài),運行態(tài)。所剩堆棧數(shù)分別為168,179,187。

        (2)主要實時主要邏輯任務(wù)motor_task 對應(yīng)上述三種采集方式運行計數(shù)值,可以得到采用中斷捕獲中任務(wù)處于阻塞態(tài),任務(wù)運行計數(shù)為6228;采用計頻方法,任務(wù)處于運行態(tài),任務(wù)運行計數(shù)為3450;采用PWM 輸入捕獲DMA 方式,任務(wù)處于運行態(tài),任務(wù)運行計數(shù)為357;另一個實時任務(wù)motor_another_task,對應(yīng)上述三種方式,分別為阻塞態(tài),運行態(tài),運行態(tài)。任務(wù)運行計數(shù)分別為15276,72941,310。

        從上述數(shù)據(jù)可以看出,使用捕獲采樣中斷方式對CPU 的運行效率影響是最大的,第二是計頻采集方式,對CPU 影響最小的是PWM 輸入捕獲DMA 方法。

        3.2 頻率精度實驗

        使用頻率信號發(fā)生器對三種采樣方式在實時系統(tǒng)中測量分析,數(shù)據(jù)對比表如表1所示。

        表1:頻率測量對比

        從表1可以看出,基于PWM 輸入捕獲DMA 采樣值在1kHz以內(nèi),相比其他兩種方法有更高的精度,當(dāng)大于1kHz 小于3kHz 時,小于等于1Hz 的誤差,也基本滿足一般條件工況的測量精度要求,當(dāng)大約3kHz 時,誤差逐步增大,精度下降。

        4 結(jié)論

        本文提出的PWM 輸入捕獲DMA 方法配合實時系統(tǒng)應(yīng)用,能夠很大程度的減輕實時系統(tǒng)中對CPU 的資源的占用,提高了系統(tǒng)的實時性響應(yīng)性,提升了軟件的執(zhí)行效率;且在一般應(yīng)用條件下滿足對頻率采集的精度要求。不額外增加頻率采樣器件,減少了額外的硬件成本。

        猜你喜歡
        設(shè)置方法系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        中隊崗位該如何設(shè)置
        少先隊活動(2021年4期)2021-07-23 01:46:22
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        本刊欄目設(shè)置說明
        中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        av无码一区二区三区| 亚洲一区二区三区在线观看| 国产特黄a三级三级三中国| 凌辱人妻中文字幕一区| 国产午夜鲁丝片av无码| 在线一区不卡网址观看| 国产不卡一区二区三区视频| 天天色天天操天天日天天射| 中文字幕网伦射乱中文| 国产性猛交╳xxx乱大交| 99久久久69精品一区二区三区| 日本中文字幕人妻精品| 亚洲日本国产精品久久| 亚洲国产精品ⅴa在线观看| 欧美午夜刺激影院| 久久午夜伦鲁鲁片免费| 黄色国产一区二区99| 日韩精品内射视频免费观看| 亚洲日韩中文字幕在线播放| 亚洲一区精品无码色成人| 免费国产黄片视频在线观看| 亚洲av成人波多野一区二区| 一区二区三区内射美女毛片 | 在线观看精品国产福利片100| 国产精品久久三级精品| 一区二区三区内射美女毛片 | 音影先锋色天堂av电影妓女久久| 少妇熟女天堂网av天堂| 色欲网天天无码av| 人体内射精一区二区三区| 激情亚洲综合熟女婷婷| 国产av综合网站不卡| 国产亚洲精品bt天堂精选| 亚洲精品123区在线观看| 伊人五月亚洲综合在线| 亚洲国产成人一区二区精品区| 天堂在线www中文| 青青草久热手机在线视频观看 | 国产精品半夜| 日本a一区二区三区在线| 亚洲综合精品中文字幕|