新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 用PIC18F458 的CAN 模塊實現(xiàn)CAN 總線通信

        用PIC18F458 的CAN 模塊實現(xiàn)CAN 總線通信

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

        CAN(Controller Area Network)即控制器區(qū)域網(wǎng),是一種主要用于各種設(shè)備監(jiān)測及控制的網(wǎng)絡(luò)。CAN 具有獨特的設(shè)計思想, 良好的功能特征和極高的可靠性,現(xiàn)場抗干擾能力強。其在國內(nèi)外工業(yè)控制領(lǐng)域已經(jīng)被廣泛應用, 成為最有發(fā)展前途的現(xiàn)場總線之一。
        美國微芯公司的 單片機集成了CAN 通信接口,執(zhí)行Bosch 公司的CAN2.0A/B 協(xié)議。它能支持CAN1.2、CAN2.0A、CAN2.0B 協(xié)議的舊版本和CAN2.0B現(xiàn)行版本。使用 單片機的嵌入式系統(tǒng), 可以很方便的利用CAN 總線與外界進行數(shù)據(jù)交換。它的優(yōu)點是電路接口比較簡單,只需很少的外圍電路就可實現(xiàn)CAN 通信, 受硬件限制比較少;軟件編程容易實現(xiàn)所需功能, 只需對相關(guān)寄存器進行正確設(shè)置即可。

        1 硬件接口電路
        與CAN 驅(qū)動芯片PCA82C250T 的接口電路如圖1 所示。PCA82C250T 是驅(qū)動CAN 控制器和物理總線間的接口, 提供對總線的差動發(fā)送和接收功能。電阻R 作為CAN 終端的匹配電阻;電感L 起濾波作用。
        用PIC18F458 的CAN 模塊實現(xiàn)CAN 總線通信

        2 CAN 控制器的操作
        2.1 初始化CAN 控制
        在使用CAN 之前, 必須對它的一些內(nèi)部寄存器進行設(shè)置, 如CAN 控制寄存器CANCON 、波特率寄存器BRGCONx 的設(shè)置以及對郵箱進行初始化。
        波特率寄存器BRGCONx(x=1,2, 3)決定了CAN 控制器的波特率、采樣次數(shù)、同步跳轉(zhuǎn)寬度和重同步方式,對波特率寄存器的配置步驟如下:

        1. 設(shè)置CANCON 寄存器中的C A N 操作方式請求位為1xx,即REQOP=1xx;
        2. 判斷CANSTAT 寄存器中的操作方式狀態(tài)位是否為100,即OPMODE 是否為100,如OPMODE=100 則進入下一步;
        3. 設(shè)置BRGCONx(x=1,2,3)寄存器,即配置正確的波特率, 同步跳轉(zhuǎn)寬度、采樣次數(shù)和重同步方式;
        4. 設(shè)置發(fā)送郵箱和接收郵箱的標識符、郵箱數(shù)據(jù)長度、屏蔽寄存器、濾波寄存器以及初始化郵箱的數(shù)據(jù)區(qū);
        5. 設(shè)置CANCON 寄存器中的CAN 操作方式請求位為000,即REQOP=000,使CAN 模塊進入正常工作方式;
        6. 判斷CANSTAT 寄存器中的操作方式狀態(tài)位是否為000,即OPMODE 是否為000,如OPMODE=000 則進入下一步;
        7. 寄存器配置和郵箱初始化完成后,進入正常工作方式。

        初始化流程圖如圖2 所示。
        用PIC18F458 的CAN 模塊實現(xiàn)CAN 總線通信
        2.2 信息的發(fā)送
        PIC18F458 有3 個發(fā)送郵箱緩沖器,每一個發(fā)送緩沖器的數(shù)據(jù)長度可以設(shè)置為1 ~ 8 個字節(jié)長度, 信息發(fā)送的具體步驟如下:
        ① 初始化發(fā)送郵箱;
        ② 設(shè)置相應的發(fā)送請求位為1 ,即TXBxCON bits.TXREQ=1(x=1,2,3);
        ③ 若CAN 總線允許發(fā)送, 則啟動最高優(yōu)先級信息的發(fā)送;
        ④ 若發(fā)送成功,則TXREQ 被清零,TXBxIF 被置1,如果中斷被使能, 則會產(chǎn)生中斷;
        ⑤ 若信息發(fā)送失敗,則TXREQ 保持為1 ,并置位相應的狀態(tài)標志。


        上一頁 1 2 下一頁

        關(guān)鍵詞: PIC18F458 CAN模塊 總線通信

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 菏泽市| 洛川县| 察隅县| 手游| 阜城县| 新田县| 建平县| 广河县| 鄂托克旗| 平南县| 开阳县| 鞍山市| 讷河市| 康平县| 赤峰市| 读书| 金秀| 延川县| 重庆市| 凉山| 岚皋县| 中江县| 正安县| 莱州市| 响水县| 香港 | 彭山县| 云林县| 伊金霍洛旗| 牙克石市| 东平县| 阿拉尔市| 黄冈市| 峨山| 铁力市| 南丰县| 六枝特区| 宁城县| 寿宁县| 宁明县| 惠来县|