Mechatronics 版 (精华区)
发信人: compotator (tired), 信区: Mechatronics
标 题: 基于CAN总线的家庭控制器的设计与实现
发信站: 哈工大紫丁香 (2002年05月05日19:15:36 星期天), 站内信件
作者:张敬堂 李红波
摘要 CAN总线是一种新型网络协议,是一种有效支持分布式控制和实时控制的串行通信
网络,它具有传输速度快、自动解决总线竞争、实时性好、可靠性高、纠错能力强等特
点,目前已成为一种国际总线标准。本文介绍一种基于CAN总线的家庭控制器的实现方案
。
关键词 CAN总线;家庭控制器
1 引言
CAN(Controller Area Network)总线是德国Bosch公司为解决现代汽车中众多的控制与
测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介
质可以是双绞线、同轴电缆或光导纤维,通信速率可达1Mbps,通信距离可达10km,CAN
协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码,使
网络内的节点个数在理论上不受限制。由于CAN总线具有较强的纠错能力,支持差分收发
,因而适合高干扰环境,并具有较远的传输距离。因此,CAN协议对于许多领域的分布式
测控是很有吸引力的。目前CAN已成为ISO11898标准,其特性如下:
⑴ CAN是一种有效支持分布式控制和实时控制的串行通信网络。
⑵ CAN协议遵循ISO/OSI模型,采用了其中的物理层、数据链路层与应用层。
⑶ CAN可以多主方式工作,本质上也是一种CSMA/CD方式,网络上任意一个节点均可以在
任意时刻主动地向网络上的其它节点发送信息,而不分主从,节点之间有优先级之分,
因而通信方式灵活; CAN采用非破坏性位仲裁技术,优先级发送,可以大大节省总线冲
突仲裁时间,在重负荷下表现出良好的性能;CAN可以点对点、一点对多点(成组)及全
局广播等几种方式传送和接收数据。
⑷ CAN的直接通信距离最远可达10 km(传输速率为5 Kbps);最高通信速率可达1 Mbp
s(传输距离为40 m)。
⑸ CAN上的节点数实际可达110个。
⑹ CAN数据链路层采用短帧结构,每一帧为8个字节,易于纠错;CAN每帧信息都有CRC校
验及其它检错措施,有效地降低了数据的错误率;CAN节点在错误严重的情况下,具有自
动关闭的功能,使总线上其它节点不受影响。
⑺ 信号调制解调方式采用NRZ编码/解码方式,并且采用插入填充位(位填充)技术。
⑻ 数据位具有支配“0”(Dominant bit)和退让“1”(Recessive bit)两种逻辑值
,采用时钟同步技术,具有硬件自同步和定时时间自动跟踪功能。
2 基于CAN总线的家庭控制器总体设计方案
在进入信息化时代的今天,人们对于居住环境中的安全性、舒适性要求已越来越高,建
立住宅小区计算机管理局域网,实现小区综合管理的网络化势在必行 。通过遍布于整个
住宅区的家庭控制器和中央计算机系统,实现对住宅的智能化管理。
图1是基于CAN总线的总体结构示意图,系统采用支持CAN标准的总线型网络。中央计算机
系统(上位机PC)通过CAN接口适配卡与CAN总线相连,进行数据交换。通过双绞线把中
央计算机系统和家庭控制器(下位智能节点)挂接在一条总线上,构成低层通信网络。
由于采用了CSMA/CD的信息传输控制技术,允许总线上各节点平等争用总线,从而可构成
具有多主节点的冗余网络结构。
在低层通信网络中,中央计算机系统和家庭控制器分别有自己的ID标志。由于采用CAN标
准作为网络通信协议,各节点在网络中的地位相同,于是我们可以将中央计算机系统虚
拟成主机,而家庭控制器则虚拟成从机,响应主机的要求。中央计算机系统负责对整个
CAN总线系统进行监视管理,具有系统参数(如传输速率、节点地址等)设置、数据发送
、数据请求、本机状态查询、节点状态查询、中断状态查询等功能。系统工作过程为上
位机向下位节点(家庭控制器)发送命令,下位节点识别并执行相应命令。同时各下位
节点也可按要求进行信息交换。
在数据链路层中,规定了支持CAN协议的两种帧类型:数据帧和远程帧。数据帧用来发送
数据,用于一个节点传送信息到其它任一或所有节点;远程帧用来“远程发送请求”,
用于一个节点主动要求其它节点发送信息。两种帧的具体格式如图2所示:
3 硬件电路设计
家庭控制器硬件设计
本系统是由许多智能家庭控制器通过CAN总线相连而组成的一个控制器局部网,因此,C
AN总线的设计就显得极为重要。其中,CAN控制器的选取、CAN收发器以及抗干扰措施将
成为设计的关键。
①CAN控制器的选取
为了系统进一步扩展的需要,可选取支持CAN2.0B通信协议的SJA1000。SJA1000是PHILI
PS公司最新生产的既支持CAN2.0B又支持CAN2.0A的CAN控制器,它与仅支持CAN2.0A的CA
N控制器PCA82C200在硬件上和软件上完全兼容。
②CAN收发器
PCA82C250是PHILIPS公司的CAN控制器和物理总线间的接口,提供对总线的差动发送和接
收能力。它与ISO11898标准完全兼容,有三种不同的工作方式即高速、斜率控制和待机
,可根据实际情况选择。
③光电隔离
为了进一步提高系统的抗干扰能力,在控制器SJA1000和收发器PCA82C250之间增加了由
高速隔离器件6N137构成的隔离电路,电源采用DC-DC变换器。
硬件电路中使用PCA82C250是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线
,降低射频干扰(RFI),实现热防护等。
CAN器件与微处理器的硬件结构图如图3所示。
CAN接口适配卡和CAN总线中继器
CAN接口适配卡完成CAN-PC总线的通信。适配卡由单片机89C51、CAN控制器SJA100、CAN
收发器89C250及其控制电路组成。
由于CAN收发器的限制,在一个CAN总线网络中,最多只能有110个CAN节点。利用中继器
可对CAN总线进行扩展,不但可使CAN节点总数达到2032个,而且可使CAN通信距离成倍增
加,同时也可以把两个不同速率的CAN网连接在一起,组成更复杂的CAN网络。
中继器采用特定的控制逻辑控制一对CAN收发器82C250。CAN收发器背--背相接,连接两
个物理上独立的CAN网,双向传输数据。从物理层上看,中继器实现CAN总线信号的透明
中继。
4 软件设计
上位机软件
采用Visual Basic 6.0开发软件。分两大功能模块:高层系统管理模块和低层通信模块
。程序流程图如图4所示。
家庭控制器(节点)软件
实现与上位机及其它节点的信息交换。
在软件设计中,遵循模块化设计思想,采用结构化程序设计方案,使之具有良好的模块
性、可修改性和可移植性。
CAN总线系统的初始化设计是软件设计的关键,这一部分设计不好,系统将不可能正常工
作。因此初始化设计是一个难点,又是一个重点。
在初始化之前,应设置输出控制寄存器(OCR)的复位请求位为高,再设置其它寄存器。
控制寄存器(CR)设定中断;命令寄存器(CMR)控制缓存器的接发状态;中断寄存器(
IR)、状态寄存器(SR)查询SJA1000的工作状态;接收码寄存器(ACR)设定工作地址
;接收屏蔽寄存器(AMR)设定工作形式;总线定时寄存器(BTR0、BTR1)设定工作频率
、采样频率;输出控制寄存器(OCR)一般为正常输出方式,最后应使复位请求位从高变
低,使CAN控制器进入正常工作状态。因此,对CAN控制器进行初始化,实际上就是对 A
CR,AMR,BTR0,BTR1和OCR这些寄存器进行访问。
成功地初始化SJA1000后,系统就可以应用它来传输报文。
五、结语
CAN总线以其高性能、高可靠性及其独特的设计越来越受到人们的重视,并被公认为最有
前途的总线之一。我们在家庭控制器系统中应用了这种总线技术,设计了硬件电路和软
件,并得到实际应用。
参考文献
[1]Philips SJA1000——Stand-alone CAN Controller , DATA SHEET,1997
[2]Philips PCA82C250 CAN Controller Interface , DATA SHEET,1997
[3]阳宪惠,现场总线技术及其应用,清华大学出版社,1999
[4]邬宽明,CAN总线原理和应用系统设计,北京航空航天大学出版社,1996
[5]张毅刚等,MCS-51单片机应用设计,哈尔滨工业大学出版社,1992
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sms.hit.edu.cn]
※ 修改:·compotator 於 05月05日19:15:52 修改本文·[FROM: sms.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.207毫秒