RXIE——接收中断允许标志位,高电平有效,10置位,01复位。
INTPND——中断申请标志位,高电平有效。10置位,01复位。
RMTPND——远程帧申请标志位,高电平有效。10置位,01复位。
TXRQST——请求发送标志位,高电平有效。10置位,01复位。
MSGLST——报文丢失标志位,只用于接收报文寄存器。10表示未读报文被新报文覆盖,01表示未覆盖。
CPUUPD——CPU更新标志位,只用于发送报文寄存器。10报文不被发送,01报文可发送。
NEWDAT——新数据标志位。10表示向寄存器写入了新数据,01表示无新数据写入。
◇仲裁寄存器0,1,2,3(BASE+2-BASE+5)
存储报文标识符。
◇报文配置寄存器(BASE+6)
DLC——数据长度编码,编程值0~8。
DIR——方向标志位。1发送,0接收。
XTD——标准/扩展标识符标志位。1扩展标识符,0标准标识符。
◇数据寄存器(BASE+7-BASE+14)
82527存储报文时,8个数据字节均被写入,未用到的字节数据是随机的。
2硬件电路设计
智能节点的电路如图1所示(图中6264略去)。
在硬件设计中,由ADC0809完成对8路模拟置的转换,与8051的信息交换采用查询方式,地址BFF8~BFFFH,其时钟可由ALE二分频获得;82527完成与CAN总线的信息交换。本设计中,旁路了输入比较器,与8051的信息交换采用中断方式,地址7F00~7FFFH,可以用82527的P1口和P2口对开关量采集或对继电器进行控制。82C250提供82527和物理总线间的接口,提高接收和发送能力。可根据需要扩展程序存储器。
3软件设计
本设计软件采用MCS-51汇编语言编写,程序框图如图2所示。
82527的初始化程序如下:
INT:MOVDPTR,#0FF02H
MOVA,#00H
MOVX@DPTR,A;SCLK=XTAL
;MCLK=SCLK,CLKOUT无效
MOVDPTR,#0FF00H
MOVA,#41H
MOVX@DPTR,A;置位CCE,INIT
MOVDPTR,#0FF2FH
MOVA,#48H
MOVX@DPTR,A;旁路输入比较器设置1位隐性,0为显性,RX1无效
MOVDPTR,#0FF3FH;
MOVA,#43H;
MOVX@DPTR,A;SJW=2,BRP=3
MOVDPTR,#0FF4FH
MOVA,#0EAH
MOVX@DPTR,A;SPL=1,TSEG1=7,TSEG2=6此时波特率为100Kbps
MOVDPTR,#0FF00H;
MOVA,#01H
MOVX@DPTR,A;禁止对配置寄存器的访问
MOVDPTR,#0FF10H;
MOVA,#55H;
MOVX@DPTR,A;
INCDPTR;
MOVX@DPTR,A;
?
?
?
MOVDPTR,#0FFF0H;
MOVA,#55H;
MOVX@DPTR,A
INCDPTR;
MOVX@DPTR,A;报文寄存器控制位初始化
MOVR0,#06H;
MOVDPTR,#0FF06H;
MOVA,#0FFH;
L1:MOVX@DPTR,A;报文标识符需全部匹配
INCDPTR
DJNZR0,L1;
MOVDPTR,#0FF16H;
MOVA,#8CH;报文寄存器1可发送8个字节扩展报文
MOVX@DPTR,A;
MOVDPTR,#0FF26H;
MOVA,#84H;
MOVX@DPTR,A;报文寄存器2可接收8个字节扩展报文
MOVDPTR,#0FF00H;
MOVA,#00H;
MOVX@DPTR,A;初始化结束
RET
|