你的位置:大电流电感 > 基础知识

基于CAN总线分布式控制系统智能节点的设计

2020-03-12 12:46:55      点击:
上一篇:现场总线及其在调度自动化中的应用分析

ORB AL, MODE;

STB AL, MODE; 返回工作模式

RET TRANSMIT:; 发送子程序

LDB AL, SR

SRCVE: JBS AL,4, SRCVE;正接收?

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总线已被公认为是最有前途的几种现场总线之一。因其高性能价格比、实现简单等突出优点深得越来越多的研发人员的青睐。