自动回转柜系统的软件设计
一个良好的控制系统不仅需要稳定可靠的硬件平台的支撑,也需要一套功能完善、性能稳定的软件系统的支持。前面的章节主要介绍了系统的整体设计和硬件电的设计,本章将详细介绍系统软件部分的设计。整个软件系统采用模块化的设计思想,使整个软件结构清晰明了,也便于后期调试和。
由上图可知,整个软件设计主要围绕系统的状态变量进行。本系统中,将系统的多种状态分别对应到定义好的多个变量之上,整个软件运行的过程中,始终根据这些状态变量的值改变系统的状态。而这些状态变量的值又受到多方面的影响,如上位机命令、触摸屏的控制动作以及传感器的状态等。
(1)系统初始化:对于主控板,系统初始化主要是设置微控制器模式、初始化堆栈,设统时钟、存储器加速模块,初始化中断等。对于ZigBee子系统,系统初始化主要包括Z-Stack协议钱的初始化和用户程序中相关变量及结构体的初始化等;
(2)对系统中需要具备掉电保存功能的变量的处理:具体设计时采用I2C接口对EEPROM进行读写,以保持系统中某些变量的值始终为上一次使用完之后的值;
(3)中断系统:对于主控板,中断为触摸屏数据产生的中断和上位机数据产生的中断,主要包括读命令和写命令。对于ZigBee子系统,中断主要由微控制器数据和上位机PC数据产生,主要用于数据的无线传输;
(4)协议解析:对于中断接收的数据,需按照好的协议格式解析数据,并根据解析后的命令改变系统状态变量的值或者返回数据。
(5)系统状态变量:根据状态变量的值改变系统的状态。这些状态主要包括:整个系统是否处于状态、电机是否处于运转状态、LED定位的状态、触摸屏显示状态等;