国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于硬件角產(chǎn)生器的齒輪角度和轉(zhuǎn)速測(cè)量設(shè)計(jì)

2022-12-03 08:24:46尚國(guó)慶陶青平劉滿麗
電子與封裝 2022年11期
關(guān)鍵詞:計(jì)數(shù)器寄存器編碼器

尚國(guó)慶,陶青平,劉滿麗

(中國(guó)電子科技集團(tuán)公司第五十八研究所,江蘇無錫 214035)

1 引言

引擎控制系統(tǒng)的控制器在測(cè)量轉(zhuǎn)速的同時(shí),還必須在精確的齒輪角度產(chǎn)生如怠速控制、點(diǎn)火正時(shí)控制[1]和燃料噴射等信號(hào),因此對(duì)角度測(cè)量的分辨率要求越來越高。目前的測(cè)速器件主要有光電數(shù)字脈沖編碼器[2-5]、霍爾傳感器[6-9]、電容式傳感器[10]以及測(cè)速發(fā)電機(jī)[11-13]。測(cè)量的方法有定時(shí)測(cè)角法(M 法)、定角測(cè)時(shí)法(T 法)和頻率/周期法(M/T 法)[14]。M 法通過測(cè)量一定時(shí)間內(nèi)的脈沖個(gè)數(shù)來獲得速度值,適合高轉(zhuǎn)速情況,缺點(diǎn)是角度分辨率低;T 法通過測(cè)量相鄰2 個(gè)脈沖的時(shí)間間隔得到速度信息,適合低速情況,高速時(shí)誤差大;M/T 法通過同時(shí)測(cè)量編碼器的脈沖數(shù)和在此期間的高頻脈沖數(shù),兼顧了高速和低速情況,但是軟件實(shí)現(xiàn)相對(duì)復(fù)雜,而且無法直接獲得角度信息。所以傳統(tǒng)方法無法在實(shí)現(xiàn)寬范圍轉(zhuǎn)速測(cè)量的同時(shí)實(shí)現(xiàn)高分辨率角度的測(cè)量。針對(duì)上述問題,本文介紹了一種RM57L843 處理器硬件角產(chǎn)生器(HWAG)模塊在齒輪角度和轉(zhuǎn)速測(cè)量中的設(shè)計(jì)與應(yīng)用,HWAG 模塊使用時(shí)間插入算法,實(shí)現(xiàn)高分辨率角度測(cè)量,結(jié)合高端定時(shí)器N2HET 的定時(shí)器功能,獲得轉(zhuǎn)速信息。相對(duì)于傳統(tǒng)方法,該方法軟件復(fù)雜度低,在測(cè)量轉(zhuǎn)速的同時(shí)可實(shí)現(xiàn)高分辨率的角度控制。

2 奇點(diǎn)與編碼器

編碼器分為絕對(duì)式與增量式2 類。絕對(duì)式編碼器具有固定零點(diǎn),輸出代碼是軸角的單值函數(shù),缺點(diǎn)是制造工藝復(fù)雜,不易小型化[15]。增量式編碼器易于小型化,響應(yīng)速度快,結(jié)構(gòu)簡(jiǎn)單,缺點(diǎn)是沒有固定零點(diǎn)。本設(shè)計(jì)采用增量式編碼器,為了解決增量式編碼器沒有固定零點(diǎn)的缺點(diǎn),需要進(jìn)行如下改進(jìn):對(duì)于每圈N 個(gè)脈沖的增量式編碼器,將其中連續(xù)的3 個(gè)光柵改造為1 個(gè)擴(kuò)展光柵。改進(jìn)后的編碼器每圈產(chǎn)生的脈沖數(shù)量是(N-2)個(gè),并且擴(kuò)展光柵的脈沖周期是正常光柵周期的3 倍。例如,設(shè)計(jì)中應(yīng)用齒輪的齒數(shù)是60,光柵產(chǎn)生的脈沖信號(hào)如圖1 所示。每個(gè)普通齒輪產(chǎn)生的脈沖表示6°,其中擴(kuò)展光柵產(chǎn)生的脈沖定義為奇點(diǎn),并將奇點(diǎn)信號(hào)后的第一個(gè)齒輪邊沿信號(hào)定義為零點(diǎn)。HWAG 模塊可以在奇點(diǎn)期間產(chǎn)生硬件中斷,在此中斷后的下一個(gè)脈沖邊沿就是零點(diǎn)。編碼器的光柵數(shù)量一般與待測(cè)齒輪的齒數(shù)相同,即每個(gè)光柵產(chǎn)生的脈沖周期與實(shí)際的被測(cè)齒輪脈沖信號(hào)同步,編碼器的零點(diǎn)與齒輪的零度角一致。

