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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > FPGA實(shí)現(xiàn)CAN總線通信節(jié)點(diǎn)設(shè)計(jì)

          FPGA實(shí)現(xiàn)CAN總線通信節(jié)點(diǎn)設(shè)計(jì)

          作者: 時(shí)間:2014-03-20 來(lái)源:網(wǎng)絡(luò) 收藏
          FPGA實(shí)現(xiàn)CAN總線通信節(jié)點(diǎn)接口電路

          圖2 接口電路

            2 系統(tǒng)軟件設(shè)計(jì)

            2.1 設(shè)計(jì)流程

            對(duì)CAN 總線通訊模塊的控制主要包括3 部分: 節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收。由于通訊模塊對(duì)接收數(shù)據(jù)的實(shí)時(shí)性要求并不是很高, 因此CAN 總線的數(shù)據(jù)接收和發(fā)送采用查詢(xún)方式。

            2.1.1 初始化過(guò)程

            系統(tǒng)上電后首先對(duì)82C250 和S JA1000 進(jìn)行初始化, 以確定工作主頻、波特率、輸出特性等。SJA1000的初始化只有在復(fù)位模式下才可以進(jìn)行, 初始化主要包括工作方式的設(shè)置、驗(yàn)收濾波方式的設(shè)置、驗(yàn)收屏蔽寄存器( AMR )和驗(yàn)收代碼寄存器( ACR)的設(shè)置、波特率參數(shù)設(shè)置和中斷允許寄存器( IER) 的設(shè)置等。在完成SJA1000 的初始化設(shè)置以后, SJA1000 就可以回到工作狀態(tài), 進(jìn)行正常的通信任務(wù)。設(shè)計(jì)中使SJA1000工作在PeliCan的方式下。

            2.1.2 發(fā)送過(guò)程

            發(fā)送時(shí), 用戶只需將待發(fā)送的數(shù)據(jù)按特定的格式組合成一幀報(bào)文, 送入SJA1000發(fā)送緩沖區(qū)中, 然后啟動(dòng)SJA1000發(fā)送即可。當(dāng)然, 在往SJA1000 發(fā)送緩存區(qū)送報(bào)文之前, 必須先判斷發(fā)送緩沖區(qū)是否鎖定, 如果鎖定則等待; 判斷上次發(fā)送是否完成, 未完成則等待發(fā)送完成。 通過(guò)SJA1000 向CAN 總線進(jìn)行數(shù)據(jù)發(fā)送的流程圖如圖3所示。

          圖3 發(fā)送數(shù)據(jù)流程圖

            2.1.3 接收過(guò)程

            接收子程序負(fù)責(zé)節(jié)點(diǎn)報(bào)文的接收以及其他情況處理。接收子程序比發(fā)送子程序要復(fù)雜一些, 因?yàn)樵谔幚斫邮請(qǐng)?bào)文的過(guò)程中, 同時(shí)要對(duì)諸如總線關(guān)閉、錯(cuò)誤報(bào)警、接收溢出等情況進(jìn)行處理。只有在總線正常, 沒(méi)有錯(cuò)誤報(bào)警, 并且接收緩沖區(qū)中有新報(bào)文, 才開(kāi)始進(jìn)行數(shù)據(jù)接收操作。對(duì)接收緩沖區(qū)的數(shù)據(jù)讀取完畢后釋放CAN接收緩沖區(qū)。 通過(guò)SJA1000接收上的數(shù)據(jù)流程圖如圖4所示。

          fpga相關(guān)文章:fpga是什么


          通信相關(guān)文章:通信原理


          晶振相關(guān)文章:晶振原理
          雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();