CAN总线步进电机驱动器
意使得各节点的位
速率必须一致,而且接、发双方必须同步。报文的接收主要有两种方式:中断和查询接收方式。为提高通信的实时性,文中采用中断接收方式,而且这样也可保证接收缓存器不会出现数据溢出现象。SJA1000的Basic
CAN工作模式是与其前一款PCA82C200独立控制器相兼容的模式,
而PeliCAN工作模式支持CAN协议中的更多功能,它的程序设计也与之有所不同。下面给出SJA1000工作在模PeliCAN式下的节点初始化、报文发送、报文接收的196汇编源程序。
INITIALIZE: 初始化子程序
LDB AL, #09H; 初始化模式寄存器进入复位模式
STB AL, MODE; 选择单滤波方式
LDB AL, #88H; 时钟分频器
STB AL, CDR; 选Peli CAN模式
LDB AL, #00H
STB AL, ACR0; 初始化接收代码寄存器
LDB AL, #60H
STB AL, ACR1
LDB AL, #00H
STB AL, AMR0; 初始化接屏蔽寄存器
LDB AL, #3FH; 只接收标识符为2,3的报文
STB AL, AMR1
LDB AL, #8FH
STB AL, IER; 中断使能寄存器
LDB AL, #01H; 总线定时寄存器0、1的设置
STB AL, BTR0;
LDB AL, #1CH; 在16MHz晶振情况下
STB AL, BTR1; 波特率设置为250
LDB AL, #0AAH
STB AL, OCR; 输出控制器寄存器设置
LDB AL, #0H; 接收缓存器起始地址设为0
STB AL, RBSA;
LDB AL, #01H;
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
关
UIM24204 / UIM24208是基于CAN总线通讯的小体积智能型步进电机驱动器。加上对应的法兰后,能直接固定在 42 / 57 / 85 / 110 等系列的步进电机上。其本身厚度小于14 mm。该驱动器接受用户端基于RS232的ASCII 指令。指令结构简单,高容错。采用CAN 2.0B长距离传输信号。用户无需任何关于步进电机的驱动或CAN协议的知识。
综上所述,本文已为讲解CAN总线步进电机驱动器,相信大家对CAN总线步进电机驱动器的认识越来越深入,希望本文能对各位读者有比较大的参考价值。
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)