1.
//CANGCON=CAN通用控制寄存器
//ABRQ OVRQ TTC SYNTTC LISTEN TEST ENA/STB SWRES
//bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
//初始值:0 ...
//-----------------------------------------------------------------------------
bit7: 终止请求(非自动清零位)
0:没有请求
1:终止请求 CANEN1和CANEN2寄存器清零。即将进行的通信停止,正在进行的通信正常结束并设置相关的标志位
bit6:过载请求
bit5:时钟触发通信
bit4:TTC同步
bit3:侦听模式
bit2:测试模式
bit1:使能/备用
bit0:软复位
///////////////////////////////////////////////////////////////////////////////
2.
//CAN General Status Register -CANGSTA CAN通用状态寄存器
//- OVFG - TXBSY RXBSY ENFG BOFF ERRP
//bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
//初始值:0 ...
//-----------------------------------------------------------------------------
bit7: 保留位
bit6: 过载帧标志(不产生中断)
bit5: 保留位
bit4: 发送繁忙,还未发送完毕(不产生中断)
bit3: 接收繁忙,还未接收完毕(不产生中断)
bit2: 使能标志位(不产生中断)由于cangcon 中的使能命令不能立即生效,而这个位的状态表示所选模式的真实状态
bit1: 总线掉线
bit0: 错误被动模式
///////////////////////////////////////////////////////////////////////////////
3.
//CANPAGE=CAN 邮箱(MOB)寄存器
//MOBNB3 MOBNB2 MOBNB1 MOBNB0 AINC INDX2 INDX1 INDX0
//bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
//-----------------------------------------------------------------------------
bit7~bit4=邮箱号(0~14)
bit3=AINC:自动递增FIFO CAN数据缓冲区索引号
0=自动递增索引号
1=不自动递增索引号
bit2~bit0:CAN FIFO数据缓冲区索引号
///////////////////////////////////////////////////////////////////////////////
4.
//CANSTMOB=邮箱状态寄存器
// DLCW TXOK RXOK BERR SERR CERR FERR AERR
// bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
//-----------------------------------------------------------------------------
bit7=DLCW 数据长度代码警告
bit6=TXOK:Transmit OK
bit5=RXOK:Receive OK
bit4=BERR:Bit Error(Only in Transmission)
bit3=SERR: Stuff Error
bit2=CERR: CRC Error
bit1=FERR:Form Error
bit0=AERR: Acknowledgment Error
///////////////////////////////////////////////////////////////////////////////
5.
//CANCDMOB=邮箱控制和数据长度码寄存器
//CANMOB1 CANMOB0 RPLV IDE DLC3 DLC2 DLC1 DLC0
//bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
//-----------------------------------------------------------------------------
bit7:6=
00=禁止
01=允许传输
10=允许接收
11=
bit5=
bit4=IDE:Identifier Extension
0=CAN Standard rev 2.0A (identifier length = 11 bits)
1=CAN Standard rev 2.0B (identifier length = 29 bits)
bit3:0=DLC:消息中数据字段的字节数
///////////////////////////////////////////////////////////////////////////////6.
//CANIDT1,CANIDT2,CANIDT3,CANIDT4=CAN标识码寄存器(CAN 2.0A)
bit31:21=IDT10:0:Identifier Tag
///////////////////////////////////////////////////////////////////////////////
7.
//CANIDM1,CANIDM2,CANIDM3,CANIDM4=CAN标识码屏蔽寄存器(CAN 2.0A)
bit31:21=IDT10:0:Identifier Tag
///////////////////////////////////////////////////////////////////////////////
8.
//CANGIE=CAN通用中断使能寄存器
// ENIT ENBOFF ENRX ENTX ENERR ENBX ENERG ENOVRT
// bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
//-----------------------------------------------------------------------------
bit7=ENIT:全局允许
bit6=ENBOFF:BUS OFF允许
bit5=ENRX:接收允许
bit4=ENTX:发送允许
bit3=ENERR:邮箱错误允许
bit2=ENBX: 数据缓冲帧允许
bit1=ENERG:通用错误允许
bit0=ENOVRT:CAN定时器重启允许
///////////////////////////////////////////////////////////////////////////////
9.
//CANBT1 CAN定时寄存器1 负责产生波特率
//- BRP5 BRP4 BRP3 BRP25 BRP1 BRP0 -
//bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
bit7 保留位
bit5:0 波特率预分频器CAN控制器系统时钟Tscl的周期是可编程的,同时它决定每一位的传输时间Tscl=(BRP[5:0]+1)/(clkio frequency)
bit0: 保留位
///////////////////////////////////////////////////////////////////////////////
10.
//CANEN2 . CANEN1=邮箱(MOB)使能寄存器
//-----------------------------------------------------------------------------
bit14:0=Enable MOB
0=MOB available for a new transmission or reception.
1=MOB in use.
bit15 =Reserved Bit
///////////////////////////////////////////////////////////////////////////////
11.
//CANIE2 . CANIE1=邮箱(MOB)中断使能寄存器
//-------------------------------------------------------------------------
bit14:0=Interrupt Enable by MOB
0=interrupt disabled.
1=MOB interrupt enabled.
bit15 =Reserved Bit