第6章 CAN硬件設計2014_第1頁
第6章 CAN硬件設計2014_第2頁
第6章 CAN硬件設計2014_第3頁
第6章 CAN硬件設計2014_第4頁
第6章 CAN硬件設計2014_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

大家先思考幾個問題CAN總線“長”什么樣?什么是CAN總線?CAN代表什么什么含義?現(xiàn)場總線包括基金會現(xiàn)場總線、Lonworks、PROFIBUS、HART、CAN,為何我們選擇學習CAN總線?思考

TheAnswerCAN是控制器局域網(wǎng)絡(ControllerAreaNetwork,CAN)的簡稱,是由以研發(fā)和生產汽車電子產品著稱的德國BOSCH公司開發(fā)的,并最終成為國際標準(ISO11898),是國際上應用最廣泛的現(xiàn)場總線之一。

CAN總線是德國BOSCH公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質可以是雙絞線、同軸電纜或光導纖維。通信速率最高可達1Mbps。是唯一有國際標準的現(xiàn)場總線,被認為到目前為止最有前途的現(xiàn)場總線?,F(xiàn)場總線(Fieldbus)本質是計算機控制網(wǎng)絡,因此網(wǎng)絡技術是它的重要基礎。計算機網(wǎng)絡連接是各個PC,現(xiàn)場總線連接的是生產最底層的受控設備,傳感器。思考思考思考6CAN的開發(fā)與設計

6.1概述SJA1000是一種具有高級功能的獨立CAN控制器,它可以應用到汽車工業(yè)和其它工業(yè)領域。目前獨立CAN控制器包括SJA1000和MCP2515,SJA1000應用比較廣泛,性能較強,但是占IO較多。集成CAN控制器的MCU有PIC18F258/2580/4580/P8XC591/STM32/C8051F040等CAN收發(fā)器常用PCA82C250/TJA1050/MCP2551SJA1000是PCA82C200(BasicCAN)替代產品,因此其硬件和軟件與PCA82C200完全兼容;而且SJA1000還增加一種新的操作模式-Pelican,這種模式支持很多新特性的CAN2.0B協(xié)議。概述系統(tǒng)構成CAN通信的控制CAN通信的應用

一、CAN總線結點結構一般而言,每一個CAN模塊可以被分成不同的功能塊;第一層:與CAN總線相聯(lián)的部分,一般由CAN收發(fā)器構成。收發(fā)器將CAN控制器的邏輯電平信號轉換為CAN總線上的實際電平,同時也將總線上的實際電平轉換為CAN控制的邏輯電平。概述系統(tǒng)構成CAN通信的控制CAN通信的應用第二層就是CAN控制器,它完成CAN技術規(guī)范定義的完整的CAN協(xié)議,通常還包括報文的緩沖和認可濾波功能。第三層,所有的CAN功能完全由模塊控制器來控制,它完成應用公共的控制功能,如控制一個執(zhí)行機構,采集傳感器的信息及處理人-機接口等等。一般是MCU概述系統(tǒng)構成CAN通信的控制CAN通信的應用如圖6-1所示,SJA1000獨立CAN控制的器一般均介于微控制器與收發(fā)器之間。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用二、功能框圖SJA1000的功能框圖,如圖6-2所示。

1)CAN核心模塊:根據(jù)CAN技術規(guī)范完成幀的收發(fā)。2)接口管理邏輯單元:完成與外部主控制器的連接,該控制器可以是微控制器或其他裝置,對SJA1000寄存器的讀寫及讀寫脈沖均由此單元來控制,并且增加了除BasicCAN基本功能外的PeliCAN功能,由此而增加的寄存器和控制邏輯也大多在此模塊中完成。概述系統(tǒng)構成CAN通信的控制CAN通信的應用3)發(fā)送緩沖器:可以存放一個完整的報文(SFF/EFF)。只要外部控制器初始化一次發(fā)送過程,IML(管理邏輯接口單元)都要迫使CAN核心模塊來讀取發(fā)送緩沖器的報文。4)認可濾波器:當接收到一組報文CAN核心模塊將其串/并轉換后送到認可濾波器,利用這些可編程寄存器,SJA1000來確定哪些報文是主控制器要接收的。概述系統(tǒng)構成CAN通信的控制CAN通信的應用5)接收棧FIFO

:所有通過認可濾波的報文均存放在接收線中,根據(jù)運行方式和報文長度的不同,接收棧中最多只能存放32個報文。這給用戶提供了更大的靈活性來處理中斷優(yōu)先權判定和中斷服務程序,因此這大大降低了數(shù)據(jù)超載的可能性。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.2系統(tǒng)構成

為了與主控制器相連,SJA1000提供了復用地址/數(shù)據(jù)總線和其他的讀寫控制信號,SJA1000可以被看作為面向存貯器尋址的外設I/O單元。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用由于寄存器和輸出管腳可組態(tài)使得SJA1000可以使用任何種類的集成或分立的

