
CAN总线网络控制软件包括网络应用层协议、节点功能流程和编码等的配置和设计[4>。
邮箱初始化配置
包括对管脚的配置、波特率的设定、邮箱的收发配置等。首先,配置MCRB寄存器,将IOPC6和IOPC7引脚配置成特殊功能,即CANRX和CANTX;其次,配置MDER寄存器,即配置邮箱使能和邮箱2~3功能;最后,对屏蔽ID寄存器进行配置,可以屏蔽任意位ID,这种寄存器只对接收邮箱起作用。
;CAN邮箱初始化配置
CAN_INIT:
LDP#DP_PF2
LACL MCRB
;配置CAN引脚
OR#0C0H
;IOPC6,IOPC7配置为特殊功能:CANRX,CANTX
SACLMCRB
;CAN位定时器配置
LDP #DP_CAN
SPLK#0040H,MDER;MD2 =1,MBX2为发送方式
SPLK#0FFFFH,CAN_IFR
;清全部CAN中断标志
SPLK#07FFFH,LAM1_H
;设置邮箱2、3屏蔽ID寄存器0
SPLK#0FFFFH,LAM1_L;则ID必须匹配
波特率设定
主要与3个寄存器有关,即SCSR1(系统控制和状态寄存器1)、BCR1(位配置寄存器1)和BCR2(位配置寄存器2)。配置前要确定波特率和晶振频率,当对位定时器进行配置时,CAN控制器必须处于复位模式下,即CCR=1。
SPLK #1000H,MCR;CCR=1改变配置请求
W_CCE:BITGSR,#0Bh;等待改变配置使能
BCNDW_CCE,NTC;当CCE=1时即可配置BCR2、BCR1寄存器
SPLK#01H,BCR2;波特率预分频寄存器
SPLK#0033H,BCR1;波特率设置为1M
LACLMCR
邮箱收发配置
在数据域改变前首先要禁用邮箱,然后置位数据域,改变请求。再设置邮箱ID和信息控制寄存器。若是发送邮箱,则在数据域存放预发送数据,若是接收邮箱,则清空接收缓存。
;写CAN邮箱内容前寄存器设置
LDP#DP_CAN
SPLK #0040H,MDER ;不使能邮箱,邮箱2设为接收方式
SPLK #0103H,MCR;CDR=1,数据区改变请求
;写CAN邮箱内容
LDP#DP_CAN2
SPLK #2447H,MSGID2H;设置邮箱2控制字及ID
;IDE=0,AME=0,AAM=0
;标准方式为MSGID2H[12~2>
SPLK#0FFFFH,MSGID2L
SPLK#08H,MSGCTRL2;设置控制域
;数据长度DCL=8,RTR=0数据帧
SPLK#00000H,MBX2A;邮箱2信息初始化
SPLK#00000H,MBX2B
SPLK#00000H,MBX2C
SPLK#00000H,MBX2D
SPLK#2447H,MSGID3H;设置邮箱3的标识符
SPLK#0FFFFH,MSGID3L
SPLK#08H,MSGCTRL3;RTR=0,DCL=8
SPLK#02211h,MBX3A;邮箱3信息初始化
SPLK#04433h,MBX3B
SPLK#06655h,MBX3C
SPLK#08877h,MBX3D
;写CAN邮箱内容后寄存器设置
LDP#DPCAN
SPLK#0480H,MCR;DB0=1,AB0=1,STM=0
SPLK#04CH,MDER;ME3=1,MBX3发送,ME2=1接收