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和PCA
本文作者创新点在于在实现单个节点设计的基础上,将CAN总线引入到智能家居的设计中来。实现对楼宇中窗户的远程监控和操作,从而提出了智能家居的发展新方法新思路。