CAN收發(fā)器。在圖3中給出了包括80C51和PCA82C250/1收發(fā)器的SJA1000的應用框圖。CAN控制器給8051提供時鐘,由外部復位電路提供復位信號。在這個例子中,SJA1000由8051的端口P2.7來控制,也可以將此腳接到Vss。該腳也可以通過地址譯碼器來控制。//定義SJA1000的基址#defineSJA_BaseAdr0X7F00決定CS接到P2口的那個管腳,這樣定義就是P2.7#defineSJA_BaseAdr0XFE00決定CS接到P2口的那個管腳,這樣定義就是P2.0概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.2.1SJA1000的應用

CAN總線系統(tǒng)智能節(jié)點硬件設計SJA1000有3組電源腳供給不同的內部數(shù)字或模擬功能塊VDD1/VSS1內部邏輯(數(shù)字)VDD2/VSS2輸入比較器(模擬)VDD3/VSS3輸出驅動器(模擬)這組電源是相互獨立的,以提高芯片的抗干擾能力。在某些應用場合VDD2可以聯(lián)接一個RC去偶網(wǎng)絡,以抑制比較器的噪聲干擾。概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.2.2電源6.2.3復位SJA1000的正常復位過程,要求在XTAL1腳上加以穩(wěn)定的振蕩器時鐘脈沖,Pin17上外部復位信號起同步作用,并在CAN控制器內部被延長為15個時鐘周期的脈寬,這樣就可以保證SJA1000內部寄存器的可靠復位。此外在上電復位時,也應將振蕩內的起振時間考慮在內。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.2.4振蕩器及時鐘的提供方法SJA1000可使用內部振蕩器或外部振蕩器CLKOUT可被置有效,給主控制器提供時鐘,圖6-4給出了4種SJA1000的時鐘供給方法。思考有一幅圖有問題?若CLKOUT不使用,可通過使時鐘分頻寄存器的時鐘關斷位置1,使之無效,這樣做可提高CAN接點的電磁兼容性。概述系統(tǒng)構成CAN通信的控制CAN通信的應用

上電復位或硬復位后,時鐘分頻系數(shù)取決于接口方式。接口方式由11腳模式位(Mode)決定。所以若振蕩的頻率為16MHz,在Intel方式,fclkout=8MHz;在Motorola方式,fclkout=1.33MHz。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用在沒有總線活動和發(fā)出中斷申請的情況下,在BasicCAN模式中置Gotosleep位;在PeliCAN模式置SleepMode位可使CAN控制器進入睡眠狀態(tài),振蕩器要再持續(xù)工作15個系統(tǒng)時鐘時間。這段時間微控制器可用來處理善后事務,并進入其低功耗待機狀態(tài)。喚醒條件之一發(fā)生,振蕩器將起振,并發(fā)出喚醒中斷,并且一旦振蕩器穩(wěn)定,CLKOUT就有有效輸出。概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.2.5CPU接口控制

SJA1000可以直接與兩種著名的CPU系列相聯(lián),80C51、68XX,兩種CPU系列的選擇通過模式腳(Mode,Pin11)來選擇。圖6-5給出了Intel和Motorola方式下的地址/數(shù)據(jù)線及讀寫控制信號線的連線圖。概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.2.6物理層接口

6.3CAN通信的控制

6.3.1控制SJA1000通信的基本功能和控制寄存器

主控制器通過應用程序來設定SJA1000的功能,因此我們將對SJA1000進行編程以滿足不同性能的CAN總線系統(tǒng)的要求。主控制器通過寄存器(控制段)和RAM(報文緩沖器)與SJA1000交換數(shù)據(jù)。這些控制寄存器和接收及發(fā)送緩沖器--RAM的可尋址窗口,對主控制器而言均為外設寄存器。概述系統(tǒng)構成CAN通信的控制CAN通信的應用表2將這些寄存器按使用功能進行了分組。要注意,有些寄存器只能在PeliCAN方式中使用,而另一些只能在BasicCAN方式中使用;有些為只讀而另一些為只寫,還有一些寄存器只能在復位狀態(tài)下才能進行讀寫操作。概述系統(tǒng)構成CAN通信的控制CAN通信的應用SJA1000獨立的CAN控制器有2個不同的操作模式:

1

BasicCAN模式:和PCA82C200兼容。BasicCAN模式是上電后默認的操作模式,因此用PCA82C200開發(fā)的已有硬件和軟件,可以直接在SJA1000上使用而不用作任何修改。

2PeliCAN模式:是新的操作模式。它能夠處理所有CAN2.0B規(guī)范的幀類型。而且它還提供一些增強功能,使SJA1000能應用于更寬的領域。PeliCAN