圖1 60 齒脈沖與奇點(diǎn)信號(hào)

3 HWAG 運(yùn)行原理

3.1 HWAG 模塊簡(jiǎn)介

HWAG 模塊帶有可編程的輸入濾波器,外部信號(hào)經(jīng)過濾波后,根據(jù)時(shí)間插入算法,將脈沖信號(hào)劃分為K個(gè)角度增量信號(hào),同時(shí)通過硬件接口向N2HET 模塊提供角度增量信息。HWAG 模塊具有以下特點(diǎn):可編程的K 值;在第一個(gè)奇點(diǎn)同步后自動(dòng)同步檢查;直接與N2HET 連接;可編程的齒輪活動(dòng)邊沿;開始位同步于齒輪邊沿;可選擇齒輪輸入引腳。

3.2 角滴答時(shí)鐘產(chǎn)生算法

一般引擎系統(tǒng)中普遍使用的齒輪齒數(shù)是60,每個(gè)齒的角度分辨率是6°,無法滿足發(fā)動(dòng)機(jī)在精準(zhǔn)的角度產(chǎn)生燃料噴射和點(diǎn)燃火花塞等控制要求,因此需要提高系統(tǒng)的角度分辨率。角滴答時(shí)鐘產(chǎn)生器是HWAG模塊的核心,PCNT(n)表示當(dāng)前脈沖的周期值,PCNT(n-1)表示前一個(gè)脈沖的周期值。基于前一個(gè)齒輪周期PCNT(n-1),使用時(shí)間插入算法來產(chǎn)生角滴答時(shí)鐘,該算法基于設(shè)置的系數(shù)K 來劃分上一個(gè)齒輪周期。齒輪周期是2 個(gè)活動(dòng)邊沿之間的周期,HWAG 全局控制寄存器2(HWAGCR2),并定義了輸入信號(hào)是下降沿還是上升沿,角滴答時(shí)鐘產(chǎn)生器的原理如圖2 所示。

圖2 角滴答時(shí)鐘產(chǎn)生器的原理

時(shí)間插入算法由5 個(gè)主要關(guān)聯(lián)的計(jì)數(shù)器組成。齒計(jì)數(shù)器TCNT 是一個(gè)8 位計(jì)數(shù)器,記錄當(dāng)前的齒輪數(shù)。每當(dāng)捕獲脈沖邊沿信號(hào),TCNT 計(jì)數(shù)器遞增,直至到達(dá)齒輪寄存器(HWAGTHVL)中的值,并在下一個(gè)齒輪輸入的活動(dòng)邊沿到達(dá)時(shí)復(fù)位TCNT 數(shù)值。HWAGTHVL 中的值表示奇點(diǎn)所在的齒輪,由于在奇點(diǎn)期間脈沖周期是普通齒輪的3 倍,為了保證在下一圈期間角滴答時(shí)鐘不發(fā)生突變,在下一圈的第一個(gè)齒脈沖期間依然使用奇點(diǎn)前一個(gè)齒輪周期的值作為PCNT(n-1)中的值。

周期計(jì)數(shù)器PCNT 計(jì)算2 個(gè)齒輪間的周期PCNT(n),計(jì)算的時(shí)鐘是HWAG 模塊的工作時(shí)鐘VCLK2。這個(gè)活動(dòng)邊沿(下降或上升)由HWAGCR2 寄存器中的TED 位選擇。齒輪輸入的一個(gè)活動(dòng)邊沿到達(dá)時(shí),PCNT的值被保存在HWAG 前一個(gè)齒輪周期值寄存器(HWAPCNT1)中。

步進(jìn)計(jì)數(shù)器SCNT 按照系數(shù)K 步長(zhǎng)計(jì)數(shù)到前一個(gè)周期值PCNT(n-1),這個(gè)周期值保存在HWAPCNT1寄存器中。當(dāng)SCNT 超過PCNT(n-1)時(shí)產(chǎn)生一個(gè)角滴答時(shí)鐘,并且SCNT 重置為SCNT 和PCNT(n-1)之間的差值。SCNT 的周期結(jié)果是PCNT(n-1)/K,這樣就產(chǎn)生了角滴答時(shí)鐘,每個(gè)角滴答時(shí)鐘表示一個(gè)角度增量,將原齒輪的角度分辨率提高到K 倍。

