1.驗收濾波器模式
濾波設置前設置關閉模式,設置完成后設置為工作模式。
Efcan:擴展幀ID時,沒有FULLCAN模式,此位置0。
2.區域寄存器設置
只有在驗收濾波器關閉模式和旁路模式中才能對所有區配置寄存器進行寫訪問。允許在所
有的驗收濾波器模式下對寄存器進行讀訪問。
ID 查找表 RAM 只能進行字訪問,并且只能在驗收濾波器關閉或旁路模式下進行寫訪問。但讀訪問可以在所有的驗收濾波器模式下進行。
寄存器的低兩位未用,但不需將設置值左移后寫入。
3.不同CAN通道的區分
以高三位數值確定。
16.15 配置和搜索算法
CAN 標識符查找表存儲器可以存放標準和擴展 CAN 幀格式的明確標識符和 CAN 標識符組。它們組成一個排好序的列表和表格,在每個區中源 CAN 通道(SCC)和 CAN 標識符都按照升序來排列。
SCC 值和 CAN 控制器-x 相等,即,SCC=0 和 CAN1 匹配,SCC=1 與 CAN2 匹配。
每個 CAN 標識符連接到一個 ID 索引編號。在 CAN 標識符匹配時,匹配的 ID 索引存放在
相應 CAN 控制器的幀狀態寄存器(CANxRFS)中的標識符索引中。
16.15.1 驗收濾波器搜索算法
驗收濾波器的標識符篩選過程按照下列順序來啟動:
a)FullCAN(標準幀格式)標識符區。
b)獨立的標準幀格式標識符區。
c)標準幀組格式標識符區。
d)獨立的擴展幀格式標識符區。
e)擴展幀組格式標識符區。
注:只有激活的區才能參與篩選過程。
當多個區中定義了相同幀格式的同一個報文標識符時,第一次匹配就會終止這個標識符的
LPC_CANAF->AFMR = 0x1; /* 設置為關閉模式 */
LPC_CANAF->SFF_sa=0x00; // 明確標準幀格式起始地址0x00
LPC_CANAF->SFF_GRP_sa=0x00; // 標準幀組格式起始地址0x00
LPC_CANAF->EFF_sa=0x20; // 明確擴展幀組格式起始地址0x20
LPC_CANAF->EFF_GRP_sa=0x34; // 擴展幀組格式起始地址0x34
LPC_CANAF->ENDofTable=0x44; // AF表結束地址0x44
regaddr = 0x40038020;
RGE(regaddr) =(0x00000060);//
regaddr = 0x40038034;
RGE(regaddr) =(0x00000066|(1<<29));//
regaddr = 0x40038038;
RGE(regaddr) =(0x00020066|(1<<29));//
LPC_CAN2->CMR |= (1 << 1) | (1 << 2) | (1 << 3);
LPC_CAN2->IER |= (1<<0);
LPC_CAN2->GSR |= (0<<0);
i = LPC_CAN2->ICR;
//LPC_CANAF->AFMR = 0x02; /* 設置為旁路模式 */
LPC_CANAF->AFMR = 0; /* 設置正常工作模式 */