新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于SJA1000的CAN總線接口電路的設(shè)計與實現(xiàn)

        基于SJA1000的CAN總線接口電路的設(shè)計與實現(xiàn)

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

        3 CAN總線接口軟件設(shè)計
        CAN接口通信軟件分為3部分:CAN初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收。CAN初始化主要是設(shè)置CAN 的通信參數(shù)。需要初始化的CAN控制寄存器有:模式寄存器、時分寄存器、接收代碼寄存器、屏蔽寄存器、總線定時寄存器、輸出控制寄存器等。值得注意的是:這些寄存器只能在CAN控制器處于復(fù)位狀態(tài)下才可寫訪問。發(fā)送數(shù)據(jù)程序把數(shù)據(jù)存儲區(qū)中待發(fā)送的數(shù)據(jù)取出,組成信息幀,并將主機的ID地址,填入幀頭,然后將信息幀發(fā)送到CAN控制器的發(fā)送緩沖區(qū)。在接收到主機的發(fā)送請求后,發(fā)送程序啟動發(fā)送命令。信息從CAN控制器發(fā)送到總線是由CAN控制器自動完成的。信息從CAN總線到CAN控制器的接收緩沖區(qū)也是由CAN控制器自動完成的。接收程序只需從接收緩沖區(qū)讀取信息,并將其存儲在數(shù)據(jù)存儲區(qū)。
        #p##e#
        3.1 CAN控制器SJA1000的初始化程序
        設(shè) SJA1000的首地址是8000H;
        CR EQU 8000H;控制寄存器
        CMR EQU 8001H;命令寄存器
        SR EQU 8002H;狀態(tài)寄存器
        IR EQU 8003H; 中斷寄存器
        ACR EQU 8004H;驗收碼寄存器
        AMR EQU 8005H;驗收屏蔽寄存器
        BTR0 EQU 8006H;總線定時寄存器0
        BTR1 EQU 8007H;總線定時寄存器1
        OCR EQU 8008H;輸出控制寄存器
        DI
        LDB CL, #03H
        STB CL, CR;開放接收中斷,復(fù)位請求位置1,開始初始化
        LDB CL, #01H
        STB CL, ACR;將節(jié)點1標(biāo)識符送給ACR
        LDB CL, #0FFH
        STB CL, AMR;驗收濾波
        LDB CL, #00H
        STB CL, BTR0;波特率為250kbps
        LDB CL, #14H
        STB CL, BTR1;定義位周期寬度,采樣點位置及采樣次數(shù)
        LDB CL, #0AAH
        STB CL, 0CH
        LDB CL, #1AH
        STB CL, CR;復(fù)位請求位置0,初始化結(jié)束
        EI
        3.2 SJA1000接收與發(fā)送數(shù)據(jù)程序流程
        程序流程見圖 3、圖4.

        圖 3 接收數(shù)據(jù)的中斷服務(wù)程序流程圖
        圖 4 發(fā)送數(shù)據(jù)中斷服務(wù)程序流程圖
        4 結(jié) 語
        該接口電路利用 Xeltek公司的TOPICE-52仿真器進(jìn)行調(diào)試,能模擬實現(xiàn)通信功能。在此基礎(chǔ)上構(gòu)建CAN總線控制系統(tǒng)具有實際意義,但針對不同的控制系統(tǒng),在硬件和軟件上需作相應(yīng)的改動。
        參考文獻(xiàn) :
        〔 1〕 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計〔M〕.北京:北京航空航天大學(xué)出版社,1996.
        〔 2〕 周鳳余,魯守銀,李貽斌,等.CAN總線系統(tǒng)智能節(jié)點設(shè)計與實現(xiàn)〔J〕.微計算機信息,1999,(6):25-27.
        〔 3〕 高強,董力川,朱寧.嵌入式CAN總線控制系統(tǒng)設(shè)計〔J〕.自動化技術(shù)與應(yīng)用,2002,(2):33-34.
        〔 4〕 陸前鋒.基于SJA1000的CAN總線智能控制系統(tǒng)設(shè)計〔J〕.自動化技術(shù)與應(yīng)用,2003,(1):61-64.

        上一頁 1 2 下一頁

        關(guān)鍵詞: SJA1000CAN總線接口電

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 姚安县| 祥云县| 乳山市| 延寿县| 大荔县| 海盐县| 秀山| 乌兰浩特市| 西安市| 西吉县| 中西区| 综艺| 兴海县| 道孚县| 文成县| 柳河县| 西丰县| 万宁市| 仙居县| 景宁| 虞城县| 永靖县| 浦城县| 甘泉县| 静安区| 城固县| 高碑店市| 维西| 依兰县| 蓬莱市| 武定县| 滦南县| 兴隆县| 呼玛县| 桂东县| 西华县| 长丰县| 太湖县| 方山县| 巩留县| 安岳县|