滴答時(shí)鐘計(jì)數(shù)器TCKC 是一個(gè)遞減計(jì)數(shù)器,初始值是系數(shù)K。角度計(jì)數(shù)器ACNT 用于累加產(chǎn)生的角滴答時(shí)鐘,因?yàn)辇X輪速度的變化造成角度計(jì)數(shù)器行為的不連續(xù)。在減速過程中,如果TCKC 在新的齒邊沿出現(xiàn)前計(jì)數(shù)到0,則SCNT 和PCNT(n-1)不再產(chǎn)生角滴答時(shí)鐘信號(hào),ACNT 將暫停計(jì)數(shù)直到出現(xiàn)新的齒邊沿。在加速過程中,如果TCKC 在新的齒邊沿(該系統(tǒng)中齒輪輸入的上升沿)出現(xiàn)時(shí)未計(jì)數(shù)到0,剩余的滴答時(shí)鐘計(jì)數(shù)值加到ACNT 中。這樣設(shè)計(jì)的目的是在齒輪非勻速運(yùn)行時(shí),每個(gè)齒輪產(chǎn)生的角滴答時(shí)鐘數(shù)是確定值K 個(gè)。

3.3 硬件濾波

齒輪的輸入來自模擬部分,其對(duì)外部噪聲敏感,因此需要濾除信號(hào)中的毛刺。在輸入信號(hào)被內(nèi)核使用前,HWAG 對(duì)其進(jìn)行數(shù)字濾波。經(jīng)過n 個(gè)角滴答時(shí)鐘后,濾波器使輸入信號(hào)生效。因?yàn)榈未鹩?jì)數(shù)器是遞減計(jì)數(shù)器,計(jì)數(shù)器的余值(1-X)需要被設(shè)置。濾波寄存器中的計(jì)算值取每個(gè)齒角滴答時(shí)鐘計(jì)數(shù)值K。齒輪輸入類似一個(gè)帶有截止頻率的低通濾波器。一個(gè)齒輪在下降沿、活動(dòng)沿輸入的窗口濾波器如圖3 所示。濾波寄存器值為步寬[K(1-X)],當(dāng)?shù)未鹩?jì)數(shù)器的值到達(dá)這個(gè)濾波寄存器值時(shí),齒輪輸入接觸阻塞。

圖3 齒輪輸入下降沿、活動(dòng)沿的窗口濾波器

4 軟件設(shè)計(jì)

該設(shè)計(jì)的軟件主要分為HWAG 模塊和N2HET模塊2 個(gè)部分。HWAG 模塊根據(jù)時(shí)間插入算法提供角度信息,需要在系統(tǒng)運(yùn)行前對(duì)該模塊進(jìn)行初始配置,主要包括齒輪數(shù)量、角度分辨率系數(shù)K 等。N2HET 模塊主要用于定時(shí),該系統(tǒng)在4 個(gè)特定角度點(diǎn)輸出控制信號(hào),同時(shí)輸出轉(zhuǎn)速信息。

4.1 HWAG 軟件設(shè)計(jì)

在系統(tǒng)的初始狀態(tài),齒輪的角度處于不確定狀態(tài),上電運(yùn)行后首先需要確定零點(diǎn)位置,實(shí)現(xiàn)HWAG模塊與齒輪角度的同步,系統(tǒng)的軟件流程如圖4 所示。首先對(duì)HWAG 進(jìn)行初始化設(shè)置,齒輪信號(hào)的輸入引腳是軟件可選的,HWAG 引腳選擇寄存器(HWAPINSEL)來執(zhí)行選擇功能。復(fù)位后默認(rèn)選擇是HET[2],該系統(tǒng)中的齒輪數(shù)是60,奇點(diǎn)占用齒數(shù)是3,因此,齒輪數(shù)量寄存器(HWATHNB)的值是57。所有HWAG 模塊中斷開啟,HWAG 中斷使能設(shè)置寄存器(HWAENASET)數(shù)值為0xFF,中斷的目的是利用硬件中斷條件PCNT(n)>2PCNT(n-1)實(shí)現(xiàn)零點(diǎn)位置的確認(rèn)。在HWAG 當(dāng)前齒輪步寬寄存器(HWASTWD)中寫入角度分辨率系數(shù)K,表示將原有的齒輪角度6°劃分為K份,角度分辨率提高了K 倍。該設(shè)計(jì)中的K 值由上位機(jī)軟件設(shè)置,方便引擎控制系統(tǒng)滿足不同分辨率的要求。設(shè)置全局控制寄存器(HWAGCR2)的TED 位選擇齒輪邊沿的上升沿作為活動(dòng)邊沿,設(shè)置CRI 位選擇使能硬件探測(cè)準(zhǔn)則,然后設(shè)置STRT 位啟動(dòng)HWAG 運(yùn)行。

