3.2 控制节点的软件设计
3.2.1 控制节点软件实现功能
控制节点软件实现的主要功能如下:
1)系统的初始化:包括串口的初始化、CAN控制器的初始化、定时器的初始化以及系统主要变量的初始化。
2)外部存储器资源的分配、管理:包括对FM25640读写的基本操作,以及建立在这些操作上的对节点控制方案的管理。
3)CAN命令的发送、接收及解释:包括对其它节点发送的CAN命令的接收、识别、解释,以及相应的应答命令的发送。
4)串口命令的发送、接收及解释:包括串口命令的接收、识别、解释,以及相应的应答命令的发送。
5)传感器信号的检测:包括传感器组的连续检测,以及检测到信号时所进行的相应处理。
6)照明回路的控制。
7)定时器的管理。
3.2.2 控制节点软件工作流程
控制节点的程序采用C51设计,这样可以大大简化程序设计的复杂度。控制节点的主程序框图如图3所示。
在系统初始化后,程序循环查询传感器接口、串口和CAN接口。当检测到传感器有信号输出时,程序在打开附近的照明回路的同时也通过CAN总线向其他节点发送该传感器的信息。其余的控制节点一旦接收到该信息,便会查询存储在外部存储器中的控制方案信息,然后打开与该传感器相关联的照明回路,从而实现控制方案指定的照明方式。
控制节点的CAN中断程序的框图如图4所示。当节点接收到一条CAN帧,中断处理程序读出该命令,并置CAN命令接收标志,等待命令处理子程序的处理。
为了方便控制节点的安装与调试,在主程序中特别加入了串口处理程序。使用者可以通过发送串口命令测试控制节点的各项功能,也可以通过串口上传、下载控制方案。
3.2.3 现场可编程功能的实现
为了实现该系统的现场可编程功能,每一个控制节点都应该存储本节点的照明回路与网络中其他节点的传感器的逻辑关系表。逻辑关系表的结构如下:
上表表示节点的各个照明回路与系统中某一节点的的传感器(包括本节点)的互连关系。如果表项中对应值为1,则表示对应的照明回路与传感器相关联,一旦传感器有信号,相关的照明回路就会被打开。关系表中的各项的值可以随时改变,并通过上位机或串口重新下载到存储器中。
假设网络中有N个控制节点,每一个节点中将会存储N-1张关系表,对应于网络中的其余N-1个节点。一旦某一节点在CAN上发送传感器消息,其余的节点接收到该消息后就会从对应于发出消息的节点的关系表中查找与该传感器关联的照明回路并打开这些回路。这样一旦有车辆进入停车场,该控制系统就会打开控制方案规定的所有的照明回路,实现照明的智能化。