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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的機(jī)車實(shí)時監(jiān)控系統(tǒng)

          基于CAN總線的機(jī)車實(shí)時監(jiān)控系統(tǒng)

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

          //將地址設(shè)置到驗(yàn)收屏蔽寄存器 0(bank1)

          candat=0x00; //bank1:驗(yàn)收屏蔽0

          candat=0x0f; //bank1:驗(yàn)收屏蔽1無關(guān)

          candat=0xff; //bank1:驗(yàn)收屏蔽2無關(guān)

          candat=0xff; //bank1:驗(yàn)收屏蔽3無關(guān)

          canadr=acfmod;

          //將地址設(shè)置到acf模式寄存器

          candat=0x55;

          //單驗(yàn)收濾波器使用11位id(sff)

          canadr=acfprio;

          //將地址設(shè)置到acf優(yōu)先級寄存器

          candat=0xff;

          //所有濾波器都為高優(yōu)先級

          canadr=acfen;

          //將地址設(shè)置到acf使能寄存器

          candat=0x01;

          //使能bank1的驗(yàn)收濾波器

          canmod=0x00;

          //選擇操作模式,退出 can控制器復(fù)位模式

          }

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

          4.1 can初始化子程序

          can控制器的初始化是系統(tǒng)設(shè)計(jì)工作中極為重要的部分,它是can總線正常工作的前提,關(guān)系整個車載系統(tǒng)能否正常工作,初始化工作既是一個重點(diǎn),也是一個難點(diǎn)。can通信初始化包括操作模式的設(shè)置、驗(yàn)收濾波器的設(shè)置、總線定時器的設(shè)置等。驗(yàn)收濾波器的設(shè)置決定了節(jié)點(diǎn)所接收的信息的格式;定時器設(shè)置確定 can總線數(shù)據(jù)傳輸波特率。80c51cpu接口將pelican與p87c591微控制器內(nèi)部總線相連,通過5個特殊功能寄存器canadr、 candat、canmod、cansta和cancon對pelican寄存器和ram區(qū)進(jìn)行快捷的訪問。對can進(jìn)行初始化實(shí)際就是對以上5個特殊功 能寄存器的進(jìn)行讀寫訪問。以下是用c語言編寫的初始化子程序代碼。

          void init_can(void)

          {

          canmod=0x01;

          //將can控制器設(shè)置為復(fù)位模式以啟動初始化

          p1m2=p1m2|0x02;

          //p1m2.1=`1`,p1m1.1=`0`(默 認(rèn))

          canadr=btr0;

          //btr0和btr1編程為125kbit/s@12mhz

          candat=0x45;

          canadr=btr1;

          //tseg1=12,tseg2=3,sjw=2

          candat=0x2b;

          //sample=1->sample point~81%

          canadr=acr10;

          //將地址設(shè)置到驗(yàn)收代碼寄存器0(bank1)

          candat=0x40; // 驗(yàn)收濾波代碼

          candat=0xe0; //驗(yàn)收濾波代碼

          canadr=amr10;

          //將地址設(shè)置到驗(yàn)收屏蔽寄存器 0(bank1)

          candat=0x00; //bank1:驗(yàn)收屏蔽0

          candat=0x0f; //bank1:驗(yàn)收屏蔽1無關(guān)

          candat=0xff; //bank1:驗(yàn)收屏蔽2無關(guān)

          candat=0xff; //bank1:驗(yàn)收屏蔽3無關(guān)

          canadr=acfmod;

          //將地址設(shè)置到acf模式寄存器

          candat=0x55;

          //單驗(yàn)收濾波器使用11位id(sff)

          canadr=acfprio;

          //將地址設(shè)置到acf優(yōu)先級寄存器

          candat=0xff;

          //所有濾波器都為高優(yōu)先級

          canadr=acfen;

          //將地址設(shè)置到acf使能寄存器

          candat=0x01;

          //使能bank1的驗(yàn)收濾波器

          canmod=0x00;

          //選擇操作模式,退出 can控制器復(fù)位模式

          }


          上一頁 1 2 下一頁

          評論


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