APP下载

基于ARM Cortex-A9的智能安防系统设计

2021-06-05王益艳李国席

四川文理学院学报 2021年2期
关键词:用户端开发板客户端

王益艳, 李国席, 杨 雷

(四川文理学院 智能制造学院,四川 达州 635000)

0 引 言

伴随着微型计算机技术、光电技术、图像视频处置等技术的不断创新和发展,传统意义上的安防防护体系也渐渐地由简易防护转换为数字网络化、人工智能化方向发展.[1-2]这类智能化防护体系是指在不需要任何报酬回馈与人为干涉的条件下,防护体系能经由电子设备的APP来远距离监测监控中画面,并通过诸多的传感模块进行室内外的检测、分析和辨认,在有异常时能实时作出远程报警,[3-4]以及时的远程通信来确保人们生活环境的安全性.

家居安防的智能化应用,使得物联网安防体系从往日的平安防护体系走向了人工智能综合化管理体系做出了改变.此刻的安防项目涵盖浩繁的范围,好比社区、路口、街道、楼宇修建、机动车辆、物体监测等.物联网监控体系首要是经过无线远程监控、实时数据监测等数据对周边环境实时全方位的防护,随着人们对自身安全提防的同时,应急指挥体系、交通办理体系、智能物联等浩繁体系应用发展也逐步上升,给人们的安然舒适的环境带来了便利.经由大规模数据处理技术和数据存储的技术,把汇集到的信息联动起来,可对监测环境进行智能化分析处理,并将结果报告进行实时反馈预警,以确保防患于未然.

本文基于ARM Cortex-A9开发板设计了一款智能安防系统,其实现功能包括摄像头模块的实时环境查看,ZigBee(Cortex-M0)模块的设备(Led、Fan、Buzzer)控制和室内安全环境(温度、湿度、光照度)的实时监测,并利用实时监测的数据来进行判定并自动触发M0模块设备、GSM(短信提示)功能的报警等.该系统主要包括两个子系统:一是服务器的数据处理,负责在后端处理一些数据例如(摄像头,M0模块,LCD模块,GSM模块,登录处理)每个子模块单独处理;二是客户端界面化处理,让后端的数据处理得到显示,从后端到数据接收呈现为应用状态;最后当服务器和客户端部署就绪后,设定了一定的报警限制,当数值达到所设定的值后会让蜂鸣器发出响声起到预防报警作用.该系统可用于提升家庭舒适度和安全报警,小区安防,仓库安全质量监控等场合.

1 智能安全防护系统设计思路

1.1 设计要求

本文设计的是实现远程智能安全防护系统,可通过远程QT用户端登录来查看家居环境,以及利用温湿度、光照度传感器来进行安全防护的实时监测和判断,其设计要求如下:

(1)建立QT用户端与服务处理终端之间的通信.

(2)经由过程服务处理终端来处置装备的写节制、读取装备数据并举行收集,然后期待QT用户端发送数据约定命令.

(3)QT用户端发送设备控制命令,来控制服务处理终端开启和关闭设备,并即时反馈QT用户端所需数据来进行界面显示.

(4)QT用户端可以实时更新此刻的时间并显示于界面.

(5)当QT用户端完成服务处理终端的注册并登录成功后,服务处理终端进行家居安全环境的实时监测,当发生异常则进行Buzzer或灯光报警,并每十秒钟通过GSM向用户手机发送家居异常提示短信,以达到防患于未然的作用.

1.2 智能安全防护系统框图

图1中总体描述了服务处理终端的外接模块,以及与QT用户端的连接方式.当PC处理终端准备好跑起开发板的必要条件后,QT用户端便可以通过IP地址连接到开发板,从而控制开发板的外设设备,从而实现预先设定的各种功能.

图1 智能安全防护系统框图

1.3 Cortex-A9开发板模块

本次设计所用的开发板是一款拥有了强大性能的开发平台,[5]采用“核心层板+外部底层板”的结构组成,比整块板结构更适用于产品的开发和应用,并且运用了SamSung的Exynos-4412处理芯片来作为首要的处理器.此块芯片又称为Exynos-4-Quad,它采取了SamSung的32nm-HKMG的建造工艺,是首款由SamSung出产的带有四核处理功能的器件,它的运行频率在正常工作时平均可达到1.6GHz,本块芯片的内部更是集成了四块高性能的图形引擎,可撑持3D画面的图形顺畅的收发,并且支持播放高清视频等优势.[6]

