新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT90CAN128單片機(jī)的某車型CAN總線系統(tǒng)設(shè)計(jì)

        基于AT90CAN128單片機(jī)的某車型CAN總線系統(tǒng)設(shè)計(jì)

        作者: 時(shí)間:2011-12-03 來源:網(wǎng)絡(luò) 收藏

        單元提供給駕駛員計(jì)算機(jī)終端的消息內(nèi)容包括:單元狀態(tài)信息(7字節(jié),分別為液力制動(dòng)扭矩、機(jī)械制動(dòng)扭矩、合成扭矩、速度以及緊急回路和正常油壓的數(shù)值,以及正常制動(dòng)回路油位和緊急制動(dòng)回路油位的報(bào)警狀態(tài))、單元報(bào)警信息(2字節(jié),分別為正常制動(dòng)回路油位報(bào)警和緊急制動(dòng)回路油位的報(bào)警)、聯(lián)合制動(dòng)單元制動(dòng)返回消息(2字節(jié),分別為收到的前驅(qū)或后驅(qū)制動(dòng)命令的命令數(shù)據(jù)和命令值)等。

        2.3 軟件設(shè)計(jì)(通訊部分)

        2.3.1 初始化部分

        初始化前將CAN通用控制寄存器的最高位置1(復(fù)位模式)。完成后,回到操作模式。

        下面給出了CAN控制器的初始化程序:

        void CAN_INIT ( void )

        {

        CANGCON = 0x80 ; /*進(jìn)入復(fù)位模式并且復(fù)位MOb*/

        while ( ENFG == 1 ) ; /*測(cè)試CANGSTA中的ENFG位是否為0*/

        CANGIE = 0xB0 ; /*使能所有中斷及接收、發(fā)送中斷*/

        CANIE2 = 0xFF ; /*MOb 0~7中斷使能*/

        CANIE1 = 0x00 ; /*MOb 8~14中斷禁止*/

        CANBT1 = 0x02 ; /*設(shè)置波特率為500kbps*/

        CANBT2 = 0x20 ;

        CANBT3 = 0x01 ;

        CANTCON = 0x8F ; /*設(shè)置定時(shí)器預(yù)定標(biāo)*/

        /*以“聯(lián)合制動(dòng)單元狀態(tài)查詢消息”為例*/

        CANPAGE = TX_PAGE ; /*指定此消息的MOb頁(寄存器中的高4位)*/

        CANCDMOB = 0x17 ; /*禁止?fàn)顟B(tài),IDE位為1表示擴(kuò)展幀,數(shù)據(jù)長度代碼為7*/

        CANIDT1 = 0x84 ; /*標(biāo)識(shí)符設(shè)置*/

        CANIDT2 = 0xB1 ;

        CANIDT3 = 0x18 ;

        CANIDT4 = 0xF2 ;

        CANIDM1 = 0xFF ; /*標(biāo)識(shí)符屏蔽設(shè)置*/

        CANIDM2 = 0xFF ;

        CANIDM3 = 0xFF ;

        CANIDM4 = 0xFF ;

        CANGCON = 0x02 ; /*進(jìn)入操作模式*/

        While ( ENFG == 0 ) ; /*測(cè)試CANGSTA中的ENFG位是否為1*/

        }

        2.3.2 消息的發(fā)送部分

        消息的發(fā)送均采用中斷方式實(shí)現(xiàn)。首先通過設(shè)置CANPAGE寄存器來指定被發(fā)送的頁數(shù),將數(shù)據(jù)裝載到CANMSG寄存器中,然后由CANCDMOB寄存器來控制發(fā)送動(dòng)作,將消息發(fā)送出去,同時(shí)將觸發(fā)CANSTMOB中的TXOK中斷。


        上一頁 1 2 3 4 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 满城县| 鲁山县| 崇州市| 大荔县| 中牟县| 策勒县| 鞍山市| 株洲市| 成武县| 炉霍县| 苍溪县| 昌宁县| 花垣县| 博罗县| 垦利县| 香河县| 马公市| 祥云县| 上栗县| 繁峙县| 岳池县| 丰县| 师宗县| 普陀区| 凤庆县| 七台河市| 丹寨县| 印江| 鸡西市| 炎陵县| 天柱县| 黄大仙区| 瑞金市| 济宁市| 罗江县| 延川县| 巧家县| 沾化县| 东台市| 汾西县| 定边县|