摘 要: 本系统基于CAN总线,以单片机P8XC592和总线收发器PCA82C250为主体组成通信控制模块。各个控制模块为一个节点,每个节点可以独立进行操作,同时受到总台的监控。节点和总台PC机相连接组成一个控制器局域网。由于CAN总线具有较高的可靠性,实时性以及灵活性,所以运用CAN总线进行控制可以灵活地运用于智能窗户系统的开发中。
关键词:CAN总线 智能窗户 智能家居
1引言
在我国现有的市场里,智能窗户作为智能家居的一部分,它主要围绕着单个家庭进行开发。但随着人们对智能家居的要求越来越高,就在群控性,远程监控性,实时性等方面提出了更高的要求。在这样的前提下,引出了新的课题。结合CAN总线的数据通信技术具有突出的可靠性,实时性和灵活性的优点,把CAN总线技术运用于该系统中,达到在控制每个单独的窗户的同时,监控所有窗户的运行情况的目的。
2 系统结构设计
2.1 系统总体结构
CAN总线遵循ISO/OSI标准模型,分为数据链接层(包括逻辑链路控制子层LLC和媒体访问控制子层MAC)以及物理层。其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对数据的帧处理,包括位填充用户可在其基础上开发适应系统实际需要的应用层通信协议。
与一般的通信总线相比,CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块编码,报文标识符可达2032中(CAN2.0A),而扩展标准(CAN2.0B)的标识符几乎不受限制,还可使不同的节点同时收到相同的数据。所以本系统可以由多个独立的窗户为基本单元,这些单元与上位计算机通过CAN现场总线组成了监控网络,从而实现群控的功能。
如下图1所示。从中我们可以看出,本系统被分为三层:
(1)现场设备层:有一个雨水传感器以及多个窗户节点组成的,这些输入输出设备作为CAN的I/O点接入现场总线。窗户节点N的个数是由选取的总线驱动电路决定的。
(2)设备控制层:CAN控制器P8xC592以及CAN收发器PCA83C250,这是CAN总线控制的核心部分,CAN控制器实现通信及节点控制的功能;CAN收发器起到节点与总线之间通信的功能。
(3)管理监控层:作为控制系统的人机交互接口,通过上位PC机实现对整个系统的监视控制作用。
图 1系统硬件结构图
2.2系统的硬件选取
在本系统中,总线控制器和收发器分别采用Philip公司的P8xC592和PCA83C250。P8xC592单片机是用COMS工艺制造的具有CAN功能的8位单片机其指令集与80C51完全兼容,这样就有利于编程。PCA83C250是CAN控制器与物理总线的接口,可以提供对总线的差动发送和接收功能。在此特别注意 P8xC592单片机是一种集成CAN控制器的高性能微处理器,所以在该系统中,P8xC592不仅仅要与CAN相连接,同时还要对各个窗户子系统进行控制。
同时传输介质只要使用双铰线,在短距离(40m)条件下就具有高速(1Mbit/s)数据传输能力,而在最大距离10000m时具有低速(5kbits/s)传输能力。而主控制器采用的是性价比高,结构简单,便于编程的89S51单片机,主要用于对CAN控制器P8xC592及其串口RS232初始化,并通过对CAN控制器8xC592及其串口RS232的控制操作实现现场CAN总线与管理层PC机的数据交换等通信任务。
3 用户通信协议设计
3.1 通信协议
这里采用的是CAN2.0A标准,该协议最大的优点是废除了传统的站地址编码,因此CAN没有节点地址的概念,代之以通信数据块进行编码,支持以数据为中心的通信模式.当窗户节点不同时,只需要在总线上增减控制器的节点数,并对相应的数据帧进行适当的修改. CAN上的节点数主要取决于总线驱动线路,当采用PCA82C250时,最多可达110个。
3.2 数据帧
数据帧如图2所示,包括七个部分:帧起始,仲裁场,控制场,数据场,CRC序列,ACK场,帧结束.仲裁场包括有报文标识符(11位)和远程发送申请位(RTR);控制场由六位组成,如图3所示,后四位位数据长度码,代表数据场字节数,这里设为02H;传输信号每一帧数据长度为16位,高字节用D8到D15八位编码表示节点在大楼的位置,低字节设为控制字,控制字各位均为高电平有效。如下图4所示,例如:数据场为0801H,表示8号窗户节点要求托管;0802H表示8号窗户节点处于开启状态,0804H表示8号窗户处于关闭状态,0808H表示8号窗户要执行开窗指令,080F H表示8号窗户要执行关窗指令。对于上位机和下层的各个节点来说,它们需要发送的数据帧信息是不同的。
图 4 数据场组成
3.3 多主广播方式
总线空闲时,任意节点均可发送数据,其它节点都可接收总线上的数据,CAN只需通过报文滤波就可以实现点对点,一点对多点及全局广播等传收方式,无须专门调度。这里用接受码寄存器,接收码屏蔽寄存器实现报文滤波,使上位机收总线上的一切信息,而层站控制器只接受上位机的CAN控制器发出的信号,并且使不同的节点可以同时接受上位机CAN控制器发出的数据。这点非常有用,采用广播方式,可极大地节省传输时间,提高传输速率,增强系统地实时性和可靠性。
3.4 总线仲裁
报文标识符用于提供传送报文和总线访问权信息。当多个总线控制器同时发送报文时,为避免冲突需进行仲裁。仲裁期间,每个进行发送的P8xC592都将其发送位电平与监控总线电平进行比较。如果发送一个隐性位而监视到一个显性位电平,那么该节点失去仲裁,放弃总线控制权,停止传送信息,P8xC592立即变成总线上较高优先权报文的接收器,而不破坏总线上任何信息。数据场上的发送数据存在发送缓存器数据区中,同时,接收数据帧的数据将被存在接收缓存器中。每段报文包括一个唯一的标识符和报文中描述数据类型的RTR位。标识符和RTR位一起定义该报文的总线访问优先权。仲裁期间,标识符的最高位先后被发送,而RTR位最后发送。标识符和RTR位对应二进制数值最低的报文具有最高的优先权。11位可以形成2032个不同的标识符,而该系统中窗户节点由于驱动电路的限制,最多只能有110个节点,所以采用标识符确定优先权绰绰有余。
4 系统软件设计
上位机即操作站的网络管理和应用程序的设计思路主要是CAN接口适配卡的初始化,判断网络节点之间时候有冲突,设定节点优先级,数据存取,与历史数据比较,根据节点实际情况进行处理并回送等功能。
CAN控制器P8xC592的通信软件包括CAN初始化、报文的接收和报文发送三部分。当控制器上电后,首先对CAN控制器P8xC592进行初始化设置,主要包括工作方式的设置、接受滤波方式的设置、接受屏蔽寄存器和接受代码寄存器的设置、波特率参数设置和中断允许寄存器的设置。完成P8xC592的初始化设置后即返回工作状态,开始循环监听CAN总线上的信息。
从用户的角度来看,窗户的运行情况是与其息息相关的。对于最底层的现场CAN智能测控节点的软件设计采用结构化设计方案。如下图5所示,P8xC592根据接收遥控器发出的信息决定运行情况,如果需要托管的话,就接受来自CAN控制器的信号并用于控制窗户的开/关。如果不用托管的话,那么就不断扫描遥控器,接受到信号然后执行。同时在程序的结束部分,有一个10ms计时的操作,这样就能保证单片机能有序地发送检测信号给PC机。
图 5 窗户节点软件流程图
5 系统功能效果
在该系统中,用户可以直接通过遥控器方便方便地进行操作,遥控器板有三个按键,一是开窗,二是关窗,三是托管。当遥控器的托管按键没有按下去的时候,用户就自己对关窗开窗进行控制,当用户需要开/关窗的时候,就按遥控器上相应的键就能实现功能。而当遥控器处于托管,如果下雨的时候,雨水传感器检测到下雨的信号,就通过P8XC592发送信号,信号经过CAN总线到达PC主机,然后PC主机再发送关窗的指令到所有处于托管状态的窗户节点。
在应用方面,智能故障诊断是非常重要的。在该系统里,设计一种检测的方法,每个窗户节点在每10ms的时间里,由P8XC592发送到检测信号PC主机里。如果主机没有收到该节点的检测信号,就认为该节点发生了故障。那么PC机就会向管理人员报警,说明该窗户节点出现了故障。
6 结论
基于CAN总线技术,采用P8XC592和PCA82C250芯片构成先进的总线智能节点控制器。在这篇文章中,笔者更多的是用智能窗户设计作为一个支点,概述了基于CAN总线技术应用于智能家居领域的设计方案。把水表,燃气表等等其他家居器件结合在单个节点控制器中,用CAN总线把各个节点连接起来,形成一个控制局域网络。本文提出来的设计方案为以后智能家居系统的开发设计提供了新的思路和新的方法。
本文作者创新点在于在实现单个节点设计的基础上,将CAN总线引入到智能家居的设计中来。实现对楼宇中窗户的远程监控和操作,从而提出了智能家居的发展新方法新思路。
参考文献
[1]邬宽明.CAN总线原理和应用系统设计[M].北京航空航天大学出版社,1996
[2]邬宽明.CAN总线系统设计中的几个问题[J].电子技术应用:1998,9:18~20
[3]阳宪惠.现场总线技术及应用[M].清华大学出版社,1999
[4]刘光. CAN总线智能节点的设计和实现[J].微计算机信息.2006,(22-62):102~104