1、 软 件 详 细 设 计 说 明 书项目名称:智能家居系统家庭智能网关 V1.1日期: 2015 年 8 月 19 日目 录1 引言 11.1 编写目的 11.2 项目背景 11.3 定义 11.4 参考资料 12 总体设计 22.1 需求概述 22.2 软件结构 23 程序描述 43.1 下面对各模块的功能,性能,输入,输出进行具体描述 43.2 程序逻辑 911 引言 随着科技提高,人民生活水平提高,生活节奏的逐渐加快。我们需要一种更便捷,舒适,健康的生活环境。利用通讯和信息技术,开发智能家居系统,为人民提供更好的生活服务,将人民从繁重的生活压力中释放出来,从而专心于科技、决策等方面的事物
2、,促进社会快速和谐发展。1.1 编写目的本说明的编写目的在于明确智能家居系统网关软件开发方案、方法;为软件开发人员提供明确的开发思路。本文档需经过严格评审后开始软件开发。确保各部分方案合理可行、占用最少的开发资源。本说明的预期读者是智能家居系统决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。1.3 定义专门术语:Zigbee Zigbee 无线通讯网关 智能家居系统用于将不具备联网能力的家用设备联网以及管理设备UC/OS 嵌入式操作系统,提供任务调度,通讯功能串口 单片机一种有线通讯方式1.4 参考资料软件工程基础教程- 刘文,朱飞雪 主编: 粘新育,陶洁 副主编:出
3、版社: 北京大学出版社c 语言程序设计 -谭浩强嵌入式实时操作系统 UC/OS 原理与实践2 总体设计 2.1 需求概述 (1)、智能家居系统设备联网:A、通过以太网,wifi,2G 等转发 Zigbee 设备信息给网关B、通过以太网,wifi,2G 等接受服务器控制信息、场景信息,转发给 zigbee 设备(2)、消息记录:2A、记录 ZIgbee 设备信息B、记录 Zigbee 设备状态信息记录C、记录服务器更改设置记录D、记录用户相关设置信息2.2 软件结构以太网 Wifi 2GSTM32F407ZigbeeSD 卡GPIOSDIOSDIOUARTRMIISPI UART以太网Wifi
4、2G事件管理任务Zigbee SD卡GPIOLWIPRMIISPI SDIOUC/OS串口串口LED消息邮箱、队列、信号量、标志位组消息邮箱、队列、信号量、标志位组3软件整体基于 UC/OS 操作系统。使用事件管理任务管理各个任务,每个任务都通过消息邮箱、队列、信号量、标志位组与通讯管理任务进行通讯。各个任务之间不通讯。每个任务根据功能不同,底层使用不同的驱动。因为每一任务所使用的外设接口都不同,所以每个任务都有各自独立的驱动。但若出现多个任务使用同一个外设接口时则可以共享驱动。3 程序描述 3.1 下面对各模块的功能,性能,输入,输出进行具体描述1、UC/OS 操作系统 功能:实现任务调度、
5、任务间通讯 性能:占用 ROM:13K 占用 RAM:0.8K占用 CPU 资源:约 5%2、事件管理 功能:实现各个任务逻辑关系处理。实时检测系统关注事件,当有事件发生的时候,根据不同的事件类型,通知不同的任务动作。 性能:优点:逻辑四路清晰,软件维护简单,扩展性强,当需要添加功能时只需在事件管理任务中增加事件触发消息,然后增加对应的功能任务,无需改动其他任务缺点:每个事件都通过事件管理任务进行判断处理,增加了事件管理任务设计的复杂性。 输入项目:事件来源以及事件内容 输出项目:响应事件通知以及消息内容。3、以太网 功能:实现万维网通讯,将事件管理模块发过来的来自 Zigbee 模块的消息转
6、发给服务器,将服务器下发的数据转发给事件管理模块以转发给 Zigbee 模块。 实现方案:以太网通过 RMII 与外围网络芯片通讯,使用 LWIP 模块进行网络通讯。通讯协议使用 TCP/IP 协议。44、Zigbee 功能:与 Zigbee 模块进行通讯,将 Zigbee 模块的消息转发给事件管理模块,将事件管理模块发过来的需要发送给 Zigbee 模块的数据通过串口发送给 Zigbee 模块。 性能:Zigbee 模块接受使用串口中断,每次接受到数据都进行终端。并在中断中进行头尾校验。头校验失败则丢弃当前数据,并给 Zigbee 应用层发送校验失败消息,Zigbee 应用层发送重新发送数据
7、命令。头尾校验成功则给 Zigbee 应用层发送校验成功消息通知应用层、Zigbee 应用层进行 CRC 校验,校验成功则发送消息给事件管理模块,当校验失败则发送重新发送命令。5、wifi 功能: wifi 功能与以太网一样,实现万维网通讯,将事件管理模块发过来的来自Zigbee 模块的消息转发给服务器,将服务器下发的数据转发给事件管理模块以转发给Zigbee 模块。另外 wifi 还需实现通过手机 App 可以在网关未连接到万维网的情况下进行wifi 密码配置。Wifi 与主控通过 SPI 通讯,当 SPI 有数据,而且头尾校验成功。则发送给wifi 应用层,应用层校验后与事件管理任务进行信
8、息交互。若校验失败,则发送校验失败消息给应用层。6、2G 功能: 与 Zigbee 模块进行通讯,将 Zigbee 模块的消息转发给事件管理模块,将事件管理模块发过来的需要发送给 Zigbee 模块的数据通过串口发送给 Zigbee 模块。 性能:当用户联网不方便,没有以太网和 wifi 连接的环境下,使用 2G 接入互联网,实现通讯。当完成 SIM 卡注册后,其他操作与 wifi 类似。7、SD 卡 功能:SD 卡用于存储消息记录。记录内容包括 Zigbee 设备信息,动作记录,服务器下发的消息记录。 方法:因为本网络需要能同时管理数百个节点,消息数据量大。为了保证数据存储的实时性,不使用文
9、件系统,采用直接存储原始数据。为了使存储的数据具有可分析性,以及减小数据存储两,存储数据时,先对通讯数据进行解析,每个设备的数据单独存储,确保通讯数据中相同的部分只存储一份。数据存储格式为:设备信息,动作+时间列表。8、指示灯51、指示系统工作状态2、指示 wifi 工作状态3、指示网络连接状态3.3 程序逻辑登录模块逻辑流程图:开始选择网络初始化网络建立 TCP/IP连接发送登录包通讯过程流程图:发送消息给 zigbee 数据处理应用Zigbee 数据处理应用接收到消息,进行 CRC 校验。校验错误则返回错误信息。校验正确则进行数据解析。事件管理模块发送数据给网络通讯模块、数据存储模块。网络通讯模块发送数据给服务器串口接收到有效数据、尾校验数据存储模块进行数据存储发送消息给事件管理模块6发送消息给事件管理模块事件管理模块发送数据给网络通讯模块、数据存储模块。网络通讯模块发送数据给服务器网络通讯接口接收到服务器消息数据存储模块进行数据存储