<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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

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

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

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>