基于PIC32的居室智能化平台的设计与实现
扫描二维码
随时随地手机看文章
摘要 系统以PIC32单片机作为核心控制器,植入TCP/IP通信协议和文件系统,通过WiFi模块和无线网络可实时访问存储在SD卡设备文件中的系统参数和传感数据,并能进行参数的配置和数据的管理,进而实现智能家居系统的远程监控、管理和控制。系统可通过个人电脑或手机进行访问,具有较好的人机交互功能,方便易用,功能可扩展性强,且设计运行成本低。
关键词 PIC32;智能家居;WiFi;信息管理;数据库
随着人们对智能居室系统要求的不断提高,智能化系统正向着传感节点多、数据量大、控制更加复杂的方向发展。针对具有复杂节点网络的系统来说,系统参数的配置和数据的管理显得尤为重要。通常情况下,系统会配合专用服务器及数据库实现远程控制和数据的管理。但对于小型的家居系统而言,整个系统的运行需使用专用的服务器来支撑,这通常是没必要的,由此不仅增加了系统的设计成本,还会使系统的运行成本大幅增加,造成资源的浪费。本文旨在通过架构基于PIC32微控制单元(Micro Control Unit,MCU)的嵌入式服务器来实现更加简洁实用的居室智能化系统。系统控制核心兼做数据服务处理器,大幅降低了系统的设计和运行成本,适合于中小型智能系统中的参数和数据的管理。另外,系统还可配合云端服务器进行使用,完成数据的同步等任务,更具有实际的设计价值。
1 系统组成与原理
系统核心微处理器采用Microchip公司的PIC32MX695F512L32位单片机,其内部资源丰富,具有图形接口、USB控制器、CAN模块、以太网接口、ADC模块等,最高工作主频可达80 MHz,适用于智能化系统中,不仅方便各种传感数据的采集,人机交互功能的实现,也具有一定的数据处理能力。WiFi模块选用的是该公司的 MRF24WGOMA,该模块可通过SPI接口与PIC32 MCU进行通信,通过该模块使系统接入无线网络,以达到通过网络对系统进行访问的目的。可视化动态Web交互界面主要采用 HTML,JavaScript,AjaX,jQHery和CSS网络前端设计语言来实现,并将相应Web服务端文件存储在SD卡中,核心处理器解析到网络页面或文件请求后,在SD卡中进行相应文件的查找,若文件存在,则对SD卡相应文件进行读取,并将文件数据返回,以呈现在客户端。若需要对系统进行配置或控制,则处理器通过解析相应的请求和参数,将相应的信息写入文件,或直接转化为对设备的控制信号。系统中数据的来源主要通过传感器模块进行采集,而控制器指的是居室系统中的各种受控设备的控制驱动电路。传感器和控制器根据不同的系统会做出不同的调整,本文仅选择单个节点用作测试。系统组成如图1所示。
2 硬件平台设计
2.1 WiFi模块
MRF24WGOMA是符合IEEE 802.11的低功耗2.4 GHz表面贴装模块,含有所有相关的RF元件——晶振、带集成MAC的旁路和无源偏置电路、基带、RF和功率放大器,以及支持AES和TKIP(WEP、 WPA和WPA2安全性)的内置硬件。支持802.11 b/g无线通信,最高传输速率可达54 Mbit·s-1。
模块采用从动SPI接口与微控制器连接,配合中断,休眠,复位控制接口,完成各项功能控制和数据传输,SPI接口的同步时钟频率最高可达25MHz,传输速率可达25 Mbit·s -1。典型的连接方式如图2所示。PIC32微控制器做主设备,MRF24WG0MA模块作为SPI从设备。因此SPI的同步频率有PIC32MCU控制产生。
为中断信号引脚,在WiFi模块接收到数据后,负责向主控制器发出中断处理信号以接收数据。HIBERNATE为冬眠控制引脚,主控制器可通过该引脚控制其工作模式,使其达到最佳节能效果。
MRF24WG0MA模块需要与Mierochip的TCP/IP软件协议栈配合使用。该软件协议栈集成有驱动程序,其实现的API在模块中用于命令和控制,以及管理和数据包通信。
2.2 SD卡模块
SD数据存贮卡可分为SD和SPI两种工作模式,SD模式是标准的默认模式,该模式下利用SD总线进行数据传输,位宽一般为4 bit,读写最高时钟可达50 MHz,读取速度能到达20 MByte·s-1以上,可充分发挥SD卡的性能。而SPI模式则是SD卡可选的第二种模式,该模式下利用SPI总线进行数据传输,位宽为1 bit,时钟最高只能到25 MHz,读取速度通常低于3 MByte·s-1,但该模式对硬件要求较低,可将设计花费减到最小。鉴于本次设计对SD卡的读写速率要求不高,并需要能较好地与WiFi模块通信带宽和数据的处理速度进行配合,采用SPI模式基本可满足设计要求,系统采用Miero SD Card作为数据存储器,器件引脚定义及典型SPI模式应用电路如图3所示。
3 系统软件设计
3.1 系统软件架构
系统软件部分,是在Microehip公司提供的TCP/IP协议栈和应用层Http协议基础上进行应用程序的设计与开发的。整个系统架构框图如图4所示,其中用户应用层的设计是本次设计的核心工作。
3.2 嵌入式服务器的设计
该平台下嵌入式服务器,主要是基于PC端浏览器和移动端APP进行设计的。因此,仅采用HTTP协议即可满足设计要求,HTTP协议是建立在TCP/IP 协议之上的应用层协议,客户端进行数据发送时会对报文进行格式化,因此只需在服务器端对报文格式进行解析,提取相应的控制信息和数据即可;返回数据时也需要将返回的内容格式化成HTTP协议报文格式,以便被客户机解析。TCP/IP连接建立过程和数据收发流程如图5所示。
首先服务器端需要进行系统初始化工作,包括打开套接字,绑定端口,建立侦听等,最后将状态转移到“接受连接请求”;TCP是面向连结的传输机制,客户端与其套接字建立连接前需要进行3次“握手”确认,才能通过建立连接的套接字进行数据的收发,数据格式均采用HTTP协议,在HTTP报文解析部分,通过编写的应用程序,将HTTP请求的参数和数据解析出来,根据实际应用将服务器端状态机进行转移,状态机主要包括通过外设获取信息,向I/O口发送控制信息,进入文件系统读取SD卡中的相应文件并将数据返回,或者将提交的数据信息写入文件或更新系统状态等。套接字连接一旦建立将会一直保持,除非客户端或服务器端主动请求断开,例如客户端直接关闭应用程序或服务器端长时间无数据请求自动断开。
3.3 数据管理软件的实现
数据管理软件部分是基于文件系统API进行设计的。文件系统提供的基础API主要包括open(),close();read(),write(),seek()等接口函数;而所需主要数据操作函数如表1所列。
数据存储文件选择普通的文本文件基本可满足要求,但考虑到数据的增删查改实际操作的需要,选择标签语言文件XML格式更便于应用程序的编写,另外当客户端进行数据加载时,通过MSXm12组件也能方便地直接加载数据。
考虑到人机交互的用户体验以及PIC32 MCU的数据处理能力,文中将众多运算处理放在了前端文件中,前端文件一旦首次加载成功,便可在客户机完成主要的人机交互操作,最终将处理后的数据通过部分提交的方式发送至服务器端,使用Ajax部分提交技术无需重载界面,提高微控制器的处理能力。另外,由于大部分人机交互的工作可放在前端通过 JavaScript脚本语言处理。因此,需提交的数据量也会大幅减小,PIC32的处理任务也会相应减少,资源利用率也有所提高,能使系统达到一个比较好的运行状态。
在表1所列出的关键函数中,file_read_line()按行读取文件内容,多用于检索数据。sys_config()实现的功能是更改指定标签后的设定值,主要用于进行系统参数配置。rc ad_config()用于读取配置信息,即读取指定标签后的设定值,多用于系统参数的实时显示和监控。modify_flag()用于修改固定格式数据条目中的指定数据,例如读取数据条目时,若该条目已被读取过,则修改条目中相应标记为已读取或修改为已被读取的次数。 rcad_next_schedule()按顺序或条件读取固定格式数据,其更多地用于管理具有时间标记的数据。
在智能居室系统多以时间为控制主线,很多数据都具有时间标记,通常需要根据时间节点进行数据操作,由于日期和时间数据的特殊性,在进行具有时间标记的数据条目的读写前,进行日期时间的计算是必须的,这在较多数据操作中均有体现。add_item()增加固定格式数据条目。del_line()按行删除数据,被调用时会先按照标记如索引ID号查找该条目,然后删除。clear_data()用于清除数据文件内容,因为用的是XML文件,所以实际进行数据清除操作时应保留文件头。run_log()用于记录系统运行日志,设备运行状态的变换都会被记录下来,这对于系统运行的监控和维护是非常必要的。通过以上基本的数据操作函数,可以完成对数据的增、删、查、改等操作,能够满足系统的设计要求。
4 系统测试
4.1 测试平台
测试平台采用Chipkit-WF32核心板与外围设备扩展板组成。Chipkit-WF32核心板集PIC32MX695F512L单片机、MRF24WG0MA WiFi模块和Micro SD卡接口于一体,配合设计的用于连接各类传感器、控制器和显示设备的外设扩展板构成居室智能化系统硬件平台。测试平台硬件实物如图6所示。
4.2 测试结果
通过系统配置的网络参数对系统平台进行登陆访问,系统参数配置以及通过传感器(温度)实时采集的信息实时更新到客户机前端,通过配置界面或者控制界面也可对系统的配置进行更改和外设模块的控制。另外实时数据也可以被记录到系统后台数据文件中,可单独或批量调出,方便查看。系统的所有配置,数据详情以及控制日志等数据均进行相应存储,并可进行基本的管理。图7为通过PC端IE浏览器访问系统的部分结果。
5 结束语
采用PIC32 MCU移植TCP/IP协议和FAT32文件系统,通过WiFi网络实现的居室智能化信息平台可方便实现居室智能化系统本地数据的管理及控制,也可通过网络将数据与云端同步,并实现远程控制。大幅降低了智能控制类家居系统的设计成本和运行成本,也在一定程度上提高了系统的易用性和易维护性。