中文含義?53工作模式通過時鐘分頻寄存器中的CAN模式位來選擇,復位時默認模式是BasicCAN模式。(1)BasicCAN模式地址分配SJA1000對微處理器而言是存儲器尋址方式的I/O裝置,由于寄存器的設計是按RAM方式設計的。SJA1000的地址范圍包括控制段和報文緩沖器。在初始化時對控制段進行編程,以便組態(tài)通信參數(shù)。位處理器也是通過此段實現(xiàn)對CAN總線通信的控制。在初始化時位處理器還可對CLKOUT信號的頻率進行編程。要發(fā)送的報文,必須寫入SJA1000的發(fā)送緩沖器;正確接收的報文,微處理器可以從接收緩沖器中讀取,并將接收緩沖器釋放以備將來使用。概述系統(tǒng)構成CAN通信的控制CAN通信的應用BasicCAN模式微處理器與SJA1000的狀態(tài)、控制和命令信號的交換都是在控制段完成的。此段的地址分配如表5-12所示,在初始化完成后,認可碼寄存器、認可碼屏蔽寄存器、總線定時寄存器0和1以及輸出控制寄存器的內容不應再發(fā)生變化,所以這些寄存器只能在控制寄存器的復位請求位被置為高時,才可對其寫操作。概述系統(tǒng)構成CAN通信的控制CAN通信的應用對寄存器的操作必須區(qū)分兩種模式:復位模式運行模式在硬件復位或總線關斷狀態(tài)(見表5-16,狀態(tài)寄存器)時,芯片自動進入復位模式(見表5-14,控制寄存器);將控制寄存器中的復位請求位清零就可進入運行模式。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用(2)復位值若檢測到‘復位請求’位為1,芯片將終止當前報文的發(fā)送/接收而進入復位狀態(tài);在‘復位請求’位的‘1-0’跳變,CAN控制器返回到運行模式。(3)控制寄存器(CR)控制寄存器的內容可以改變CAN控制器的響應,寄存器的內容可以由與其相接的微處理器來改變。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用注:1、CR.7:對控制寄存器的任何寫操作此位必須置零(復位值為0)。2、CR.6:在PCA82C200中此位被用來選擇同步模式,由于SJA1000中不再使用此模式,設置該位對微處理器沒有任何影響。但為了軟件的兼容性,將此位置1是允許的,硬件或軟件復位對此位沒有影響。讀操作的返回值為用戶軟件的寫入值。3、CR.5:此位讀回的值為1概述系統(tǒng)構成CAN通信的控制CAN通信的應用4、復位請求:

在硬件復位或總線狀態(tài)被置1(總線離線)期間,復位請求位被置為1。復位請求位被置零后SJA1000將等待:a)若復位請求是由硬件或CPU的上電復位引起的,SJA1000將等待一個總線空閑信號(連續(xù)11個隱性電平);b)若復位請求是由CAN控制器的總線離線狀態(tài)引起的,SJA1000要重新進入總線在線狀態(tài),必須等待128個總線空閑狀態(tài)。應注意的是在復位請求過程中,幾個寄存器的內容被改變了。概述系統(tǒng)構成CAN通信的控制CAN通信的應用(4)命令寄存器(CMR)一個命令位引發(fā)SJA1000傳輸層的一個過程,命令寄存器對微處理器而言是一個只寫寄存器,若對命令寄存器執(zhí)行讀操作,其返回值為‘11111111’。兩個命令之間至少需要一個內部時鐘周期對命令進行處理。概述系統(tǒng)構成CAN通信的控制CAN通信的應用注:1、進入睡眠GTS被置1,若沒有中斷申請及總線無活動,SJA1000將進入睡眠狀態(tài);2、清除數(shù)據(jù)過載CDO命令位用來清除由數(shù)據(jù)過載位指示的數(shù)據(jù)過載狀態(tài);一旦數(shù)據(jù)過載位置1,就不再產生其它的過載中斷了。清除數(shù)據(jù)過載命令也可作為接收緩沖器釋放命令來使用。概述系統(tǒng)構成CAN通信的控制CAN通信的應用3、釋放接收緩沖器RRB讀出接收緩沖器的內容后,微處理器可以將釋放接收緩沖器置1,以釋放RX棧的存儲空間,此命令可以使接收緩沖器中的報文立即有效。如果中斷開放,該事件會引發(fā)另外一個接收中斷。若接收緩沖器中沒有報文存在,就不會產生其它的接收中斷,接收緩沖器狀態(tài)位將被清零。概述系統(tǒng)構成CAN通信的控制CAN通信的應用4、終止發(fā)送ATCPU需要推遲以前的發(fā)送請求時,也就是有更緊急的報文發(fā)送前,使用終止發(fā)送位。此命令不會終止已開始的發(fā)送過程,我們通過讀取發(fā)送完成狀態(tài)位的值,可以檢驗原報文是被成功發(fā)送還是被終止。這個檢驗過程應在發(fā)送緩沖器狀態(tài)位置1或發(fā)送中斷發(fā)出后進行。5、發(fā)送請求TR若第一個命令為使發(fā)送請求位置1,不能用使發(fā)送請求位清零來取消第一個命令。請求的發(fā)送過程可以用使終止發(fā)送位置1來取消。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用(5)狀態(tài)寄存器(SR)狀態(tài)寄存器的內容反映了SJA1000的工作狀態(tài),狀態(tài)寄存器對微處理器而言為只讀存儲器。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用(6)中斷寄存器(IR)中斷寄存器用來識別中斷源。此寄存器的一位或多位置1,將變?yōu)榈碗娖健N⑻幚砥鲗Υ思拇嫫髯x出后,此寄存器的所有位將清零,使變?yōu)閼腋‰娖?。此寄存器為只讀寄存器。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用(7)發(fā)送緩沖器布局表5-18給出了發(fā)送緩沖器的總體布局,發(fā)送緩沖器用來存放從微處理器來并將被SJA1000發(fā)送的報文。發(fā)送緩沖器可分為描述符區(qū)和數(shù)據(jù)區(qū),微處理器只能在運行模式讀/寫發(fā)送緩沖器,若在復位模式下讀發(fā)送緩沖器其返回值為‘FFH’。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用①

