自制智能家居控制系统设计与实测-软件设计概括

对“自制智能家居控制系统”硬件已制作完成,之后即到“软件驱动设计”,涉及到的外设模块主要有“GPIO指示”、“蓝牙”、“触摸”、“继电器驱动”等,归档分配表后,总共使用“18个控制端子”,此时仍有很多的“控制端子预留”,为后续“硬件扩展”提供基础条件;具体硬件分配表如下所示:

硬件分配表

此时,从“软件设计”之前,需考虑,是使用“裸机思维”还是使用“系统思维”对其进行“软件代码设计”;切忌一开始就直接进行“code编程”,“良好的程序架构”会对后续的“代码编程”有极大的好处,而“贸然的编程”在后续的“代码编程”中可能会造成“巨大的困扰”;对“裸机思维”和“系统思维”优缺点介绍如下:

i)、“裸机思维”:“以顺序代码为基础”,兼容“定时器/中断”:

优点:“编程思路简单”、“调试方便”、“代码层次性好”等;

缺点:无法高效利用“MCU分时控制”,“不同功能模块代码”间的“耦合性强”等;

ii)、“系统思维”:多使用“实时操作系统”(TROS),“以任务代码为基础”,兼容“定时器/中断”:

优点:使用“任务调度方式”、“系统任务”的“上下文切换”等均由“内核实现”,“多任务优势明显”;

缺点:部分“RTOS”为“收费使用”,部分“RTOS”使用面有限等;

对本次设计而言,考虑到“外设数目较多”,且便于“后续硬件升级/扩展”,若现在使用“裸机代码”进行编写,虽然思路明确、实现难度不大,但在后续再添加“使用外设”时,对“总体代码”的“架构”会产生“不可知影响”;同时,对“STM32F103C8T6”而言,其内部的“FLASH”、“ROM”足够大,足以满足“RTOS”的“硬件需求”,且使用“RTOS”进行“code编程”,在后续添加“扩展功能”时,只需添加对应的“TASK任务”即可,且“任务”间的“上下文切换”均由“内核Kernal”进行调度,“任务”间的“耦合性低”;

综上所述,本次“code代码”暂定采用“RTOS方式”实现,后续介绍“代码分配与实现”;

Edit date:2018-01-07;

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年1月7日
下一篇 2018年1月7日

相关推荐