圖4 軟件流程

完成初始配置后,需要確認(rèn)零點(diǎn)位置。在HWAG的運(yùn)行過程中,當(dāng)產(chǎn)生PCNT(n)>2PCNT(n-1)的中斷條件時(shí),設(shè)置標(biāo)志Flag 值為1,表示此脈沖信號(hào)為奇點(diǎn)信號(hào)。在普通齒邊沿信號(hào)中斷中如果標(biāo)志Flag 值是1,則設(shè)置當(dāng)前脈沖邊沿作為零度角。在此中斷中,暫停HWAG 運(yùn)行,暫停N2HET 運(yùn)行,設(shè)置標(biāo)志Flag 值是0,清除HWAG 角度值寄存器(HWAACNT)、HWAG當(dāng)前齒輪周期寄存器(HWAPCNT)、HWAG 當(dāng)前齒輪數(shù)量寄存器(HWATHVL)的值,清除N2HET 模塊中CNT 指令數(shù)據(jù)段的值,定義當(dāng)前角度值是0°。重新啟動(dòng)HWAG 和N2HET 模塊,此時(shí)實(shí)現(xiàn)了HWAG 與齒輪信號(hào)的零點(diǎn)角度同步,同時(shí)HWAG 硬件接口向N2HET 模塊提供角度增量。

4.2 N2HET 軟件設(shè)計(jì)

N2HET 是TI 公司的第5 代智能定時(shí)器模塊。N2HET 使用基于RISC 的專用定時(shí)器微型機(jī)來執(zhí)行30 條指令,每條指令由1 個(gè)32 位的程序段、1 個(gè)32 位的控制段和1 個(gè)32 位的數(shù)據(jù)段組成。指令存儲(chǔ)在N2HET 模塊的RAM 中。HWAG 接口在每個(gè)循環(huán)分頻時(shí)鐘周期(LRP)[16]向N2HET 提供角度增量,表示自上一個(gè)N2HET 循環(huán)分頻時(shí)鐘周期開始HWAG 模塊測(cè)量的角度增量。N2HET 模塊軟件部分的主要作用是提供定時(shí)基準(zhǔn)和角度判斷控制。

通過HET IDE 軟件編寫代碼,編譯后可以生成C代碼。N2HET 指令設(shè)置參數(shù)如下:

L00 CNT {next=L01, reg=B, irq=OFF,max=0x1FFFFFF};

L01 CNT {next=L02, angle_count=ON, reg=A,irq=ON,max=60K};

L02 ACMP {next=L03, en_pin_action=ON,cond_addr=L03, pin=0, action = SET, reg=A, irq=ON,data=P0};

L03 ACMP {next=L04, en_pin_action=ON,cond_addr=L04, pin=1, action = SET, reg=A, irq=ON,data=P1};

L04 ACMP {next=L05, en_pin_action=ON,cond_addr=L05, pin=2, action = SET, reg=A, irq=ON,data=P2};

L05 ACMP {next=L06, en_pin_action=ON,cond_addr=L06, pin=3, action = SET, reg=A, irq=ON,data=P3};

L06 BR { next=L00, cond_addr=L00,event=NOCOND};

其中L00 CNT 指令工作在時(shí)間模式,每個(gè)LRP 周期,CNT 的數(shù)據(jù)段加1,為系統(tǒng)提供時(shí)間信息;L01 CNT指令工作在角度模式,作為N2HET 角度計(jì)數(shù)器,累加HWAG 模塊提供的角度增量,保存在寄存器A 中。該系統(tǒng)中齒輪數(shù)是60,每個(gè)齒輪角度劃分K 份,每份表示角度增量為6°/K,因此最大累加值是60K。

