基于Linux的ARM-嵌入式智能家居网络监控系统设计研究

2023-02-28 23:25柴晟陈良维林琳李明欣
中国新通信 2023年20期
关键词:智能家居嵌入式

柴晟 陈良维 林琳 李明欣

摘要:随着社会的发展与进步,人们的生活节奏在加快,对于安全诉求更高,如家里、工作场所等,建立适当的安全监控系统变得十分重要。在现有的智能监控系统中大多需要使用红外、烟雾等传感器,实施智能监控,会增加成本,降低系统效率。在此基础上,本文结合嵌入式技术的发展,研究基于Linux智能家居网络的嵌入式ARM监控系统的设计,以期可以为相关人员提供参考和帮助。

关键词:嵌入式;智能家居;网络监控系统

一、引言

随着信息技术和互联网技术的不断发展,家庭网络化和智能化的实现已成为研究热点,而具有用户界面、远程控制和智能控制的设备成为未来的趋势。在这种情况下,诸如ARM和PowerPC嵌入式互联网之类的32位微处理器的出现已经成为现实,集成控制器可以完全实现传统PC的互联网服务。但基于嵌入式系统的智能家居系统在中国刚刚起步。

二、嵌入式的发展現状

嵌入式系统的出现最初是基于单片机技术,并随着单片机技术的发展而逐渐升级。英特尔的第一款8048微控制器于1976年发布,这些早期的单片机的出现使包括汽车、工业机械、家用电器和通信在内的各种产品拥有更好的性能,也为当时的工业发展作出贡献。随着生产水平的提高,接口、存储器和串行接口等各种组件可以集成在一个芯片上。英特尔开发的基于8084的8051微控制器是最成功的。到目前为止,51系列微控制器仍广泛应用于生活中。随着I/O设计微处理器的出现,它们立即成为嵌入式设备领域的新星。这一时期已知的操作系统包括VRTX、PSOS、VXWorks等,这些系统的特点已经与现代嵌入式系统非常相似,响应时间快,内核小,内核配置能力强。与之前的系统相比,这些系统的可靠性也大大提高,这鼓励了嵌入式系统的发展,并扩展了其应用领域。自21世纪初以来,经过多年的发展,世界上出现Palmos、VXWorks、WindowsCE等许多流行的嵌入式操作系统。然而,这些系统是商业化的、昂贵的,并且源代码不开放,这导致了后期系统和应用程序迁移的困难等问题。目前,Linux作为一种免费的嵌入式开源操作系统,具有世界级的规格、易用性、强大的网络性能等诸多优势,被认为是最有前途的嵌入式操作系统[1]。

三、嵌入式系统具备的主要特点

嵌入式系统一般应用于特定的环境,相对于普通计算机系统更具多样性和繁杂性,具体特点如下:

其一,具备系统内核相对较小的特点。相比于传统操作系统的内核,嵌入式系统相对要小很多,大部分嵌入式内核仅有几K至几十K左右的系统内核。以ENEA公司为例,其OSE分布式系统仅有5KB的内核。嵌入式内核同样能够结合实际需求完成扩展与裁剪,因内核相对而言偏小,为此在进行扩展与裁剪时也相对较为便捷。

其二,具备专用性相对较强的特点。因嵌入式系统存在良好的扩展性与可裁剪性,所以能够结合特定功能需求完成个性化定制系统任务。除此之外,如果硬件部分发生变化,需要对相应的软件部分进行有效修改。因此,在确定硬件和软件后,系统的功能也会被限制,从而具备相对较强的专用性特点。

其三,具备系统相对较为精简的特点。由于嵌入式设备存在专业性较强、硬件资源较为有限的特点,所以系统占据的资源也不会太多。同时,系统具备高效与小巧的特点,所以其简单性越高,可靠性同样会更高。

其四,具备多任务的操作系统特点。相比于简单的51单片机仅能处理一些简单的任务,嵌入式系统能够同时完成多项任务的运行,还可以对不同任务合理地分配系统资源,从而确保其更加安全稳固地运行。

其五,具备可靠性相对较强的特点。嵌入式设备通常应用于周边环境恶劣、偏远或者无人值守的区域,因此,对嵌入式系统开发的软件代码有着质量较高、可靠性较高的要求。其中,VxWorks就因具备较强的实时性与可靠性,在航空领域与军事领域等精尖领域被广泛应用。

其六,具有专属的开发环境与工具。在开发嵌入式系统时,需要使用专业的开发工具和环境。由于嵌入式系统无法自主开发,如果想修改其内部功能程序,就需要具备相应的开发环境和工具,通常使用信号发生器、逻辑分析仪、示波器以及计算机软硬件系统等设备。由于开发和开发是在不同的设备上进行,因此出现了目标机和主机的概念,开发是在主机上进行,执行则是在目标机上完成。

