新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > can總線相關(guān)小知識

can總線相關(guān)小知識

作者: 時間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
CAN[Control(Controller) Area Network]是控制(器)局域網(wǎng)的簡稱。CAN是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),最初由德國Bosch公司80年代用于汽車內(nèi)部測試和控制儀器之間的數(shù)據(jù)通信。目前CAN 總線規(guī)范已被國際標(biāo)準(zhǔn)化組織ISO制訂為國際標(biāo)準(zhǔn)ISO11898,并得到了Motorola,Intel ,Philips等大半導(dǎo)體器件生產(chǎn)廠家的支持,迅速推出各種集成有CAN協(xié)議的產(chǎn)品。目前CAN總線主要用于汽車自動化領(lǐng)域,如發(fā)動機自動點火、注油、復(fù)雜的加速剎車控制(ASC)、抗鎖定剎車系統(tǒng)(ABS)和抗滑系統(tǒng)等。BENZ、BMW等著名汽車上已經(jīng)采用CAN來滿足上述功能。在工業(yè)過程控制領(lǐng)域,CAN也得到了廣泛的應(yīng)用。

1.1.1 CAN協(xié)議 CAN總線采用分層結(jié)構(gòu),規(guī)范規(guī)定了任意兩個節(jié)點之間的兼容性。包括電氣特件利數(shù)據(jù)解釋協(xié)議。
CAN協(xié)議可分為:目標(biāo)層、傳送層、物理層。其中目標(biāo)層和傳送層包括了ISO/OSI定義的數(shù)據(jù)鏈路的所有功能。目標(biāo)層的功能包括:確認要發(fā)送的信息;位應(yīng)用層提供接口。傳送層功能包括:數(shù)據(jù)幀組織:總線仲裁:檢錯、錯誤報告、錯誤處理。
CAN總線以報文為單位進行信息交換,報文中含有標(biāo)示符(ID),它既描述了數(shù)據(jù)的含義又表明了報文的優(yōu)先權(quán)。CAN總線上的各個協(xié)點都可主動發(fā)送數(shù)據(jù)。當(dāng)同時有兩個或兩個以上的節(jié)點發(fā)送報文時,CAN控制器采用ID進行仲裁。ID控制節(jié)點對總線的訪問。發(fā)送具有最高優(yōu)先權(quán)報文的節(jié)點獲得總線的使用權(quán),其他節(jié)點自動停止發(fā)送,總線空閑后,這些節(jié)點將自動重發(fā)報文。
CAN支持四類信息幀類型。
(1)數(shù)據(jù)幀 CAN協(xié)議有兩種數(shù)據(jù)幀類型標(biāo)準(zhǔn)2.0A和標(biāo)準(zhǔn)2.0B。兩者本質(zhì)的不同在于ID的長度不同。在2.0A類型中,ID的長度為l l位;在2.0B類型中ID為29位。一個信息震中包括7個主要的域: 幀起始域——標(biāo)志數(shù)據(jù)幀的開始,由一個顯性位組成。仲裁域——內(nèi)容由標(biāo)示符和遠程傳輸請求位(RTR)組成,RTR用以表明此信息幀是數(shù)據(jù)幀還是不包含任何數(shù)據(jù)的遠地請求幀。當(dāng)2.0A的數(shù)據(jù)幀和2.0B的數(shù)據(jù)幀必須在同一條總線上傳輸時,首先判斷其優(yōu)先權(quán),如果ID相同,則非擴展數(shù)據(jù)幀的優(yōu)先權(quán)高于擴展數(shù)據(jù)幀??刂朴?mdash;—r0、r1是保留位,作為擴展位,DLC表示一幀中數(shù)據(jù)字節(jié)的數(shù)目。 數(shù)據(jù)域——包含0~8字節(jié)的數(shù)據(jù)。校驗域——檢驗位錯用的循環(huán)冗余校驗域,共15位。應(yīng)答域——包括應(yīng)答位和應(yīng)答分隔符。正確接收到有效報文的接收站在應(yīng)答期間將總線值為顯性電平。 幀結(jié)束——由七位隱性電平組成。

本文引用地址:http://m.butianyuan.cn/article/201612/330448.htm

