a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線的機車實時監控系統

基于CAN總線的機車實時監控系統

作者: 時間:2016-09-12 來源:網絡 收藏

//將地址設置到驗收屏蔽寄存器 0(bank1)

candat=0x00; //bank1:驗收屏蔽0

candat=0x0f; //bank1:驗收屏蔽1無關

candat=0xff; //bank1:驗收屏蔽2無關

candat=0xff; //bank1:驗收屏蔽3無關

canadr=acfmod;

//將地址設置到acf模式寄存器

candat=0x55;

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

canadr=acfprio;

//將地址設置到acf優先級寄存器

candat=0xff;

//所有濾波器都為高優先級

canadr=acfen;

//將地址設置到acf使能寄存器

candat=0x01;

//使能bank1的驗收濾波器

canmod=0x00;

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

}

4 系統軟件設計

4.1 can初始化子程序

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

void init_can(void)

{

canmod=0x01;

//將can控制器設置為復位模式以啟動初始化

p1m2=p1m2|0x02;

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

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;

//將地址設置到驗收代碼寄存器0(bank1)

candat=0x40; // 驗收濾波代碼

candat=0xe0; //驗收濾波代碼

canadr=amr10;

//將地址設置到驗收屏蔽寄存器 0(bank1)

candat=0x00; //bank1:驗收屏蔽0

candat=0x0f; //bank1:驗收屏蔽1無關

candat=0xff; //bank1:驗收屏蔽2無關

candat=0xff; //bank1:驗收屏蔽3無關

canadr=acfmod;

//將地址設置到acf模式寄存器

candat=0x55;

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

canadr=acfprio;

//將地址設置到acf優先級寄存器

candat=0xff;

//所有濾波器都為高優先級

canadr=acfen;

//將地址設置到acf使能寄存器

candat=0x01;

//使能bank1的驗收濾波器

canmod=0x00;

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

}


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