本次设计所用的开发板的启动方式共有4种,[7]包括Nand-Flash内设闪存的启动、SD卡/MMC存储设备的启动、EMMC可擦除存储设备的启动、外部驱动设备USB启动这四种方式.至于用户选择需要从哪一种启动方式来跑起开发板,则是由IROM中的一段配置程序逐步的去检查OM_STAT寄存器的内部配置来启动运行.而本次设计所用的开发板的大致启动流程可参照图2所示:

图2 开发板启动流程图

图2所呈现的是Exynos-4412上电复位时的启动流程,其启动过程如下描述:

(1)开发板经过上电启动复位之后,便启动生产商集成在芯片里面的只读存储器中的默许配置程序,这一段的功能是去初始化芯片内外设的基本体系配置.好比去配置初始化的内部堆栈、内部时钟、开发板的启动模式等等.

(2)只读存储器中的程序会根据不同的时间阶段来获取此刻的的开启模式 ,并把存储空间中的文件拷贝到芯片内部静态随机存储器中去.存储空间中的文件可用来设置系统时钟的初始化任务、以及内存控制器的一些时序设置.做完这些工作后再把ios镜像文件拷贝到内存中,然后跳转到ios镜像文件中去执行.

(3)静态随机存储器只有256KB大小的存储空间,但是我们的镜像文件基本上都是大于这个存储数值的.因此我们存储空间中的文件所拷贝的内容仅仅只是iso镜像文件中的一部分内容,我们不仅需要我们配置的uboot镜像文件等内部文件,还需要我们完整的拷贝到所用到的物理内存中去,而且还需要设置好基本的硬件外设配置.这之后再经由我们的Uboot镜像文件在内存中去运行启动,从而完成ios镜像文件的拷贝和启动程序的引导.

(4)EMMC存储设备是由M M C协会所设定的一套协议标准.这套协议的主要应用范围在一些物联网产品、平板电脑、手机等消耗电子产品上,类比于其他类型的存储介质,它有布线简略、集成度高、复杂度低等优势,更大地提高了数据读写的效率.

1.4 Cortex-M0模块

Cortex-M0是基于单总线接口模式形成.[7]它使用了32位RISC精简指令集,该指令集又被称为Thumb半字节指令集.在新的ARM-v6指令架构新增加了一些指令,在此基础上更新了EThumb-2指令集的部分指令.它在自身优势的基础上另外扩展了一些应用,这种应用可以让同类型的CPU在所有的运行的状态下执行该设备相应的操作.Cortex-M0外接模型图和通信协议数据包图分别如图3和图4所示.本次设计主要应用温度传感器、湿度传感器及光照度传感器三种.

图3 Cortex-M0外接模型图

图4 M0通信协议数据包图

图4中,上面代表Cortex-M0芯片报文数据接收状态位,包括温度、湿度、光照度、ADC模拟信号采集等模式;下面则是控制模块中硬件设备需要设定的信号报文数据位,包括LED(ON/OFF)、FAN(ON/OFF)、BUZZER(ON/OFF)等硬件设备的控制.

当需要设备获取数据时,需要将对应的报文数据控制位写入芯片控制位中,此时便可通过读写对应为来进行所需数据的采集保存;而当需要控制设备时,同样需要将对应的报文数据控制位写入芯片控制位中,这样便可以实现对硬件设备的操作控制.

1.5 GSM短信报警模块

GSM短信模块是将射频芯片、基带处理器和内部存储器以及大量的功放电路等模块集成在了一块电路板上面.它自己独立的拥有比较强大的功能,当中就包括GSM射频模块、基带处理模块等,并能提供标准功能型模块的接口,从而可以实现短信信的收发、手机通话、数据包的协议传输等应用型功能.根据其协议所提供的数据传输速率,可以大致分为GPRS模块、EPRS模块和纯短信发送模块等,本次所涉及的模块正是GPRS,它的数据访问速度能够达到9.6kbps/s.GSM模块可分为文本与PDU编码模式这两种来实现信息的实时收发,这两种模式的工作流程与区别可参考文献.[8]

