拨码开关:八位拨码开关的状态决定该子节点的节点号和其实现的功能。
无线节点软件设计:鉴于节点使用的通用性要求,需要上电后根据拨码开关确定子节点号及其所要完成的功能。其主要功能包括水电气三表的数据采集和存储、报警信息的获取、设防撤防状态的获取和以上信息数据的无线发送。根据拨码开关的状态确定节点需要完成的其中一项或几项工作,并调用相应的初始化程序。由于无线通讯模块的功耗较大,CPU大部分时间都处于休眠状态,通过各级中断唤醒CPU和恢复无线通讯模块的正常工作。数据的无线发送和接收要遵守家庭网关通讯协议。
系统上电后,先关闭看门狗定时器,开关电源进入SNOOZE节功状态,同时关闭无线通讯模块电源,进行I2C接口的初始化,读取拨码开关状态,并根据拨码开关的状态进行单片机通用I/O口的初始化,以确定其作为脉冲量输入端口还是开关量输入端口,或是撤防设防输入端口。
其中,若作为脉冲量输入端口,则调用相应脉冲量初始化程序,设置其端口为上升沿触发;若作为开关量输入端口,则调用相应开关量初始化程序,设置其端口为下降触发;若作为撤防设防输入端口,则调用设防撤防初始化程序,当前端口状态为设防状态时,进行撤防初始化,设置其端口为上升沿触发。当前端口状态为撤防状态时,进行设防初始化,设置其端口为下降沿触发。
端口初始化结束之后,进行串行通讯UART接口初始化,打开UART接收中断使能,使其能响应网关发送给子节点的命令。定时器连续工作在计数模式,打开计数器溢出中断使能。
单片机各部分初始化结束后,进入LPM3休眠模式,只有ACLK始终保持工作,因此在串行通讯UART和定时器初始化中,将其工作时钟定义为ACLK是十分重要的,否则进入LPM3休眠模式后,串口和定时器将停止工作和相应中断。进入LPM3休眠模式后,系统的功耗最低。
系统可响应I/O中断,当其作为脉冲量输入端口时,脉冲量上升沿触发中断,经过去抖处理后,脉冲量计数增1,遇到进位时,调用函数处理进位,最后将计数值写入FRAM,进入LPM3休眠模式。当其作为开关量输入端口时,开关量下降沿触发中断,停止计数器计数,打开电源,打开串行通讯,重复发送报警信息,直到收到网关应答信息时才停止报警,恢复定时器计数,进入LPM3休眠模式。
基于ZigBee技术的智能家居无线网络系统,由于其具有低成本、低功耗、较远的覆盖范围及通用性的特点,将成为智能家居系统中的又一亮点,必将给现代智能家居系统带来一场新的变革。
(编辑 小开)
(编辑:Karl)
价格面议
[查看详情]