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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的CAN總線系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

          基于DSP的CAN總線系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

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

          在軟件時(shí),首先應(yīng)進(jìn)行IO口配置。由于通訊所用到的兩個(gè)引腳TX和RX均為復(fù)用IO口,因此,首先要配置寄存器CANTIOC
          的TXFUNC和RXFUNC位為l;再就是要初始化位時(shí)序,即對(duì)位時(shí)序配置寄存器CANBCR進(jìn)行配置,包括CAN控制器的通訊波特率、同步跳轉(zhuǎn)寬度、采樣次數(shù)等參數(shù)。
          當(dāng)完成以上CAN配置之后,還需按照?qǐng)D5所示的流程圖來(lái)完成數(shù)據(jù)的發(fā)送與接收配置,同時(shí)初始化郵箱。郵箱初始化主要是設(shè)置郵箱的標(biāo)識(shí)符和控制域(即發(fā)送的是遠(yuǎn)程幀還是數(shù)據(jù)幀),以及對(duì)相應(yīng)的郵箱賦初值。

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


          數(shù)據(jù)接收時(shí),所接收到的信息的標(biāo)識(shí)符必須與相應(yīng)的接收郵箱的標(biāo)識(shí)符相同,否則該信息將被濾除。這里,數(shù)據(jù)的發(fā)送與接收請(qǐng)求均采用標(biāo)志位查詢方式。
          按照以上步驟設(shè)置好后,接著就是對(duì)數(shù)據(jù)的發(fā)送與接收請(qǐng)求進(jìn)行配置。數(shù)據(jù)接收可采用中斷方式,中斷配置可在主程序流程中進(jìn)行配置。正確配置中斷入口地址及中斷函數(shù),并開(kāi)放CAN接收中斷后,還要分別配置不同的數(shù)據(jù)幀,包括標(biāo)準(zhǔn)幀和擴(kuò)展幀,以及數(shù)據(jù)幀和遠(yuǎn)程請(qǐng)求幀。
          圖6表示為上位機(jī)接收數(shù)據(jù)的調(diào)試界面??梢钥吹?,CAN通信和下位機(jī)間的數(shù)據(jù)通信,可以寫數(shù)據(jù)并發(fā)送給下位機(jī),同時(shí)也可接收下位機(jī)的數(shù)據(jù)來(lái)驗(yàn)證電路及軟件的正確性。

          5 結(jié)束語(yǔ)
          利用TMS320F2812內(nèi)嵌的eCAN模塊可使得硬件電路更為簡(jiǎn)單而可靠,而且性能也較已有的內(nèi)嵌的CAN控制器有較大的提高。同時(shí),采用C語(yǔ)言編程,則可使得程序的難度降低,提高程序的可維護(hù)性并縮短開(kāi)發(fā)時(shí)間。


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

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