999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

常用電子測速法在某數字信號處理器中的應用*

2019-08-12 07:27:16吳俊馮國勝王點點
汽車工程師 2019年7期
關鍵詞:設置信號

吳俊 馮國勝 王點點

(石家莊鐵道大學)

傳統電子測速法的M法和T 法在實際應用當中,測量范圍、精度有限[1],這往往是由于DSP 計數器溢出[2]和DSP 執行程序需要一定的時間所導致的,其中T 法在測量低頻脈沖、M法在測量高頻脈沖時,測量結果不準確的情況更加頻繁。目前傳統的改善方法是通過復雜的軟硬件配置來實現準確測速。文章主要使用CodeWarrior 下更加高效的PE 編程工具,采用新的編程方法將 M 法和 T 法應用到數字信號處理器MC56F8346 的測速中,提高了傳統T 法、M法的測量范圍和精度。

1 MC56F8346硬件介紹

1.1 定時/計數器結構及工作模式

MC56F8346 是一款數字信號處理器,它的結構中包含數個定時模塊,每個定時模塊由4 組相同的16 位定時/計數器組成,其單個定時/計數器結構,如圖1所示。定時/計數器有2 種基本的工作模式:1)記錄內部和外部事件數,該模式應用在M法上;2)記錄每個外部事件之間所經歷的內部時鐘周期數,也就是得到外部事件的時間間隔,該模式應用在T 法上[3]。文章中,使用信號發生器產生一定頻率的方波信號來模擬編碼器產生的轉速信號,將此信號輸入至MC56F8346 引腳處,分別使用count(計數)模塊和capture(捕獲)模塊對方波信號計數。最終通過計算求得輸入信號的周期和頻率。使用M 法時,要先配置count 模塊,在計數過程中,當輸入高頻方波信號時,計數器會多次溢出;文章引入變量over(變量名),計數器每溢出1 次,變量就會加1。使用T 法時,要先配置capture 模塊,當輸入低頻方波信號時,計數器可能會多次溢出;同樣引入變量over,記錄溢出次數。

圖1 定時/計數器結構框圖

1.2 定時/計數器寄存器主要功能介紹

定時/計數寄存器(TMRCNTR)是16 位寄存器。其中,計數捕獲寄存器(TMRCAP)是16 位寄存器,該寄存器存儲從計數器捕獲的值;定時重裝載寄存器(TMRLOAD)是16 位寄存器,用來裝載計數器的值;定時控制寄存器(TMRCTRL)是16 位寄存器,其中的位15~13是計數模式控制位(CM);計數狀態/控制寄存器(TMRSCR)是16 位寄存器,位13 是計數器溢出標志位(TOF),位12 是計數器溢出中斷使能位(TOFIE),位11是輸入邊沿標志位(IEF),位10 是輸入邊沿中斷使能位 (IEFIE),位 7,6 是輸入捕獲模式位(CAPTURE MODE);定時比較寄存器 1(TMRCMP1)是 16 位寄存器,該寄存器存儲的數值與計數器數值進行比較;定時重裝載寄存器1(TMRCMPLD1)是16 位寄存器,該寄存器存放定時比較寄存器中的比較值;計數比較狀態/控制寄存器(TMRCOMSCR)是16 位寄存器,位6 是計數比較寄存器1 中斷使能位(TCF1EN),當TCF1EN 與TCF1 同時置1 時,產生計數比較中斷,位4 是計數比較寄存器1 標志位(TCF1),當比較寄存器比較成功后,TCF1 置 1。

2 使用PE工具設計程序

CodeWarrior 下的PE 編程工具是某公司開發的一款快速初始化工具,可以更加簡單、高效地完成項目任務。PE 支持該公司幾乎所有的嵌入式芯片,該工具會直接生成函數框架,編程人員在其中寫代碼即可,為編程人員提供了高效的工作環境。使用PE 編程流程,如圖2所示。

圖2 使用PE 編程流程圖

2.1 T法測周期

T法測周期,即通過記錄輸入脈沖信號2 個連續上升沿之間所經歷的內部時鐘周期數,經計算就會得到輸入脈沖信號周期。使用PE 工具編程時首先選擇Capture Components(捕獲元件),并對其進行設置[4]。之后,PE 生成相對應的Cap1_Init(void)初始化程序,初始化程序主要完成的工作有:

1)設置定時控制寄存器(TMRCTRL)。這里將位8,7(副計數脈沖源控制位)置為01,確定外部脈沖信號的輸入引腳為1。

2)設置計數狀態/控制寄存器(TMRSCR)。這里將位 12(TOFIE)、位 10(IEFIE)置 1,這樣就會使能計數器溢出中斷、輸入邊沿中斷。

3)清空定時/計數寄存器(TMRCNTR)、計數捕獲寄存器(TMRCAP)、定時重裝載寄存器(TMRLOAD)。

4)設置前分頻。這里將PCS 位設置為1 100,即IP總線時鐘為16 分頻。

5)設置定時控制寄存器(TMRCTRL)CM 位,選擇計數器的控制模式。這里設置為001,即在主計數脈沖上升沿計數。

