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

          新聞中心

          EEPW首頁 > 網(wǎng)絡(luò)與存儲 > 設(shè)計應(yīng)用 > 基于ADSP2181的CAN總線通訊設(shè)計

          基于ADSP2181的CAN總線通訊設(shè)計

          作者:陳 鵬,孫自科,李愛玲 時間:2008-12-11 來源:現(xiàn)代電子技術(shù) 收藏

            現(xiàn)在CAN總線除了被用于汽車系統(tǒng)內(nèi)部的數(shù)據(jù)通訊與控制,他已在工業(yè)自動化、各種控制設(shè)備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等各領(lǐng)域得到廣泛的應(yīng)用。而這里被用于成套測井儀器中各儀器之間的數(shù)據(jù)通訊。

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

          1 CAN與DSP的接口電路

            以和SJA1000芯片設(shè)計的接口電路如圖1所示。圖1中,用1片GAL16V8作為邏輯轉(zhuǎn)換電路。為突出接口電路,其他部分從略。

            用FM書寫的設(shè)計文件如下:

           
           

          2 波特率的設(shè)定

            BTR0和BTR1是總線定時寄存器,通過對這2個寄存器的設(shè)置可以惟一地確定波特率和同步跳轉(zhuǎn)寬度。BTR0各位功能如圖2所示。BTR1各位功能如圖3所示。

            總線長度在40 m以內(nèi)(滿足這里的設(shè)計需求),CAN總線的位速率可達(dá)到1 Mb/s,這里需要的波特率為1 Mb/s,晶體震蕩頻率為24 MHz,設(shè)BTR0=00H,BTR1=18H,計算總線傳輸速率。由給定的BTR0和BTR1可知:BRP.5,BRP.4,BRP.3,BRP.2,BRP.1和BRP.0以及TSEG2.1,TSEG2.0,TSEG1.3均為0;另外,TSEG2.2,TSEG1.2,TSEG1.1,TSEG1.0均為1。因此有:

           

            而波特率為1/tB,即為1 Mb/s。

           

          3 初始化子程序

            SJA1000的初始化只有在復(fù)位模式下才可以進(jìn)行。初始化主要包括工作方式的設(shè)置、接收濾波方式的設(shè)置、接收屏蔽寄存器AMR和接收代碼寄存器ACR的設(shè)置、波特率參數(shù)設(shè)置和中斷允許寄存器IER的設(shè)置等。在完成SJA1000的初始化設(shè)置以后,SJA1000就可以回到工作狀態(tài),進(jìn)行正常的通信任務(wù)。下面提供SJA1000初始化的ADSP匯編源程序。程序中寄存器符號表示的是SJA1000相應(yīng)寄存器占用的片外存儲器地址,這些符號可在程序的頭部用偽指令對其定義。需要注意的事SJA_PORT位I/O接口,其地址為0x0600。

           
           

          4 結(jié) 語

            CAN總線已在測井儀器系統(tǒng)中得到初步的應(yīng)用,隨著測井事業(yè)發(fā)展的需求,由于其良好的性能,他的使用將會更為廣泛和深入。

           



          關(guān)鍵詞: ADI ADSP2181

          評論


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