標示符(ID)標示符由11位組成(ID.10~ID.0),ID.10為最高位,在仲裁過程中它首先被發(fā)送到總線上。標示符的作用類似于報文的名字,在接收端它被用來進行認可濾波;在仲裁過程中它也用來決定訪問總線的優(yōu)先權。標示符所代表的二進制數(shù)值越小,其優(yōu)先權越高,這是由于二進制數(shù)越小,其高位的顯性位就越多。概述系統(tǒng)構成CAN通信的控制CAN通信的應用②

遠程發(fā)送請求(RTR)如果此位置1,將通過總線發(fā)送一遠程幀。在遠程幀中不包含數(shù)據(jù)字節(jié),雖然這樣,也必須給出與具有相同標示符的數(shù)據(jù)幀相同的數(shù)據(jù)長度碼。如果RTR沒有置1,將發(fā)送一幀數(shù)據(jù)幀。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用③

數(shù)據(jù)長度碼(DLC)報文數(shù)據(jù)區(qū)中的數(shù)據(jù)字節(jié)數(shù)由數(shù)據(jù)長度碼給出編碼。在開始發(fā)送遠程幀時,由于RTR為1,這強制發(fā)送/接收的數(shù)據(jù)字節(jié)為零,所以不需要考慮數(shù)據(jù)長度碼。概述系統(tǒng)構成CAN通信的控制CAN通信的應用

數(shù)據(jù)長度的有效字節(jié)數(shù)為0~8,數(shù)據(jù)長度編碼由下式給出:

考慮到兼容性,不能使用大于8的數(shù)據(jù)長度編碼。如果選擇了大于8的DLC編碼,在后續(xù)的數(shù)據(jù)幀中只發(fā)送8個字節(jié)的數(shù)據(jù)。概述系統(tǒng)構成CAN通信的控制CAN通信的應用④

數(shù)據(jù)區(qū)發(fā)送的數(shù)據(jù)字節(jié)數(shù)由數(shù)據(jù)長度碼確定。發(fā)送數(shù)據(jù)的第一位是位于CAN地址12的數(shù)據(jù)字節(jié)1的最高位。概述系統(tǒng)構成CAN通信的控制CAN通信的應用(8)接收緩沖器接收緩沖器的總體布局與5.3.7節(jié)描述的發(fā)送緩沖器的類似。接收緩沖器是RX棧的可訪問的部分,CAN地址范圍為20~29。標示符、遠程發(fā)送請求位和數(shù)據(jù)長度編碼所處的位置和意義與發(fā)送緩沖器的完全一樣,只是所處的地址范圍為20~29。RX棧共有64字節(jié)。在任何時刻棧中所存儲的報文個數(shù),由報文的長度決定。如果RX棧中沒有足夠的空間來存放一個新的報文,CAN控制器將發(fā)出數(shù)據(jù)過載信息。當發(fā)生數(shù)據(jù)過載時,部分已寫入RX棧中的報文將被刪除。概述系統(tǒng)構成CAN通信的控制CAN通信的應用(9)認可濾波器具有認可濾波器,CAN控制器就可以只讓那些標示符與認可濾波寄存內容相符的報文進入RX棧中。認可濾波器由認可碼寄存器(ACR)和認可屏蔽寄存器(AMR)組成。①

認可碼寄存器(ACR)

概述系統(tǒng)構成CAN通信的控制CAN通信的應用

此寄存器只能在復位模式下才可進行讀/寫操作。當一個報文通過了認可檢驗,并且接收緩沖器中空間足夠,則該報文的描述區(qū)和數(shù)據(jù)區(qū)將被順序地存儲到RX棧中。當一個報文完整無誤的接收下來,CAN控制器將完成下述工作:

?接收狀態(tài)位置1;

?若中斷開放,將產生接收中斷。概述系統(tǒng)構成CAN通信的控制CAN通信的應用報文標示符的8個高位(ID.10~ID.3)必須與(AC.7~AC.0)相等,而這些位是被驗收屏蔽位(AM.7~AM.0)相應位屏蔽的,即滿足下式給出的條件之一,報文就通過了認可,被接受:

概述系統(tǒng)構成CAN通信的控制CAN通信的應用

此寄存器只能在復位狀態(tài)才可對其讀/寫操作。認可屏蔽寄存器確定相應的認可碼位的相關性(AM.X=0),或無關性(AM.X=1)。概述系統(tǒng)構成CAN通信的控制CAN通信的應用②

認可屏蔽寄存器(AMR)概述系統(tǒng)構成CAN通信的控制CAN通信的應用(1)總線定時寄存器0(BTR0)總線定時寄存器0(BTR0)定義波特率預分頻和同步跳轉寬度的數(shù)值。BTR0在復位方式下,為讀/寫方式;在運行模式下為:5.3.1.5通用寄存器

概述系統(tǒng)構成CAN通信的控制CAN通信的應用①

波特率予分頻器(BRP)

CAN系統(tǒng)時鐘周期tSCL的大小是可編程的,該數(shù)值也用來確定CAN的位定時。CAN的系統(tǒng)時鐘的周期由下式給出:

同步跳轉寬度(SJW)為了補償不同CAN控制器時鐘振蕩器的相移,任何總線控制器都必須根據(jù)當前傳送報文相關邊沿進行重同步,同步跳轉寬度定義了在一次重同步操作中,位周期縮短或延長的最大系統(tǒng)時鐘數(shù)目。同步跳轉寬度由下式給出:

概述系統(tǒng)構成CAN通信的控制CAN通信的應用(2)總線定時寄存器1(BTR1)所謂總線定時寄存器1(BTR1)定義了位周期的長度和數(shù)據(jù)采樣點的位置和個數(shù)。在復位模式下BTR1為讀/寫方式;在運行模式下,若為PeliCAN模式,該寄存器為只讀方式;

在BasicCAN模式下,對此寄存器進行讀操作,其返回值為0FFH。概述系統(tǒng)構成CAN通信的控制CAN通信的應用②

時間段1(TSEG1)和時間段2(TSEG2)TSEG1和TSEG2定義了每個位周期中含有的系統(tǒng)時鐘的個數(shù)和采樣點的位置。其中:

BTR0和BTR1主要涉及到波特率,具體使用時候建議大家直接利用計算軟件。(3)輸出控制寄存器(OCR)輸出控制寄存器(OCR)使總線控制器通過軟件控制輸出驅動器的不同組合。在復位模式下OCR為讀/寫方式;在運行模式下,若為PeliCAN模式,該寄存器為只讀方式,在BasicCAN模式下,對此寄存器進行讀操作,其返回值為0FFH。概述系統(tǒng)構成CAN通信的控制CAN通信的應用若SJA100在睡眠狀態(tài),TX0和TX1腳上輸出隱性電平,在復位狀態(tài)或者在外部復位腳為低時,TX0與TX1處于懸浮態(tài),根據(jù)輸出控制寄存器設置的內容不同,發(fā)送的輸出級可以工作在不同的運行方式

①正常輸出方式在正常輸出方式,位流序列TXD通過TX0和TX1輸出,輸出驅動器腳TX0和TX1的電平值不僅取決于可編程位OCTPx和OCTNx,而且也取決于輸出極性位OCPOLx的編程值。②時鐘輸出模式在這種方式下,TX0與正常輸出模式一樣,輸出位流序列,而TX1則輸出發(fā)送時鐘(TXCLK),發(fā)送時鐘的上升沿標注一個位周期的開始,時鐘的輸出寬度為一個系統(tǒng)時鐘tSCL

。概述系統(tǒng)構成CAN通信的控制CAN通信的應用③雙相輸出模式與正常輸出模式不同,在雙相輸出模式時,位的輸出是隨時間變化的,而且TX0和TX1交替輸出。若總線控制器是用變壓器與線路隔離的,則位流中就不允許包含有直流成份,這一點可以通過下述方法實現(xiàn):在發(fā)送隱性位時,所有的輸出被關閉(懸浮態(tài)),而顯性位則交替地輸出到TX0和TX1,即第一個顯性位送到TX0,第二個顯性位則送到TX1,第三個又送到TX0,依次類推。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用④

