微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于CAN 总线的智能传感器网络

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

时间:03-01 来源:互联网 点击:
前 言

随着自动化程度的提高和信息的网络化进程, 所需要的测控点和测控参量越来越多, 使得一个自动控制系统日益庞大而复杂。对于一个系统来说, 需要的传感器数目成倍增加。为了使各智能仪表与上位机能实时、高速、准确地通信, 选择较理想的现场总线则是很关键的。现场总线是开放型控制系统, 是用于现场总线仪表与控制室之间的一种全数字化、串行、双向、多站的通讯网络 。CAN 是其中很有发展前景的一种现场总线。在网络化的系统中, 每只传感器作为一个智能节点挂接在CAN 总线上, 整个系统如图1所示。

图1 CAN 总线系统框图

1 CAN 总线的技术特点

a) CAN 通信速率为(5kB/s)/10km、(1MB/s)/40m ,其节点数可达110 个, 传输介质采用双绞线、同轴电缆和光纤等;
b) 采用点对点, 一点对多点及全局广播等几种方式发送接收数据;
c) 采用非破坏性总线优先级仲裁技术。当两个节点同时向网络上发送信息时优先级低的节点主动停止发送数据, 而优先级高的节点可不受影响地继续发送信息。因此。按节点类型分成不同的优先级, 可以满足不同的实时要求;
d) 可实现全分布式多机系统, 且无主、从机之分, 每个节点均主动发送报文, 用此特点可以方便地构成多机备份系统; e) 支持四类报文帧: 数据帧、远程帧、出错帧、超载帧。它采用短帧结构, 每帧有效字节数为8 个。 这样, 传输时间短, 受干扰的概率低, 且具有较好的检错结果。
此外, CAN 采用循环冗余校验; 其节点具有自动关闭的功能。由于带有CAN 总线接口的传感器种类还不多, 价格也较贵, 为了使总线能与上位机更好的实时的通信, 可以自行设计一种由8051 单片机和SJAl000 独立CAN 总线控制为核心构成的智能节点。在普通传感器基础上形成可接收8 路模拟量输入的智能传感器网络。

2 SJAl000 的硬件结构和功能
如图2 所示, SJAl000从逻辑上可分为7 个部分:
a) IML (接口管理逻辑) IML 用于解释来自CPU 的命令, 分配信息缓冲区并向CPU 提供中断及状态信息;
b) 发送缓冲区TXB  13 字节长存储器, 外部CPU 将要发送的信息写入此缓冲区;
c) 接收缓冲区RXB  接收缓冲区为64 字节的CPU 接收信息的FIFO 寄存器;
d) 接收过滤器ACF  对接收到的信息ID 与ACF 内容相比较以决定是否接收信息;
e) 位流处理器BSP  用来控制发送、接收缓冲区及CAN 总线的数据流;
f) 定时逻辑BTL  用于控制CAN 总线上数据的传输速率与同步;
g) 错误管理逻辑EML  按CAN 协议进行错误管理。

图2  SJAl000 逻辑框图

3 CAN 总线在智能传感器网络中的应用

以一路信号采集为例。图3 是CAN 控制器和收发器与单片机及ADC0809 的接口电路图。CAN 控制器采用PHILIPS SJA1000 , 单片机采用89C51 , 主要完成信号的采集和对信号的预处理, 并把经过处理的数据传给上位机。82C250 是CAN 控制器SJA1000 与CAN 物理总线的接口器件, 它驱动总线差动接收或发送。考虑到现场有各种各样的干扰, 在CAN 控制器和驱动器之间加了高速光耦隔离器件(6N137) 。由于CAN 控制器和反馈控制器内部都有自己的时钟产生电路, 为了使两者协调, 外加的晶振在CAN 控制器上作为整个系统的时钟, 且将CAN 控制器的时钟输出作为微控制器的时钟输入; SJAl000 的中断输出接至CPU 的INT1 端; 通过中断方式实现单片机与CAN 控制器的通信; 同时为了使CAN 控制器和微控制器能同时可靠复位, 外加了手动复位电路。另外, 由于ADC0809 转换器具有三态输出锁存功能, 可以直接与89C51 的总线相连, 在系统中把ADC0809 转换器当作外部RAM单元对待。

 
图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 总线应用于智能传感器中, 使传感器获得的信号能通过总线实时地、可靠地、高速而准确地进行传输。同时, 由于整个智能传感器网络采用全数字化的通信, 因此总线也具有很好的抗干扰能力, 即使在重负荷下也不会出现网络瘫痪的情况, 这些优越性能是其它现场总线所不及的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top