基于CAN 总线的智能传感器网络

图3 硬件电路图
4 软件设计
智能传感器作为一个节点的软件设计主要包括两部分: 一部分为初始化单片机和SJAl000 , 另一部分为节点实际要完成的数据采集和对执行机构的控制功能。对CAN 控制器的初始化, 对各个寄存器分别写入不同的内容, 其中CAN 控制器与单片机之间采用中断方式通信。其流程如图4 所示。

图4 中断流程图
SJAl000 的初始化程序为:
MOVA , # 0BH 04H 为ACR 寄存器地址 00H 为CR 寄存器的地址
MOVDPTR , # 8000H
MOVX@DPTR , A开放错误和接收中断, SJA1000 进入复位模式
MOVDPTR , # 8004H
MOVA , # 02H
MOVX@DPTR , A
INC DPTR05H 为AMR 寄存器地址。设为全部收
MOVA , # FFH
MOVX@DPTR , A
INC DPTR
MOVA , # 01H06H 为BTR0 的寄存器地址
MOVX@DPTR , A
INC DPTR
MOVA , # FFH07H 为BTRl 的寄存器地址, 写BTR0 和BTRl , 波特率设为160K
MOVX@DPTR , A
INC DPTR
MOVA , # 0AH08H 为OCR 寄存器地址, SJAl000 采用正常模式输出
MOVX@DPTR , A
MOVA , # OFH
MOVDPTR , # 801FH 1FH 为CDR 寄存器地址, 使微控制器与SJAl000 的时钟相同
MOVX@DPTR , A
MOVA , # 0AH
MOVDPTR , # 8000H
MOVX@DPTR , A写CR 寄存器使SJAl000 进入工作模式
RET
5 结 语
将CAN 总线应用于智能传感器中, 使传感器获得的信号能通过总线实时地、可靠地、高速而准确地进行传输。同时, 由于整个智能传感器网络采用全数字化的通信, 因此总线也具有很好的抗干扰能力, 即使在重负荷下也不会出现网络瘫痪的情况, 这些优越性能是其它现场总线所不及的。
评论