<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計應用 > 基于CY8C29466的汽車油門踏板角位置傳感器設(shè)計

          基于CY8C29466的汽車油門踏板角位置傳感器設(shè)計

          作者: 時間:2012-04-05 來源:網(wǎng)絡 收藏

          隨著科學技術(shù)的發(fā)展,汽車正朝著智能化的方向發(fā)展。隨汽車智能化程度的增加,傳感器在汽車上的應用越來越多。油門踏板角位置是汽車智能化控制中的一個重要參數(shù),目前市場上的角位置傳感器大多價格昂貴、體積大、壽命低。因此,開發(fā)一款價格低、體積小、壽命相對較高的油門踏板角度傳感器顯得尤為重要。本設(shè)計的目的是開發(fā)一款基于賽普拉斯半導體公司生產(chǎn)的可編程片上系統(tǒng)8的非接觸式角度傳感器。

          本文引用地址:http://www.ex-cimer.com/article/197002.htm

          設(shè)計原理

          首先通過三點式LC正弦波振蕩電路,產(chǎn)生一個正弦波信號,電路中的電感系數(shù)L隨被測角度的改變而改變;然后把正弦波信號輸入到電壓比較器,得到一個方波信號;最后把方波信號輸入到單片機進行處理,根據(jù)方波信號的頻率由單片機輸出分別與角度成線性關(guān)系的電壓和頻率兩路信號。

          1.三點式LC正弦波振蕩電路

          圖1所示是基本的三點式LC正弦波振蕩回路,一個三點式LC正弦波振蕩回路要想正常工作,必須具備一個振蕩回路(至少有兩個儲能原件)、振蕩能量來源(電源+Vcc)和控制元件(三極管)。

          11.jpg

          圖1(a):三點式LC正弦波振蕩電路

          11b.jpg

          圖1(b):三點式LC正弦波振蕩電路

          2.混合信號PSoC

          傳統(tǒng)的單片機只包括數(shù)字邏輯系統(tǒng),而本設(shè)計采用的8不僅具有數(shù)字邏輯系統(tǒng),還具有模擬模塊和模數(shù)混合信號模塊,例如增益可編程放大器、電壓比較器、模數(shù)轉(zhuǎn)換模塊和模數(shù)轉(zhuǎn)換模塊。該芯片的高集成度特性使整個設(shè)計節(jié)省了元器件、產(chǎn)品的體積也更小。

          硬件設(shè)計

          傳感器的硬件部分主要包括兩大部分,其中8和外圍電路為第一部分。CY8C29466主要負責測量信號的頻率,進行溫度校正和相應的線性化處理,并輸出電壓信號和頻率信號。

          外圍電路主要完成以下工作:

          1. 電壓轉(zhuǎn)換,將供給溫度傳感器的10V電壓轉(zhuǎn)換為5V的電壓,作為單片機和電位計的電源;

          2. 環(huán)境溫度測量;

          3. 形成振蕩回路;

          4. 實現(xiàn)雙回路保護,提高產(chǎn)品的可靠性。傳感器第二部分電路的作用是實現(xiàn)通過改變角度來改變角度來改變線圈的電感系數(shù)。

          硬件部分所使用的器件見表1。

          1.jpg

          表1:基于CY8C29466設(shè)計方案所用的元件

          軟件設(shè)計

          設(shè)計過程中用到的模塊主要有:ADCINC12、CMPPRG、DAC8、INSAMP、PGA、PWM16_1、PWM16_2、Timer16、Counter24。它們的位置和相互之間的連接方式如圖2所示。其中,模數(shù)轉(zhuǎn)換模塊ADCINC12用來將溫度傳感器采集到的模擬信號轉(zhuǎn)化數(shù)字信號,用于傳感器輸出量的修正;電壓比較器模塊CMPPRG、反向放大器模塊INSAMP和增益可編程放大器模塊PGA三個模塊與外圍的若干電子元件一起構(gòu)成三點式正弦波振蕩回路;數(shù)模轉(zhuǎn)換模塊DAC8用于產(chǎn)生傳感器的電壓輸出信號;脈寬調(diào)制模塊PWM16_1用于數(shù)模轉(zhuǎn)換模塊DAC8的時鐘源,提高了數(shù)模轉(zhuǎn)換的精度;脈寬調(diào)制模塊PWM16_2用于產(chǎn)生傳感器的頻率輸出;定時器模塊Timer16和計數(shù)器模塊Counter24用于計算輸入信號的頻率。

          221.jpg

          222.jpg

          圖2:用戶模塊圖

          程序的執(zhí)行過程如圖3所示。

          33.jpg

          圖3:程序執(zhí)行流程圖

          設(shè)計方案比較

          采用PSoC與采用傳統(tǒng)的單片機相比具有以下三個優(yōu)點:

          1. 使用的元器件的數(shù)目減少。由于PSoC中含有模擬模塊,可以進行模擬信號的輸出,所以在設(shè)計的過程中可以節(jié)省很多模擬器件。表2為采用某傳統(tǒng)的單片機進行設(shè)計時,在缺少PWM信號輸出功能的情況下,所用的器件。通過比較表1和表2,可以清楚的看到這一點。

          2. 成本大大降低。使用的元器件數(shù)目減少,而PSoC芯片的市場價與其他傳統(tǒng)的單片機相比,一般都偏低,所以成本降低。粗略估計成本可以降低20% ~30%。

          3. 縮短設(shè)計周期。這一點主要表現(xiàn)在兩個方面:在硬件設(shè)計方面,由于使用的元件數(shù)目減少,電路簡單,減少設(shè)計所用時間;在軟件設(shè)計方面,高效的開發(fā)工具為用戶提供了高效的開發(fā)手段,與傳統(tǒng)的單片機相比,PSoC只需很少的代碼,而傳統(tǒng)的單片機則要用戶編寫大量的代碼。

          產(chǎn)品的特點和應用前景

          本產(chǎn)品與市場上現(xiàn)有的同類產(chǎn)品相比較具有如下幾個特點:

          1. 非接觸式。

          在工作過程中,相對運動的兩個部件之間沒有接觸,排除了因磨損導致測量不準確的可能性,延長了產(chǎn)品的壽命。

          2. 溫度校正。

          本產(chǎn)品具有溫度校正能力,環(huán)境溫度在一定范圍內(nèi)的改變不會影響測量的準確性。

          3. 線性化。

          本產(chǎn)品輸出的兩路信號:電壓值,PWM波的頻率均與角度成線性關(guān)系。

          4. 兩路輸出信號。

          本產(chǎn)品具有兩路輸出信號,使用者可以根據(jù)自己的需要選擇其中的一路輸出信號,或者同時使用兩路信號。

          5. 雙回路保護。

          本產(chǎn)品具有一個雙回路保護系統(tǒng),當其中的一個回路失效時,另一個回路會馬上起作用,保證正常運行,提高了產(chǎn)品的可靠性。

          6. 體積小,價格低。

          以上特點決定了本產(chǎn)品將會具有很好的應用前景。它具有較高的可靠性,較長的壽命,與被測量成線性關(guān)系的準確地輸出,較小的體積,低廉的價格都完全符合使用者的要求,是廣大的汽車生產(chǎn)廠家的首選產(chǎn)品。除用于汽車油門踏板的角度測量外,該產(chǎn)品還可以用于其它場合的角度測量,如電動自行車的精確控制中。

          2.jpg

          表2:使用傳統(tǒng)單片機設(shè)計方案所用元件



          關(guān)鍵詞: C29466 29466 CY8 CY

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();