GPRS安防系统详细设计.docx
- 文档编号:7161347
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:109
- 大小:451.79KB
GPRS安防系统详细设计.docx
《GPRS安防系统详细设计.docx》由会员分享,可在线阅读,更多相关《GPRS安防系统详细设计.docx(109页珍藏版)》请在冰豆网上搜索。
GPRS安防系统详细设计
基于GPRS的远程安防监控系统
详细设计说明书
提交:
审核:
提交:
陈云浩、徐昌盛、肖进杰、马旭军
审核:
XXX
核准:
XXX
发行签核记录表
发文单位
签核
发文单位
签核
*****北京开发中心
**技术管理部
修改纪录表
版本
发行日期
修改记录
Version1.0
2008-11-6
一、引言
1.1目的
●本说明书是为了程序员详细了解基于GPRS的远程安防监控系统应该完成的功能和各模块输入、处理、输出关系,指导程序员正确编码;同时作为测试人员的参考资料使用
●面向的读者:
程序员、测试人员、评审员;
1.2项目背景
⏹项目名称:
基于GPRS的远程安防监控系统。
⏹项目功能:
使用FS2410开发板和GPRS模块和USB摄像头,完成对现场的监控功能,硬件资源来源于FS2410开发板自带的资源,比如温度传感器,报警器,红外传感器等。
如果温度传感器特测温度高于一定的温度或者红外传感器特测有不法分子闯入,那么相应的相应的报警功能,灭火功能被开启,并通过GPRS模块通知用户现场情况。
用户根据具体情况采取不同的措施给系统,可以通过网页设置一些基本功能:
开启、关闭某些功能,实施控制设备,修改电话号码,修改短信内容等。
也可以通过开发板上的按键开关控制一些功能的开关。
⏹系统提出者:
北京市华清远见科技信息有限公司
⏹项目开发者:
陈云浩、徐昌盛、肖进杰、马旭军
⏹项目管理者:
陈云浩、徐昌盛、肖进杰、马旭军
⏹最终用户:
面向用户
⏹其他有关背景资料。
1.3术语及缩略语定义
1.3.1术语定义
●FS2410:
优龙开发板名称。
●PHP:
是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
1.3.2缩略语定义
1.4参考资料
1.4.1文件
●《基于GPRS的远程安防监控系统需求分析说明书》
●《基于GPRS的远程安防监控系统概要设计说明书》
1.4.2资料
●《linux设备驱动程序》
●《Cprime&plus》
●《嵌入式linux应用程序开发详解》
●《linux设备驱动程序开发详解》
●《深入理解linux内核》
●《unix环境高级编程》
●《构建linux系统》
●优龙开发板参考资料光盘
二、主控系统详细设计
2.1程序结构图
图2.1绘图系统原理框图
2.2驱动模块说明
2.2.1温度采集模块说明
程序描述:
AD驱动
程序名称:
adc-dev.c
审核:
farsight
日期:
2008-11-6
输入数据:
一个模拟电压信号量(0~3.3v)
输出数据:
得到一个数字信号量
硬件描述:
Ad转换器的作用是将外界的模拟电压输入信号转换成计算机能够识别的数字信号。
S3C2410中支持的AD转换器是一个拥有8通道模拟信号输入的可循环类型设备。
在AD转换时钟频率为2.5MHz的AD转换时钟下以500KSPS的最大转换速率将一个输入模拟信号转换成一个10位2进制数。
AD转换器频率的计算公式为:
ADC_freq=PCLK/(PRSCVL+1)
设计中调试阶段通过开发板上的变阻器来调节改变电压值。
变阻器所对应的AD通道是AIN0。
软件中只需要读取AD转换完成的数据即可。
原理图:
涉及的datasheet:
(s3c2410芯片手册)
具体操作根据驱动程序和datasheet来结合
接口函数:
inttempe_dev_open(void);
inttempe_dev_close(intfd);
floattempe_read(intfd);
2.2.2喷水模块说明
程序描述:
led驱动
程序名称:
led.c
审核:
日期:
2008-11-6
输入数据:
有火灾:
1
输出数据:
报警和灭火装备
硬件描述:
将四个LED灯与S3C2410处理器的四个管脚相连接,由于GPIO是复用管脚,所以首先进行相应寄存器的配置,也就是首先配置控制寄存器GPFCON,配置为output.然后就是对灯的相应控制,这个是对数据寄存器GPFDAT,如果写0,led灯亮。
否则灯灭。
软件是通过ioctl进行相应的控制。
原理图:
涉及的datasheet(s3c2410芯片手册)
接口函数:
intoutfire_dev_open(void);
intoutfire_dev_close(intfd);
intoutfire_on_off(intfd,intflag);
2.2.3键盘扫描模块说明
程序描述:
键盘驱动
程序名称:
key.c
审核:
farsight
日期:
2008-4-26
输入数据:
有人闯入
输出数据:
报警
硬件描述:
根据硬件电路图可知4*4键盘扫描的工作原理,软件上首先完成对相应的寄存器作配置,这里主要涉及GPFCON,GPGCON,GPECON三个寄存器,把相应的位设置为OUTPUT和INPUT工作模式,这个根据原理图。
然后就是对中断的处理,设置下降沿有效。
原理图:
涉及的datasheet(S3C2410数据手册):
GPFCON,GPGCON,GPECON三个寄存器
2.2.4蜂鸣器报警模块说明
程序描述:
蜂鸣器驱动
程序名称:
beeptimer.c
审核:
日期:
2008-11-6
输入数据:
有人闯入
输出数据:
报警
硬件描述:
首先将蜂鸣器接到S3C2410处理器的一个GPB0管脚上。
还上面的配置一样。
首先配置GPBCON的GPB0为输出模式,当数据寄存器里写入1时。
蜂鸣器打开,写0关闭蜂鸣器。
软件上是通过ioctl来进行相应的控制的。
原理图:
所涉及的datasheet(S3C2410数据手册):
接口函数:
intalm_dev_open(void);
intalm_dev_close(intfd);
intalm_on_off(intfd,intflag);
2.2.5红外模块说明
程序描述:
键盘驱动
程序名称:
infrared.c
审核:
日期:
2008-11-6
输入数据:
有人闯入
输出数据:
报警
硬件描述:
通过设置GPFCON来将GPF3设置为输入模式,然后读取相应的数据寄存器的状态来,
进行对现场的分析。
如果有人闯入,红外模块输出高电平,这个时候GPF3相应的数据寄存器的数值为1,反之为0.
原理图:
涉及的datasheet(S3C2410数据手册):
GPFCON,GPFDAT三个寄存器
接口函数:
intinfrared_dev_open(void);
intinfrared_dev_close(intfd);
intinfrared_detect(intfd);
三、各个驱动模块测试程序详细设计
3.1AD驱动模块测试说明
分后步距一致的时候,电流变化是非线性的。
3.2红外、蜂鸣器、LED测试代码说明
1、测试说明:
用13键模拟红外传感器,当13键按下后,4个LED亮同时蜂鸣器响。
20秒后,LED、蜂鸣器关。
2、头文件:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#defineGPF4_ON0x4800/*LED1开*/
#defineGPF4_OFF0x4801/*LED1关*/
#defineGPF5_ON0x4810
#defineGPF5_OFF0x4811
#defineGPF6_ON0x4820
#defineGPF6_OFF0x4821
#defineGPF7_ON0x4830
#defineGPF7_OFF0x4831
#defineBEEP_ON1/*开报警器*/
#defineBEEP_OFF0/*关报警器*/
intinfrared(intfd);/*红外监测*/
intoutfire_on_off(intfd,intflag);/*灭火开关*/
intbeep_on_off(intfd,intflag);/*报警器开/关*/
3、接口函数:
/*
fd=open("/dev/infrared",O_RDONLY);
*===FUNCTION======================================================================
*Name:
infrared
*Description:
红外监测:
返回值1,说明监测到有人;0,监测无人
*=====================================================================================
*/
intinfrared(intfd)
{
charbuff[3]={};
intflag;
if((read(fd,buff,1))<0)
{
printf("readerror\n");
return-1;
}
buff[1]='\0';
/*printf("buff=%s\n",buff);
*/
flag=atoi(buff);
returnflag;
}
/*
if((fd=open("/dev/led",O_RDWR))==-1)
*===FUNCTION======================================================================
*Name:
outfile_on_off
*Description:
启动/关闭灭火
*=====================================================================================
*/
intoutfire_on_off(intfd,intflag)
{
ioctl(fd,flag);
return0;
}
/*
if((fd=open("/dev/beep",O_RDWR))==-1)
*===FUNCTION======================================================================
*Name:
beep_on_off
*Description:
报警器开/关
*=====================================================================================
*/
intbeep_on_off(intfd,intflag)
{
ioctl(fd,flag);
return0;
}
4、测试主函数:
#include"led_inf_beep.h"
intmain(intargc,char**argv)
{
intinflag;
intfd1,fd2,fd3;
if((fd1=open("/dev/infrared",O_RDONLY))<0)
{
printf("openinfrarederror");
return-1;
}
if((fd2=open("/dev/led",O_RDONLY))<0)
{
printf("openlederror");
return-1;
}
if((fd3=open("/dev/beep",O_RDONLY))<0)
{
printf("openbeeperror");
return-1;
}
while
(1)
{
inflag=infrared(fd1);
if(inflag==1)
{
outfire_on_off(fd2,GPF4_ON);
outfire_on_off(fd2,GPF5_ON);
outfire_on_off(fd2,GPF6_ON);
outfire_on_off(fd2,GPF7_ON);
beep_on_off(fd3,BEEP_ON);
sleep(20);
}
else
{
outfire_on_off(fd2,GPF4_OFF);
outfire_on_off(fd2,GPF5_OFF);
outfire_on_off(fd2,GPF6_OFF);
outfire_on_off(fd2,GPF7_OFF);
beep_on_off(fd3,BEEP_OFF);
}
}
return0;
}
四、摄像头驱动详细设计
4.1摄像头驱动移植说明
●在内核顶层目录makemenuconfig中device加入usb摄像头的支持
●然后编译内核make
●在摄像头驱动的Makefile修改要编译的内核路径../linux-2.6.26.3
●然后编译make,把.ko复制到rootfs中
4.2摄像头图片采集程序详细设计
应用程序描述:
采集图片
子文件名称:
server.h
spcav41.cspcav41.h
填写:
日期:
2008-11-6
设计中所拍的图片均以当时时间来命名,以下是时间命名的源代码:
voidgettime(char*buff,char*path1,intmodule)
{
time_tticks;
structtm*timetm;
char*buff2="/usr/local/sbin/www/images/fired/";
char*buff3="/usr/local/sbin/www/images/theft/";
char*buff4="/usr/local/sbin/www/images/";
ticks=time(NULL);
timetm=localtime(&ticks);
if(module==1){
sprintf(path1,"%s",buff2);
sprintf(buff,"%d-%d-%d-%d-%d",timetm->tm_mon,timetm->tm_mday,timetm->tm_hour,timetm->tm_min,timetm->tm_sec);
}elseif(2==module){
sprintf(path1,"%s",buff3);
sprintf(buff,"%d-%d-%d-%d-%d",timetm->tm_mon,timetm->tm_mday,timetm->tm_hour,timetm->tm_min,timetm->tm_sec);
}else{
sprintf(path1,"%s",buff4);
sprintf(buff,"%d-%d-%d-%d-%d",timetm->tm_mon,timetm->tm_mday,timetm->tm_hour,timetm->tm_min,timetm->tm_sec);
}
}
五、GPRS通信详细设计
采用**模块,通过串口与FS2410开发平台的串口2相连接。
驱动使用串口驱动程序,主要工作就是编写串口的应用程序,来进行短信息的接受和发送并存储短信息的功能。
5.1GPRS短信发送程序说明
应用程序描述:
发短信息
子文件名称:
sendmsg.c
填写:
日期:
2008-11-6
程序流程:
参见“发送短信息”流程图
5.1发送短信息流程图
六、THTTPD服务器模块设计
6.1系统功能结构图
6.2THTTPD服务器模块设计
模块编码:
文件:
thttpd2.21b/src
页次:
thttpd服务器编码:
子文件名称:
thttpd.conf
填写:
farsight
日期:
2008-11-6
thttpd测试编码
子文件名称:
test.html
填写:
farsight
日期:
2008-11-6
功能描述:
在嵌入式系统中移植thttpd服务器,提供web页服务
七、主程序设计
7.1主程序流程图
设计编码:
目录名称:
/src/safety
页次:
应用编码:
文件名称:
safety.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名:
temp_module.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名:
rap_module.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
devs_opt.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
rap_qmsg.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
fire_qmsg.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
sig_func.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
print_conf.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
alreadyrun.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
conf.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
mouse_capture.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
read_key.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
write_conf.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
sendsmsg.c
填写:
farsight
日期:
2008-11-6
应用编码:
文件名称:
spcav4l.c
填写:
farsight
日期:
2008-11-6
功能描述:
项目中主要包括三个进程,一个负责读取配置文件统一管理两个防火防盗模块的主进程,一个防火监控进程以及一个防盗监控进程。
两个监控进程都具有异常报警和现场信息(图片和温度值)记录功能用户可以通过设备上的按键或者网页上的选项对系统进行模块功能选择和实时控制。
设计说明:
1、整个设计中,配置文件是重要的控制文件,当系统的要打开或关闭某一项具体的功能的时候就通过写入读取配置文件来得知自身的状态。
实时控制部分的设计主要是通过消息队列来实现的。
键盘中断或网页选项直接触发一个控制消息发送的进程(fire_qmsg或rap_qmsg),消息发送进程直接将消息发送给相应的子进程,对部分功能进行实时控制。
7.2主程序流程图
7.3防盗模块流程图
7.4防火模块流程图
八、通信协议设计
8.1实时控制协议
当灭火器和报警器开启时,用户可以通过web或按键实时关闭这些功能。
实时控制时进程之间用消息队列来进行消息传递。
传递消息的内容协定如下:
协议内容
协议标号
1010
当火灾发生,灭火装置开启的时候,可以按下web或相应按键来关闭,传递的内容就是“1010”。
1001
当火灾发生后,只要持续着高温,火灾报警器就会一直响着,所以当用户不需要让报警继续时,可以实时关闭,此时传递的内容就是1001
2010
当检测到有非法入侵时,系统会启动防盗警报,用户同样可以通过相应按键来关闭报警功能。
所需的协议编号是2010
8.2功能控制协议
当用户需要开启或关闭相应的功能模块时,用户可以通过web或按键来修改配置文件。
系统中由主进程负责读取配置文件内容,然后通过参数传递的形式传递给子进程,子进程中会对相应功能进行屏蔽。
具体协议内容如下:
协议内容
协议标号
0
配置文件中的相应选项被清0时,相应功能就被打开。
1
配置文件中的相应选项被置1时,相应的功能就被禁止。
九、附加功能设计
9.1SD卡自动挂载
1)、/user/etc/rc.local中加入:
[1]mount-tsysfssysfs/sys
[2]echo/bin/mdev>/proc/sys/kernel/hotplug
[3]mdev–s
2)、修改MDEV的配置文件:
/etc/mdev.conf配置如下:
1、mmcblk[0-9]*0:
0600@(/home/mount2)#SDcard
2、sd[a-z][0-9]*0:
0600@(/home/mount3)#USB
3、mmcblk[0-9]*0:
0600$(umount/mnt/temp/&&rm/dev/$MDEV)
4:
、sd[a-z][0-9]*0:
0600$(umount/dev/etc/&&rm/dev/$MDEV)
9.1SD卡数据自动拷贝
1#!
/bin/sh
2/home/copyled点灯
3SD=`ls/dev/mmc*p1`#SD变量=SD卡的第一分区用于挂载
4path1="/usr/local/sbin/www/images/fired/*.jpg"#火警图片存放处
5path2="/usr/local/sbin/www/images/theft/*.jpg"#匪警图片存放处
6path1to="/mnt/temp/fired/"
7path2to="/mnt/temp/theft/"
8path3to="/mnt/temp/"#网页拍照
9mount-tvfat$SD/mnt/temp/#将SD挂载到/mnt/temp
10
11if[-d/mnt/temp/fired];then#假如没有目录就创建一个,有目录直接剪切
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GPRS 系统 详细 设计