微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM+GPRS的智能家居安防监控系统设计

基于ARM+GPRS的智能家居安防监控系统设计

时间:05-26 来源:互联网 点击:

入模块采集的数据,又要控制输出模块的相应处理,同时还得与远程监控中心进行数据交互,这就要求其具有较强的数据处理能力。基于此考虑,本系统选用了基于Samsllng公司的Cotex_A8内核的FS_S5PC100作为实验平台。考虑到市场的普及度与可靠性的要求,GPRS模块选用SIEMENS公司的TC35i/MC35,该模块内嵌强大的TCP/IP协议栈,低功耗,增强的AT控制指令。由于具体的硬件设计电路图比较繁杂,在此给出系统硬件实现框图,如图2所示。

3 系统软件设计

系统软件实现主要包括:S5PC100软件编程,监控页面的编程两大部分,在此只介绍S5PC100微控制器的软件编程部分。

3.1 系统移植与驱动设计思想

考虑到系统的稳定性和可靠性,在S5PC100上采用Linux嵌入式实时操作系统,与传统的实时操作系统(RTOS)相比,采用嵌入式Linux这样的开放源码的操作系统的另外一个好处是Linux开发团体看来会比RTOS的供应商更快地支持新的IP协议和其它协议。例如,用于Linux的设备驱动程序要比用于商业操作系统的设备驱动程序多,如网络接口卡(NIC)驱动程序以及并口和串口驱动程序。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

各种设备由于功能不同,驱动程序提供的函数接口也不相同,但Linux为能够统一管理,规定了Linux下设备驱动程序必须使用统一的接口函数file_operations。根据功能填充对应的file_operations中的接口函数。为便于开机启动,统一地将驱动程序静态编译到内核。

另外,涉及设备节点的创建,选择了udev机制来自动创建设备节点,具体步骤如下:

1)在一开始定义一个类class,再在类下面定义一个设备class_dev;2)xx_init()函数中,使用class_creat()和device_creat()创建设备节点;3)xx_exit()函数中,使用class_destory()卸载设备节点。其中,设备号的选择,通过查询内核中Documents/device.txt选用空闲的设备号,当然也可以用major=register_chrdev(0,"name",&file_operation)自动生成。

3.2 串口通信程序设计

系统的主要功能是实现家居环境参数的采集、上传和监控页面控制命令的下发,所以数据传输是整个应用程序的关键部分,即S5PC100与GPRS模块的串口通信程序的设计。

在定义与串口相关寄存器地址的基础上,以结构体构造新的串口数据类型,结构体成员为函数指针,它们指向编写的具体实现函数,而函数体中的数据直接操作串口寄存器,实现了串口驱动程序,实际上就是上面驱动程序思想,填充对应的file_operations中的接口函数,实现我们自己的驱动程序。以下是实现串口数据类型的主要源代码:

串口采用中断方式接收数据,提高了串口数据处理的实时性和整个CPU的工作效率。具体来说,S5PC100的串口1收到输入模块发送的家居环境参数,进行逻辑判断,结合输出模块处理后,传输到监控页面,实现数据的上传;S5PC100的串口1收到监控页面发送的指令后,调用相应的处理函数,把指令同步到各个模块,实现数据的下发。

3.3 Web服务器的搭建

为方便用户通过internet或GPRS网络接入互联网,远程监控家里情况,提供远程Web服务。本模块主要包括2个部分:

1)BOA服务器模块设计:在嵌入式系统中移植BOA服务器,提供Web服务;

2)cgi模块详细设计:根据监控页面上的不同按钮,发送不同信息给S5PC100,S5PC100调用相应的处理函数,执行网页按钮相应功能。

3.4 应用程序整体设计

在搭建好系统环境,成功移植硬件驱动后,在Ubuntul2.04上Linux2.6内核环境下进行程序的开发调试。系统中主要的进程,包括3个线程等待控制命令,在代码中采用轮询的形式来对线程状况进行检测,发生问题的时候进行相应得处理,用户可通过网络访问本系统并远程进行控制操作。调用了两个线程分别操作thief处理线程和fire处理线程。thief线程和fire线程分别调用GPRS模块和摄像头模块进行短消息的发送和图像的采集及保存。同时调用FS_S5PC100开发板自带的,蜂鸣器模块和LED模块实现报警,另外利用流水灯模拟灭火的操作。具体框架如图3所示。

输入模块和输出模块也是分别创建线程处理不同的任务,模块之间通信选用了消息队列,对于共享资源采用了互斥锁和条件变量,保证资源的共享和原子操作。

4 测试结果

整个系统在实验室环境下进行了测试,利用S5PC100开发板上自带的按键key1模拟外人闯入,按键key2模拟主人进入,温度的采集使用了LM75温度传感器采集,同时为便于调试我们同时也利用ADC来模拟温度变化。整个监控界面效果图如图4所示。

通过点击页面上的用户设置按钮,可以设置用户名、密码的修改及新用户的增加;手机短信号码的修

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top