(2)遠程幀接受數(shù)據(jù)的節(jié)點可通過發(fā)遠程幀請求源節(jié)點發(fā)送數(shù)據(jù)。它由6個域組成:幀起始、仲裁域、控制域、校驗域、應(yīng)答域、幀結(jié)束。

(3)錯誤指示幀由錯誤標(biāo)志和錯誤分界兩個域組成。接收節(jié)點發(fā)現(xiàn)總線上的報文有誤時,將自動發(fā)出“活動錯誤標(biāo)志”其他節(jié)點檢測到活動錯誤標(biāo)志后發(fā)送“錯誤認可標(biāo)志”。

(4)超載幀由超載標(biāo)志和超載分隔符組成。超載幀只能在一個幀結(jié)束后開始。當(dāng)接收方接收下一幀之前,需要過多的時間處理當(dāng)前的數(shù)據(jù),或在幀問空隙域檢測到顯性電平時,則導(dǎo)致發(fā)送超載幀。

(5)幀間空隙位于數(shù)據(jù)幀和遠地幀與前面的信息幀之間,由幀間空隙和總線空閑狀態(tài)組成。幀間空隙是必要的,在此期間, CAN不進行新的幀發(fā)送,為的是CAN控制器在下次信息傳遞前有時間進行內(nèi)部處理操作。當(dāng)總線空閑時CAN控制器方可發(fā)送數(shù)據(jù)。


1.1.2電氣參數(shù)及信號表示
總線上的數(shù)據(jù)采用不歸零編碼方式(NRZ),可具有兩種互補的邏輯值之一:顯性及隱性。CAN總線中各節(jié)點使用相同的位速率。它的每位時間由同步段、傳播段、相位緩沖段1及相位緩沖段2組成。發(fā)送器在同步段前改變輸出的位數(shù)值,接受器在兩個相位緩沖段間采樣輸入位值,而兩個相位緩沖段長度可自由調(diào)節(jié),以保證采樣的可靠性。另外,CAN總線采用時鐘同步技術(shù)來保證通訊的同步。


1.2 CAN的主要技術(shù)特點
CAN網(wǎng)絡(luò)上的節(jié)點不分主從,任一節(jié)點均可在任意時刻主動地向網(wǎng)絡(luò)上其他節(jié)點發(fā)送信息,通信方式靈活,利用這一特點可方便地構(gòu)成多機備份系統(tǒng),CAN只需通過報文濾波即可實現(xiàn)點對點、一點對多點及全局廣播等幾種方式傳送接收數(shù)據(jù),無需專門的"調(diào)度" CAN的直接通信距離最遠可達10km(速率5kbps以下);通信速率最高可達1Mbps(此時通信距離最長為40m)。 CAN上的節(jié)點數(shù)主要決定于總線驅(qū)動電路,目前可達110個;報文標(biāo)識符可達2032種(CAN2.0A),而擴展標(biāo)準(zhǔn)(CAN2.0B)的報文標(biāo)識符幾乎不受限制。


1.3 CAN總線通信系統(tǒng)拓撲結(jié)構(gòu)
CAN在物理結(jié)構(gòu)上屬于總線式通信網(wǎng)絡(luò)。系統(tǒng)的組成如下圖:

圖1 CAN總線系統(tǒng)結(jié)構(gòu)圖

該系統(tǒng)由上位監(jiān)控PC機、智能節(jié)點和現(xiàn)場設(shè)備三部分組成。上位監(jiān)控PC機主要負責(zé)對系統(tǒng)數(shù)據(jù)的接受與管理、控制命令的發(fā)送以及各控制單元動態(tài)參數(shù)和設(shè)備狀態(tài)的實時顯示;智能節(jié)點可以使現(xiàn)場設(shè)備方便地連接到CAN總線上,主要負責(zé)對現(xiàn)場的環(huán)境參數(shù)和設(shè)備狀態(tài)進行監(jiān)測,對采集來的數(shù)據(jù)進行打包處理并將處理后的數(shù)字信號通過CAN通信控制器SJA1000發(fā)送到CAN總線。智能節(jié)點的設(shè)計和選擇,對通信信號的傳輸發(fā)送有很的影響,系統(tǒng)中的數(shù)據(jù)傳送和接收,都是通過CAN總線接口實現(xiàn)。CAN總線接口電路的設(shè)計,對CAN總線很是重要。本文正是基于此,對CAN總線接口電路進行設(shè)計分析,給出一種設(shè)計方案。

