基于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总线引入到智能家居的设计中来。实现对楼宇中窗户的远程监控和操作,从而提出了智能家居的发展新方法新思路。
评论