6)設置計數狀態/控制寄存器(TMRSCR)Capture-Mode 位。這里設置為01,選擇上升沿裝載。

當底層程序初始化后,16 位定時/計數寄存器(TMRCNTR)就開始對系統時鐘循環計數。當定時/計數器達到滿值65 535(216-1)時,計數狀態/控制寄存器(TMRSCR)的位13 計數器溢出標志位(TOF)就會置1。由于將計數狀態/控制寄存器(TMRSCR)位 12(TOFIE)置為1,所以當TOF 為1 時,就會產生1 個計數器溢出中斷。在該中斷中編寫一個變量over,使其累加;那么每次計數器達到滿值時,就會進入中斷中,變量over 就會加1。

輸入的脈沖信號每當出現一個上升沿或下降沿時,就會置位 IEF。同時由于計數狀態/控制寄存器(TMRSCR)的位 10(IEFIE)置 1,就會產生輸入邊沿中斷。設置計數狀態/控制寄存器(TMRSCR)Capture Mode位為01,當置位IEF 時,設置為上升沿裝載。因此遇到上升沿時,計數器中的數據就存儲在捕獲寄存器中。

2 個相鄰上升沿發生時,可能的情況可以分為2 種:1)第1 個上升沿發生后,第2 個上升沿發生前,定時/計數寄存器沒有發生溢出;2)第1 個上升沿發生過后,在第2 個上升沿到來之前,定時/計數寄存器發生了溢出且可能不止1 次溢出,對應over 會遞增。在2 個相鄰的上升沿產生的邊沿中斷中,分別將2 次捕獲寄存器中的值賦給變量count1 和count2,同時記錄此時的溢出次數over1 和over2。中斷子程序流程圖,如圖3所示。

圖3 T 法中斷子程序流程圖

編寫程序如下:

#pragma interrupt called

void Cap1_OnCapture(void)

{

/*Write your code here...*/

index++;

if(index==1)

{

over1=over;

Cap1_GetCaptureValue( & count[index]);

}

if(index==2)

{

over2=over;

Cap1_GetCaptureValue( & count[index]);

……

index=0;

over=0;

}

}

2.2 M法測頻率

這種方法主要是通過測量一段時間內的脈沖個數來獲得轉速,也可以稱為測頻法。同樣,使用PE 編程時首先選擇EventCntr16,TimerInt Components,并對其進行設置。設置后,PE 底層生成的主要初始化程序包括TI1_Init(void),EC16_Init(void)。TI1_Init(void)主要完成的工作有:

1)設置控制寄存器(TMRA2_CTRL)。這里將位5(LENGTH)置1,這樣計數器到達預設值后重新初始化。

2)設置控制寄存器(TMRA3_CTRL)。這里將CM位置為0111,這樣就采用級聯計數模式,擴大了定時中斷的時間(Component 中設置為1 000 ms)。

3)設置計數狀態/控制寄存器(TMRA2_SCR,TMRA3_SCR)。

4)清空定時/計數寄存器(TMRA2_CNTR,TMRA3_CNTR)、定時重裝載寄存器(TMRA2_LOAD,TMRA3_LOAD)。

5)設置定時比較寄存器(TMRCMP1)。文中定時時間設置為1 s。因為采取級聯計數模式,即TMRA2 的輸出作為TMRA3 的輸入。這里將TMRA3_CMP1 設置為1 279,TMRA2_CMP1 設置為 46 874。每當 TMRA2 的計數器數值達到TMRA2_CMP1 所設置值(46 874)時,TMRA3 的計數器就會加1,直到達到TMRA3_CMP1 所設置值(1 279)時,產生比較成功中斷程序,這樣共計數46 874×1 279=59 951 846 次。

6)設置計數比較狀態/控制寄存器(TMRCOMSCR)。文章中采用級聯計數模式,這里將TMRA3_COMSCR 的TCF1EN 位置1,當與3 通道定時比較寄存器 1(TMRCMP1)完成比較時(TCF1 位置 1),計數比較寄存器就會發生中斷;CL1 位置1,即在與3 通道 TMRCMP1 比較成功后重裝初值。 將 TMRA2_COMSCR 的 CL1 位置 1,即在與 2 通道 TMRCMP1 比較成功后重裝初值。

7)1 279,46 874 分別寫入 TMRA3_CMPLD1,TMRA2_CMPLD1。

8)設置定時控制寄存器TMRA2_CTRL。這里設置PCS 位為1 000,即設置IP 總線時鐘為1 分頻。

9)清空定時/計數寄存器TMR2_CNTR,TMR3_CNTR。

10)設置定時控制寄存器TMRA2_CTRL。這里將CM位設為001,在主計數脈沖上升沿計數。

完成上述工作后,定時器產生的中斷間隔時間的計算,如式(1)所示。

其中60×106是CPU 源時鐘經過分頻得到的系統時鐘;59 951 846 是設置得到的計數值。因此得到中斷的時間為0.999 2 s,接近于1 s。

EC16_Init(void)主要完成的工作有:

1)設置控制寄存器(TMRA0_CTRL)。首先停止計數器的所有功能。

