新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广南县| 榆树市| 蒙自县| 黄龙县| 石渠县| 松原市| 南汇区| 高阳县| 阿尔山市| 赣州市| 湘乡市| 清镇市| 隆昌县| 郴州市| 驻马店市| 双江| 平罗县| 潜江市| 灵璧县| 沙河市| 岳池县| 依兰县| 斗六市| 岳阳市| 汽车| 罗田县| 内丘县| 枣庄市| 迭部县| 库伦旗| 越西县| 遂昌县| 崇义县| 卢氏县| 紫金县| 南召县| 衡阳县| 上饶市| 望奎县| 永清县| 澄城县|