四、基于Linux的ARM-嵌入式智能家居网络监控开发系统的相关技术

(一)微处理器

三星公司研发的ARM微处理器是S3C2440,其内核是ARM920T,使哈弗高速缓冲结构、AMBA BUS以及MMU得以实现,并且外设接口非常充沛,拥有130个多功能输出/输入口、24外部中断和60个中断源,还有APB总线与AHB总线,并支持USB与SPI主从设备、rS总线、FC总线、DMA控制以及NAND Flash启动等。

(二)外围电路

该系统的外围电路包括了用于TCP/IP通信的DM9000、温度检测与采集的DS18B20数字温度传感器、室内安全监测的DYP-ME003红外感应器以及用于模拟窗帘状态的步进电机。

(三)操作系统

Linux是一种类似于Unix的操作系统,被广泛运用于嵌入式系统。目前,大多数嵌入式系统选择使用Linux,主要有原因有四点:其一,能够提供对许多硬件驱动设备和各类嵌入式芯片驱动的支持;其二,具备完备的SDK开发包和开发工具以及丰富的软件资源,同时还提供开放的源代码,可以根据需求进行自由修改;其三,能够支持多种CPU类型和体系结构;其四,具有稳定的系统性能,可以裁减内核以适应不同的任务需求,并提供全面的系统支持。

(四)Web服务器

随着互联网应用的普及,Web作为一种访问方式也被广泛应用于嵌入式设备的交互中。通过在嵌入式设备上运行Web服务器,用户端可以使用Web浏览器来监控和管理嵌入式设备。BOA是一种单任务的Web服务器,它按顺序处理用户请求,但通过对CGI的支持,可以创建新的进程来执行相应的任务。

五、基于Linux的ARM-嵌入式智能家居网络系统设计

(一)图像采集设计

该系统使用内核编译方法。在加载OV511相机驱动程序内核后,系统只需要编写一个视频录制程序即可识别和操作相机。视频捕获软件是在Linux内核上使用Video4Linux开发的。Video4Linux是一个为编写视频设备应用程序提供许多接口功能的Linux视频设备驱动程序。在录制视频时,程序首先使用open()函数打开视频录制设备,并返回指示录制设备硬件的文件描述符。成功打开设备文件后,调用ioctl()从设备文件中获取适当的信息,并将接收到的信息粘贴到视频函数的结构中。

(二)远程监控系统设计

视频监控模块采用浏览器服务器模式。在拍摄结束后,该模块会创建并安装网络服务器,将视频服务器摄像头上传到网络服务器,然后由视频服务器上传视频。在客户端上,它使用Java小程序来接收消息。该模块的功能包括嵌入式网络摄像头的设计和视频服务器的迁移。摄像头拍摄的图像必须通过网络发送给另一方,并在浏览器中显示,并且这一过程在视频服务上执行。视频服务器的主要任务是與客户端进行通信,并根据客户端的指令调用适当的功能,以支持客户端的管理需求。网络摄像头是一款通用的视频服务器软件,与系统中使用的OV511摄像机完美配合,它基于GNU架构,并且Linux的服务器版本是完全免费且开源的。该项目使用了网络摄像头服务器0.50.tar.gz版本。在交叉编译环境中修改makefile文件,并使用make命令进行编译,然后将视频服务器迁移到设备上,并将生成的相机固件下载到开发CD上的Linux/bin目录中[2]。

(三)电器控制系统设计

无线通信可以为家用电器的控制提供极大的灵活性和范围,同时节省了布线的成本和精力。但是,其缺点是需要一个住宅网关、一个无线路由器以及合适的接收器,这将增加成本。因此,本文考察的家电控制采用了I/O控制,以兼顾实用性和普及性。该方案利用已安装系统的I/O端口来控制家用电器的功耗,通过监测S3C2400的I/O端口输出信号的高电平和低电平并使用LED指示器,来控制和显示家用电器的运行状态(开启或关闭)。大多数带有受控模块的家用电器使用220V交流电源和大电流电路,因此需要使用继电器来控制设备。在芯片和继电器之间添加一个驱动电路,可以通过光电通信开关或三极管来控制继电器的开关状态。当I/O端口处于低功率电平时,三极管处于饱和状态并关闭;当向继电器线圈施加+5V电压时,继电器关闭,状态LED亮起。通常情况下,继电器触点闭合,相当于闭合开关。

(四)电路设计

1.晶体发生器的设计。

用于APB正常操作的PCLK时钟生成各种外部设备所需的不同的时钟信号,例如GPIO、ADC、RTC、WDT、IIC、USB设备、SD卡接口、5个定时器、4个PWM、3个UART、2个SPI等。