ACMP 指令用于執(zhí)行角度比較,L02 ACMP 指令中設(shè)置的角度值是P0,P0 的值由上位機(jī)軟件設(shè)置,便于引擎控制系統(tǒng)調(diào)校噴油角度等,當(dāng)角度值到達(dá)P0時(shí),引腳pin0 輸出高電平,同時(shí)產(chǎn)生中斷信號(hào),其他3個(gè)點(diǎn)的角度點(diǎn)設(shè)計(jì)以此類推。4 路角度測(cè)量的初始值是7.5°、97.5°、187.5°、277.5°。BR 指令用于無條件跳轉(zhuǎn)到L00 指令,在每個(gè)LRP 周期循環(huán)執(zhí)行所有指令。

4.3 角度與轉(zhuǎn)速計(jì)算

當(dāng)角度到達(dá)待測(cè)點(diǎn)7.5°、97.5°、187.5°、277.5°時(shí),分別在不同引腳拉高電平信號(hào),通過對(duì)比輸入脈沖信號(hào)的零點(diǎn)與各個(gè)角度對(duì)應(yīng)的引腳電平信號(hào)的位置關(guān)系,可以計(jì)算出實(shí)際的角度值。同時(shí)通過N2HET 模塊中的L01 CNT 指令的數(shù)據(jù)段獲得對(duì)應(yīng)角度經(jīng)過的時(shí)間值,即可得到實(shí)際轉(zhuǎn)速值。

5 測(cè)試結(jié)果

分別設(shè)置不同的角分辨率系數(shù)K,調(diào)整齒輪的轉(zhuǎn)速,測(cè)量角度與轉(zhuǎn)速,測(cè)試結(jié)果如表1 所示。

從表1 可以看出,設(shè)計(jì)中使用齒數(shù)為60 的齒輪,每個(gè)齒輪的角度是6°,通過HWAG 模塊配置不同的K 值,可以使角度分辨率提高K 倍。測(cè)量結(jié)果與實(shí)際的角度和轉(zhuǎn)速相差很小,基本在理論范圍內(nèi)。轉(zhuǎn)速增大后,轉(zhuǎn)速測(cè)量誤差增大,主要是因?yàn)椴蓸訒r(shí)間縮短,后續(xù)可以通過改進(jìn)參考點(diǎn)來增加采樣時(shí)間,以減小計(jì)算誤差。

表1 角度與轉(zhuǎn)速測(cè)量結(jié)果

6 結(jié)論

本研究介紹了以HWAG 模塊為核心的高分辨率齒輪角度和轉(zhuǎn)速測(cè)量系統(tǒng),相對(duì)于傳統(tǒng)軟件算法,HWAG 作為硬件模塊使用時(shí)間插入算法,可以將齒輪角度測(cè)量的分辨率提高K 倍。結(jié)果表明,該設(shè)計(jì)可以為引擎控制系統(tǒng)提供高精度的角度和轉(zhuǎn)速值。對(duì)于更復(fù)雜的引擎控制系統(tǒng),可以增加N2HET 軟件部分的ACMP 指令數(shù)量,將目前的4 個(gè)角度控制點(diǎn)擴(kuò)展到32個(gè)。

猜你喜歡
計(jì)數(shù)器寄存器編碼器
煤氣與熱力(2022年2期)2022-03-09 06:29:30
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的同步機(jī)軸角編碼器
分簇結(jié)構(gòu)向量寄存器分配策略研究*
基于PRBS檢測(cè)的8B/IOB編碼器設(shè)計(jì)
計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
JESD204B接口協(xié)議中的8B10B編碼器設(shè)計(jì)
電子器件(2015年5期)2015-12-29 08:42:24
多總線式光電編碼器的設(shè)計(jì)與應(yīng)用
任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
河南科技(2014年10期)2014-02-27 14:09:30
基于單片機(jī)的仰臥起坐計(jì)數(shù)器
南召县| 托克托县| 新乐市| 鲁甸县| 綦江县| 上思县| 庆云县| 台北县| 湄潭县| 保康县| 沙田区| 奉化市| 安吉县| 新疆| 内黄县| 股票| 龙海市| 若尔盖县| 泽库县| 准格尔旗| 固阳县| 开原市| 额济纳旗| 肇源县| 金寨县| 阿荣旗| 拉萨市| 大方县| 射阳县| 东城区| 常宁市| 淳安县| 墨脱县| 广东省| 翁牛特旗| 衡东县| 博白县| 桃江县| 苍梧县| 马公市| 策勒县|