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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

概述系統構成CAN通信的控制CAN通信的應用6.2系統構成

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

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

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

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

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

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

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

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

6.3CAN通信的控制

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

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

1

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

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

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

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

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

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

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

概述系統構成CAN通信的控制CAN通信的應用(6)中斷寄存器(IR)中斷寄存器用來識別中斷源。此寄存器的一位或多位置1,將變為低電平。微處理器對此寄存器讀出后,此寄存器的所有位將清零,使變為懸浮電平。此寄存器為只讀寄存器。

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

概述系統構成CAN通信的控制CAN通信的應用①

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

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

概述系統構成CAN通信的控制CAN通信的應用③

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

數據長度的有效字節數為0~8,數據長度編碼由下式給出:

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

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

認可碼寄存器(ACR)

概述系統構成CAN通信的控制CAN通信的應用

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

?接收狀態位置1;

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

概述系統構成CAN通信的控制CAN通信的應用

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

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

概述系統構成CAN通信的控制CAN通信的應用①

波特率予分頻器(BRP)

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

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

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

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

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

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

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

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

概述系統構成CAN通信的控制CAN通信的應用④

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

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

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

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

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

概述系統構成CAN通信的控制CAN通信的應用發送/接收緩沖器

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

緩沖器10字節:

2字節標示符

至多8個字節數據PeliCAN模式

緩沖器13字節:

1字節幀信息

2~4字節標示符

至多8字節數據概述系統構成CAN通信的控制CAN通信的應用認可濾波器

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

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

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

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

概述系統構成CAN通信的控制CAN通信的應用6.4CAN的通信功能的應用

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

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

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

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

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

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

時鐘輸出方式

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

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

概述系統構成CAN通信的控制CAN通信的應用發送緩沖器閉鎖

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

概述系統構成CAN通信的控制CAN通信的應用

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

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

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

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

概述系統構成CAN通信的控制CAN通信的應用

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

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

·若接收緩沖器空,主控制器繼續其它的程序,直到下一個查詢接收緩沖器狀態命令。·若接收緩沖器狀態標志指示“滿”,則接收緩沖器中已接收到一個或多個報文。

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

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

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

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

概述系統構成CAN通信的控制CAN通信的應用概述系統構成CAN通信的控制CAN通信的應用數據過載處理如果接收棧已滿,而此時

溫馨提示

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

評論

0/150

提交評論