原创 点对点控制应用方案设计(2)

2014-11-9 15:43 1084 15 15 分类: MCU/ 嵌入式 文集: 导学

点对点控制应用方案设计(2)

设想另一个应用场景,老人或小孩房间给一个模块,按一下,大人房间的模块就会响(蜂鸣器)。这样,老人或小孩有什么事情时,可以不用喊就让别人知道。

可以先参考“蜂鸣器控制实现”。

Step 1:请实现以下方案

应用:简单蜂鸣器无线控制

功能描述:

  1. 系统由一个蜂鸣器模块和一个控制模块组成;
  2. 蜂鸣器模块上有1个LED灯,一个按钮和一个蜂鸣器;控制模块上有1个按钮和1个LED灯;
  3. 初始状态下,按一下控制模块上的按钮,表示“呼唤”动作。控制模块发出消息,LED闪烁,表示对方模块在告警状态;蜂鸣器模块收到消息后,其上的蜂鸣器发声,LED闪动;
  4. 告警状态下,按一下蜂鸣器模块上的按钮,表示“确认”动作。蜂鸣器模块LED亮,蜂鸣器停止发声;表示当前状态为“告警确认”状态;
  5. 告警状态或告警确认状态下,按一下控制模块上的按钮,表示“取消呼唤”动作。控制模块发出消息,LED灭;蜂鸣器模块收到消息后,蜂鸣器停止发声,LED灭;

 


Step 2:考虑到消息发送过程会发生丢失,请实现以下方案

应用:蜂鸣器无线控制

功能描述:

  1. 系统由一个蜂鸣器模块和一个控制模块组成;
  2. 蜂鸣器模块上有1个LED灯,一个按钮和一个蜂鸣器;控制模块上有1个按钮和1个LED灯;
  3. 初始状态下,按一下控制模块上的按钮,表示“呼唤”动作。控制模块发出消息;蜂鸣器模块收到消息后,其上的蜂鸣器发声,LED闪动;蜂鸣器模块须回复确认消息,控制模块收到确认消息后,LED闪烁,表示对方模块在告警状态;
  4. 告警状态下,按一下蜂鸣器模块上的按钮,表示“确认”动作。蜂鸣器模块发出响应消息,控制模块收到后,回复确认消息。控制模块LED亮;蜂鸣器模块收到确认消息后,LED亮,蜂鸣器停止发声;表示当前状态为“告警确认”状态;
  5. 告警状态或告警确认状态下,按一下控制模块上的按钮,表示“取消呼唤”动作。控制模块发出消息;蜂鸣器模块收到消息后,其上的蜂鸣器停止发声,LED灭;蜂鸣器模块须回复确认消息,控制模块收到确认消息后,LED灭,表示对方模块回复初始状态;

要求:

  1. 设计消息类型和消息结构;
  2. 画出系统的FSM状态图(有限状态机);
  3. 画控制模块和蜂鸣器模块的流程图;

完成了?很好!

可以考虑一下以下扩展,或者开始其它类型的设计。

 


扩展1:请实现以下多点对点方案

应用:多控制器无线蜂鸣器

功能简述:

  1. 有多个控制模块,蜂鸣器模块上有多个LED灯和按键对应各个控制模块;
  2. 其它功能同上;

要求:细化功能描述;其它同上

 


扩展2:增加通信状态

应用:带连接状态无线控制蜂鸣器

功能简述:

  1. 在Step2的基础上;
  2. 蜂鸣器模块与控制模块之间周期性的发送hello消息;
  3. 收到hello消息后,保持LED灯亮,表示连接正常;
  4. 一定时间段(比如3.5个hello周期)内没有收到消息,则LED灯灭表示连接不正常;
  5. 其它功能同上;

要求:细化功能描述;其它同上

提示:可能要用到定时任务机制。


完成了?很好!

 

看看下一个感兴趣的主题吧。

 

主索引

方案设计 使用控件

2、通过电脑web方式远程控制

 
  附件
 
  参考链接
 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
15
关闭 站长推荐上一条 /2 下一条