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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于SAE J1939協(xié)議的車輛信息采集與診斷模塊

          基于SAE J1939協(xié)議的車輛信息采集與診斷模塊

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

          2 設(shè)計開發(fā)
          2.1 硬件電路設(shè)計
          設(shè)計的由微控制器、CAN總線接口、信號采集處理電路、接口電路等部分組成,如圖1所示。在實際的車載環(huán)境中,此通過CAN總線獲取報文,并根據(jù) 計算得出車輛的發(fā)動機轉(zhuǎn)速、節(jié)氣門開度、水溫以及故障代碼等信息,而燃油量、轉(zhuǎn)向泵壓力、制動氣壓等其它信息則從相應(yīng)傳感器以模擬量、開關(guān)量、脈沖量等形式獲取,在經(jīng)過信號采集處理電路進(jìn)行分壓濾波整形處理后直接送往微控制器進(jìn)行A/D變換處理。這些信息經(jīng)過微控制器計算處理后通過USB和UART接口傳送給車載多媒體設(shè)備或虛擬數(shù)字儀表設(shè)備。

          13b.JPG


          主控處理器采用ST公司的STM32F103C8T6,它基于ARM公司新一代32位Cortex-M3內(nèi)核,可提供1.25 DMIPS/MHz的處理能力,內(nèi)部帶有ADC、I2C、UART、USB等外圍接口,特別是其內(nèi)部帶有支持CAN 2.0B的CAN控制器,位速率達(dá)lMb/s,具有兩個接收FIFO,3級14個可調(diào)節(jié)的濾波器,可收發(fā)ll位標(biāo)準(zhǔn)幀或29位擴展幀。因此可以省去類似設(shè)計中必須帶有的CAN接口器件SJAl000,大大降低了外圍電路的成本。
          圖2給出了模塊CAN總線接口部分的電路。系統(tǒng)采用帶隔離及TVS保護(hù)的通用CAN收發(fā)器CTM8251T為CAN控制器與物理總線之間提供接口,CTM8251T內(nèi)部集成了信號隔離電路和所有必需的CAN電平轉(zhuǎn)換電路,具備差動發(fā)送和接收功能,同時帶有TVS保護(hù),可以支持最高1Mb/s的通訊速率,單芯片實現(xiàn)了CAN節(jié)點的數(shù)據(jù)收發(fā)、隔離、保護(hù)功能;從而省卻了傳統(tǒng)設(shè)計中采用的光電耦合器件、DC-DC隔離、CAN收發(fā)器等多種器件,既簡化了設(shè)計又節(jié)約了成本。

          13c.JPG


          汽車的電磁環(huán)境非常復(fù)雜,既有內(nèi)部各模塊之間的相互干擾(包括雨刮器、冷卻風(fēng)扇電機、發(fā)電機等產(chǎn)生的傳導(dǎo)干擾、輻射干擾),也有外界對其產(chǎn)生的干擾(環(huán)境電磁場、人體放電和大自然的干擾雷電)。因此本模塊的設(shè)計主要采用了以下幾個方面的抗電磁干擾措施:首先,加裝鐵氧體互感器件抑制線路板的輻射和外部傳導(dǎo)干擾;其次,采用了帶隔離及過壓保護(hù)功能的CAN接口器件;再次,在輸入電源處采用TVS管抑制外部傳導(dǎo)干擾。



          關(guān)鍵詞: J1939 SAE 協(xié)議 模塊

          評論


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