1、A5有CAN0和CAN1两个控制器,每个控制器有8个邮箱,这8个邮箱可以配置为接收邮箱或发送邮箱(例如5个接收邮箱,3个发送邮箱)。
2、邮箱配置为接收时,如果邮箱中数据未及时读取时可以选择是丢弃新接收的还是覆盖老的。
3、邮箱配置为发送时,可以同时使能多个发送,发送的优先级也可设定。
4、控制器内部有一个给发送或接收消息打时间戳的16位定时器,只要启动了CAN控制器就自动启动该定时器。A5提供TTC协议支持时间触发的通讯模式。
5、邮箱的中断事件,接收时-邮箱接收到数据触发中断;发送时-邮箱成功发送完触发中断
6、邮箱的验收过滤(x指邮箱编号0~7):
寄存器CAN_MIDx :X
寄存器CAN_MAMx::Y
报文CANID :Z
当 (X & Y) ==(Y & Z) 时,对应的CAN报文才存入该邮箱。因此,
a)如果全部接收,则配置 Y == 0 即可;
b)如果单个接收,则配置 X == Y == Z 即可;
c)如果分组接收,如MB0接收CANID Z=XXX XXXX 0000/0001,则配置 X == 000 0000 0001,Y == 000 0000 1110
此时邮箱可接收0x80,0x81,0x701,0x181等报文。
,如MB1接收CANID Z=XXX XXXX 0010/0011,则配置 X == 000 0000 0010,Y == 000 0000 1110
此时邮箱可接收0x82,0x83,0x702,0x703,0x182,0x183等报文。
,如MB2接收CANID Z=XXX XXXX 0100/0101,则配置 X == 000 0000 0100,Y == 000 0000 1110
此时邮箱可接收0x84,0x85,0x704,0x705,0x184,0x185等报文。
,如MB3接收CANID Z=XXX XXXX 0110/0111,则配置 X == 000 0000 0110,Y == 000 0000 1110
此时邮箱可接收0x86,0x87,0x706,0x707,0x186,0x187等报文。
,如MB4接收CANID Z=XXX XXXX 1000/1001,则配置 X == 000 00001000,Y == 000 0000 1110
此时邮箱可接收0x88,0x89,0x708,0x709,0x188,0x189等报文。
,如MB5接收CANID Z=XXX XXXX 1010/1011,则配置 X == 000 0000 1010,Y == 000 0000 1110
此时邮箱可接收0x8a,0x8b,0x70a,0x70b,0x18a,0x18b等报文。
,如MB6接收CANID Z=XXX XXXX1100/1101,则配置 X == 000 0000 1100,Y == 000 0000 1110
此时邮箱可接收0x8c,0x8d,0x70c,0x70d,0x18c,0x18d等报文。
,如MB6接收CANID Z=XXX XXXX 1110/1111,则配置 X == 000 0000 1110,Y == 000 0000 1110
此时邮箱可接收0x8e,0x8r,0x70e,0x70r,0x18e,0x18f等报文。
d)如果缓冲接收,如利用MB0~4做5级缓冲,报文1-MB0,报文2-MB1,报文3-MB2,报文4-MB3,报文5-MB4。
此时MB0~3应配置为接收模式;MB4配置为接收Overwrite模式 。