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; /* 设置正常工作模式 */