基于CAN总线的智能家居控制软件系统的设计*
2020-08-13朱山川
朱山川
(安徽省滁州职业技术学院机电工程系 安徽滁州 239000)
随着中国经济和科技的进步,居民对家居环境的安全性、便利性、舒适性和智能化要求也日益提升,这为建筑智能化技术的发展提供了市场基础[1]。文章对一款智能家居控制系统的软件部分进行了设计,所设计系统基于CAN总线进行数据通信,由于CAN总线数据结构简单、性价比较高,因此智能家居控制系统的快速性、稳定性等性能良好,同时降低了智能家居控制系统的成本。
1控制系统结构设计
该系统设计时以数字信号处理器dsPIC30F6014a为主控制器,以此芯片为核心配合电源电路、输入输出电路等实现主要控制功能;以MCP2551芯片为CAN总线收发器,建立CAN总线通信通道,建立系统内部控制网络系统;设计主控制器与PC机相连实现内部网络与Internet或局域网等外部网络的连接;以西门子TC35i模块为GSM模块,实现与手机等移动端的连接。系统结构如图1所示。
图1 控制系统结构示意图
2软件部分功能设计
智能家居系统的软件设计包括:构建嵌入式系统开发环境、构建网关嵌入式系统、网关内部程序设计、底层传感器网络中各节点程序设计[2]。该系统的软件设计部分中完成对因温度控制、湿度控制、光线控制等设置的各个节点的通信、与上位机连接与信号的转换,与手机移动端互通信息等功能是软件功能设计的重要组成部分。以下主要以完成这些功能的软件模块为例说明该系统的软件系统的设计工作。
2.1CAN总线通信模块软件设计
CAN总线是一种很有前途的现场总线,CAN总线通信相对于一般的串行通信总线,它的实时性、可靠性和灵活性的特点更加突出[3]。该系统所设计CAN通信模块软件设计主要由3个部分构成,分别是CAN模块初始化程序、发送程序和接收程序。以CAN模块初始化程序为例,初始化程序流程如图2所示。
图2 CAN总线初始化流程图
2.2 GSM短信模块软件设计
该系统中所设计的GSM模块采用Siemens公司TC35i型号GSM模块,TC35i具有高度集成型,并有传输速度快、安 全性 好、可靠性高的特点,可以传输数据信号、语音信号、短消息和传真等信息[4]。该设计主要利用的是该模块的文字信息传送功能,通过AT命令实现无线双向传送,在控制系统和用户之间实现工作状态信息的双向反馈,系统可通过TC35i模块向用户移动端发送工作状态信息,用户也可以通过该模块向系统发送工作状态查询信息。
相关程序主要完成对模块的初始化、发送信息、信息未读提醒、删除信息4个部分的功能。程序设计流程图如图3所示。
图3 GSM模块短信控制软件流程图
2.3 CAN-RS232转换接口程序设计
该系统设计时利用CAN-RS232接口卡实现智能家居控制系统内部底层控制网络数据与Intranet或Internet的连接,具体实现是将CAN总线数据通过转换接口传递给上位机,上位机在此时扮演网关的角色,实现与互联网或者局域网的相连。因此,针对CAN-RS232接口处进行软件设计,实现上位机和底层CAN通信网络之间的数据通信,软件设计流程图如图4所示。
图4 CAN-RS232接口软件设计流程图
其中系统中CAN-RS232转换接口采用中断方式接收数据的方式进行接收。接收中断函数软件设计流程图5所示。
图5 RS232和CAN总线接收中断模块软件设计流程图
2.4 LCD显示屏软件设计
设计中采用PIC18F242 LCD控制器完成LCD显示部分的硬件设计,采用主控制器上的SPI接口实现通信。SPI接口主要用于AD转换器、EEPRMO、FLASH、实时时钟等[5]。设计时利用SPI模块中的移位寄存器和存储缓冲器完成数据的存储和转移,该控制器在主控模式时可作为时钟输出,在从动模式下,可作为时钟输入。LCD显示屏相关代码如下:
void LCD_Display_Setup( void )
{
LATGbits.LATG9 = 1;
TRISGbits.TRISG9 = 0;
SPI2CON = 0x003c;
SPI2STAT = 0x8000;
}
void LCD_Display_ClrCol( unsigned char x )
{
unsigned char counter;
counter = 32;
while( counter> 0 ){
LCD_Display_Byte( 0xd9 );
LCD_Display_Byte( x );
LCD_Display_Byte( counter-- );
} }
void LCD_Display_Pixel( unsigned char x,unsigned char y )
{
实际上,早在2014年,顺丰就成立了冷运事业部。据顺丰控股2017年年报,2017年顺丰的冷运网络覆盖104个城市及周边区域,其中有51座食品冷库、108条食品运输干线,3座医药贯通东北、华北、华东、华南、华中核心城市。但这并不足以在竞争对手众多的当下中国市场,使顺丰能够掌握有足够分量的话语权,而成立新夏辉,则是一个不错的点子。
LCD_Display_Byte( 0xd8 );
LCD_Display_Byte( x );
LCD_Display_Byte( y );
}
void LCD_Display_Byte ( unsigned char value )
{
unsigned int junk;
LATGbits.LATG9 = 1;
LATGbits.LATG9 = 0;
junk = SPI2BUF;
SPI2BUF = value;
while( !SPI2STATbits.SPIRBF );
}
void LCD_Display_array( int *array_ptr[] )
{
unsigned char j,k;
for ( k=0; k<122; k++ )
{
j = ( unsigned char )array_ptr[k]/8;
LCD_Display_ClrCol( k );
LCD_Display_Pixel( k,j );
}
}
3控制系统软件平台应用
智能化家居网络系统结合了计算机技术、通信技术、控制理论技术,采用了先进的管理软件,对整个家居的信息通信、安全规范、报警集中于一个平台上进行管理[6]。该系统所设计软件平台采用Microsoft Visual C#完成相关界面功能编写,软件系统安装完成后,用户和管理人员可通过软件系统登录完成相关操作,用户输入用户名和密码后进行登录。登陆界面如图6所示。
登录系统后,通过软件对家居系统进行监控和管理。以家电控制为例,界面如图6所示,用户可以在家电控制界面对灯具、空调灯家居设备下达控制命令,又例如对于窗帘控制,用户可以远程对窗帘进行手动或自动方式控制。
图6 智能家居控制系统软件控制界面
4结语
文章所研究的智能家居控制系统的软件设计,充分结合了数字信号处理器的控制功能,特别是CAN模块灵活、可靠性高且通信速率高的优势。通过现场 CAN 总线网络通信技术将各个模块组成一个家庭范围的局域网,每个模块将上位机的信息传输到家电或设备终端,并及时将反馈信息发送到上位机[7]。通过实验表明,该系统通信实现简单方便,可以实现对智能家居系统的节点控制、无线通信、上位机控制等功能,结合Internet或者局域网技术,可以在任何时间、任何地点方便浏览家居产品的实时工作状态。随着人们对家居生活舒适性要求的日渐提高,智能家居控制系统将具有较好的应用价值。