<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>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于CAN控制器的對等式單片機多機系統的通信

基于CAN控制器的對等式單片機多機系統的通信

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

摘要:針對單片機多機系統主從式通信的缺點(diǎn),提也了利用CAN控制器實(shí)現單片機多機系統對等式通信,并對其硬件組成原理、通信程序的設計做了詳細的分析。

本文引用地址:http://dyxdggzs.com/article/244624.htm

關(guān)鍵詞:單片機多機系統 “對等式”通信 控制器局域網(wǎng)(CAN)

關(guān)于單片機的多機通信,許多文章及相關(guān)書(shū)籍都有介紹,但就其多機通信的方式而言大多為“主從式”,這一通信方式限制了單片機功能的發(fā)揮及廣泛的應用。雖然文獻[1]利用巧秒的硬件手段實(shí)現了單片機多機之間的“對等式”通信,但其通信方式實(shí)質(zhì)上仍是“主從式”。本文介紹了一種基于CAN控制器的單片機多機系統,從本質(zhì)上實(shí)現了任意兩機之間直接相互通信,從而克服了“主從式”多機通信的缺點(diǎn)。

1 CAN技術(shù)簡(jiǎn)介

CAN(Controller Area Net)即控制器局域網(wǎng),是主要用于各種過(guò)程(設備)監測及控制的一種網(wǎng)絡(luò )。CAN最初是則德國B(niǎo)OSCH公司為汽車(chē)的監測、控制系統而設計的。由于CAN具有卓越的特性的極高的可靠必,特別適合于工業(yè)過(guò)程中監控設備的互連,因此,越來(lái)越受到工業(yè)界的重視。具本來(lái)說(shuō),CAN具有如下特性:

(1) CAN可以多主方式工作,網(wǎng)絡(luò )上任意一個(gè)節點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò )上的其他節發(fā)送信息,而不分主從,通信方式靈活;

(2) CAN可以點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)(成組)及全局廣播方式傳送接收數據;

(3) CAN網(wǎng)絡(luò )上的節點(diǎn)信息可分成不同的優(yōu)先級,可以滿(mǎn)足不同的實(shí)時(shí)要求;

(4) CAN采用非破壞性總線(xiàn)仲載技術(shù)。當兩個(gè)節點(diǎn)是向網(wǎng)絡(luò )上發(fā)送數據時(shí),優(yōu)先級低的點(diǎn)主動(dòng)停止數據發(fā)送,而優(yōu)先級高的節點(diǎn)可不受影響地繼續傳輸數據,大大地節省了總線(xiàn)仲載沖突時(shí)間,在網(wǎng)絡(luò )負載很重的情況下也不會(huì )出現網(wǎng)絡(luò )癱瘓;

(5) CAN的直接通信距離最大可達10km(速率小于5kbps),最高通信速率可達1Mkbps(此時(shí)距離最長(cháng)為40m)。

2 基于CAN控制器的對等式單片機系統軟硬件設計

2.1 系統硬件設計

2.1.1 系統組成原理及通信過(guò)程

所謂對等式通信,就是單片機多機系統中任一節均可主動(dòng)地與其它節點(diǎn)直接交換數據,而無(wú)須經(jīng)過(guò)第三方。從此角度出發(fā),我們設計的基于CAN控制順的單片機多機系統組成如圖1所示。

系統中的每個(gè)節點(diǎn)由單片機、CAN控制器、CAN由發(fā)器組成。單片機主要用于系統的計算及信息處理等功能;CAN控制器主要用于系統的通信;CAN收發(fā)器主要用于增強系統的驅動(dòng)能力。系統的發(fā)送過(guò)程是:?jiǎn)纹瑱C將外圍設備或其他節點(diǎn)傳送過(guò)來(lái)的信息處理后,按CAN規范規定的格式將其寫(xiě)入CAN控制器的發(fā)關(guān)緩沖區,并啟動(dòng)發(fā)送命令,把數據發(fā)送到CAN總線(xiàn)上;接收過(guò)程是:CAN控制器從CAN總線(xiàn)上自動(dòng)接收數據,并經(jīng)過(guò)濾后存入CAN接收緩沖區,且向單片機發(fā)出中斷請求,此時(shí)單片機可從CAN擋收緩沖區讀要接收的數據。