測試輸出模式在測試輸出方式,RX的接收電平將在下一個系統(tǒng)時鐘的上升沿輸出到TXn,而且此輸出電平要受輸出控制寄存器可編程極性位的控制。概述系統(tǒng)構成CAN通信的控制CAN通信的應用時鐘分頻器寄存器(CDR)控制時鐘輸出腳CLKOUT的輸出頻率,并且允許關斷此位的輸出。另外,該寄存器還可以控制是否在TX1上增加了一個接收中斷脈沖、旁路接收比較器、選擇BasicCAN還是PeliCAN模式。在硬件復位后時鐘分頻數(shù)的默認值為00000101、12分頻(Motorola)或為00000000、2分頻(Intel)。軟復位對此寄存器沒有影響,保留位CDR.4在寫入時必須為0,以便與將來的功能上保持兼容。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用(4)時鐘分頻器寄存器(CDR)②

時鐘關斷將此位置1可以使CLKOUT腳輸出無效,此位的寫操作只能在復位模式。將此位置1,CLKOUT腳在睡眠狀態(tài)輸出低電平,否則輸出高電平。

RXINTEN(接收增強位)此位置1可允許TX1作為一個專用的接收中斷輸出腳,當一個報文通過認可濾波,在幀結束符的最后一位期間,TX1輸出一位寬度的接收中斷脈沖。發(fā)送輸出級應該工作在正常模式,輸出極性和輸出驅動控制由輸出控制寄存器來決定。此位只能在復位狀態(tài)下寫入。概述系統(tǒng)構成CAN通信的控制CAN通信的應用④CBP(比較器旁路位)將CDR.6(CBP)位置1,可以使CAN的輸入比較器旁路,此位只能在復位方式下寫入。一般當SJA1000聯(lián)接有一個外部收發(fā)器電路時,才使用此功能。這樣可以減少SJA1000的內部延時,并能延長總線的最大長度。若CBP=1,則只有RX0有效,而未使用的RX1輸入端應聯(lián)接到一個固定電平(如VSS)。概述系統(tǒng)構成CAN通信的控制CAN通信的應用⑤CAN模式

CDR.7定義了CAN的運行方式:此位只能在復位模式下寫入。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用發(fā)送/接收緩沖器

要通過CAN總線發(fā)送的數(shù)據(jù),存貯在SJA1000的發(fā)送緩沖器,而CAN總線上接收到的報文存放在接收緩沖器。這些緩沖器包含有2、3或5個標示符和幀信息字節(jié)(依據(jù)不同的模式和幀結構)和至多8個字節(jié)的數(shù)據(jù)。BasicCAN模式

緩沖器10字節(jié):

2字節(jié)標示符

至多8個字節(jié)數(shù)據(jù)PeliCAN模式

緩沖器13字節(jié):

1字節(jié)幀信息

2~4字節(jié)標示符

至多8字節(jié)數(shù)據(jù)概述系統(tǒng)構成CAN通信的控制CAN通信的應用認可濾波器

CAN控制器SJA1000配備有一個通用的認可濾波器,該濾波器能夠自動檢驗標示符和數(shù)據(jù)字節(jié)。利用這種濾波方法,可以有效的防止不需要接收的報文或報文組進入接收緩沖器,就可以減少主控制器數(shù)據(jù)處理的負荷。概述系統(tǒng)構成CAN通信的控制CAN通信的應用若認可碼和認可碼屏蔽寄存器根據(jù)一定的算法來控制濾波器的工作,接收到的數(shù)據(jù)與認可碼寄存器的內容逐位比較,而認可碼屏蔽寄存器定義接收數(shù)據(jù)的那些位與比較相關(0=相關、1=不相關)。只有接收到的所有相關位與認可碼寄存器的對應位相同,接收的報文才通過了認可濾波。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用BasicCAN模式的接收濾波在這種模式下,SJA1000可以直接代替PCA82C200。接收濾波器由兩個8位寬度的寄存器-接收碼寄存器和接收碼屏蔽寄存器組成,接收報文標示符的高8位與ACR和AMR的位進行比較,見圖6-8。概述系統(tǒng)構成CAN通信的控制CAN通信的應用

AMR=1的位對應的ID符可為任意值,最低位的三個ID符也可為任意值,所以在此例中共有64個不同的標示符(ID符)可以被該節(jié)點接收。

PeliCAN的認可濾波在PeliCAN方式下,認可濾波器進行了擴展,有4個8位寬的認可碼寄存器(ACR0、ACR1、ACR2、ACR3)和認可碼屏蔽寄存器(AMR0、AMR1、AMR2、AMR3)都參與報文的濾波。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.4CAN的通信功能的應用

通過CAN總線建立通信的過程:系統(tǒng)上電后設置主控制器與SJA1000相關的硬件及軟件在SJA1000上電復位后,設置CAN控制器的通信功能,包括方式選擇、認可濾波器的設置、位定時信息等。在應用主程序中準備要發(fā)送的數(shù)據(jù)并激活SJA1000將數(shù)據(jù)發(fā)出處理CAN控制器接收到的報文處理在通信過程中發(fā)生的錯誤

概述系統(tǒng)構成CAN通信的控制CAN通信的應用打開ppt2概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.4.1初始化