2 软件开发环境和设计流程图

本次设计采用了对开发板进行Linux下编程的移植,以及Sqlite_3数据库的移植所实现的服务器设备终端.[9]在移植之前,需要准备好需要Linux系统移植的必要安装包和移植参考手册,按照参考手册步骤执行移植前的PC机上交叉编译环境搭建;然后通过putty终端设置串口波特率来连接PC机与开发板,并使得板子和PC机在同一网段内,再通过IP地址访问并连接我们的开发板服务终端,然后通过TFTP协议去下载并获取开发板uboot、Image等必需的启动文件,待下载后自行启动文件成功至MMU时,然后通过启动运行去访问系统执行的起始物理地址并运行开发板,那么到此则实现了Linux系统下在ARM Cortex-A9的移植,并跑起开发板上的Linux系统;紧接着我们按照参考文件实现Sqlite_3数据库移植环境的搭建并编译生成我们移植所需要的文件,然后将所生成的文件下载到开发板,此时再重新启动开发板,这样便完成了软件开发环境的大致搭建;待再次运行开发板时,系统会通过BootLoader启动物理地址去进行获取PC机上的必要运行文件,成功实现环境的搭建.

图5 服务处理终端程序流程图

图6 QT用户端程序流程图

由服务处理终端与QT用户端流程图可知,整个系统的执行是以考虑到实现用户家居室内远程智能安防进行设计,故所有设计均以用户为主,故此实现了系统的远程监测和智能防护,以确保用户对家居环境安全的感知;其具体运行实现如下:

首先,打开QT用户端,在初次使用时,需要进行用户对系统的注册,此时输入注册的账号和注册密码并进行注册,随后服务处理终端端将会监测QT用户端发送的数据来判断用户是否已经完成注册,若用户已完成注册,则弹出对话框提醒用户已经完成了注册,否则需要提醒注册成功与否;接着,所注册的账号进行登录运行,随即服务处理终端会再次对用户登录进行监测,即监测是否账户已经存在或者密码是否正确,若不正确则提示用户界面账户名或密码错误,否则就从登录界面跳转至系统用户界面;在系统用户界面中,可以选择打开Camera摄像头来进行家居环境的实时查看,接着可以通过摄像头对各种设备开关状态进行远程查看;此时若光照度太低可开启灯光照明模块,若温、湿度过高,可以打开风扇扇热或通风,并可以实时获取服务处理终端传达的家居环境实时监测,以确保室内环境的安全预测.若监测正常,则服务处理终端继续进行当前的监测;当服务端传感器监测到家居系统处于服务处理终端约定所达到的危险状态,则服务处理终端启动GSM短信报警模块,每10S(可更改)进行报警提示,此时设备也进行开启报警状态(伴随灯光、声源报警等)来提醒用户此时家中危险的环境状态,而用户可以根据远程监控查看当前引起的安全因素,从而采取必要的措施进行防护家居安全,这边是当系统异常时做出的反应.若系统正常,则服务处理终端处于运转监测等待状态,随时等待用户进行远程连接;若系统不正常,则服务处理终端随时处于查询等待状态,等待用户进行设备查看.

3 功能测试与分析

为了有一个方便的管理界面,经过多次筛选以及在考虑综合的情况下,本设计选用QT作为客户端来显示,将程序图形化更容易让客户接收,以及更容易在市场上流通,本次客户端的设计是采用QT Creator.[10]QT Creator拥有非常多的功能,其拥有IDE这个开发环境.也被叫做是C++图形开发工具.支持的操作系统非常多例如(windows、Linux、Mac OS、安卓、苹果、嵌入式等系统),多系统地支持就方便开发人员,可以做到一次开发,多处使用的好处,QT内置的库文件更是强大,比如我们这次设计中用到的数据库以及Socket等.应用也方便,提供了一个查询帮助功能,有不懂的就可以在上面help;还提供调试输出语句,不仅能看到窗口的输出,还能看到你在上面操作的后端输出程序,这样就方便调试的时候快速定位错误在那个部分,而不用在每行去看源代码.运行数度算中等.可以说是一个图形开发上手很快的软件.本次设计的登陆注册界面如图7所示.

