主页(http://www.pttcn.net):基于NIOSⅡ处理器的智能家居控制系统设计(2)
在系统中主要设计了4个自定义任务,分别为:
(1)系统初始化管理任务:用来初始化操作系统的数据结构和创建其他任务。该任务在初始化完成后自动删除。
(2)网络DHCP服务管理任务:主要用来检查DHCP服务是否成功,即系统是否成功分配到IP。该任务在完成后也自动删除。任务流程图如图2所示:
(3)远程控制管理任务:主要用来在服务器和客户端之间建立Socket连接,在服务器端接收从客户端发送来的控制命令,并判断这些命令来进行相应操作。任务流程图如图3所示:
(4)服务器端中断管理任务:主要在服务器端处理用户产生的各种中断,然后向客户端发送相应命令执行对应操作。任务流程图如图4所示。
5 远程终端的桌面软件设计
在系统的硬件和软件设计都完成后,为了进一步完善系统功能,以及提高使用的方便性,需要在客户端编写一个专用的界面软件,代替客户端命令行的操作,远程用户界面是利用Visual Basic 6.0来完成开发。Windows操作系统为Internet提供Windows Sockets(或Winsock)等标准接口,而VB则利用ActiveX控件Winsock为Internet提供标准接口,所以使用VB的Winsock控件来完成本软件开发非常方便。
设计的软件界面如图5所示:
从软件界面可以看到,在系统使用中通过“启动连接”按钮建立本地计算机和智能家居控制系统间的网络连接。在“信息接收”对话框中可以接收并显示从智能家居控制系统端发送过来的消息,在“命令发送”栏中可以选择不同的服务通过智能家居控制系统响应对应的操作。
6 系统性能分析和功能验证
利用QuartusⅡ软件对设计的系统进行综合分析后可以知道,采用CycloneⅡEP2C35F672C6型号的FPGA设计的系统占用整个FPGA的资源是比较少的,使用3 658个逻辑单元,占总资源的11%,使用了52 224 b存储单元,占总存储量的10%,显示了FPGA的强大功能,利用剩余的资源可以进行后续高级功能的扩展。
在系统功能验证中,设计2组外围电路来验证系统的功能。设计外部发光二极管LED电路验证“开灯1”按钮功能,模拟系统对灯具的控制作用;设计外部红外信号发射与接收电路来(包括1对红外发光二极管和红外接收二极管电路)验证“开家电1”按钮功能,模拟系统对红外家电的控制作用。在实际测试中,电路工作良好,利用FPGA引脚输出3.3 V电压作为外部电路的电源。当通过本地的桌面软件建立本地计算机和智能家居控制系统间的网络连接后,可以利用软件上的操作按钮方便地远程控制LED电路和红外发射接收电路,同时可以利用智能家居控制系统的输入按钮向客户端发送消息,并显示在客户端软件上,实现两端的相互通讯。
7 结 语
本文提出一种基于NIOSⅡ处理器的智能家居控制系统设计方法,在FPGA上搭建系统硬件架构,并扩展外部的系统电路和测试电路,利用LwIP组件和μC/OS-Ⅱ操作系统实现系统对网络数据的控制处理,最后通过自行设计的桌面软件,成功地实现对系统外部电路的远程控制以及服务器和客户端间的消息通讯。系统用SoPC技术实现将微处理器、外部存储器控制接口、网络芯片控制接口、按钮和LCD等输入输出接口集成在一颗芯片上的设计思想。SoPC Builder在硬件和软件上均为设计者提供较好的支持,NIOSⅡ IDE集成开发环境提供集成的网络协议栈和操作系统移植,使得软件开发更加便利。
(中国集群通信网 | 责任编辑:陈晓亮) |