SJA1000在上電或硬復拉后,必須對其初始化以便進行通信。而且在運行過程中還可以通過主控制器對其組態(tài)進行修改(重新組態(tài)),在進行重新組態(tài)時,首先要進入復位狀態(tài)。圖6-12給出了初始化程序的流程。概述系統(tǒng)構成CAN通信的控制CAN通信的應用概述系統(tǒng)構成CAN通信的控制CAN通信的應用

上電復位后,主控制器要運行其復位子程序,然后進入初始化SJA1000的子程序,因為要組態(tài)的寄存器只有在復位模式(ResetMode)下,才能被寫入。1)主控制器必須在復位模式下對控制段的下列寄存器進行設置。模式寄存器(僅對PeliCAN模式)選擇下列運行方式:接收濾波器方式自檢模式監(jiān)聽模式概述系統(tǒng)構成CAN通信的控制CAN通信的應用時鐘分頻寄存器:BasicCAN或PeliCAN模式時鐘輸出(CLKOUT)是否有效接收比較器是否旁路TX1輸出腳是否用作專用接收中斷輸出認可碼與認可碼屏蔽寄存器:定義要接收報文的認可碼定義認可碼與報文進行比較的相關位

概述系統(tǒng)構成CAN通信的控制CAN通信的應用總線定時寄存器定義總線的波特率定義在位周期中的采樣點位值定義采樣點數(shù)目輸出控制寄存器定義CAN總線輸出腳

TX0和TX1的輸出方式正常輸出方式

時鐘輸出方式

雙相輸出方式或測試方式。概述系統(tǒng)構成CAN通信的控制CAN通信的應用采用的是最典型的CAN控制器芯片SJA1000。SJA1000CAN控制器的CAN通訊波特率由寄存器BTR0、BTR1晶振等參數(shù)共同決定。下表A.1列出了一組推薦的BTR0、BTR1設置值。標注*符號的值是由國際CiA協(xié)會推薦的標準值。將上述的組態(tài)信息寫入SJA1000的控制段后,就可以通過清除R/R標志進入運行狀態(tài),但必須檢驗這個標志位是否真正被清除了,并且確已進入運行模式,否則程序不應繼續(xù)往下執(zhí)行。在設置SJA1000寄存器前,主控制器應該通過讀R/R(Resetmode/Request)標志來確認SJA1000確在復位方式,因為要組態(tài)的寄存器只有在復位模式(ResetMode)下,才能被寫入。(RR復位請求在控制寄存器(CR)中)概述系統(tǒng)構成CAN通信的控制CAN通信的應用報文的發(fā)送是CAN控制器SJA1000依據(jù)CAN協(xié)議規(guī)范自動進行的;主控制器要將發(fā)送的報文寫入SJA1000的發(fā)送緩沖區(qū),并將發(fā)送請求位(TransmitRequest)置1;發(fā)送過程既可以采用中斷方式,也可以采用查詢方式(查詢SJA1000控制段的狀態(tài)標志)。概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.4.2數(shù)據(jù)的發(fā)送1)采用中斷方式的數(shù)據(jù)發(fā)送

根據(jù)圖6-13給出的主流程,CAN的發(fā)送中斷和主控制器的外部中斷(用來聯(lián)接SJA1000的INT信號)應在報文發(fā)送開始前開放。中斷允許標志在控制寄存器中定義(BasicCAN)或在中斷允許寄存器中定義(PeliCAN方式)。一旦SJA1000開始發(fā)送報文,發(fā)送緩沖器就被封鎖,不能寫入新的報文。因此主控制器必須查詢“發(fā)送緩沖器的狀態(tài)標志”(狀態(tài)寄存器)是否可以將新的報文寫入。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用發(fā)送緩沖器閉鎖

主控制器將新報文暫存在它自己的存貯器中,并設置一個標志,標明一個報文等待發(fā)送。如何處理報文暫存器,由程序設計決定。這個暫存器也可以設計為暫存多個報文。當發(fā)送完當前報文后,CAN控制器將發(fā)出中斷請求,并進入中斷服務程序處理暫存報文的發(fā)送。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用

針對CAN控制器中斷的響應,主控制器要查詢中斷的類型,是否是發(fā)送中斷,要查詢是否還有報文要發(fā)送。等待發(fā)送的一個報文將拷貝到發(fā)送緩沖器,并清除報文等待標志。置發(fā)送請求標志,啟動SJA1000的發(fā)送過程。發(fā)送緩沖器釋放主控制器將要發(fā)送的新報文寫入發(fā)送緩沖器,并置“發(fā)送請求“標志,啟動SJA1000的發(fā)送過程。當成功發(fā)送完一個報文后,CAN控制器就會發(fā)出一個發(fā)送中斷。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用查詢方式的報文發(fā)送圖6-14是查詢方式的報文發(fā)送流程,在查詢方式下CAN發(fā)送中斷應被屏蔽。一但報文開始發(fā)送,發(fā)送緩沖器寫閉鎖,因此主控制器要查詢“發(fā)送緩沖器狀態(tài)”標志,確定是否可以將一個新的報文寫入發(fā)送緩沖器(TXBuffer)

