CAN[Control(Controller) Area Network]是控制(器)局域網(wǎng)的簡(jiǎn)稱(chēng)。CAN是一種有效支持分布式控制或實(shí)時(shí)控制的串行通信網(wǎng)絡(luò ),最初由德國B(niǎo)osch公司80年代用于汽車(chē)內部測試和控制儀器之間的數據通信。目前CAN 總線(xiàn)規范已被國際標準化組織ISO制訂為國際標準ISO11898,并得到了Motorola,Intel ,Philips等大半導體器件生產(chǎn)廠(chǎng)家的支持,迅速推出各種集成有CAN協(xié)議的產(chǎn)品。目前CAN總線(xiàn)主要用于汽車(chē)自動(dòng)化領(lǐng)域,如發(fā)動(dòng)機自動(dòng)點(diǎn)火、注油、復雜的加速剎車(chē)控制(ASC)、抗鎖定剎車(chē)系統(ABS)和抗滑系統等。BENZ、BMW等著(zhù)名汽車(chē)上已經(jīng)采用CAN來(lái)滿(mǎn)足上述功能。在工業(yè)過(guò)程控制領(lǐng)域,CAN也得到了廣泛的應用。1.1.1 CAN協(xié)議 CAN總線(xiàn)采用分層結構,規范規定了任意兩個(gè)節點(diǎn)之間的兼容性。包括電氣特件利數據解釋協(xié)議。
CAN協(xié)議可分為:目標層、傳送層、物理層。其中目標層和傳送層包括了ISO/OSI定義的數據鏈路的所有功能。目標層的功能包括:確認要發(fā)送的信息;位應用層提供接口。傳送層功能包括:數據幀組織:總線(xiàn)仲裁:檢錯、錯誤報告、錯誤處理。
CAN總線(xiàn)以報文為單位進(jìn)行信息交換,報文中含有標示符(ID),它既描述了數據的含義又表明了報文的優(yōu)先權。CAN總線(xiàn)上的各個(gè)協(xié)點(diǎn)都可主動(dòng)發(fā)送數據。當同時(shí)有兩個(gè)或兩個(gè)以上的節點(diǎn)發(fā)送報文時(shí),CAN控制器采用ID進(jìn)行仲裁。ID控制節點(diǎn)對總線(xiàn)的訪(fǎng)問(wèn)。發(fā)送具有最高優(yōu)先權報文的節點(diǎn)獲得總線(xiàn)的使用權,其他節點(diǎn)自動(dòng)停止發(fā)送,總線(xiàn)空閑后,這些節點(diǎn)將自動(dòng)重發(fā)報文。
CAN支持四類(lèi)信息幀類(lèi)型。
(1)數據幀 CAN協(xié)議有兩種數據幀類(lèi)型標準2.0A和標準2.0B。兩者本質(zhì)的不同在于ID的長(cháng)度不同。在2.0A類(lèi)型中,ID的長(cháng)度為l l位;在2.0B類(lèi)型中ID為29位。一個(gè)信息震中包括7個(gè)主要的域: 幀起始域——標志數據幀的開(kāi)始,由一個(gè)顯性位組成。仲裁域——內容由標示符和遠程傳輸請求位(RTR)組成,RTR用以表明此信息幀是數據幀還是不包含任何數據的遠地請求幀。當2.0A的數據幀和2.0B的數據幀必須在同一條總線(xiàn)上傳輸時(shí),首先判斷其優(yōu)先權,如果ID相同,則非擴展數據幀的優(yōu)先權高于擴展數據幀??刂朴?mdash;—r0、r1是保留位,作為擴展位,DLC表示一幀中數據字節的數目。 數據域——包含0~8字節的數據。校驗域——檢驗位錯用的循環(huán)冗余校驗域,共15位。應答域——包括應答位和應答分隔符。正確接收到有效報文的接收站在應答期間將總線(xiàn)值為顯性電平。 幀結束——由七位隱性電平組成。
本文引用地址:http://dyxdggzs.com/article/201612/330448.htm(2)遠程幀接受數據的節點(diǎn)可通過(guò)發(fā)遠程幀請求源節點(diǎn)發(fā)送數據。它由6個(gè)域組成:幀起始、仲裁域、控制域、校驗域、應答域、幀結束。
(3)錯誤指示幀由錯誤標志和錯誤分界兩個(gè)域組成。接收節點(diǎn)發(fā)現總線(xiàn)上的報文有誤時(shí),將自動(dòng)發(fā)出“活動(dòng)錯誤標志”其他節點(diǎn)檢測到活動(dòng)錯誤標志后發(fā)送“錯誤認可標志”。
(4)超載幀由超載標志和超載分隔符組成。超載幀只能在一個(gè)幀結束后開(kāi)始。當接收方接收下一幀之前,需要過(guò)多的時(shí)間處理當前的數據,或在幀問(wèn)空隙域檢測到顯性電平時(shí),則導致發(fā)送超載幀。
(5)幀間空隙位于數據幀和遠地幀與前面的信息幀之間,由幀間空隙和總線(xiàn)空閑狀態(tài)組成。幀間空隙是必要的,在此期間, CAN不進(jìn)行新的幀發(fā)送,為的是CAN控制器在下次信息傳遞前有時(shí)間進(jìn)行內部處理操作。當總線(xiàn)空閑時(shí)CAN控制器方可發(fā)送數據。
1.1.2電氣參數及信號表示
總線(xiàn)上的數據采用不歸零編碼方式(NRZ),可具有兩種互補的邏輯值之一:顯性及隱性。CAN總線(xiàn)中各節點(diǎn)使用相同的位速率。它的每位時(shí)間由同步段、傳播段、相位緩沖段1及相位緩沖段2組成。發(fā)送器在同步段前改變輸出的位數值,接受器在兩個(gè)相位緩沖段間采樣輸入位值,而兩個(gè)相位緩沖段長(cháng)度可自由調節,以保證采樣的可靠性。另外,CAN總線(xiàn)采用時(shí)鐘同步技術(shù)來(lái)保證通訊的同步。
1.2 CAN的主要技術(shù)特點(diǎn)
CAN網(wǎng)絡(luò )上的節點(diǎn)不分主從,任一節點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò )上其他節點(diǎn)發(fā)送信息,通信方式靈活,利用這一特點(diǎn)可方便地構成多機備份系統,CAN只需通過(guò)報文濾波即可實(shí)現點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播等幾種方式傳送接收數據,無(wú)需專(zhuān)門(mén)的"調度" CAN的直接通信距離最遠可達10km(速率5kbps以下);通信速率最高可達1Mbps(此時(shí)通信距離最長(cháng)為40m)。 CAN上的節點(diǎn)數主要決定于總線(xiàn)驅動(dòng)電路,目前可達110個(gè);報文標識符可達2032種(CAN2.0A),而擴展標準(CAN2.0B)的報文標識符幾乎不受限制。
1.3 CAN總線(xiàn)通信系統拓撲結構
CAN在物理結構上屬于總線(xiàn)式通信網(wǎng)絡(luò )。系統的組成如下圖:

圖1 CAN總線(xiàn)系統結構圖
該系統由上位監控PC機、智能節點(diǎn)和現場(chǎng)設備三部分組成。上位監控PC機主要負責對系統數據的接受與管理、控制命令的發(fā)送以及各控制單元動(dòng)態(tài)參數和設備狀態(tài)的實(shí)時(shí)顯示;智能節點(diǎn)可以使現場(chǎng)設備方便地連接到CAN總線(xiàn)上,主要負責對現場(chǎng)的環(huán)境參數和設備狀態(tài)進(jìn)行監測,對采集來(lái)的數據進(jìn)行打包處理并將處理后的數字信號通過(guò)CAN通信控制器SJA1000發(fā)送到CAN總線(xiàn)。智能節點(diǎn)的設計和選擇,對通信信號的傳輸發(fā)送有很的影響,系統中的數據傳送和接收,都是通過(guò)CAN總線(xiàn)接口實(shí)現。CAN總線(xiàn)接口電路的設計,對CAN總線(xiàn)很是重要。本文正是基于此,對CAN總線(xiàn)接口電路進(jìn)行設計分析,給出一種設計方案。
2 CAN總線(xiàn)接口電路設計
2.1 總體方案設計
CAN 總線(xiàn)接口電路主要包括:?jiǎn)纹瑱C、控制器接口、總線(xiàn)收發(fā)器和看門(mén)狗電路等。采用Philips公司生產(chǎn)的SJA1000控制器和與其配套的82C250CAN收發(fā)器。按照CAN總線(xiàn)物理層協(xié)議選擇總線(xiàn)介質(zhì),設計布線(xiàn)方案,連接成CAN網(wǎng)絡(luò )。雙絞屏蔽線(xiàn)可設兩套,在兩套介質(zhì)上同時(shí)進(jìn)行信息傳輸,接收方只用一個(gè)介質(zhì)。在冗余和非冗余段的連接臨界點(diǎn)處進(jìn)行總線(xiàn)切換。
硬件電路的設計主要是CAN 通信控制器與微處理器之間和CAN總線(xiàn)收發(fā)器與物理總線(xiàn)之間的接口電路的設計。CAN通信控制器是CAN總線(xiàn)接口電路的核心,主要完成CAN的通信協(xié)議,而CAN總線(xiàn)收發(fā)器的主要功能是增大通信距離,提高系統的瞬間抗干擾能力,保護總線(xiàn),降低射頻干擾(RFI),實(shí)現熱防護等??撮T(mén)狗電路主要是實(shí)現對電路的監控和復位作用。
目前廣泛流行的CAN總線(xiàn)器件有兩大類(lèi):一類(lèi)是獨立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一類(lèi)是帶有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。本課題選取PHILIPS公司的SJA1000 CAN控制器以及82C250總線(xiàn)收發(fā)器,主要是考慮到SJA1000支持CAN 2.0A/B規約。而82C250可以支持110個(gè)CAN節點(diǎn),并且國內市場(chǎng)上PHILIPS的產(chǎn)品型號比較多,購買(mǎi)比較方便。在本次設計中,接口電路簡(jiǎn)單表示如下圖:

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

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