2 CAN總線接口電路設(shè)計


2.1 總體方案設(shè)計
CAN 總線接口電路主要包括:單片機、控制器接口、總線收發(fā)器和看門狗電路等。采用Philips公司生產(chǎn)的SJA1000控制器和與其配套的82C250CAN收發(fā)器。按照CAN總線物理層協(xié)議選擇總線介質(zhì),設(shè)計布線方案,連接成CAN網(wǎng)絡(luò)。雙絞屏蔽線可設(shè)兩套,在兩套介質(zhì)上同時進行信息傳輸,接收方只用一個介質(zhì)。在冗余和非冗余段的連接臨界點處進行總線切換。
硬件電路的設(shè)計主要是CAN 通信控制器與微處理器之間和CAN總線收發(fā)器與物理總線之間的接口電路的設(shè)計。CAN通信控制器是CAN總線接口電路的核心,主要完成CAN的通信協(xié)議,而CAN總線收發(fā)器的主要功能是增大通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護總線,降低射頻干擾(RFI),實現(xiàn)熱防護等??撮T狗電路主要是實現(xiàn)對電路的監(jiān)控和復(fù)位作用。

目前廣泛流行的CAN總線器件有兩大類:一類是獨立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一類是帶有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。本課題選取PHILIPS公司的SJA1000 CAN控制器以及82C250總線收發(fā)器,主要是考慮到SJA1000支持CAN 2.0A/B規(guī)約。而82C250可以支持110個CAN節(jié)點,并且國內(nèi)市場上PHILIPS的產(chǎn)品型號比較多,購買比較方便。在本次設(shè)計中,接口電路簡單表示如下圖:


圖2-1 接口電路總體框圖


2.2 各模塊電路的設(shè)計


2.2.1單片機最小系統(tǒng)
本設(shè)計中,應(yīng)用到單片機為ATMEL公司51系列的89C51,該型號的單片機應(yīng)用廣泛,技術(shù)成熟,市場上價格便宜,而且在學(xué)習(xí)中所學(xué)到的多為該型號,在本次設(shè)計中是首選的芯片。89C51單片機作為系統(tǒng)的核心控制部分,但在本設(shè)計中不是重點講解內(nèi)容,其相關(guān)技術(shù)應(yīng)用和引腳特點功能等,可參照其他相關(guān)資料。設(shè)計的電路原理方框大致如下圖2-2所示。
設(shè)計中為避免出現(xiàn)時鐘信號的沖突,對單片機的外接晶振引腳XTAL1、XTAL2不接上外圍電路,而是通過控制器SJA1000的時鐘信號腳反饋給單片機。同時,對單片機的復(fù)位信號處理,RST引腳接上X5045P的RST腳,復(fù)位信號可由X5045P輸出,在X5045P芯片看門狗外圍電路的作用下,減少了以往由電阻、電容組成的簡易復(fù)位電路造成的不精確、延時高等不良作用,使單片機回復(fù)到初始狀態(tài),完成復(fù)位操作。由于在該電路中要用到單片機的存儲作用,存儲由SJA1000傳輸過來的處理數(shù)據(jù)。因此,腳/EA接上高電平,選用片內(nèi)ROM。對ALE腳,也即地址鎖存有效信號除數(shù)端是和控制器SJA1000的ALE腳接通。

圖2-2 單片機最小系統(tǒng)


2.2.2 CAN總線接口控制電路設(shè)計
SJA1000 在電路中是一個總線接口芯片,通過它實現(xiàn)上位機與現(xiàn)場微處理器之間的數(shù)據(jù)通信。該電路的主要功能是通過CAN總線接收來自上位機的數(shù)據(jù)進行分析組態(tài)然后下傳給下位機的控制電路實現(xiàn)控制功能,當(dāng)CAN總線接口接收到下位機的上傳數(shù)據(jù),SJA1000就產(chǎn)生一個中斷,引發(fā)微處理器產(chǎn)生中斷,通過中斷處理程序接收每一幀信息并通過CAN總線上傳給上位機進行分析。AT89C51是CAN總線接口電路的核心,其承擔(dān)CAN控制器的初始化、CAN的收發(fā)控制等任務(wù)。


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: can總線小知

評論


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

關(guān)閉