新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于SJA1000的CAN總線接口電路的設計與實現

        基于SJA1000的CAN總線接口電路的設計與實現

        作者: 時間:2016-11-28 來源:網絡 收藏

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

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

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 静宁县| 垫江县| 霍邱县| 富顺县| 昌乐县| 衢州市| 和田县| 常德市| 鄯善县| 新源县| 铁岭县| 铁岭市| 万安县| 长汀县| 佛山市| 泰和县| 奉新县| 临安市| 正安县| 蒙城县| 博兴县| 汝州市| 淳安县| 额尔古纳市| 尼玛县| 太保市| 巩义市| 扎赉特旗| 车致| 临夏县| 汨罗市| 克拉玛依市| 左贡县| 清水河县| 红原县| 万全县| 开化县| 广东省| 保山市| 滦南县| 武清区|