围栏报警系统设计|周界报警系统

马 龙 李万苹 黎 伟

西安石油大学 测井信号与信息处理研究室 陕西西安 710065

【文章摘要】

由于单片机C8051F020 成本低, 开发周期短,以及加速度传感器ADXL344 输出为数字信号,测量范围宽等优点,本文创新地应用了单片机C8051F020 作为主控芯片实现了与加速度传感器ADXL344 进行通信,利用加速度传感器各轴因振动时而产生的数据从而判断是否发生报警,最后通过上位机进行显示。

【关键词】

单片机C8051F020 ;加速度传感器ADXL344 ;UART0/1

0 引言

国内外大型牧场、博物馆、私人豪宅、监狱等,都需要一套围栏报警系统来进行保护,防止不法分子闯入造成不可估量的损失。然而这些报警系统生产成本高,如博物馆的警报系统至少要花费几百万元,有些监狱报警系统误报警率比较高,如刮风、下雨等自然现象引起的误报警。为减少生产成本,降低围栏报警系统的误报警率,本文利用单片机C8051F020 与加速度传感器相结合设计出一种低成本、高可靠性的围栏报警系统。

1 整体系统框架

本系统的整体结构框图是各个模块之间通过串口UART 进行通信,固定在栅栏周围,最后与计算机相连接,利用上位机软件进行控制,既实时监测每个模块的状态,是否发生报警。

2 硬件设计

围栏报警系统是由各个模块共同构成的,本节将具体介绍模块的内部结构。其结构框图如图2.1 所示。

2.1 加速度传感器ADXL344

ADXL344 是一款完整的3 轴、数字输出加速度测量系统,可选择的测量范围有±2 g、±8 g、±16 g。本设计主要利用ADXL344 中的寄存器THRESH_ACT, 该寄存器保存活动检测的阈值,当活动事件的幅度值(X、Y、Z 轴)大于阈值就会触发活动事件Activity 的置位(Activity 中断已使能)。以及寄存器THRESH_INACT、TIME_INACT,用于设置静止时的阈值。设置寄存器INT_MAP 的值分配相应的中断到INT1 或INT2 引脚,由单片机中断引脚INT0/INT1 控制ADXL344 产生的中断,从而判断是否发生报警。

2.2 ADXL344 通信接口电路

加速度传感器ADXL344 既能实现I2C 通信也能实现SPI 通信,本文单片机C8051F020 与ADXL344 之间通过串口SPI 进行通信,实现了单片机控制及读写加速度传感器。且将加速度传感器的中断引脚INT1/INT2 分别与单片机INT0/INT1 引脚相连接。

3 程序设计

本程序设计主要是实现这两方面的通信,第一、C8051F020 与ADXL344 之间的SPI 通信;第二、模块与模块之间的通信即串口UART0 与串口UART1 之间数据的相互转发。其流程图如图3.1 所示。主要包括四大模块:主程序模块、ADXL344 配置模块、SPI 通信模块、中断模块。主程序模块包括了初始化和状态查询并发送两部分。ADXL344 配置模块主要是对加速度传感器芯片配置。SPI 通信模块包括SPI 写模块和读模块。中断模块包括串口UART0 中断、UART1 中断、SPI 中断、INT0 中断。

程序开始初始化直到主函数While(1) 循环中进行状态查询,若加速度传感器ADXL344 振动值大于活动阈值视为有效触动触发活动中断即单片机外部INT0 中断触发(本设计将ADXL344 所有的中断分配到单片机INT0 引脚上),将报警数据处理后通过串口UART0 或UART1 回传。若判断UART0 接收中断触发,将通过该串口完成对所有模块中ADXL344 的数据配置,该模块配置完成后通过UART1 下发配置命令到下一级模块(下一级模块通过UART0 接收),并且UART0 回传该模块的配置状态和通信状态,报警数据将通过该串口回传给前一级模块(前一级模块通过UART1 接收)。若判断UART1 接收中断触发,也将对所有模块中的ADXL344 进行数据配置,该模块配置完成后通过UART0 下发配置命令到下一级模块(下一级模块通过UART1 接收),并且UART1 回传该模块的配置状态和通信状态,报警数据将通过该串口回传给前一级模块(前一级模块通过UART0 接收)。其实UART0 与UART1 接受中断数据处理下发和回传是互逆的过程。

4 实验数据

通过串口助手给每个模块下发的配置命令及回传数据。模块中串口0 和1 的传输速率为57600bps。模块部分配置命令如,有效触动命令为:下发命令(3 字节) :0xEE+0x00+0x00 ;上传命令(4 字节) :0xEF+0x00+0x00+0x00。下发命令中0xEE 为有效触动命令下发格式,后两字节为模块编号,例如下发0xEE0000,则将对所有模块有效触动进行监测,若下发0xEE0001,只对编号为1 的模块的有效触动进行监测。上传命令中0xEF 为有效触动命令回传格式,第二、三字节为模块编号,最后一个字节为有效触动次数,若模块没有被振动则回传触动次数为0,如EF 00 01 00 ;若将编号为1 的模块振动一次, 回传触动次数为1,如EF 00 01 01。

最后,通过编写上位机应用界面,将报警位置在该界面中进行实时的显示。

5 结束语

本文设计的围栏报警系统,极大地降低了生产成本,提升了可靠性,简单而快捷地开发了围栏报警系统,对于实际应用具有重要的意义。

【参考文献】

[1] 童长飞.C8051F 系列单片机开发与C 语言编程. 北京航空航天大学出版社,2005.1:8-213.

[2] 丛培田, 孟海星, 韩辉, 罗旋. 基于C8051F005 单片机和MEMS 加速度传感器ADXL311 的倾角仪. 仪表技术与传感器,2010.36(1):36-37.

图3.1 程序流程图

图2.1 模块结构框图004