新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于P89C668單片機的CAN總線接口設計

        基于P89C668單片機的CAN總線接口設計

        作者: 時間:2012-03-14 來源:網絡 收藏

        負責對SJA1000 進行初始化,通過控制SJA1000實現數據的發送與接收等通信任務.

        SJA1000 的AD0~AD7連接到 的P0口;

        CS連接到的P1.1,P1.1 為0 時選中SJA1000,可控制SJA1000;

        SJA1000 的RD/E、WR、ALE/AS 分別連接到P89C668 的RD(P3.7)、WR(P3.6)、P1.0;

        SJA1000的(INT)連接到P89C668 的P3.2(INT0),這樣,P89C668 可以通過中斷方式訪問SJA1000;

        SJA1000的模式選擇引腳MODE 接高電平時選擇Intel 模式;

        為了保證時鐘同步,SJA1000 的CLKOUT 引腳使能,向P89C668 提供時鐘源.

        2 節點軟件

        實現 通信,要對 節點相應的總線通信程序;在總線通信之前,必須進行SJA1000 控制器初始化.在上電或復位后,通過運行其自身復位程序初始化SJA1000.CAN總線通信程序大致由SJA1000 初始化、發送和接收三部分組成.以下分別對他們進行簡單的描述.

        2.1 SJA1000 初始化

        在上電后,CAN 控制器的RST 腳獲得一個復位脈沖,使之進入復位模式.在開始對SJA1000 各個配置寄存器進行設定之前,主控制器通過讀復位/請求標識來檢測SJA1000是否進入復位模式.為了避免微控制器的上電復位時間和SJA1000 的復位時間的偏差,微控制器要等待SJA1000 完成上電復位后才能對SJA1000 配置寄存器進行配置,存有配置信息的寄存器只能在復位模式下才可進行寫入.SJA1000 初始化程序在復位模式下,主控制器要配置下面的寄存器:

        (1)模式寄存器(僅在PeliCAN 模式下選擇應用操作模式)
        接收過濾模式
        自檢測模式
        偵聽模式

        (2)時鐘分頻寄存器
        使用BasicCAN 或PeliCAN 模式
        CLKOUT 引腳是否可以使用
        CAN 輸入比較器是否被跳過
        TX1 輸出是否專門用于接收中斷輸出

        (3)總線定時寄存器
        定義總線的位速率
        定義位周期內的采樣點位采樣點
        定義一個位周期的采樣數量

        (4)接收代碼和接收掩碼寄存器
        定義要接收消息的接收代碼
        定義與接收代碼相關位進行比較的接收掩碼

        (5)輸出控制寄存器
        定義CAN 總線輸出引腳TX0 和TX1 的配置

        在將這些配置信息配置到SJA1000配置寄存器后,通過消除復位模式,請求使SJA1000進入操作模式.一定要確保復位標志真的被刪除,并且在沒有進行CAN 總線通信前進入操作模式,這可以通過讀該標志來實現. 當硬件復位處于掛起狀態,即CAN 控制器的RST 引腳為低電平時,復位模式/請求標志不能被清除.



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石狮市| 武宣县| 哈巴河县| 洪江市| 满城县| 长丰县| 吴桥县| 东平县| 岑巩县| 米易县| 湘潭市| 宾阳县| 平潭县| 井陉县| 长岛县| 五台县| 雷州市| 江西省| 曲周县| 博白县| 丰宁| 西峡县| 佛坪县| 辽源市| 古蔺县| 屏东县| 新巴尔虎左旗| 青铜峡市| 河津市| 右玉县| 旌德县| 镇江市| 新安县| 于都县| 孝昌县| 佳木斯市| 玉环县| 余姚市| 北辰区| 郧西县| 克山县|