




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、XMC4800 Mult模B 中文手冊:XMC4800 簡介二:MuLtiCAN模塊介紹MuLtiCAN 模塊簡述:XMC4800的MuLtiCAN模塊包含6個(gè)可獨(dú)立運(yùn)行的符合ISO11898和SAEJ1939 的CAN節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都支持通過網(wǎng)關(guān)或遠(yuǎn)程幀模式交換數(shù)據(jù)。MultiCAN模塊 提供256個(gè)“消息對象”用于接收和處理CAN報(bào)文,這256個(gè)消息對象可以自由分配 給任何一個(gè)節(jié)點(diǎn)使用,一個(gè)消息對象只能映射到一個(gè)CAN節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)都 有自己的消息對象列表,這些列表可以組成FIFO方式緩存報(bào)文,也可以用作網(wǎng)關(guān)模式。報(bào)文的處理流程如下圖所示我們使用一種快遞模型來理解MuLtiCAN的工作模式
2、。假定MCU為一個(gè)區(qū)域 的承包人,那么他需要將自己承包的區(qū)域劃分為不同的部分由不同的加盟店來完 成該區(qū)域的工作,劃分區(qū)域其實(shí)就是安排加盟店(CAN-NODE),每一個(gè)加盟店在 收到物流網(wǎng)絡(luò)上的包裹(報(bào)文)之后需要人工進(jìn)行篩選Message Objects)決定那些 包裹(報(bào)文)需要處理,接收需要處理的,丟棄不需要處理的。每個(gè)加盟店可以 由區(qū)域承包人MCU)女排需要多少工人Message Objects),每個(gè)工人(Message Objects) 可以接收的包裹(報(bào)文)的地址范圍。對于大規(guī)模的包裹(報(bào)文)的處理還可以 安排多個(gè)(Message Objects)組成流水線(FIFO )形式處理,
3、以滿足客戶需要大規(guī)模 投遞需要。所以我們需要使用MuLtiCAN模塊實(shí)現(xiàn)CAN總線通信功能需要完成以下內(nèi)容:1. 初始化CAN-NODE初始化Message Object (接收/發(fā)送濾波)為 CAN-NODE 分配可用的 Message Object (List)使能物理引腳,打開中斷2.2 MuLtiCAN 模塊主要寄存器簡述:Global Module RegistersModuleIdentificationRegister(模塊識別寄存器)ID)作用:CAN節(jié)點(diǎn)的消息對象列表分配與管理面板。MOD_NUMBER(32-16):模塊的識別號MOD_TYPE(15-8):模塊類型MOD_
4、REV(0-7):模塊的版本號這是一個(gè)只讀寄存器,不需要做任何配置。PANCTR(PanaelControlRegisiter面板控制寄存器)作用:消息對象列表分配控制面板,負(fù)責(zé)每個(gè)消息對象列表的消息對象管理,包 括靜態(tài)動態(tài)插入和刪除消息對象。PANAR2(31-24),PANAR1(23-16),0(15-10),RBUSY(9),BUSY(8),PANCMD (7-0)PANCMD和PANAR1、PANAR2組成組合命令完成不同的任務(wù),RBUSY和BUSY為忙標(biāo) 志。PANCMD和PANAR1、PANAR2組成命令內(nèi)容如下。PANCMDPANAR2PANAR1功能00-NOOperatio
5、n01Bit7 : ERR-列表初始化,復(fù)位所有報(bào)文,解除所有已分配的報(bào)文對 象。初始化時(shí)CAN節(jié)點(diǎn)(0-5)必須職位INIT和CCE。ERR : 0,初始化成功;1,并非所有節(jié)點(diǎn)的INIT和CCE 被置位取消初始化。MUltican模塊復(fù)位時(shí)會自動執(zhí)行初 始化指令02列表指針報(bào)文對象編號將 PANAR1給出的報(bào)文對象分配到PANAR2給出的列表的 末尾,也可以取消對PANAR1給出的報(bào)文對象的分配, PANAR2=0 即可。03列表指針Result :Bit7 : ERR結(jié)果報(bào)文對象編號P丿配將未分配報(bào)文對象列表中的第一個(gè)報(bào)文對象分配給 ANAR2指定的報(bào)文對象列表(添加到該列表最后)被分
6、的報(bào)文對象編號返回到PANAR1.Result :ERR : 0,成功1,失敗,未分配的報(bào)文對象列表為空(所有報(bào)文04目標(biāo)對象編號源對象編號對象都已經(jīng)分配完畢?)將PANAR1給定的源對象從其所屬的對象列表中移除并插入到PANAR2所給定的目標(biāo)對象所屬的對象列表中,它插05目標(biāo)對象編號Result :被Bit7 : ERR象Result :將2插入的報(bào)文對目.編號pa入到目標(biāo)對象的前面。孚未分配報(bào)文對象列表中的第一個(gè)報(bào)文對象插入到給定 扌標(biāo)對象編號的前面,返回被插入的報(bào)文對象編號給NAR1.Result :ERR : 0,成功06目標(biāo)對象編號源對象編號1,失敗,禾分配的報(bào)文對象列表為空(所有報(bào)
7、文 對象都已經(jīng)分配完畢?)將PANAR1給定的源對象從其所屬的對象列表中移除并插07目標(biāo)對象編號Result :被Bit7 : ERR象Result :將2插入的報(bào)文對目:編號pa入到PANAR2所給口疋的目標(biāo)刈象所屬的刈象列表中,匕插 入到目標(biāo)對象的后面。孚未分配報(bào)文對象列表中的第一個(gè)報(bào)文對象插入到給定 扌標(biāo)對象編號的后面,返回被插入的報(bào)文對象編號給NAR1.Result :ERR :0,成功1,失敗,未分配的報(bào)文對象列表為空(所有報(bào)文對象都已經(jīng)分配完畢?)08-FF- -MCR (ModuleControlRegister )模塊控制寄存器作用:時(shí)鐘選擇和報(bào)文掛起選擇0(31-16),MP
8、SEL(15-12-rw),0(11-9),0(8-rw),0(7-4),CLKSEL(3-0-rw)CLKSEL(3-0-rw)0000沒有時(shí)鐘可提供0001 fpERIPH0010 foHP0100不允許1000 hard wired to 00(8-rw)Written 0MPSEL(15-12-rw)在報(bào)文接收/發(fā)送之后,位域MPSEL可用于計(jì)算報(bào)文掛起位置,由位域 RXINP、TXINP和MPN(報(bào)文掛起編號)共同選擇。-詳細(xì)描述參見用戶手冊MITR(ModuleInterruptTriggerRegister) 中斷觸發(fā)寄存器作用:觸發(fā)中斷0(31-16),IT(15-0-W)IT
9、(15-0-W)在對f應(yīng)的位寫1(n)可以在INT_On中斷輸出線上產(chǎn)生中斷,寫 0無影響。ListPointerandListRegister( 列表指針和列表寄存器)作用:描述消息對象列表指針,消息對象列表大小,對象列表包含的消息對象等內(nèi)容。有七 個(gè)消息對象列表,消息對象列表0 包含所有未分配到消息對象列表的消息對象,消息對象列 表(1-6)分別映射到 CAN-NODE(0-5)。LIST0LIST(1-15)LIST Register N0 (31-25) , EMPTY (24-rh) , SIZE (23-16) , END (15-8-rh) , BEGIN (7-0-rh)EMP
10、TY0-列表不為空(列表內(nèi)至少有一個(gè)報(bào)文對象)1-列表為空(列表未分配報(bào)文對象)SIZE列表中兀素個(gè)數(shù)-1 (即從0開始計(jì)數(shù)) 為0時(shí)表示列表為空END指向列表最后一個(gè)報(bào)文對象BEGIN指向列表第報(bào)文對象221.6報(bào)文通知寄存器(集)MSPNDk當(dāng)報(bào)文對象因報(bào)文發(fā)送/接收操作而產(chǎn)生一個(gè)中斷請求時(shí), 該請求將被送至報(bào)文對象 的位域 TXINP 或 RXINP 所選擇的中斷輸出線上。因?yàn)閳?bào)文對象個(gè)數(shù)多于中斷輸出線個(gè) 數(shù),因此通常一個(gè)中斷程序可處理來自多個(gè)報(bào)文對象的請求。因此, MultiCAN 模塊實(shí)現(xiàn) 了一個(gè)優(yōu)先級選擇機(jī)制,在報(bào)文對象集合中選擇具有最高優(yōu)先級的報(bào)文對象。報(bào)文掛起 寄存器包含掛起的
11、中斷請求。MSPNDk (k = 0-7)(Message Pending Register k)MPN(31-0)當(dāng)一個(gè)報(bào)文對象中斷產(chǎn)生,MSPND中的某一位會被置位(由IPR寄存器的MPN域決定)寄 存器選擇 n 由 MPN 最高位給出。對應(yīng)的位上寫1 可以清零。每個(gè)消息掛起寄存器都有一個(gè)與之關(guān)聯(lián)的消息索引寄存器 MSIDk。 消息索引寄存器顯示處 于待處理位組中最低位置的有效位(置位)。MSIDK(k = 0-7)(Message Index Register k)0 (31-6) , INDEX (5-0)INDEX(5-0)INDEX的值由具有下列特性MSPNDk掛起位的位i給出:M
12、SPNDki & IMi = 1i = 0 或者 MSPNDki-1:0 & IMi-1:0 = 0如果MSPNDk中沒有滿足上述條件的位,那么INDEX 被讀為 100000B。因而,INDEX給出MSPNDk中的第一個(gè)掛起位的 位置,只考慮那些被報(bào)文指針屏蔽寄存器選中的 位。MSIMASK(Message Index Mask Register)IM(31-0)只有在IM中設(shè)置了相應(yīng)索引掩碼位,MSPNDk中的那些位才有助于計(jì)算消息索引。(掩碼?控制開關(guān)?)CAN Node Registers(CAN 節(jié)點(diǎn)寄存器)CAN節(jié)點(diǎn)寄存器內(nèi)置于MultiCAN +模塊的每個(gè)CAN節(jié)點(diǎn)。包含節(jié)點(diǎn)控制
13、直接相關(guān)的信息。 Node x Control Register CAN_NCRx (x = 0-5)0(31-8), CALM(7), CCE(6), TXDIS(5), CANDIS(4), ALIE(3), LECIE(2), TRIE(1)INIT(0)INIT (0-rw)0:復(fù)位INIT用于使能該節(jié)點(diǎn),使其可參加CAN通信。如果CAN節(jié)點(diǎn)處于總線關(guān)閉狀態(tài),那么繼續(xù)進(jìn)行總線關(guān)閉的恢復(fù)操作(該 操作不依賴于INIT位)??偩€關(guān)閉恢復(fù)序列結(jié)束時(shí),允許該節(jié)點(diǎn)參加CAN 通信。如果CAN節(jié)點(diǎn)不處于總線關(guān)閉狀態(tài),在允許該節(jié)點(diǎn)參加CAN通信 之前,必須要檢測到11個(gè)連續(xù)的隱性位.1:關(guān)閉節(jié)點(diǎn),禁
14、止參與通訊。取消任何正在傳送的幀。如果該節(jié)點(diǎn)處于總 線關(guān)閉狀態(tài)則繼續(xù)運(yùn)行總線關(guān)閉恢復(fù)序列。TRIE (1-rw)傳輸中斷使能,運(yùn)行在CAN報(bào)文發(fā)送或接收成功之后產(chǎn)生中斷 0:不允許產(chǎn)生傳輸中斷1 :允許產(chǎn)生傳輸中斷通過CAN節(jié)點(diǎn)中斷指針寄存器中的TRINP選擇中斷輸出線LECIE (2-rw)允許當(dāng)每一次硬件刷新NSRX寄存器的LEC位(LEC0, CAN協(xié)議錯(cuò)誤)時(shí) 產(chǎn)生中斷。0:禁止中斷1 :允許中斷中斷輸出線由位域NIPRx.LECINP選擇ALIE (3-rw)警告中斷使能0:禁止中斷1 :允許中斷以下事件會產(chǎn)生中斷NSRX (CAN節(jié)點(diǎn)狀態(tài)寄存器)的位BOFF發(fā)送改變NSRX (CA
15、N節(jié)點(diǎn)狀態(tài)寄存器)的位EWRN發(fā)送改變列表長度錯(cuò)誤,該錯(cuò)誤也置位NSRX (CAN節(jié)點(diǎn)狀態(tài)寄存器)中的位LLE 列表對象錯(cuò)誤,該錯(cuò)誤也置位NSRX (CAN節(jié)點(diǎn)狀態(tài)寄存器)中的位LOE 位域NIPRx.ALINP選擇在這種類型的中斷時(shí)被激活的中斷輸出線CANDIS (4-rw)置位將禁止該CAN節(jié)點(diǎn)。首先CAN節(jié)點(diǎn)一直等待,直到總線空閑或總線關(guān) 閉撞他,然后INIT自動置位,如果ALIE被置位那么產(chǎn)生一個(gè)警報(bào)中斷。TXDIS (5-rw)置位,在總線空閑時(shí)禁止CAN節(jié)點(diǎn)發(fā)送消息?用途?CCE (6-rw)0:位時(shí)序寄存器,端口控制寄存器和錯(cuò)誤計(jì)數(shù)器 寄存器只能被讀取,忽略所有試圖修改這些寄 存
16、器的操作。1:位時(shí)序寄存器,端口控制寄存器和錯(cuò)誤計(jì)數(shù)器 寄存器可讀也可寫CALM (7-rw)CAN分析模式置位該位,那么CAN節(jié)點(diǎn)工作在分析模式。這就意味著可以接收報(bào)文,但 不能發(fā)送報(bào)文。幀接收操作之后不向CAN總線發(fā)送應(yīng)答。有效錯(cuò)誤標(biāo)志以 隱性而不是顯性發(fā)送。發(fā)送線連續(xù)保持為隱性(1)電平。只有當(dāng)位INIT置位 時(shí),才能對位CALM寫入CAN_NSRx(x=0-5)(CAN 節(jié)點(diǎn)狀態(tài)寄存器)O(31-0),LOE(9),LLE(8),BOFF(7),EWR N( 6),ALERT(5),RXOK(4),TXOK(3),LEC(2-0)LEC(2-0-rwh)最近的錯(cuò)誤代碼000 :無錯(cuò)誤0
17、01 :填充錯(cuò)誤,接收到的報(bào)文中出現(xiàn)了連續(xù)極性相同的5個(gè)位010 :格式錯(cuò)誤011 :應(yīng)答錯(cuò)誤位1錯(cuò)誤,在報(bào)文發(fā)送過程中,CAN節(jié)點(diǎn)試著在仲裁域和應(yīng)答時(shí)隙 之外發(fā)送隱性電平(1),但是監(jiān)測到的總線值為顯性。位0錯(cuò)誤,該編碼指示兩種不同情況:a)在報(bào)文發(fā)送過程中(或者應(yīng)答位,有效錯(cuò)誤標(biāo)志,過載標(biāo)志),CAN 節(jié)點(diǎn)試著發(fā)送顯性電平(0),但監(jiān)測到的總線值是隱性。b)總線關(guān)閉恢復(fù)期間,每次監(jiān)測到11個(gè)連續(xù)的隱性位,將置位該編 碼。CPU可以用這個(gè)編碼指示總線被連續(xù)擾亂。: CRC 錯(cuò)誤: CPU 向 LEC 寫:無論何時(shí)CPU向LEC寫111B, LEC被設(shè)置為111B ;無論何時(shí)CPU 向LEC寫
18、其它值,實(shí)際寫入值被忽略。TXOK(3-rwh)0 :從最近一次該標(biāo)志被復(fù)位開始,無成功的發(fā)送操作1 :已經(jīng)成功發(fā)送了報(bào)文TXOK必須由軟件復(fù)位(寫0),寫1無任何影響。RXOK (4-rwh)0 :從最近一次該標(biāo)志被復(fù)位開始,無成功的接收操作1 :已經(jīng)成功接收了一個(gè)報(bào)文RXOK必須由軟件復(fù)位(寫0),寫1無任何影響。ALERT(5-rwh)出現(xiàn)下列事件之一將置位ALERT (如果ALIE被置 位,這些事件也會觸發(fā)報(bào)警中斷):1)CAN節(jié)點(diǎn)狀態(tài)寄存器中的位BOFF改變2)CAN節(jié)點(diǎn)狀態(tài)寄存器中的位EWRN改變3)列表長度錯(cuò)誤,該錯(cuò)誤也置位CAN節(jié)點(diǎn)狀態(tài) 寄存器中的位LLE4)列表對象錯(cuò)誤,該錯(cuò)
19、誤也置位CAN節(jié)點(diǎn)狀態(tài) 寄存器中的位LOE5)MultiCAN模塊已經(jīng)置位INITALERT必須由軟件復(fù)位(寫0),寫 1無影響。EWRN(6-rwh)錯(cuò)誤警告狀態(tài)0B沒有超過警告界限。1B錯(cuò)誤計(jì)數(shù)器REC或TEC達(dá)到警告界限EWRNLVL。 .錯(cuò)誤計(jì)數(shù)器達(dá)到警告界限(如何處理)?BOFF(7-rwh)0 : CAN控制器不屬于關(guān)閉狀態(tài)1 : CAN控制器屬于關(guān)閉狀態(tài)LLE(8-rwh)列表長度錯(cuò)誤0 :從最近一次該標(biāo)志被清零開始,沒有出現(xiàn)列表長度錯(cuò)誤。1:報(bào)文驗(yàn)收濾波過程中,檢測到列表長度錯(cuò)誤,屬于這個(gè)CAN節(jié)點(diǎn)的列 表中的兀素個(gè)數(shù)和列表終止指針給出的列表大小ZE)不同。LLE必須由軟件復(fù)位
20、(寫0),寫1無任何影響LOE(9-rwh)列表對象錯(cuò)誤0B從最近一次該標(biāo)志被清零開始,沒有出現(xiàn)列表對象錯(cuò)誤。1B報(bào)文驗(yàn)收濾波過程中,檢測到一個(gè)列表對象錯(cuò)誤。已經(jīng)檢測到帶有錯(cuò) 誤列表指針(報(bào)文對象控制寄存器中的)的報(bào)文對象。LOE必須由軟件復(fù)位(寫0),寫1無任何影響。 CAN_NIPRx (x = 0-5)Node x Interrupt Pointer Register 節(jié)點(diǎn)中斷指針寄存器0 (31-16), CFCINP(15-12) , TRINP(11-8), LECINP(7-4), ALINP (3-0)ALINP(3-0-rw)警報(bào)節(jié)點(diǎn)指針選擇CAN節(jié)點(diǎn)(0-7)告警中斷的中斷
21、輸出線INT_Om(m=0-7)00000001:選擇 INT_O0:選擇 INT_O11111:選擇 INT O15LECINP(7-4-rw)最近一次警告節(jié)點(diǎn)指針選擇CAN節(jié)點(diǎn)(0-7)最近一次警告的中斷輸出線INT_Om(m=0-7)0000 :0001 :選擇INT_O0選擇INT_O11111 :選擇 INT O15TRINP(11-8-rw)最近一次傳輸成功中斷節(jié)點(diǎn)指針選擇CAN節(jié)點(diǎn)(0-7)最近一次傳輸成功的中斷輸出線INT_Om(m=0-7)0000 :選擇 INT_O00001 :選擇 INT_O11111 :選擇 INT O15CFCINP(15-12-rw)幀計(jì)數(shù)器中斷節(jié)
22、點(diǎn)指針如果由CFCIE = 1使能,由CFCINP選擇用來指出“幀計(jì)數(shù)器溢出中斷請 求”的中斷輸出線INT Om (m = 0-15)編號。NodexPortControlRegister CAN_NPCRx(x=0-5)節(jié)點(diǎn)端口控制寄存器:0 (31-9) , LBM (8) , 0 (7-3) , RXSEL (2-0)RXSEL (2-0-rw)只能從8條輸入線中選擇其中一條LBM (8-rw)0:禁止環(huán)回模式1 :使能環(huán)回模式,消息只在內(nèi)部節(jié)點(diǎn)之間傳遞NodexBitTimingRegister CAN_NBTRx(x=0-5)節(jié)點(diǎn)位時(shí)序寄存器0 (31-16) , DIV8 (15)
23、 , TSEG2 (14-12) , TSEG1 (11-8) , SJW (7-6) , BRP (5-0)BRP (5-0-rw)波特率預(yù)分頻如果DIV8 = 0,個(gè)時(shí)間單元等于(BRP+1)個(gè)時(shí)鐘周期。 如果DIV8 = 1,個(gè)時(shí)間單元等于8x (BRP+1)個(gè)時(shí)鐘周期。SJW (7-6-rw)(重新)同步跳躍寬度可用于重新同步的時(shí)間為(SJW+1)個(gè)時(shí)間單元TSEG1 (11-8-rw)采樣點(diǎn)前的時(shí)間段由用戶定義的同步段結(jié)束和采樣點(diǎn)之間的額定時(shí)間為(TSEG1+1)個(gè)時(shí) 間單元。它包括傳播段(將信號傳播延遲考慮在內(nèi))。重新同步操作可 將該時(shí)間段拉長。TSEG1的有效值在2到15之間。T
24、SEG2 (14-12-rw)采樣點(diǎn)后的時(shí)間段由用戶定義的采樣點(diǎn)和下一個(gè)同步段開始之間的額定時(shí)間為(TSEG2+1) 個(gè)時(shí)間單元。重新同步操作可將該時(shí)間段縮短。TSEG2的有效值在1 到7之間。DIV8 (15-rw)預(yù)分頻時(shí)鐘8分頻0B 一時(shí)間單元持續(xù)(BRP+1)個(gè)時(shí)鐘周期1B 個(gè)時(shí)間單元持續(xù)8x (BRP+1)個(gè)時(shí)鐘周期 NodexErrorCounterRegister CAN_NECNTx(x=0-5)節(jié)點(diǎn)錯(cuò)誤寄存器0 (31-26), LEINC (25), LETD (24), EWRNLVL (23-16), TEC(15-8), REC(7-0)REC(7-0-rw)接收錯(cuò)誤
25、值寄存器,接收錯(cuò)誤計(jì)數(shù)TEC(15-8-rw)發(fā)送錯(cuò)誤值寄存器,發(fā)送錯(cuò)誤計(jì)數(shù)EWRNLVL(23-16-rw)錯(cuò)誤警告級別(默認(rèn)為96)LETD(24-rh)最近一次錯(cuò)誤方向:0:最近一次錯(cuò)誤是接收錯(cuò)誤1 :最近一次錯(cuò)誤是發(fā)送錯(cuò)誤LEINC (25-rh)錯(cuò)誤計(jì)數(shù)器增量0:最后一次錯(cuò)誤導(dǎo)致錯(cuò)誤計(jì)數(shù)器增量為11 :最后一次錯(cuò)誤導(dǎo)致錯(cuò)誤計(jì)數(shù)器增量為NodexFrameCounterRegister CAN_NFCRx(x=0-5)節(jié)點(diǎn)幀計(jì)數(shù)寄存器0 (31-24) , CFCOV (23) , CFCIE (22) , 0 (21) , CFMOD (20-19) , CFSEL (18-16)
26、, CFC (15-0)CFC (15-0-rwh)在幀計(jì)數(shù)模式(CFMOD = 00B )中,該位域包含幀計(jì)數(shù)值。在時(shí)間標(biāo)記模式CFMOD = 01B)中,該位域包含捕獲的位時(shí)間計(jì)數(shù)值, 在新幀開始時(shí)捕獲。在所有位定時(shí)分析模式1)CFMOD = 10B)中,CFC始終顯示fCLC時(shí) 鐘周期數(shù)(測量結(jié)果)減1例如:CFC值為34在測量模式下,CFSEL = 000B表示在接收輸入的最近兩個(gè)主要邊沿之間 已經(jīng)過了 35 fCLC時(shí)鐘周期。在錯(cuò)誤計(jì)數(shù)模式(CFMOD = 11B)中,該位域包含接收到的錯(cuò)誤幀總數(shù) 或節(jié)點(diǎn)檢測到的錯(cuò)誤。CFSEL (18-16-rw)CAN幀數(shù)選擇該位選擇所選幀計(jì)數(shù)模
27、式的幀計(jì)數(shù)器的功能。幀計(jì)數(shù)模式:位0如果CFSEL的位0被置位,則每次在CAN總線上接收到外部幀(即, 與消息對象不匹配的幀)時(shí),CFC遞增。位1如果CFSEL的位1置位,則每次在CAN總線上接收到與消息對象匹配 的幀時(shí),CFC就會增加。位2如果CFSEL的位2置位,則每次節(jié)點(diǎn)已經(jīng)成功發(fā)送幀時(shí),CFC都會增加。 時(shí)間戳模式幀計(jì)數(shù)器在新的位時(shí)間開始時(shí)遞增(內(nèi)部)。該值在新幀的 SOF位中被采樣。采樣值在CFC字段中可見。位定時(shí)模式:如果設(shè)置了 CFCIE,則通過CFC更新生成中斷請求節(jié)點(diǎn)x (其中x是CAN 節(jié)點(diǎn)號)。錯(cuò)誤計(jì)數(shù)模式:當(dāng)接收到錯(cuò)誤幀或節(jié)點(diǎn)檢測到錯(cuò)誤時(shí),幀計(jì)數(shù)器遞增CFMOD (20
28、-19-rw)決定幀計(jì)數(shù)器的工作模式00 :幀計(jì)數(shù)器模式,計(jì)數(shù)器在幀的接收和發(fā)送時(shí)遞增01 :時(shí)間戳模式,幀計(jì)數(shù)器用于計(jì)算位時(shí)間:位定時(shí)模式:幀計(jì)數(shù)器用于位定時(shí)分析。:錯(cuò)誤計(jì)數(shù)模式:幀計(jì)數(shù)器用于收到錯(cuò)誤幀或節(jié)點(diǎn)檢測到錯(cuò)誤時(shí)進(jìn) 行計(jì)數(shù)。CFCIE (22-rw)CAN幀計(jì)數(shù)中斷使能0 :禁止CAN幀計(jì)數(shù)器溢出中斷使能1 :允許CAN幀計(jì)數(shù)器溢出中斷使能位域NIPRx.CFCINP選擇的中斷輸出線在該位使能且CAN幀計(jì)數(shù)器溢出 時(shí)激活。CFCOV (23-rwh)幀計(jì)數(shù)器溢出標(biāo)志0:自上次復(fù)位以來沒有發(fā)生溢出1 :自上次復(fù)位以來產(chǎn)生了溢出標(biāo)志CFCOV在幀計(jì)數(shù)器溢出時(shí)置位(從FFFFH轉(zhuǎn)換到000
29、0H)。在位 定時(shí)分析模式下,CFCV在更新CFC時(shí)被置位。如果CFCIE = 1,則產(chǎn) 生一中斷請求。2.2.3 Message Object RegistersCAN 傳輸相關(guān)的控制位 CAN_MOCTRz(z=0-254)AndCAN_MOSTATn(n=1-254)Message Object z Control Register0(31-28),SETDIR(27),SETTXEN1(26)31302928272625242322212019181716-11 -SET DIRSETTXEN1SETTXE NOSET TXRSET FIXESET RTSSETMSGVALSET MS
30、G LSTSETNEWOATSETRXUPDSET TXF NDSET RXPNDWwwwwwwwwwwww151413121110g8765斗32101rRES DIRRESTXERES TXENORES TXRRES RXERESSTSRES MSGVALRES MSG LSIRES NEWOATRES RXUPDRES TXFNDRES RXPNDwwwwwwwwwwwwwMessage Object n Status Register31302928272625242322212019181716111-111 1PNEXTdiiiiii11I1I1rPPREViiiirtim1514
31、131211109&76543210irLISTtl a dDIRTX EN1TXENOTX RQRX ENRTSELMSGVALMSG LSTNEW DATRX UPDTX PHDRX PNDrh *h rh rh -rh rh rh rh rh rh rh rh通過對MOCTR寄存器寫入,通過MOSTAT的狀態(tài)來判斷是否完成指定設(shè)定任務(wù)PNEXT.指在同一列表內(nèi)在該消息對象之后一個(gè)消息對象指針PPREV指在同一列表內(nèi)在該消息對象之前一個(gè)消息對象指針RXPND接收成功該位置位TXPND發(fā)送成功該位置位RXUPD沒有更新在進(jìn)仃(無論發(fā)送或接收)NEWDAT接收到的CAN幀存儲在消息對象n中后,
32、NEWDAT由硬件置位。當(dāng)消息對象n的CAN傳輸已經(jīng)啟動時(shí),NEWDAT被硬件清除。NEWDAT 應(yīng)該在新的發(fā)送數(shù)據(jù)被存儲在消息對象n中之后由軟件來設(shè)置,以防止在 正在進(jìn)行的傳輸結(jié)束時(shí)自動重置TXRQ。MSGLST0 :沒有CAN消息丟失1 : CAN消息丟失,因?yàn)镹EWDAT被重復(fù)置位導(dǎo)致上一條丟失MSGVAL0:消息對象無效1 :消息對象有效,只有有效的消息對象才可以參與CAN報(bào)文傳輸RTSEL0:消息對象沒有被選中用于發(fā)送或接收報(bào)文1 :消息對象唄選中用于發(fā)送或接收報(bào)文幀接收:當(dāng)消息對象n被標(biāo)識用于存儲當(dāng)前接收到的CAN幀時(shí),RTSEL由硬件置位。 在接收到的幀最終被存儲在消息對象n中之
33、前,執(zhí)行檢杳以確定RTSEL是 否被設(shè)置。因此,CPU可以通過軟件清除RTSEL來抑制對該消息對象n 的預(yù)定幀傳送。幀發(fā)送:當(dāng)消息對象n被識別為接下來被發(fā)送時(shí),RTSEL由硬件置位。執(zhí)行檢杳 以確定在消息對象n被實(shí)際設(shè)置為傳輸并且NEWDAT位被清除之前RTSEL 是否仍然被設(shè)置。還檢杳了由于幀的成功發(fā)送而在其消息對象n被驗(yàn)證 之前,RTSEL仍然被設(shè)置。只有當(dāng)消息對象n的上下文改變時(shí)才需要檢 查RTSEL,并且避免與正在進(jìn)行的幀傳輸?shù)臎_突。在所有其他情況下, RTSEL可以被忽略。RTSEL對消息接受過濾沒有影響。RTSEL不被硬件清 除RXEN0:消息對象不允許用于幀接收1 :消息對象允許
34、用于幀接收TXRQ0:沒有消息發(fā)送請求1 :有消息發(fā)送請求TXEN0發(fā)送使能00B禁止報(bào)文對象n進(jìn)行幀發(fā)送1B使能報(bào)文對象n進(jìn)行幀發(fā)送只有TXEN0和TXEN1都置位才允許消息對象n發(fā)送幀。可以清除TXEN0 來禁止當(dāng)前報(bào)文的發(fā)送更新,或者禁止遠(yuǎn)程幀的自動回應(yīng)。TXEN1發(fā)送使能10B禁止報(bào)文對象n進(jìn)行幀發(fā)送1B使能報(bào)文對象n進(jìn)行幀發(fā)送只有TXEN0和TXEN1都置位才允許消息對象n發(fā)送幀。MultiCAN模塊用TXEN1在發(fā)送FIFO中選擇有效報(bào)文對象。DIR0 :接收對象選擇:TXRQ=1,安排發(fā)送帶有報(bào)文對象n的標(biāo)識符的遠(yuǎn)程幀。接收到的標(biāo)識符匹配的數(shù)據(jù)幀,報(bào)文存儲在報(bào)文對象n中。1 :發(fā)
35、送對象選擇:如果TXRQ=1,安排用報(bào)文對象n發(fā)送數(shù)據(jù)幀。接收到標(biāo)識符匹配的遠(yuǎn) 程幀時(shí),置位TXRQ。LIST (-rh)列表分配,指明消息對象所屬列表編號,通過面板命令修改時(shí)硬件會改寫 這里MessageObjectnInterruptPointerRegister CAN_MOIPRnCFCVAL(31-16),MPN(15-8),TXINP(7-4),RXINP(3-0)CFCVAL(31-16-rwh)當(dāng)完成一個(gè)幀的接收或者發(fā)送,會自動復(fù)制NFCRx.CFC值到這里MPN(15-8)出現(xiàn)接收或者發(fā)送中斷時(shí),該位域用來選擇報(bào)文掛起寄存器的掛起位置TXINP(7-4)發(fā)送中斷節(jié)點(diǎn)指針為發(fā)送
36、中斷選擇中斷輸出線INT Om(m = 0-15)RXINP(3-0)接收中斷節(jié)點(diǎn)指針為接收中斷選擇中斷輸出線INT Om(m = 0-15)MessageObjectnFunctionControlRegisterCAN_MOFCRn (n = 0-255) 消息對象功能控制寄存器0(31-28),DLC(27-24),STT(23),SDT(22),RMM(21),FRREN(20),0(19),OVIE(18),TXIE(17),RXIE(16)0(15-12),DATC(11),DLCC(10),IDC(9),GDFS(8),0(7-4),MMC(3-0)MMC(3-0-rw)消息對象
37、模式控制0000 :標(biāo)準(zhǔn)的消息對象模式0001 :接收FIFO基本報(bào)文對象模式0010 :發(fā)送FIFO基本報(bào)文對象模式0011 :發(fā)送FIFO從屬報(bào)文對象0100 :網(wǎng)關(guān)源對象GDFS(8-rw)0 : TXRQ在目標(biāo)對象中沒有改變1 :數(shù)據(jù)在從網(wǎng)關(guān)源對象傳遞到目標(biāo)對象之后TXRQ置位 僅在網(wǎng)關(guān)源對象起作用。IDC(9-rw)標(biāo)識符復(fù)制如果IDC = 1,則網(wǎng)關(guān)源對象的標(biāo)識符(在接收幀被保存到源對象中之后 被復(fù)制到網(wǎng)關(guān)目標(biāo)對象中。僅在網(wǎng)關(guān)源對象起作用。DLCC(10-rw)如果DLCC = 1,則網(wǎng)關(guān)源對象的數(shù)據(jù)長度碼(在接收幀被保存到源對 象中之后)被復(fù)制到網(wǎng)關(guān)目標(biāo)對象中。僅在網(wǎng)關(guān)源對象起作
38、用。DATC(11-rw)數(shù)據(jù)復(fù)制如果DATC = 1,則網(wǎng)關(guān)源對象(在接收幀被保存到源對象之后)的數(shù)據(jù) 域(寄存器MODATA0和MODATA4)被復(fù)制到網(wǎng)關(guān)目標(biāo)對象。僅在網(wǎng)關(guān)源對象起作用。RXIE(16-rw)CAN報(bào)文接收中斷使能,該位置位時(shí)無論報(bào)文使用網(wǎng)關(guān)模式接收還是普 通模式接收,都會觸發(fā)接收中斷。TXIE(17-rw)置位,在CAN報(bào)文發(fā)生之后產(chǎn)生發(fā)送中斷OVIE(18)OVIE啟用消息對象n的FIFO完全中斷。當(dāng)指向當(dāng)前消息對象(CUR)的指針達(dá)到FIFO /網(wǎng)關(guān)指針寄存器中的SEL值時(shí),會產(chǎn)生此中斷。 0 :禁止1 :使能如果消息對象時(shí)FIFO發(fā)送消息對象則MOIPRn.TXI
39、NP選擇該中斷的中斷輸出線,如果消息對象時(shí)FIFO接收消息對象則MOIPRn.RXINP選擇該中 斷的中斷輸出線。其余消息對象模式,此位無效。FRREN(20-rw)外部遠(yuǎn)程請求啟用指定在消息對象n中還是在由指針CUR弓1用的外部消息對象中設(shè)置 TXRQ 位。消息對象n的0B TXRQ在接收到匹配的遠(yuǎn)程幀時(shí)被設(shè)置。指針CUR參考的消息對象的TXRQ在接收到匹配的遠(yuǎn)程幀時(shí)被設(shè)置。RMM(21-rw)發(fā)送對象遠(yuǎn)程監(jiān)控:0 :禁用遠(yuǎn)程監(jiān)控:接收到匹配的遠(yuǎn)程幀后,消息對象n的標(biāo)識符,IDE 位和DLC保持不變。1 :為了監(jiān)視傳入的遠(yuǎn)程幀,復(fù)制匹配的標(biāo)識符,IDE位和DLC以傳送對 象n。SDT(22-rw)單向數(shù)據(jù)傳輸:如果SDT = 1且消息對象n不是FIFO基礎(chǔ)對象,則當(dāng)該對象參與成功的 數(shù)據(jù)傳輸(接收或發(fā)送)時(shí),MSGVAL被復(fù)位。如果SDT = 1且消息對象n是FIFO基礎(chǔ)對象,則當(dāng)指向當(dāng)前對象CUR的 指針達(dá)到FIFO /網(wǎng)關(guān)指針寄存器中的SEL值時(shí),MSGVAL被重置。SDT = 0時(shí),MSGVAL位不受影響。STT(23)單向傳輸實(shí)驗(yàn):0:發(fā)生傳輸錯(cuò)誤時(shí)允許重新傳送1 :置位,則在消息對象n的傳輸開始時(shí)TXRQ被清除。因此,在傳輸 失敗的情況下不執(zhí)行傳輸重試DLC(27-24-rw)數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國人口遷移課件
- 《GB 10080-2001空調(diào)用通風(fēng)機(jī)安全要求》(2025版)深度解析
- 廣告合作協(xié)議合同
- (二模)太原市2025年高三年級模擬考試(二)地理試卷(含答案 )
- 嚴(yán)明紀(jì)律班會課件
- 合同風(fēng)險(xiǎn)管理與應(yīng)對策略培訓(xùn)班
- 荒山開發(fā)合作合同書樣本
- 短期演員聘請合同2025
- 肇慶市實(shí)驗(yàn)中學(xué)高三生物三四五高效課堂教學(xué)設(shè)計(jì):細(xì)胞的衰老、凋亡、癌變
- 江蘇省無錫市青陽初級中學(xué)2025年初三第三次調(diào)查研究考試化學(xué)試題含解析
- 四川省元三維大聯(lián)考·高2022級第三次診斷性測試(綿陽三診B卷)地理試題及答案
- 新人面試典型試題及答案
- 2024年云南省煙草專賣局畢業(yè)生招聘考試真題
- 電動汽車安全駕駛培訓(xùn)
- 短視頻平臺對獨(dú)立音樂人的影響研究-全面剖析
- 2024年國家廣播電視總局直屬事業(yè)單位招聘真題
- 特種設(shè)備安全使用操作培訓(xùn)課件3
- 水磨鉆專項(xiàng)方水磨鉆專項(xiàng)方案
- 2024重慶三峰環(huán)境集團(tuán)股份有限公司招聘15人筆試參考題庫附帶答案詳解
- 體檢中心組織架構(gòu)
- 電信云網(wǎng)工程師-云網(wǎng)融合(客戶IT上云)備考試題庫(集團(tuán)網(wǎng)大版)
評論
0/150
提交評論