基于CAN总线分布式控制系统智能节点的设计
ORB AL, MODE;
STB AL, MODE; 返回工作模式
RET TRANSMIT:; 发送子程序
LDB AL, SR
SRCVE: JBS AL,4, SRCVE;正接收?
1/2 12下一页尾页
STRSV: JBC AL,3, STRSV;发送成功?
STBF: JBC AL, 2, STBF; 发送缓存器锁定否
WID: LDB AL, #08H
LD BX, #TXB; 发送缓存的首址
STB AL,[BX]+; 传送两个字节的标识符
LDB AL,#ID0
STB AL,[BX]+
LDB AL,#ID1
STB AL,[BX]+
LDB COUT,#08H; 8个字节数据
TDATA: LDB AL,[DATA]+ CPU内的发送数据缓存区首址
STB AL,[BX]+;
DJNZ COUT,TDATA; 8个字节发完否?
LDB AL,#01H;
STB AL,CMR; 发送
RET
RECEIVE: ; 接收中断程序
PUSHF; 保护现场
LDB AL,IR
JBC AL,0,OTHER; 接收中断否?
LD BX,#RXB; 接收缓存器首址
LDB AL,[BX]+
JBC AL,6,RCDATA;标识符的RTR=1?
LDB AL,#04H; 是远程帧,释放接收缓存区
STB AL,CMR;
LCALL TRANSMIT; 相应远程帧,发送相应数据
SJMP BACK
RCDATA:
ANDB AL,#0FH; 取低四位数据长度
ADDB AL,#03H;
STB AL,R1; 该报文含有的字节数
LD BX,#RXB; 接收缓存器的首地址
LD CX,#CRBF; CPU内的接收数据缓存区首址
RECE:
LDB AL,[BX]+
STB AL,[CX]+
INCB R1
DJNZ R1,RECE; 接收完否?
LDB AL,#04H
STB AL,CMR; 释放接收缓存区
BACK;
POPF
RET
结语
CAN总线已被公认为是最有前途的几种现场总线之一。因其高性能价格比、实现简单等突出优点深得越来越多的研发人员的青睐。
2/2 首页上一页12