2.1.2 系統節點(diǎn)的硬件設計舉例

圖2是所研制的低成本農業(yè)溫度控制系統中與本文相關(guān)部分的硬件電路圖。

設計是應注意以下幾點(diǎn):

(1) 總線(xiàn)兩端各有一個(gè)120Ω的電阻,對于匹配總線(xiàn)阻抗起著(zhù)相當重要的作用。否則,數據通信的抗干擾性及可靠性大大降低,甚至無(wú)法通信。

(2) 為了CAN與單片機之間時(shí)序的同步,一般采用CAN控制器給單片機提供時(shí)鐘信號,此時(shí)時(shí)鐘信號對CHMOS型單片機應接X(jué)TALI引腳,對HMOS型單片機接X(jué)TAL2引腳。

(3) 若CAN收發(fā)緩沖器采用集成元器件,則RX1腳應接地,且CDR位應置邏輯1。否則,RXI引腳電位必需維持在內2.5V以上,且CDR寄存器中的CBP位應置邏輯0,以形成CAN要求的邏輯電平。

2.2 系統軟件設計

系統軟件設計的關(guān)鍵是通信程序的設計。通信軟件由三部分組成:初如化程序、發(fā)送程序、接收程序。由于系統中任意一節點(diǎn)在任意時(shí)刻均可主動(dòng)與其它節點(diǎn)通信,所以,各世點(diǎn)的通信程序相同。

2.2.1 初始化程序

初始化程序主要是通過(guò)對CAN控制器控制段中的寄存儲器寫(xiě)入控制字從而確定CAN控制器工作方式等。有三種方式進(jìn)入初始化和諧:一是上電復位;二是硬件復位;三是軟件復位,即運行期間通過(guò)給CAN控制器發(fā)一個(gè)復位請求,置復位請求位為1。在復位期間,必需初始化的寄存器有:MR(PeliCAN模式)模式寄存器、CDR時(shí)分寄存器、ACR接收代碼寄存器、MAR屏蔽寄存器、BTR總線(xiàn)定時(shí)寄存器、OCR輸出控制寄存器。需要注意的是,這些寄存器僅能在復位期間可寫(xiě)訪(fǎng)問(wèn)。因此,在對這些寄存器初始化前,必須確保系統進(jìn)入了復位狀態(tài)。初始化程序的流程圖如圖3所示。

2.2.2 發(fā)送程序

信息從CAN控制器發(fā)送到CAN總線(xiàn)是由CAN挖掘器自動(dòng)完成的。發(fā)送程序只需把發(fā)送的信息幀送到CAN的發(fā)送緩沖區,且啟動(dòng)發(fā)送命令即可。發(fā)送程序可采用查詢(xún)方式或中斷方式比較簡(jiǎn)單,這里僅討論中斷方式發(fā)送程序的設計。對于中斷方式,發(fā)送程序分為兩部分:一是主程序;二是中斷服務(wù)程序。主程序主要用于控制信息發(fā)送及當發(fā)送緩沖區滿(mǎn)時(shí),把發(fā)送的信息暫存到臨時(shí)存儲區;中斷發(fā)送程序負責把臨時(shí)存儲區的暫存信息發(fā)送出去。兩者的流程圖如圖分別見(jiàn)圖4、圖5。

2.2.3 接收程序

信息從CAN總線(xiàn)到CAN接收緩沖區是由CAN控制器自動(dòng)完成的。接收程序只需從接收緩沖區讀取要接的信息即可。接收程序也可采用查詢(xún)方式或中斷方式,兩者的繁簡(jiǎn)程度相當,此處經(jīng)查詢(xún)方式為例給出接收程序的流程圖(見(jiàn)圖6)。

以上給出的流程圖均為一般性流程圖。在使用時(shí)應結合實(shí)際項目具體化,并且發(fā)送程序中可能會(huì )有應急處理,接收程序中會(huì )有數據過(guò)載情況。限于篇幅,此處不予以討論。

基于CAN控制器的單片機多機通信系統,由于其通信效率高、抗干擾性強、傳輸距離較遠,適合于中小型分布式控制系統,且由于其價(jià)格低廉,在低成本領(lǐng)域有著(zhù)廣泛的應用空間。



評論


相關(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>