新聞中心

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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 通化市| 临澧县| 绥江县| 朝阳市| 麦盖提县| 鹤庆县| 宜春市| 会东县| 丘北县| 普兰店市| 桃园市| 甘南县| 富裕县| 永川市| 桐柏县| 泾川县| 贵港市| 西充县| 深州市| 临沧市| 确山县| 海阳市| 融水| 昆明市| 牡丹江市| 通渭县| 通城县| 青田县| 华亭县| 济南市| 兰州市| 灌云县| 邛崃市| 阿拉尔市| 吴川市| 永福县| 麻栗坡县| 喀喇沁旗| 石城县| 东明县| 湘阴县|