图7 客户端登陆界面

QT采用的是信号槽机制,由两部分构成,其一是信号,其二是槽函数;QT拥有自己的一套可手动可自动的图形布局,而且widget.ui这个界面文件可以非常灵活的布局,利用这个布局文件可以直接与对应的槽函数创建以及连接起来.

客户端处理流程:

(1)首先通过widget.ui我们自己自动布局初一个窗口大致图形.

(2)然后在widget.h这个文件中,将这两个文件需要用到的函数以及所涉及到的包,需要使用的变量(公有和私有)全部按照合适的区域定义好;例如(在登录和注册时与服务器之间的通讯消息,就是通过在头文件中定义的全局结构体以及后续的消息传递就是一个私有的buffer).

(3)设置TCP连接;我们需要用这个函数new QTcpSocket(this);声明定义出一个连接通道所用的句柄tcpclient,并且将服务器主机的IP以及本次设计中服务器暴露出来的端口号与之绑定;在利用这个句柄的犯法connectToHost将我们的数主机的地址和端口给帮定到这个句柄上,如("192.168.0.108",9999).

(4)对界面上的登录和注册两个按钮分别涉及槽函数以及信号

当我们在界面上点击注册按钮的时候,底层的代码会按照事先设置好的信号槽函数connect连接信号,on_regist_clicked槽函数在这个函数中会将你输入的账号和密码获取到后台,先进行一定的错误处理,并且通过与之前建立服务器连接的管道将数据发送给服务器让服务器做出相应的处理,然后通过服务器返回值判断数据的处理结果,并给出一定的提示;例如QMessageBox类的warning 属性,给出提示性语句.

当点击登录的时候会做出同样的操作,唯一不同就是在服务器处理的结果不同,还有就是发送给服务器的标志位不同.同样根据返回的值来做出相应的处理,服务器返回登陆成功后在客户端会有一个界面跳转的过程;并且在输入的时候作了掩码处理,不管是在登录还是在注册过后都会将输入框中的内容清除;

(5)当登录成功后会触发界面跳转的函数执行对应的文件dialog.cpp,这个文件的显示文件为dialog.ui用于显示用户操作和数据显示,不过在这个界面的设计中不是采用的自动布局,而是采用的手动布局,这两种布局方式各有优缺点,采用手动布局需要先进行窗口的布局调整,以及背景图片的处理.自动布局就只需要在模拟的界面上选择对应的标签就可以在界面自动生成,并且生成的效果就是按照布局的效果生成的,不但在前端生成界面,也会在后端生成相应的数据处理函数,且自动关联到对应的触发函数.

图8 客户端处理流程图

QT集成了强大的库,有许多API接口调用,例如setWindowTitle("智能家居");就会给出窗口的名字以及背景图片.在界面上显示时间是利用QT的QTimer库所提供的API,利用这个API将做一个定时服务,就是每隔1秒向界面发送一个信号;在我们客户端界面上的时间显示就是我们自己定义的信号函数.最后我们在每个子模块的区域内将自己的私有变量给定义好,将需要的模块功能的信号定义好以便于用来控制每个模块在服务器的触发方式,以及怎么控制每个模块的启动和停止,与服务器协商好数据的传输格式和代表意思.在这个界面主要的工作就是将其布局好后等待数据的收发以及数据的显示.其用户控制界面和显示的布局效果如图9客户端应用控制界面所示:

图9 客户端应用控制界面

结 语

本文基于ARM Cortex-A9开发板设计了一款智能安防系统,在远程模式下,QT用户端通过获取IP地址进行QT用户端的连接,从而通过远程查看和控制硬件设备,以及传感器对环境的实时监测来进行居住安全性能的防范和报警系统的实时睡眠等待,从而达到了远程环境的查看,智能化监测与提示信息的实时发送.该系统可用于提升家庭舒适度和安全报警,小区安防,仓库安全质量监控等场合.

猜你喜欢

用户端开发板客户端
Android用户端东北地区秸秆焚烧点监测系统开发与应用
基于STM32H7的FDCAN通信系统设计与实现∗
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析
一种太阳能户外自动花架电气系统简介
浅析单片机开发板的设计与制作