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

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于CPLD的電池管理雙CAN控制器的設(shè)計(jì)與實(shí)現(xiàn)

          基于CPLD的電池管理雙CAN控制器的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2018-08-27 來(lái)源:網(wǎng)絡(luò) 收藏

          CAN報(bào)文發(fā)送函數(shù)負(fù)責(zé)系統(tǒng)向整車控制器發(fā)送報(bào)文,發(fā)送時(shí)需將待發(fā)送的數(shù)據(jù)按CAN協(xié)議格式組合成一幀報(bào)文,送入SJA1000發(fā)送緩沖區(qū)中,然后啟動(dòng)發(fā)送命令。CAN發(fā)送程序如下:

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

          if((TempData 0x10) != 0x10) //CAN控制器空閑

          {

          if((TempData 0x08) != 0x0) //最近一次發(fā)送已成功

          {

          if((TempData 0x04) == 0x04)

          //CPU可以向發(fā)送緩沖器寫報(bào)文

          {

          …… //配置發(fā)送報(bào)文

          SJA1000_WRITE(REG_ COMMAND,0x01);//發(fā)送報(bào)文指令

          }

          }

          }

          接收CAN報(bào)文

          CAN報(bào)文接收函數(shù)主要負(fù)責(zé)接收整車控制器發(fā)送的控制指令,來(lái)完成對(duì)充放電繼電器、風(fēng)扇以及電池等器件的控制。CAN接收程序如下:

          if(TempData != 0)

          {

          if((TempData 0x80) == 0x80) //總線關(guān)閉

          {

          …… //總線關(guān)閉處理

          }

          if((TempData 0x02) == 0x02) //數(shù)據(jù)溢出

          {

          …… //數(shù)據(jù)溢出處理

          }

          if((TempData 0x01) == 0x01) //RXFIFO存在完整有效的報(bào)文

          {

          …… //讀取緩沖區(qū)報(bào)文

          結(jié)語(yǔ)

          本文設(shè)計(jì)的基于已運(yùn)用于實(shí)際應(yīng)用中,系統(tǒng)運(yùn)行可靠,CAN報(bào)文收發(fā)平穩(wěn),完全適合混合動(dòng)力汽車的使用。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: CPLD 電池管理 雙CAN控制器

          評(píng)論


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