第29卷第9期 应 用 科 技 Vol.29,№.92002年9月 Applied Science and Technology Sep.,2002文章编号:1009-671X(2002)09-0016-03
CAN总线在智能传感器中的应用
罗耀华
(哈尔滨工程大学自动化学院,黑龙江哈尔滨 150001)
摘 要:介绍CAN总线的技术特点、CAN总线控制器SJA1000在智能化传感器中具体应用的硬件电路和
①软件编程。
关 键 词:CAN总线;总线控制器;传感器中图分类号:TP274.23 文献标识码:A
ApplicationofCANBusintheIntellectualizedSensor
LUOYao-hua
(CollegeofAutomation,HarbinEngineeringUniversity,Harbin150001,China)
Abstract:Inthispaper,technologyoftheCANbuswasintroduced.TheapplicationofCANbuscontrollerSJA1000,includingthecircuitandprogramoftheintellectualizedsensor.Keywords:CANbus;buscontroller;sensor0 引 言随着自动化程度的提高和信息的网络化进程,自动化系统中的传感器越来越多。传统的采用模拟信号传输的传感器难以适应在现代化大系统中应用的要求,主要表现在以下几个方面:1)传感器的引线多。传感器即使采用二线制的信号传输方式,每只传感器也要2根引线。在大型的系统中,往往有几百只到几千只传感器,需要的引线的根数是传感器的2倍,如此多的引线将给建设时的布线和日后维护带来困难。2)传感器的位置往往与控制器较远,模拟信号的长线传输会带来干扰。3)传感器输出的信号经过远距离传输易引入误差,降低精度。4)传感器采用模拟信号形式不能与数字系统直接配接。
因此,传感器的输出应采用数字化,传输采用网络化。在网络化的系统中,每个传感器和执行部件都是网络中的一个节点。控制器与传感器、执行机构之间的信息交换使用公共的网络介质。所采用的网络通常为现场总线。采用现场总线控制系统如图1所示。
网络的种类通常是现场总线。目前,使用最多的CAN(controlareanet)。
图1 采用现场总线进行信息交换的控制系统图
1 CAN总线的技术特点
现场总线有许多种,各种现场总线互相不兼容。目前使用较为广泛的,特别是在国内使用最为广泛的是CAN(controlareanetwork)总线。CAN总线是一个多主站总线,各节点都有权向其他节点发送信息。通信介质可以是双绞线、同轴电缆或光纤。它采用简单的协议,实现在电磁干扰的环境下远距离实时数据的可靠性传输。硬件成本低。主要技术特征如下。
1)CAN总线的任一个节点在任一时刻主动
①收稿日期:2002-03-27
作者简介:罗耀华(1956-),男,哈尔滨工程大学自动化学院副教授,主要研究方向:电力电子技术、电力推进及计算机控制技 术。
第9期 罗耀华:CAN总线在智能传感器中的应用 ・17・向网络上的其他节点发送数据,而不分主从,通信灵活。
2)CAN总线上的节点可以通过设置分为不同的优先级,用来满足不同的实时性的要求。
3)CAN总线采用非破坏性总线仲裁,当两节点同时向总线发送信息时,优先级低的节点主动
位速率bps通信距离/m
停止数据发送,而优先级高的节点不受影响,继续发送数据。
4)CAN总线具有点对点,一点对多点及全局广播传送数据的功能。
5)CAN总线两节点间通信最大距离与通信位速率有关,见表1。
表1 CAN总线通信距离与位速率的关系
1M40
500k130
250k270
125k530
100k620
50k1300
20k3300
10k6700
5k10000
由于CAN总线的上述特点,使其获得了广泛
的应用。国际上的许多大公司都推出了自己CAN总线产品。目前使用最为广泛的是PHILIPS公司的产品,主要有
1)PX592:8X552+CAN控制器;
2)82C150:具有数字和模拟I/O的CAN总
号的采集处理。82C250是CAN控制器SJA1000与CAN物理总线的接口器件,它提供对总线的差动发送能力和对CAN控制器的差动接收能力。引脚8用于选择自身的工作方式:高速、斜率控制、待机。引脚8接地,82C250工作于高速方式。引脚8接一个电阻后再接地,用于控制上升和下降的斜率(斜率正比于引脚8上的电流值),其目的是减少射频干扰。引脚8加高电平,电路进入低电流的待机状态。在这种方式下,发送器被关闭,接收器转至低电流。此时,可以对CAN总线上的显性位做出反应。如果82C250处于CAN总线的网络终端,总线上需要加一个120Ω的匹配电阻。
线扩展器件;
3)82C250:CAN总线收发器;
4)SJA1000:高性能CAN总线通信控制器。2 CAN总线在智能传感器中的应用图2是CAN控制器SJA1000与单片机A2DuC812的接口电路图。单片机ADuC812完成信
图2 SJA1000与单片机接口电路
应 用 科 技 第29卷・18・
3 程序设计
与CAN总线有关的程序由初始化、发送和接受三部分组成。程序设计语言采用汇编语言。
1)初始化程序
MOVX@DPTR,A
2)CAN发送数据程序
首先将识别码、数据长度和待发送的数据送入发送缓冲器中,在图2中,发送缓冲器的地址为7F00H~7F13H。然后执行如下程序即可完成发
初始化主要是对SJA1000的内部寄存器进行设置,在本电路中晶振为12M,位速率125K,具体的程序如下。INT-CAN:MOV
MOV
DPTR,#CANCONA,#01H
送
MOV DPTR,#CANCON ;指向命令
寄存器
MOV A,#09H
MOVX @DPTR,A ;发送数据3)CAN接收数据程序
;软件复位
MOVX@DPTR,AMOVDPTR,#CANACR
;软件复位;设置验收码寄存器,本节点的标识为1MOVA,#01HMOVX@DPTR,AMOVDPTR,#CANAMR ;设置验收屏蔽寄存器为使用验收码MOVA,#00HMOVX@DPTR,AMOVDPTR,#CANBTR0 ;设置总线定时器0
MOV A,#42H
MOVX@DPTR,AMOVDPTR,#CANBTR1 ;设置总线定时器1MOVA,#0d7HMOVX@DPTR,AMOVDPTR,#CANOCR ;设置输出控制MOVA,#0AAHMOVX@DPTR,AMOVDPTR,#7F1FH
;设置SJA1000的工作模式
为Basicmode
A,#00HMOV
MOVX@DPTR,A
DPTR,#CANCONMOV
MOVA,#02H
;软件置位
当SJA1000收到报文后,自动申请中断。收到的报文在SJA1000的接收缓冲器内。单片机在中断服务程序中将收到报文从SJA1000的接收缓冲器中读出即可。在图2中,接收缓冲器的地址为7F14H~7F1DH。报文读出后,应该释放接收缓冲器,为接收下一个报文作准备。释放接收缓冲器使用下面的程序
MOV DPTR,#CANCON
MOV A,#04HMOVX @DPTR,A ;释
放接收缓冲器
4 实际的应用情况
图2所示的电路已经应用于压力传感器,并组建了一个由100只传感器和一个控制器的CAN网络。经过高低温试验和长期通电考核证
明,CAN总线通讯准确、速度快。
参 考 文 献
[1] 邬宽明.CAN总线原理和应用系统设计[M].北京:
北京航空航天大学出版社,2000.
[2] 飞利浦公司.SJA1000CAN控制器[M].北京:
飞利浦公司,2001.