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

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于MC9S12DP256B的汽車防抱死系統(tǒng)設(shè)計

          基于MC9S12DP256B的汽車防抱死系統(tǒng)設(shè)計

          作者: 時間:2009-08-28 來源:網(wǎng)絡(luò) 收藏

          故障碼存儲及傳輸

          DPB自帶4KB的EEPROM,地址從0x400到0xFFF。 無須外擴EEPROM,可用于對故障碼的存儲,便于數(shù)據(jù)長期保存。

          擦、寫操作前必須通過設(shè)置EEPROM時鐘分配寄存器 ECLKDIV,將模塊時鐘配置在150KHz至200KHz之間。系統(tǒng)中的晶振為16MHz,總線頻率8MHz,經(jīng)計算,取ECLKDIV=0x4A,即預(yù)分頻因子PRDIV8=1,分頻因子EDIV[5:0]=001010,模塊的時鐘為182KHz。

          因為每次寫操作均以字進(jìn)行,所以為安全起見,擦除時每次擦兩個字。擦除操作的時序與寫操作完全相同,只不過相應(yīng)地址寫入的數(shù)據(jù)均為“0”。

          此外,系統(tǒng)結(jié)合自身CAN模塊,選用Philips公司的PCA82C250,設(shè)置了CAN的接口電路,便于故障碼的傳輸。接口電路如圖4(圖略,請參看《電子設(shè)計應(yīng)用》2005.8)所示。

          系統(tǒng)中的其他電路,像輪速信號處理電路、傳感器靜態(tài)檢測電路、電源監(jiān)控電路等由于篇幅所限,在此不作詳細(xì)介紹。

          系統(tǒng)軟件及VHDL語言設(shè)計

          系統(tǒng)的控制CPU DPB用C和匯編語言進(jìn)行開發(fā),而CPLD用VHDL語言進(jìn)行編程。

          DPB程序的功能是: 程序存儲器及數(shù)據(jù)存儲器的自檢; 對輪速傳感器進(jìn)行靜態(tài)、動態(tài)檢測;采集輪速信號,計算出車輪速度和減速度,根據(jù)控制邏輯輸出制動壓力調(diào)節(jié)信號;實時存儲故障代碼;CAN通信。

          CPLD程序的功能是:控制數(shù)字開關(guān)CD4066的通斷;檢測數(shù)字輸入通道;監(jiān)測電磁閥驅(qū)動芯片和電磁閥的工作狀態(tài);向控制CPU傳送故障情況。 CPLD的設(shè)計由四個步驟組成:設(shè)計輸入、實現(xiàn)、校驗和芯片編程。設(shè)計中采用VHDL語言文本輸入,經(jīng)綜合、仿真、實現(xiàn)后通過并行線纜下載至Xilinx 芯片中。圖5和圖6(圖略,請參看《電子設(shè)計應(yīng)用》2005.8)分別是系統(tǒng)控制CPU及CPLD的流程圖。

          結(jié)語

          本系統(tǒng)以其獨特的雙CPU結(jié)構(gòu),集防抱死制動、系統(tǒng)故障檢測于一體,同時能實現(xiàn)對故障檢測碼的傳輸。 同時雙CPU均預(yù)留了一定的輸入/輸出端口, 為進(jìn)一步擴展汽車電子控制裝置的功能提供了可能。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 256B 256 MC9 S12

          評論


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