




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院12.1 CAN總線概述總線概述 12.1.1 CAN網絡和模塊網絡和模塊 12.1.2 CAN協議概述協議概述12.2 TMS320F281x eCAN模塊概述模塊概述 12.2.1 TMS320F281x eCAN的結構與特點的結構與特點 12.2.2 eCAN的工作模式的工作模式 12.2.3 eCAN的內存映射的內存映射 12.2.4 eCAN的消息對象和消息郵箱的消息對象和消息郵箱 12.2.5 eCAN的寄存器的寄存器 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院12.3 eCAN的配置的配置 12.3.1 e
2、CAN的波特率配置的波特率配置 12.3.2 eCAN的初始化的初始化 12.3.3 eCAN的配置步驟的配置步驟 12.3.4 消息的發送操作消息的發送操作 12.3.5 消息的接收操作消息的接收操作 12.3.6 遠程幀郵箱的處理遠程幀郵箱的處理 12.3.7 eCAN的中斷的中斷 12.3.8 eCAN的本地斷電模式的本地斷電模式 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 在在C28x DSP中使用的增強型控制器區域網絡中使用的增強型控制器區域網絡(eCAN)模塊與現行的)模塊與現行的CAN2.0標準兼容。它可使標準兼容。它可使用已制定的協議在存在電子噪聲的環境中與其他
3、控用已制定的協議在存在電子噪聲的環境中與其他控制器進行串行通信。借助制器進行串行通信。借助32個完全可配置的郵箱和個完全可配置的郵箱和時間標志(時間標志(time-stamping)特性,)特性,eCAN模塊提供了模塊提供了一種具有通用性和魯棒性的串行通信接口。一種具有通用性和魯棒性的串行通信接口。 本章在本章在CAN2.0基礎上,介紹基礎上,介紹C281x eCAN接口接口的結構、工作方式、寄存器、中斷等內容,并以詳的結構、工作方式、寄存器、中斷等內容,并以詳細的實例來介紹如何使用細的實例來介紹如何使用eCAN接口收發報文。接口收發報文。 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學
4、院學院12.1 CAN總線概述總線概述 CAN是控制器局域網(是控制器局域網(Controller Area Network)的簡稱,是德國博世公司為了解決各種)的簡稱,是德國博世公司為了解決各種各樣的汽車電子控制系統之間的高速通信開發的通各樣的汽車電子控制系統之間的高速通信開發的通信協議。此后,信協議。此后,CAN 通過通過ISO11898 及及ISO11519 進進行了標準化,成為歐洲汽車網絡的標準協議。行了標準化,成為歐洲汽車網絡的標準協議。 CAN 的高性能和可靠性已被認同,并被廣泛的高性能和可靠性已被認同,并被廣泛地應用于工業自動化、船舶、醫療設備、工業設備地應用于工業自動化、船舶、
5、醫療設備、工業設備等方面。現場總線是當今自動化領域技術發展的熱等方面。現場總線是當今自動化領域技術發展的熱點之一,被譽為自動化領域的計算機局域網。它的點之一,被譽為自動化領域的計算機局域網。它的出現為分布式控制系統實現各節點之間實時、可靠出現為分布式控制系統實現各節點之間實時、可靠的數據通信提供了強有力的技術支持。的數據通信提供了強有力的技術支持。 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 控制器局域網絡控制器局域網絡(CAN) 使用一個串行多主機使用一個串行多主機通信協議,此協議有效地支持分布式實時控制,具通信協議,此協議有效地支持分布式實時控制,具有非常高的安全級別,并且
6、通信速率可達有非常高的安全級別,并且通信速率可達1Mbps。CAN 總線是嘈雜和惡劣的環境,如汽車和其他要總線是嘈雜和惡劣的環境,如汽車和其他要求可靠通信的工業領域應用的理想選擇。求可靠通信的工業領域應用的理想選擇。 高達高達8字節數據長度的已設定優先級的消息可字節數據長度的已設定優先級的消息可以通過多主機串行總線發送,此總線使用一個仲裁以通過多主機串行總線發送,此總線使用一個仲裁協議和一個錯誤檢測機制來確保高度的數據完整性。協議和一個錯誤檢測機制來確保高度的數據完整性。 12.1.1 CAN網絡和模塊網絡和模塊周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 隨著隨著CAN總線在各
7、個行業和領域的廣泛應用,對其通總線在各個行業和領域的廣泛應用,對其通信格式標準化也提出了更嚴格的要求。信格式標準化也提出了更嚴格的要求。1991年年CAN總線技總線技術規范(術規范(Version2.0)制定并發布。該技術規范共包括)制定并發布。該技術規范共包括A和和B兩個部分。其中兩個部分。其中2.0A給出了給出了CAN報文標準格式。報文標準格式。2.0B給出給出了標準的和擴展的兩種格式,不同之處在于標識符的長度了標準的和擴展的兩種格式,不同之處在于標識符的長度不同:具有不同:具有11為標識符的幀稱為標準幀,為標識符的幀稱為標準幀,29位標識符的幀位標識符的幀稱為擴展幀。稱為擴展幀。 CAN
8、網絡中交換與傳輸的數據單元稱為報文,報文也網絡中交換與傳輸的數據單元稱為報文,報文也是網絡傳輸的單位,傳輸過程中會不斷地將數據封裝成幀是網絡傳輸的單位,傳輸過程中會不斷地將數據封裝成幀來進行傳輸。幀是一定格式組織起來的數據,一個報文通來進行傳輸。幀是一定格式組織起來的數據,一個報文通常由多幀組成。報文傳輸有常由多幀組成。報文傳輸有4個幀類型來表示和控制:數據個幀類型來表示和控制:數據幀、遠程幀、錯誤幀和過載幀。幀、遠程幀、錯誤幀和過載幀。 12.1.2 CAN協議概述協議概述周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院1. 數據幀數據幀周鵬周鵬 安徽工程安徽工程大學大學電氣工程電
9、氣工程學院學院2. 遠程幀遠程幀周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院3. 錯誤幀錯誤幀周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院4. 過載幀過載幀周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院5. 幀間空間幀間空間周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 eCAN 是一個帶有內部是一個帶有內部32位架構的位架構的CAN 控制器??刂破鳌CAN 控制器為控制器為CPU 提供提供CAN 協議協議2.0B版本的完全功能。版本的完全功能。CAN 控控制器最大限度地減少了制器最大限度地減少了CPU 在通信開銷中的負載,并通過在通信開銷
10、中的負載,并通過提供額外的特性提高了提供額外的特性提高了CAN 標準。標準。 eCAN模塊的結構由一個模塊的結構由一個CAN協議內核協議內核(CPK) 和一個消和一個消息控制器組成。息控制器組成。 12.2 TMS320F281x eCAN模塊概述模塊概述周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院CPK有兩個主要功能:有兩個主要功能:(1) 根據根據CAN協議對在協議對在CAN總線上接收的所有消息進行譯碼總線上接收的所有消息進行譯碼并把這些消息發給接收緩沖器。并把這些消息發給接收緩沖器。(2)根據)根據CAN協議把消息發
11、送到協議把消息發送到CAN總線上。總線上。 CAN控制器的消息控制器負責決定是否由控制器的消息控制器負責決定是否由CPK接收的接收的任何消息必須被保留,以便供任何消息必須被保留,以便供CPU使用或是被丟棄。在初始使用或是被丟棄。在初始化階段,化階段,CPU對消息控制器制定了所有可用的消息標識符。對消息控制器制定了所有可用的消息標識符。消息控制器也負責根據消息的優先級來發送傳輸給消息控制器也負責根據消息的優先級來發送傳輸給CPK的消的消息。息。 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院12.2.1 TMS320F281x eCAN的結構與特點的結構與特點周鵬周鵬 安徽工程安徽工
12、程大學大學電氣工程電氣工程學院學院 eCAN模塊有兩種工作模式:模塊有兩種工作模式:SCC模式和模式和eCAN模式。模式。 eCAN模式同時支持模式同時支持11位和位和29位的標識碼,是一個位的標識碼,是一個32位位的控制器。的控制器。eCAN的有些寄存器(如控制寄存器)必須以的有些寄存器(如控制寄存器)必須以32位方式訪問;一些寄存器(如時間標識寄存器)和郵箱所在位方式訪問;一些寄存器(如時間標識寄存器)和郵箱所在的的RAM范圍可以以范圍可以以8位、位、16位或位或32位方式訪問。位方式訪問。eCAN對信對信息的接收和發送是基于郵箱的,共有息的接收和發送是基于郵箱的,共有32個郵箱,占用個郵
13、箱,占用512字字節節RAM。每個郵箱都可以有自己獨立的。每個郵箱都可以有自己獨立的ID,獨立配置成接,獨立配置成接收郵箱或發送郵箱,也可以禁止不用。這樣大大增加了數據收郵箱或發送郵箱,也可以禁止不用。這樣大大增加了數據的容量和信息的處理能力。的容量和信息的處理能力。 SCC模式是模式是eCAN模式的簡化功能模式,同樣支持模式的簡化功能模式,同樣支持11位位和和29位的標識碼,但該模式只有位的標識碼,但該模式只有16個郵箱(郵箱號個郵箱(郵箱號0-15)可)可用,沒有時間標記功能,可用的接收屏蔽寄存器數目也少。用,沒有時間標記功能,可用的接收屏蔽寄存器數目也少。該模式為默認狀態。此模式下可以通
14、過主控制寄存器該模式為默認狀態。此模式下可以通過主控制寄存器(CANMC)中)中SCB位的置位的置“1”來進入來進入eCAN模式。模式。 12.2.2 eCAN的工作模式的工作模式周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院12.2.3 eCAN的內存映射的內存映射周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院eCAN 模塊有模塊有32個不同的消息對象(郵箱)。個不同的消息對象(郵箱)。每個消息對象可以配置為發送或接收。每個消息對象有其各自的接受屏蔽。每個消息對象可以配置為發送或接收。每個消息對象有其各自的接受屏蔽。一個消息對象由一個消息郵箱組成,其中包括:一個消息對
15、象由一個消息郵箱組成,其中包括: 29位的消息標識符位的消息標識符 消息控制寄存器消息控制寄存器 8字節的信息數據字節的信息數據 一個一個29位接受屏蔽位接受屏蔽 一個一個32位時間戳位時間戳 一個一個32位超時值位超時值此外,位于寄存器中的相應的控制和狀態位允許對消息對象的控制。此外,位于寄存器中的相應的控制和狀態位允許對消息對象的控制。 12.2.4 eCAN的消息對象和消息郵箱的消息對象和消息郵箱1. 消息對象消息對象周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 eCAN模塊有模塊有32個不同的消息郵箱,每個消息對象可配個不同的消息郵箱,每個消息對象可配置成發送或接收郵箱,
16、每個消息目標都有自己的接收濾波器。置成發送或接收郵箱,每個消息目標都有自己的接收濾波器。消息郵箱用來存儲接收到的消息郵箱用來存儲接收到的CAN消息,或存放等待發送的消息,或存放等待發送的CAN消息。消息。 消息郵箱映射到消息郵箱映射到RAM存儲器,存儲器,CAN消息被接收后或被消息被接收后或被傳輸前存儲在這些存儲器中。傳輸前存儲在這些存儲器中。CPU可以使用消息郵箱中不可以使用消息郵箱中不被用來存儲消息的被用來存儲消息的RAM區用作普通內存。區用作普通內存。 2. 消息郵箱消息郵箱周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院每個郵箱包含:每個郵箱包含: 消息標識符消息標識符 29
17、位擴展標識符位擴展標識符 11位標準標識符位標準標識符 標識符擴展位,標識符擴展位,IDE (MSGID.31) 接受屏蔽使能位,接受屏蔽使能位,AME (MSGID.30) 自動應答模式位,自動應答模式位,AAM (MSGID.29) 發送優先級,發送優先級,TPL (MSGCTRL.12-8) 遠程傳輸請求位,遠程傳輸請求位,RTR (MSGCTRL.4) 數據長度代碼,數據長度代碼,DLC (MSGCTRL.3-0) 多達多達8 字節的數據區字段字節的數據區字段周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院12.2.5 eCAN的寄存器的寄存器周鵬周鵬 安徽工程安徽工程大學大
18、學電氣工程電氣工程學院學院 前面已經對前面已經對eCAN模塊寄存器進行了介紹,下面來了解模塊寄存器進行了介紹,下面來了解如何使用這些控制寄存器來實現對如何使用這些控制寄存器來實現對eCAN模塊的功能配置。模塊的功能配置。 12.3 eCAN的配置的配置周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院比特率是按每秒比特計算,如下比特率是按每秒比特計算,如下Bit rate = SYSCLKOUT/( BRPBit Time)在這里,在這里,Bit Time是每比特時間定額(是每比特時間定額(TQ)數量。)數量。SYSCLKOUT 是是CAN模塊系統的時鐘頻率,與模塊系統的時鐘頻率,與C
19、PU 的時的時鐘頻率一樣。鐘頻率一樣。BRP是是BRPreg+1 (CANBTC.23-16) 的值。的值。位時間定義如下:位時間定義如下:Bit time = (TSEG1reg + 1) + (TSEG2reg + 1) + 1 12.3.1 eCAN的波特率配置的波特率配置周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 在使用在使用CAN模塊前必須將其初始化。初始化行為只能在模塊前必須將其初始化。初始化行為只能在CAN模塊的初始化狀態下進行。圖模塊的初始化狀態下進行。圖12-10是是TMS320F2812 eCAN模塊初始化流程圖。模塊初始化流程圖。 設置設置CCR (CAN
20、MC.12)=1進入進入eCAN初始化模式。只有初始化模式。只有在在CCE(CANES.4)=1時,才可以進行初始化。此后,可以對時,才可以進行初始化。此后,可以對配置寄存器進行操作。配置寄存器進行操作。 對對SCC模式來說,對全局接受屏蔽寄存器(模式來說,對全局接受屏蔽寄存器(CANGAM)和和SCC的兩個局部接受屏蔽寄存器的兩個局部接受屏蔽寄存器LAM(0) 和和LAM(3)的修的修改,也必須在初始化模式中執行。改,也必須在初始化模式中執行。 通過設定通過設定(CCR CANMC.12)=0,模塊再次被激活。硬件,模塊再次被激活。硬件復位后,初始化模式被激活。復位后,初始化模式被激活。 需
21、要說明的是:若寄存器需要說明的是:若寄存器CANTBC的值設定為的值設定為0或某一或某一初始值,初始值,CAN將不能脫離初始化工作模式。即當清除將不能脫離初始化工作模式。即當清除CCR位后,位后,CEE位(位(CANES.4)將保持為)將保持為1。 12.3.2 eCAN的初始化的初始化周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院圖圖12-10 eCAN初始化順序初始化順序 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院配置配置eCAN的操作,必須執行以下步驟:的操作,必須執行以下步驟:Step 1. 使能使能CAN模塊時鐘。模塊時鐘。Step 2. 將將CANTX和
22、和CANRX引腳設定為引腳設定為CAN功能引腳,指令:功能引腳,指令:(1) CANTIOC.3:0=0 x08(2) CANTIOC.3:0=0 x08Step 3. 復位后,復位后,CCR位位(CANMC.12)和和CCE位位(CANES.4)設置為設置為1。此時用。此時用戶能夠配置位定時配置寄存器(戶能夠配置位定時配置寄存器(CANBTC)。)。 如果如果CCE位被置位位被置位(即即CANES.4=1),則執行下一步;否則,置位,則執行下一步;否則,置位CCR位位(CANMC.12=1),并等待,直到,并等待,直到CCE位置位位置位(CANES.4=1)。Step 4. 對對CANBTC
23、寄存器寫入合適的數值,并確保寄存器寫入合適的數值,并確保TSEG1和和TSEG2不為不為0。如果它們為如果它們為0,則,則eCAN模塊不能退出初始化模式。模塊不能退出初始化模式。Step 5. 對于對于SCC模式,接收郵箱可編程為接收屏蔽方式。例如:寫入模式,接收郵箱可編程為接收屏蔽方式。例如:寫入LAM(3)=0 x3C0000h 12.3.3 eCAN的配置步驟的配置步驟周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院Step 6. 對主控制寄存器對主控制寄存器(CANMC)編程指令:編程指令:(1) 清除清除CCR:(CANMC.12) = 0(2) 清除清除PDR:(CANM
24、C.11) = 0(3) 清除清除DBO:(CANMC.10) = 0(4) 清除清除WUBA:(CANMC.9)= 0(5) 清除清除CDR:(CANMC.8) = 0(6) 清除清除ABO:(CANMC.7) = 0(7) 清除清除STM:(CANMC.6) = 0(8) 清除清除SRES:(CANMC.5) = 0(9) 清除清除MBNR:(CANMC.4-0) = 0Step 7. 將將MSGCTRLn寄存器的所有位初始化為寄存器的所有位初始化為0。Step 8. 驗證驗證CCE位是否被清位是否被清0(CANES.4=0),如果被清,如果被清0則表明則表明CAN模塊已模塊已被配置。被配
25、置。 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 為了傳輸一個消息,必須首先進行郵箱的配置,本例中以郵箱為了傳輸一個消息,必須首先進行郵箱的配置,本例中以郵箱1為例為例進行郵箱配置:進行郵箱配置:1. 將將CANTRS寄存器中適當位清寄存器中適當位清0:CANTRS.1=0(由于向(由于向CANTRS寫入寫入0無效,設置無效,設置CANTRR.1=1,并等待直到,并等待直到CANTRS.1=0)。如果)。如果RTR=1,則可以發送遠程幀。一旦發送遠程幀,則可以發送遠程幀。一旦發送遠程幀,CAN模塊將對郵箱的模塊將對郵箱的CANTRS位清位清0。同一節點可以用來向其他節點請求。同
26、一節點可以用來向其他節點請求數據幀。數據幀。2. 通過清除郵箱使能寄存器通過清除郵箱使能寄存器CANME的相應位來禁用郵箱,的相應位來禁用郵箱,CANME.1=1。3. 裝載郵箱消息標識符寄存器裝載郵箱消息標識符寄存器MSGID。對于正常的發送郵箱。對于正常的發送郵箱(MSGID.30=0 和和MSGID.29=0),清除,清除 AME(MSGID.30)和)和AAM(MSGID.29) 位。正常運行過程中,該寄位。正常運行過程中,該寄存器一般不會被修改。只有在郵箱被禁用時,才能修改。例如:存器一般不會被修改。只有在郵箱被禁用時,才能修改。例如:(1) 寫入寫入MSGID(1)=0 x15AC
27、0000(2) 將數據的長度寫入消息控制字段寄存器將數據的長度寫入消息控制字段寄存器MSGCTRL的的DLC區區(MSGCTRL.3:0)。通常,。通常,RTR標志會被清標志會被清0,即,即MSGCTRL.4=0。(3) 通過清除通過清除CANMD寄存器的相應位來設置郵箱方向,即寄存器的相應位來設置郵箱方向,即CANMD.1=0。4. 設置寄存器中相應的位,即設置寄存器中相應的位,即CANME.1=1,啟用郵箱。,啟用郵箱。12.3.4 消息的發送操作消息的發送操作周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 郵箱配置完成,可以進行消息的發送,這里仍以郵箱郵箱配置完成,可以進行消
28、息的發送,這里仍以郵箱1為例,發送一為例,發送一條消息,步驟如下:條消息,步驟如下:1. 將消息數據寫入郵箱數據區域。將消息數據寫入郵箱數據區域。(1) 由于由于DBO置為置為0(CANMC.10=0),MSGCTRL(1)= 2,所以數據存儲在,所以數據存儲在CANMDL(1) 的的2個最個最高有效字節中。高有效字節中。(2) 寫入寫入CANMDL(1) = xxxx0000h2. 將發送請求寄存器的對應標志位置將發送請求寄存器的對應標志位置1(CANTRS.1=1) ,啟動消息的發送。此,啟動消息的發送。此后,后,CAN模塊將監控模塊將監控CAN消息的傳輸過程。消息的傳輸過程。3. 等待相
29、應郵箱的發送應答標志位置位等待相應郵箱的發送應答標志位置位(TA.1=1)。發送成功后,。發送成功后,CAN模塊置位模塊置位此標志位。此標志位。4. 無論傳輸成功或中止,無論傳輸成功或中止,CANTRS標志位都將復位為標志位都將復位為0 (CANTRS.1=0)。5. 為了下一次發送,必須將發送應答位必須清為了下一次發送,必須將發送應答位必須清0。(1) 設置設置CANTA.1=1。(2) 等待,直至等待,直至CANTA=0。6. 若要在同一郵箱發送其他消息,則必須更新郵箱若要在同一郵箱發送其他消息,則必須更新郵箱RAM數據。置位數據。置位CANTRS.1來啟動下一次發送。寫入郵箱來啟動下一次
30、發送。寫入郵箱RAM中的可以是中的可以是16位或位或32,但,但eCAN模塊總是從偶數地址處返回模塊總是從偶數地址處返回32位數值。位數值。CPU要接收所有要接收所有32位或其中位或其中的一部分。的一部分。 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 為了接收消息,要配置接收郵箱,本例中以郵箱為了接收消息,要配置接收郵箱,本例中以郵箱3為例,完成接為例,完成接收郵箱的配置,步驟如下:收郵箱的配置,步驟如下:1. 通過清除郵箱使能寄存器通過清除郵箱使能寄存器CANME的相應位來禁用郵箱。即的相應位來禁用郵箱。即CANME.3=02. 將選定的標識符寫入對應的信息標志符將選定的標識
31、符寫入對應的信息標志符MSGID。標識符擴展位必須配。標識符擴展位必須配置為期望的標識符。如果使用接收屏蔽,接收屏蔽使能位置為期望的標識符。如果使用接收屏蔽,接收屏蔽使能位AME必須必須置置1(即(即MSGID.30=1)。例如:寫入)。例如:寫入MSGID(3) = 0 x4f7800003. 如果如果AME位已設置為位已設置為1,則必須對相應的接收屏蔽寄存器編程。例如,則必須對相應的接收屏蔽寄存器編程。例如,LAM(3) = 0 x03c0000。4. 通過設置郵箱方向寄存器的相應標識為通過設置郵箱方向寄存器的相應標識為(CANMD.3=1),郵箱被配置為,郵箱被配置為一個接收郵箱。需要注
32、意的是,應確保此操作不會影響該寄存器中的一個接收郵箱。需要注意的是,應確保此操作不會影響該寄存器中的其它位。其它位。5. 如果需要保護郵箱中的數據,則要對過沖保護寄存器如果需要保護郵箱中的數據,則要對過沖保護寄存器CANOPC進行編進行編程。如果不允許消息丟棄,這種保護是非常有用的。如果對程。如果不允許消息丟棄,這種保護是非常有用的。如果對CANOPC進行置位,則需要軟件確保配置一個附加的郵箱(緩存郵進行置位,則需要軟件確保配置一個附加的郵箱(緩存郵箱)來存儲箱)來存儲“溢出溢出”的消息。否則,消息可能會丟失。例如,寫入的消息。否則,消息可能會丟失。例如,寫入CANOPC.3=16. 通過設置
33、郵箱使能寄存器通過設置郵箱使能寄存器CANME中相應的標志為來啟用郵箱。具體為:中相應的標志為來啟用郵箱。具體為:先讀取先讀取CANME,后回寫,后回寫CANME(CANME|=0 x0008)來確保沒有其他來確保沒有其他標志位被意外修改。標志位被意外修改。 至此,接收郵箱配置完成,任何針對該郵箱的輸入消息都將被自至此,接收郵箱配置完成,任何針對該郵箱的輸入消息都將被自動處理。動處理。 12.3.5 消息的接收操作消息的接收操作周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 郵箱接收配置完成,可以進行消息的接收工作,仍郵箱接收配置完成,可以進行消息的接收工作,仍以郵箱以郵箱3為例,
34、實現接收一條消息,具體步驟如下:為例,實現接收一條消息,具體步驟如下:1. 當接收到一條消息時,接收消息等待寄存器當接收到一條消息時,接收消息等待寄存器(CANRMP) 的的相應標志位被置為相應標志位被置為1,并產生一個中斷(前提是初始化了,并產生一個中斷(前提是初始化了接收中斷)。接收中斷)。2. 之后,之后,CPU將從郵箱將從郵箱RAM讀取消息。在讀取消息。在CPU從郵箱讀取消從郵箱讀取消息之前,應先將息之前,應先將CANRMP位清位清0(CANRMP.3=1)。3. CPU需檢查接收消息丟失標志需檢查接收消息丟失標志RML.3是否為是否為1。根據應用。根據應用程序的要求,程序的要求,CP
35、U來決定如何處理這種情況。來決定如何處理這種情況。4. 讀取數據后,讀取數據后,CPU 需要檢查需要檢查CANRMP位是否被位是否被eCAN模塊模塊重新置位。如果重新置位。如果CANRMP被置為被置為1,則說明數據有可能已,則說明數據有可能已損壞,此時,損壞,此時,CPU需要再次讀取數據。需要再次讀取數據。 至此,完成了接收郵箱的接收配置和消息的接收工作。至此,完成了接收郵箱的接收配置和消息的接收工作。 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 遠程幀處理有兩個功能遠程幀處理有兩個功能:一個功能是本模塊針對來自另一一個功能是本模塊針對來自另一個節點的數據請求,另一個功能是由另
36、一個節點發出數據請求個節點的數據請求,另一個功能是由另一個節點發出數據請求而由本模塊進行應答。而由本模塊進行應答。1. 向另一個節點請求數據向另一個節點請求數據(1)為了向另一個節點請求數據,本節點應配置為接收郵箱。對)為了向另一個節點請求數據,本節點應配置為接收郵箱。對接收節點需要進行如下操作:接收節點需要進行如下操作:(2)把消息控制區域寄存器()把消息控制區域寄存器(CANMSGCTRL)中的)中的RTR位置位置1.(3)把正確的標識符寫入到消息標識符寄存器()把正確的標識符寫入到消息標識符寄存器(MSGID)中。)中。(4)置位該郵箱的)置位該郵箱的CANTRS標志。標志。(5)當接收
37、到應答數據后,模塊把數據存儲在該郵箱中并置位)當接收到應答數據后,模塊把數據存儲在該郵箱中并置位RMP位。位。(6)讀取接收的數據)讀取接收的數據12.3.6 遠程幀郵箱的處理遠程幀郵箱的處理周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院2. 應答一個遠程請求應答一個遠程請求(1) 把目標郵箱配置為發送郵箱。把目標郵箱配置為發送郵箱。(2) 在使能郵箱之前,置位在使能郵箱之前,置位MSGID寄存器中的自動寄存器中的自動 應答模式位應答模式位(AAM)()(MSGID.29)。)。(3) 更新數據區。更新數據區。(4) 通過置位通過置位CANME標志來使能該郵箱。標志來使能該郵箱。
38、當接收到從另一個節點來的遠程請求時,當接收到從另一個節點來的遠程請求時,TRS標志被自動標志被自動置位(啟動數據發送),而后數據被發送到那個節點。接收消置位(啟動數據發送),而后數據被發送到那個節點。接收消息和發送消息具有相同的標識符。息和發送消息具有相同的標識符。 在發送數據以后,在發送數據以后,TA標志位被置位。而后標志位被置位。而后CPU可以進行數可以進行數據更新。據更新。 周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 有兩種不同類型的中斷。一種中斷類型是郵箱相關的有兩種不同類型的中斷。一種中斷類型是郵箱相關的中斷,例如,接收消息等待中斷或中止確認中斷。另一中中斷,例如,接
39、收消息等待中斷或中止確認中斷。另一中斷類型是用來處理錯誤或與系統相關的中斷,例如,被動斷類型是用來處理錯誤或與系統相關的中斷,例如,被動錯誤中斷或喚醒中斷。錯誤中斷或喚醒中斷。下列事件可以啟動兩個中斷中的一個:下列事件可以啟動兩個中斷中的一個:1. 郵箱中斷郵箱中斷(1) 消息接收中斷:收到一個消息消息接收中斷:收到一個消息(2) 信息傳輸中斷:成功一個發送消息信息傳輸中斷:成功一個發送消息(3) 中止確認中斷:等待傳輸被中止中止確認中斷:等待傳輸被中止(4) 接收消息丟失中斷:舊消息被一個新消息(在舊郵件被讀接收消息丟失中斷:舊消息被一個新消息(在舊郵件被讀取前)寫覆蓋取前)寫覆蓋(5) 郵
40、箱超時中斷(只在郵箱超時中斷(只在eCAN模式):在預定的時間幀內其模式):在預定的時間幀內其中一條消息沒有被發送或未收到中一條消息沒有被發送或未收到 12.3.7 eCAN的中斷的中斷周鵬周鵬 安徽工程安徽工程大學大學電氣工程電氣工程學院學院 2. 系統中斷系統中斷(1) 寫入拒絕中斷:寫入拒絕中斷:CPU試圖寫入一個郵箱,但不被允許試圖寫入一個郵箱,但不被允許(2) 喚醒中斷:在一個喚醒后中產生中斷喚醒中斷:在一個喚醒后中產生中斷(3) 總線關閉中斷:總線關閉中斷:CAN模塊進入總線關閉狀態模塊進入總線關閉狀態(4) 被動錯誤中斷:被動錯誤中斷:CAN模塊進入被動錯誤模式模塊進入被動錯誤模式(5) 警告級別中斷:一個或兩個錯誤計數器都大于或等于警告級別中斷:一個或兩個錯誤計數器都大于或等于96(6) 時間戳計數器溢出中斷(只適用于時間戳計數器溢出中斷(只適用于eCAN):時間戳計數):時間戳計數器發生溢出器發生溢出 周
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務談判書合同協議
- 2025標準版合同范本下載
- 2025技術開發合同撰寫關鍵要點
- 快遞轉承包合同協議
- 正規裝修合同協議書范本
- 櫻桃苗木買賣合同協議
- 員工技能培訓協議合同
- 比賽獎勵協議書模板
- 2025年度城市基礎設施建設項目借款合同書
- 員工輔導協議書范本
- 家長會課件:七年級家長會班主任優質課件
- 《認識面積》說課稿定稿
- 設卡堵截示范作業教案
- 浙教版-信息技術-必修1-32-python-語言的程序設計-課件(教學課件)
- 醫院單位氧氣使用檢查記錄表
- 頂管工程施工應急預案27615
- 《預防血管內導管相關血流感染過程質控工具包》解讀
- 智慧黑板采購投標方案
- 《音樂審美心理分析》考試題庫(含答案)
- 新版《病歷書寫規范》
- 2023年同等學力申碩-同等學力(新聞傳播學)考試歷年重點考核試題含答案
評論
0/150
提交評論