。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用概述系統(tǒng)構成CAN通信的控制CAN通信的應用若發(fā)送緩沖器寫閉鎖循環(huán)查詢狀態(tài)寄存器,主控制器進入等待狀態(tài),直到發(fā)送緩沖器空。若發(fā)送緩沖器空主控制器將新報文寫入發(fā)送緩沖器TXBuffer,并置發(fā)送請求標志TR=1,啟動報文的發(fā)送過程。發(fā)送狀態(tài)TS和接收狀態(tài)RS可以用來檢測CAN控制器是否在空閑狀態(tài),發(fā)送緩沖器狀態(tài)TBS和發(fā)送完成狀態(tài)TCS標志可以用來檢測報文是否成功發(fā)送。概述系統(tǒng)構成CAN通信的控制CAN通信的應用6.4.3中止發(fā)送

請求發(fā)送的報文可以用“中止發(fā)送”命令來中止發(fā)送過程,這一特性可以用來發(fā)送一個比已寫入發(fā)送緩沖器TXBuff中的報文更緊急的報文。圖6-15給出了中斷方式下的中止發(fā)送程序流程圖,這個流程圖演示了中止當前報文而發(fā)送一個優(yōu)先級別高的報文,由于其它原因也要中止發(fā)送報文的程序流程可能有所不同。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用

6.4.4接收報文接收報文是CAN控制器依據(jù)CAN協(xié)議規(guī)范自動進行,接收報文被放在接收緩沖器RXBuffer中。一個報文是否可以傳送給主控制器,由狀態(tài)寄存器的接收緩沖器狀態(tài)RBS和接收中斷標志確定(若中斷開放)。主控制器要將有效數(shù)據(jù)讀入其內存,釋放接收緩沖器RXBuffer,并對報文進行處理。傳送過程既可由中斷控制,也可通過查詢狀態(tài)寄存器標志來完成。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用1)查詢方式的接收過程圖6-16給出了查詢方式接收報文程序流程圖。CAN控制器的接收中斷應屏蔽,主控制器讀SJA1000狀態(tài)寄存器(周期性的)、查詢接收緩沖器狀態(tài)標志RBS,看接收緩沖器中是否有報文存在。

·若接收緩沖器空,主控制器繼續(xù)其它的程序,直到下一個查詢接收緩沖器狀態(tài)命令?!と艚邮站彌_器狀態(tài)標志指示“滿”,則接收緩沖器中已接收到一個或多個報文。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用概述系統(tǒng)構成CAN通信的控制CAN通信的應用主控制器,讀取第一個報文然后發(fā)送釋放接收緩沖器RXbuffer命令,主控制器可以在處理完一個報文后,再查詢其他報文的存在,如圖6-16所示。但是主控制器也可以將所有報文通過查詢讀出后,再一起對報文進行處理。在這種情況下,主控制器內的報文存貯器應有足夠的空間,可以存入多個報文。在傳輸并處理一個報文或所有報文后,主控制器可以繼續(xù)執(zhí)行其它的程序。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用2)中斷方式的接收由圖6-17給出的程序流程圖可以看出,CAN控制器的接收中斷和主控制器用于連接CAN控制器接收中斷信號的外部中斷源,應在接收報文開始前開放。接收中斷允許標志在控制寄存器(BasicCAN模式)或在中斷允許寄存器(PeliCAN模式)。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用若SJA1000已經接收到了報文,也就是說該報文已經通過認可濾波并已存放到接收棧中,此時就會產生接收中斷。主控制器可以立即響應中斷,將接收報文讀入主控制器的報文緩沖器中,發(fā)出釋放CAN接收緩沖器命令。若接收棧(ReceiveFIFO)中還有報文,CAN控制器將產生新的接收中斷。因此,我們沒有必要在一次接收中斷響應中,將接收棧中的所有報文一次性讀出。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用圖6-18中給出的程序流程是在一次接收中斷響應循環(huán)中,將接收棧中的所有報文讀出。與圖6-17給出的流程不同之處在于,該程序流程在發(fā)出釋放緩沖器命令后,檢驗狀態(tài)寄存器中接收緩沖器狀態(tài)位RBS,若狀態(tài)位為1(滿狀態(tài)),則繼續(xù)讀出下一報文,而不是直接中斷返回。正如圖6-17中所示,報文的全部接收過程均可以在中斷子程序中完成,不需要與主程序交換信息。如果方便的話,對接收報文的處理程序也可以在中斷子程序中完成。

概述系統(tǒng)構成CAN通信的控制CAN通信的應用概述系統(tǒng)構成CAN通信的控制CAN通信的應用數(shù)據(jù)過載處理如果接收棧已滿,而此時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論