2.USB适配器设计。

在系统构建过程中,有必要使用串行接口来调试终端。然而,大多数笔记本电脑不再有串行端口,只有USB端口。为了便于开发阶段,可以直接连接计算机的USB接口进行本地调试。该芯片只需要几个合适的外部电容器,就能够在RS232和USB信号之间进行转换,这有助于在各种设备中使用。并且,该芯片能够在没有软件控制的情况下自动执行整个过程。

(五)储存器设计

同步动态存储器具有可选SDRAM访问功能,作为已安装系统操作内存的一部分,它为已安装操作系统的顺利运行提供存储空间。S3C2440A有27条地址线,理论上可以寻址128M的空间。S3C2440A可以通过8128M内存线(根据ngcs0-ngcs7)达到1G/8内存。SDRAM芯片选择信号连接到ngcs6S3C2440连接器,因此,SDRAM地址从0x300000开始。

系统中使用的SDRAM芯片型号为K4S561632C-TC75,其主要功能是使用标准的3.3V电源,由四个独立的组件组成,并支持TTL级别的兼容多路复用地址的自动更新。K4S561632C-TC75具有16位数据位宽,而S32440CPU使用32位总线。为了提高内存访问速度、读写速度、内存效率和防止数据连接丢失,系统使用两个32M内存芯片数据连接扩展到32M,并创建64M的SDRAM范围[3]。

(六)远程访问端模块的有效设计

用户可以通过计算机浏览器访问嵌入式设备上搭建的嵌入式Web服务器来实时监测室内传感器获取的数据,并通过数据交换和网络通信来操控室内家电状态。在登录后进入管理界面,用户可以在界面模块中完成各个子系统的操作。温度监测界面的子系统可以显示家电的运行状态,并且可以在操作界面进行设置。此外,灯光管理界面可以操控和显示各个房间的灯管状态。各模块可以通过指令操作、CGI传输数据和核心接口来保存和操控家电数据。

(七)温度监测模块软件的有效设计

此模块可以将温度传感器设置于各个房间,以检测温度情况,温度的采集可借助温度传感器“DS18B20”来完成。当温度没有触发报警,采集任务将每10s完成一次;当温度达到报警值时,采集任务将每5秒执行一次,并触发蜂鸣器和灯光进行报警;当温度达到危险值时,CGI会将采集到的数据传送到Web浏览器中,并实时显示。同时,通过Web界面的操作可以在服务器端发送指令,执行与温度相关的任务。

(八)红外监测模块软件的有效设计

此模块利用DYP-ME003硬件实现功能。启动服务器时会自动加载驱动,并通过Web浏览器定时读取红外监测数据,实现对各房间状态的实时观察。当侦测到目标后,LED报警和报警蜂鸣器会立即触发报警。

(九)灯光控制模块软件的有效设计

此模块可以通过对灯光模块的控制来响应Internet网络控制指令实现对家中照明设备的开关控制。对照明系统的模拟通过板上LED灯来完成,并通过在“project-web-data”目录下创建一个“led data.txt”文件来实时保存LED灯的状态。每次对LED灯进行操作时,该文档都会实时更新数据。

(十)窗帘控制模块软件的有效设计

此模块利用步进电机并使用CGI语言传输控制指令,来实现对窗帘的控制。可以在“project-web-data”目录下创建一个“curtaindata.txt”文档,实现对窗帘数据的保存和更新。同时,可以在浏览器Web上显示该文档,以便实时操控窗帘的开合状态。

六、结束语

总而言之,该系统使用嵌入式Linux作为开发平台,有助于系统的开发、测试、改进和增强,并提高系统的稳定性和可靠性。通过网络服务器和GPRS无线传输上网,能够实现智能家居监控系统,满足家庭的需求。

作者单位:柴晟 陈良维 林琳 李明欣 成都航空职业技术学院

参  考  文  献

[1]王文强,李利,陈宇,等.基于ARM-A9和ZigBee技术的智能家居系统设计概述[J].科学与信息化,2021(2):17-17.

[2]郭诗霖,江业峰,侯俊博,等.基于Linux与ARM架构的嵌入式智能家居系统[J].软件,2022,43(5):125-127.

[3]陈城,孙峰,曲金秋,等.基于嵌入式Linux的水位视频在线监测系统设计[J].水利信息化,2021(3):41-44.

猜你喜欢
智能家居嵌入式
基于PLC的智能家居控制系统研究
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式系统通信技术的应用
搭建基于Qt的嵌入式开发平台
智能家居发展或将实现弯道超车
嵌入式软PLC在电镀生产流程控制系统中的应用
关于智能家居真正需求的探讨
智能家居的发展趋势分析
智能家居更贴心
Altera加入嵌入式视觉联盟