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

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于MC9S12HY32的電動汽車儀表盤設(shè)計

          基于MC9S12HY32的電動汽車儀表盤設(shè)計

          作者: 時間:2012-09-12 來源:網(wǎng)絡(luò) 收藏

          引言:

          本文引用地址:http://www.ex-cimer.com/article/196428.htm
          電動汽車儀表盤是一種集LED、LCD顯示技術(shù)、步進電機控制技術(shù)于一體,適應(yīng)電動汽車電子化、數(shù)字化、信息化發(fā)展的高新技術(shù)產(chǎn)品,它是駕駛員與汽車進行信息交流的窗口,是一個多信息顯示平臺,顯示電機狀態(tài)、電池組狀態(tài)、行駛信息、底盤信息、指示報警等其它信息。FreescaleHY32是汽車儀表盤設(shè)計專用16U,筆者以HY32為核心設(shè)計了一款電動汽車儀表盤,它采用步進電機進行指針的指示,具有很好的數(shù)據(jù)控制特性,并能及時反映汽車加減速、電壓電流上升與下降等各種工況,提高了整個系統(tǒng)的平穩(wěn)性和定位精度,同時保留了機械指針指示的直觀、有動感、符合駕駛員習(xí)慣等優(yōu)點。采用LED顯示轉(zhuǎn)向燈、遠近光變換、車門狀態(tài)、安全帶未系提示、充電指示、報警等狀態(tài)1,采用LCD數(shù)字顯示里程表和故障狀態(tài)。本文介紹HY32的功能特性和應(yīng)用要點,并剖析電動汽車儀表盤的設(shè)計原理和軟硬件結(jié)構(gòu)。
          1 硬件設(shè)計
          1.1 9S12HY32簡介
          9S12HY32是一款可擴展入門級的汽車儀表盤應(yīng)用16位微控制器,集16位性能和許多專用功能于一身2,如LCD驅(qū)動和步進電機驅(qū)動,同時服務(wù)于需要CAN/LIN的應(yīng)用,非常適合經(jīng)濟高效的汽車儀表盤應(yīng)用。其芯片資源及特性如下3
          132MHz總線頻率的HCS12 CPU內(nèi)核;
          2、帶有ECC(錯誤校正碼)的32KB程序閃存和4KB數(shù)據(jù)閃存,4KB片內(nèi)SRAM
          3、字段式LCD控制器,最多可配置為40x4段;
          44個步進電機控制器,可以進行電機失速檢測;
          5、兩個16位定時器模塊,可提供16位輸入捕捉、輸出比較、計數(shù)和脈沖累加器功能;
          6、8通道10位逐次逼近型ADC;
          7SPI/I2C模塊,一個SCI模塊,支持 LIN 2.0、2.1SAE J2602 通信;
          8MSCAN模塊,支持 CAN 協(xié)議 2.0A/B
          1.2 系統(tǒng)結(jié)構(gòu)
          儀表盤由CAN總線接口、信號采集電路、步進電機、LCD、LED、報警裝置組成,用于各種工況下汽車運行信息的采集和顯示,圖1給出了儀表盤硬件結(jié)構(gòu),下面結(jié)合S12HY32的內(nèi)部資源介紹下儀表盤的硬件設(shè)計。

          1 儀表盤硬件結(jié)構(gòu)圖
          Picture 1:Dashboard hardware architecture
          S12HY32內(nèi)部資源專為儀表應(yīng)用而設(shè)計,4個步進電機驅(qū)動器可以進行車速、電機轉(zhuǎn)速、電流和電池組電壓的指針指示,LCD控制器可以控制字段式LCD顯示總里程、小計里程和電機故障信息,內(nèi)部有MSCAN模塊支持CAN總線應(yīng)用,可以通過CAN總線獲取一些關(guān)鍵信息,同時保留直接進行信息采集的能力:內(nèi)置定時捕捉模塊可以進行車速/電機轉(zhuǎn)速脈沖的捕捉與統(tǒng)計,內(nèi)置ADC進行電機溫度等模擬量的采集。下面以車速信號檢測為例介紹下儀表盤電路設(shè)計。
          1.3 車速信號檢測
          車速是儀表盤需要顯示的關(guān)鍵信息,根據(jù)汽車原理和拓撲結(jié)構(gòu),車速信號來源是CAN總線或者車速傳感器。車速傳感器輸出0-12V的脈沖信號,其信號頻率大小與車速值大小成線性關(guān)系,隨車速增加而增加4,通過圖2所示的整形電路將車速傳感器信號轉(zhuǎn)換為TTL電平,然后通過定時捕捉模塊捕捉脈沖信號的上升沿或下降沿,進行統(tǒng)計分析即可得到車速大小。

          2 車速信號檢測電路
          Picture 1:Speed signal detection circuit
          2 軟件設(shè)計
          2.1 軟件流程設(shè)計
          因為沒有采用操作系統(tǒng),軟件設(shè)計采用循環(huán)體+中斷的軟件結(jié)構(gòu)5,主循環(huán)體完成主體功能,中斷服務(wù)程序進行底層協(xié)議設(shè)計和驅(qū)動管理,軟件流程圖如圖3所示,下面簡單介紹一下該流程。首先進行全局變量和所用外設(shè)(包括IO、PWM、TIMER、SCI、CAN、LCD、MOTOR CONTROLLER)的初始化,初始化完成后,進入主循環(huán),然后在循環(huán)體內(nèi)依次進行定時器管理、開關(guān)信號檢測、車速檢測、CAN通訊管理、里程計算及存儲、報警控制、LCD控制和步進電機控制。各軟件模塊次序如圖三所示。下面以車速檢測為例介紹下軟件的詳細設(shè)計。

          3 軟件流程圖
          Picture 3 Software Process
          2.2車速信號檢測軟件設(shè)計
          車速信號整形后得到TTL脈沖,S12HY32的定時捕捉模塊以中斷的方式捕捉脈沖的沿變化6,在中斷處理函數(shù)中進行脈沖個數(shù)累加。設(shè)計脈沖統(tǒng)計結(jié)構(gòu)體和一200ms的周期定時器,采用“滑動時間窗口脈沖統(tǒng)計法”進行車速的計算,脈沖統(tǒng)計結(jié)構(gòu)體設(shè)計如下:
          typedef struct{
          uint8_t bank;
          uint16_t cnt;
          }s_PulseCnt;
          在上述結(jié)構(gòu)體中,cnt表示脈沖個數(shù),bank表示數(shù)據(jù)是否有效?;瑒訒r間窗口脈沖統(tǒng)計法設(shè)計如下:
          定義成員個數(shù)為6的脈沖統(tǒng)計結(jié)構(gòu)體數(shù)組Speed_pulse[6],周期性存儲車速脈沖個數(shù),脈沖率等價于一秒內(nèi)的脈沖個數(shù),則有公式如下:
          脈沖頻率=(Speed_pulse[5].cnt-Speed_pulse[0].cnt) (2-1)
          車速=脈沖頻率*FACTOR (2-2)
          FACTOR由變速比和輪胎直徑共同決定。
          當下計算的車速表示過去1秒內(nèi)的平均車速,在下一個200ms到達后,將下標為15的結(jié)構(gòu)體變量依次“滑動復(fù)制”到下標為04的結(jié)構(gòu)體變量中,然后更新下標為5的結(jié)構(gòu)體變量,此時根據(jù)公式2-1和公式2-2進行計算得到的車速為0.2-1.2秒之間的平均速度。這種方式計算得到的車速實時性更強,而且車速變化更加平滑,反映在指針的變化上也更加平穩(wěn)平滑,能得到更佳的視覺體驗,其代碼實現(xiàn)如下:
          void SpeedDetect(void)
          {
          uint16_t i,j;
          uint16_t Carspeed_pulse_frequency=0;
          if(1==Speed_detect_enable){
          if(1==Timer[SPEED_PULSE_ACCUMU_200MS].overflow_flag){
          for(i=0;i=5;i++){
          if(0==Speed_pulse[i].bank){
          Speed_pulse[i].cnt=Car_speed_pulses;
          Speed_pulse[i].bank=1;
          if(5==i){
          Carspeed_pulse_frequency=Speed_pulse[5].cnt-Speed_pulse[0].cnt;
          Ev_speed=(float32_t)Carspeed_pulse_frequency*CAR_PULSE_FACTOR;
          EvSpeedRangeCheck();
          for(j=0;j5;j++){
          Speed_pulse[j].cnt=Speed_pulse[j+1].cnt;
          }
          Speed_pulse[i].bank=0;
          }
          break;
          }
          }
          }
          }
          }
          結(jié)語
          筆者采用S12HY32設(shè)計實現(xiàn)了一款電動汽車儀表盤,從處理器特性、硬件結(jié)構(gòu)、車速信號檢測等方面描述了儀表盤的硬件設(shè)計,從軟件流程設(shè)計,車速信號檢測的軟件實現(xiàn)上描述了儀表盤的軟件設(shè)計。該儀表盤經(jīng)裝車試驗,運行穩(wěn)定,功能可靠,已經(jīng)進入小批量預(yù)生產(chǎn)階段,具有很高的實用價值。
          脈沖點火器相關(guān)文章:脈沖點火器原理


          關(guān)鍵詞: MC9 S12 MC 9S

          評論


          相關(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); })();