2)設置計數狀態/控制寄存器(TMRA0_SCR)。這里將TOFIE 位置1,當計數器溢出標志位(TOF)為1 時,產生計數器溢出中斷。

3)設置計數比較狀態/控制寄存器(TMRA0_COMSCR)。

4)清空定時/計數寄存器(TMRA0_CNTR)。.

5)設置控制寄存器(TMRA0_CTRL)。這里設置CM為001,即在主計數脈沖的上升沿計數。

在Component 中設置完成后,每1 s 會產生1 個定時中斷;同時當計數器A0 溢出后,就會進入溢出中斷,使變量over 加1。

圖4示出M法中斷子程序流程。

圖4 M 法中斷子程序流程圖

編寫程序如下:

void TI1_OnInterrupt(void)

{

/*Write your code here...*/

EC161_GetNumEvents( & count1);

over1=over;

……

}

void EC161_Interrupt(void)

{

clrRegBit(TMRA0_SCR,TOF);

……

over++;

}

同時要對底層程序進行修改,清空計數器的同時也要清空變量over。

byte EC161_Reset(void)

{

setReg(TMRA0_CNTR,0x00);

over=0;

……

}

該程序中,輸出變量count 值就是測量脈沖的頻率。

3 試驗結果分析

在實驗室中搭建測速平臺,通過信號發生器模擬轉速信號,通過M法和T 法測得的結果,如表1所示。信號發生器輸出信號的頻率在1~100 000 范圍內,用M法和T 法得到的測量誤差中,最大為3.74%,最小為0。整體來講,采用新的方法得到的試驗結果誤差范圍小、結果可靠。

表1 使用PE 編程的T 法和M 法測量結果表

4 結論

T 法和M法在電子測速過程中所存在的計數器溢出情況往往被忽略,文章對這種情況進行了處理,通過選用更加高效的PE 編程工具,采用新的軟件編程方法,對信號發生器輸出的模擬轉速信號進行了測速試驗。結果表明,該法比前人的軟件編程過程更高效、方便且整體代碼量小,當輸入信號頻率在1~100 000 Hz范圍內時,得到的測量結果誤差范圍小、可靠性高。該方法是否可行,還需要在實際的行車過程進行進一步驗證。

猜你喜歡
設置信號
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
7招教你手動設置參數
孩子停止長個的信號
基于LabVIEW的力加載信號采集與PID控制
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
一種基于極大似然估計的信號盲抽取算法
艦船人員編制的設置與控制
主站蜘蛛池模板: 国产三级国产精品国产普男人| 91免费观看视频| 波多野结衣一区二区三区88| 99色亚洲国产精品11p| a级毛片免费播放| 91视频青青草| 国产精品页| 亚洲综合九九| 夜夜高潮夜夜爽国产伦精品| 久久免费视频播放| 无遮挡国产高潮视频免费观看| 亚洲国产成人超福利久久精品| 亚洲精品大秀视频| av一区二区人妻无码| a级毛片网| 国产成人乱码一区二区三区在线| 99国产精品免费观看视频| 国产三级a| 国产综合无码一区二区色蜜蜜| 精品视频在线一区| 日本在线免费网站| 久久综合色视频| 夜夜拍夜夜爽| 成人看片欧美一区二区| 午夜a视频| 国产va在线| 黄色成年视频| 久久精品91麻豆| 91精品视频在线播放| 美女无遮挡免费视频网站| аv天堂最新中文在线| 久久国产精品77777| 亚洲日韩精品欧美中文字幕 | 欧美日韩激情在线| 免费看av在线网站网址| 最新无码专区超级碰碰碰| 就去色综合| 国产精品久久久久鬼色| 五月激情婷婷综合| 国产国产人成免费视频77777| 国产在线视频福利资源站| 激情无码字幕综合| 在线免费观看a视频| 国产又色又爽又黄| 婷婷六月在线| 久久精品aⅴ无码中文字幕| 国产日韩欧美中文| 国产丝袜一区二区三区视频免下载| 重口调教一区二区视频| 青青青视频蜜桃一区二区| 久久精品国产一区二区小说| 亚洲美女高潮久久久久久久| 国内精自线i品一区202| 国产午夜精品一区二区三区软件| 国产欧美日韩一区二区视频在线| 成人午夜天| a级毛片免费网站| 成人福利免费在线观看| 精品综合久久久久久97超人该| 欧美性爱精品一区二区三区| 婷婷亚洲视频| 一本久道久综合久久鬼色| 国产二级毛片| 亚洲人成电影在线播放| 国产成人亚洲精品蜜芽影院| 日韩中文字幕免费在线观看| 亚洲欧美一区在线| 成人免费午夜视频| 国产精品成人免费视频99| 色亚洲成人| 久久鸭综合久久国产| 国产丰满成熟女性性满足视频| 欧美午夜网站| 久久久噜噜噜| 久久精品这里只有精99品| 日本高清免费不卡视频| 亚洲日本中文字幕乱码中文| 天天躁狠狠躁| 亚洲中文精品人人永久免费| h网站在线播放| 免费视频在线2021入口| 亚洲免费播放|